Early RFC *before* I finish converting all drivers... so I can get feedback that might affect the design... XDP have evolved to support several frame sizes, but xdp_buff was not updated with this information. This have caused the side-effect that XDP frame data hard end is not known. It also limited the BPF-helper bpf_xdp_adjust_tail to only shrink the packet. This patchset tries to address this and add packet tail extend/grow. The purpose of the patchset is ALSO to reserve a memory area that can be used for storing extra information, specifically for extending XDP with multi-buffer support. One proposal is to use same layout as skb_shared_info, which is why this area is currently 320 bytes. --- Jesper Dangaard Brouer (15): xdp: add frame size to xdp_buff mvneta: add XDP frame size to driver bnxt: add XDP frame size to driver ixgbe: fix XDP redirect on archs with PAGE_SIZE above 4K ixgbe: add XDP frame size to driver sfc: fix XDP-redirect in this driver sfc: add XDP frame size xdp: allow bpf_xdp_adjust_tail() to grow packet size xdp: clear grow memory in bpf_xdp_adjust_tail() net: XDP-generic determining XDP frame size xdp: xdp_frame add member frame_sz and handle in convert_to_xdp_frame xdp: cpumap redirect use frame_sz and increase skb_tailroom tun: add XDP frame size veth: xdp using frame_sz in veth driver dpaa2-eth: add XDP frame size drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 1 + drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe.h | 17 ++++++++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 17 +++++++----- drivers/net/ethernet/marvell/mvneta.c | 1 + drivers/net/ethernet/sfc/efx_common.c | 9 ++++-- drivers/net/ethernet/sfc/net_driver.h | 6 ++++ drivers/net/ethernet/sfc/rx.c | 3 +- drivers/net/ethernet/sfc/rx_common.c | 6 ++-- drivers/net/tun.c | 2 + drivers/net/veth.c | 15 +++++++++-- include/net/xdp.h | 31 +++++++++++++++++++++- include/uapi/linux/bpf.h | 4 +-- kernel/bpf/cpumap.c | 21 ++------------- net/core/dev.c | 14 ++++++---- net/core/filter.c | 24 ++++++++++++++++- net/core/xdp.c | 7 +++++ 17 files changed, 133 insertions(+), 46 deletions(-) --