This patchset expose the traditional hardware offload hints to XDP and rely on BTF to expose the layout to users. More advanced use-case with driver specific offloads will likely be in followup patches. The users/consumers are (as described in [1]): - XDP BPF-progs - XDP to SKB conversion gaining HW offloads - AF_XDP can consume BTF info in userspace - Chained BPF-progs can communicate state via metadata This is still RFC as the following features are missing: - Exposing XDP-hints indication in AF_XDP descriptor - Exporting what XDP-hints structs are avail per driver Two drivers i40e and mvneta gets XDP-hints in this patchset. [1] https://github.com/xdp-project/xdp-project/blob/master/conference/LLC2022/xdp_hints_hw_metadata-final.pdf --- Jesper Dangaard Brouer (8): i40e: Refactor i40e_ptp_rx_hwtstamp bpf: export btf functions for modules net: create xdp_hints_common and set functions net: add net_device feature flag for XDP-hints xdp: controlling XDP-hints from BPF-prog via helper i40e: refactor i40e_rx_checksum with helper i40e: add XDP-hints handling net: use XDP-hints in xdp_frame to SKB conversion Lorenzo Bianconi (1): mvneta: add XDP-hints support drivers/net/ethernet/intel/i40e/i40e.h | 1 + drivers/net/ethernet/intel/i40e/i40e_main.c | 34 +++ drivers/net/ethernet/intel/i40e/i40e_ptp.c | 36 +++- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 222 ++++++++++++++++---- drivers/net/ethernet/marvell/mvneta.c | 61 +++++- include/linux/btf.h | 2 + include/linux/netdev_features.h | 3 +- include/net/xdp.h | 181 +++++++++++++++- include/uapi/linux/bpf.h | 43 ++++ kernel/bpf/btf.c | 13 +- net/core/filter.c | 45 ++++ net/core/xdp.c | 73 ++++++- net/ethtool/common.c | 1 + 13 files changed, 644 insertions(+), 71 deletions(-) --