[libvirt] [PATCHv2 4/4] network: make network driver vlan-aware

Eric Blake eblake at redhat.com
Tue Aug 14 23:14:36 UTC 2012


On 08/14/2012 01:15 AM, Laine Stump wrote:
> The network driver now looks for the vlan element in network and
> portgroup objects, and logs an error at network define time if a vlan
> is requested for a network type that doesn't support it. (Currently
> vlan configuration is only supported for openvswitch networks, and
> networks used to do hostdev assignment of SR-IOV VFs.)
> 
> At runtime, the three potential sources of vlan information are
> examined in this order: interface, chosen portgroup, network, and the
> first that is non-empty is used.  Another check for valid network type
> is made at this time, since the interface may have requested a vlan (a
> legal thing to have in the interface config, since it's not known
> until runtime if the chosen network will actually support it).
> 
> Since we must also check for domains requesting vlans for unsupported
> connection types even if they are type='network', and since
> networkAllocateActualDevice() is being called in exactly the correct
> places, and has all of the necessary information to check, I slightly
> modified the logic of that function so that interfaces that aren't
> type='network' don't just return immediately. Instead, they also
> perform all the same validation for supported features. Because of
> this, it's not necessary to make this identical check in the other
> three places that would normally require it: 1) qemu domain startup,
> 2) qemu device hotplug, 3) lxc domain startup.
> 
> This can be seen as a first step in consolidating network-related
> functionality into the network driver, rather than having copies of
> the same code spread around in multiple places; this will make it
> easier to split the network parts off into a separate deamon, as we've

s/deamon/daemon/

> discussed recently.
> ---
>  src/network/bridge_driver.c | 114 ++++++++++++++++++++++++++++++++++++++++----
>  1 file changed, 104 insertions(+), 10 deletions(-)

Not much cleanup yet, but I agree with the idea of consolidating things
into common routines where possible, and this does lay a groundwork for
that.

> +static int
> +networkValidate(virNetworkDefPtr def)
> +{
> +    int ii;
> +    bool vlanUsed, vlanAllowed;
> +
> +    /* The only type of networks that currently support transparent
> +     * vlan configuration are those using hostdev sr-iov devices from
> +     * a pool, and those using an openvswitch bridge.

Spelling of openvswitch.

ACK with nits fixed.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120814/f2e1688a/attachment-0001.sig>


More information about the libvir-list mailing list