qemu/net
Luigi Rizzo 199ee608f0 net: fix qemu_flush_queued_packets() in presence of a hub
When frontend and backend are connected through a hub as below
(showing only one direction), and the frontend (or in general, all
output ports of the hub) cannot accept more traffic, the backend
queues packets in queue-A.

When the frontend (or in general, one output port) becomes ready again,
quemu tries to flush packets from queue-B, which is unfortunately empty.

  e1000.0 <--[queue B]-- hub0port0(hub)hub0port1 <--[queue A]-- tap.0

To fix this i propose to introduce a new function net_hub_flush()
which is called when trying to flush a queue connected to a hub.

Signed-off-by: Luigi Rizzo <rizzo@iet.unipi.it>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-02-27 16:10:23 +01:00
..
checksum.c Change license from GPLv2 to GPLv2+ 2012-02-01 16:24:54 -06:00
clients.h net: reorganize headers 2012-12-19 08:31:29 +01:00
dump.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
hub.c net: fix qemu_flush_queued_packets() in presence of a hub 2013-02-27 16:10:23 +01: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: move net.c to net/ 2012-12-19 08:29:59 +01:00
net.c net: fix qemu_flush_queued_packets() in presence of a hub 2013-02-27 16:10:23 +01:00
queue.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
slirp.c HMP: add QDict to info callback handler 2013-01-17 10:24:52 -02:00
socket.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01: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: multiqueue support 2013-02-01 11:03:02 -06:00
tap-haiku.c tap: multiqueue support 2013-02-01 11:03:02 -06:00
tap-linux.c tap: multiqueue support 2013-02-01 11:03:02 -06:00
tap-linux.h tap: import linux multiqueue constants 2013-02-01 11:03:01 -06: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: unbreak -netdev tap,fd=X 2013-02-01 18:05:30 -06: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: add missing include file 2012-12-22 12:06:48 +00:00