On Fri, Aug 24, 2012 at 02:39:50PM +0100, Stefan Hajnoczi wrote: > Two networking issues have been observed: > > 1. When the USB network interface and dump net client are on the same "VLAN", > the USB network interface drops packets. This was assumed to be because > the > dump net client can receive packets all the time, whereas the USB network > interface has a single buffer that the guest must empty. > > The (incorrect) fix for #1 was to only broadcast "VLAN" packets when all net > clients can receive. Once this code change was merged a new issue appeared: > > 2. When two NICs are on a "VLAN" they must both be up. If one NIC is not up > then no traffic can flow on the "VLAN". > > This patch series fixes the root cause for #1, namely, that the USB network > interface clobbers its input buffer when usbnet_receive() is called before > the guest has a chance to empty the buffer. > > Then we can revert the "VLAN" flow control change which caused #2. The result > is that both #1 and #2 are now fixed. > > Stefan Hajnoczi (3): > net: clean up usbnet_receive() > net: fix usbnet_receive() packet drops > net: broadcast hub packets if at least one port can receive > > hw/usb/dev-network.c | 49 +++++++++++++++++++++++++++++++++---------------- > net/hub.c | 6 +++--- > 2 files changed, 36 insertions(+), 19 deletions(-) > > -- > 1.7.10.4 > >
Applied to the net tree: https://github.com/stefanha/qemu/commits/net Stefan