linux/drivers/net
Haiyang Zhang 351e158139 hv_netvsc: Add XDP support
This patch adds support of XDP in native mode for hv_netvsc driver, and
transparently sets the XDP program on the associated VF NIC as well.

Setting / unsetting XDP program on synthetic NIC (netvsc) propagates to
VF NIC automatically. Setting / unsetting XDP program on VF NIC directly
is not recommended, also not propagated to synthetic NIC, and may be
overwritten by setting of synthetic NIC.

The Azure/Hyper-V synthetic NIC receive buffer doesn't provide headroom
for XDP. We thought about re-use the RNDIS header space, but it's too
small. So we decided to copy the packets to a page buffer for XDP. And,
most of our VMs on Azure have Accelerated  Network (SRIOV) enabled, so
most of the packets run on VF NIC. The synthetic NIC is considered as a
fallback data-path. So the data copy on netvsc won't impact performance
significantly.

XDP program cannot run with LRO (RSC) enabled, so you need to disable LRO
before running XDP:
        ethtool -K eth0 lro off

XDP actions not yet supported:
        XDP_REDIRECT

Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-01-25 10:43:19 +01:00
..
appletalk
arcnet
bonding
caif
can
dsa net: dsa: mv88e6xxx: Add SERDES stats counters to all 6390 family members 2020-01-20 10:32:03 +01:00
ethernet mlx5-updates-2020-01-22 2020-01-23 21:27:23 +01:00
fddi net: fddi: skfp: Use print_hex_dump() helper 2020-01-25 10:15:49 +01:00
fjes
hamradio
hippi
hyperv hv_netvsc: Add XDP support 2020-01-25 10:43:19 +01:00
ieee802154
ipvlan
netdevsim Merge ra.kernel.org:/pub/scm/linux/kernel/git/netdev/net 2020-01-19 22:10:04 +01:00
phy net: phy: DP83822: Add support for additional DP83825 devices 2020-01-23 21:21:12 +01:00
plip
ppp pptp: support sockets bound to an interface 2020-01-15 23:13:09 +01:00
slip
team
usb net: convert suitable drivers to use phy_do_ioctl_running 2020-01-23 10:49:30 +01:00
vmxnet3 vmxnet3: Remove always false conditional statement 2020-01-08 16:07:21 -08:00
wan hdlx_x25: Fix backwards compat test. 2020-01-21 12:02:25 +01:00
wimax
wireguard net: introduce skb_list_walk_safe for skb segment walking 2020-01-08 15:19:54 -08:00
wireless net: iwlwifi: use skb_list_walk_safe helper for gso segments 2020-01-08 15:19:55 -08:00
xen-netback net: xen-netback: hash.c: Use built-in RCU list checking 2020-01-17 10:57:22 +01:00
dummy.c
eql.c
geneve.c
gtp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-01-09 12:13:43 -08:00
ifb.c
Kconfig drivers/net: netdevsim depends on INET 2020-01-17 11:27:49 +01:00
LICENSE.SRC
loopback.c
macsec.c net: macsec: PN wrap callback 2020-01-14 11:31:41 -08:00
macvlan.c Merge ra.kernel.org:/pub/scm/linux/kernel/git/netdev/net 2020-01-19 22:10:04 +01: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 net: tap: use skb_list_walk_safe helper for gso segments 2020-01-08 15:19:55 -08:00
thunderbolt.c
tun.c xdp: Use bulking for non-map XDP_REDIRECT and consolidate code paths 2020-01-16 20:03:34 -08:00
veth.c xdp: Use bulking for non-map XDP_REDIRECT and consolidate code paths 2020-01-16 20:03:34 -08:00
virtio_net.c xdp: Use bulking for non-map XDP_REDIRECT and consolidate code paths 2020-01-16 20:03:34 -08:00
vrf.c
vsockmon.c
vxlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-01-09 12:13:43 -08:00
xen-netfront.c