From: Jie Liu <[email protected]>

This series adds the Stars SXE2 network driver together with a set of
fixes accumulated while validating the driver against the historical
kernel implementation and reviewing the code.

This is the v5 revision. Changes since v4 address the community review
of the v4 series:

- Drop the ineffective IPsec key length check in
  sxe2_security_valid_key() (the same limit is already enforced at the
  top of the function) and keep only the security context pointer
  cleanup, which is now its own commit.
- Make the QinQ and RSS offload capability gating actually effective:
  RTE_ETH_TX_OFFLOAD_QINQ_INSERT is removed from the unconditional
  capability list and only advertised when no port VLAN is configured;
  RTE_ETH_RX_OFFLOAD_RSS_HASH is advertised only when the RSS offload
  capability flag is set.
- Fix switchdev representor matching so the common devarg forms
  (e.g. "representor=vf0", bare-number form) that leave nb_ports == 0
  are treated as "no PF constraint" instead of being rejected.
- Fix the representor VSI teardown: sxe2_vsi_destroy() now unlinks
  SXE2_VSI_T_DPDK_ESW nodes from other_vsi_list before freeing them.
- Restore a scalar Tx fallback on arm64 when NEON is not available so
  tx_pkt_burst is always installed.
- Add the same PF-only guard to the UDP tunnel port delete and clear
  paths that add already has.
- Move sxe2_link_update() out of the command-channel link status query
  into the two callers, keeping the command layer free of ethdev side
  effects and avoiding the dev_data dereference.
- Evaluate the adapter argument exactly once in the command params fill
  macro.
- Remove ineffective nb_rx_queues/nb_tx_queues assignments from device
  info (ethdev overwrites them after the PMD callback) and from the
  representor device info (new commit with a Fixes: tag).
- Fix the ioctl mmap debug log labels and reword the commit messages
  for the security context, command fill macro and command struct
  alignment commits.

Patch 30/44 of the v4 series still bundles unrelated NEON Rx data path
changes into the vectorized Tx commit, and patches 21/22 still leave
the dev_close and dev_init teardown orders slightly different; these
are left for a follow-up.

Jie Liu (45):
  common/sxe2: fix null pointer in class driver remove
  common/sxe2: allow munmap during kernel reset
  net/sxe2: fix VF PCI device ID
  net/sxe2: fix MSIX register width in PF map table
  net/sxe2: restore pf and port index caps assignment
  net/sxe2: fix VSI lifecycle management
  net/sxe2: initialize stats in representor device init
  net/sxe2: use base device name for representor naming
  net/sxe2: propagate LSC event to VF representors
  net/sxe2: clear security context pointer on uninit
  net/sxe2: rename representor VSI ID fields
  net/sxe2: clean up duplicate function declarations
  net/sxe2: fix null VSI dereference in device info
  net/sxe2: fill MAC and queue counts in device info
  net/sxe2: fix QinQ and RSS offload capability report
  net/sxe2: use regular write for mapped registers
  net/sxe2: move PCI register read macro to common header
  net/sxe2: validate PCI map resource type
  net/sxe2: guard PCI BAR unmap when not initialized
  net/sxe2: fix null dereference in dev uninit
  net/sxe2: fix duplicated cleanup in dev close
  net/sxe2: align dev init and cleanup order
  net/sxe2: simplify switchdev representor matching
  net/sxe2: rename fnav cid manager symbols to flow
  net/sxe2: move tunnel port helpers into flow module
  net/sxe2: add ACL engine event statistics support
  net/sxe2: guard Rx queue event FD free in unregister
  net/sxe2: refactor primary process MP message handling
  net/sxe2: refactor Tx queue reset operations
  net/sxe2: unify vectorized Tx buffer handling
  net/sxe2: refine vectorized Tx/Rx mode setup
  net/sxe2: fix RSS action attribute validation
  net/sxe2: restore PF-only guard in udp tunnel port add
  net/sxe2: restore link update call in status query
  net/sxe2: validate representor ID against VF count
  net/sxe2: use primary VSI ID for representor VSI
  net/sxe2: wrap command params fill debug log in macro
  net/sxe2: restore Rx queue buffer split fill support
  net/sxe2: skip tunnel config fill on get failure
  net/sxe2: skip flow id assignment on filter add failure
  net/sxe2: fix command channel log messages
  net/sxe2: align command structs with historical kernel layout
  common/sxe2: fix ioctl channel log and close handling
  doc/sxe2: remove drv-sw-stats parameter documentation
  net/sxe2: remove ineffective queue counts in representor info

 doc/guides/nics/sxe2.rst                   |  40 ++--
 drivers/common/sxe2/sxe2_common.c          |   6 +-
 drivers/common/sxe2/sxe2_ioctl_chnl.c      |  20 +-
 drivers/net/sxe2/sxe2_cmd_chnl.c           | 199 ++++++++++++++++--
 drivers/net/sxe2/sxe2_cmd_chnl.h           |  15 +-
 drivers/net/sxe2/sxe2_drv_cmd.h            |  37 +++-
 drivers/net/sxe2/sxe2_dump.c               |  10 +-
 drivers/net/sxe2/sxe2_ethdev.c             | 192 ++++++++++-------
 drivers/net/sxe2/sxe2_ethdev.h             |  13 +-
 drivers/net/sxe2/sxe2_ethdev_repr.c        |  15 +-
 drivers/net/sxe2/sxe2_flow.c               | 234 ++++++++++++++++++---
 drivers/net/sxe2/sxe2_flow.h               |   6 +-
 drivers/net/sxe2/sxe2_flow_define.h        |  15 +-
 drivers/net/sxe2/sxe2_flow_parse_action.c  |  39 +++-
 drivers/net/sxe2/sxe2_flow_parse_pattern.c | 113 ----------
 drivers/net/sxe2/sxe2_flow_parse_pattern.h |   6 -
 drivers/net/sxe2/sxe2_irq.c                |  29 ++-
 drivers/net/sxe2/sxe2_mac.c                |  11 +-
 drivers/net/sxe2/sxe2_mp.c                 |  59 +++---
 drivers/net/sxe2/sxe2_queue.c              |   2 +
 drivers/net/sxe2/sxe2_queue.h              |   7 +-
 drivers/net/sxe2/sxe2_rx.c                 |   3 +-
 drivers/net/sxe2/sxe2_security.c           |   1 +
 drivers/net/sxe2/sxe2_switchdev.c          |  16 +-
 drivers/net/sxe2/sxe2_tx.c                 |  42 +++-
 drivers/net/sxe2/sxe2_tx.h                 |   4 +
 drivers/net/sxe2/sxe2_txrx.c               |  20 +-
 drivers/net/sxe2/sxe2_txrx_poll.h          |   2 -
 drivers/net/sxe2/sxe2_txrx_vec.c           |  73 +++----
 drivers/net/sxe2/sxe2_txrx_vec.h           |   1 +
 drivers/net/sxe2/sxe2_txrx_vec_avx2.c      |  10 +-
 drivers/net/sxe2/sxe2_txrx_vec_avx512.c    | 133 +-----------
 drivers/net/sxe2/sxe2_txrx_vec_common.h    |   9 +-
 drivers/net/sxe2/sxe2_txrx_vec_neon.c      | 219 ++++++++++++-------
 drivers/net/sxe2/sxe2_txrx_vec_sse.c       |  10 +-
 drivers/net/sxe2/sxe2_vsi.c                |  10 +-
 36 files changed, 948 insertions(+), 673 deletions(-)

-- 
2.52.0

Reply via email to