John says: This patchset introduces an alternative to egdev offload by allowing a driver to register for block updates when an external device (e.g. tunnel netdev) is bound to a TC block. Drivers can track new netdevs or register to existing ones to receive information on such events. Based on this, they may register for block offload rules using already existing functions.
The patchset also implements this new indirect block registration in the NFP driver to allow the offloading of tunnel rules. The use of egdev offload (which is currently only used for tunnel offload) is subsequently removed. RFC v2 -> PATCH - removed embedded tracking function from indir block register (now up to driver to clean up after itself) - refactored NFP code due to recent submissions - removed priv list clean function in NFP (list should be cleared by indirect block unregisters) RFC v1->v2: - free allocated owner struct in block_owner_clean function - add geneve type helper function - move test stub in NFP (v1 patch 2) to full tunnel offload implementation via indirect blocks (v2 patches 3-8) John Hurley (6): net: sched: register callbacks for indirect tc block binds nfp: flower: allow non repr netdev offload nfp: flower: increase scope of netdev checking functions nfp: flower: offload tunnel decap rules via indirect TC blocks nfp: flower: remove TC egdev offloads nfp: flower: remove unnecessary code in flow lookup .../ethernet/netronome/nfp/flower/action.c | 28 +- .../net/ethernet/netronome/nfp/flower/cmsg.h | 27 ++ .../net/ethernet/netronome/nfp/flower/main.c | 18 +- .../net/ethernet/netronome/nfp/flower/main.h | 14 +- .../net/ethernet/netronome/nfp/flower/match.c | 38 +-- .../ethernet/netronome/nfp/flower/metadata.c | 12 +- .../ethernet/netronome/nfp/flower/offload.c | 243 +++++++++++------ .../netronome/nfp/flower/tunnel_conf.c | 19 +- include/net/pkt_cls.h | 34 +++ include/net/sch_generic.h | 3 + net/sched/cls_api.c | 256 +++++++++++++++++- 11 files changed, 531 insertions(+), 161 deletions(-) -- 2.17.1