<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Larkland+Morley</id>
		<title>OpenStack - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Larkland+Morley"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/Larkland_Morley"/>
		<updated>2026-07-14T08:42:19Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88352</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88352"/>
				<updated>2015-08-19T17:20:28Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [http://publib.boulder.ibm.com/infocenter/systemx/documentation/topic/com.lenovo.switchmgt.openstack_neutron_plugin.doc/Lenovo_Openstack_Neutron_Plugin_UG.pdf Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. Support Policy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This software is provided as Open source code therefore, Lenovo does not provide any support entitlements for this product. If any issues occur while using this driver with Lenovo Switches, the Openstack launchpad application is a good tool for opening a bug against it and Lenovo may address this on a best effort basis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88351</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88351"/>
				<updated>2015-08-19T17:19:25Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [http://publib.boulder.ibm.com/infocenter/systemx/documentation/topic/com.lenovo.switchmgt.openstack_neutron_plugin.doc/Lenovo_Openstack_Neutron_Plugin_UG.pdf/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. Support Policy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This software is provided as Open source code therefore, Lenovo does not provide any support entitlements for this product. If any issues occur while using this driver with Lenovo Switches, the Openstack launchpad application is a good tool for opening a bug against it and Lenovo may address this on a best effort basis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88349</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88349"/>
				<updated>2015-08-19T16:37:42Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running on the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. Support Policy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This software is provided as Open source code therefore, Lenovo does not provide any support entitlements for this product. If any issues occur while using this driver with Lenovo Switches, the Openstack launchpad application is a good tool for opening a bug against it and Lenovo may address this on a best effort basis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88348</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88348"/>
				<updated>2015-08-19T16:36:24Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Lenovo Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. Support Policy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This software is provided as Open source code therefore, Lenovo does not provide any support entitlements for this product. If any issues occur while using this driver with Lenovo Switches, the Openstack launchpad application is a good tool for opening a bug against it and Lenovo may address this on a best effort basis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88110</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88110"/>
				<updated>2015-08-14T19:55:49Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. Support Policy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This software is provided as Open source code therefore, Lenovo does not provide any support entitlements for this product. If any issues occur while using this driver with Lenovo Switches, the Openstack launchpad application is a good tool for opening a bug against it and Lenovo may address this on a best effort basis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88109</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=88109"/>
				<updated>2015-08-14T19:55:19Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
[[File:RH certified technology partner logo v1 1214clean rgb reverse.png|thumbnail|center|Certified]]&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. Support Policy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This software is provided as Open source code therefore, Lenovo does not provide any support entitlements for this product. If any issues occur while using this driver with Lenovo Switches, the Openstack launchpad application is a good tool for opening a bug against it and Lenovo may address this on a best effort basis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:RH_certified_technology_partner_logo_v1_1214clean_rgb_reverse.png&amp;diff=88108</id>
		<title>File:RH certified technology partner logo v1 1214clean rgb reverse.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:RH_certified_technology_partner_logo_v1_1214clean_rgb_reverse.png&amp;diff=88108"/>
				<updated>2015-08-14T19:53:08Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87940</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87940"/>
				<updated>2015-08-13T00:36:36Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4. Support Policy'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This software is provided as Open source code therefore, Lenovo does not provide any support entitlements for this product. If any issues occur while using this driver with Lenovo Switches, the Openstack launchpad application is a good tool for opening a bug against it and Lenovo may address this on a best effort basis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87939</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87939"/>
				<updated>2015-08-13T00:34:31Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
'''4. Support Policy'''&lt;br /&gt;
&lt;br /&gt;
This software is provided as Open source code therefore, Lenovo does not provide any support entitlements for this product. If any issues occur while using this driver, the open launchpad application is a good tool for opening a bug against it and Lenovo may address this by best effort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87938</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87938"/>
				<updated>2015-08-13T00:10:27Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
*	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87937</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87937"/>
				<updated>2015-08-13T00:06:26Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Source: https://github.com/lenovo-network/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87936</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87936"/>
				<updated>2015-08-13T00:00:09Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87934</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87934"/>
				<updated>2015-08-12T23:57:41Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
When network redundancy is required, Lenovo VLAG is recommended as shown below&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87932</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87932"/>
				<updated>2015-08-12T23:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
'''Recommended Network Configurations'''&lt;br /&gt;
----&lt;br /&gt;
The following is an example of Single Port Server attachments where no redundancy is required&lt;br /&gt;
&lt;br /&gt;
[[File:Single nic servers1.gif|frameless|Single Server Attachment]]&lt;br /&gt;
&lt;br /&gt;
The following is an example with Lenovo VLAG attachments to Servers&lt;br /&gt;
&lt;br /&gt;
[[File:Vlag layout1.gif|frameless|Lenovo VLAG Configuration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Single_nic_servers1.gif&amp;diff=87931</id>
		<title>File:Single nic servers1.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Single_nic_servers1.gif&amp;diff=87931"/>
				<updated>2015-08-12T23:49:56Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Vlag_layout1.gif&amp;diff=87930</id>
		<title>File:Vlag layout1.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Vlag_layout1.gif&amp;diff=87930"/>
				<updated>2015-08-12T23:47:47Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87929</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87929"/>
				<updated>2015-08-12T23:39:53Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
--------&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 User Guide is provided to assist with installation and setup of this driver - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87928</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87928"/>
				<updated>2015-08-12T23:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
&lt;br /&gt;
The following is an important support matrix for this driver&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo Switches || G8272, G8332, G8052 and G8264&lt;br /&gt;
|-&lt;br /&gt;
| Supported Lenovo NOS || 7.9, 8.x&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS Platforms || Redhat, Ubuntu&lt;br /&gt;
|-&lt;br /&gt;
| Openstack Version || Kilo &lt;br /&gt;
|-&lt;br /&gt;
| VLAN Range || 2-4094&lt;br /&gt;
|-&lt;br /&gt;
| Redhat Linux || RHEL Openstack 7&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87927</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87927"/>
				<updated>2015-08-12T23:31:46Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''General Requirements'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Component !! Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87926</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87926"/>
				<updated>2015-08-12T23:25:33Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87924</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87924"/>
				<updated>2015-08-12T23:13:53Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Openstack Neutron Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [https://www.dropbox.com/s/ctfd8mxud4r84cj/Openstack_Neutron_Plugin_UG.pdf?dl=0/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87923</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87923"/>
				<updated>2015-08-12T23:09:24Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Openstack Neutron Plug-in==&lt;br /&gt;
&lt;br /&gt;
Here you will find details on the Lenovo vendor code Neutron ML2 Driver for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron ML2 Driver provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 Driver Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Driver code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Data Center Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Driver'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87922</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87922"/>
				<updated>2015-08-12T22:44:12Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Lenovo Plug-in Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configuration file will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The first section is in [ml2[ to have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second section is to add Lenovo switch information to the section [ml2_mech_lenovo] of this configuration file. &lt;br /&gt;
&lt;br /&gt;
Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87921</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87921"/>
				<updated>2015-08-12T22:40:16Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87920</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87920"/>
				<updated>2015-08-12T22:39:24Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “3. Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
'''2. Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87919</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87919"/>
				<updated>2015-08-12T22:35:54Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the Neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
'''2. Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87918</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87918"/>
				<updated>2015-08-12T22:33:27Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*      change tenant_network_types = vlan&lt;br /&gt;
*      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section '''2. Plugin Configuration''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neutron Database Migration&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
'''2. Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3.	Troubleshooting the Installation'''&lt;br /&gt;
&lt;br /&gt;
If the server Neutron server does not start, you can check the &lt;br /&gt;
&lt;br /&gt;
1.	Neutron log file, the log is located at /var/log/neutron/server.log.&lt;br /&gt;
&lt;br /&gt;
2.	Verify that Lenovo Plugin details are in the mysql database:&lt;br /&gt;
&lt;br /&gt;
% sudo mysql –u root –p –h [your IP]&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use neutron;&lt;br /&gt;
               &lt;br /&gt;
mysql&amp;gt;  show tables;&lt;br /&gt;
&lt;br /&gt;
(Verify that the following table is present lenovo_ml2_nosport_bindings)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87917</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87917"/>
				<updated>2015-08-12T22:30:38Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
-      change tenant_network_types = vlan&lt;br /&gt;
-      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
-      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section 2. Plugin Configuration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
'''1.2.2	Ubuntu Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations in Ubuntu 14.x Environments. The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, we need to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron code as follows &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
*     change tenant_network_types = vlan&lt;br /&gt;
*     change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
*     copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section 2. Plugin Configuration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neutron Database Migration&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo service neutron-server restart &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
'''2. Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87916</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87916"/>
				<updated>2015-08-12T22:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
'''1.2.1	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments. &lt;br /&gt;
&lt;br /&gt;
Sttep 1 is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
-      change tenant_network_types = vlan&lt;br /&gt;
-      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
-      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*** change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section 5. Plugin Configuration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87915</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87915"/>
				<updated>2015-08-12T22:12:14Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo ML2 driver''' &lt;br /&gt;
&lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plug-in'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plug-in&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
&lt;br /&gt;
'''1.3	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments &lt;br /&gt;
&lt;br /&gt;
 The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
-      change tenant_network_types = vlan&lt;br /&gt;
-      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
-      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*** change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section 5. Plugin Configuration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87913</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87913"/>
				<updated>2015-08-12T22:07:19Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''1.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
'''1.2	ML2 Installation Procedure'''&lt;br /&gt;
&lt;br /&gt;
This section will cover the installation procedure for Lenovo Networking Openstack ML2 Driver plug-in in a Multi Node environment with Redhat Enterprise Linux 7 Openstack or Ubuntu 14.04 LTS:&lt;br /&gt;
Download Lenovo ML2 driver &lt;br /&gt;
The ML2 installation files can be downloaded from Lenovo Stackforge Github site with “git clone”  as shown below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone git.openstack.org/cgit/openstack/networking-lenovo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Setup Lenovo ML2 Plugin'''&lt;br /&gt;
&lt;br /&gt;
The next step is to install the plugin&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd  networking-lenovo&lt;br /&gt;
% sudo python setup.py install &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This concludes the Lenovo ML2 driver (vendor code) installation step.&lt;br /&gt;
 &lt;br /&gt;
'''1.3	Redhat Openstack Setup'''&lt;br /&gt;
&lt;br /&gt;
The following steps are required for Kilo based installations such as Redhat Openstack Release 7 Environments &lt;br /&gt;
&lt;br /&gt;
 The first step is to uninstall the current neutron on the system as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip uninstall neutron;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the current neutron has been uninstalled, the next step is to download the kilo neutron code for Lenovo from Github as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo git clone https://github.com/lenovo-network/neutron.git &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the files are downloaded, install the Lenovo Neutron driver as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% cd neutron&lt;br /&gt;
% sudo git checkout staging/kiloplus&lt;br /&gt;
% sudo python setup.py install&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the Lenovo ML2 driver has been installed and Neutron for Kilo Replaced.&lt;br /&gt;
&lt;br /&gt;
'''Update ML2 Configuration'''&lt;br /&gt;
&lt;br /&gt;
Now it is time to edit the ml2 configuration files with some basic information on the use of VLANs for networking and add local switch information.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
%  cd /etc/neutron/plugins/ml2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the file ml2_conf.ini as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo vi ml2_conf.ini,&lt;br /&gt;
-      change tenant_network_types = vlan&lt;br /&gt;
-      change mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
-      copy everything in ml2_conf_lenovo.ino, and concatenate to ml2_conf.ini, &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*** change this section according to network setup requirements, add the IP address of switch(es), Connection details  and change the hostname for servers&lt;br /&gt;
&lt;br /&gt;
(See more details on this step in section 5. Plugin Configuration)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neutron Database Migration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file  /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the neutron Server – Exiting the mysql is required for this step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo systemctl start neutron-server.service &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If any issues are observed please check the section “Troubleshooting the Installation”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87900</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87900"/>
				<updated>2015-08-12T20:47:27Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4.	Lenovo Plug-in Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''4.1	Lenovo Plug-in Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plug-in will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are prerequisites for using the plug-in:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4.4 Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87864</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87864"/>
				<updated>2015-08-12T14:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4	Lenovo Plugin Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''4.1	Pre-Requisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plugin will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are pre-requisites for using the plugin:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4.4 Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.65]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87862</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87862"/>
				<updated>2015-08-12T14:39:35Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4	Lenovo Plugin Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''4.1	Pre-Requisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plugin will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are pre-requisites for using the plugin:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu, use the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4.4 Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.65]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87861</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87861"/>
				<updated>2015-08-12T14:37:21Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4	Lenovo Plugin Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''4.1	Pre-Requisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plugin will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
&lt;br /&gt;
The following are pre-requisites for using the plugin:&lt;br /&gt;
&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu use the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4.2 Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.65]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87859</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87859"/>
				<updated>2015-08-12T14:35:14Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
-------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4	Lenovo Plugin Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''4.1	Pre-Requisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plugin will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
The following are pre-requisites for using the plugin:&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu use the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.65]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87856</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87856"/>
				<updated>2015-08-12T14:32:01Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
'''Using the Lenovo Openstack ML2 Plugin'''&lt;br /&gt;
_____________________________&lt;br /&gt;
&lt;br /&gt;
'''4	Lenovo Plugin Installation'''&lt;br /&gt;
&lt;br /&gt;
The following are the detailed steps to setup your Openstack deployment with Lenovo Neutron Plugin managing Lenovo Switches.&lt;br /&gt;
&lt;br /&gt;
'''4.1	Pre-Requisites'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Plugin will provide dynamic VLAN configuration on access layer switches server facing ports that maps Openstack networks into the physical infrastructure. &lt;br /&gt;
The following are pre-requisites for using the plugin:&lt;br /&gt;
-	Install python pip and git to allow the downloading of files from Github&lt;br /&gt;
&lt;br /&gt;
For Redhat, use the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo yum install python-pip git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Ubuntu use the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo apt-get install python-pip git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*	Install the ncclient v0.4.2 Python library for NETCONF clients. For more information on ncclient, see http://ncclient.grnet.gr/.&lt;br /&gt;
&lt;br /&gt;
*	Install with the ncclient library by using the pip package manager at your shell prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
% sudo pip install ncclient == 0.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*	Determine the VLAN pool for your Openstack Deployment, for example 1001-2001. This will be required for configuring the uplink ports and the plugin.&lt;br /&gt;
&lt;br /&gt;
*	Configure physical network topology; add the assigned VLAN pool to uplink ports and aggregation switches as required. Other protocols such as ACLs, switch access credential should be configured as needed.&lt;br /&gt;
&lt;br /&gt;
*	SSH needs to be enabled on all Openstack Managed switches. This is required for the NETCONF protocol.&lt;br /&gt;
&lt;br /&gt;
*	In VLAG mode, the ISL and Portchannel/LACP trunk should be created on the relevant switches as the plugin does not configure these attributes.  &lt;br /&gt;
&lt;br /&gt;
*      Server NICs connected to VLAG Switches needs to have NIC bonding configured (see Network topology section for examples). &lt;br /&gt;
&lt;br /&gt;
*	Install Openstack Controller and Network nodes. Openstack needs to be running before installing the Lenovo Neutron driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.65]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87831</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87831"/>
				<updated>2015-08-12T05:24:29Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.65]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
'''[ml2_mech_lenovo:10.240.179.54]'''&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87830</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87830"/>
				<updated>2015-08-12T05:21:32Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87829</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87829"/>
				<updated>2015-08-12T05:13:23Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
&lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87828</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87828"/>
				<updated>2015-08-12T05:10:40Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Plugin Configuration'''&lt;br /&gt;
&lt;br /&gt;
Two sections of the  configurations will need to be modified manually in /etc/neutron/plugins/ml2/ml2_conf.ini&lt;br /&gt;
The  sections listed here should have Lenovo included in mechanism_drivers, and network_vlan_ranges need to be defined as in ml2_type_vlan section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2]&lt;br /&gt;
tenant_network_types = vlan&lt;br /&gt;
type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
mechanism_drivers = openvswitch,lenovo&lt;br /&gt;
# (ListOpt) List of network type driver entrypoints to be loaded from&lt;br /&gt;
# the neutron.ml2.type_drivers namespace.&lt;br /&gt;
#&lt;br /&gt;
# type_drivers = local,flat,vlan,gre,vxlan&lt;br /&gt;
# Example: type_drivers = flat,vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of network_types to allocate as tenant&lt;br /&gt;
# networks. The default value 'local' is useful for single-box testing&lt;br /&gt;
# But provides no connectivity between hosts.&lt;br /&gt;
#&lt;br /&gt;
# tenant_network_types = local&lt;br /&gt;
# Example: tenant_network_types = vlan,gre,vxlan&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of networking mechanism driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.mechanism_drivers namespace.&lt;br /&gt;
# mechanism_drivers =&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
# Example: mechanism_drivers = arista&lt;br /&gt;
# Example: mechanism_drivers = cisco,logger&lt;br /&gt;
# Example: mechanism_drivers = openvswitch,brocade&lt;br /&gt;
# Example: mechanism_drivers = linuxbridge,brocade&lt;br /&gt;
&lt;br /&gt;
# (ListOpt) Ordered list of extension driver entrypoints&lt;br /&gt;
# to be loaded from the neutron.ml2.extension_drivers namespace.&lt;br /&gt;
# extension_drivers =&lt;br /&gt;
# Example: extension_drivers = anewextensiondriver&lt;br /&gt;
&lt;br /&gt;
[ml2_type_vlan]&lt;br /&gt;
# (ListOpt) List of &amp;lt;physical_network&amp;gt;[:&amp;lt;vlan_min&amp;gt;:&amp;lt;vlan_max&amp;gt;] tuples&lt;br /&gt;
# specifying physical_network names usable for VLAN provider and&lt;br /&gt;
# tenant networks, as well as ranges of VLAN tags on each&lt;br /&gt;
# physical_network available for allocation as tenant networks.&lt;br /&gt;
#&lt;br /&gt;
# network_vlan_ranges =&lt;br /&gt;
# Example: network_vlan_ranges = physnet1:1000:2999,physnet2&lt;br /&gt;
network_vlan_ranges = default:1000:1999&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the Lenovo switch information to the section ml2_mech_lenovo of this configuration file. Include the following information (see the example below): &lt;br /&gt;
*	The Hostname/IP address of the Switch&lt;br /&gt;
*	The hostname and port of the server(s) that is connected to the switch&lt;br /&gt;
*	The Lenovo switch credential username and password&lt;br /&gt;
*	Portchannel or LACP number for Host connected with VLAG&lt;br /&gt;
*	SSH Port number for Netconf (Typically 830)&lt;br /&gt;
&lt;br /&gt;
The expectation is that there could be several servers to switch port mapping per switch only limited by number of available ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.65]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-1 = portchannel:64&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port = 830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&lt;br /&gt;
[ml2_mech_lenovo:10.240.179.54]&lt;br /&gt;
# Hostname and port used on the switch for this compute host.&lt;br /&gt;
nova-node-2 = 17&lt;br /&gt;
# Port number where the SSH will be running at the Nexus Switch. Default is 22 so this variable&lt;br /&gt;
# only needs to be configured if different.&lt;br /&gt;
ssh_port=830&lt;br /&gt;
# Provide the Nexus log in information&lt;br /&gt;
username = admin&lt;br /&gt;
password = admin&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As more switches and servers are added to the network, the above file would need to be updated with these details.&lt;br /&gt;
Once this configuration is done, it is now time to create networks from the Horizon dashboard or Openstack command line.&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87815</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87815"/>
				<updated>2015-08-12T01:56:30Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin - [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87814</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87814"/>
				<updated>2015-08-12T01:55:27Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin here  [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87813</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87813"/>
				<updated>2015-08-12T01:54:46Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin here  [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87812</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87812"/>
				<updated>2015-08-12T01:33:42Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|none|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin here  [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lenovo Networking Products'''&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter Switches on [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87811</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87811"/>
				<updated>2015-08-12T01:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[File:Lenovo openstack driver.gif|thumbnail|center|Lenovo ML2 Plugin Architecture]]&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin here  [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
'''Download Lenovo Plugin Code'''&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking ML2 Plugin code is located on [https://github.com/lenovo-network/networking-lenovo Github].&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking Products&lt;br /&gt;
&lt;br /&gt;
Learn more about Lenovo Datacenter switches here at [http://shop.lenovo.com/us/en/systems/networking/ Lenovo Networking Website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87810</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87810"/>
				<updated>2015-08-12T01:23:35Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plug-in for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[file:Lenovo_openstack_driver.gif]]&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin here  [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=File:Lenovo_openstack_driver.gif&amp;diff=87809</id>
		<title>File:Lenovo openstack driver.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=File:Lenovo_openstack_driver.gif&amp;diff=87809"/>
				<updated>2015-08-12T01:22:27Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87808</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87808"/>
				<updated>2015-08-12T01:21:50Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plugin for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plug-in for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
Lenovo Networking contains the Lenovo vendor code for Openstack Neutron for Kilo or later&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[http://s6.postimg.org/3r7rsk19d/lenovo_openstack_driver.gif]]&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin here  [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87807</id>
		<title>Neutron/ML2/LenovoML2Mechanism</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Neutron/ML2/LenovoML2Mechanism&amp;diff=87807"/>
				<updated>2015-08-12T01:19:37Z</updated>
		
		<summary type="html">&lt;p&gt;Larkland Morley: /* Lenovo Networking Plugin for Openstack Neutron */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lenovo Networking Plugin for Openstack Neutron==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Networking Lenovo contains the Lenovo vendor code for Openstack Neutron&lt;br /&gt;
&lt;br /&gt;
* Free software: Apache license&lt;br /&gt;
* Documentation: http://docs.openstack.org/developer/networking-lenovo&lt;br /&gt;
* Source: http://git.openstack.org/cgit/stackforge/networking-lenovo&lt;br /&gt;
* Bugs: http://bugs.launchpad.net/networking-lenovo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Overview'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
Openstack is an open source infrastructure initiative for creating and managing large groups of virtual private servers in a cloud computing environment. Lenovo’s Networking Neutron Plugin provides a means to orchestrate VLANs on Lenovo’s physical switches. In cloud environments where VMs are hosted by physical servers, the VMs see a new virtual access layer provided by the host machine. &lt;br /&gt;
&lt;br /&gt;
This new access layer can be typically created via many mechanisms e.g. Linux Bridges or a Virtual Switches. The policies of the virtual access layer (virtual network), when set must now be coordinated with the policies set in the hardware switches. Lenovo’s Neutron Plugin helps in coordinating this behavior automatically without any intervention from the administrator.  The illustration below provides an architectural overview of how Lenovo’s ML2 Plugin and switches fits into an Openstack deployment.&lt;br /&gt;
&lt;br /&gt;
[[http://s6.postimg.org/3r7rsk19d/lenovo_openstack_driver.gif]]&lt;br /&gt;
&lt;br /&gt;
'''User Guide'''&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
The Lenovo Networking Openstack User Guide is provided to assist with installation and setup of this plugin here  [http://s000.tinyupload.com/index.php?file_id=71513600932467673425/ Download User Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
[[category:neutron]]&lt;/div&gt;</summary>
		<author><name>Larkland Morley</name></author>	</entry>

	</feed>