[libvirt] [PATCHv2 6/9] network: separate Start/Shutdown functions for new network types

Eric Blake eblake at redhat.com
Wed Jul 20 22:49:43 UTC 2011

On 07/20/2011 12:21 AM, Laine Stump wrote:
> 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.
> ---
> Unchanged from V1.

V1 was acked, and I didn't spot any major differences.

> +error:
> +    if (ret<  0) {
> +        virErrorPtr save_err = virSaveLastError();
> +        int save_errno = errno;

Oops.  virSaveLastError doesn't (currently) preserve errno.  Sounds like 
a separate patch is worthwhile in the meantime, rather than altering 
this one.


Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

More information about the libvir-list mailing list