This series brings the NXP DPAA2 driver stack up to date with the
functionality carried in the NXP internal tree, together with a number of
bug fixes. It covers the crypto (dpaa2_sec), net, dma, mempool, event and
bus/fslmc drivers.
Fixes first, then features, so the bug fixes can be picked independently of
the larger reworks.
Bug fixes (patches 1-2, 7-11):
- crypto/dpaa2_sec: buffer overflow in GCM decrypt, and an FLE pool leak
on the sec FD build failure path
- dpaa2 device double free on uninit
- integer overflow in the CCSR region mapping
- array-bounds warning in the dma dequeue path
- IOVA validation in the dma pre-populate helpers, which previously
called rte_panic() on an unmapped address and now returns an error
to the caller
- bus/fslmc: bus initialization deferred to probe
Crypto (patches 3-6):
- AES-GMAC support, AES-CTR ivsize range, a missing ECN capability, and
support for configuration via environment variables
Flow and classification (patches 18-24, 35-37):
- MPLS and PPPoE distribution, meter and policing, flow drop action, a
per-device default flow miss action, Rx hash identification by FLC, a
minimum key size, an updated MC dpni QoS/flow-steering API, and a rework
of the flow engine
Datapath and queue management (patches 12-17, 25-34, 38-45):
- dma context index ring enqueue optimization and a bypass
memory-translation option
- Tx queue/channel mapping optimization, Tx confirmation rework, larger
burst sizes, batched DQRR consumption, per-traffic-class Rx mempools and
Rx CGIDs, parser restructuring plus tunnel and fragmented packet type
parsing, PTP enhancements, xstats rework, and removal of the unused soft
parser code
Please note two points that need reviewer input:
1. Patch 3 ("crypto/dpaa2_sec: support AES-GMAC") adds a new public enum
value, RTE_CRYPTO_AEAD_AES_GMAC, to lib/cryptodev/rte_crypto_sym.h. It
is appended at the end of enum rte_crypto_aead_algorithm so it is ABI
compatible, but it is a cryptodev API addition rather than a
driver-local change, so it needs cryptodev maintainer review. The
series does not add a release notes entry for it; I am happy to add
one, or to split that hunk into its own cryptodev patch, whichever is
preferred.
2. Patch 10 ("bus/fslmc: defer bus initialization to probe") carries a
Fixes: tag but no Cc: [email protected], because it changes bus
initialization ordering and is more invasive than a targeted fix. Please
advise if it should still be marked for backport.
Testing:
- checkpatches.sh and check-git-log.sh are clean over all 45 patches
- build tested with the dpaa/dpaa2 driver set enabled, no new compiler
warnings
The dpaa2 driver documentation is not updated in this series; the new
features are not yet described in doc/guides. I plan to follow up with a
documentation patch unless reviewers would rather see it folded in here.
Gagandeep Singh (20):
crypto/dpaa2_sec: fix buffer overflow in GCM decrypt
crypto/dpaa2_sec: fix FLE pool leak on sec FD build failure
crypto/dpaa2_sec: support AES-GMAC
crypto/dpaa2_sec: increase ivsize range for AES-CTR
crypto/dpaa2_sec: add missing ECN capability
crypto/dpaa2_sec: add support for env variables
drivers: fix double free of dpaa2 device on uninit
dma/dpaa2: validate IOVA in pre-populate helpers
dma/dpaa2: optimize context index ring enqueue
drivers: add dpaa2 DMA bypass memory translation option
net/dpaa2: set Tx confirmation on device init
drivers: optimize dpaa2 Tx queue and channel mapping
net/dpaa2: support larger burst size
net/dpaa2: support MPLS and PPPoE flow distribution
net/dpaa2: support meter and policing
net/dpaa2: support flow drop action
net/dpaa2: set default flow miss action per device
net/dpaa2: identify Rx mbuf hash information by FLC
net/dpaa2: enhance xstat implementation
net/dpaa2: do not overwrite mbuf hash with drop priority
Hemant Agrawal (9):
net/dpaa2: fix integer overflow in CCSR region mapping
net/dpaa2: add minimum key size support
net/dpaa2: restructure dpaa2 parser processing
net/dpaa2: parse tunnel and fragmented packet types
net/dpaa2: remove unused soft parser Tx code
net/dpaa2: update MC dpni QoS and flow steering API
net/dpaa2: rework flow engine
bus/fslmc: reduce probe-time logging and MC traffic
net/dpaa2: reject Rx queue deferred start
Jun Yang (14):
dma/dpaa2: fix array-bounds warning in dequeue path
mempool/dpaa2: support ops index from primary in secondary
net/dpaa2: remove unused soft parser driver
drivers: refresh dpaa2 MC and SoC version info
drivers: identify dpaa2 soft parser protocol
drivers: assign dpaa2 Rx CGID per traffic class
drivers: inherit dpaa2 rxq config for event queue
net/dpaa2: rename Rx queue flags
drivers: rework dpaa2 Tx confirmation
net/dpaa2: ptp enhancements
net/dpaa2: support Rx mempool per traffic class
drivers: consume dpaa2 DQRR entries in batches
drivers: resolve dpaa2 endpoint in the net driver
drivers: align dpaa2 event port depths with hardware rings
Prashant Gupta (2):
bus/fslmc: defer bus initialization to probe
net/dpaa2: read MC version from device private data
drivers/bus/fslmc/bus_fslmc_driver.h | 15 +-
drivers/bus/fslmc/fslmc_bus.c | 185 +-
drivers/bus/fslmc/fslmc_vfio.c | 196 +-
drivers/bus/fslmc/fslmc_vfio.h | 30 +-
drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 83 +-
drivers/bus/fslmc/portal/dpaa2_hw_dpio.h | 7 -
drivers/bus/fslmc/portal/dpaa2_hw_dprc.c | 45 +-
drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 7 +-
drivers/bus/fslmc/private.h | 3 +
.../fslmc/qbman/include/fsl_qbman_portal.h | 12 +-
drivers/bus/fslmc/qbman/qbman_portal.c | 78 +-
drivers/bus/fslmc/qbman/qbman_portal.h | 11 +-
drivers/common/dpaax/rte_pmd_dpaax_qdma.h | 4 +-
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 50 +-
drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h | 45 +-
drivers/dma/dpaa2/dpaa2_qdma.c | 162 +-
drivers/dma/dpaa2/dpaa2_qdma.h | 1 +
drivers/event/dpaa2/dpaa2_eventdev.c | 76 +-
drivers/event/dpaa2/dpaa2_eventdev.h | 4 +-
drivers/mempool/dpaa2/dpaa2_hw_mempool.c | 88 +-
drivers/net/dpaa2/base/dpaa2_hw_dpni.c | 546 --
drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h | 6 +-
drivers/net/dpaa2/dpaa2_ethdev.c | 2142 +++--
drivers/net/dpaa2/dpaa2_ethdev.h | 755 +-
drivers/net/dpaa2/dpaa2_flow.c | 6933 ++++++++++-------
drivers/net/dpaa2/dpaa2_meter.c | 588 ++
drivers/net/dpaa2/dpaa2_parse_dump.h | 374 -
drivers/net/dpaa2/dpaa2_parser_decode.h | 1539 ++++
drivers/net/dpaa2/dpaa2_pmd_logs.h | 67 +
drivers/net/dpaa2/dpaa2_ptp.c | 176 +-
drivers/net/dpaa2/dpaa2_recycle.c | 37 +-
drivers/net/dpaa2/dpaa2_rxtx.c | 1903 ++---
drivers/net/dpaa2/dpaa2_sparser.c | 137 -
drivers/net/dpaa2/dpaa2_sparser.h | 202 -
drivers/net/dpaa2/dpaa2_tm.c | 16 +-
drivers/net/dpaa2/mc/dpni.c | 138 +-
drivers/net/dpaa2/mc/fsl_dpni.h | 390 +-
drivers/net/dpaa2/mc/fsl_dpni_cmd.h | 33 +-
drivers/net/dpaa2/meson.build | 5 +-
lib/cryptodev/rte_crypto_sym.h | 2 +
40 files changed, 10537 insertions(+), 6554 deletions(-)
delete mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpni.c
create mode 100644 drivers/net/dpaa2/dpaa2_meter.c
delete mode 100644 drivers/net/dpaa2/dpaa2_parse_dump.h
create mode 100644 drivers/net/dpaa2/dpaa2_parser_decode.h
delete mode 100644 drivers/net/dpaa2/dpaa2_sparser.c
delete mode 100644 drivers/net/dpaa2/dpaa2_sparser.h
base-commit: 9231dc7c072223628a81f5c755796d95230a5572
--
2.43.0