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@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list