1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/intel
Andre Guedes 9acf59a752 igc: Enable TX via AF_XDP zero-copy
Add support for transmitting packets via AF_XDP zero-copy mechanism.

The packet transmission itself is implemented by igc_xdp_xmit_zc() which
is called from igc_clean_tx_irq() when the ring has AF_XDP zero-copy
enabled. Likewise i40e and ice drivers, the transmission budget used is
the number of descriptors available on the ring.

A new tx buffer type is introduced to 'enum igc_tx_buffer_type' to
indicate the tx buffer uses memory from xsk pool so it can be properly
cleaned after transmission or when the ring is cleaned.

The I225 controller has only 4 Tx hardware queues so the main difference
between igc and other Intel drivers that support AF_XDP zero-copy is
that there is no tx ring dedicated exclusively to XDP. Instead, tx
rings are shared between the network stack and XDP, and netdev queue
lock is used to ensure mutual exclusion. This is the same approach
implemented to support XDP_TX and XDP_REDIRECT actions.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Signed-off-by: Vedang Patel <vedang.patel@intel.com>
Signed-off-by: Jithu Joseph <jithu.joseph@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-05-20 10:21:42 -07:00
..
e1000 net: e1000: remove repeated words for e1000_hw.c 2021-05-19 12:23:25 -07:00
e1000e net: e1000e: fix misspell word "retreived" 2021-05-19 12:23:25 -07:00
fm10k fm10k: Fix fall-through warnings for Clang 2021-03-23 11:34:02 -07:00
i40e i40e: Remove LLDP frame filters 2021-05-07 09:35:49 -07:00
iavf iavf: redefine the magic number for FDIR GTP-U header fields 2021-04-23 09:34:19 -07:00
ice ice: Support RSS configure removal for AVF 2021-04-22 09:26:22 -07:00
igb igb: Add double-check MTA_REGISTER for i210 and i211 2021-04-16 13:15:39 -07:00
igbvf net: igbvf: use skb_csum_is_sctp instead of protocol check 2021-01-19 14:31:25 -08:00
igc igc: Enable TX via AF_XDP zero-copy 2021-05-20 10:21:42 -07:00
ixgb intel: handle unused assignments 2020-09-25 16:28:59 -07:00
ixgbe Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-17 11:08:07 -07:00
ixgbevf net: intel: Remove unused function pointer typedef ixgbe_mc_addr_itr 2021-04-13 19:08:48 -07:00
e100.c e100: switch from 'pci_' to 'dma_' API 2021-01-28 18:31:18 -08:00
Kconfig ice: replace custom AIM algorithm with kernel's DIM library 2021-04-14 17:00:05 -07:00
Makefile igc: Add skeletal frame for Intel(R) 2.5G Ethernet Controller support 2018-10-17 12:14:54 -07:00