This is the final DPAA2 upstreaming sub-series, applied on top of
v7-S1 ("dpaa2: bus, DMA and mempool base fixes") and
v14-S2 ("net/dpaa2 updates").

The series reworks the DPAA2 datapath, flow steering, metering,
eventdev integration and fslmc infrastructure. It consolidates
device configuration handling, improves queue and portal management,
and adds support for additional DPNI, eventdev and datapath
capabilities.

Highlights:
  - add DMA bypass translation support and table-driven devargs parsing;
  - optimize Tx queue, channel and dequeue processing paths;
  - centralize MC version, SoC detection and endpoint handling;
  - rework RSS, flow steering, QoS and default action programming;
  - add rte_mtr support and meter rte_flow actions;
  - improve eventdev scheduling, DPCI support and multi-port operation;
  - support runtime IEEE1588 timestamping;
  - rework xstats collection and MAC statistics handling;
  - unify enqueue/dequeue datapaths across net, crypto and eventdev;
  - add Tx fast paths and reduce confirmation overhead.

Every commit builds cleanly with arm64 and -Werror and the
series remains bisectable.

Breeson Francis (1):
  net/dpaa2: rework xstats with page table and MAC support

Hemant Agrawal (1):
  net/dpaa2: reject Rx queue deferred start

Jun Yang (63):
  net/dpaa2: refactor and optimize Rx parser result decode
  net/dpaa2: generate devargs table and string from one list
  crypto/dpaa2_sec: use table-driven devargs parsing
  dma/dpaa2: use table-driven devargs parsing
  net/dpaa2: unify debug dump via log based helpers
  net/dpaa2: expose Rx L3/L4/L5 offsets via mbuf dynfield
  net/dpaa2: optimize dpaa2 Tx queue and channel mapping
  bus/fslmc: split bus-level device walk from VFIO primitives
  bus/fslmc: centralize MC version and SoC detection in the bus layer
  net/dpaa2: remove unused soft parser loader
  net/dpaa2: cache per-rxq DPNI queue cfg and share CGID per TC
  The dpaa2 PMD so far supported only two Tx buffer release schemes:
    direct release by hardware, and an absolute Tx confirmation mode
    (drv_tx_conf=1) where every transmitted buffer is returned on a Tx
    confirmation queue that software must poll to free the buffers.
    Absolute confirmation adds a confirmation descriptor and a poll cost
    for all packets, even those the hardware could free on its own.
  net/dpaa2: support runtime IEEE1588 timestamping
  bus/fslmc: consume dpaa2 DQRR entries in batches
  bus/fslmc: align dpaa2 event port depths with hardware rings
  net/dpaa2: support multi-DPNI FS redirect and QoS table v3
  net/dpaa2: unify xstats layout and add DPMAC counter struct
  net/dpaa2: reimplement xstats_get() on top of xstats_get_by_id()
  net/dpaa2: fetch only requested MAC xstats in one MC call
  net/dpaa2: rework flow with per-table profile and group types
  net/dpaa2: reimplement RSS distribution via rte_flow
  net/dpaa2: expand IP address extracts for RSS hashing
  net/dpaa2: add policer v2 MC command and L2/L3 byte units
  net/dpaa2: support rte_mtr and METER rte_flow action
  net/dpaa2: program flow table miss actions via rte_flow
  net/dpaa2: support DCB Rx mode via rte_flow
  bus/fslmc: support DPCI peer and dynamic queues
  bus/fslmc: add alloc/free DPIO API for non-affine portals
  event/dpaa2: rework event port model and DPCI handling
  event/dpaa2: fix Tx adapter enqueue for mixed destinations
  event/dpaa2: rework self test for dynamic link and balance check
  event/dpaa2: add DPCON based standalone Rx scheduler
  event/dpaa2: add push mode to DPCON Rx scheduler
  event/dpaa2: drain Rx scheduler queues on destroy
  event/dpaa2: track and detach attached Rx queues
  net/dpaa2: add multi-port Tx API
  event/dpaa2: limit attached Rx flows per event queue
  eventdev: fix port link/unlink callback return documentation
  event/dpaa2: allow event queue link to multiple ports
  event/dpaa2: report available DPIO count and fix create cleanup
  event/dpaa2: use event port DPIO for dequeue wait
  bus/fslmc: consolidate DPIO interrupt setup and bound coalescing
  event/dpaa2: honor configured dequeue timeout
  bus/fslmc: use EAL API for DPIO interrupt
  bus/fslmc: defer DPIO interrupt setup and bind portal to worker core
  bus/fslmc: move Tx SG mempool to fslmc bus
  net/dpaa2: move DPNI endpoint lookup out of the fslmc bus
  net/dpaa2: add APIs to query device info and set default action
  net/dpaa2: consolidate dequeue paths and optimize fast path
  net/dpaa2: bind per-queue DPIO for rx-queue interrupts
  net/dpaa2: add API to clean Tx confirmation queue
  event/dpaa2: fix DQRR held buffer accounting on enqueue
  bus/fslmc: store dequeue dpio in mbuf seq dynfield
  bus/fslmc: use explicit flags for mbuf seqn encoding
  net/dpaa2: unify tx burst path for ordered and atomic enqueue
  crypto/dpaa2_sec: unify enqueue burst path for ordered enqueue
  bus/fslmc: track atomic DCA context per dequeue dpio
  bus/fslmc: move enqueue response descriptors to per-queue
  event/dpaa2: add ordered schedule type support
  bus/fslmc: make DPAA2 ORP/ODP ordering per-queue instead of per-device
  event/dpaa2: support multi-port enqueue in selftest random event
    generator
  event/dpaa2: do not fail device creation on DPCI errors
  net/dpaa2: add Tx fast path for no-confirmation case

 doc/guides/nics/dpaa2.rst                     |   29 +-
 doc/guides/rel_notes/release_26_11.rst        |   10 +
 drivers/bus/fslmc/bus_fslmc_driver.h          |   46 +-
 drivers/bus/fslmc/fslmc_bus.c                 |  321 +-
 drivers/bus/fslmc/fslmc_logs.h                |    2 +
 drivers/bus/fslmc/fslmc_vfio.c                |  562 +-
 drivers/bus/fslmc/fslmc_vfio.h                |   72 +-
 drivers/bus/fslmc/mc/dpci.c                   |   37 +-
 drivers/bus/fslmc/mc/fsl_dpci.h               |   12 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c      |  304 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpcon.c     |   25 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  668 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |   37 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dprc.c      |   52 +-
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  305 +-
 drivers/bus/fslmc/private.h                   |   15 +-
 .../fslmc/qbman/include/fsl_qbman_portal.h    |   24 +-
 drivers/bus/fslmc/qbman/qbman_portal.c        |  100 +-
 drivers/bus/fslmc/qbman/qbman_portal.h        |   11 +-
 drivers/bus/fslmc/qbman/qbman_sys.h           |    4 +-
 drivers/common/dpaax/dpaax_devarg.h           |   69 +
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |  559 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h     |   11 +-
 drivers/dma/dpaa2/dpaa2_qdma.c                |   92 +-
 drivers/dma/dpaa2/dpaa2_qdma.h                |   15 +-
 drivers/event/dpaa2/dpaa2_eventdev.c          | 1266 ++-
 drivers/event/dpaa2/dpaa2_eventdev.h          |   61 +-
 drivers/event/dpaa2/dpaa2_eventdev_selftest.c |  370 +-
 drivers/event/dpaa2/dpaa2_scheduler.c         |  673 ++
 drivers/event/dpaa2/meson.build               |    3 +-
 drivers/net/dpaa2/base/dpaa2_hw_dpni.c        |  544 --
 drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h  |    6 +-
 drivers/net/dpaa2/dpaa2_ethdev.c              | 3201 ++++---
 drivers/net/dpaa2/dpaa2_ethdev.h              |  997 +-
 drivers/net/dpaa2/dpaa2_flow.c                | 8426 ++++++++---------
 drivers/net/dpaa2/dpaa2_meter.c               |  584 ++
 drivers/net/dpaa2/dpaa2_parse_dump.h          |  707 +-
 drivers/net/dpaa2/dpaa2_parser_decode.h       | 1148 +++
 drivers/net/dpaa2/dpaa2_pmd_logs.h            |   34 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  177 +-
 drivers/net/dpaa2/dpaa2_recycle.c             |   18 +-
 drivers/net/dpaa2/dpaa2_rxtx.c                | 2818 +++---
 drivers/net/dpaa2/dpaa2_sparser.c             |  137 -
 drivers/net/dpaa2/dpaa2_sparser.h             |  202 -
 drivers/net/dpaa2/mc/dpni.c                   |  127 +-
 drivers/net/dpaa2/mc/fsl_dpni.h               |  378 +-
 drivers/net/dpaa2/mc/fsl_dpni_cmd.h           |   30 +-
 drivers/net/dpaa2/mc/fsl_net.h                |    4 +-
 drivers/net/dpaa2/meson.build                 |    3 +-
 drivers/net/dpaa2/rte_pmd_dpaa2.h             |  238 +-
 lib/eventdev/eventdev_pmd.h                   |    9 +-
 51 files changed, 14514 insertions(+), 11029 deletions(-)
 create mode 100644 drivers/common/dpaax/dpaax_devarg.h
 create mode 100644 drivers/event/dpaa2/dpaa2_scheduler.c
 delete mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpni.c
 create mode 100644 drivers/net/dpaa2/dpaa2_meter.c
 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

-- 
2.43.0

Reply via email to