]> xenbits.xensource.com Git - people/dariof/libvirt.git/commitdiff
network: allow <vlan> in type='hostdev' networks
authorLaine Stump <laine@laine.org>
Tue, 25 Jun 2013 23:32:07 +0000 (19:32 -0400)
committerLaine Stump <laine@laine.org>
Wed, 26 Jun 2013 07:25:19 +0000 (03:25 -0400)
Although SRIOV network cards support setting a vlan tag on their
virtual functions, and although setting this vlan tag via a <vlan>
element in a domain's <interface> works, setting a vlan tag for these
devices in a <network> definition, or in a network <portgroup>
definition is also supposed to work (and the comment that validates
<vlan> usage even says that!). However, the check to allow it only
checked for an openvswitch network, so attempts to add <vlan> to a
network of type='hostdev' would fail.

src/network/bridge_driver.c

index 598820995db3502dc1b5d871a04c2c50dd821c9c..2cf49bbcef9e7078ebc34155b974534b41948776 100644 (file)
@@ -3154,9 +3154,11 @@ networkValidate(struct network_driver *driver,
      * a pool, and those using an Open vSwitch bridge.
      */
 
-    vlanAllowed = (def->forward.type == VIR_NETWORK_FORWARD_BRIDGE &&
+    vlanAllowed = ((def->forward.type == VIR_NETWORK_FORWARD_BRIDGE &&
                    def->virtPortProfile &&
-                   def->virtPortProfile->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH);
+                   def->virtPortProfile->virtPortType
+                    == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) ||
+                   def->forward.type == VIR_NETWORK_FORWARD_HOSTDEV);
 
     vlanUsed = def->vlan.nTags > 0;
     for (ii = 0; ii < def->nPortGroups; ii++) {