<?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=Yaell</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=Yaell"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/Yaell"/>
		<updated>2026-07-11T21:40:09Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-OpenStack&amp;diff=71578</id>
		<title>Mellanox-OpenStack</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-OpenStack&amp;diff=71578"/>
				<updated>2015-01-12T08:43:02Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Mellanox Neutron Plugin  =&lt;br /&gt;
Mellanox supports the OpenStack Neutron releases with open source networking components through Neutron. It delivers higher compute and storage performance and additional functionality, such as NIC based switching to provide better security and isolation for virtual cloud environments.&lt;br /&gt;
&lt;br /&gt;
For additional information about Mellanox NeutronPlugin refer to [https://wiki.openstack.org/wiki/Mellanox-Neutron Mellanox Neutron] wiki page.&lt;br /&gt;
&lt;br /&gt;
= Mellanox Cinder Plugin =&lt;br /&gt;
Mellanox provides an OpenStack Storage plugin that enables running storage volume traffic over native RDMA transport, providing 5X faster throughput over standard TCP/IP, while significantly increasing infrastructure efficiency by using less CPU resources.&lt;br /&gt;
&lt;br /&gt;
For additional information about Mellanox Cinder refer to [https://wiki.openstack.org/wiki/Mellanox-Cinder Mellanox Cinder] wiki page.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
1. [http://www.mellanox.com/openstack/ OpenStack solution page at Mellanox site]&lt;br /&gt;
&lt;br /&gt;
2. [https://github.com/mellanox-openstack Source repository]&lt;br /&gt;
&lt;br /&gt;
3. [http://www.mellanox.com/page/products_dyn?product_family=26 Mellanox OFED web page]&lt;br /&gt;
&lt;br /&gt;
4. [http://community.mellanox.com/community/solutions Mellanox Community]&lt;br /&gt;
&lt;br /&gt;
5. [https://wiki.openstack.org/wiki/SR-IOV-Passthrough-For-Networking SR-IOV Passthrough for Networking]&lt;br /&gt;
&lt;br /&gt;
For more details, please refer your question to  [mailto:support@mellanox.com support@mellanox.com]&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Ubuntu-InfiniBand&amp;diff=71060</id>
		<title>Mellanox-Neutron-Icehouse-Ubuntu-InfiniBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Ubuntu-InfiniBand&amp;diff=71060"/>
				<updated>2015-01-01T09:52:31Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview = &lt;br /&gt;
&lt;br /&gt;
This wiki page describes how to tune Mellanox OpenStack on Ubuntu 12.04 servers&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* A running OpenStack environment  installed with the ML2 plugin on top of Linux Bridge.&lt;br /&gt;
* All nodes equipped with Mellanox ConnectX®-3 Network Adapter (http://www.mellanox.com/page/products_dyn?product_family=119) &lt;br /&gt;
* Mellanox OFED 2.2 or greater installed on all nodes. Please refer to Mellanox website for the latest OFED: http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers&lt;br /&gt;
* SR-IOV enabled on all compute nodes. For more information, please refer to Mellanox Community [http://community.mellanox.com/docs/DOC-1317 click here].&lt;br /&gt;
* The software package iproute2 - (http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 ) installed on all Compute nodes&lt;br /&gt;
* VLANs configured on the ports in the switch.&lt;br /&gt;
&lt;br /&gt;
= InfiniBand Network = &lt;br /&gt;
&lt;br /&gt;
== OpenSM Node ==&lt;br /&gt;
&lt;br /&gt;
To configure OpenSM node: &lt;br /&gt;
&lt;br /&gt;
1. Edit the file /etc/opensm/partitions.conf by adding the following line:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=full : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
Create the file if it does not exist. &lt;br /&gt;
&lt;br /&gt;
For each VLAN value in the VLAN range used for VLAN network segmentation, add the following line in the file /etc/opensm/partitions.conf (for vlan-pkey association):&lt;br /&gt;
 vlan&amp;lt;decimal-value&amp;gt;=0x&amp;lt;hexadecimal-value&amp;gt;, ipoib, sl=0, defmember=full: ALL;&lt;br /&gt;
In this manual, the VLAN range is 2-10 (mlnx_agent.conf /ml2_conf.ini). Therefore, add the following lines:&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
2. Modify the following line in the file /etc/opensm/opensm.conf from FALSE to TRUE:&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
3. Restart OpenSM:&lt;br /&gt;
 service opensmd restart&lt;br /&gt;
4. Verify that all ports on all nodes have their ib interface (i.e. ib0) active, run ibdev2netdev on all hosts, and make sure that the port is up:&lt;br /&gt;
 mlx4_0 port 1 ==&amp;gt; ib0 (Up)&lt;br /&gt;
If the port is down, try bringing it up by running “ifconfig ib0 up”, and make sure your switch ports are of type “InfiniBand”, and that all nodes can reach the OpenSM node by running “sminfo”.&lt;br /&gt;
&lt;br /&gt;
== Controller Node == &lt;br /&gt;
&lt;br /&gt;
To configure the Controller node: &lt;br /&gt;
&lt;br /&gt;
1. Ensure that the file /etc/nova/nova.conf includes the following line:&lt;br /&gt;
 security_group_api=nova&lt;br /&gt;
&lt;br /&gt;
2. If the security group value is changed, restart the Nova services:&lt;br /&gt;
 # for i in $(initctl list | grep '^nova' | awk '{print $1}'); do service $i restart; done&lt;br /&gt;
&lt;br /&gt;
== Neutron Server Node ==&lt;br /&gt;
&lt;br /&gt;
NOTE: The Neutron Server can sometimes be part of the Controller node.&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node: &lt;br /&gt;
&lt;br /&gt;
1. Edit /etc/neutron/neutron.conf and make sure Neutron is using ML2 plugin:&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Edit the ML2 configuration file /etc/neutron/plugins/ml2/ml2_conf.ini as follows:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan &lt;br /&gt;
 mechanism_drivers = linuxbridge,mlnx&lt;br /&gt;
  &lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges=&amp;lt;physical_network&amp;gt;:&amp;lt;min_vlan&amp;gt;:&amp;lt;max_vlan&amp;gt; //(i.e. default:2:10)&lt;br /&gt;
 &lt;br /&gt;
 [securitygroup]&lt;br /&gt;
 enable_security_group = True&lt;br /&gt;
 &lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
3. Install the required Deb for the Mellanox Neutron plugin (from Ubuntu’s repository):&lt;br /&gt;
 apt-get install neutron-plugin-mlnx-agent&lt;br /&gt;
4. Edit /etc/neutron/plugins/mlnx/mlnx_conf.ini to match your environment:&lt;br /&gt;
 [mlnx]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;physical_network&amp;gt;:&amp;lt;min_vlan:&amp;lt;max_vlan&amp;gt; //(i.e. default:2:10)&lt;br /&gt;
 tenant_network_type = vlan&lt;br /&gt;
 &lt;br /&gt;
 [eswitch]&lt;br /&gt;
 physical_interface_mappings = &amp;lt;physical_network&amp;gt;:&amp;lt;ib interface&amp;gt;  //(i.e. default:ib0)&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 &lt;br /&gt;
 [agent]&lt;br /&gt;
 support_old_agents = True&lt;br /&gt;
 &lt;br /&gt;
5. Restart Neutron Server: &lt;br /&gt;
 /etc/init.d/neutron-server start&lt;br /&gt;
&lt;br /&gt;
== Compute Nodes ==&lt;br /&gt;
&lt;br /&gt;
To configure the Compute node:&lt;br /&gt;
&lt;br /&gt;
1. Create the file /etc/modprobe.d/mlx4_ib.conf with this line:&lt;br /&gt;
 options mlx4_ib sm_guid_assign=0&lt;br /&gt;
2. Download mlnxvif, eSwitch Daemon (eSwitchd), and mlnx-dnsmasq from this link:&lt;br /&gt;
 http://www.mellanox.com/downloads/solutions/openstack/icehouse/debian/&lt;br /&gt;
3. Install the Mellanox plugin services mlnxvif and eSwitchd:&lt;br /&gt;
 dpkg –i python-mlnxvif_2014.1.1-1_all.deb&lt;br /&gt;
 dpkg –i python-eswitchd_0.10-1_all.deb&lt;br /&gt;
4. Edit /etc/eswitchd/eswitchd.conf as follows:&lt;br /&gt;
 [DAEMON]&lt;br /&gt;
 fabrics=&amp;lt;physical_network&amp;gt;:&amp;lt;ib-interface&amp;gt; //(i.e. default:ib0)&lt;br /&gt;
5. Edit /etc/nova/nova.conf as follows:&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 compute_driver = libvirt.LibvirtDriver&lt;br /&gt;
 libvirt_vif_driver = mlnxvif.vif.MlxEthVIFDriver&lt;br /&gt;
 security_group_api = nova&lt;br /&gt;
6. Check if “ebrctl” appears in one of Nova’s rootwrap files:&lt;br /&gt;
 grep 'ebrctl' /etc/nova/rootwrap.d/*&lt;br /&gt;
 If “ebrctl” does not appear in one of Nova’s rootwrap files, edit the file /etc/nova/rootwrap.d/compute.filter as follows:&lt;br /&gt;
 [Filters]&lt;br /&gt;
 ebrctl: CommandFilter, ebrctl, root&lt;br /&gt;
7. Install the Neutron Mellanox agent (from Ubuntu repository):&lt;br /&gt;
 apt-get install neutron-plugin-mlnx-agent&lt;br /&gt;
8. Copy /etc/neutron/plugins/mlnx/mlnx_conf.ini from the Neutron Server node to the same path on each Compute node.&lt;br /&gt;
&lt;br /&gt;
9. Restart the following services:&lt;br /&gt;
 /etc/init.d/nova-compute restart&lt;br /&gt;
 /etc/init.d/eswitchd start&lt;br /&gt;
 /etc/init.d/neutron-plugin-mlnx-agent start&lt;br /&gt;
&lt;br /&gt;
== Network Node ==&lt;br /&gt;
&lt;br /&gt;
To configure the Network node: &lt;br /&gt;
&lt;br /&gt;
1. Configure eIPoIB (for Linux bridge plugin) by editing the file /etc/infiniband/openib.conf as follows:&lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
2. Restart OFED:  &lt;br /&gt;
 service openibd restart&lt;br /&gt;
3. Verify that the new Ethernet interfaces now appear with ibdev2netdev:&lt;br /&gt;
 # ibdev2netdev&lt;br /&gt;
 mlx4_0 port 1 ==&amp;gt; ib0 (Up)&lt;br /&gt;
 mlx4_0 port 2 ==&amp;gt; ib1 (Down)&lt;br /&gt;
 mlx4_0 port 1 ==&amp;gt; eth2 (Up)&lt;br /&gt;
 mlx4_0 port 2 ==&amp;gt; eth1 (Down)&lt;br /&gt;
In eIPoIB, every ib interface has a matching eth interface. The ib interface used here is ib0, and the matching one is eth2 (same card and port names: mlx4_0 port 1). By using Ethtool, you can verify that ib0 is working on ib_ipoib driver, and eth2 is working on eth_ipoib driver, as follows:&lt;br /&gt;
 # ethtool -i ib0&lt;br /&gt;
 driver: ib_ipoib&lt;br /&gt;
 version: 2.3-1.5.4_Sep 30 2014&lt;br /&gt;
 firmware-version: 2.32.5100&lt;br /&gt;
 bus-info: 0000:07:00.0# ethtool -i eth2&lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 version: 2.3-1.5.4 (Sep 30 2014)&lt;br /&gt;
 firmware-version: 1&lt;br /&gt;
 bus-info: ib0&lt;br /&gt;
4. Edit /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
 [linux_bridge] &lt;br /&gt;
 physical_interface_mappings = &amp;lt;physical_network&amp;gt;:&amp;lt;eth_ipoib-interface&amp;gt; &lt;br /&gt;
 //(i.e. default:eth2)&lt;br /&gt;
5. Restart the Linux bridge agent:&lt;br /&gt;
 service neutron-linuxbridge-agent restart&lt;br /&gt;
6. To allow DHCP support, download mlnx-dnsmadq from this link: http://www.mellanox.com/downloads/solutions/openstack/icehouse/debian/&lt;br /&gt;
&lt;br /&gt;
7. Install the package:&lt;br /&gt;
 dpkg –i python-mlnx-dnsmasq_2014.1.1-1_all.deb&lt;br /&gt;
8. Configure the file /etc/neutron/dhcp_agent.ini:&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 dhcp_driver = mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
9. Make sure that the Dnsmasq which is installed as a part of the OpenStack (not mlnx-dnsmasq) environment is of version 2.65.&lt;br /&gt;
&lt;br /&gt;
10. Copy /etc/neutron/neutron.conf from the Compute node to the same path on the Network node.&lt;br /&gt;
&lt;br /&gt;
11. Edit /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
 [linux_bridge]  &lt;br /&gt;
 physical_interface_mappings = &amp;lt;physical_network&amp;gt;:&amp;lt;eth_ipoib interface&amp;gt; &lt;br /&gt;
 (i.e. default:eth2)&lt;br /&gt;
12. Edit /etc/neutron/dhcp_agent.ini and /etc/neutron/l3_agent.ini as follows: &lt;br /&gt;
 [DEFAULT] &lt;br /&gt;
 interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
13. Restart the following services:&lt;br /&gt;
 service neutron-plugin-linuxbridge-agent restart&lt;br /&gt;
 service neutron-dhcp-agent restart&lt;br /&gt;
 service neutron-l3-agent restart&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* If you're seeing request timeout errors in the plugin's logs, make sure that the eswitchd service is started and try to increase the request_timeout value in the plugin configuration file.&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=71059</id>
		<title>Mellanox-Neutron-Icehouse-Redhat-InfiniBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=71059"/>
				<updated>2015-01-01T09:51:16Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
  &lt;br /&gt;
= Overview = &lt;br /&gt;
== Mellanox Neutron ML2 Driver ==&lt;br /&gt;
Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API. &lt;br /&gt;
&lt;br /&gt;
This driver supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox ML2 Mechanism Driver provides functional parity with Mellanox Neutron plugin. &lt;br /&gt;
&lt;br /&gt;
Mellanox ML2 Mechanism Driver supports DIRECT (pci passthrough) and MACVTAP (virtual interface with a tap-like software interface) vnic types. For vnic type configuration API details, please refer to configuration reference guide (click [http://docs.openstack.org/api/openstack-network/2.0/content/binding_ext_ports.html here]). Hardware vNICs mapped to the guest VMs allow higher performance and advanced features such as RDMA (remote direct memory access). &lt;br /&gt;
&lt;br /&gt;
The driver supports VLAN network type to facilitate virtual networks either on Ethernet or InfiniBand fabrics.&lt;br /&gt;
 &lt;br /&gt;
• Mellanox OpenStack Neutron Agent (L2 Agent) runs on each compute node. &lt;br /&gt;
&lt;br /&gt;
• Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port.&lt;br /&gt;
&lt;br /&gt;
== Mellanox Neutron Plugin ==&lt;br /&gt;
Please note,&lt;br /&gt;
Mellanox Plug-in is deprecated in the Icehouse release and won't be supported in the Juno release.&lt;br /&gt;
The features in the plug-in are now part of the ML2 plug-in in the form of Mellanox mechanism driver.&lt;br /&gt;
&lt;br /&gt;
For details regarding Mellanox Neutron plugin, please refer to https://wiki.openstack.org/wiki/Mellanox-Neutron-Havana-Redhat.&lt;br /&gt;
&lt;br /&gt;
==  Mellanox Nova VIF Driver ==&lt;br /&gt;
The Mellanox Nova VIF driver should be used when running Mellanox Mechnism Driver. The VIF driver supports the VIF plugin by binding vNIC of type DIRECT  to the embedded switch port.&lt;br /&gt;
VIF Driver for MACVTAP type is included in Nova libvirt generic vif driver. For SR-IOV pass-through (vnic type DIRECT) one needs to use VIF driver from Mellanox git repository or RPM.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* A running OpenStack environment  installed with the ML2 plugin on top of Linux Bridge.&lt;br /&gt;
* All nodes equipped with Mellanox ConnectX®-3 Network Adapter (http://www.mellanox.com/page/products_dyn?product_family=119) &lt;br /&gt;
* Mellanox OFED 2.2 or greater installed on all nodes. Please refer to Mellanox website for the latest OFED: http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers&lt;br /&gt;
* SR-IOV enabled on all compute nodes. For more information, please refer to Mellanox Community [http://community.mellanox.com/docs/DOC-1317 click here].&lt;br /&gt;
* The software package iproute2 - (http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 ) installed on all Compute nodes&lt;br /&gt;
* VLANs configured on the ports in the switch.&lt;br /&gt;
&lt;br /&gt;
= InfiniBand Network = &lt;br /&gt;
The Mellanox Neutron Plugin use InfiniBand Partitions (PKeys) to separate Networks.&lt;br /&gt;
&lt;br /&gt;
== SM Node ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSM Configuration – Without UFM ===&lt;br /&gt;
	&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that all the PKeys are predefined in the partitions.conf file (/etc/opensm/partitions.conf). &lt;br /&gt;
&lt;br /&gt;
2. Add/Change the following in the partitions.conf file:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=full: ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
3. For every network you want to configure in Neutron, you have to configure the PKey associated with the VLAN of this network (defined in Neutron):&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
Below is an example of the configuration of the partitions.conf file in case you have 10 VLANs defined in the configuration of the file: /etc/neutron/plugins/mlnx/mlnx_conf.ini. ( network_vlan_ranges = default:1:10)&lt;br /&gt;
 &lt;br /&gt;
 management=0x7fff,ipoib, sl=0, defmember=full : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
&lt;br /&gt;
4. Modify the following line in the file /etc/opensm/opensm.conf from FALSE to TRUE:&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
5. Restart the OpenSM:&lt;br /&gt;
 #service opensmd restart&lt;br /&gt;
&lt;br /&gt;
=== OpenSM configuration - With UFM===&lt;br /&gt;
&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that UFM is installed and connected to your fabric.&lt;br /&gt;
&lt;br /&gt;
2. Edit /opt/ufm/conf/opensm/opensm.conf by changing the following values:&lt;br /&gt;
&lt;br /&gt;
a. Set allow_both_pkeys to TRUE (by default allow_both_pkeys are FALSE):&lt;br /&gt;
 Allow both full and limited membership on the same partition&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
b. Set sm_assign_guid_func to uniq_count (by default sm_assign_guid_func is base_port):&lt;br /&gt;
 SM assigned Alias GUIDs algorithm sm_assign_guid_func uniq_count&lt;br /&gt;
3. Edit UFM user extension partitions.conf for overriding default partitioning configuration.&lt;br /&gt;
&lt;br /&gt;
a. Edit file: /opt/ufm/conf/partitions.conf.user_ext (it should be empty right after UFM installation)&lt;br /&gt;
Add the following line to the file to enable both full and limited management PKeys:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
b. Add the additional PKey definitions relevant to the specific setup.&lt;br /&gt;
For Example:&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xb, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xc, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xd, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xe, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xf, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x10, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x11, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x12, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
4. Restart UFM&lt;br /&gt;
&lt;br /&gt;
• Stand-alone&lt;br /&gt;
 #/etc/init.d/ufmd restart&lt;br /&gt;
• High-availability&lt;br /&gt;
 #/etc/init.d/ufmha restart&lt;br /&gt;
&lt;br /&gt;
== Neutron Server Node==&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure ML2 is the current Neutron plugin by checking the core_plugin parameter in /etc/neutron/neutron.conf:&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Make sure /etc/neutron/plugin.ini is pointing to /etc/neutron/plugins/ml2/ml2_conf.ini (symbolic link) &lt;br /&gt;
&lt;br /&gt;
3. Modify /etc/neutron/plugins/ml2/ml2_conf.ini by adding the following:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan&lt;br /&gt;
 mechanism_drivers = linuxbridge,mlnx&lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;network_name&amp;gt;:2:100&lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
4. Start (or restart) the Neutron server:&lt;br /&gt;
 #service neutron-server restart&lt;br /&gt;
&lt;br /&gt;
== Compute Nodes ==&lt;br /&gt;
&lt;br /&gt;
To configure the Compute Node:&lt;br /&gt;
&lt;br /&gt;
1. Download Mellanox OpenStack repo file:&lt;br /&gt;
 #wget http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-icehouse.repo -O /etc/yum.repos.d/mlnx-icehouse.repo  &lt;br /&gt;
2. Install the eSwitch Daemon (eSwitchd) RPM:&lt;br /&gt;
 #yum install eswitchd&lt;br /&gt;
3. Install Mellanox VIF driver:&lt;br /&gt;
 #yum install mlnxvif&lt;br /&gt;
3. Install the required RPM for the Neutron agent:&lt;br /&gt;
 #yum install openstack-neutron-mellanox&lt;br /&gt;
4. Create the file /etc/modprobe.d/mlx4_ib.conf and add the following:&lt;br /&gt;
 options mlx4_ib sm_guid_assign=0&lt;br /&gt;
5. Restart the driver:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
6.In the file /etc/neutron/plugins/mlnx/mlnx_conf.ini, the parameters tenant_network_type , vnic_type and network_vlan_ranges should be configured as the controllers:&lt;br /&gt;
  physical_interface_mapping = default:ib&amp;lt;your_interface&amp;gt;&lt;br /&gt;
7. Modify the file /etc/eswitchd/eswitchd.conf as follows:&lt;br /&gt;
 fabrics = default:ib&amp;lt;your_interface&amp;gt; (for example default:ib0)&lt;br /&gt;
8. Verify Mellanox VIF driver is configured in /etc/nova/nova.conf:&lt;br /&gt;
 [libvirt]&lt;br /&gt;
 vif_driver=mlnxvif.vif.MlxEthVIFDriver&lt;br /&gt;
9. Restart Nova:&lt;br /&gt;
 #service openstack-nova-compute restart&lt;br /&gt;
10. Start eSwitchd:&lt;br /&gt;
 #service eswitchd start&lt;br /&gt;
11. Start the Neutron agent:&lt;br /&gt;
 #service neutron-mlnx-agent start&lt;br /&gt;
&lt;br /&gt;
== Network Node ==&lt;br /&gt;
&lt;br /&gt;
To configure the Network node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that eIPoIB module is up and configured in /etc/infiniband/openib.conf:&lt;br /&gt;
For more information, please refer to eIPoIB configuration in Mellanox OFED User Manual. &lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
2. Restart openibd:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
3. Modify the file /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
[linux_bridge] &lt;br /&gt;
physical_interface_mappings =  default:&amp;lt;eIPoIB interface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: In order to obtain the eIPoIB interface name, run the ethtool tool command (see below) and check the driver name:&lt;br /&gt;
&lt;br /&gt;
 #ethtool -i &amp;lt;eIPoIB_interface&amp;gt; &lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 version: 1.0.0&lt;br /&gt;
 firmware-version: 1 &lt;br /&gt;
 bus-info: ib0&lt;br /&gt;
 supports-statistics: yes&lt;br /&gt;
 supports-test: no&lt;br /&gt;
 supports-eeprom-access: no&lt;br /&gt;
 supports-register-dump: no&lt;br /&gt;
 supports-priv-flags: no&lt;br /&gt;
&lt;br /&gt;
4. Restart neutron-linuxbridge-agent and neutron-dhcp-agent:&lt;br /&gt;
 #service neutron-linuxbridge-agent restart&lt;br /&gt;
&lt;br /&gt;
NOTE: For DHCP support, the Network node should use the Mellanox Dnsmasq driver as the DHCP driver.&lt;br /&gt;
&lt;br /&gt;
=== DHCP Server (Usally part of the Network node) ===&lt;br /&gt;
&lt;br /&gt;
1. Install the Mellanox Dnsmasq:&lt;br /&gt;
 #wget &lt;br /&gt;
 http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-dnsmasq-2014.1.1-1.noarch.rpm&lt;br /&gt;
 #yum localinstall mlnx-dnsmasq-2014.1.1-1.noarch.rpm &lt;br /&gt;
&lt;br /&gt;
2. In addition, Dnsmasq must be upgraded to version 2.66 or higher:&lt;br /&gt;
  #wget &lt;br /&gt;
 ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/kalyaka/CentOS_CentOS-6/x86_64/dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
 #yum localinstall dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
3. Modify /etc/neutron/dhcp_agent.ini as follows:&lt;br /&gt;
 dhcp_driver = mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
 interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
4. Start DHCP server:&lt;br /&gt;
 #service neutron-dhcp-agent restart&lt;br /&gt;
&lt;br /&gt;
= Known issues and Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
For known issues and troubleshooting options refer to  [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting].&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
1. [http://www.mellanox.com/openstack/ http://www.mellanox.com/openstack/]&lt;br /&gt;
&lt;br /&gt;
2. [https://github.com/mellanox-openstack Source repository]&lt;br /&gt;
&lt;br /&gt;
3. [http://www.mellanox.com/page/products_dyn?product_family=26 Mellanox OFED]&lt;br /&gt;
&lt;br /&gt;
4. [http://www.mellanox.com/openstack/pdf/mellanox-openstack-solution.pdf Mellanox OpenStack Solution Reference Architecture]&lt;br /&gt;
&lt;br /&gt;
5. [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
For more details, please refer your question to  [mailto:openstack@mellanox.com openstack@mellanox.com]&lt;br /&gt;
&lt;br /&gt;
Return to [https://wiki.openstack.org/wiki/Mellanox-OpenStack  Mellanox-OpenStack] wiki page.&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69896</id>
		<title>Mellanox-Neutron-Icehouse-Redhat-InfiniBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69896"/>
				<updated>2014-12-08T15:47:15Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
  &lt;br /&gt;
= Overview = &lt;br /&gt;
== Mellanox Neutron ML2 Driver ==&lt;br /&gt;
Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API. &lt;br /&gt;
&lt;br /&gt;
This driver supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox ML2 Mechanism Driver provides functional parity with Mellanox Neutron plugin. &lt;br /&gt;
&lt;br /&gt;
Mellanox ML2 Mechanism Driver supports DIRECT (pci passthrough) and MACVTAP (virtual interface with a tap-like software interface) vnic types. For vnic type configuration API details, please refer to configuration reference guide (click [http://docs.openstack.org/api/openstack-network/2.0/content/binding_ext_ports.html here]). Hardware vNICs mapped to the guest VMs allow higher performance and advanced features such as RDMA (remote direct memory access). &lt;br /&gt;
&lt;br /&gt;
The driver supports VLAN network type to facilitate virtual networks either on Ethernet or InfiniBand fabrics.&lt;br /&gt;
 &lt;br /&gt;
• Mellanox OpenStack Neutron Agent (L2 Agent) runs on each compute node. &lt;br /&gt;
&lt;br /&gt;
• Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port.&lt;br /&gt;
&lt;br /&gt;
== Mellanox Neutron Plugin ==&lt;br /&gt;
Please note,&lt;br /&gt;
Mellanox Plug-in is deprecated in the Icehouse release and won't be supported in the Juno release.&lt;br /&gt;
The features in the plug-in are now part of the ML2 plug-in in the form of Mellanox mechanism driver.&lt;br /&gt;
&lt;br /&gt;
For details regarding Mellanox Neutron plugin, please refer to https://wiki.openstack.org/wiki/Mellanox-Neutron-Havana-Redhat.&lt;br /&gt;
&lt;br /&gt;
==  Mellanox Nova VIF Driver ==&lt;br /&gt;
The Mellanox Nova VIF driver should be used when running Mellanox Mechnism Driver. The VIF driver supports the VIF plugin by binding vNIC of type DIRECT  to the embedded switch port.&lt;br /&gt;
VIF Driver for MACVTAP type is included in Nova libvirt generic vif driver. For SR-IOV pass-through (vnic type DIRECT) one needs to use VIF driver from Mellanox git repository or RPM.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* A running OpenStack environment  installed with the ML2 plugin on top of Linux Bridge.&lt;br /&gt;
* All nodes equipped with Mellanox ConnectX®-3 Network Adapter (http://www.mellanox.com/page/products_dyn?product_family=119) &lt;br /&gt;
* Mellanox OFED 2.2 or greater installed on all nodes. Please refer to Mellanox website for the latest OFED: http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers&lt;br /&gt;
* SR-IOV enabled on all compute nodes. For more information, please refer to Mellanox Community [http://community.mellanox.com/docs/DOC-1317 click here].&lt;br /&gt;
* The software package iproute2 - (http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 ) installed on all Compute nodes&lt;br /&gt;
* VLANs configured on the ports in the switch.&lt;br /&gt;
&lt;br /&gt;
= InfiniBand Network = &lt;br /&gt;
The Mellanox Neutron Plugin use InfiniBand Partitions (PKeys) to separate Networks.&lt;br /&gt;
&lt;br /&gt;
== SM Node ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSM Configuration – Without UFM ===&lt;br /&gt;
	&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that all the PKeys are predefined in the partitions.conf file (/etc/opensm/partitions.conf). &lt;br /&gt;
&lt;br /&gt;
2. Add/Change the following in the partitions.conf file:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both: ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
3. For every network you want to configure in Neutron, you have to configure the PKey associated with the VLAN of this network (defined in Neutron):&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
Below is an example of the configuration of the partitions.conf file in case you have 10 VLANs defined in the configuration of the file: /etc/neutron/plugins/mlnx/mlnx_conf.ini. ( network_vlan_ranges = default:1:10)&lt;br /&gt;
 &lt;br /&gt;
 management=0x7fff,ipoib, sl=0, defmember=full : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
&lt;br /&gt;
4. Modify the following line in the file /etc/opensm/opensm.conf from FALSE to TRUE:&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
5. Restart the OpenSM:&lt;br /&gt;
 #service opensmd restart&lt;br /&gt;
&lt;br /&gt;
=== OpenSM configuration - With UFM===&lt;br /&gt;
&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that UFM is installed and connected to your fabric.&lt;br /&gt;
&lt;br /&gt;
2. Edit /opt/ufm/conf/opensm/opensm.conf by changing the following values:&lt;br /&gt;
&lt;br /&gt;
a. Set allow_both_pkeys to TRUE (by default allow_both_pkeys are FALSE):&lt;br /&gt;
 Allow both full and limited membership on the same partition&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
b. Set sm_assign_guid_func to uniq_count (by default sm_assign_guid_func is base_port):&lt;br /&gt;
 SM assigned Alias GUIDs algorithm sm_assign_guid_func uniq_count&lt;br /&gt;
3. Edit UFM user extension partitions.conf for overriding default partitioning configuration.&lt;br /&gt;
&lt;br /&gt;
a. Edit file: /opt/ufm/conf/partitions.conf.user_ext (it should be empty right after UFM installation)&lt;br /&gt;
Add the following line to the file to enable both full and limited management PKeys:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
b. Add the additional PKey definitions relevant to the specific setup.&lt;br /&gt;
For Example:&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xb, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xc, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xd, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xe, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xf, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x10, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x11, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x12, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
4. Restart UFM&lt;br /&gt;
&lt;br /&gt;
• Stand-alone&lt;br /&gt;
 #/etc/init.d/ufmd restart&lt;br /&gt;
• High-availability&lt;br /&gt;
 #/etc/init.d/ufmha restart&lt;br /&gt;
&lt;br /&gt;
== Neutron Server Node==&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure ML2 is the current Neutron plugin by checking the core_plugin parameter in /etc/neutron/neutron.conf:&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Make sure /etc/neutron/plugin.ini is pointing to /etc/neutron/plugins/ml2/ml2_conf.ini (symbolic link) &lt;br /&gt;
&lt;br /&gt;
3. Modify /etc/neutron/plugins/ml2/ml2_conf.ini by adding the following:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan&lt;br /&gt;
 mechanism_drivers = linuxbridge,mlnx&lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;network_name&amp;gt;:2:100&lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
4. Start (or restart) the Neutron server:&lt;br /&gt;
 #service neutron-server restart&lt;br /&gt;
&lt;br /&gt;
== Compute Nodes ==&lt;br /&gt;
&lt;br /&gt;
To configure the Compute Node:&lt;br /&gt;
&lt;br /&gt;
1. Download Mellanox OpenStack repo file:&lt;br /&gt;
 #wget http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-icehouse.repo -O /etc/yum.repos.d/mlnx-icehouse.repo  &lt;br /&gt;
2. Install the eSwitch Daemon (eSwitchd) RPM:&lt;br /&gt;
 #yum install eswitchd&lt;br /&gt;
3. Install Mellanox VIF driver:&lt;br /&gt;
 #yum install mlnxvif&lt;br /&gt;
3. Install the required RPM for the Neutron agent:&lt;br /&gt;
 #yum install openstack-neutron-mellanox&lt;br /&gt;
4. Create the file /etc/modprobe.d/mlx4_ib.conf and add the following:&lt;br /&gt;
 options mlx4_ib sm_guid_assign=0&lt;br /&gt;
5. Restart the driver:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
6.In the file /etc/neutron/plugins/mlnx/mlnx_conf.ini, the parameters tenant_network_type , vnic_type and network_vlan_ranges should be configured as the controllers:&lt;br /&gt;
  physical_interface_mapping = default:ib&amp;lt;your_interface&amp;gt;&lt;br /&gt;
7. Modify the file /etc/eswitchd/eswitchd.conf as follows:&lt;br /&gt;
 fabrics = default:ib&amp;lt;your_interface&amp;gt; (for example default:ib0)&lt;br /&gt;
8. Verify Mellanox VIF driver is configured in /etc/nova/nova.conf:&lt;br /&gt;
 [libvirt]&lt;br /&gt;
 vif_driver=mlnxvif.vif.MlxEthVIFDriver&lt;br /&gt;
9. Restart Nova:&lt;br /&gt;
 #service openstack-nova-compute restart&lt;br /&gt;
10. Start eSwitchd:&lt;br /&gt;
 #service eswitchd start&lt;br /&gt;
11. Start the Neutron agent:&lt;br /&gt;
 #service neutron-mlnx-agent start&lt;br /&gt;
&lt;br /&gt;
== Network Node ==&lt;br /&gt;
&lt;br /&gt;
To configure the Network node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that eIPoIB module is up and configured in /etc/infiniband/openib.conf:&lt;br /&gt;
For more information, please refer to eIPoIB configuration in Mellanox OFED User Manual. &lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
2. Restart openibd:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
3. Modify the file /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
[linux_bridge] &lt;br /&gt;
physical_interface_mappings =  default:&amp;lt;eIPoIB interface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: In order to obtain the eIPoIB interface name, run the ethtool tool command (see below) and check the driver name:&lt;br /&gt;
&lt;br /&gt;
 #ethtool -i &amp;lt;eIPoIB_interface&amp;gt; &lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 version: 1.0.0&lt;br /&gt;
 firmware-version: 1 &lt;br /&gt;
 bus-info: ib0&lt;br /&gt;
 supports-statistics: yes&lt;br /&gt;
 supports-test: no&lt;br /&gt;
 supports-eeprom-access: no&lt;br /&gt;
 supports-register-dump: no&lt;br /&gt;
 supports-priv-flags: no&lt;br /&gt;
&lt;br /&gt;
4. Restart neutron-linuxbridge-agent and neutron-dhcp-agent:&lt;br /&gt;
 #service neutron-linuxbridge-agent restart&lt;br /&gt;
&lt;br /&gt;
NOTE: For DHCP support, the Network node should use the Mellanox Dnsmasq driver as the DHCP driver.&lt;br /&gt;
&lt;br /&gt;
=== DHCP Server (Usally part of the Network node) ===&lt;br /&gt;
&lt;br /&gt;
1. Install the Mellanox Dnsmasq:&lt;br /&gt;
 #wget &lt;br /&gt;
 http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-dnsmasq-2014.1.1-1.noarch.rpm&lt;br /&gt;
 #yum localinstall mlnx-dnsmasq-2014.1.1-1.noarch.rpm &lt;br /&gt;
&lt;br /&gt;
2. In addition, Dnsmasq must be upgraded to version 2.66 or higher:&lt;br /&gt;
  #wget &lt;br /&gt;
 ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/kalyaka/CentOS_CentOS-6/x86_64/dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
 #yum localinstall dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
3. Modify /etc/neutron/dhcp_agent.ini as follows:&lt;br /&gt;
 dhcp_driver = mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
 interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
4. Start DHCP server:&lt;br /&gt;
 #service neutron-dhcp-agent restart&lt;br /&gt;
&lt;br /&gt;
= Known issues and Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
For known issues and troubleshooting options refer to  [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting].&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
1. [http://www.mellanox.com/openstack/ http://www.mellanox.com/openstack/]&lt;br /&gt;
&lt;br /&gt;
2. [https://github.com/mellanox-openstack Source repository]&lt;br /&gt;
&lt;br /&gt;
3. [http://www.mellanox.com/page/products_dyn?product_family=26 Mellanox OFED]&lt;br /&gt;
&lt;br /&gt;
4. [http://www.mellanox.com/openstack/pdf/mellanox-openstack-solution.pdf Mellanox OpenStack Solution Reference Architecture]&lt;br /&gt;
&lt;br /&gt;
5. [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
For more details, please refer your question to  [mailto:openstack@mellanox.com openstack@mellanox.com]&lt;br /&gt;
&lt;br /&gt;
Return to [https://wiki.openstack.org/wiki/Mellanox-OpenStack  Mellanox-OpenStack] wiki page.&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Ubuntu-InfiniBand&amp;diff=69185</id>
		<title>Mellanox-Neutron-Icehouse-Ubuntu-InfiniBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Ubuntu-InfiniBand&amp;diff=69185"/>
				<updated>2014-11-30T08:25:14Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview = &lt;br /&gt;
&lt;br /&gt;
This wiki page describes how to tune Mellanox OpenStack on Ubuntu 12.04 servers&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
* A running OpenStack environment  installed with the ML2 plugin on top of Linux Bridge.&lt;br /&gt;
* All nodes equipped with Mellanox ConnectX®-3 Network Adapter (http://www.mellanox.com/page/products_dyn?product_family=119) &lt;br /&gt;
* Mellanox OFED 2.2 or greater installed on all nodes. Please refer to Mellanox website for the latest OFED: http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers&lt;br /&gt;
* SR-IOV enabled on all compute nodes. For more information, please refer to Mellanox Community [http://community.mellanox.com/docs/DOC-1317 click here].&lt;br /&gt;
* The software package iproute2 - (http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 ) installed on all Compute nodes&lt;br /&gt;
* VLANs configured on the ports in the switch.&lt;br /&gt;
&lt;br /&gt;
= InfiniBand Network = &lt;br /&gt;
&lt;br /&gt;
== OpenSM Node ==&lt;br /&gt;
&lt;br /&gt;
To configure OpenSM node: &lt;br /&gt;
&lt;br /&gt;
1. Edit the file /etc/opensm/partitions.conf by adding the following line:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
Create the file if it does not exist. &lt;br /&gt;
&lt;br /&gt;
For each VLAN value in the VLAN range used for VLAN network segmentation, add the following line in the file /etc/opensm/partitions.conf (for vlan-pkey association):&lt;br /&gt;
 vlan&amp;lt;decimal-value&amp;gt;=0x&amp;lt;hexadecimal-value&amp;gt;, ipoib, sl=0, defmember=full: ALL;&lt;br /&gt;
In this manual, the VLAN range is 2-10 (mlnx_agent.conf /ml2_conf.ini). Therefore, add the following lines:&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
2. Modify the following line in the file /etc/opensm/opensm.conf from FALSE to TRUE:&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
3. Restart OpenSM:&lt;br /&gt;
 service opensmd restart&lt;br /&gt;
4. Verify that all ports on all nodes have their ib interface (i.e. ib0) active, run ibdev2netdev on all hosts, and make sure that the port is up:&lt;br /&gt;
 mlx4_0 port 1 ==&amp;gt; ib0 (Up)&lt;br /&gt;
If the port is down, try bringing it up by running “ifconfig ib0 up”, and make sure your switch ports are of type “InfiniBand”, and that all nodes can reach the OpenSM node by running “sminfo”.&lt;br /&gt;
&lt;br /&gt;
== Controller Node == &lt;br /&gt;
&lt;br /&gt;
To configure the Controller node: &lt;br /&gt;
&lt;br /&gt;
1. Ensure that the file /etc/nova/nova.conf includes the following line:&lt;br /&gt;
 security_group_api=nova&lt;br /&gt;
&lt;br /&gt;
2. If the security group value is changed, restart the Nova services:&lt;br /&gt;
 # for i in $(initctl list | grep '^nova' | awk '{print $1}'); do service $i restart; done&lt;br /&gt;
&lt;br /&gt;
=== Neutron Server Node ===&lt;br /&gt;
&lt;br /&gt;
NOTE: The Neutron Server can sometimes be part of the Controller node.&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node: &lt;br /&gt;
&lt;br /&gt;
1. Edit /etc/neutron/neutron.conf and make sure Neutron is using ML2 plugin:&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Edit the ML2 configuration file /etc/neutron/plugins/ml2/ml2_conf.ini as follows:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan &lt;br /&gt;
 mechanism_drivers = linuxbridge,mlnx&lt;br /&gt;
  &lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges=&amp;lt;physical_network&amp;gt;:&amp;lt;min_vlan&amp;gt;:&amp;lt;max_vlan&amp;gt; //(i.e. default:2:10)&lt;br /&gt;
 &lt;br /&gt;
 [securitygroup]&lt;br /&gt;
 enable_security_group = True&lt;br /&gt;
 &lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
3. Install the required Deb for the Mellanox Neutron plugin (from Ubuntu’s repository):&lt;br /&gt;
 apt-get install neutron-plugin-mlnx-agent&lt;br /&gt;
4. Edit /etc/neutron/plugins/mlnx/mlnx_conf.ini to match your environment:&lt;br /&gt;
 [mlnx]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;physical_network&amp;gt;:&amp;lt;min_vlan:&amp;lt;max_vlan&amp;gt; //(i.e. default:2:10)&lt;br /&gt;
 tenant_network_type = vlan&lt;br /&gt;
 &lt;br /&gt;
 [eswitch]&lt;br /&gt;
 physical_interface_mappings = &amp;lt;physical_network&amp;gt;:&amp;lt;ib interface&amp;gt;  //(i.e. default:ib0)&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 &lt;br /&gt;
 [agent]&lt;br /&gt;
 support_old_agents = True&lt;br /&gt;
 &lt;br /&gt;
5. Restart Neutron Server: &lt;br /&gt;
 /etc/init.d/neutron-server start&lt;br /&gt;
&lt;br /&gt;
== Compute Nodes ==&lt;br /&gt;
&lt;br /&gt;
NOTE: The Neutron Server can sometimes be part of the Controller node.&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node: &lt;br /&gt;
&lt;br /&gt;
1. Edit /etc/neutron/neutron.conf and make sure Neutron is using ML2 plugin:&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Edit the ML2 configuration file /etc/neutron/plugins/ml2/ml2_conf.ini as follows:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan&lt;br /&gt;
 mechanism_drivers = linuxbridge,mlnx&lt;br /&gt;
 &lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges=&amp;lt;physical_network&amp;gt;:&amp;lt;min_vlan&amp;gt;:&amp;lt;max_vlan&amp;gt; //(i.e. default:2:10)&lt;br /&gt;
 &lt;br /&gt;
 [securitygroup]&lt;br /&gt;
 enable_security_group = True&lt;br /&gt;
 &lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
3. Install the required Deb for the Mellanox Neutron plugin (from Ubuntu’s repository):&lt;br /&gt;
 apt-get install neutron-plugin-mlnx-agent&lt;br /&gt;
4. Edit /etc/neutron/plugins/mlnx/mlnx_conf.ini to match your environment:&lt;br /&gt;
 [mlnx]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;physical_network&amp;gt;:&amp;lt;min_vlan:&amp;lt;max_vlan&amp;gt; //(i.e. default:2:10)&lt;br /&gt;
 tenant_network_type = vlan&lt;br /&gt;
 &lt;br /&gt;
 [eswitch]&lt;br /&gt;
 physical_interface_mappings = &amp;lt;physical_network&amp;gt;:&amp;lt;ib interface&amp;gt;  //(i.e. default:ib0)&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 &lt;br /&gt;
 [agent]&lt;br /&gt;
 support_old_agents = True&lt;br /&gt;
&lt;br /&gt;
5. Restart Neutron Server: &lt;br /&gt;
 /etc/init.d/neutron-server start&lt;br /&gt;
&lt;br /&gt;
== Network Node ==&lt;br /&gt;
&lt;br /&gt;
To configure the Network node: &lt;br /&gt;
&lt;br /&gt;
1. Configure eIPoIB (for Linux bridge plugin) by editing the file /etc/infiniband/openib.conf as follows:&lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
2. Restart OFED:  &lt;br /&gt;
 service openibd restart&lt;br /&gt;
3. Verify that the new Ethernet interfaces now appear with ibdev2netdev:&lt;br /&gt;
 # ibdev2netdev&lt;br /&gt;
 mlx4_0 port 1 ==&amp;gt; ib0 (Up)&lt;br /&gt;
 mlx4_0 port 2 ==&amp;gt; ib1 (Down)&lt;br /&gt;
 mlx4_0 port 1 ==&amp;gt; eth2 (Up)&lt;br /&gt;
 mlx4_0 port 2 ==&amp;gt; eth1 (Down)&lt;br /&gt;
In eIPoIB, every ib interface has a matching eth interface. The ib interface used here is ib0, and the matching one is eth2 (same card and port names: mlx4_0 port 1). By using Ethtool, you can verify that ib0 is working on ib_ipoib driver, and eth2 is working on eth_ipoib driver, as follows:&lt;br /&gt;
 # ethtool -i ib0&lt;br /&gt;
 driver: ib_ipoib&lt;br /&gt;
 version: 2.3-1.5.4_Sep 30 2014&lt;br /&gt;
 firmware-version: 2.32.5100&lt;br /&gt;
 bus-info: 0000:07:00.0# ethtool -i eth2&lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 version: 2.3-1.5.4 (Sep 30 2014)&lt;br /&gt;
 firmware-version: 1&lt;br /&gt;
 bus-info: ib0&lt;br /&gt;
4. Edit /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
 [linux_bridge] &lt;br /&gt;
 physical_interface_mappings = &amp;lt;physical_network&amp;gt;:&amp;lt;eth_ipoib-interface&amp;gt; &lt;br /&gt;
 //(i.e. default:eth2)&lt;br /&gt;
5. Restart the Linux bridge agent:&lt;br /&gt;
 service neutron-linuxbridge-agent restart&lt;br /&gt;
6. To allow DHCP support, download mlnx-dnsmadq from this link: http://www.mellanox.com/downloads/solutions/openstack/icehouse/debian/&lt;br /&gt;
&lt;br /&gt;
7. Install the package:&lt;br /&gt;
 dpkg –i python-mlnx-dnsmasq_2014.1.1-1_all.deb&lt;br /&gt;
8. Configure the file /etc/neutron/dhcp_agent.ini:&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 dhcp_driver = mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
9. Make sure that the Dnsmasq which is installed as a part of the OpenStack (not mlnx-dnsmasq) environment is of version 2.65.&lt;br /&gt;
&lt;br /&gt;
10. Copy /etc/neutron/neutron.conf from the Compute node to the same path on the Network node.&lt;br /&gt;
&lt;br /&gt;
11. Edit /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
 [linux_bridge]  &lt;br /&gt;
 physical_interface_mappings = &amp;lt;physical_network&amp;gt;:&amp;lt;eth_ipoib interface&amp;gt; &lt;br /&gt;
 (i.e. default:eth2)&lt;br /&gt;
12. Edit /etc/neutron/dhcp_agent.ini and /etc/neutron/l3_agent.ini as follows: &lt;br /&gt;
 [DEFAULT] &lt;br /&gt;
 interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
13. Restart the following services:&lt;br /&gt;
 service neutron-plugin-linuxbridge-agent restart&lt;br /&gt;
 service neutron-dhcp-agent restart&lt;br /&gt;
 service neutron-l3-agent restart&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* If you're seeing request timeout errors in the plugin's logs, make sure that the eswitchd service is started and try to increase the request_timeout value in the plugin configuration file.&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat&amp;diff=69184</id>
		<title>Mellanox-Neutron-Icehouse-Redhat</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat&amp;diff=69184"/>
				<updated>2014-11-30T08:22:37Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: Replaced content with &amp;quot;This page was redirected to [https://wiki.openstack.org/wiki/Mellanox-Neutron-ML2 here]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page was redirected to [https://wiki.openstack.org/wiki/Mellanox-Neutron-ML2 here]&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-ML2-Icehouse1&amp;diff=69135</id>
		<title>Mellanox-Neutron-ML2-Icehouse1</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-ML2-Icehouse1&amp;diff=69135"/>
				<updated>2014-11-27T15:48:23Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API. &lt;br /&gt;
&lt;br /&gt;
This driver supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox ML2 Mechanism Driver provides functional parity with Mellanox Neutron plugin. &lt;br /&gt;
&lt;br /&gt;
Mellanox ML2 Mechanism Driver supports DIRECT (pci passthrough) and MACVTAP (virtual interface with a tap-like software interface) vnic types. For vnic type configuration API details, please refer to configuration reference guide (click [http://docs.openstack.org/api/openstack-network/2.0/content/binding_ext_ports.html here]). Hardware vNICs mapped to the guest VMs allow higher performance and advanced features such as RDMA (remote direct memory access). &lt;br /&gt;
&lt;br /&gt;
The driver supports VLAN network type to facilitate virtual networks either on Ethernet or InfiniBand fabrics. &lt;br /&gt;
&lt;br /&gt;
* Mellanox Openstack Neutron Agent (L2 Agent) runs on each compute node.&lt;br /&gt;
* Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For '''Icehouse''' release Information refer to the relevant OS as follows:&lt;br /&gt;
&lt;br /&gt;
* [[Mellanox-Neutron-Icehouse-Redhat-Ethernet|Redhat Ethernet]]&lt;br /&gt;
* [[Mellanox-Neutron-Icehouse-Ubuntu-Ethernet|Ubuntu Ethernet]]&lt;br /&gt;
* [[Mellanox-Neutron-Icehouse-Redhat-InfiniBand|Redhat InfiniBand]]&lt;br /&gt;
* [[Mellanox-Neutron-Icehouse-Ubuntu-InfiniBand|Ubuntu InfiniBand]]&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69134</id>
		<title>Mellanox-Neutron-Icehouse-Redhat-InfiniBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69134"/>
				<updated>2014-11-27T15:32:06Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
  &lt;br /&gt;
= Overview = &lt;br /&gt;
== Mellanox Neutron ML2 Driver ==&lt;br /&gt;
Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API. &lt;br /&gt;
&lt;br /&gt;
This driver supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox ML2 Mechanism Driver provides functional parity with Mellanox Neutron plugin. &lt;br /&gt;
&lt;br /&gt;
Mellanox ML2 Mechanism Driver supports DIRECT (pci passthrough) and MACVTAP (virtual interface with a tap-like software interface) vnic types. For vnic type configuration API details, please refer to configuration reference guide (click [http://docs.openstack.org/api/openstack-network/2.0/content/binding_ext_ports.html here]). Hardware vNICs mapped to the guest VMs allow higher performance and advanced features such as RDMA (remote direct memory access). &lt;br /&gt;
&lt;br /&gt;
The driver supports VLAN network type to facilitate virtual networks either on Ethernet or InfiniBand fabrics.&lt;br /&gt;
 &lt;br /&gt;
• Mellanox OpenStack Neutron Agent (L2 Agent) runs on each compute node. &lt;br /&gt;
&lt;br /&gt;
• Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port.&lt;br /&gt;
&lt;br /&gt;
== Mellanox Neutron Plugin ==&lt;br /&gt;
Please note,&lt;br /&gt;
Mellanox Plug-in is deprecated in the Icehouse release and won't be supported in the Juno release.&lt;br /&gt;
The features in the plug-in are now part of the ML2 plug-in in the form of Mellanox mechanism driver.&lt;br /&gt;
&lt;br /&gt;
For details regarding Mellanox Neutron plugin, please refer to https://wiki.openstack.org/wiki/Mellanox-Neutron-Havana-Redhat.&lt;br /&gt;
&lt;br /&gt;
==  Mellanox Nova VIF Driver ==&lt;br /&gt;
The Mellanox Nova VIF driver should be used when running Mellanox Mechnism Driver. The VIF driver supports the VIF plugin by binding vNIC of type DIRECT  to the embedded switch port.&lt;br /&gt;
VIF Driver for MACVTAP type is included in Nova libvirt generic vif driver. For SR-IOV pass-through (vnic type DIRECT) one needs to use VIF driver from Mellanox git repository or RPM.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* A running OpenStack environment  installed with the ML2 plugin on top of Linux Bridge.&lt;br /&gt;
* All nodes equipped with Mellanox ConnectX®-3 Network Adapter (http://www.mellanox.com/page/products_dyn?product_family=119) &lt;br /&gt;
* Mellanox OFED 2.2 or greater installed on all nodes. Please refer to Mellanox website for the latest OFED: http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers&lt;br /&gt;
* SR-IOV enabled on all compute nodes. For more information, please refer to Mellanox Community [http://community.mellanox.com/docs/DOC-1317 click here].&lt;br /&gt;
* The software package iproute2 - (http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 ) installed on all Compute nodes&lt;br /&gt;
* VLANs configured on the ports in the switch.&lt;br /&gt;
&lt;br /&gt;
= InfiniBand Network = &lt;br /&gt;
The Mellanox Neutron Plugin use InfiniBand Partitions (PKeys) to separate Networks.&lt;br /&gt;
&lt;br /&gt;
== SM Node ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSM Configuration – Without UFM ===&lt;br /&gt;
	&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that all the PKeys are predefined in the partitions.conf file (/etc/opensm/partitions.conf). &lt;br /&gt;
&lt;br /&gt;
2. Add/Change the following in the partitions.conf file:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both: ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
3. For every network you want to configure in Neutron, you have to configure the PKey associated with the VLAN of this network (defined in Neutron):&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
Below is an example of the configuration of the partitions.conf file in case you have 10 VLANs defined in the configuration of the file: /etc/neutron/plugins/mlnx/mlnx_conf.ini. ( network_vlan_ranges = default:1:10)&lt;br /&gt;
 &lt;br /&gt;
 management=0x7fff,ipoib, sl=0, defmember=full : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
&lt;br /&gt;
4. Modify the following line in the file /etc/opensm/opensm.conf from FALSE to TRUE:&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
5. Restart the OpenSM:&lt;br /&gt;
 #service opensmd restart&lt;br /&gt;
&lt;br /&gt;
=== OpenSM configuration - With UFM===&lt;br /&gt;
&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that UFM is installed and connected to your fabric.&lt;br /&gt;
&lt;br /&gt;
2. Edit /opt/ufm/conf/opensm/opensm.conf by changing the following values:&lt;br /&gt;
&lt;br /&gt;
a. Set allow_both_pkeys to TRUE (by default allow_both_pkeys are FALSE):&lt;br /&gt;
 Allow both full and limited membership on the same partition&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
b. Set sm_assign_guid_func to uniq_count (by default sm_assign_guid_func is base_port):&lt;br /&gt;
 SM assigned Alias GUIDs algorithm sm_assign_guid_func uniq_count&lt;br /&gt;
3. Edit UFM user extension partitions.conf for overriding default partitioning configuration.&lt;br /&gt;
&lt;br /&gt;
a. Edit file: /opt/ufm/conf/partitions.conf.user_ext (it should be empty right after UFM installation)&lt;br /&gt;
Add the following line to the file to enable both full and limited management PKeys:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
b. Add the additional PKey definitions relevant to the specific setup.&lt;br /&gt;
For Example:&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xb, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xc, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xd, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xe, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xf, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x10, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x11, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x12, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
4. Restart UFM&lt;br /&gt;
&lt;br /&gt;
• Stand-alone&lt;br /&gt;
 #/etc/init.d/ufmd restart&lt;br /&gt;
• High-availability&lt;br /&gt;
 #/etc/init.d/ufmha restart&lt;br /&gt;
&lt;br /&gt;
== Neutron Server Node==&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure ML2 is the current Neutron plugin by checking the core_plugin parameter in /etc/neutron/neutron.conf:&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Make sure /etc/neutron/plugin.ini is pointing to /etc/neutron/plugins/ml2/ml2_conf.ini (symbolic link) &lt;br /&gt;
&lt;br /&gt;
3. Modify /etc/neutron/plugins/ml2/ml2_conf.ini by adding the following:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan&lt;br /&gt;
 mechanism_drivers = linuxbridge,mlnx&lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;network_name&amp;gt;:2:100&lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
4. Start (or restart) the Neutron server:&lt;br /&gt;
 #service neutron-server restart&lt;br /&gt;
&lt;br /&gt;
== Compute Nodes ==&lt;br /&gt;
&lt;br /&gt;
To configure the Compute Node:&lt;br /&gt;
&lt;br /&gt;
1. Download Mellanox OpenStack repo file:&lt;br /&gt;
 #wget http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-icehouse.repo -O /etc/yum.repos.d/mlnx-icehouse.repo  &lt;br /&gt;
2. Install the eSwitch Daemon (eSwitchd) RPM:&lt;br /&gt;
 #yum install eswitchd&lt;br /&gt;
3. Install Mellanox VIF driver:&lt;br /&gt;
 #yum install mlnxvif&lt;br /&gt;
3. Install the required RPM for the Neutron agent:&lt;br /&gt;
 #yum install openstack-neutron-mellanox&lt;br /&gt;
4. Create the file /etc/modprobe.d/mlx4_ib.conf and add the following:&lt;br /&gt;
 options mlx4_ib sm_guid_assign=0&lt;br /&gt;
5. Restart the driver:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
6.In the file /etc/neutron/plugins/mlnx/mlnx_conf.ini, the parameters tenant_network_type , vnic_type and network_vlan_ranges should be configured as the controllers:&lt;br /&gt;
  physical_interface_mapping = default:ib&amp;lt;your_interface&amp;gt;&lt;br /&gt;
7. Modify the file /etc/eswitchd/eswitchd.conf as follows:&lt;br /&gt;
 fabrics = default:ib&amp;lt;your_interface&amp;gt; (for example default:ib0)&lt;br /&gt;
8. Verify Mellanox VIF driver is configured in /etc/nova/nova.conf:&lt;br /&gt;
 [libvirt]&lt;br /&gt;
 vif_driver=mlnxvif.vif.MlxEthVIFDriver&lt;br /&gt;
9. Restart Nova:&lt;br /&gt;
 #service openstack-nova-compute restart&lt;br /&gt;
10. Start eSwitchd:&lt;br /&gt;
 #service eswitchd start&lt;br /&gt;
11. Start the Neutron agent:&lt;br /&gt;
 #service neutron-mlnx-agent start&lt;br /&gt;
&lt;br /&gt;
== Network Node ==&lt;br /&gt;
&lt;br /&gt;
To configure the Network node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that eIPoIB module is up and configured in /etc/infiniband/openib.conf:&lt;br /&gt;
For more information, please refer to eIPoIB configuration in Mellanox OFED User Manual. &lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
2. Restart openibd:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
3. Modify the file /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
[linux_bridge] &lt;br /&gt;
physical_interface_mappings =  default:&amp;lt;eIPoIB interface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: In order to obtain the eIPoIB interface name, run the ethtool tool command (see below) and check the driver name:&lt;br /&gt;
&lt;br /&gt;
 #ethtool -i &amp;lt;InfiniBand_interface&amp;gt; &lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 version: 1.0.0&lt;br /&gt;
 firmware-version: 1 &lt;br /&gt;
 bus-info: ib0&lt;br /&gt;
 supports-statistics: yes&lt;br /&gt;
 supports-test: no&lt;br /&gt;
 supports-eeprom-access: no&lt;br /&gt;
 supports-register-dump: no&lt;br /&gt;
 supports-priv-flags: no&lt;br /&gt;
&lt;br /&gt;
4. Restart neutron-linuxbridge-agent and neutron-dhcp-agent:&lt;br /&gt;
 #service neutron-linuxbridge-agent restart&lt;br /&gt;
&lt;br /&gt;
NOTE: For DHCP support, the Network node should use the Mellanox Dnsmasq driver as the DHCP driver.&lt;br /&gt;
&lt;br /&gt;
=== DHCP Server (Usally part of the Network node) ===&lt;br /&gt;
&lt;br /&gt;
1. Install the Mellanox Dnsmasq:&lt;br /&gt;
 #wget &lt;br /&gt;
 http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-dnsmasq-2014.1.1-1.noarch.rpm&lt;br /&gt;
 #yum localinstall mlnx-dnsmasq-2014.1.1-1.noarch.rpm &lt;br /&gt;
&lt;br /&gt;
2. In addition, Dnsmasq must be upgraded to version 2.66 or higher:&lt;br /&gt;
  #wget &lt;br /&gt;
 ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/kalyaka/CentOS_CentOS-6/x86_64/dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
 #yum localinstall dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
3. Modify /etc/neutron/dhcp_agent.ini as follows:&lt;br /&gt;
 dhcp_driver = mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
 interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
4. Start DHCP server:&lt;br /&gt;
 #service neutron-dhcp-agent restart&lt;br /&gt;
&lt;br /&gt;
= Known issues and Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
For known issues and troubleshooting options refer to  [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting].&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
1. [http://www.mellanox.com/openstack/ http://www.mellanox.com/openstack/]&lt;br /&gt;
&lt;br /&gt;
2. [https://github.com/mellanox-openstack Source repository]&lt;br /&gt;
&lt;br /&gt;
3. [http://www.mellanox.com/page/products_dyn?product_family=26 Mellanox OFED]&lt;br /&gt;
&lt;br /&gt;
4. [http://www.mellanox.com/openstack/pdf/mellanox-openstack-solution.pdf Mellanox OpenStack Solution Reference Architecture]&lt;br /&gt;
&lt;br /&gt;
5. [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
For more details, please refer your question to  [mailto:openstack@mellanox.com openstack@mellanox.com]&lt;br /&gt;
&lt;br /&gt;
Return to [https://wiki.openstack.org/wiki/Mellanox-OpenStack  Mellanox-OpenStack] wiki page.&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69133</id>
		<title>Mellanox-Neutron-Icehouse-Redhat-InfiniBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69133"/>
				<updated>2014-11-27T15:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
  &lt;br /&gt;
= Overview = &lt;br /&gt;
== Mellanox Neutron ML2 Driver ==&lt;br /&gt;
Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API. &lt;br /&gt;
&lt;br /&gt;
This driver supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox ML2 Mechanism Driver provides functional parity with Mellanox Neutron plugin. &lt;br /&gt;
&lt;br /&gt;
Mellanox ML2 Mechanism Driver supports DIRECT (pci passthrough) and MACVTAP (virtual interface with a tap-like software interface) vnic types. For vnic type configuration API details, please refer to configuration reference guide (click [http://docs.openstack.org/api/openstack-network/2.0/content/binding_ext_ports.html here]). Hardware vNICs mapped to the guest VMs allow higher performance and advanced features such as RDMA (remote direct memory access). &lt;br /&gt;
&lt;br /&gt;
The driver supports VLAN network type to facilitate virtual networks either on Ethernet or InfiniBand fabrics.&lt;br /&gt;
 &lt;br /&gt;
• Mellanox OpenStack Neutron Agent (L2 Agent) runs on each compute node. &lt;br /&gt;
&lt;br /&gt;
• Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port.&lt;br /&gt;
&lt;br /&gt;
== Mellanox Neutron Plugin ==&lt;br /&gt;
Please note,&lt;br /&gt;
Mellanox Plug-in is deprecated in the Icehouse release and won't be supported in the Juno release.&lt;br /&gt;
The features in the plug-in are now part of the ML2 plug-in in the form of Mellanox mechanism driver.&lt;br /&gt;
&lt;br /&gt;
For details regarding Mellanox Neutron plugin, please refer to https://wiki.openstack.org/wiki/Mellanox-Neutron-Havana-Redhat.&lt;br /&gt;
&lt;br /&gt;
==  Mellanox Nova VIF Driver ==&lt;br /&gt;
The Mellanox Nova VIF driver should be used when running Mellanox Mechnism Driver. The VIF driver supports the VIF plugin by binding vNIC of type DIRECT  to the embedded switch port.&lt;br /&gt;
VIF Driver for MACVTAP type is included in Nova libvirt generic vif driver. For SR-IOV pass-through (vnic type DIRECT) one needs to use VIF driver from Mellanox git repository or RPM.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* A running OpenStack environment  installed with the ML2 plugin on top of Linux Bridge.&lt;br /&gt;
* All nodes equipped with Mellanox ConnectX®-3 Network Adapter (http://www.mellanox.com/page/products_dyn?product_family=119) &lt;br /&gt;
* Mellanox OFED 2.2 or greater installed on all nodes. Please refer to Mellanox website for the latest OFED: http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers&lt;br /&gt;
* SR-IOV enabled on all compute nodes. For more information, please refer to Mellanox Community [http://community.mellanox.com/docs/DOC-1317 click here].&lt;br /&gt;
* The software package iproute2 - (http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 ) installed on all Compute nodes&lt;br /&gt;
* VLANs configured on the ports in the switch.&lt;br /&gt;
&lt;br /&gt;
= InfiniBand Network = &lt;br /&gt;
The Mellanox Neutron Plugin use InfiniBand Partitions (PKeys) to separate Networks.&lt;br /&gt;
&lt;br /&gt;
== SM Node ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSM Configuration – Without UFM ===&lt;br /&gt;
	&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that all the PKeys are predefined in the partitions.conf file (/etc/opensm/partitions.conf). &lt;br /&gt;
&lt;br /&gt;
2. Add/Change the following in the partitions.conf file:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both: ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
3. For every network you want to configure in Neutron, you have to configure the PKey associated with the VLAN of this network (defined in Neutron):&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
Below is an example of the configuration of the partitions.conf file in case you have 10 VLANs defined in the configuration of the file: /etc/neutron/plugins/mlnx/mlnx_conf.ini. ( network_vlan_ranges = default:1:10)&lt;br /&gt;
 &lt;br /&gt;
 management=0x7fff,ipoib, sl=0, defmember=full : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
&lt;br /&gt;
4. Modify the following line in the file /etc/opensm/opensm.conf from FALSE to TRUE:&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
5. Restart the OpenSM:&lt;br /&gt;
 #service opensmd restart&lt;br /&gt;
&lt;br /&gt;
=== OpenSM configuration - With UFM===&lt;br /&gt;
&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that UFM is installed and connected to your fabric.&lt;br /&gt;
&lt;br /&gt;
2. Edit /opt/ufm/conf/opensm/opensm.conf by changing the following values:&lt;br /&gt;
&lt;br /&gt;
a. Set allow_both_pkeys to TRUE (by default allow_both_pkeys are FALSE):&lt;br /&gt;
 Allow both full and limited membership on the same partition&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
b. Set sm_assign_guid_func to uniq_count (by default sm_assign_guid_func is base_port):&lt;br /&gt;
 SM assigned Alias GUIDs algorithm sm_assign_guid_func uniq_count&lt;br /&gt;
3. Edit UFM user extension partitions.conf for overriding default partitioning configuration.&lt;br /&gt;
&lt;br /&gt;
a. Edit file: /opt/ufm/conf/partitions.conf.user_ext (it should be empty right after UFM installation)&lt;br /&gt;
Add the following line to the file to enable both full and limited management PKeys:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
b. Add the additional PKey definitions relevant to the specific setup.&lt;br /&gt;
For Example:&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xb, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xc, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xd, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xe, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xf, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x10, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x11, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x12, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
4. Restart UFM&lt;br /&gt;
&lt;br /&gt;
• Stand-alone&lt;br /&gt;
 #/etc/init.d/ufmd restart&lt;br /&gt;
• High-availability&lt;br /&gt;
 #/etc/init.d/ufmha restart&lt;br /&gt;
&lt;br /&gt;
== Neutron Server Node==&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure ML2 is the current Neutron plugin by checking the core_plugin parameter in /etc/neutron/neutron.conf:&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Make sure /etc/neutron/plugin.ini is pointing to /etc/neutron/plugins/ml2/ml2_conf.ini (symbolic link) &lt;br /&gt;
&lt;br /&gt;
3. Modify /etc/neutron/plugins/ml2/ml2_conf.ini by adding the following:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan&lt;br /&gt;
 mechanism_drivers = linuxbridge,mlnx&lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;network_name&amp;gt;:2:100&lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
4. Start (or restart) the Neutron server:&lt;br /&gt;
 #service neutron-server restart&lt;br /&gt;
&lt;br /&gt;
== Compute Nodes ==&lt;br /&gt;
&lt;br /&gt;
To configure the Compute Node:&lt;br /&gt;
&lt;br /&gt;
1. Download Mellanox OpenStack repo file:&lt;br /&gt;
 #wget http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-icehouse.repo -O /etc/yum.repos.d/mlnx-icehouse.repo  &lt;br /&gt;
2. Install the eSwitch Daemon (eSwitchd) RPM:&lt;br /&gt;
 #yum install eswitchd&lt;br /&gt;
3. Install Mellanox VIF drive&lt;br /&gt;
 #yum install mlnxvif&lt;br /&gt;
3. Install the required RPM for the Neutron agent:&lt;br /&gt;
 #yum install openstack-neutron-mellanox&lt;br /&gt;
4. Create the file /etc/modprobe.d/mlx4_ib.conf and add the following:&lt;br /&gt;
 options mlx4_ib sm_guid_assign=0&lt;br /&gt;
5. Restart the driver:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
6.In the file /etc/neutron/plugins/mlnx/mlnx_conf.ini, the parameters tenant_network_type , vnic_type and network_vlan_ranges should be configured as the controllers:&lt;br /&gt;
  physical_interface_mapping = default:ib&amp;lt;your_interface&amp;gt;&lt;br /&gt;
7. Modify the file /etc/eswitchd/eswitchd.conf as follows:&lt;br /&gt;
 fabrics = default:ib&amp;lt;your_interface&amp;gt; (for example default:ib0)&lt;br /&gt;
8. Verify Mellanox VIF driver is configured in /etc/nova/nova.conf:&lt;br /&gt;
 [libvirt]&lt;br /&gt;
 vif_driver=mlnxvif.vif.MlxEthVIFDriver&lt;br /&gt;
9. Restart Nova:&lt;br /&gt;
 #service openstack-nova-compute restart&lt;br /&gt;
10. Start eSwitchd:&lt;br /&gt;
 #service eswitchd start&lt;br /&gt;
11. Start the Neutron agent:&lt;br /&gt;
 #service neutron-mlnx-agent start&lt;br /&gt;
&lt;br /&gt;
== Network Node ==&lt;br /&gt;
&lt;br /&gt;
To configure the Network node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that eIPoIB module is up and configured in /etc/infiniband/openib.conf:&lt;br /&gt;
For more information, please refer to eIPoIB configuration in Mellanox OFED User Manual. &lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
2. Restart openibd:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
3. Modify the file /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
[linux_bridge] &lt;br /&gt;
physical_interface_mappings =  default:&amp;lt;eIPoIB interface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: In order to obtain the eIPoIB interface name, run the ethtool tool command (see below) and check the driver name:&lt;br /&gt;
&lt;br /&gt;
 #ethtool -i &amp;lt;InfiniBand_interface&amp;gt; &lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 version: 1.0.0&lt;br /&gt;
 firmware-version: 1 &lt;br /&gt;
 bus-info: ib0&lt;br /&gt;
 supports-statistics: yes&lt;br /&gt;
 supports-test: no&lt;br /&gt;
 supports-eeprom-access: no&lt;br /&gt;
 supports-register-dump: no&lt;br /&gt;
 supports-priv-flags: no&lt;br /&gt;
&lt;br /&gt;
4. Restart neutron-linuxbridge-agent and neutron-dhcp-agent:&lt;br /&gt;
 #service neutron-linuxbridge-agent restart&lt;br /&gt;
&lt;br /&gt;
NOTE: For DHCP support, the Network node should use the Mellanox Dnsmasq driver as the DHCP driver.&lt;br /&gt;
&lt;br /&gt;
=== DHCP Server (Usally part of the Network node) ===&lt;br /&gt;
&lt;br /&gt;
1. Install the Mellanox Dnsmasq:&lt;br /&gt;
 #wget &lt;br /&gt;
 http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-dnsmasq-2014.1.1-1.noarch.rpm&lt;br /&gt;
 #yum localinstall mlnx-dnsmasq-2014.1.1-1.noarch.rpm &lt;br /&gt;
&lt;br /&gt;
2. In addition, Dnsmasq must be upgraded to version 2.66 or higher:&lt;br /&gt;
  #wget &lt;br /&gt;
 ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/kalyaka/CentOS_CentOS-6/x86_64/dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
 #yum localinstall dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
3. Modify /etc/neutron/dhcp_agent.ini as follows:&lt;br /&gt;
 dhcp_driver = mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
 interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
4. Start DHCP server:&lt;br /&gt;
 #service neutron-dhcp-agent restart&lt;br /&gt;
&lt;br /&gt;
= Known issues and Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
For known issues and troubleshooting options refer to  [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting].&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
1. [http://www.mellanox.com/openstack/ http://www.mellanox.com/openstack/]&lt;br /&gt;
&lt;br /&gt;
2. [https://github.com/mellanox-openstack Source repository]&lt;br /&gt;
&lt;br /&gt;
3. [http://www.mellanox.com/page/products_dyn?product_family=26 Mellanox OFED]&lt;br /&gt;
&lt;br /&gt;
4. [http://www.mellanox.com/openstack/pdf/mellanox-openstack-solution.pdf Mellanox OpenStack Solution Reference Architecture]&lt;br /&gt;
&lt;br /&gt;
5. [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
For more details, please refer your question to  [mailto:openstack@mellanox.com openstack@mellanox.com]&lt;br /&gt;
&lt;br /&gt;
Return to [https://wiki.openstack.org/wiki/Mellanox-OpenStack  Mellanox-OpenStack] wiki page.&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69132</id>
		<title>Mellanox-Neutron-Icehouse-Redhat-InfiniBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69132"/>
				<updated>2014-11-27T15:29:33Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
  &lt;br /&gt;
= Overview = &lt;br /&gt;
== Mellanox Neutron ML2 Driver ==&lt;br /&gt;
Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API. &lt;br /&gt;
&lt;br /&gt;
This driver supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox ML2 Mechanism Driver provides functional parity with Mellanox Neutron plugin. &lt;br /&gt;
&lt;br /&gt;
Mellanox ML2 Mechanism Driver supports DIRECT (pci passthrough) and MACVTAP (virtual interface with a tap-like software interface) vnic types. For vnic type configuration API details, please refer to configuration reference guide (click [http://docs.openstack.org/api/openstack-network/2.0/content/binding_ext_ports.html here]). Hardware vNICs mapped to the guest VMs allow higher performance and advanced features such as RDMA (remote direct memory access). &lt;br /&gt;
&lt;br /&gt;
The driver supports VLAN network type to facilitate virtual networks either on Ethernet or InfiniBand fabrics.&lt;br /&gt;
 &lt;br /&gt;
• Mellanox OpenStack Neutron Agent (L2 Agent) runs on each compute node. &lt;br /&gt;
&lt;br /&gt;
• Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port.&lt;br /&gt;
&lt;br /&gt;
== Mellanox Neutron Plugin ==&lt;br /&gt;
Please note,&lt;br /&gt;
Mellanox Plug-in is deprecated in the Icehouse release and won't be supported in the Juno release.&lt;br /&gt;
The features in the plug-in are now part of the ML2 plug-in in the form of Mellanox mechanism driver.&lt;br /&gt;
&lt;br /&gt;
For details regarding Mellanox Neutron plugin, please refer to https://wiki.openstack.org/wiki/Mellanox-Neutron-Havana-Redhat.&lt;br /&gt;
&lt;br /&gt;
==  Mellanox Nova VIF Driver ==&lt;br /&gt;
The Mellanox Nova VIF driver should be used when running Mellanox Mechnism Driver. The VIF driver supports the VIF plugin by binding vNIC of type DIRECT  to the embedded switch port.&lt;br /&gt;
VIF Driver for MACVTAP type is included in Nova libvirt generic vif driver. For SR-IOV pass-through (vnic type DIRECT) one needs to use VIF driver from Mellanox git repository or RPM.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* A running OpenStack environment  installed with the ML2 plugin on top of Linux Bridge.&lt;br /&gt;
* All nodes equipped with Mellanox ConnectX®-3 Network Adapter (http://www.mellanox.com/page/products_dyn?product_family=119) &lt;br /&gt;
* Mellanox OFED 2.2 or greater installed on all nodes. Please refer to Mellanox website for the latest OFED: http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers&lt;br /&gt;
* SR-IOV enabled on all compute nodes. For more information, please refer to Mellanox Community [http://community.mellanox.com/docs/DOC-1317 click here].&lt;br /&gt;
* The software package iproute2 - (http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 ) installed on all Compute nodes&lt;br /&gt;
* VLANs configured on the ports in the switch.&lt;br /&gt;
&lt;br /&gt;
= InfiniBand Network = &lt;br /&gt;
The Mellanox Neutron Plugin use InfiniBand Partitions (PKeys) to separate Networks.&lt;br /&gt;
&lt;br /&gt;
== SM Node ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSM Configuration – Without UFM ===&lt;br /&gt;
	&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that all the PKeys are predefined in the partitions.conf file (/etc/opensm/partitions.conf). &lt;br /&gt;
&lt;br /&gt;
2. Add/Change the following in the partitions.conf file:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both: ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
3. For every network you want to configure in Neutron, you have to configure the PKey associated with the VLAN of this network (defined in Neutron):&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
Below is an example of the configuration of the partitions.conf file in case you have 10 VLANs defined in the configuration of the file: /etc/neutron/plugins/mlnx/mlnx_conf.ini. ( network_vlan_ranges = default:1:10)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 management=0x7fff,ipoib, sl=0, defmember=full : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
&lt;br /&gt;
4. Modify the following line in the file /etc/opensm/opensm.conf from FALSE to TRUE:&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
5. Restart the OpenSM:&lt;br /&gt;
 #service opensmd restart&lt;br /&gt;
&lt;br /&gt;
=== OpenSM configuration - With UFM===&lt;br /&gt;
&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that UFM is installed and connected to your fabric.&lt;br /&gt;
&lt;br /&gt;
2. Edit /opt/ufm/conf/opensm/opensm.conf by changing the following values:&lt;br /&gt;
&lt;br /&gt;
a. Set allow_both_pkeys to TRUE (by default allow_both_pkeys are FALSE):&lt;br /&gt;
 Allow both full and limited membership on the same partition&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
b. Set sm_assign_guid_func to uniq_count (by default sm_assign_guid_func is base_port):&lt;br /&gt;
 SM assigned Alias GUIDs algorithm sm_assign_guid_func uniq_count&lt;br /&gt;
3. Edit UFM user extension partitions.conf for overriding default partitioning configuration.&lt;br /&gt;
&lt;br /&gt;
a. Edit file: /opt/ufm/conf/partitions.conf.user_ext (it should be empty right after UFM installation)&lt;br /&gt;
Add the following line to the file to enable both full and limited management PKeys:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
b. Add the additional PKey definitions relevant to the specific setup.&lt;br /&gt;
For Example:&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xb, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xc, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xd, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xe, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xf, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x10, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x11, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x12, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
4. Restart UFM&lt;br /&gt;
&lt;br /&gt;
• Stand-alone&lt;br /&gt;
 #/etc/init.d/ufmd restart&lt;br /&gt;
• High-availability&lt;br /&gt;
 #/etc/init.d/ufmha restart&lt;br /&gt;
&lt;br /&gt;
== Neutron Server Node==&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure ML2 is the current Neutron plugin by checking the core_plugin parameter in /etc/neutron/neutron.conf:&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Make sure /etc/neutron/plugin.ini is pointing to /etc/neutron/plugins/ml2/ml2_conf.ini (symbolic link) &lt;br /&gt;
&lt;br /&gt;
3. Modify /etc/neutron/plugins/ml2/ml2_conf.ini by adding the following:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan&lt;br /&gt;
 mechanism_drivers = linuxbridge,mlnx&lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;network_name&amp;gt;:2:100&lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
4. Start (or restart) the Neutron server:&lt;br /&gt;
 #service neutron-server restart&lt;br /&gt;
&lt;br /&gt;
== Compute Nodes ==&lt;br /&gt;
&lt;br /&gt;
To configure the Compute Node:&lt;br /&gt;
&lt;br /&gt;
1. Download Mellanox OpenStack repo file:&lt;br /&gt;
 #wget http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-icehouse.repo -O /etc/yum.repos.d/mlnx-icehouse.repo  &lt;br /&gt;
2. Install the eSwitch Daemon (eSwitchd) RPM:&lt;br /&gt;
 #yum install eswitchd&lt;br /&gt;
3. Install Mellanox VIF drive&lt;br /&gt;
 #yum install mlnxvif&lt;br /&gt;
3. Install the required RPM for the Neutron agent:&lt;br /&gt;
 #yum install openstack-neutron-mellanox&lt;br /&gt;
4. Create the file /etc/modprobe.d/mlx4_ib.conf and add the following:&lt;br /&gt;
 options mlx4_ib sm_guid_assign=0&lt;br /&gt;
5. Restart the driver:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
6.In the file /etc/neutron/plugins/mlnx/mlnx_conf.ini, the parameters tenant_network_type , vnic_type and network_vlan_ranges should be configured as the controllers:&lt;br /&gt;
  physical_interface_mapping = default:ib&amp;lt;your_interface&amp;gt;&lt;br /&gt;
7. Modify the file /etc/eswitchd/eswitchd.conf as follows:&lt;br /&gt;
 fabrics = default:ib&amp;lt;your_interface&amp;gt; (for example default:ib0)&lt;br /&gt;
8. Verify Mellanox VIF driver is configured in /etc/nova/nova.conf:&lt;br /&gt;
 [libvirt]&lt;br /&gt;
 vif_driver=mlnxvif.vif.MlxEthVIFDriver&lt;br /&gt;
9. Restart Nova:&lt;br /&gt;
 #service openstack-nova-compute restart&lt;br /&gt;
10. Start eSwitchd:&lt;br /&gt;
 #service eswitchd start&lt;br /&gt;
11. Start the Neutron agent:&lt;br /&gt;
 #service neutron-mlnx-agent start&lt;br /&gt;
&lt;br /&gt;
== Network Node ==&lt;br /&gt;
&lt;br /&gt;
To configure the Network node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that eIPoIB module is up and configured in /etc/infiniband/openib.conf:&lt;br /&gt;
For more information, please refer to eIPoIB configuration in Mellanox OFED User Manual. &lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
2. Restart openibd:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
3. Modify the file /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
[linux_bridge] &lt;br /&gt;
physical_interface_mappings =  default:&amp;lt;eIPoIB interface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: In order to obtain the eIPoIB interface name, run the ethtool tool command (see below) and check the driver name:&lt;br /&gt;
&lt;br /&gt;
 #ethtool -i &amp;lt;InfiniBand_interface&amp;gt; &lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 version: 1.0.0&lt;br /&gt;
 firmware-version: 1 &lt;br /&gt;
 bus-info: ib0&lt;br /&gt;
 supports-statistics: yes&lt;br /&gt;
 supports-test: no&lt;br /&gt;
 supports-eeprom-access: no&lt;br /&gt;
 supports-register-dump: no&lt;br /&gt;
 supports-priv-flags: no&lt;br /&gt;
&lt;br /&gt;
4. Restart neutron-linuxbridge-agent and neutron-dhcp-agent:&lt;br /&gt;
 #service neutron-linuxbridge-agent restart&lt;br /&gt;
&lt;br /&gt;
NOTE: For DHCP support, the Network node should use the Mellanox Dnsmasq driver as the DHCP driver.&lt;br /&gt;
&lt;br /&gt;
=== DHCP Server (Usally part of the Network node) ===&lt;br /&gt;
&lt;br /&gt;
1. Install the Mellanox Dnsmasq:&lt;br /&gt;
 #wget &lt;br /&gt;
 http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-dnsmasq-2014.1.1-1.noarch.rpm&lt;br /&gt;
 #yum localinstall mlnx-dnsmasq-2014.1.1-1.noarch.rpm &lt;br /&gt;
&lt;br /&gt;
2. In addition, Dnsmasq must be upgraded to version 2.66 or higher:&lt;br /&gt;
  #wget &lt;br /&gt;
 ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/kalyaka/CentOS_CentOS-6/x86_64/dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
 #yum localinstall dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
3. Modify /etc/neutron/dhcp_agent.ini as follows:&lt;br /&gt;
 dhcp_driver = mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
 interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
4. Start DHCP server:&lt;br /&gt;
 #service neutron-dhcp-agent restart&lt;br /&gt;
&lt;br /&gt;
= Known issues and Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
For known issues and troubleshooting options refer to  [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting].&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
1. [http://www.mellanox.com/openstack/ http://www.mellanox.com/openstack/]&lt;br /&gt;
&lt;br /&gt;
2. [https://github.com/mellanox-openstack Source repository]&lt;br /&gt;
&lt;br /&gt;
3. [http://www.mellanox.com/page/products_dyn?product_family=26 Mellanox OFED]&lt;br /&gt;
&lt;br /&gt;
4. [http://www.mellanox.com/openstack/pdf/mellanox-openstack-solution.pdf Mellanox OpenStack Solution Reference Architecture]&lt;br /&gt;
&lt;br /&gt;
5. [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
For more details, please refer your question to  [mailto:openstack@mellanox.com openstack@mellanox.com]&lt;br /&gt;
&lt;br /&gt;
Return to [https://wiki.openstack.org/wiki/Mellanox-OpenStack  Mellanox-OpenStack] wiki page.&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69131</id>
		<title>Mellanox-Neutron-Icehouse-Redhat-InfiniBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Icehouse-Redhat-InfiniBand&amp;diff=69131"/>
				<updated>2014-11-27T15:21:35Z</updated>
		
		<summary type="html">&lt;p&gt;Yaell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
  &lt;br /&gt;
= Overview = &lt;br /&gt;
== Mellanox Neutron ML2 Driver ==&lt;br /&gt;
Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API. &lt;br /&gt;
&lt;br /&gt;
This driver supports Mellanox embedded switch functionality as part of the VPI (Ethernet/InfiniBand) HCA. Mellanox ML2 Mechanism Driver provides functional parity with Mellanox Neutron plugin. &lt;br /&gt;
&lt;br /&gt;
Mellanox ML2 Mechanism Driver supports DIRECT (pci passthrough) and MACVTAP (virtual interface with a tap-like software interface) vnic types. For vnic type configuration API details, please refer to configuration reference guide (click [http://docs.openstack.org/api/openstack-network/2.0/content/binding_ext_ports.html here]). Hardware vNICs mapped to the guest VMs allow higher performance and advanced features such as RDMA (remote direct memory access). &lt;br /&gt;
&lt;br /&gt;
The driver supports VLAN network type to facilitate virtual networks either on Ethernet or InfiniBand fabrics.&lt;br /&gt;
 &lt;br /&gt;
• Mellanox OpenStack Neutron Agent (L2 Agent) runs on each compute node. &lt;br /&gt;
&lt;br /&gt;
• Agent should apply VIF connectivity based on mapping between a VIF (VM vNIC) and Embedded Switch port.&lt;br /&gt;
&lt;br /&gt;
== Mellanox Neutron Plugin ==&lt;br /&gt;
Please note,&lt;br /&gt;
Mellanox Plug-in is deprecated in the Icehouse release and won't be supported in the Juno release.&lt;br /&gt;
The features in the plug-in are now part of the ML2 plug-in in the form of Mellanox mechanism driver.&lt;br /&gt;
&lt;br /&gt;
For details regarding Mellanox Neutron plugin, please refer to https://wiki.openstack.org/wiki/Mellanox-Neutron-Havana-Redhat.&lt;br /&gt;
&lt;br /&gt;
==  Mellanox Nova VIF Driver ==&lt;br /&gt;
The Mellanox Nova VIF driver should be used when running Mellanox Mechnism Driver. The VIF driver supports the VIF plugin by binding vNIC of type DIRECT  to the embedded switch port.&lt;br /&gt;
VIF Driver for MACVTAP type is included in Nova libvirt generic vif driver. For SR-IOV pass-through (vnic type DIRECT) one needs to use VIF driver from Mellanox git repository or RPM.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* A running OpenStack environment  installed with the ML2 plugin on top of Linux Bridge.&lt;br /&gt;
* All nodes equipped with Mellanox ConnectX®-3 Network Adapter (http://www.mellanox.com/page/products_dyn?product_family=119) &lt;br /&gt;
* Mellanox OFED 2.2 or greater installed on all nodes. Please refer to Mellanox website for the latest OFED: http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers&lt;br /&gt;
* SR-IOV enabled on all compute nodes. For more information, please refer to Mellanox Community [http://community.mellanox.com/docs/DOC-1317 click here].&lt;br /&gt;
* The software package iproute2 - (http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 ) installed on all Compute nodes&lt;br /&gt;
* VLANs configured on the ports in the switch.&lt;br /&gt;
&lt;br /&gt;
= InfiniBand Network = &lt;br /&gt;
The Mellanox Neutron Plugin use InfiniBand Partitions (PKeys) to separate Networks.&lt;br /&gt;
&lt;br /&gt;
== SM Node ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSM Configuration – Without UFM ===&lt;br /&gt;
	&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that all the PKeys are predefined in the partitions.conf file (/etc/opensm/partitions.conf). &lt;br /&gt;
&lt;br /&gt;
2. Add/Change the following in the partitions.conf file:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both: ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
3. For every network you want to configure in Neutron, you have to configure the PKey associated with the VLAN of this network (defined in Neutron):&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full : ALL;&lt;br /&gt;
Below is an example of the configuration of the partitions.conf file in case you have 10 VLANs defined in the configuration of the file: /etc/neutron/plugins/mlnx/mlnx_conf.ini. ( network_vlan_ranges = default:1:10)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 management=0x7fff,ipoib, sl=0, defmember=full : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
&lt;br /&gt;
4. Modify the following line in the file /etc/opensm/opensm.conf from FALSE to TRUE:&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
5. Restart the OpenSM:&lt;br /&gt;
 #service opensmd restart&lt;br /&gt;
&lt;br /&gt;
=== OpenSM configuration - With UFM===&lt;br /&gt;
&lt;br /&gt;
To configure OpenSM:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that UFM is installed and connected to your fabric.&lt;br /&gt;
&lt;br /&gt;
2. Edit /opt/ufm/conf/opensm/opensm.conf by changing the following values:&lt;br /&gt;
&lt;br /&gt;
a. Set allow_both_pkeys to TRUE (by default allow_both_pkeys are FALSE):&lt;br /&gt;
 Allow both full and limited membership on the same partition&lt;br /&gt;
 allow_both_pkeys TRUE&lt;br /&gt;
b. Set sm_assign_guid_func to uniq_count (by default sm_assign_guid_func is base_port):&lt;br /&gt;
 SM assigned Alias GUIDs algorithm sm_assign_guid_func uniq_count&lt;br /&gt;
3. Edit UFM user extension partitions.conf for overriding default partitioning configuration.&lt;br /&gt;
&lt;br /&gt;
a. Edit file: /opt/ufm/conf/partitions.conf.user_ext (it should be empty right after UFM installation)&lt;br /&gt;
Add the following line to the file to enable both full and limited management PKeys:&lt;br /&gt;
 management=0xffff,ipoib, sl=0, defmember=both : ALL, ALL_SWITCHES=full,SELF=full;&lt;br /&gt;
b. Add the additional PKey definitions relevant to the specific setup.&lt;br /&gt;
For Example:&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan2=0x2, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan3=0x3, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xb, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xc, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xd, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xe, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0xf, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x10, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x11, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 vlan10=0x12, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
4. Restart UFM&lt;br /&gt;
&lt;br /&gt;
• Stand-alone&lt;br /&gt;
 #/etc/init.d/ufmd restart&lt;br /&gt;
• High-availability&lt;br /&gt;
 #/etc/init.d/ufmha restart&lt;br /&gt;
&lt;br /&gt;
== Neutron Server Node==&lt;br /&gt;
&lt;br /&gt;
To configure the Neutron Server node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure ML2 is the current Neutron plugin by checking the core_plugin parameter in /etc/neutron/neutron.conf:&lt;br /&gt;
 core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin&lt;br /&gt;
2. Make sure /etc/neutron/plugin.ini is pointing to /etc/neutron/plugins/ml2/ml2_conf.ini (symbolic link) &lt;br /&gt;
&lt;br /&gt;
3. Modify /etc/neutron/plugins/ml2/ml2_conf.ini by adding the following:&lt;br /&gt;
 [ml2]&lt;br /&gt;
 type_drivers = vlan,flat&lt;br /&gt;
 tenant_network_types = vlan&lt;br /&gt;
 mechanism_drivers = openvswitch,mlnx&lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges = &amp;lt;network_name&amp;gt;:2:100&lt;br /&gt;
 [eswitch]&lt;br /&gt;
 vnic_type = hostdev&lt;br /&gt;
 apply_profile_patch = True&lt;br /&gt;
4. Start (or restart) the Neutron server:&lt;br /&gt;
 #service neutron-server restart&lt;br /&gt;
&lt;br /&gt;
== Compute Nodes ==&lt;br /&gt;
&lt;br /&gt;
To configure the Compute Node:&lt;br /&gt;
&lt;br /&gt;
1. Download Mellanox OpenStack repo file:&lt;br /&gt;
 #wget http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-icehouse.repo -O /etc/yum.repos.d/mlnx-icehouse.repo  &lt;br /&gt;
2. Install the eSwitch Daemon (eSwitchd) RPM:&lt;br /&gt;
 #yum install eswitchd&lt;br /&gt;
3. Install the required RPM for the Neutron agent:&lt;br /&gt;
 #yum install openstack-neutron-mellanox&lt;br /&gt;
4. Create the file /etc/modprobe.d/mlx4_ib.conf and add the following:&lt;br /&gt;
 options mlx4_ib sm_guid_assign=0&lt;br /&gt;
In the file /etc/neutron/plugins/mlnx/mlnx_conf.ini, the parameters tenant_network_type , vnic_type and network_vlan_ranges should be configured as the controllers:&lt;br /&gt;
 physical_interface_mapping = default:ib&amp;lt;your_interface&amp;gt;&lt;br /&gt;
5. Modify the file /etc/eswitchd/eswitchd.conf as follows:&lt;br /&gt;
 fabrics = default:ib&amp;lt;your_interface&amp;gt; (for example default:ib0)&lt;br /&gt;
6. Restart the driver:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
7. Restart eSwitchd and the Neutron agent:&lt;br /&gt;
 #service eswitchd restart&lt;br /&gt;
 #service neutron-mlnx-agent restart&lt;br /&gt;
8. Verify Mellanox VIF driver is configured in /etc/nova/nova.conf:&lt;br /&gt;
 [libvirt]&lt;br /&gt;
 vif_driver=mlnxvif.vif.MlxEthVIFDriver&lt;br /&gt;
9. Restart Nova:&lt;br /&gt;
 #service openstack-nova-compute restart&lt;br /&gt;
10. Start eSwitchd:&lt;br /&gt;
 #service eswitchd start&lt;br /&gt;
11. Start the Neutron agent:&lt;br /&gt;
 #service neutron-mlnx-agent start&lt;br /&gt;
&lt;br /&gt;
== Network Node ==&lt;br /&gt;
&lt;br /&gt;
To configure the Network node:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that eIPoIB module is up and configured in /etc/infiniband/openib.conf:&lt;br /&gt;
For more information, please refer to eIPoIB configuration in Mellanox OFED User Manual. &lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
2. Restart openibd:&lt;br /&gt;
 #service openibd restart&lt;br /&gt;
3. Modify the file /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini as follows:&lt;br /&gt;
[linux_bridge] &lt;br /&gt;
physical_interface_mappings =  default:&amp;lt;eIPoIB interface&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: In order to obtain the eIPoIB interface name, run the ethtool tool command (see below) and check the driver name:&lt;br /&gt;
&lt;br /&gt;
 #ethtool -i &amp;lt;InfiniBand_interface&amp;gt; &lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 version: 1.0.0&lt;br /&gt;
 firmware-version: 1 &lt;br /&gt;
 bus-info: ib0&lt;br /&gt;
 supports-statistics: yes&lt;br /&gt;
 supports-test: no&lt;br /&gt;
 supports-eeprom-access: no&lt;br /&gt;
 supports-register-dump: no&lt;br /&gt;
 supports-priv-flags: no&lt;br /&gt;
&lt;br /&gt;
4. Restart neutron-linuxbridge-agent and neutron-dhcp-agent:&lt;br /&gt;
 #service neutron-linuxbridge-agent restart&lt;br /&gt;
&lt;br /&gt;
NOTE: For DHCP support, the Network node should use the Mellanox Dnsmasq driver as the DHCP driver.&lt;br /&gt;
&lt;br /&gt;
=== DHCP Server (Usally part of the Network node) ===&lt;br /&gt;
&lt;br /&gt;
1. Install the Mellanox Dnsmasq:&lt;br /&gt;
 #wget &lt;br /&gt;
 http://www.mellanox.com/downloads/solutions/openstack/icehouse/repo/mlnx-icehouse/mlnx-dnsmasq-2014.1.1-1.noarch.rpm&lt;br /&gt;
 #yum localinstall mlnx-dnsmasq-2014.1.1-1.noarch.rpm &lt;br /&gt;
&lt;br /&gt;
2. In addition, Dnsmasq must be upgraded to version 2.66 or higher:&lt;br /&gt;
  #wget &lt;br /&gt;
 ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/kalyaka/CentOS_CentOS-6/x86_64/dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
 #yum localinstall dnsmasq-2.66-3.1.x86_64.rpm&lt;br /&gt;
3. Modify /etc/neutron/dhcp_agent.ini as follows:&lt;br /&gt;
 dhcp_driver = mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
 interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
4. Start DHCP server:&lt;br /&gt;
 #service neutron-dhcp-agent restart&lt;br /&gt;
&lt;br /&gt;
= Known issues and Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
For known issues and troubleshooting options refer to  [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting].&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
1. [http://www.mellanox.com/openstack/ http://www.mellanox.com/openstack/]&lt;br /&gt;
&lt;br /&gt;
2. [https://github.com/mellanox-openstack Source repository]&lt;br /&gt;
&lt;br /&gt;
3. [http://www.mellanox.com/page/products_dyn?product_family=26 Mellanox OFED]&lt;br /&gt;
&lt;br /&gt;
4. [http://www.mellanox.com/openstack/pdf/mellanox-openstack-solution.pdf Mellanox OpenStack Solution Reference Architecture]&lt;br /&gt;
&lt;br /&gt;
5. [http://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
For more details, please refer your question to  [mailto:openstack@mellanox.com openstack@mellanox.com]&lt;br /&gt;
&lt;br /&gt;
Return to [https://wiki.openstack.org/wiki/Mellanox-OpenStack  Mellanox-OpenStack] wiki page.&lt;/div&gt;</summary>
		<author><name>Yaell</name></author>	</entry>

	</feed>