Jump to: navigation, search

Neutron-Linux-Bridge-Plugin

Revision as of 06:09, 25 December 2011 by Snaiksat (talk)

Quantum L2 Linux Bridge Plugin

<<TableOfContents()>>

Abstract

The proposal is to implement a Quantum L2 plugin that configures a Linux Bridge to realize Quantum's Network, Port, and Attachment abstractions. Each Quantum network would map to an independent VLAN managed by the plugin. Sub-interfaces corresponding to a VLAN would be created on each host, and a Linux Bridge would be created enslaving that sub-interface. One or more VIFs (VM Interfaces) in that network on that host would then plug into that Bridge. To a certain extent this effort will achieve the goal of creating a Basic VLAN Plugin (as discussed in the Essex Summit) for systems which support a Linux Bridge.

Requirements

Support for Linux Bridge (brctl package).

Design

Plugin manages VLANs. The actual network artifacts are created by an agent (daemon) running on each host on which the Quantum network has to be created. This agent-based approach is similar to the one employed by the OpenVSwitch plugin.

The diagram below explains the working of the plugin and the agent in the context of creating networks and ports, and plugging a VIF into the Quantum port.

|alt Quantum L2 Linux Bridge Plugin Operation| width=800

  1. The tenant requests the creation of a Quantum network and a port on that network. The plugin creates a network resource and assigns a VLAN to this network. It then creates a Port resource and associates it with this network.
  2. The tenant requests the instantiation of a VM. Nova-compute will invoke the Linux-bridge VIF driver (this driver is different from the Linux bridge VIF driver that comes packaged with Nova) will create a tap device. Subsequently nova-compute will instantiate the VM such that the VM's VIF is associated with the tap device.
  3. The tenant will request plugging the above VIF into the Quantum port created earlier. The plugin will create the association of the VIF and the port in the DB.
  4. The agent daemon on each host in the network will pick up the association in created in Step 3.
  5. If a tap device exists on that host corresponding to that VIF, the agent will create a VLAN and a Linux Bridge on that host (if it does not already exist).
Note: A convention to use the first 11 characters of the UUID is followed to name the tap device. The agent deciphers the name of the tap device from the VIF UUID using this convention.
  1. The agent will subsequently enslave the tap device to the Linux Bridge. The VM is now on the Quantum network.

Integration with Nova

  1. A nova-compute VIF driver will be written. This VIF driver will be very similar to the one used by the OpenVSwitch plugin.
  2. Linux network driver extension will also be required so as to be able to plug the gateway and DHCP servers. This driver will also create a tap device for plugging the Gateway interface. The DHCP server will be association with this tap interface.

(Contact: Sumit Naiksatam, Salvatore Orlando) <
>