• L
    network: setup bridge devices for macTableManager='libvirt' · 8a144c90
    Laine Stump 提交于
    When the bridge device for a network has macTableManager='libvirt' the
    intent is that all kernel management of the bridge's MAC table
    (Forwarding Database, or fdb, in the case of a Linux Host Bridge) be
    disabled, with libvirt handling updates to the table instead. The
    setup required for the bridge itself is:
    
    1) set the "vlan_filtering" property of the bridge device to 1.
    
    2) If the bridge has a "Dummy" tap device used to set a fixed MAC
    address on the bridge (which is always the case for a bridge created
    by libvirt, and never the case for a bridge created by the host system
    network config), turn off learning and unicast_flood on this tap (this
    is needed even though this tap is never IFF_UP, because the kernel
    ignores the IFF_UP flag of devices when using their settings to
    automatically decide whether or not to turn off promiscuous mode for
    any attached device).
    
    (1) is done both for libvirt-created/managed bridges, and for bridges
    that are created by the host system config, while (2) is done only for
    bridges created by libvirt (i.e. for forward modes of nat, routed, and
    isolated bridges)
    
    There is no attempt to turn vlan_filtering off when destroying the
    network because in the case of a libvirt-created bridge, the bridge is
    about to be destroyed anyway, and in the case of a system bridge, if
    the other devices attached to the bridge could operate properly before
    destroying libvirt's network object, they will continue to operate
    properly (this is similar to the way that libvirt will enable
    ip_forwarding whenever a routed/natted network is started, but will
    never attempt to disable it if they are stopped).
    8a144c90
bridge_driver.c 157.8 KB