DVR: FIP gateway port is tagged as DEAD port by OVS with external-bridge

FIP agent gateway port is tagged as a DEAD port by OVS when external
bridge is configured in neutron.

When external bridge is configured, the vlan tag should be removed
after the port is plugged in.

This patch fixes the issue.

Change-Id: I969b9d7e7cef4beff526a2b26de3f1a9f9de4c1c
Closes-Bug: #1778643
This commit is contained in:
Swaminathan Vasudevan
2018-06-25 23:48:08 -07:00
parent a388701ddf
commit b2b4229696
2 changed files with 12 additions and 1 deletions
+9 -1
View File
@@ -167,7 +167,15 @@ class FipNamespace(namespaces.Namespace):
namespace=ns_name,
prefix=FIP_EXT_DEV_PREFIX,
mtu=ex_gw_port.get('mtu'))
if self.agent_conf.external_network_bridge:
# NOTE(Swami): for OVS implementations remove the DEAD VLAN tag
# on ports. DEAD VLAN tag is added to each newly created port
# and should be removed by L2 agent but if
# external_network_bridge is set than external gateway port is
# created in this bridge and will not be touched by L2 agent.
# This is related to lp#1767422
self.driver.remove_vlan_tag(
self.agent_conf.external_network_bridge, interface_name)
# Remove stale fg devices
ip_wrapper = ip_lib.IPWrapper(namespace=ns_name)
devices = ip_wrapper.get_devices()
@@ -104,6 +104,9 @@ class TestDvrFipNs(base.BaseTestCase):
self.fip_ns.create_or_update_gateway_port(agent_gw_port)
self.assertTrue(fip_create.called)
self.assertEqual(1, self.driver.plug.call_count)
ext_net_bridge = self.conf.external_network_bridge
if ext_net_bridge:
self.assertEqual(1, self.driver.remove_vlan_tag.call_count)
self.assertEqual(1, self.driver.init_l3.call_count)
@mock.patch.object(ip_lib, 'IPDevice')