Add XDP support (w/o XSk for now) to the idpf driver using the libeth_xdp sublib. All possible verdicts, .ndo_xdp_xmit(), multi-buffer etc. are here. In general, nothing outstanding comparing to ice, except performance -- let's say, up to 2x for .ndo_xdp_xmit() on certain platforms and scenarios. idpf doesn't support VLAN Rx offload, so only the hash hint is available for now. Patches 1-6 are prereqs, without which XDP would either not work at all or work slower/worse/... Alexander Lobakin (8): idpf: fix Rx descriptor ready check barrier in splitq idpf: use a saner limit for default number of queues to allocate idpf: link NAPIs to queues idpf: add support for nointerrupt queues idpf: use generic functions to build xdp_buff and skb idpf: add support for XDP on Rx idpf: add support for .ndo_xdp_xmit() idpf: add XDP RSS hash hint Joshua Hay (6): idpf: add support for Tx refillqs in flow scheduling mode idpf: improve when to set RE bit logic idpf: simplify and fix splitq Tx packet rollback error path idpf: replace flow scheduling buffer ring with buffer pool idpf: stop Tx if there are insufficient buffer resources idpf: remove obsolete stashing code Michal Kubiak (4): idpf: add 4-byte completion descriptor definition idpf: remove SW marker handling from NAPI idpf: prepare structures to support XDP idpf: implement XDP_SETUP_PROG in ndo_bpf for splitq drivers/net/ethernet/intel/idpf/Kconfig | 2 +- drivers/net/ethernet/intel/idpf/Makefile | 2 + drivers/net/ethernet/intel/idpf/idpf.h | 31 +- .../net/ethernet/intel/idpf/idpf_lan_txrx.h | 6 +- drivers/net/ethernet/intel/idpf/idpf_txrx.h | 217 ++-- .../net/ethernet/intel/idpf/idpf_virtchnl.h | 1 - drivers/net/ethernet/intel/idpf/xdp.h | 172 +++ drivers/net/ethernet/intel/idpf/idpf_dev.c | 11 +- .../net/ethernet/intel/idpf/idpf_ethtool.c | 6 +- drivers/net/ethernet/intel/idpf/idpf_lib.c | 67 +- drivers/net/ethernet/intel/idpf/idpf_main.c | 1 + .../ethernet/intel/idpf/idpf_singleq_txrx.c | 171 ++- drivers/net/ethernet/intel/idpf/idpf_txrx.c | 1142 +++++++---------- drivers/net/ethernet/intel/idpf/idpf_vf_dev.c | 11 +- .../net/ethernet/intel/idpf/idpf_virtchnl.c | 173 +-- drivers/net/ethernet/intel/idpf/xdp.c | 452 +++++++ 16 files changed, 1541 insertions(+), 924 deletions(-) create mode 100644 drivers/net/ethernet/intel/idpf/xdp.h create mode 100644 drivers/net/ethernet/intel/idpf/xdp.c --- Sending to get reviews and to trigger Intel's validation. Joshua's series[0] is included and goes first to resolve conflicts. It is *not* a part of the actual series.