yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #63590
[Bug 1686206] [NEW] VM fails to boot with trunk port attached when using OVS-DPDK
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