linux/drivers/net
Andre Guedes fc9df2a0b5 igc: Enable RX via AF_XDP zero-copy
Add support for receiving packets via AF_XDP zero-copy mechanism.

Add a new flag to 'enum igc_ring_flags_t' to indicate the ring has
AF_XDP zero-copy enabled so proper ring setup is carried out during ring
configuration in igc_configure_rx_ring().

RX buffers can now be allocated via the shared pages mechanism (default
behavior of the driver) or via xsk pool (when AF_XDP zero-copy is
enabled) so a union is added to the 'struct igc_rx_buffer' to cover both
cases.

When AF_XDP zero-copy is enabled, rx buffers are allocated from the xsk
pool using the new helper igc_alloc_rx_buffers_zc() which is the
counterpart of igc_alloc_rx_buffers().

Likewise other Intel drivers that support AF_XDP zero-copy, in igc we
have a dedicated path for cleaning up rx irqs when zero-copy is enabled.
This avoids adding too many checks within igc_clean_rx_irq(), resulting
in a more readable and efficient code since this function is called from
the hot-path of the driver.

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
..
appletalk
arcnet
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-26 12:00:00 -07:00
caif
can can: m_can: m_can_tx_work_queue(): fix tx_skb race condition 2021-05-06 09:24:07 +02:00
dsa net: dsa: qca8k: fix missing unlock on error in qca8k_vlan_(add|del) 2021-05-18 13:39:32 -07:00
ethernet igc: Enable RX via AF_XDP zero-copy 2021-05-20 10:21:42 -07:00
fddi fddi/skfp: fix typo 2021-04-27 14:07:27 -07:00
fjes
hamradio
hippi
hyperv hv_netvsc: Make netvsc/VF binding check both MAC and serial number 2021-04-25 18:19:23 -07:00
ieee802154
ipa net: ipa: fix inter-EE IRQ register definitions 2021-05-06 16:32:10 -07:00
ipvlan
mdio net: mdio: ipq8064: enlarge sleep after read/write operation 2021-05-14 15:31:45 -07:00
mhi
netdevsim
pcs net: pcs: Introducing support for DWC xpcs Energy Efficient Ethernet 2021-05-17 15:53:58 -07:00
phy net: phy: Demote non-compliant kernel-doc headers 2021-05-17 14:12:39 -07:00
plip
ppp Networking changes for 5.13. 2021-04-29 11:57:23 -07:00
slip
team
usb drivers/net: Remove leading spaces in Kconfig 2021-05-17 16:04:54 -07:00
vmxnet3
wan net: wan: fix variable definition style 2021-05-18 13:42:42 -07:00
wireguard
wireless Merge branch 'akpm' (patches from Andrew) 2021-05-07 00:34:51 -07:00
wwan net: wwan: Add WWAN port type attribute 2021-05-17 15:39:49 -07:00
xen-netback
bareudp.c
dummy.c
eql.c
geneve.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-26 12:00:00 -07:00
gtp.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: Use 'hash' iterators to simplify code 2021-04-27 14:03:11 -07:00
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c tun: use DEVICE_ATTR_RO macro 2021-05-19 12:01:44 -07:00
veth.c
virtio_net.c virtio-net: get build_skb() buf by data ptr 2021-05-13 15:51:14 -07:00
vrf.c
vsockmon.c
vxlan.c
xen-netfront.c