linux/drivers/net
Jason Wang 586d17c5a0 virtio-net: send gratuitous packets when needed
As hypervior does not have the knowledge of guest network configuration, it's
better to ask guest to send gratuitous packets when needed.

This patch implements VIRTIO_NET_F_GUEST_ANNOUNCE feature: hypervisor would
notice the guest when it thinks it's time for guest to announce the link
presnece. Guest tests VIRTIO_NET_S_ANNOUNCE bit during config change interrupt
and woule send gratuitous packets through netif_notify_peers() and ack the
notification through ctrl vq.

We need to make sure the atomicy of read and ack in guest otherwise we may ack
more times than being notified. This is done through handling the whole config
change interrupt in an non-reentrant workqueue.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-04-15 03:23:31 -04:00
..
appletalk Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
arcnet Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
bonding bonding: Fixup get_tx_queue() op second arg type. 2012-04-13 15:02:35 -04:00
caif caif-hsi: Postpone init of HSI until open() 2012-04-13 11:37:37 -04:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-10 14:30:45 -04:00
cris Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
dsa drivers/net: dsa/mv88e6xxx.c files need linux/module.h 2012-01-24 15:44:50 -05:00
ethernet net: Fix spelling typo in net 2012-04-14 15:29:02 -04:00
fddi
hamradio Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hippi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-10 14:30:45 -04:00
hyperv net/hyperv: Add flow control based on hi/low watermark 2012-04-03 17:47:15 -04:00
irda net: Fix spelling typo in net 2012-04-14 15:29:02 -04:00
phy net: Remove redundant spi driver bus initialization 2012-04-13 13:13:38 -04:00
plip Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ppp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-10 14:30:45 -04:00
slip Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
team team: add missed "statics" 2012-04-11 10:03:52 -04:00
tokenring net/tokenring: use module_pci_driver 2012-04-14 15:20:04 -04:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-10 14:30:45 -04:00
vmxnet3 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-03-05 21:16:26 -05:00
wan net: Fix spelling typo in net 2012-04-14 15:29:02 -04:00
wimax net: Fix spelling typo in net 2012-04-14 15:29:02 -04:00
wireless net: Fix spelling typo in net 2012-04-14 15:29:02 -04:00
xen-netback drivers/net: Remove unnecessary k.alloc/v.alloc OOM messages 2012-01-31 16:20:21 -05:00
dummy.c net: use eth_hw_addr_random() and reset addr_assign_type 2012-02-15 15:34:17 -05:00
eql.c eql: dont rely on HZ=100 2012-03-27 22:45:26 -04:00
ifb.c net: replace random_ether_addr() with eth_hw_addr_random() 2012-02-15 15:34:16 -05:00
Kconfig Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
LICENSE.SRC
loopback.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
macvlan.c macvlan: Stop using NLA_PUT*(). 2012-04-02 04:33:43 -04:00
macvtap.c security: trim security.h 2012-02-14 10:45:42 +11:00
Makefile Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
mdio.c ethtool, mdio, mii: Specify MDIO information fields in struct ethtool_cmd 2012-03-01 16:41:26 -05:00
mii.c ethtool, mdio, mii: Specify MDIO information fields in struct ethtool_cmd 2012-03-01 16:41:26 -05:00
netconsole.c drivers/net: Remove unnecessary k.alloc/v.alloc OOM messages 2012-01-31 16:20:21 -05:00
rionet.c rionet: fix page allocation order of rionet_active 2012-04-01 23:17:16 -04:00
sb1000.c
Space.c CS89x0 : add platform driver support 2012-02-01 16:49:50 +01:00
sungem_phy.c
tun.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
veth.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-02-19 16:03:15 -05:00
virtio_net.c virtio-net: send gratuitous packets when needed 2012-04-15 03:23:31 -04:00
xen-netfront.c Two fixes for regressions: 2012-04-06 17:54:53 -07:00