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

Kyle Mestery (kmestery) kmestery at cisco.com
Thu Aug 30 18:54:09 UTC 2012


This fix is critical for the release tomorrow (0.10.1 I believe), as without it, adding
ports to OVS bridges without a VLAN setup will fail.

Thanks,
Kyle

On Aug 30, 2012, at 1:53 PM, Kyle Mestery wrote:

> 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 at cisco.com>
> ---
> 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..fcf6d91 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 (virBufferCurrentContent(&buf) != "")
> +        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
> 





More information about the libvir-list mailing list