Ok, found it. The issue is right here: <interface type="bridge"> <mac address="00:1a:4a:16:01:54" /> <model type="virtio" /> <source bridge="br-int" /> <virtualport type="openvswitch" /> <link state="up" /> <boot order="2" /> <bandwidth /> <virtualport type="openvswitch"><parameters interfaceid="912cba79-982e-4a87-868e-241fedccb59a" />
</virtualport> </interface>
There are two elements for virtualport, the first without id and the second with. On h2 I had fixed this which was the patch I posted earlier although I switched back to use br-int after understanding that was the correct way. When that hook was copied to h1 the port gets attached fine.
Patch with updated testcase attached. /Sverker Den 2017-01-09 kl. 10:41, skrev Sverker Abrahamsson:
This is the content of vdsm.log on h1 at this time:2017-01-06 20:54:12,636 INFO (jsonrpc/7) [jsonrpc.JsonRpcServer] RPC call VM.create succeeded in 0.01 seconds (__init__:515) 2017-01-06 20:54:12,636 INFO (vm/6dd5291e) [virt.vm] (vmId='6dd5291e-6556-4d29-8b4e-ea896e627645') VM wrapper has started (vm:1901) 2017-01-06 20:54:12,636 INFO (vm/6dd5291e) [vds] prepared volume path: /rhev/data-center/mnt/h2-int.limetransit.com:_var_lib_exports_iso/1d49c4bc-0fec-4503-a583-d476fa3a370d/images/11111111-1111-1111-1111-111111111111/CentOS-7-x86_64-NetInstall-1611.iso (clientIF:374)2017-01-06 20:54:12,743 INFO (vm/6dd5291e) [root] (hooks:108) 2017-01-06 20:54:12,847 INFO (vm/6dd5291e) [root] (hooks:108)2017-01-06 20:54:12,863 INFO (vm/6dd5291e) [virt.vm] (vmId='6dd5291e-6556-4d29-8b4e-ea896e627645') <?xml version='1.0' encoding='UTF-8'?><domain xmlns:ovirt="http://ovirt.org/vm/tune/1.0" type="kvm"> <name>CentOS7_3</name> <uuid>6dd5291e-6556-4d29-8b4e-ea896e627645</uuid> <memory>1048576</memory> <currentMemory>1048576</currentMemory> <maxMemory slots="16">4294967296</maxMemory> <vcpu current="1">16</vcpu> <devices> <channel type="unix"> <target name="com.redhat.rhevm.vdsm" type="virtio" /><source mode="bind" path="/var/lib/libvirt/qemu/channels/6dd5291e-6556-4d29-8b4e-ea896e627645.com.redhat.rhevm.vdsm" /></channel> <channel type="unix"> <target name="org.qemu.guest_agent.0" type="virtio" /><source mode="bind" path="/var/lib/libvirt/qemu/channels/6dd5291e-6556-4d29-8b4e-ea896e627645.org.qemu.guest_agent.0" /></channel> <input bus="ps2" type="mouse" /> <memballoon model="virtio" /> <controller index="0" model="virtio-scsi" type="scsi" /> <controller index="0" ports="16" type="virtio-serial" /> <video><model heads="1" ram="65536" type="qxl" vgamem="16384" vram="32768" /></video><graphics autoport="yes" defaultMode="secure" passwd="*****" passwdValidTo="1970-01-01T00:00:01" port="-1" tlsPort="-1" type="spice"><channel mode="secure" name="main" /> <channel mode="secure" name="inputs" /> <channel mode="secure" name="cursor" /> <channel mode="secure" name="playback" /> <channel mode="secure" name="record" /> <channel mode="secure" name="display" /> <channel mode="secure" name="smartcard" /> <channel mode="secure" name="usbredir" /> <listen network="vdsm-ovirtmgmt" type="network" /> </graphics> <interface type="bridge"> <mac address="00:1a:4a:16:01:54" /> <model type="virtio" /> <source bridge="br-int" /> <virtualport type="openvswitch" /> <link state="up" /> <boot order="2" /> <bandwidth /> <virtualport type="openvswitch"><parameters interfaceid="912cba79-982e-4a87-868e-241fedccb59a" /></virtualport> </interface> <disk device="cdrom" snapshot="no" type="file"><source file="/rhev/data-center/mnt/h2-int.limetransit.com:_var_lib_exports_iso/1d49c4bc-0fec-4503-a583-d476fa3a370d/images/11111111-1111-1111-1111-111111111111/CentOS-7-x86_64-NetInstall-1611.iso" startupPolicy="optional" /><target bus="ide" dev="hdc" /> <readonly /> <boot order="1" /> </disk> <channel type="spicevmc"> <target name="com.redhat.spice.0" type="virtio" /> </channel> </devices> <metadata> <ovirt:qos /> </metadata> <os> <type arch="x86_64" machine="pc-i440fx-rhel7.2.0">hvm</type> <smbios mode="sysinfo" /> <bootmenu enable="yes" timeout="10000" /> </os> <sysinfo type="smbios"> <system> <entry name="manufacturer">oVirt</entry> <entry name="product">oVirt Node</entry> <entry name="version">7-3.1611.el7.centos</entry><entry name="serial">62f1adff-b29e-4a7c-abba-c2c4c73248c6</entry> <entry name="uuid">6dd5291e-6556-4d29-8b4e-ea896e627645</entry></system> </sysinfo> <clock adjustment="0" offset="variable"> <timer name="rtc" tickpolicy="catchup" /> <timer name="pit" tickpolicy="delay" /> <timer name="hpet" present="no" /> </clock> <features> <acpi /> </features> <cpu match="exact"> <model>SandyBridge</model> <topology cores="1" sockets="16" threads="1" /> <numa> <cell cpus="0" memory="1048576" /> </numa> </cpu> </domain> (vm:1988)2017-01-06 20:54:13,046 INFO (libvirt/events) [virt.vm] (vmId='6dd5291e-6556-4d29-8b4e-ea896e627645') CPU running: onResume (vm:4863) 2017-01-06 20:54:13,058 INFO (vm/6dd5291e) [virt.vm] (vmId='6dd5291e-6556-4d29-8b4e-ea896e627645') Starting connection (guestagent:245) 2017-01-06 20:54:13,060 INFO (vm/6dd5291e) [virt.vm] (vmId='6dd5291e-6556-4d29-8b4e-ea896e627645') CPU running: domain initialization (vm:4863) 2017-01-06 20:54:15,154 INFO (jsonrpc/6) [jsonrpc.JsonRpcServer] RPC call Host.getVMFullList succeeded in 0.01 seconds (__init__:515) 2017-01-06 20:54:17,571 INFO (periodic/2) [dispatcher] Run and protect: getVolumeSize(sdUUID=u'2ee54fb8-48f2-4576-8cff-f2346504b08b', spUUID=u'584ebd64-0268-0193-025b-00000000038e', imgUUID=u'5a3aae57-ffe0-4a3b-aa87-8461669db7f9', volUUID=u'b6a88789-fcb1-4d3e-911b-2a4d3b6c69c7', options=None) (logUtils:49) 2017-01-06 20:54:17,573 INFO (periodic/2) [dispatcher] Run and protect: getVolumeSize, Return response: {'truesize': '1859723264', 'apparentsize': '21474836480'} (logUtils:52) 2017-01-06 20:54:21,211 INFO (periodic/2) [dispatcher] Run and protect: repoStats(options=None) (logUtils:49) 2017-01-06 20:54:21,212 INFO (periodic/2) [dispatcher] Run and protect: repoStats, Return response: {u'2ee54fb8-48f2-4576-8cff-f2346504b08b': {'code': 0, 'actual': True, 'version': 3, 'acquired': True, 'delay': '0.000936552', 'lastCheck': '1.4', 'valid': True}, u'1d49c4bc-0fec-4503-a583-d476fa3a370d': {'code': 0, 'actual': True, 'version': 0, 'acquired': True, 'delay': '0.000960248', 'lastCheck': '1.4', 'valid': True}} (logUtils:52) 2017-01-06 20:54:23,543 INFO (jsonrpc/2) [jsonrpc.JsonRpcServer] RPC call Host.getAllVmStats succeeded in 0.00 seconds (__init__:515) 2017-01-06 20:54:23,641 INFO (jsonrpc/1) [jsonrpc.JsonRpcServer] RPC call Host.getAllVmIoTunePolicies succeeded in 0.00 seconds (__init__:515) 2017-01-06 20:54:24,918 INFO (jsonrpc/0) [dispatcher] Run and protect: repoStats(options=None) (logUtils:49) 2017-01-06 20:54:24,918 INFO (jsonrpc/0) [dispatcher] Run and protect: repoStats, Return response: {u'2ee54fb8-48f2-4576-8cff-f2346504b08b': {'code': 0, 'actual': True, 'version': 3, 'acquired': True, 'delay': '0.000936552', 'lastCheck': '5.1', 'valid': True}, u'1d49c4bc-0fec-4503-a583-d476fa3a370d': {'code': 0, 'actual': True, 'version': 0, 'acquired': True, 'delay': '0.000960248', 'lastCheck': '2.1', 'valid': True}} (logUtils:52) 2017-01-06 20:54:24,924 INFO (jsonrpc/0) [jsonrpc.JsonRpcServer] RPC call Host.getStats succeeded in 0.01 seconds (__init__:515)Vdsm and the OVN driver must have been called as the port IS created, but with the wrong id. I don't find the faulty id in vdsm.log neither, the xml above have the correct id./Sverker Den 2017-01-09 kl. 10:06, skrev Marcin Mirecki:The port is set up on the host by the ovirt-provider-ovn-driver. The driver is invoked by the vdsm hook whenever any operation on the port is done. Please ensure that this is installed properly. You can check the vdsm log (/var/log/vdsm/vdsm.log) to see if the hook was executed properly. ----- Original Message -----From: "Sverker Abrahamsson" <sver...@abrahamsson.com> To: "Marcin Mirecki" <mmire...@redhat.com> Cc: "Ovirt Users" <users@ovirt.org> Sent: Friday, January 6, 2017 9:00:26 PMSubject: Re: [ovirt-users] Issue with OVN/OVS and mandatory ovirtmgmt networkI created a new VM in the ui and assigned it to host h1. In /var/log/ovirt-provider-ovn.log I get the following: 2017-01-06 20:54:11,940 Request: GET : /v2.0/ports 2017-01-06 20:54:11,940 Connecting to remote ovn database: tcp:127.0.0.1:6641 2017-01-06 20:54:12,157 Connected (number of retries: 2) 2017-01-06 20:54:12,158 Response code: 200 2017-01-06 20:54:12,158 Response body: {"ports": [{"name": "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873", "network_id": "e53554cf-e553-40a1-8d22-9c8d95ec0601", "device_owner": "oVirt", "mac_address": "00:1a:4a:16:01:51", "id": "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873", "device_id": "40cd7328-d575-4c3d-b656-9ef9bacc0078"}, {"name": "92f6d3c8-68b3-4986-9c09-60bee04644b5", "network_id": "e53554cf-e553-40a1-8d22-9c8d95ec0601", "device_owner": "oVirt", "mac_address": "00:1a:4a:16:01:52", "id": "92f6d3c8-68b3-4986-9c09-60bee04644b5", "device_id": "4baefa8c-3822-4de0-9cd0-1d025bab7844"}]} 2017-01-06 20:54:12,160 Request: SHOW : /v2.0/networks/e53554cf-e553-40a1-8d22-9c8d95ec0601 2017-01-06 20:54:12,160 Connecting to remote ovn database: tcp:127.0.0.1:6641 2017-01-06 20:54:12,377 Connected (number of retries: 2) 2017-01-06 20:54:12,378 Response code: 200 2017-01-06 20:54:12,378 Response body: {"network": {"id": "e53554cf-e553-40a1-8d22-9c8d95ec0601", "name": "ovirtbridge"}} 2017-01-06 20:54:12,380 Request: POST : /v2.0/ports 2017-01-06 20:54:12,380 Request body: { "port" : { "name" : "nic1", "binding:host_id" : "h1.limetransit.com", "admin_state_up" : true, "device_id" : "e8553a88-05f0-401d-8b9b-5fff77f7bbbe", "device_owner" : "oVirt", "mac_address" : "00:1a:4a:16:01:54", "network_id" : "e53554cf-e553-40a1-8d22-9c8d95ec0601" } } 2017-01-06 20:54:12,380 Connecting to remote ovn database: tcp:127.0.0.1:6641 2017-01-06 20:54:12,610 Connected (number of retries: 2) 2017-01-06 20:54:12,614 Response code: 200 2017-01-06 20:54:12,614 Response body: {"port": {"name": "912cba79-982e-4a87-868e-241fedccb59a", "network_id": "e53554cf-e553-40a1-8d22-9c8d95ec0601", "device_owner": "oVirt", "mac_address": "00:1a:4a:16:01:54", "id": "912cba79-982e-4a87-868e-241fedccb59a", "device_id": "e8553a88-05f0-401d-8b9b-5fff77f7bbbe"}} h1:/var/log/messages Jan 6 20:54:12 h1 ovs-vsctl: ovs|00001|vsctl|INFO|Called as ovs-vsctl --timeout=5 -- --if-exists del-port vnet1 -- add-port br-int vnet1 --set Interface vnet1 "external-ids:attached-mac=\"00:1a:4a:16:01:54\"" --set Interface vnet1 "external-ids:iface-id=\"20388407-0f76-41d8-97aa-8e2b5978f908\"" -- set Interface vnet1 "external-ids:vm-id=\"6dd5291e-6556-4d29-8b4e-ea896e627645\"" -- set Interface vnet1 external-ids:iface-status=active [root@h2 ~]# ovn-nbctl show switch e53554cf-e553-40a1-8d22-9c8d95ec0601 (ovirtbridge) port 4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873 addresses: ["00:1a:4a:16:01:51"] port 912cba79-982e-4a87-868e-241fedccb59a addresses: ["00:1a:4a:16:01:54"] port 92f6d3c8-68b3-4986-9c09-60bee04644b5 addresses: ["00:1a:4a:16:01:52"] port ovirtbridge-port2 addresses: ["unknown"] port ovirtbridge-port1 addresses: ["unknown"] [root@h2 ~]# ovn-sbctl show Chassis "6e4dd29f-7607-48d7-8e5a-eef4c6aeefb5" hostname: "h2.limetransit.com" Encap geneve ip: "148.251.126.50" options: {csum="true"} Port_Binding "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873" Port_Binding "ovirtbridge-port1" Chassis "4f10fb04-8fb2-48d7-8a3f-ea6444c02cf9" hostname: "h1.limetransit.com" Encap geneve ip: "144.76.84.73" options: {csum="true"} Port_Binding "ovirtbridge-port2" Port_Binding "92f6d3c8-68b3-4986-9c09-60bee04644b5" I.e. same issue /Sverker Den 2017-01-06 kl. 20:49, skrev Sverker Abrahamsson:The port is created from Ovirt UI, the ovs-vsctl command below is executed when VM is started. In /var/log/ovirt-provider-ovn.log on h2 I get the following: 2017-01-06 20:19:25,452 Request: GET : /v2.0/ports 2017-01-06 20:19:25,452 Connecting to remote ovn database: tcp:127.0.0.1:6641 2017-01-06 20:19:25,670 Connected (number of retries: 2) 2017-01-06 20:19:25,670 Response code: 200 2017-01-06 20:19:25,670 Response body: {"ports": [{"name": "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873", "network_id": "e53554cf-e553-40a1-8d22-9c8d95ec0601", "device_owner": "oVirt", "mac_address": "00:1a:4a:16:01:51", "id": "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873", "device_id": "40cd7328-d575-4c3d-b656-9ef9bacc0078"}, {"name": "92f6d3c8-68b3-4986-9c09-60bee04644b5", "network_id": "e53554cf-e553-40a1-8d22-9c8d95ec0601", "device_owner": "oVirt", "mac_address": "00:1a:4a:16:01:52", "id": "92f6d3c8-68b3-4986-9c09-60bee04644b5", "device_id": "4baefa8c-3822-4de0-9cd0-1d025bab7844"}]} 2017-01-06 20:19:25,673 Request: PUT : /v2.0/ports/92f6d3c8-68b3-4986-9c09-60bee04644b5 2017-01-06 20:19:25,673 Request body: { "port" : { "binding:host_id" : "h1.limetransit.com", "security_groups" : null } } 2017-01-06 20:19:25,673 Connecting to remote ovn database: tcp:127.0.0.1:6641 2017-01-06 20:19:25,890 Connected (number of retries: 2) 2017-01-06 20:19:25,891 Response code: 200 2017-01-06 20:19:25,891 Response body: {"port": {"name": "92f6d3c8-68b3-4986-9c09-60bee04644b5", "network_id": "e53554cf-e553-40a1-8d22-9c8d95ec0601", "device_owner": "oVirt", "mac_address": "00:1a:4a:16:01:52", "id": "92f6d3c8-68b3-4986-9c09-60bee04644b5", "device_id": "4baefa8c-3822-4de0-9cd0-1d025bab7844"}} In /var/log/messages on h1 I get the following: Jan 6 20:18:56 h1 dbus-daemon: dbus[1339]: [system] Successfully activated service 'org.freedesktop.problems' Jan 6 20:19:26 h1 ovs-vsctl: ovs|00001|vsctl|INFO|Called as ovs-vsctl --timeout=5 -- --if-exists del-port vnet0 -- add-port br-int vnet0 -- set Interface vnet0 "external-ids:attached-mac=\"00:1a:4a:16:01:52\"" -- set Interface vnet0 "external-ids:iface-id=\"72dafda5-03c2-4bb6-bcb6-241fa5c0a1f3\"" -- set Interface vnet0 "external-ids:vm-id=\"4d0c134a-11a0-40f4-b2fb-c13c17c7251c\"" -- set Interface vnet0 external-ids:iface-status=active Jan 6 20:19:26 h1 kernel: device vnet0 entered promiscuous mode Jan 6 20:19:26 h1 avahi-daemon[1391]: Registering new address record for fe80::fc1a:4aff:fe16:152 on vnet0.*. Jan 6 20:19:26 h1 systemd-machined: New machine qemu-4-CentOS72. Jan 6 20:19:26 h1 systemd: Started Virtual Machine qemu-4-CentOS72. Jan 6 20:19:26 h1 systemd: Starting Virtual Machine qemu-4-CentOS72. [root@h2 ~]# ovn-nbctl show switch e53554cf-e553-40a1-8d22-9c8d95ec0601 (ovirtbridge) port 4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873 addresses: ["00:1a:4a:16:01:51"] port 92f6d3c8-68b3-4986-9c09-60bee04644b5 addresses: ["00:1a:4a:16:01:52"] port ovirtbridge-port2 addresses: ["unknown"] port ovirtbridge-port1 addresses: ["unknown"] [root@h2 ~]# ovn-sbctl show Chassis "6e4dd29f-7607-48d7-8e5a-eef4c6aeefb5" hostname: "h2.limetransit.com" Encap geneve ip: "148.251.126.50" options: {csum="true"} Port_Binding "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873" Port_Binding "ovirtbridge-port1" Chassis "4f10fb04-8fb2-48d7-8a3f-ea6444c02cf9" hostname: "h1.limetransit.com" Encap geneve ip: "144.76.84.73" options: {csum="true"} Port_Binding "ovirtbridge-port2" I.e. the port is set up with the wrong ID and not attached to OVN. If I correct external-ids:iface-id like this: [root@h1 ~]# ovs-vsctl set Interface vnet0 "external-ids:iface-id=\"92f6d3c8-68b3-4986-9c09-60bee04644b5\"" then sb is correct: [root@h2 ~]# ovn-sbctl show Chassis "6e4dd29f-7607-48d7-8e5a-eef4c6aeefb5" hostname: "h2.limetransit.com" Encap geneve ip: "148.251.126.50" options: {csum="true"} Port_Binding "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873" Port_Binding "ovirtbridge-port1" Chassis "4f10fb04-8fb2-48d7-8a3f-ea6444c02cf9" hostname: "h1.limetransit.com" Encap geneve ip: "144.76.84.73" options: {csum="true"} Port_Binding "ovirtbridge-port2" Port_Binding "92f6d3c8-68b3-4986-9c09-60bee04644b5" I don't know from where the ID 72dafda5-03c2-4bb6-bcb6-241fa5c0a1f3 comes from, doesn't show in any log other than /var/log/messages. If I do the same exercise on the same host as engine is running onthen the port for the VM gets the right id and is working from beginning./Sverker Den 2017-01-03 kl. 10:23, skrev Marcin Mirecki:How did you create this port? From the oVirt engine UI?The OVN provider creates the port when you add the port in the engine UI,it is then plugged into the ovs bridge by the VIF driver. Please attach /var/log/ovirt-provider-ovn.log ----- Original Message -----From: "Sverker Abrahamsson"<sver...@abrahamsson.com> To: "Marcin Mirecki"<mmire...@redhat.com> Cc: "Ovirt Users"<users@ovirt.org> Sent: Tuesday, January 3, 2017 2:06:22 AMSubject: Re: [ovirt-users] Issue with OVN/OVS and mandatory ovirtmgmtnetwork Found an issue with Ovirt - OVN integration.Engine and OVN central db running on host h2. Created VM to run on hosth1, which is started. Ovn db state: [root@h2 env3]# ovn-nbctl show switch e53554cf-e553-40a1-8d22-9c8d95ec0601 (ovirtbridge) port 4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873 addresses: ["00:1a:4a:16:01:51"] port 92f6d3c8-68b3-4986-9c09-60bee04644b5 addresses: ["00:1a:4a:16:01:52"] port ovirtbridge-port2 addresses: ["unknown"] port ovirtbridge-port1 addresses: ["unknown"] [root@h2 env3]# ovn-sbctl show Chassis "6e4dd29f-7607-48d7-8e5a-eef4c6aeefb5" hostname: "h2.limetransit.com" Encap geneve ip: "148.251.126.50" options: {csum="true"} Port_Binding "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873" Port_Binding "ovirtbridge-port1" Chassis "4f10fb04-8fb2-48d7-8a3f-ea6444c02cf9" hostname: "h1.limetransit.com" Encap geneve ip: "144.76.84.73" options: {csum="true"} Port_Binding "ovirtbridge-port2" Port 92f6d3c8-68b3-4986-9c09-60bee04644b5 is for the new VM which is started on h1, but it is not assigned to that chassis. The reason is that on h1 the port on br-int is created like this:ovs-vsctl --timeout=5 -- --if-exists del-port vnet0 -- add-port br-intvnet0 -- set Interface vnet0"external-ids:attached-mac=\"00:1a:4a:16:01:52\"" -- set Interface vnet0 "external-ids:iface-id=\"35bcbe31-2c7e-4d97-add9-ce150eeb2f11\"" -- setInterface vnet0 "external-ids:vm-id=\"4d0c134a-11a0-40f4-b2fb-c13c17c7251c\"" -- set Interface vnet0 external-ids:iface-status=activeI.e. the extrernal id of interface is wrong. When I manually change tothe right id like this the port works fine:ovs-vsctl --timeout=5 -- --if-exists del-port vnet0 -- add-port br-intvnet0 -- set Interface vnet0"external-ids:attached-mac=\"00:1a:4a:16:01:52\"" -- set Interface vnet0 "external-ids:iface-id=\"92f6d3c8-68b3-4986-9c09-60bee04644b5\"" -- setInterface vnet0 "external-ids:vm-id=\"4d0c134a-11a0-40f4-b2fb-c13c17c7251c\"" -- set Interface vnet0 external-ids:iface-status=active sb db after correcting the port: Chassis "6e4dd29f-7607-48d7-8e5a-eef4c6aeefb5" hostname: "h2.limetransit.com" Encap geneve ip: "148.251.126.50" options: {csum="true"} Port_Binding "4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873" Port_Binding "ovirtbridge-port1" Chassis "4f10fb04-8fb2-48d7-8a3f-ea6444c02cf9" hostname: "h1.limetransit.com" Encap geneve ip: "144.76.84.73" options: {csum="true"} Port_Binding "ovirtbridge-port2" Port_Binding "92f6d3c8-68b3-4986-9c09-60bee04644b5"I don't know from where the faulty id comes from, it's not in any logs.In the domain xml as printed in vdsm.log the id is correct: <interface type="bridge"> <mac address="00:1a:4a:16:01:52" /> <model type="virtio" /> <source bridge="br-int" /> <virtualport type="openvswitch" /> <link state="up" /> <boot order="2" /> <bandwidth /> <virtualport type="openvswitch"> <parameters interfaceid="92f6d3c8-68b3-4986-9c09-60bee04644b5" /> </virtualport> </interface> Where is the ovs-vsctl command line built for this call? /Sverker Den 2017-01-02 kl. 13:40, skrev Sverker Abrahamsson:Got it to work now by following the env8 example in OVN tutorial, where a port is added with type l2gateway. Not sure how that isdifferent from the localnet variant, but didn't suceed in getting that one working. Now I'm able to ping and telnet over the tunnel, but notssh even when the port is answering on telnet. Neither does nfstraffic work even though mount did. Suspecting MTU issue. I did noticethat ovn-controller starts too early, before network interfaces areestablished and hence can't reach the db. As these is a purely OVS/OVNissue I'll ask about it on their mailing list. Getting back to the original issue with Ovirt, I've now added the second host h1 to ovirt-engine. Had to do the same as with h2 tocreate a dummy ovirtmgmt network but configured access via the publicIP. My firewall settings was replaced with iptables config andvdsm.conf was overwritten when engine was set up, so those had to be manually restored. It would be preferable if it would be possible toconfigure ovirt-engine that it does not "own" the host and insteadcomply with the settings it has instead of enforcing it's own view..Apart from that it seems the second host works, although I need to resolve the traffic issue over the OVS tunnel. /Sverker Den 2017-01-02 kl. 01:13, skrev Sverker Abrahamsson:1. That is not possible as ovirt (or vdsm) will rewrite the network configuration to a non-working state. That is why I've set that if ashidden to vdsm and is why I'm keen on getting OVS/OVN to work 2. I've been reading the doc for OVN and starting to connect thedots, which is not trivial as it is complex. Some insights reached:First step is the OVN database, installed by openvswitch-ovn-central,which I currently have running on h2 host. The 'ovn-nbctl' and'ovn-sbctl' commands are only possible to execute on a database node. Two ip's are given to 'vdsm-tool ovn-config <ip to database> <tunnelip>' as arguments, where <ip to database> is how this OVN node reaches the database and <tunnel ip> is the ip to which other OVN nodes sets up a tunnel to this node. I.e. it is not for creating atunnel to the database which I thought first from the description inblog post.The tunnel between OVN nodes is of type geneve which is a UDP based protocol but I have not been able to find anywhere which port is used so that I can open it in firewalld. I have added OVN on another host, called h1, and connected it to the db. I see there is traffic to thedb port, but I don't see any geneve traffic between the nodes. Ovirt is now able to create it's vnet0 interface on the br-int ovs bridge, but then I run into the next issue. How do I create aconnection from the logical switch to the physical host? I need that to a) get a connection out to the internet through a masqueraded if or ipv6 and b) be able to run a dhcp server to give ip's to the VM's./Sverker Den 2016-12-30 kl. 18:05, skrev Marcin Mirecki:1. Why not use your physical nic for ovirtmgmt then?2. "ovn-nbctl ls-add" does not add a bridge, but a logical switch. br-int is an internal OVN implementation detail, which the user should not care about. What you see in the ovirt UI are logical networks. They are implemented as OVN logical switches in caseof the OVN provider. Please look at: http://www.ovirt.org/blog/2016/11/ovirt-provider-ovn/ You can get the latest rpms from here:http://resources.ovirt.org/repos/ovirt/experimental/master/ovirt-provider-ovn_fc24_46/rpm/fc24/noarch/----- Original Message -----From: "Sverker Abrahamsson"<sver...@abrahamsson.com> To: "Marcin Mirecki"<mmire...@redhat.com> Cc: "Ovirt Users"<users@ovirt.org> Sent: Friday, December 30, 2016 4:25:58 PM Subject: Re: [ovirt-users] Issue with OVN/OVS and mandatory ovirtmgmt network 1. No, I did not want to put the ovirtmgmt bridge on my physical nic asit always messed up the network config making the host unreachable. I have put a ovs bridge on this nic which I will use to make tunnelswhenI add other hosts. Maybe br-int will be used for that instead, willsee when I get that far.As it is now I have a dummy if for ovirtmgmt bridge but this willprobably not work when I add other hosts as that bridge cannot connectto the other hosts. I'm considering keeping this just as a dummy tokeepovirt engine satisfied while the actual communication will happenover OVN/OVS bridges and tunnels. 2. Onhttps://www.ovirt.org//develop/release-management/features/ovirt-ovn-provider/there is instructions how to add an OVS bridge to OVN with |ovn-nbctlls-add <network name>|. If you want to use br-int then it makes sense tomake that bridge visible in ovirt webui under networks so that itcan be selected for VM's.It quite doesn't make sense to me that I can select other networkfor myVM but then that setting is not used when setting up the network./Sverker Den 2016-12-30 kl. 15:34, skrev Marcin Mirecki:Hi,The OVN provider does not require you to add any bridges manually.As I understand we were dealing with two problems:1. You only had one physical nic and wanted to put a bridge on it, attaching the management network to the bridge. This was thereason forcreating the bridge (the recommended setup would be to used aseparatephysical nic for the management network). This bridge hasnothing to do with the OVN bridge.2. OVN - you want to use OVN on this system. For this you have toinstall OVN on your hosts. This should create the br-int bridge, which arethen used by the OVN provider. This br-int bridge must beconfigured to connect to other hosts using the geneve tunnels. In both cases the systems will not be aware of any bridges you create. They need a nic (be it physical or virtual) to connect to other system.Usually this is the physical nic. In your case you decided to puta bridgeon the physical nic, and give oVirt a virtual nic attached to thisbridge.This works, but keep in mind that the bridge you have introducedis outside of oVirt's (and OVN) control (and as such is not supported).What is the purpose of adding my bridges to Ovirt through the external provider and configure them on my VMI am not quite sure I understand.The external provider (OVN provider to be specific), does not addany bridgesto the system. It is using the br-int bridge created by OVN. Thenetworks created by the OVN provider are purely logical entities, implemented using the OVN br-int bridge. Marcin ----- Original Message -----From: "Sverker Abrahamsson"<sver...@abrahamsson.com> To: "Marcin Mirecki"<mmire...@redhat.com> Cc: "Ovirt Users"<users@ovirt.org> Sent: Friday, December 30, 2016 12:15:43 PM Subject: Re: [ovirt-users] Issue with OVN/OVS and mandatory ovirtmgmt network HiThat is the logic I quite don't understand. What is the purpose ofadding my bridges to Ovirt through the external provider and configurethem on my VM if you are disregarding that and using br-int anyway?/Sverker Den 2016-12-30 kl. 10:53, skrev Marcin Mirecki:Sverker,br-int is the integration bridge created by default in OVN. Thisis the bridge we use for the OVN provider. As OVN is required to be installed, we assume that this bridge is present. Using any other ovs bridge is not supported, and will require custom code changes (such as the ones you created).The proper setup in your case would probably be to create br-intand connectthis to your ovirtbridge, although I don't know the details ofyour env, so this is just my best guess. Marcin ----- Original Message -----From: "Sverker Abrahamsson"<sver...@abrahamsson.com> To: "Marcin Mirecki"<mmire...@redhat.com> Cc: "Ovirt Users"<users@ovirt.org>, "Numan Siddique" <nusid...@redhat.com> Sent: Friday, December 30, 2016 1:14:50 AM Subject: Re: [ovirt-users] Issue with OVN/OVS and mandatory ovirtmgmt networkEven better, if the value is not hardcoded then the configuredvalue isused. Might be that I'm missunderstanding something but this isthe behaviour I expected instead of that it is using br-int. Attached is a patch which properly sets up the xml, in case there is already a virtual port there + testcode of some variants /Sverker Den 2016-12-29 kl. 22:55, skrev Sverker Abrahamsson:When I change/usr/libexec/vdsm/hooks/before_device_create/ovirt_provider_ovn_hookto instead of hardcoded to br-int use BRIDGE_NAME = 'ovirtbridge' then I get the expected behaviour and I get a working network connectivity in my VM with IP provided by dhcp. /Sverker Den 2016-12-29 kl. 22:07, skrev Sverker Abrahamsson:By default the vNic profile of my OVN bridge ovirtbridge gets a Network filter named vdsm-no-mac-spoofing. If I instead setNo filterthen I don't get those ebtables / iptables messages. It seemsthatthere is some issue between ovirt/vdsm and firewalld, whichwe can put to the side for now. It is not clear for me why the port is added on br-int instead of the bridge I've assigned to the VM, which is ovirtbridge?? /Sverker Den 2016-12-29 kl. 14:20, skrev Sverker Abrahamsson:The specific command most likely fails because there is nochainnamed libvirt-J-vnet0, but when should that have been created?/Sverker -------- Vidarebefordrat meddelande --------Ämne: Re: [ovirt-users] Issue with OVN/OVS and mandatoryovirtmgmt network Datum: Thu, 29 Dec 2016 08:06:29 -0500 (EST) Från: Marcin Mirecki<mmire...@redhat.com> Till: Sverker Abrahamsson<sver...@abrahamsson.com> Kopia: Ovirt Users<users@ovirt.org>, Lance Richardson<lrich...@redhat.com>, Numan Siddique<nusid...@redhat.com>Let me add the OVN team. Lance, Numan, Can you please look at this? Trying to plug a vNIC results in:Dec 28 23:31:35 h2 ovs-vsctl: ovs|00001|vsctl|INFO|Called as ovs-vsctl--timeout=5 -- --if-exists del-port vnet0 -- add-portbr-int vnet0 -- set Interface vnet0 "external-ids:attached-mac=\"00:1a:4a:16:01:51\"" -- set Interface vnet0"external-ids:iface-id=\"e8853aac-8a75-41b0-8010-e630017dcdd8\""-- set Interface vnet0"external-ids:vm-id=\"b9440d60-ef5a-4e2b-83cf-081df7c09e6f\""-- set Interface vnet0 external-ids:iface-status=active Dec 28 23:31:35 h2 kernel: device vnet0 entered promiscuous modeDec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ebtables --concurrent -t nat -D PREROUTING-i vnet0 -j libvirt-J-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:More details below ----- Original Message -----From: "Sverker Abrahamsson"<sver...@abrahamsson.com> To: "Marcin Mirecki"<mmire...@redhat.com> Cc: "Ovirt Users"<users@ovirt.org> Sent: Thursday, December 29, 2016 1:42:11 PMSubject: Re: [ovirt-users] Issue with OVN/OVS and mandatoryovirtmgmt network Hi Same problem still.. /Sverker Den 2016-12-29 kl. 13:34, skrev Marcin Mirecki:Hi,The tunnels are created to connect multiple OVN controllers. If there is only one, there is no need for the tunnels, sonone will be created, this is the correct behavior.Does the problem still occur after setting configuring theOVN-controller? Marcin ----- Original Message -----From: "Sverker Abrahamsson"<sver...@abrahamsson.com> To: "Marcin Mirecki"<mmire...@redhat.com> Cc: "Ovirt Users"<users@ovirt.org> Sent: Thursday, December 29, 2016 11:44:32 AMSubject: Re: [ovirt-users] Issue with OVN/OVS and mandatoryovirtmgmt network Hi The rpm packages you listed in the other mail are installed but I hadnot run vdsm-tool ovn-config to create tunnel as the OVNcontroller is on the same host. [root@h2 ~]# rpm -q openvswitch-ovn-common openvswitch-ovn-common-2.6.90-1.el7.centos.x86_64 [root@h2 ~]# rpm -q openvswitch-ovn-host openvswitch-ovn-host-2.6.90-1.el7.centos.x86_64 [root@h2 ~]# rpm -q python-openvswitch python-openvswitch-2.6.90-1.el7.centos.noarch After removing my manually created br-int and run vdsm-tool ovn-config 127.0.0.1 172.27.1.1then I have the br-int but 'ip link show' does not showany link'genev_sys_' nor does 'ovs-vsctl show' any port for ovn.I assume these are when there is an actual tunnel? [root@h2 ~]# ovs-vsctl show ebb6aede-cbbc-4f4f-a88a-a9cd72b2bd23 Bridge br-int fail_mode: secure Port br-int Interface br-int type: internal Bridge ovirtbridge Port ovirtbridge Interface ovirtbridge type: internal Bridge "ovsbridge0" Port "ovsbridge0" Interface "ovsbridge0" type: internal Port "eth0" Interface "eth0" ovs_version: "2.6.90" [root@h2 ~]# ip link show1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue stateUNKNOWN mode DEFAULT qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdiscpfifo_fast master ovs-system state UP mode DEFAULT qlen 1000 link/ether 44:8a:5b:84:7d:b3 brd ff:ff:ff:ff:ff:ff3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noopstate DOWN mode DEFAULT qlen 1000 link/ether 5a:14:cf:28:47:e2 brd ff:ff:ff:ff:ff:ff4: ovsbridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc noqueue state UNKNOWN mode DEFAULT qlen 1000 link/ether 44:8a:5b:84:7d:b3 brd ff:ff:ff:ff:ff:ff 5: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 link/ether 9e:b0:3a:9d:f2:4b brd ff:ff:ff:ff:ff:ff 6: ovirtbridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1000 link/ether a6:f6:e5:a4:5b:45 brd ff:ff:ff:ff:ff:ff7: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdiscnoqueue master ovirtmgmt state UNKNOWN mode DEFAULT qlen 1000 link/ether 66:e0:1c:c3:a9:d8 brd ff:ff:ff:ff:ff:ff8: ovirtmgmt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc noqueue state UP mode DEFAULT qlen 1000 link/ether 66:e0:1c:c3:a9:d8 brd ff:ff:ff:ff:ff:ff Firewall settings: [root@h2 ~]# firewall-cmd --list-all-zones work target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: internal target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: external target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: masquerade: yes forward-ports: sourceports: icmp-blocks: rich rules: trusted target: ACCEPT icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: home target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: dmz target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: public (active) target: default icmp-block-inversion: no interfaces: eth0 ovsbridge0 sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: block target: %%REJECT%% icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: ovirt (active) target: default icmp-block-inversion: no interfaces: ovirtbridge ovirtmgmt sources: services: dhcp ovirt-fence-kdump-listener ovirt-http ovirt-https ovirt-imageio-proxy ovirt-postgres ovirt-provider-ovn ovirt-vmconsole-proxy ovirt-websocket-proxy ssh vdsm ports: protocols: masquerade: yes forward-ports: sourceports: icmp-blocks: rich rules: rule family="ipv4" port port="6641" protocol="tcp" accept rule family="ipv4" port port="6642" protocol="tcp" accept The db dump is attached /Sverker Den 2016-12-29 kl. 09:50, skrev Marcin Mirecki:Hi, Can you please do: "sudo ovsdb-client dump" on the host and send me the output?Have you configured the ovn controller to connect to the OVN north? You can do it using "vdsm-tool ovn-config" orusing the OVN tools directly. Please checkout:https://www.ovirt.org/blog/2016/11/ovirt-provider-ovn/for details. Also please note that the OVN provider is completely different from the neutron-openvswitch plugin. Please don't mix the two. Marcin ----- Original Message -----From: "Marcin Mirecki"<mmire...@redhat.com> To: "Sverker Abrahamsson"<sver...@abrahamsson.com> Cc: "Ovirt Users"<users@ovirt.org> Sent: Thursday, December 29, 2016 9:27:19 AM Subject: Re: [ovirt-users] Issue with OVN/OVS and mandatory ovirtmgmt network Hi,br-int is the OVN integration bridge, it should have beencreated when installing OVN. I assume you have the following packages installed on the host: openvswitch-ovn-common openvswitch-ovn-host python-openvswitch Please give me some time to look at the connectivity problem. Marcin ----- Original Message -----From: "Sverker Abrahamsson"<sver...@abrahamsson.com>To: "Marcin Mirecki"<mmire...@redhat.com> Cc: "Ovirt Users"<users@ovirt.org> Sent: Thursday, December 29, 2016 12:47:04 AM Subject: Re: [ovirt-users] Issue with OVN/OVS and mandatory ovirtmgmt network From/usr/libexec/vdsm/hooks/before_device_create/ovirt_provider_ovn_hook(installed by ovirt-provider-ovn-driver rpm): BRIDGE_NAME = 'br-int'Den 2016-12-28 kl. 23:56, skrev Sverker Abrahamsson:Googling on the message about br-int suggested addingthat bridge to ovs: ovs-vsctl add-br br-int Then the VM is able to boot, but it fails to get network connectivity. Output in /var/log/messages: Dec 28 23:31:35 h2 ovs-vsctl: ovs|00001|vsctl|INFO|Called as ovs-vsctl--timeout=5 -- --if-exists del-port vnet0 -- add-portbr-int vnet0 -- set Interface vnet0 "external-ids:attached-mac=\"00:1a:4a:16:01:51\"" -- set Interface vnet0"external-ids:iface-id=\"e8853aac-8a75-41b0-8010-e630017dcdd8\""-- set Interface vnet0"external-ids:vm-id=\"b9440d60-ef5a-4e2b-83cf-081df7c09e6f\""-- set Interface vnet0 external-ids:iface-status=active Dec 28 23:31:35 h2 kernel: device vnet0 entered promiscuous modeDec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ebtables --concurrent -t nat -D PREROUTING-i vnet0 -j libvirt-J-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -D POSTROUTING -o vnet0 -j libvirt-P-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -L libvirt-J-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -L libvirt-P-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -F libvirt-J-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -X libvirt-J-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -F libvirt-P-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -X libvirt-P-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ebtables --concurrent -t nat -F J-vnet0-mac'failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ebtables --concurrent -t nat -X J-vnet0-mac'failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -F J-vnet0-arp-mac' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -X J-vnet0-arp-mac' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w -D libvirt-out -m physdev --physdev-is-bridged --physdev-out vnet0 -g FO-vnet0'failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w -D libvirt-out -m physdev--physdev-out vnet0 -g FO-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -w -D libvirt-in -m physdev--physdev-in vnet0 -g FI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -D libvirt-host-in -m physdev --physdev-in vnet0 -g HI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -F FO-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -X FO-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -F FI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -X FI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -F HI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -X HI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -E FP-vnet0 FO-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -E FJ-vnet0 FI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/iptables -w2 -w -E HJ-vnet0 HI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ip6tables -w2 -w -D libvirt-out -m physdev --physdev-is-bridged --physdev-out vnet0 -g FO-vnet0'failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ip6tables -w2 -w -D libvirt-out -m physdev--physdev-out vnet0 -g FO-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ip6tables -w2 -w -D libvirt-in -m physdev--physdev-in vnet0 -g FI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -D libvirt-host-in -m physdev --physdev-in vnet0 -g HI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -F FO-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -X FO-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -F FI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -X FI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -F HI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -X HI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -E FP-vnet0 FO-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -E FJ-vnet0 FI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ip6tables -w2 -w -E HJ-vnet0 HI-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ebtables --concurrent -t nat -D PREROUTING-i vnet0 -j libvirt-I-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -D POSTROUTING -o vnet0 -j libvirt-O-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -L libvirt-I-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -L libvirt-O-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -F libvirt-I-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -X libvirt-I-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -F libvirt-O-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -X libvirt-O-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -L libvirt-P-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -E libvirt-P-vnet0 libvirt-O-vnet0' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ebtables --concurrent -t nat -F I-vnet0-mac'failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED: '/usr/sbin/ebtables --concurrent -t nat -X I-vnet0-mac'failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -F I-vnet0-arp-mac' failed:Dec 28 23:31:35 h2 firewalld: WARNING: COMMAND_FAILED:'/usr/sbin/ebtables --concurrent -t nat -X I-vnet0-arp-mac' failed: [root@h2 etc]# ovs-vsctl show ebb6aede-cbbc-4f4f-a88a-a9cd72b2bd23 Bridge ovirtbridge Port "ovirtport0" Interface "ovirtport0" type: internal Port ovirtbridge Interface ovirtbridge type: internal Bridge "ovsbridge0" Port "ovsbridge0" Interface "ovsbridge0" type: internal Port "eth0" Interface "eth0" Bridge br-int Port br-int Interface br-int type: internal Port "vnet0" Interface "vnet0" ovs_version: "2.6.90" Searching through the code it appears that br-int comes from neutron-openvswitch plugin ?? [root@h2 share]# rpm -qf/usr/share/otopi/plugins/ovirt-host-deploy/openstack/neutron_openvswitch.pyovirt-host-deploy-1.6.0-0.0.master.20161215101008.gitb76ad50.el7.centos.noarch/SverkerDen 2016-12-28 kl. 23:24, skrev Sverker Abrahamsson:In addition I had to add an alias to modprobe: [root@h2 modprobe.d]# cat dummy.conf alias dummy0 dummyDen 2016-12-28 kl. 23:03, skrev Sverker Abrahamsson:Hi I first tried to set device name to dummy_0, but then ifup did notsucceed in creating the device unless I first did'ip link adddummy_0 type dummy' but then it would not suceed toestablish the if on reboot.Setting fake_nics = dummy0 would not work neither,but this works: fake_nics = dummy* The engine is now able to find the if and assign bridge ovirtmgmt to it. However, I then run into the next issue when starting a VM: 2016-12-28 22:28:23,897 ERROR[org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector](ForkJoinPool-1-worker-2) [] Correlation ID: null,Call Stack: null, Custom Event ID: -1, Message: VM CentOS7 is down with error. Exitmessage: Cannot get interface MTU on 'br-int': Nosuch device.This VM has a nic on ovirtbridge, which comes fromthe OVN provider. /Sverker Den 2016-12-28 kl. 14:38, skrev Marcin Mirecki:Sverker,Can you try adding a vnic named veth_* or dummy_*,(or alternatively add the name of the vnic tovdsm.config fake_nics), and setup the managementnetwork using this vnic?I suppose adding the vnic you use for connecting to the engine to fake_nics should make it visible to the engine, and you should be able to use it forthe setup. Marcin ----- Original Message -----From: "Marcin Mirecki"<mmire...@redhat.com>To: "Sverker Abrahamsson"<sver...@abrahamsson.com>Cc: "Ovirt Users"<users@ovirt.org> Sent: Wednesday, December 28, 2016 12:06:26 PMSubject: Re: [ovirt-users] Issue with OVN/OVS andmandatory ovirtmgmt networkI have an internal OVS bridge called ovirtbridgewhich has a port with IP address, but in the host network settings that port is not visible.I just verified and unfortunately the virtual ports are not visible in engine to assign a network to :(I'm afraid that the engine is not ready for such ascenario (even if it works).Please give me some time to look for a solution.----- Original Message -----_______________________________________________From: "Sverker Abrahamsson"<sver...@abrahamsson.com> To: "Marcin Mirecki"<mmire...@redhat.com> Cc: "Ovirt Users"<users@ovirt.org>Sent: Wednesday, December 28, 2016 11:48:24 AM Subject: Re: [ovirt-users] Issue with OVN/OVS andmandatory ovirtmgmt network Hi Marcin Yes, that is my issue. I don't want to let ovirt/vdsm see eth0 nor ovsbridge0 since as soon as it sees them it messes up the network config so that the host will be unreachable.I have an internal OVS bridge called ovirtbridgewhich has a port with IP address, but in the host network settings that port is not visible. It doesn't help to name it ovirtmgmt.The engine is able to communicate with the hoston the ip it has beengiven, it's just that it believes that it HAS tohave a ovirtmgmt network which can't be on OVN. /SverkerDen 2016-12-28 kl. 10:45, skrev Marcin Mirecki:Hi Sverker, The management network is mandatory on each host. It's used by the engine to communicate with the host.Looking at your description and the exceptionit looks like it is missing.The error is caused by not having any networkfor the host (network list retrieved in InterfaceDaoImpl.getHostNetworksByCluster - whichgets all the networks on nics for a host fromvds_interface table in the DB).Could you maybe create a virtual nic connected toovsbridge0 (as I understand you have no physical nic available) and use this for the management network?I then create a bridge for use with ovirt, witha private address.I'm not quite sure I understand. Is this yet another bridge connected to ovsbridge0?You could also attach the vnic for the managementnetwork here if need be. Please keep in mind that OVN has no use in setting up the management network. The OVN provider can only handle external networks, which can not be used for a management network. Marcin ----- Original Message -----From: "Sverker Abrahamsson"<sver...@abrahamsson.com> To:users@ovirt.orgSent: Wednesday, December 28, 2016 12:39:59 AM Subject: [ovirt-users] Issue with OVN/OVS andmandatory ovirtmgmt network Hi For long time I've been looking for proper support in ovirt for Open vSwitch so I'm happy that it is moving in the right direction. However, there seemsto still be a dependency on a ovirtmgmt bridgeand I'm unable to move that to the OVN provider.The hosting center where I rent hw instanceshas a bit special network setup,so I have one physical network port with a /32netmask and point-to-pointconfig to router. The physical port I connectto a ovs bridge which has the public ip. Since ovirt always messes up the network config when I've tried to let it have access to the network config for the physical port, I've set eht0 and ovsbridge0 as hidden in vdsm.conf.I then create a bridge for use with ovirt, witha private address. With the OVN provider I am now able to import these into the engine and it looksgood. When creating a VM I can select that itwill have a vNic on my OVS bridge.However, I can't start the VM as an exceptionis thrown in the log: 2016-12-28 00:13:33,350 ERROR [org.ovirt.engine.core.bll.RunVmCommand] (default task-5) [3c882d53] Error during ValidateFailure.: java.lang.NullPointerException atorg.ovirt.engine.core.bll.scheduling.policyunits.NetworkPolicyUnit.validateRequiredNetworksAvailable(NetworkPolicyUnit.java:140)[bll.jar:] atorg.ovirt.engine.core.bll.scheduling.policyunits.NetworkPolicyUnit.filter(NetworkPolicyUnit.java:69)[bll.jar:] atorg.ovirt.engine.core.bll.scheduling.SchedulingManager.runInternalFilters(SchedulingManager.java:597)[bll.jar:] atorg.ovirt.engine.core.bll.scheduling.SchedulingManager.runFilters(SchedulingManager.java:564)[bll.jar:] atorg.ovirt.engine.core.bll.scheduling.SchedulingManager.canSchedule(SchedulingManager.java:494)[bll.jar:] atorg.ovirt.engine.core.bll.validator.RunVmValidator.canRunVm(RunVmValidator.java:133)[bll.jar:] atorg.ovirt.engine.core.bll.RunVmCommand.validate(RunVmCommand.java:940)[bll.jar:] atorg.ovirt.engine.core.bll.CommandBase.internalValidate(CommandBase.java:886)[bll.jar:] atorg.ovirt.engine.core.bll.CommandBase.validateOnly(CommandBase.java:366)[bll.jar:] atorg.ovirt.engine.core.bll.PrevalidatingMultipleActionsRunner.canRunActions(PrevalidatingMultipleActionsRunner.java:113)[bll.jar:] atorg.ovirt.engine.core.bll.PrevalidatingMultipleActionsRunner.invokeCommands(PrevalidatingMultipleActionsRunner.java:99)[bll.jar:] atorg.ovirt.engine.core.bll.PrevalidatingMultipleActionsRunner.execute(PrevalidatingMultipleActionsRunner.java:76)[bll.jar:] atorg.ovirt.engine.core.bll.Backend.runMultipleActionsImpl(Backend.java:613)[bll.jar:] atorg.ovirt.engine.core.bll.Backend.runMultipleActions(Backend.java:583)[bll.jar:] Looking at that section of code where the exception is thrown, I see that ititerates over host networks to find requirednetworks, which I assume isovirtmgmt. In the host network setup dialog Idon't see any networks at all but it lists ovirtmgmt as required. It also list the OVN networks but thesecan't be statically assigned as they are addeddynamically when needed, which is fine.I believe that I either need to remove ovirtmgmtnetwork or configure that itis provided by the OVN provider, but neither ispossible. Preferably it shouldn't be hardcoded which network is management and mandatory but be possible to configure. /SverkerDen 2016-12-27 kl. 17:10, skrev Marcin Mirecki:Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
From 7675fc21bef64cc06560e23cb61f33508e552eeb Mon Sep 17 00:00:00 2001 From: root <r...@h2.limetransit.com> Date: Mon, 9 Jan 2017 13:36:20 +0100 Subject: [PATCH] Properly handle to set id when interface already has a virtualport element --- driver/ovirt_provider_ovn_hook.py | 19 ++++++++++++++----- driver/test_ovirt_provider_ovn_hook.py | 22 ++++++++++++++++++++-- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/driver/ovirt_provider_ovn_hook.py b/driver/ovirt_provider_ovn_hook.py index 57465c4..582252c 100755 --- a/driver/ovirt_provider_ovn_hook.py +++ b/driver/ovirt_provider_ovn_hook.py @@ -37,13 +37,22 @@ def ovs_device(domxml): return # skip if not an interface source = iface.getElementsByTagName('source')[0] - virtualport = domxml.createElement('virtualport') - virtualport.setAttribute('type', 'openvswitch') - iface.appendChild(virtualport) + try: + virtualport = iface.getElementsByTagName('virtualport')[0] + except IndexError: + virtualport = domxml.createElement('virtualport') + virtualport.setAttribute('type', 'openvswitch') + iface.appendChild(virtualport) - parameters = domxml.createElement('parameters') + parameters_interfaceid = None + for parameters in virtualport.getElementsByTagName('parameters'): + if parameters.getAttribute('interfaceid') != None: + parameters_interfaceid = parameters + + if parameters_interfaceid == None: + parameters = domxml.createElement('parameters') + virtualport.appendChild(parameters) parameters.setAttribute('interfaceid', ifc_name) - virtualport.appendChild(parameters) source.setAttribute('bridge', BRIDGE_NAME) diff --git a/driver/test_ovirt_provider_ovn_hook.py b/driver/test_ovirt_provider_ovn_hook.py index ea4e589..c663452 100755 --- a/driver/test_ovirt_provider_ovn_hook.py +++ b/driver/test_ovirt_provider_ovn_hook.py @@ -32,12 +32,12 @@ from ovirt_provider_ovn_hook import VNIC_ID_KEY import ovirt_provider_ovn_hook -INPUT_XML = """<?xml version="1.0" encoding="utf-8"?> +INPUT_XML_1 = """<?xml version="1.0" encoding="utf-8"?> <interface type="bridge"> <model type="virtio"/> <source bridge="net1"/> </interface>""" -EXPECTED_XML = """<?xml version="1.0" encoding="utf-8"?> +EXPECTED_XML_1 = """<?xml version="1.0" encoding="utf-8"?> <interface type="bridge"> <model type="virtio"/> <source bridge="br-int"/> @@ -46,11 +46,29 @@ EXPECTED_XML = """<?xml version="1.0" encoding="utf-8"?> </virtualport> </interface>""" +INPUT_XML_2 = """<?xml version="1.0" encoding="utf-8"?> +<interface type="bridge"> + <model type="virtio"/> + <source bridge="net1"/> + <virtualport type="openvswitch"/> +</interface>""" +EXPECTED_XML_2 = """<?xml version="1.0" encoding="utf-8"?> +<interface type="bridge"> +<model type="virtio"/> +<source bridge="br-int"/> +<virtualport type="openvswitch"> +<parameters interfaceid="7"/> +</virtualport> +</interface>""" class TestOvirtProviderOvnHook(object): @mock.patch.object(os, 'environ', {VNIC_ID_KEY: '7'}) def test_ovs_device(self): + self._test_ovs_device(INPUT_XML_1, EXPECTED_XML_1) + self._test_ovs_device(INPUT_XML_2, EXPECTED_XML_2) + + def _test_ovs_device(self, INPUT_XML, EXPECTED_XML): domxml = minidom.parseString(INPUT_XML) ovirt_provider_ovn_hook.ovs_device(domxml) -- 1.8.3.1
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users