Enable Dynamic Network Segments with ML2 Agents

Registered by Robert Kukura

When an L2 agent is used with the ML2 core plugin, a mechanism driver binds the port based on agents_db info, and the L2 agent in the hypervisor uses the get_device_details RPC to get the network_type, physical_network, and segmentation_id of the bound segment that indicate how to plug the port. This approach works fine when the details of how the L2 agent should plug the port are statically defined as a network segment (i.e. a VLAN global to the deployment). But it doesn't handle cases where these details needed by the L2 agent are dynamically managed, such as when the hypervisor connects via a (non-global) VLAN to a ToR switch that tunnels the traffic to other switches via VXLAN. This blueprint changes ML2's handling of the get_device_details RPC so that the bound mechanism driver can supply the connectivity details, ether directly from the bound segment as is done now (possibly involving the type driver), or from information it manages regarding local connectivity from the hypervisor to a switch with connectivity to the bound segment. This blueprint does not assume any particular mechanism for managing allocation of connectivity between the hypervisor and switch, such as VDP, but should enable a range of approaches.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Robert Kukura
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Armando Migliaccio

Related branches

Sprints

Whiteboard

If someone is interested in pursuing it, this must be re-submitted according to guidelines defined in [1]

[1] http://docs.openstack.org/developer/neutron/policies/blueprints.html

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.