]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commit
lb: avoid doing nova VIF work plumbing tap to qbr
authorAndreas Scheuring <andreas.scheuring@de.ibm.com>
Wed, 11 Nov 2015 13:03:08 +0000 (14:03 +0100)
committerAndreas Scheuring <andreas.scheuring@de.ibm.com>
Mon, 30 Nov 2015 14:38:50 +0000 (15:38 +0100)
commitf42ea67995537c7fe3e36447489872b0dcb82dd9
tree638ae20663218ed2adfe4a0cd979a8dea5b9ca4a
parentc8a7d9bfdba9cab82cc29f563a387d8c3088c630
lb: avoid doing nova VIF work plumbing tap to qbr

neutron should rely on nova doing the job instead of trying to 'fix' it.
'Fixing' it introduces race conditions between lb agent and nova VIF
driver. Particularly, lb agent can scan for new tap devices in the
middle of nova plumbing qbr-tap setup, and attempt to do it on its own.
So if agent is more lucky to plug the tap device into the bridge, nova
may fail to do the same, getting the following error:

libvirtError: Unable to add bridge brqxxx-xx port tapxxx-xx: Device or
resource busy

This also requires a change in how the port admin_state_up is implemented
by setting the tap device's link state instead of moving it in or out
of the bridge.

Co-Authored-By: Sean M. Collins <sean@coreitpro.com>
Co-Authored-By: Darragh O'Reilly <darragh.oreilly@hp.com>
Co-Authored-By: Andreas Scheuring <andreas.scheuring@de.ibm.com>
Change-Id: I02971103407b4ec11a65218e9ef7e2708915d938
Closes-Bug: #1312016
neutron/common/constants.py
neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py
neutron/tests/unit/plugins/ml2/drivers/linuxbridge/agent/test_linuxbridge_neutron_agent.py