xdp: support simultaneous driver and hw XDP attachment
authorJakub Kicinski <jakub.kicinski@netronome.com>
Thu, 12 Jul 2018 03:36:41 +0000 (20:36 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 13 Jul 2018 18:26:35 +0000 (20:26 +0200)
commita25717d2b604347d9af8da81deea7b08e8c94220
treeb7397a15ecf41c12d4b968e858216a190057c89c
parent05296620f6d14dce0030b87e1e57891a770fb65c
xdp: support simultaneous driver and hw XDP attachment

Split the query of HW-attached program from the software one.
Introduce new .ndo_bpf command to query HW-attached program.
This will allow drivers to install different programs in HW
and SW at the same time.  Netlink can now also carry multiple
programs on dump (in which case mode will be set to
XDP_ATTACHED_MULTI and user has to check per-attachment point
attributes, IFLA_XDP_PROG_ID will not be present).  We reuse
IFLA_XDP_PROG_ID skb space for second mode, so rtnl_xdp_size()
doesn't need to be updated.

Note that the installation side is still not there, since all
drivers currently reject installing more than one program at
the time.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
drivers/net/netdevsim/bpf.c
include/linux/netdevice.h
include/uapi/linux/if_link.h
net/core/dev.c
net/core/rtnetlink.c