[PATCH bpf-next 00/15] new kfunc XDP hints and ice implementation

From: Larysa Zaremba
Date: Fri May 12 2023 - 11:19:47 EST


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