Update ixgbevf with standard XDP features by utilizing libeth library.

First, in patches 1-4 refactor existing general and XDP Rx code
to use libeth fill queues. Then in patches 5-7, add support for
XDP multi-buffer and XDP_REDIRECT (target and source). Patch 8 addresses
particularities of one HW type by using a software header split.
Patches 9-10 address page pool not being reconfigured on MTU change.

v2->v3:
* remove IXGBEVF_MAX_FRAME_BUILD_SKB one patch earlier
* remove __IXGBEVF_RX_3K_BUFFER (not used anymore)
* correct stats for mbuf packets when XDP verdict is other than XDP_PASS
* improve commit message in the cleanup patch
* improve error handling when page pool creation fails
* free data buffer when the corresponding header buffer allocation fails
* when some Rx buffers cannot be allocated, break instead of returning,
  so allocated buffers are not lost

v1->v2:
* fix wrong return value when allocating descriptor memory fails
* tag xdp_prog in ring structure as RCU

Larysa Zaremba (9):
  ixgbevf: remove legacy Rx
  ixgbevf: do not share pages between packets
  ixgbevf: use libeth in Rx processing
  ixgbevf: branch prediction and cleanup
  ixgbevf: support XDP multi-buffer on Rx path
  ixgbevf: XDP_TX in multi-buffer through libeth
  ixgbevf: support XDP_REDIRECT and .ndo_xdp_xmit
  ixgbevf: reconfigure page pool when reallocating buffers
  ixgbevf: allow changing MTU when XDP program is attached

Natalia Wochtman (1):
  ixgbevf: add pseudo header split

 drivers/net/ethernet/intel/Kconfig            |    1 +
 drivers/net/ethernet/intel/ixgbevf/defines.h  |    2 +-
 drivers/net/ethernet/intel/ixgbevf/ethtool.c  |   48 -
 drivers/net/ethernet/intel/ixgbevf/ixgbevf.h  |   99 +-
 .../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 1117 +++++++----------
 include/net/libeth/xdp.h                      |    2 +-
 6 files changed, 499 insertions(+), 770 deletions(-)

-- 
2.52.0

Reply via email to