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

