dda5081883
In addition to binding:vif_type, the neutron core plugin needs to supply various information to nova's VIF driver, such as VIF security details and PCI details when SR-IOV is being used. This information is read-only, requires admin privileges, and is not intended for normal users. Rather than add separate mechanisms throughout the stack for each such requirement, the binding:capabilities port attibute, which is a dictionary and is not currently not used by nova, is renamed to binding:vif_details to serve as a general-purpose mechanism for supplying binding-specific details to the VIF driver. This patch does not remove or replace the CAP_PORT_FILTER boolean previously used in binding:capabilities. A separate patch should implement the specific key/value pairs carried by binding:vif_details to implement VIF security. Another patch will implement the key/value pairs needed for SR-IOV. The ML2 plugin now allows the bound mechanism driver to supply the binding:vif_details dictionary content, instead of just the CAP_PORT_FILTER boolean previously carried by the binding:capabilities attribute. DocImpact: Need to update portbinding extension API, but no impact on user or administrator documentation. Implements: blueprint vif-details Related-Bug: 1112912 Change-Id: I34be746fcfa73c70f72b4f9add8eff3ac88c723f |
||
---|---|---|
.. | ||
db | ||
nos | ||
tests | ||
__init__.py | ||
NeutronPlugin.py | ||
README.md | ||
vlanbm.py |
Brocade Openstack Neutron Plugin
-
up-to-date version of these instructions are located at: http://wiki.openstack.org/brocade-neutron-plugin
-
N.B.: Please see Prerequisites section regarding ncclient (netconf client library)
-
Supports VCS (Virtual Cluster of Switches)
Openstack Brocade Neutron Plugin implements the Neutron v2.0 API.
This plugin is meant to orchestrate Brocade VCS switches running NOS, examples of these are:
- VDX 67xx series of switches
- VDX 87xx series of switches
Brocade Neutron plugin implements the Neutron v2.0 API. It uses NETCONF at the backend to configure the Brocade switch.
+------------+ +------------+ +-------------+
| | | | | |
| | | | | Brocade |
| Openstack | v2.0 | Brocade | NETCONF | VCS Switch |
| Neutron +--------+ Neutron +----------+ |
| | | Plugin | | VDX 67xx |
| | | | | VDX 87xx |
| | | | | |
| | | | | |
+------------+ +------------+ +-------------+
Directory Structure
Normally you will have your Openstack directory structure as follows:
/opt/stack/nova/
/opt/stack/horizon/
...
/opt/stack/neutron/neutron/plugins/
Within this structure, Brocade plugin resides at:
/opt/stack/neutron/neutron/plugins/brocade
Prerequsites
This plugin requires installation of the python netconf client (ncclient) library:
ncclient v0.3.1 - Python library for NETCONF clients available at http://github.com/brocade/ncclient
% git clone https://www.github.com/brocade/ncclient % cd ncclient; sudo python ./setup.py install
Configuration
-
Specify to Neutron that you will be using the Brocade Plugin - this is done by setting the parameter core_plugin in Neutron:
core_plugin = neutron.plugins.brocade.NeutronPlugin.BrocadePluginV2
-
Physical switch configuration parameters and Brocade specific database configuration is specified in the configuration file specified in the brocade.ini files:
% cat /etc/neutron/plugins/brocade/brocade.ini [SWITCH] username = admin password = password address = <switch mgmt ip address> ostype = NOS [database] connection = mysql://root:pass@localhost/brocade_neutron?charset=utf8 (please see list of more configuration parameters in the brocade.ini file)
Running Setup.py
Running setup.py with appropriate permissions will copy the default configuration file to /etc/neutron/plugins/brocade/brocade.ini. This file MUST be edited to suit your setup/environment.
% cd /opt/stack/neutron/neutron/plugins/brocade
% python setup.py
Devstack
Please see special notes for devstack at: http://wiki.openstack.org/brocade-neutron-plugin
In order to use Brocade Neutron Plugin, add the following lines in localrc, if localrc file doe not exist create one:
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,quantum,q-svc,q-agt Q_PLUGIN=brocade
As part of running devstack/stack.sh, the configuration files is copied as:
% cp /opt/stack/neutron/etc/neutron/plugins/brocade/brocade.ini /etc/neutron/plugins/brocade/brocade.ini
(hence it is important to make any changes to the configuration in: /opt/stack/neutron/etc/neutron/plugins/brocade/brocade.ini)