Public bug reported: Nova fails to boot a VM with Neutron trunk port (vlan-aware-vms; [1]) attached if running with DPDK-enabled OVS (i.e. networking-ovs-dpdk devstack plugin).
n-cpu.log (attached) shows an attempt to use os-vif with "No conversion for VIF type vhostuser" message reported by nova.network.os_vif_util. That causes Nova to fallback to 'Legacy non-os-vif codepath' [2] which fails with "ovs-vsctl: no bridge named tbr-%s" error. That is because 'Legacy non-os-vif codepath' does not include the 'ensure_ovs_bridge' functionality present in os-vif (e.g. [3]) that Neutron trunk port support relies upon. The issue was reproduced using (stable/newton) devstack with local.conf from [4] and OVS firewall_driver and trunk service_plugin enabled: [[post-config|/$Q_PLUGIN_CONF_FILE]] [securitygroup] firewall_driver=openvswitch [[post-config|$NEUTRON_CONF]] [DEFAULT] service_plugins=neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,trunk To reproduce the issue, create a trunk port [1] and boot a VM using that port (port0): openstack network create net0 openstack network create net1 openstack network create net2 openstack subnet create --network net0 --subnet-range 10.0.4.0/24 subnet0 openstack subnet create --network net1 --subnet-range 10.0.5.0/24 subnet1 openstack subnet create --network net2 --subnet-range 10.0.6.0/24 subnet2 openstack port create --network net0 port0 openstack port create --network net1 port1 openstack port create --network net2 port2 openstack network trunk create --parent-port port0 \ --subport port=port1,segmentation-type=vlan,segmentation-id=101 \ --subport port=port2,segmentation-type=vlan,segmentation-id=102 \ trunk0 [1] https://wiki.openstack.org/wiki/Neutron/TrunkPort#CLI_usage_example [2] https://github.com/openstack/nova/blob/stable/newton/nova/virt/libvirt/vif.py#L819-L832 [3] https://github.com/openstack/os-vif/blob/stable/newton/vif_plug_ovs/ovs.py#L84 [4] https://github.com/openstack/networking-ovs-dpdk/blob/master/doc/source/_downloads/local.conf.single_node ** Affects: nova Importance: Undecided Status: New ** Tags: dpdk trunk ** Attachment added: "n-cpu.log" https://bugs.launchpad.net/bugs/1686206/+attachment/4867951/+files/n-cpu.log -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1686206 Title: VM fails to boot with trunk port attached when using OVS-DPDK Status in OpenStack Compute (nova): New Bug description: Nova fails to boot a VM with Neutron trunk port (vlan-aware-vms; [1]) attached if running with DPDK-enabled OVS (i.e. networking-ovs-dpdk devstack plugin). n-cpu.log (attached) shows an attempt to use os-vif with "No conversion for VIF type vhostuser" message reported by nova.network.os_vif_util. That causes Nova to fallback to 'Legacy non- os-vif codepath' [2] which fails with "ovs-vsctl: no bridge named tbr-%s" error. That is because 'Legacy non-os-vif codepath' does not include the 'ensure_ovs_bridge' functionality present in os-vif (e.g. [3]) that Neutron trunk port support relies upon. The issue was reproduced using (stable/newton) devstack with local.conf from [4] and OVS firewall_driver and trunk service_plugin enabled: [[post-config|/$Q_PLUGIN_CONF_FILE]] [securitygroup] firewall_driver=openvswitch [[post-config|$NEUTRON_CONF]] [DEFAULT] service_plugins=neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,trunk To reproduce the issue, create a trunk port [1] and boot a VM using that port (port0): openstack network create net0 openstack network create net1 openstack network create net2 openstack subnet create --network net0 --subnet-range 10.0.4.0/24 subnet0 openstack subnet create --network net1 --subnet-range 10.0.5.0/24 subnet1 openstack subnet create --network net2 --subnet-range 10.0.6.0/24 subnet2 openstack port create --network net0 port0 openstack port create --network net1 port1 openstack port create --network net2 port2 openstack network trunk create --parent-port port0 \ --subport port=port1,segmentation-type=vlan,segmentation-id=101 \ --subport port=port2,segmentation-type=vlan,segmentation-id=102 \ trunk0 [1] https://wiki.openstack.org/wiki/Neutron/TrunkPort#CLI_usage_example [2] https://github.com/openstack/nova/blob/stable/newton/nova/virt/libvirt/vif.py#L819-L832 [3] https://github.com/openstack/os-vif/blob/stable/newton/vif_plug_ovs/ovs.py#L84 [4] https://github.com/openstack/networking-ovs-dpdk/blob/master/doc/source/_downloads/local.conf.single_node To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1686206/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

