ice: Add support for AF_XDP
Add zero copy AF_XDP support. This patch adds zero copy support for Tx and Rx; code for zero copy is added to ice_xsk.h and ice_xsk.c. For Tx, implement ndo_xsk_wakeup. As with other drivers, reuse existing XDP Tx queues for this task, since XDP_REDIRECT guarantees mutual exclusion between different NAPI contexts based on CPU ID. In turn, a netdev can XDP_REDIRECT to another netdev with a different NAPI context, since the operation is bound to a specific core and each core has its own hardware ring. For Rx, allocate frames as MEM_TYPE_ZERO_COPY on queues that AF_XDP is enabled. Signed-off-by:Krzysztof Kazimierczak <krzysztof.kazimierczak@intel.com> Co-developed-by:
Maciej Fijalkowski <maciej.fijalkowski@intel.com> Signed-off-by:
Maciej Fijalkowski <maciej.fijalkowski@intel.com> Signed-off-by:
Tony Nguyen <anthony.l.nguyen@intel.com> Signed-off-by:
Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Showing
- drivers/net/ethernet/intel/ice/Makefile 1 addition, 0 deletionsdrivers/net/ethernet/intel/ice/Makefile
- drivers/net/ethernet/intel/ice/ice.h 26 additions, 0 deletionsdrivers/net/ethernet/intel/ice/ice.h
- drivers/net/ethernet/intel/ice/ice_base.c 46 additions, 7 deletionsdrivers/net/ethernet/intel/ice/ice_base.c
- drivers/net/ethernet/intel/ice/ice_ethtool.c 7 additions, 0 deletionsdrivers/net/ethernet/intel/ice/ice_ethtool.c
- drivers/net/ethernet/intel/ice/ice_lib.c 56 additions, 1 deletiondrivers/net/ethernet/intel/ice/ice_lib.c
- drivers/net/ethernet/intel/ice/ice_lib.h 4 additions, 0 deletionsdrivers/net/ethernet/intel/ice/ice_lib.h
- drivers/net/ethernet/intel/ice/ice_main.c 16 additions, 0 deletionsdrivers/net/ethernet/intel/ice/ice_main.c
- drivers/net/ethernet/intel/ice/ice_txrx.c 30 additions, 16 deletionsdrivers/net/ethernet/intel/ice/ice_txrx.c
- drivers/net/ethernet/intel/ice/ice_txrx.h 17 additions, 3 deletionsdrivers/net/ethernet/intel/ice/ice_txrx.h
- drivers/net/ethernet/intel/ice/ice_xsk.c 1181 additions, 0 deletionsdrivers/net/ethernet/intel/ice/ice_xsk.c
- drivers/net/ethernet/intel/ice/ice_xsk.h 72 additions, 0 deletionsdrivers/net/ethernet/intel/ice/ice_xsk.h
Please register or sign in to comment