On Thu, Nov 21, 2013 at 09:05:51PM -0500, Vlad Yasevich wrote: > 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 <vyase...@redhat.com> > --- > net/net.c | 26 +++++++++++++++++--------- > 1 file changed, 17 insertions(+), 9 deletions(-)
Merged for QEMU 1.8. Link state changes can lead to weird bugs so I don't want to rush this into QEMU 1.7. Thanks, applied to my net-next tree: https://github.com/stefanha/qemu/commits/net-next Stefan