mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
virNetDevOpenvswitchUpdateVlan: fix vlan tag update error
We try to update vlan tag by running virsh update-device command, libvirtd will report ovs-vsctl arguments error. Vlan tag update funtion does't consider the xml with no vlan configured circumstances. The steps to reproduce the problem: 1 define and start domain with its vlan configured as: <interface type='bridge'> <mac address='52:54:00:9e:bb:ac'/> <source bridge='ovs-br0'/> <vlan> <tag id='10'/> </vlan> <virtualport type='openvswitch'> </virtualport> <target dev='vnet4.0'/> <model type='virtio'/> <driver name='vhost'/> </interface> 2 define and run virsh update-device command with no vlan configured as: <interface type='bridge'> <mac address='52:54:00:9e:bb:ac'/> <source bridge='ovs-br0'/> <virtualport type='openvswitch'> </virtualport> <target dev='vnet4.0'/> <model type='virtio'/> <driver name='vhost'/> </interface> #virsh update-device dom-id novlan.xml 3 virsh command returned error, and we got an error in libvirtd.log: error : virCommandWait:2584 : internal error: exit status 1: ovs-vsctl: 'set' command requires at least 3 arguments . Child process (ovs-vsctl --timeout=5 -- --if-exists clear Port vnet4.0 tag -- --if-exists clear Port vnet4.0 trunk -- --if-exists clear Port vnet4.0 vlan_mode -- --if-exists set Port vnet4.0) unexpected error : virNetDevOpenvswitchUpdateVlan:540 : internal error: Unable to set vlan configuration on port vnet4.0 Signed-off-by: Tu Qiang <tu.qiang35@zte.com.cn> Signed-off-by: Yi Wang <wang.yi59@zte.com.cn> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
89b8b3662e
commit
21c55a45ef
@ -605,8 +605,10 @@ int virNetDevOpenvswitchUpdateVlan(const char *ifname,
|
||||
virCommandAddArgList(cmd,
|
||||
"--", "--if-exists", "clear", "Port", ifname, "tag",
|
||||
"--", "--if-exists", "clear", "Port", ifname, "trunk",
|
||||
"--", "--if-exists", "clear", "Port", ifname, "vlan_mode",
|
||||
"--", "--if-exists", "set", "Port", ifname, NULL);
|
||||
"--", "--if-exists", "clear", "Port", ifname, "vlan_mode", NULL);
|
||||
|
||||
if (virtVlan && virtVlan->nTags > 0)
|
||||
virCommandAddArgList(cmd, "--", "--if-exists", "set", "Port", ifname, NULL);
|
||||
|
||||
virNetDevOpenvswitchConstructVlans(cmd, virtVlan);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user