• M
    processNicRxFilterChangedEvent: Take appropriate actions for NET_TYPE_NETWORK too · 74acc4ca
    Michal Privoznik 提交于
    Because packets going through the egress from a bridge (where our
    bandwidth limiting takes place) have no information about which
    interface they came from, the QoS rules that we create instead
    use the source MAC address of the packets to make their decisions
    about which QDisc the packet should be in.
    
    One flaw in this is that when a guest changed the MAC address it
    used, packets from the guest would no longer be put into the
    correct QDisc, but would instead be put in an "unprivileged"
    class, resulting in the bandwidth "floor" (minimum guaranteed)
    being no longer honored.
    
    Now that libvirt has infrastructure to capture and respond to
    RX_FILTER_CHANGE events from qemu (sent whenever a guest
    interface modifies its MAC address, among other things), we can
    notice when a guest MAC address changes, and update the QoS rules
    accordingly, so that bandwidth floor is honored even after a
    guest MAC address change.
    Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
    74acc4ca
qemu_driver.c 645.6 KB