[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