bpf: expose information about supported xdp metadata kfunc
authorStanislav Fomichev <sdf@google.com>
Wed, 13 Sep 2023 17:13:49 +0000 (10:13 -0700)
committerMartin KaFai Lau <martin.lau@kernel.org>
Fri, 15 Sep 2023 18:26:58 +0000 (11:26 -0700)
commita9c2a608549bb1a2363d289d63907640afcf22af
tree00e21fcf6e3ae2a3bbb5061f0dab1082350c3f47
parentfc45c5b642dbcac3bb10f4f904e4b863233e5369
bpf: expose information about supported xdp metadata kfunc

Add new xdp-rx-metadata-features member to netdev netlink
which exports a bitmask of supported kfuncs. Most of the patch
is autogenerated (headers), the only relevant part is netdev.yaml
and the changes in netdev-genl.c to marshal into netlink.

Example output on veth:

$ ip link add veth0 type veth peer name veth1 # ifndex == 12
$ ./tools/net/ynl/samples/netdev 12

Select ifc ($ifindex; or 0 = dump; or -2 ntf check): 12
   veth1[12]    xdp-features (23): basic redirect rx-sg xdp-rx-metadata-features (3): timestamp hash xdp-zc-max-segs=0

Cc: netdev@vger.kernel.org
Cc: Willem de Bruijn <willemb@google.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Link: https://lore.kernel.org/r/20230913171350.369987-3-sdf@google.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Documentation/netlink/specs/netdev.yaml
Documentation/networking/xdp-rx-metadata.rst
include/net/xdp.h
include/uapi/linux/netdev.h
kernel/bpf/offload.c
net/core/netdev-genl.c
net/core/xdp.c
tools/include/uapi/linux/netdev.h