[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH] Fix adding ports to OVS bridges without VLAN tags



The introduction of the new VLAN code, along with the fix
from 5e465df6be8bcb00f0b4bff831e91f4042fae272, caused the
addition of OVS ports to fail with the following message:

ovs-vsctl: 00002|vsctl|ERR|: missing column name

This fix takes into account the VLAN arguments are optional,
and correctly sets up the command line to run the "ovs-vsctl"
command to add ports to the OVS bridge.

Signed-off-by: Kyle Mestery <kmestery cisco com>
CC: Eric Blake <eblake redhat com>
---
V2:
  - Use virBufferUse() to check if a buffer is in use. Found
    by Eric Blake.
---
 src/util/virnetdevopenvswitch.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/util/virnetdevopenvswitch.c b/src/util/virnetdevopenvswitch.c
index 00271a0..764f478 100644
--- a/src/util/virnetdevopenvswitch.c
+++ b/src/util/virnetdevopenvswitch.c
@@ -104,9 +104,15 @@ int virNetDevOpenvswitchAddPort(const char *brname, const char *ifname,
     }
 
     cmd = virCommandNew(OVSVSCTL);
+
+    virCommandAddArgList(cmd, "--", "--may-exist", "add-port",
+                        brname, ifname, NULL);
+
+    if (virBufferUse(&buf) != 0)
+        virCommandAddArgList(cmd, virBufferCurrentContent(&buf), NULL);
+
     if (ovsport->profileID[0] == '\0') {
-        virCommandAddArgList(cmd, "--", "--may-exist", "add-port",
-                        brname, ifname, virBufferCurrentContent(&buf),
+        virCommandAddArgList(cmd,
                         "--", "set", "Interface", ifname, attachedmac_ex_id,
                         "--", "set", "Interface", ifname, ifaceid_ex_id,
                         "--", "set", "Interface", ifname, vmid_ex_id,
@@ -114,8 +120,7 @@ int virNetDevOpenvswitchAddPort(const char *brname, const char *ifname,
                         "external-ids:iface-status=active",
                         NULL);
     } else {
-        virCommandAddArgList(cmd, "--", "--may-exist", "add-port",
-                        brname, ifname, virBufferCurrentContent(&buf),
+        virCommandAddArgList(cmd,
                         "--", "set", "Interface", ifname, attachedmac_ex_id,
                         "--", "set", "Interface", ifname, ifaceid_ex_id,
                         "--", "set", "Interface", ifname, vmid_ex_id,
-- 
1.7.11.4


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]