xemu/net
Vlad Yasevich 02d38fcb2c net: Update netdev peer on link change
When a link change occurs on a backend (like tap), we currently do
not propage such change to the nic.  As a result, when someone turns
off a link on a tap device, for instance, then a guest doesn't see
that change and continues to try to send traffic or run DHCP even
though the lower-layer is disconnected.  This is OK when the network
is set up as a HUB since the the guest may be connected to other HUB
ports too, but when it's set up as a netdev, it makes thinkgs worse.

The patch addresses this by setting the peers link down only when the
peer is not a HUBPORT device.  With this patch, in the following config
  -netdev tap,id=net0 -device e1000,mac=XXXXX,netdev=net0
when net0 link is turned off, the guest e1000 shows lower-layer link
down. This allows guests to boot much faster in such configurations.
With windows guest, it also allows the network to recover properly
since windows will not configure the link-local IPv4 address, and
when the link is turned on, the proper address address is configured.

Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-12-09 13:33:20 +01:00
..
checksum.c net: iovec checksum calculator 2013-03-25 11:13:10 +01:00
clients.h net: Adding netmap network backend 2013-12-09 13:33:19 +01:00
dump.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
eth.c misc: Use g_assert_not_reached for code which is expected to be unreachable 2013-07-27 11:22:54 +04:00
hub.c net: Rename send_queue to incoming_queue 2013-09-06 17:01:26 +02:00
hub.h net: fix qemu_flush_queued_packets() in presence of a hub 2013-02-27 16:10:23 +01:00
Makefile.objs net: Adding netmap network backend 2013-12-09 13:33:19 +01:00
net.c net: Update netdev peer on link change 2013-12-09 13:33:20 +01:00
netmap.c net: Adding netmap network backend 2013-12-09 13:33:19 +01:00
queue.c net: fix unbounded NetQueue 2013-02-27 16:10:39 +01:00
slirp.c fix -net user checks by reordering checks 2013-06-19 12:44:38 +02:00
socket.c net: call socket_set_fast_reuse instead of setting SO_REUSEADDR 2013-10-02 19:20:31 +02:00
tap_int.h tap: multiqueue support 2013-02-01 11:03:02 -06:00
tap-aix.c tap: multiqueue support 2013-02-01 11:03:02 -06:00
tap-bsd.c tap: Use numbered tap/tun devices on all *BSD OS's 2013-09-06 17:01:26 +02:00
tap-haiku.c tap: multiqueue support 2013-02-01 11:03:02 -06:00
tap-linux.c tap: set IFF_ONE_QUEUE per default 2013-02-27 16:10:47 +01:00
tap-linux.h tap: set IFF_ONE_QUEUE per default 2013-02-27 16:10:47 +01:00
tap-solaris.c tap: multiqueue support 2013-02-01 11:03:02 -06:00
tap-win32.c tap: support enabling or disabling a queue 2013-02-01 11:03:02 -06:00
tap.c tap: fix NULL dereference when passing invalid parameters to tap 2013-06-07 15:48:11 +02:00
util.c net: reorganize headers 2012-12-19 08:31:29 +01:00
util.h net: move parse_macaddr() to net/util.[ch] 2009-12-03 09:41:34 -06:00
vde.c net: increase buffer size to accommodate Jumbo frame pkts 2013-03-25 11:14:07 +01:00