Support external physical bridge mapping in linuxbridge

Include the URL of your launchpad blueprint:

https://blueprints.launchpad.net/neutron/+spec/phy-net-bridge-mapping

This proposal implements physical bridge mapping for linuxbridge-agent. According to this proposal, linuxbridge-agent will be able to be aware of external user-defined physical bridges and attach tap devices on it.

Problem Description

The linuxbridge-agent currently creates a bridge for each physical network used as a flat network, moving any existing IP address from the interface to the newly created bridge. This is very helpful in some cases, but there are other cases where the ability to use a pre-existing (user-defined) bridge.

For instance, the same physical network might need to be bridged for other purposes, or the agent moving the system’s IP might not be desired or cause some unexpected error for the pre-defined environment.

According to some enterprise end-users’ feedbacks, they do need this feature to make neutron compatible with their pre-defined virtual network environment due to some security regulations.

Proposed Change

Add a bridge_mappings configuration variable, similar to that used by the openvswitch-agent, alongside the current physical_interface_mappings variable.

When a physical bridge for a flat network is needed, the bridge mappings would be checked first. If a bridge mapping for the physical network exists, it would be used.

If not, the interface mapping would be used and a bridge for the interface would be created automatically. Sub-interfaces and bridges for VLAN networks would continue to work as they do now, created by the agent using the interface mappings.

Data Model Impact

None.

REST API Impact

None.

Security Impact

None.

Notifications Impact

None.

Other End User Impact

None.

Performance Impact

None.

IPv6 Impact

None.

Other Deployer Impact

Add an option called bridge_mappings in /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini.

Developer Impact

None.

Community Impact

This change is a value-added feature for linuxbridge-agent, and it won’t affect the current development cycle.

The implementation is simple and straightforward.

Alternatives

None.

Implementation

Assignee(s)

Primary assignee:
nick-ma-z
Other contributors:
None

Work Items

  • Implement the feature
  • Provide unit tests

Dependencies

None.

Testing

Tempest Tests

None.

Functional Tests

None. This new feature can be fully covered by unit test cases.

API Tests

None.

Documentation Impact

User Documentation

Add an option called bridge_mappings in /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini.

Developer Documentation

None.