[libvirt] [PATCH 1/2] network: allow <vlan> in type='hostdev' networks

Laine Stump laine at laine.org
Wed Jun 26 06:20:51 UTC 2013


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 | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 5988209..2cf49bb 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -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++) {
-- 
1.7.11.7




More information about the libvir-list mailing list