Hi! This series from John adds bond offload to the nfp driver. Patch 5 exposes the hash type for NETDEV_LAG_TX_TYPE_HASH to make sure nfp hashing matches that of the software LAG. This may be unnecessarily conservative, let's see what LAG maintainers think :)
John says: This patchset sets up the infrastructure and offloads output actions for when a TC flower rule attempts to egress a packet to a LAG port. Firstly it adds some of the infrastructure required to the flower app and to the nfp core. This includes the ability to change the MAC address of a repr, a function for combining lookup and write to a FW symbol, and the addition of private data to a repr on a per app basis. Patch 6 continues by implementing notifiers that track Linux bonds and communicates to the FW those which enslave reprs, along with the current state of reprs within the bond. Patch 7 ensures bonds are synchronised with FW by receiving and acting upon cmsgs sent to the kernel. These may request that a bond message is retransmitted when FW can process it, or may request a full sync of the bonds defined in the kernel. Patch 8 offloads a flower action when that action requires egressing to a pre-defined Linux bond. John Hurley (8): nfp: add ndo_set_mac_address for representors nfp: nfpcore: add rtsym writing function nfp: flower: check for/turn on LAG support in firmware nfp: flower: add per repr private data for LAG offload net: include hash policy in LAG changeupper info nfp: flower: monitor and offload LAG groups nfp: flower: implement host cmsg handler for LAG nfp: flower: compute link aggregation action drivers/net/bonding/bond_main.c | 27 +- drivers/net/ethernet/netronome/nfp/Makefile | 1 + .../ethernet/netronome/nfp/flower/action.c | 131 +++- .../net/ethernet/netronome/nfp/flower/cmsg.c | 11 +- .../net/ethernet/netronome/nfp/flower/cmsg.h | 14 + .../ethernet/netronome/nfp/flower/lag_conf.c | 726 ++++++++++++++++++ .../net/ethernet/netronome/nfp/flower/main.c | 61 ++ .../net/ethernet/netronome/nfp/flower/main.h | 52 +- .../ethernet/netronome/nfp/flower/offload.c | 2 +- .../net/ethernet/netronome/nfp/nfp_net_repr.c | 1 + .../ethernet/netronome/nfp/nfpcore/nfp_nffw.h | 2 + .../netronome/nfp/nfpcore/nfp_rtsym.c | 43 ++ drivers/net/team/team.c | 1 + include/linux/netdevice.h | 11 + 14 files changed, 1053 insertions(+), 30 deletions(-) create mode 100644 drivers/net/ethernet/netronome/nfp/flower/lag_conf.c --- CC: Jiri Pirko <j...@resnulli.us> CC: Jay Vosburgh <j.vosbu...@gmail.com> CC: Veaceslav Falico <vfal...@gmail.com> CC: Andy Gospodarek <a...@greyhouse.net> -- 2.17.0