• L
    network: separate Start/Shutdown functions for new network types · b48e81bf
    Laine Stump 提交于
    Previously all networks were composed of bridge devices created and
    managed by libvirt, and the same operations needed to be done for all
    of them when they were started and stopped (create and start the
    bridge device, configure its MAC address and IP address, add iptables
    rules). The new network types are (for now at least) managed outside
    of libvirt, and the network object is used only to contain information
    about the network, which is then used as each individual guest
    connects itself.
    
    This means that when starting/stopping one of these new networks, we
    really want to do nothing, aside from marking the network as
    active/inactive.
    
    This has been setup as toplevel Start/Shutdown functions that do the
    small bit of common stuff, then have a switch statement to execute
    network type-specific start/shutdown code, then do a bit more common
    code. The type-specific functions called for the new host bridge and
    macvtap based types are currently empty.
    
    In the future these functions may actually do something, and we will
    surely add more functions that are similarly patterned. Once
    everything has settled, we can make a table of "sub-driver" function
    pointers for each network type, and store a pointer to that table in
    the network object, then we can replace the switch statements with
    calls to functions in the table.
    
    The final step in this will be to add a new table (and corresponding
    new functions) for new network types as they are added.
    b48e81bf
bridge_driver.c 85.6 KB