Neutron

= OpenStack Networking ("Neutron") =

Neutron Mission Statement
To implement services and associated libraries to provide on-demand, scalable, and technology-agnostic network abstraction. Source

What is Neutron?
Neutron is an OpenStack project to provide "networking as a service" between interface devices (e.g., vNICs) managed by other Openstack services (e.g., nova).

Starting in the Folsom release, Neutron is a core and supported part of the OpenStack platform (for Essex, we were an "incubated" project, which means use is suggested only for those who really know what they're doing with Neutron).

If you're a networking geek and like to hack on OpenStack, please join!

More Info:
 * Overview of Neutron (slides) (3/12)
 * Neutron Project Overview + Update from Grizzly Summit (video) (10/12)
 * Video Neutron Overview (3/12)
 * Slides on Technical Architecture of Neutron (2013-03-14)
 * Understanding Neutron (in CN) (2015-03-24)

Related projects

 * Python Neutron client
 * Neutron Admin and API documentation in OpenStack Manuals
 * Tempest testing project Tempest Manuals. For the Icehouse cycle, the community is undertaking a focused effort to strengthen the suite of Tempest tests for Neutron. If you are interested on contributing to this effort, please go to Icehouse Neutron Tempest push to see what is being done and to TempestAPITests for HOWTO instructions. Helping to develop Tempest tests (particularly API tests) is an excellent way for new contributors to learn Neutron.

Why Neutron?

 * Give cloud tenants an API to build rich networking topologies, and configure advanced network policies in the cloud.
 * Example: create multi-tier web application topology
 * Enable innovation plugins (open and closed source) that introduce advanced network capabilities
 * Example: use L2-in-L3 tunneling to avoid VLAN limits, provide end-to-end QoS guarantees, use monitoring protocols like NetFlow.
 * Let anyone build advanced network services (open and closed source) that plug into Openstack tenant networks.
 * Examples: LB-aaS, VPN-aaS, firewall-aaS, IDS-aaS (not implemented), data-center-interconnect-aaS.
 * Horizon GUI support for:
 * Neutron L2 and L3 network and subnet creation/deletion
 * Booting VMs on specific Neutron networks.
 * API Extensibility Framework, including extensions for:
 * "provider network", which maps Neutron L2 networks to a specific VLAN in the physical data center

Using Neutron
Follow the instructions in the Networking Guide, or use the installation documentation at http://docs.openstack.org to use Neutron with OpenStack Nova.

Forget documentation, I just want to get the code!: Neutron Downloads

Detailed information for programming against v2.0 of the Neutron web services API is available in the Neutron API Guide

If you are looking for information on using Neutron with devstack, please see: NeutronDevstack.

Neutron lets you use a set of different backends called "plugins" that work with a growing variety of networking technologies. These plugins may be distributed as part of the main Neutron release, or separately.

Plugins
The set of plugins originally included in the main Neutron distribution and supported by the Neutron community include:


 * Open vSwitch Plugin
 * Cisco UCS/Nexus Plugin
 * Cisco ASR1000 Plugin
 * Linux Bridge Plugin
 * Modular Layer 2 Plugin
 * Nicira Network Virtualization Platform (NVP) Plugin
 * Ryu OpenFlow Controller Plugin
 * NEC OpenFlow Plugin
 * Big Switch Controller Plugin
 * Cloudbase Hyper-V Plugin
 * MidoNet Plugin
 * Brocade Neutron Plugin Brocade Neutron Plugin
 * PLUMgrid Plugin
 * Mellanox Neutron Plugin Mellanox Neutron Plugin
 * Embrane Neutron Plugin
 * IBM SDN-VE Plugin
 * CPLANE NETWORKS CPLANE NETWORKS
 * Nuage Networks Plugin
 * OpenContrail OpenContrail Plugin
 * Lenovo Networking Lenovo Networking Plugin
 * Avaya Neutron Plugin Avaya Neutron Plugin

Additional plugins are available from other sources: If you have your own plugin, feel free to add it to this list.
 * Cisco Systems Plugin
 * Extreme Networks Plugin
 * Ruijie Networks Plugin
 * Juniper Networks Neutron Plugin
 * Calico Neutron Plugin (docs)
 * BNC Plugin (docs)
 * Asterfusion Networks Plugin

Havana Release and ML2 Plugin Update
Starting with Havana release, openvswitch and linuxbridge plugins are deprecated. Modular Layer 2 (ML2) plugin replaces these plugins. L2 agents work with ML2 plugin and continue to work with the deprecated monolithic plugins.

ML2 plugin architecture facilitates the type drivers to support multiple networking technologies, and mechanism drivers to facilitate the access to the networking configuration in a transactional model. The details of these drivers is described here. Long term goal is to transition all vendor specific plugins to the type and mechanism drivers.

Following Type Drivers are supported:
 * Flat
 * Local
 * VLAN
 * GRE
 * VxLan

Following Vendor specific Mechanism Drivers are supported:
 * Huawei Switch Driver
 * Arista Driver
 * Cisco Nexus Driver
 * Tail-f NCS Driver

Participate
To get code, ask questions, view blueprints, etc, see: Neutron Launchpad Page

See NeutronDevelopment for some (rough) guides on how to contribute code to Neutron, including how to add your own plugin.

If you would like to participate, please send mail to the main openstack-dev list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

You can also attend our regular IRC meetings, which start one hour after the main openstack meeting, on the same #openstack-meeting channel: http://wiki.openstack.org/Network/Meetings

Check out NeutronStarterBugs for ideas on easy bugs or starter projects you might tackle. Or just start playing with NeutronDevstack and come up with your own ideas!