Jump to: navigation, search

Difference between revisions of "Neutron/NEC OpenFlow Plugin"

m
 
(37 intermediate revisions by 5 users not shown)
Line 1: Line 1:
__NOTOC__
+
'''[Deprecation Warning]''' The current plugin, NEC OpenFlow plugin, is deprecated in OpenStack Liberty release (2015.2).
* '''Created''': Jun 21, 2012
+
A new driver for NEC NWA (Network Automation) product is coming.
* '''Blueprint''': https://blueprints.launchpad.net/quantum/+spec/quantum-nec-openflow-plugin
+
Note that the production support will be continued based on the production support policy.
  
= Quantum NEC [[OpenFlow]] Plugin =
+
'''[Note]''' In Kilo development cycle, Neutron community decides to move
 +
vendor specific codes into separate repositories.
 +
NEC OpenFlow plugin is now available at https://git.openstack.org/openstack/networking-nec.
  
<<[[TableOfContents]]()>>
+
== Project Links ==
  
== Abstract ==
+
* Git: https://github.com/openstack/networking-nec
 +
* Documentation: http://pythonhosted.org/networking-nec/
 +
* Launchpad: https://launchpad.net/networking-nec
 +
* PyPI: https://pypi.python.org/pypi/networking-nec
  
NEC [[OpenFlow]] plugin talks to [[OpenFlow]] Controller and each Quantum network would be mapped to an virtual layer-2
+
== Introduction ==
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".
+
NEC OpenFlow plugin talks to OpenFlow Controller and each Neutron would be mapped to an virtual layer-2
 +
network slice on an OpenFlow enabled network. The interface between the Neutron plugin and OpenFlow
 +
Controller is RESTful API. This API is supported by two implementations:
 +
[http://www.necam.com/SDN/ NEC ProgrammableFlow Networking Controller] and
 +
[https://github.com/trema/apps/tree/master/sliceable_switch Trema Sliceable Switch].
 +
More detail is available in [https://github.com/openstack/networking-nec/blob/master/doc/source/readme.rst networking-nec repository].
  
* '''Plugin''': It processes Quantum API calls and controls [[OpenFlow]] controller to handle logical networks on [[OpenFlow]] enabled network.
+
== Using NEC OpenFlow plugin ==
* '''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 ==
+
* [http://pythonhosted.org/networking-nec/devstack.html] (with Kilo or later)
 +
* [http://pythonhosted.org/networking-nec/installation.html#manual-installation Manual installation]
 +
* [http://pythonhosted.org/networking-nec/settings.html Configuration Guide]
  
* [[OpenFlow]] Controller: Trema with Sliceable Switch (distributed under Apache License version 2.0), or an [[OpenFlow]] Controller that has the same functionalities and REST API available at https://github.com/trema/apps/wiki/Sliceable-Network-Management-API .
+
----
  
== Design ==
+
Note for Juno DevStack users:
 +
* Devstack support of NEC OpenFlow plugin is a part of the official devstack (http://github.com/openstack-dev/devstack) from Grizzly.
 +
* Detail instruction and sample devstack configuration examples (localrc) are available at https://github.com/nec-openstack/devstack-neutron-nec-openflow/wiki .
  
[[Media:quantum-nec-openflow-plugin-design.png|alt|Quantum NEC OpenFlow] Plugin Design| width=800}}
+
[[Category: Neutron]]
 
 
=== 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/nec-openstack/devstack-quantum-nec-openflow .
 
This installs Tream Sliceable Switch (OSS [[OpenFlow]] Controller) and run devstack for this plugin.
 
 
 
== Configuration ==
 
 
 
* quantum.conf
 
 
<pre><nowiki>
 
# Quantum plugin provider module
 
core_plugin = quantum.plugins.nec.nec_plugin.NECPluginV2
 
# Path to the extensions.
 
# It must be abosolute path (or relative path from the directory where quantum-server is invoked)
 
api_extensions_path = /opt/stack/quantum/quantum/plugins/nec/extensions/
 
</nowiki></pre>
 
 
 
* Plugin specific configurations /etc/quantum/plugins/nec/nec.ini
 
Section "[OFC]" is particular configurations to 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 : needs to use '''OVSVethInterfaceDriver''' to use DHCP agent (dhcp_agent.ini), L3 agent (l3_agent.init).
 
It is a derivative of OVSInterfaceDriver that use veth netdev. It will be integrated into OVSInterfaceDriver.
 
 
<pre><nowiki>
 
interface_driver = quantum.agent.linux.interface.OVSVethInterfaceDriver
 
</nowiki></pre>
 
 
 
* nova.conf : same as OVS plugin
 
 
<pre><nowiki>
 
NOVA_VIF_DRIVER="nova.virt.libvirt.vif.LibvirtOpenVswitchDriver"
 
</nowiki></pre>
 
 
 
 
 
== 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)
 

Latest revision as of 11:29, 26 December 2015

[Deprecation Warning] The current plugin, NEC OpenFlow plugin, is deprecated in OpenStack Liberty release (2015.2). A new driver for NEC NWA (Network Automation) product is coming. Note that the production support will be continued based on the production support policy.

[Note] In Kilo development cycle, Neutron community decides to move vendor specific codes into separate repositories. NEC OpenFlow plugin is now available at https://git.openstack.org/openstack/networking-nec.

Project Links

Introduction

NEC OpenFlow plugin talks to OpenFlow Controller and each Neutron would be mapped to an virtual layer-2 network slice on an OpenFlow enabled network. The interface between the Neutron plugin and OpenFlow Controller is RESTful API. This API is supported by two implementations: NEC ProgrammableFlow Networking Controller and Trema Sliceable Switch. More detail is available in networking-nec repository.

Using NEC OpenFlow plugin


Note for Juno DevStack users: