Hi,
This series adds ntuple filter, RSS context, and flow steering
support to bnge driver.
Patch 1 is a pure refactor (no functional change) that relocates the
filter and VNIC related code into the appropriate files. Patch 7 drops
the refcount usage from L2 filters, also with no functional change.
The subsequent patches then add the ethtool commands for configuring
ntuple flows and RSS contexts.
Thanks,
Vikas
v3-v4:
- Addressed comments from Sashiko
https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260917064548.773334-1-vikas.gupta%40broadcom.com
https://sashiko.dev/#/patchset/20260917064548.773334-1-vikas.gupta%40broadcom.com
- The patch count drops to 10 now that the HSI patches have been merged.
v2->v3:
- Build fix.
- Addressed comments from Sashiko
https://sashiko.dev/#/patchset/20260908093053.2596020-1-vikas.gupta%40broadcom.com
Below Sashiko comments are not valid:
Patch-8:
Comment under bnge_toeplitz().
Explanation: bnge_toeplitz() is not used for aRFS.
Patch-9:
Comment regarding bnge_clear_usr_fltrs().
Explanation:
Both bnge_clear_usr_fltrs() (only invoked while the
interface is down) and bnge_grxclsrule() execute
under the netdev instance lock, so they are
serialized and never touch the filter list at the
same time.
Patch-10:
Comment "Does this direct dereference of the MAC
header need a linearization ...".
Explanation: ndo_rx_flow_steer runs on the RX path
after eth_type_trans(), which already accesses and
pulls the Ethernet header.
Comment Related to bnge_cfg_ntp_filters().
Explanation:
bnge_cfg_ntp_filters() runs from bnge_sp_task(),
which holds the netdev instance lock while executing.
v1->v2:
- Build fixes.
- Addressed comments from Sashiko
https://sashiko.dev/#/patchset/20260814011435.194631-1-vikas.gupta%40broadcom.com
Vikas Gupta (10):
bnge: restructure VNIC and filter code
bnge: add NTUPLE/ARFS VNIC
bnge: add helper functions for multi RSS contexts
bnge: add RXFH ethtool support
bnge: add ethtool support to manage RSS contexts
bnge: remove refcount from L2 filter
bnge: add NTUPLE filter infrastructure
bnge: add NTUPLE filter support in ethtool
bnge: add aRFS flow steering ndo support
bnge: add cpu_rmap support for IRQ affinity
drivers/net/ethernet/broadcom/bnge/Makefile | 4 +-
drivers/net/ethernet/broadcom/bnge/bnge.h | 19 +-
.../net/ethernet/broadcom/bnge/bnge_ethtool.c | 1035 +++++++++++++++++
.../net/ethernet/broadcom/bnge/bnge_filter.c | 684 +++++++++++
.../net/ethernet/broadcom/bnge/bnge_filter.h | 126 ++
.../ethernet/broadcom/bnge/bnge_hwrm_lib.c | 156 ++-
.../ethernet/broadcom/bnge/bnge_hwrm_lib.h | 8 +
.../net/ethernet/broadcom/bnge/bnge_netdev.c | 479 +++++---
.../net/ethernet/broadcom/bnge/bnge_netdev.h | 89 +-
.../net/ethernet/broadcom/bnge/bnge_resc.c | 121 +-
.../net/ethernet/broadcom/bnge/bnge_resc.h | 1 +
.../net/ethernet/broadcom/bnge/bnge_vnic.c | 291 +++++
.../net/ethernet/broadcom/bnge/bnge_vnic.h | 92 ++
13 files changed, 2801 insertions(+), 304 deletions(-)
create mode 100644 drivers/net/ethernet/broadcom/bnge/bnge_filter.c
create mode 100644 drivers/net/ethernet/broadcom/bnge/bnge_filter.h
create mode 100644 drivers/net/ethernet/broadcom/bnge/bnge_vnic.c
create mode 100644 drivers/net/ethernet/broadcom/bnge/bnge_vnic.h
--
2.52.0