Changing physical interface mapping may result in multiple physical interfaces in bridge

Bug #1521314 reported by James Denton
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Invalid
Undecided
Unassigned

Bug Description

Version: 2015.2 (Liberty)
Plugin: ML2 w/ LinuxBridge

While testing various NICs, I found that changing the physical interface mapping in the ML2 configuration file and restarting the agent resulted in the old physical interface remaining in the bridge. This can be observed with the following steps:

Original configuration:

[linux_bridge]
physical_interface_mappings = physnet1:eth2

racker@compute01:~$ brctl show
bridge name bridge id STP enabled interfaces
brqad516357-47 8000.e41d2d5b6213 no eth2
                                                   tap72e7d2be-24

Modify the bridge mapping:

[linux_bridge]
#physical_interface_mappings = physnet1:eth2
physical_interface_mappings = physnet1:eth1

Restart the agent:

racker@compute01:~$ sudo service neutron-plugin-linuxbridge-agent restart
neutron-plugin-linuxbridge-agent stop/waiting
neutron-plugin-linuxbridge-agent start/running, process 12803

Check the bridge:

racker@compute01:~$ brctl show
bridge name bridge id STP enabled interfaces
brqad516357-47 8000.6805ca37dc39 no eth1
                                                   eth2
                                                   tap72e7d2be-24

This behavior was observed with flat or vlan networks, and can result in some wonky behavior. Removing the original interface from the bridge(s) by hand or restarting the node is a workaround, but I suspect LinuxBridge users aren't used to modifying the bridges manually as the agent usually handles that.

Tags: linuxbridge
Revision history for this message
Miguel Angel Ajo (mangelajo) wrote :

I believe this is not a bug, same thing goes with OVS and the external bridges mapping. Since you removed it from configuration, the agent cannot know about the old interface anymore, what if that interface you find suspicious now it's used for something?

tags: added: linuxbridge
Revision history for this message
Rossella Sblendido (rossella-o) wrote :

The agent doesn't delete unused bridges. If you want to clean up, there's a tool for that, it's neutron/cmd/linuxbridge_cleanup.py :)

Changed in neutron:
status: New → Invalid
Revision history for this message
James Denton (james-denton) wrote :

Thanks for the suggestion, Rossella :)

It's not that I'm worried about empty bridges hanging around, but rather the effect of changing the physical interface mapping and restarting the agent. If you're running flat or vlan networks, up to this point the agent has been responsible for creating the vlan interfaces and connecting them to their respective brq bridges. One might expect that changing the interface mapping would result in the agent creating new vlan interfaces based on the new mapping and removing the old interfaces. The agent does the former but not the latter. What you end up with in the bridge is:

brqXXXXXX
-> eth1.101 <-
-> eth2.101 <-
-> tap1
-> tap2
-> etc

It may be worth documenting https://github.com/openstack/neutron/blob/master/etc/neutron/plugins/ml2/linuxbridge_agent.ini and not really addressed by the agent. I doubt its a change that happens regularly, anyway.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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