This series introduces XDP hints support into ice driver and adds new kfunc hints that utilize hardware capabilities. - patches 01-04 refactors driver descriptor to skb fields processing code, making it more reusable without changing any behavior. - patches 05-08 add support add support for existing hints (timestamp and hash) in ice driver. - patches 09-12 introduce new kfunc hints, namely 2 VLAN tag hints (ctag & stag separately) and "checksum level", which is basically a CHECKSUM_UNNECESSARY indicator. Then those hints are implemented in ice driver. - patches 13-15 adjust xdp_hw_metadata to account for new hints. - in particular, patch 14 lifts the limitation on data_meta size to be 32 or lower, because all the information that needs to be passed into AF_XDP from XDP in xdp_hw_metadata no longer fits into 32 bytes. Aleksander Lobakin (1): net, xdp: allow metadata > 32 Larysa Zaremba (14): ice: make RX hash reading code more reusable ice: make RX HW timestamp reading code more reusable ice: make RX checksum checking code more reusable ice: Make ptype internal to descriptor info processing ice: Introduce ice_xdp_buff ice: Support HW timestamp hint ice: Support RX hash XDP hint ice: Support XDP hints in AF_XDP ZC mode xdp: Add VLAN tag hint ice: Implement VLAN tag hint xdp: Add checksum level hint ice: Implement checksum level hint selftests/bpf: Allow VLAN packets in xdp_hw_metadata selftests/bpf: Add flags and new hints to xdp_hw_metadata Documentation/networking/xdp-rx-metadata.rst | 14 +- drivers/net/ethernet/intel/ice/ice.h | 2 + .../net/ethernet/intel/ice/ice_lan_tx_rx.h | 412 +++++++++--------- drivers/net/ethernet/intel/ice/ice_main.c | 1 + drivers/net/ethernet/intel/ice/ice_ptp.c | 23 +- drivers/net/ethernet/intel/ice/ice_ptp.h | 18 +- drivers/net/ethernet/intel/ice/ice_txrx.c | 13 +- drivers/net/ethernet/intel/ice/ice_txrx.h | 23 +- drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 311 +++++++++++-- drivers/net/ethernet/intel/ice/ice_txrx_lib.h | 13 +- drivers/net/ethernet/intel/ice/ice_xsk.c | 16 +- include/linux/netdevice.h | 3 + include/linux/skbuff.h | 13 +- include/net/xdp.h | 16 +- kernel/bpf/offload.c | 6 + net/core/xdp.c | 36 ++ .../selftests/bpf/progs/xdp_hw_metadata.c | 49 ++- tools/testing/selftests/bpf/xdp_hw_metadata.c | 29 +- tools/testing/selftests/bpf/xdp_metadata.h | 36 +- 19 files changed, 738 insertions(+), 296 deletions(-) -- 2.35.3