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 v4 revision. Changes since v3 address the community review of the v3 series: - Drop the "probe all requested PF ports" change. rte_eth_dev_pci_allocate() derives the port name from the PCI device and creates a single ethdev per PCI device, so probing multiple PF ports from one probe call is not supported. - Fix RSS action attribute validation to return the negative error code (-ENOTSUP) instead of a positive value so invalid RSS configurations are rejected. - Keep the packed attribute on sxe2_tm_add_mid_msg and sxe2_tm_add_queue_msg so the firmware command wire offsets (tm info offset, tm queue info offset) are preserved. Only drop the packed attribute and padding from the structs that do not have it in the historical kernel layout. - Keep the "Receive Software Statistics" xstats documentation section. The rx_sw_* counters are still accumulated in the Rx data path and reported through rte_eth_xstats_get(); only the removed drv-sw-stats devarg text is dropped. - Consolidate fix-on-fix commits into the commits that introduced the bugs so the series does not contain standalone fix patches for regressions introduced earlier in the same series. - Expand Fixes: hashes to the 12-character form and add the missing Fixes: tags on patches carrying Cc: [email protected]. - Drop a commit that only realigned code structure without any functional change. Jie Liu (44): 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: validate IPsec key length against maximum limit 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 doc/guides/nics/sxe2.rst | 40 ++-- drivers/common/sxe2/sxe2_common.c | 6 +- drivers/common/sxe2/sxe2_ioctl_chnl.c | 18 +- drivers/net/sxe2/sxe2_cmd_chnl.c | 200 ++++++++++++++++-- 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 | 188 ++++++++++------- drivers/net/sxe2/sxe2_ethdev.h | 13 +- drivers/net/sxe2/sxe2_ethdev_repr.c | 13 +- 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_ipsec.c | 5 + drivers/net/sxe2/sxe2_irq.c | 27 ++- drivers/net/sxe2/sxe2_mac.c | 9 +- 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 | 19 +- 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 | 8 +- 37 files changed, 941 insertions(+), 671 deletions(-) -- 2.52.0

