In this patchset the rx-flow filters functionality and vlan filter offloads are implemented.
The rules in NIC hardware have fixed order and priorities. To support this, the locations of filters from ethtool perspective are also fixed: * Locations 0 - 15 for VLAN ID filters * Locations 16 - 31 for L2 EtherType and PCP filters * Locations 32 - 39 for L3/L4 5-tuple filters (locations 32, 36 for IPv6) Dmitry Bogdanov (6): net: aquantia: add rx-flow filter definitions net: aquantia: add infrastructure for ntuple rules net: aquantia: add support of L3/L4 ntuple filters net: aquantia: add vlan id to rx flow filters net: aquantia: add ethertype and PCP to rx flow filters net: aquantia: add support of rx-vlan-filter offload drivers/net/ethernet/aquantia/atlantic/Makefile | 1 + drivers/net/ethernet/aquantia/atlantic/aq_common.h | 2 +- .../net/ethernet/aquantia/atlantic/aq_ethtool.c | 31 + .../net/ethernet/aquantia/atlantic/aq_filters.c | 876 +++++++++++++++++++++ .../net/ethernet/aquantia/atlantic/aq_filters.h | 36 + drivers/net/ethernet/aquantia/atlantic/aq_hw.h | 29 + drivers/net/ethernet/aquantia/atlantic/aq_main.c | 58 +- drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 2 - drivers/net/ethernet/aquantia/atlantic/aq_nic.h | 21 +- .../net/ethernet/aquantia/atlantic/aq_pci_func.c | 2 + .../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 162 +++- .../ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c | 109 +++ .../ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h | 48 ++ .../aquantia/atlantic/hw_atl/hw_atl_llh_internal.h | 135 +++- .../aquantia/atlantic/hw_atl/hw_atl_utils.h | 58 ++ 15 files changed, 1533 insertions(+), 37 deletions(-) create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_filters.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_filters.h -- 2.7.4