Jump to: navigation, search

Difference between revisions of "Neutron/NEC OpenFlow Plugin"

Line 9: Line 9:
 
== Abstract ==
 
== Abstract ==
  
The proposal is to implement a Quantum plugin that talks to [[OpenFlow]]
+
NEC [[OpenFlow]] plugin talks to [[OpenFlow]] Controller and each Quantum network would be mapped to an virtual layer-2
Controller. Each Quantum network would be mapped to an virtual layer-2
 
 
network slice on an [[OpenFlow]] enabled network.
 
network slice on an [[OpenFlow]] enabled network.
 
The interface between the Quantum plugin and [[OpenFlow]] Controller is RESTful
 
The interface between the Quantum plugin and [[OpenFlow]] Controller is RESTful
Line 47: Line 46:
 
[[QuickStart]] Installer is available at https://github.com/nec-openstack/quantum-openflow-plugin/tree/folsom/quickstart . This installs Tream Sliceable Switch
 
[[QuickStart]] Installer is available at https://github.com/nec-openstack/quantum-openflow-plugin/tree/folsom/quickstart . This installs Tream Sliceable Switch
 
(OSS [[OpenFlow]] Controller) and run devstack for this plugin.
 
(OSS [[OpenFlow]] Controller) and run devstack for this plugin.
 +
 +
== Configuration ==
 +
 +
* quantum.conf
 +
 +
<pre><nowiki>
 +
core_plugin = quantum.plugins.nec.nec_plugin.NECPluginV2
 +
</nowiki></pre>
 +
 +
* Plugin specific configurations /etc/quantum/plugins/nec/nec.ini
 +
Section "[OFC]" is special configuration for NEC [[OpenFlow]] plugin.
 +
 +
<pre><nowiki>
 +
[OFC]
 +
# OpenFlow Controller Host and Port to connect.
 +
host = 127.0.0.1
 +
port = 8888
 +
# Drivers are in quantum/plugins/nec/drivers/ .
 +
driver = trema
 +
# PacketFilter is available when it's enabled in this configuration
 +
# and supported by the driver.
 +
enable_packet_filter = true
 +
</nowiki></pre>
 +
 +
* quantum agent configuration : DHCP agent (dhcp_agent.ini), L3 agent (l3_agent.init)
 +
same as OVS plugin
 +
 +
<pre><nowiki>
 +
interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
 +
</nowiki></pre>
 +
 +
* nova.conf : same as OVS plugin
 +
 +
<pre><nowiki>
 +
NOVA_VIF_DRIVER="nova.virt.libvirt.vif.LibvirtOpenVswitchDriver"
 +
LINUXNET_VIF_DRIVER="nova.network.linux_net.LinuxOVSInterfaceDriver"
 +
</nowiki></pre>
 +
  
 
== References ==
 
== References ==

Revision as of 13:43, 15 August 2012

Quantum NEC OpenFlow Plugin

<<TableOfContents()>>

Abstract

NEC OpenFlow plugin talks to OpenFlow Controller and each Quantum network would be mapped to an virtual layer-2 network slice on an OpenFlow enabled network. The interface between the Quantum plugin and OpenFlow Controller is RESTful API. This API is supported by two implementations:Tream Sliceable Switch (OSS) and NEC ProgrammableFlow Controller (NEC Commercial Product).

This plugin consists of two components: "Plugin" and "Agent".

  • Plugin: It processes Quantum API calls and controls OpenFlow controller to handle logical networks on OpenFlow enabled network.
  • agent: It runs on each compute node. It gathers a mapping beween a VIF and a switch port from local Open vSwitch and reports it to the plugin.

Requirements

Design

[[Media:quantum-nec-openflow-plugin-design.png|alt|Quantum NEC OpenFlow] Plugin Design| width=800}}

Communication between plugin and agent

This plugin uses "common-rpc" in openstack-common for the agents to communicate with the plugin and will conform to the convention for scalable-agent-comms. The current implemetation of the plugin supports Essex and is available at https://github.com/nec-openstack/quantum-openflow-plugin . The topic name for RPC will be set to "quantum.plugin" as proposed in the blueprint scalable-agent-comms.

Integration with Nova

There are no need for additional features in Nova. This implemetation utilizes a current libvirt VIF driver and linux-net interface driver.

How to run this plugin

Devstack for this plugin is available at https://github.com/r-mibu/devstack/tree/quantum-nec-plugin . QuickStart Installer is available at https://github.com/nec-openstack/quantum-openflow-plugin/tree/folsom/quickstart . This installs Tream Sliceable Switch (OSS OpenFlow Controller) and run devstack for this plugin.

Configuration

  • quantum.conf
core_plugin = quantum.plugins.nec.nec_plugin.NECPluginV2
  • Plugin specific configurations /etc/quantum/plugins/nec/nec.ini
Section "[OFC]" is special configuration for NEC OpenFlow plugin.

[OFC]
# OpenFlow Controller Host and Port to connect.
host = 127.0.0.1
port = 8888
# Drivers are in quantum/plugins/nec/drivers/ .
driver = trema
# PacketFilter is available when it's enabled in this configuration
# and supported by the driver.
enable_packet_filter = true
  • quantum agent configuration : DHCP agent (dhcp_agent.ini), L3 agent (l3_agent.init)
same as OVS plugin

interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
  • nova.conf : same as OVS plugin
NOVA_VIF_DRIVER="nova.virt.libvirt.vif.LibvirtOpenVswitchDriver"
LINUXNET_VIF_DRIVER="nova.network.linux_net.LinuxOVSInterfaceDriver"


References

Essex version of Quantum NEC OpenFlow plugin is available at https://github.com/nec-openstack/quantum-openflow-plugin . Note that the implemetation of Essex version uses a dedicated VIF driver to gather a mapping beween a VIF and a switch port from local Open vSwitch. The proposed version of this plugin uses the agent for this purpose.

(Contact: Ryota Mibu, Akihiro Motoki, NEC)