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
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
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
dummy.c
eql.c eql: dont rely on HZ=100 2012-03-27 22:45:26 -04:00
ifb.c
Kconfig
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
Makefile
mdio.c
mii.c
netconsole.c
rionet.c rionet: fix page allocation order of rionet_active 2012-04-01 23:17:16 -04:00
sb1000.c
Space.c
sungem_phy.c
tun.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
veth.c
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