Skip to content
  • Luigi Rizzo's avatar
    net: fix qemu_flush_queued_packets() in presence of a hub · 199ee608
    Luigi Rizzo authored
    
    
    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: default avatarLuigi Rizzo <rizzo@iet.unipi.it>
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    199ee608