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. John Hurley (8): net: sched: register callbacks for indirect tc block binds net: add netif_is_geneve() nfp: flower: include geneve as supported offload tunnel type nfp: flower: allow non repr netdev offload nfp: flower: add infastructure for indirect TC block register nfp: flower: offload tunnel decap rules via indirect TC blocks nfp: flower: remove TC egdev offloads nfp: flower: remove unnecessary code in flow lookup drivers/net/ethernet/netronome/nfp/flower/action.c | 29 +- drivers/net/ethernet/netronome/nfp/flower/cmsg.h | 13 + drivers/net/ethernet/netronome/nfp/flower/main.c | 25 +- drivers/net/ethernet/netronome/nfp/flower/main.h | 17 +- drivers/net/ethernet/netronome/nfp/flower/match.c | 38 +-- .../net/ethernet/netronome/nfp/flower/metadata.c | 12 +- .../net/ethernet/netronome/nfp/flower/offload.c | 246 +++++++++++------ .../ethernet/netronome/nfp/flower/tunnel_conf.c | 11 +- include/net/geneve.h | 6 + include/net/pkt_cls.h | 56 ++++ include/net/sch_generic.h | 3 + net/sched/cls_api.c | 299 ++++++++++++++++++++- 12 files changed, 609 insertions(+), 146 deletions(-) -- 2.7.4