VM fails to boot with trunk port attached when using OVS-DPDK

Bug #1686206 reported by Ilya Chukhnakov
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Confirmed
Low
Unassigned

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

Revision history for this message
Ilya Chukhnakov (ichukhnakov) wrote :
Revision history for this message
Sean Dague (sdague) wrote :

Automatically discovered version newton in description. If this is incorrect, please update the description to include 'nova version: ...'

tags: added: openstack-version.newton
Sean Dague (sdague)
Changed in nova:
status: New → Confirmed
importance: Undecided → Low
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.