Bug 1565942

Summary: [OVS] Fail to change vNIC profile on the fly
Product: [oVirt] vdsm Reporter: Germano Veit Michel <gveitmic>
Component: GeneralAssignee: Dan Kenigsberg <danken>
Status: CLOSED WONTFIX QA Contact: Meni Yakove <myakove>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.20.23CC: bugs, mburman, ylavi
Target Milestone: ---Flags: sbonazzo: ovirt-4.3-
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-09-03 10:29:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Germano Veit Michel 2018-04-11 06:33:06 UTC
Description of problem:

Not sure if this is supposed to work yet, but found important to report.

Start scenario:
* Cluster using OVS network
* VM is running with 1 NIC, plugged in logical network "tagged_5", which uses vlan id 5.
* Attempting to change the network profile from tagged_5 to tagged_3 (vid 3) on the fly.

I get this:

2018-04-11 16:20:17,711+10 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.UpdateVmInterfaceVDSCommand] (default task-1) [1c423162-e052-4baf-adb3-430df4d9e4c9] START, UpdateVmInterfaceVDSCommand(HostName = ovirt-h2, VmNicDeviceVDSParameters:{hostId='6c793ac9-6048-41ac-ace8-0b9335b9eded', vm.vm_name='Test-2', nic='VmNic:{id='b49f38bb-5cae-497a-a603-90c1e9bc7c65', vnicProfileId='b805b653-2b07-4c0b-9680-080a71a6fb32', speed='1000', type='3', macAddress='00:1a:4a:16:01:01', linked='true', vmId='1de3f0ef-3392-4d56-a418-5987fbc6e053', vmTemplateId='null'}', vmDevice='VmDevice:{id='VmDeviceId:{deviceId='b49f38bb-5cae-497a-a603-90c1e9bc7c65', vmId='1de3f0ef-3392-4d56-a418-5987fbc6e053'}', device='bridge', type='INTERFACE', specParams='[]', address='{type=pci, slot=0x03, bus=0x00, domain=0x0000, function=0x0}', managed='true', plugged='true', readOnly='false', deviceAlias='net0', customProperties='[]', snapshotId='null', logicalName='null', hostDevice=''}'}), log id: 363448d7

2018-04-11 16:20:17,798+10 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.UpdateVmInterfaceVDSCommand] (default task-1) [1c423162-e052-4baf-adb3-430df4d9e4c9] Failed in 'UpdateVmInterfaceVDS' method

2018-04-11 16:20:17,833+10 ERROR [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (default task-1) [1c423162-e052-4baf-adb3-430df4d9e4c9] EVENT_ID: VDS_BROKER_COMMAND_FAILURE(10,802), VDSM ovirt-h2 command UpdateVmInterfaceVDS failed: General Exception: ("Operation not supported: unable to change config on 'bridge' network type",)

VDSM:

2018-04-11 16:20:17,789+1000 WARN  (jsonrpc/0) [virt.vm] (vmId='1de3f0ef-3392-4d56-a418-5987fbc6e053') Request failed: <?xml version='1.0' encoding='utf-8'?>
<interface type="bridge">
    <address bus="0x00" domain="0x0000" function="0x0" slot="0x03" type="pci" />
    <mac address="00:1a:4a:16:01:01" />
    <model type="virtio" />
    <source bridge="tagged_3" />         <--- wrong?
    <virtualport type="openvswitch" />
    <vlan>
        <tag id="5" />                   <--- wrong?
    </vlan>
    <filterref filter="vdsm-no-mac-spoofing" />
    <link state="up" />
    <alias name="net0" />
    <bandwidth />
</interface>
 (vm:3192)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/vdsm/virt/vm.py", line 3187, in setLinkAndNetwork
    libvirt.VIR_DOMAIN_AFFECT_LIVE)
  File "/usr/lib/python2.7/site-packages/vdsm/virt/virdomain.py", line 98, in f
    ret = attr(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/vdsm/common/libvirtconnection.py", line 130, in wrapper
    ret = f(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/vdsm/common/function.py", line 92, in wrapper
    return func(inst, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 2660, in updateDeviceFlags
    if ret == -1: raise libvirtError ('virDomainUpdateDeviceFlags() failed', dom=self)
libvirtError: Operation not supported: unable to change config on 'bridge' network type

Doesn't look right:
1) Seems to be trying to change the source bridge to tagged_3. Tagged_3 is the logical network name, doesn't make sense as the bridge is the ovs bridge (vdsmbr_MagS1iv6). There is no tagged_3 bridge.
2) vlan id still 5? tagged_3 logical network uses vlan id 3. id (tagged_5) is for the network the vm is currently configured.

Version-Release number of selected component (if applicable):
vdsm-4.20.23-1.el7.centos.x86_64
ovirt-engine-4.2.2.6-1.el7.centos.noarch

How reproducible:
100%

Steps to Reproduce:
1. Use cluster with OVS
2. Attempt to switch vNIC profile on the fly

Comment 1 Dan Kenigsberg 2018-09-03 10:29:52 UTC
We no longer allow direct connection of VMs to OvS, only through external networks provided by OVN and backed by a physical network.

I believe that changing them on fly is possible; please open a fresh bug if this is not the case.