<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/index.php?action=history&amp;feed=atom&amp;title=Mellanox-Neutron-Queens-Redhat-InfiniBand</id>
		<title>Mellanox-Neutron-Queens-Redhat-InfiniBand - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/index.php?action=history&amp;feed=atom&amp;title=Mellanox-Neutron-Queens-Redhat-InfiniBand"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Queens-Redhat-InfiniBand&amp;action=history"/>
		<updated>2026-07-12T03:05:34Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Queens-Redhat-InfiniBand&amp;diff=162789&amp;oldid=prev</id>
		<title>Hasanq at 12:22, 16 July 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Queens-Redhat-InfiniBand&amp;diff=162789&amp;oldid=prev"/>
				<updated>2018-07-16T12:22:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 12:22, 16 July 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l26&quot; &gt;Line 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; yum -y install yum-plugin-priorities&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; yum -y install yum-plugin-priorities&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; cd /etc/yum.repos.d/&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; cd /etc/yum.repos.d/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; sudo wget https://trunk.rdoproject.org/centos7-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pike&lt;/del&gt;/current/delorean.repo&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; sudo wget https://trunk.rdoproject.org/centos7-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;queens&lt;/ins&gt;/current/delorean.repo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; yum update -y&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; yum update -y&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l62&quot; &gt;Line 62:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 62:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  allow_both_pkeys TRUE&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  allow_both_pkeys TRUE&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====For ConnectX®-4 use the following configuration====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====For ConnectX®-4&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/ConnectX®-5 &lt;/ins&gt;use the following configuration====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Add/Change the following in the partitions.conf.user_ext&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Add/Change the following in the partitions.conf.user_ext&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key openstack_wiki:diff:version:1.11a:oldid:162779:newid:162789 --&gt;
&lt;/table&gt;</summary>
		<author><name>Hasanq</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Queens-Redhat-InfiniBand&amp;diff=162779&amp;oldid=prev</id>
		<title>Hasanq: Created page with &quot;=Overview=  ==Mellanox Neutron ML2 Driver==   Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API.   This driver supports Mellanox embedded switch fun...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Mellanox-Neutron-Queens-Redhat-InfiniBand&amp;diff=162779&amp;oldid=prev"/>
				<updated>2018-07-15T13:57:09Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;=Overview=  ==Mellanox Neutron ML2 Driver==   Mellanox ML2 Mechanism Driver implements the ML2 Plugin Mechanism Driver API.   This driver supports Mellanox embedded switch fun...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Overview=&lt;br /&gt;
&lt;br /&gt;
==Mellanox Neutron ML2 Driver==&lt;br /&gt;
&lt;br /&gt;
&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 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) vnic type. For vnic type configuration API details, please refer to configuration reference guide.&lt;br /&gt;
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 InfiniBand fabrics. &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;
===Prerequisites===&lt;br /&gt;
* Red Hat Installation &amp;gt; 7.1&lt;br /&gt;
* Mellanox [http://www.mellanox.com/page/products_dyn?product_family=119  ConnectX®-3/Mellanox ConnectX®-3 PRO] with [http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers Mellanox OFED]  the latest 3.X &lt;br /&gt;
* Mellanox [http://www.mellanox.com/page/products_dyn?product_family=201&amp;amp; ConnectX®-4]/[http://www.mellanox.com/page/products_dyn?product_family=214&amp;amp;mtag=connectx_4_lx_en_ic ConnectX®-4Lx]/[http://www.mellanox.com/page/products_dyn?product_family=258&amp;amp;mtag=connectx_5_vpi_card ConnectX®-5] with [http://www.mellanox.com/page/products_dyn?product_family=26&amp;amp;mtag=linux_sw_drivers MLNX_OFED_LINUX] the latest 3.X .&lt;br /&gt;
* A running OpenStack environment installed with the ML2 plugin on top of OpenVswitch or Linux Bridge (RDO Manager or Packstack).&lt;br /&gt;
* [https://community.mellanox.com/docs/DOC-1317 SR-IOV] enabled on all compute nodes.&lt;br /&gt;
* The software package [http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 iproute2] installed on all Compute nodes&lt;br /&gt;
* [http://www.mellanox.com/page/products_dyn?product_family=100 Mellanox UFM] greater than 5.9.5&lt;br /&gt;
* Add the following repositories on each node&lt;br /&gt;
 yum -y install yum-plugin-priorities&lt;br /&gt;
 cd /etc/yum.repos.d/&lt;br /&gt;
 sudo wget https://trunk.rdoproject.org/centos7-pike/current/delorean.repo&lt;br /&gt;
 yum update -y&lt;br /&gt;
&lt;br /&gt;
=InfiniBand Network=&lt;br /&gt;
The Mellanox Neutron Plugin uses InfiniBand Partitions (PKeys) to separate Networks. &lt;br /&gt;
&lt;br /&gt;
==SM Node==&lt;br /&gt;
&lt;br /&gt;
=== OpenSM Provisioning with SDN Mechanism Driver ===&lt;br /&gt;
&lt;br /&gt;
[https://community.mellanox.com/docs/DOC-2155 SDN Mechanism Driver] allows OpenSM dynamically assign PKs in the IB network.&lt;br /&gt;
&lt;br /&gt;
More details about applying SDN Mechanism Driver with [http://www.mellanox.com/page/products_dyn?product_family=220&amp;amp;mtag=mellanox_neo NEO] can be found [https://community.mellanox.com/docs/DOC-2251 here]&lt;br /&gt;
&lt;br /&gt;
=== Manual OpenSM Configuration ===&lt;br /&gt;
&lt;br /&gt;
All the PKeys should be predefined in the partitions.conf file (/etc/opensm/partitions.conf)&lt;br /&gt;
(Automatic cofiguration is planned in future phase)&lt;br /&gt;
&lt;br /&gt;
====For ConnectX®-3/ConnectX®-3Pro use the following configuration====&lt;br /&gt;
&lt;br /&gt;
Add/Change the following in the partitions.conf file&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;&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;
Change the following in /etc/opensm/opensm.conf:&lt;br /&gt;
   allow_both_pkeys TRUE&lt;br /&gt;
&lt;br /&gt;
====For ConnectX®-4 use the following configuration====&lt;br /&gt;
&lt;br /&gt;
Add/Change the following in the partitions.conf.user_ext&lt;br /&gt;
 vlan1=0x1, ipoib, sl=0, defmember=full: ALL_CAS;&lt;br /&gt;
 #Storage and management vlan should be define as follow&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;
 #define OpenSM as a member for all OpenStack vlans. If not guest will have link down on “ibdev2netdev” and no connectivity.&lt;br /&gt;
 vlan4=0x4, ipoib, sl=0, defmember=full: SELF;&lt;br /&gt;
 vlan5=0x5, ipoib, sl=0, defmember=full: SELF;&lt;br /&gt;
 vlan6=0x6, ipoib, sl=0, defmember=full: SELF;&lt;br /&gt;
 vlan7=0x7, ipoib, sl=0, defmember=full: SELF;&lt;br /&gt;
 vlan8=0x8, ipoib, sl=0, defmember=full: SELF;&lt;br /&gt;
 vlan9=0x9, ipoib, sl=0, defmember=full: SELF;&lt;br /&gt;
 vlan10=0xa, ipoib, sl=0, defmember=full: SELF;&lt;br /&gt;
 &lt;br /&gt;
Change the following in /etc/opensm/opensm.conf:&lt;br /&gt;
 virt_enabled 2&lt;br /&gt;
 part_enforce off&lt;br /&gt;
 allow_both_pkeys FALSE&lt;br /&gt;
&lt;br /&gt;
4. Restart the OpenSM: &lt;br /&gt;
 # systemctl restart opensmd.service&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. Install Mellanox RPMs: &lt;br /&gt;
 # yum install -y --nogpgcheck python-networking-mlnx &lt;br /&gt;
&lt;br /&gt;
===Neutron Server===&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;
&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 = mlnx_infiniband, openvswitch&lt;br /&gt;
 # or mechanism_drivers = mlnx_infiniband, linuxbridge&lt;br /&gt;
 [ml2_type_vlan]&lt;br /&gt;
 network_vlan_ranges = default:1:10&lt;br /&gt;
&lt;br /&gt;
4. Start (or restart) the Neutron server: &lt;br /&gt;
 # systemctl restart neutron-server.service&lt;br /&gt;
&lt;br /&gt;
===Nova Scheduler===&lt;br /&gt;
Enabling PciPassthroughFilter modify /etc/nova/nova.conf&lt;br /&gt;
  scheduler_available_filters = nova.scheduler.filters.all_filters&lt;br /&gt;
  scheduler_default_filters = RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, PciPassthroughFilter&lt;br /&gt;
&lt;br /&gt;
== Network Node==&lt;br /&gt;
To configure the Network node:&lt;br /&gt;
&lt;br /&gt;
Prerequisites:&lt;br /&gt;
 E_IPoIB port is configured and up&lt;br /&gt;
&lt;br /&gt;
1. Make sure that eIPoIB module is up and configured in '''/etc/infiniband/openib.conf''': For more information, please refer to eIPoIB configuration in Mellanox OFED User Manual. &lt;br /&gt;
 E_IPOIB_LOAD=yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Restart openibd: &lt;br /&gt;
 # service openibd restart&lt;br /&gt;
&lt;br /&gt;
3. Modify the network bridge configuration according to the use of OpenVswitch or LinuxBridge&lt;br /&gt;
* 3.1 OpenVswitch '''/etc/neutron/plugins/ml2/openvswitch_agent.ini''' &lt;br /&gt;
 [ovs]&lt;br /&gt;
 bridge_mappings = default:br-&amp;lt;eIPoIB interface&amp;gt;&lt;br /&gt;
* 3.2 LinuxBridge file '''/etc/neutron/plugins/ml2/linuxbridge_agent.ini''':&lt;br /&gt;
 [linux_bridge] &lt;br /&gt;
 physical_interface_mappings = default:&amp;lt;eIPoIB interface&amp;gt;&lt;br /&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 that driver name is eth_ipoib: &lt;br /&gt;
 # ethtool -i &amp;lt;eIPoIB_interface&amp;gt; &lt;br /&gt;
 driver: eth_ipoib&lt;br /&gt;
 .....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Restart network bridge: &lt;br /&gt;
* 4.1 OpenVswitch&lt;br /&gt;
 systemctl restart neutron-openvswitch-agent.service&lt;br /&gt;
* 4.2 LinuxBridge (if using linux bridge)&lt;br /&gt;
 # service neutron-linuxbridge-agent restart&lt;br /&gt;
&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 (Usually part of the Network node)===&lt;br /&gt;
&lt;br /&gt;
1. Modify '''/etc/neutron/dhcp_agent.ini''' as follows and according to OVS or Linuxbridge: &lt;br /&gt;
 dhcp_driver = networking_mlnx.dhcp.mlnx_dhcp.MlnxDnsmasq&lt;br /&gt;
 dhcp_broadcast_reply = True&lt;br /&gt;
&lt;br /&gt;
 1.1 For OVS&lt;br /&gt;
     interface_driver =  neutron.agent.linux.interface.OVSInterfaceDriver&lt;br /&gt;
 1.2 For Linux Bridge&lt;br /&gt;
      interface_driver =  neutron.agent.linux.interface.BridgeInterfaceDriver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Restart DHCP server: &lt;br /&gt;
 # systemctl restart neutron-dhcp-agent.service&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. Install Mellanox RPMs: &lt;br /&gt;
 # yum install --nogpgcheck -y python-networking-mlnx&lt;br /&gt;
&lt;br /&gt;
2. 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;
&lt;br /&gt;
3. Restart the driver: &lt;br /&gt;
 # /etc/init.d/openibd restart&lt;br /&gt;
&lt;br /&gt;
===Nova Compute===&lt;br /&gt;
Nova-compute needs to know which PCI devices are allowed to be passed through to the VMs. &lt;br /&gt;
Also for SRIOV PCI devices it needs to know to which physical network the VF belongs.&lt;br /&gt;
This is done through the pci_passthrough_whitelist parameter under the default section in '''/etc/nova/nova.conf'''.&lt;br /&gt;
For example if we want to whitelist and tag the VFs by their PCI address we would use the following setting:&lt;br /&gt;
[pci]&lt;br /&gt;
passthrough_whitelist = {&amp;quot;address&amp;quot;:&amp;quot;*:0a:00.*&amp;quot;,&amp;quot;physical_network&amp;quot;:&amp;quot;default&amp;quot;}&lt;br /&gt;
This associates any VF with address that includes ':0a:00.' in its address to the physical network default.&lt;br /&gt;
&lt;br /&gt;
1. add  pci passthrough_whitelist to '''/etc/nova/nova.conf'''&lt;br /&gt;
&lt;br /&gt;
2. Restart Nova:&lt;br /&gt;
 # systemctl restart openstack-nova-compute&lt;br /&gt;
&lt;br /&gt;
===Neutron MLNX Agent===&lt;br /&gt;
1. Run: &lt;br /&gt;
 # systemctl enable neutron-mlnx-agent.service&lt;br /&gt;
 # systemctl start neutron-mlnx-agent.service&lt;br /&gt;
&lt;br /&gt;
2. Run: &lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
3. In the file '''/etc/neutron/plugins/mlnx/mlnx_conf.ini''', the parameters tenant_network_type , and network_vlan_ranges should be configured as the controllers: &lt;br /&gt;
 physical_interface_mappings = default:&amp;lt;ib_interface&amp;gt;(for example default:ib0)&lt;br /&gt;
&lt;br /&gt;
4. Modify the file '''/etc/neutron/plugins/ml2/eswitchd.conf''' as follows:&lt;br /&gt;
 fabrics = default:&amp;lt;ib_interface&amp;gt; (for example default:ib0)&lt;br /&gt;
&lt;br /&gt;
5. Start eSwitchd: &lt;br /&gt;
 # systemctl enable eswitchd.service&lt;br /&gt;
 # systemctl start  eswitchd.service&lt;br /&gt;
&lt;br /&gt;
6. Start the Neutron agent: &lt;br /&gt;
 # systemctl restart neutron-mlnx-agent&lt;br /&gt;
&lt;br /&gt;
==Known issues and Troubleshooting==&lt;br /&gt;
For known issues and troubleshooting options refer to [https://community.mellanox.com/docs/DOC-1127 Mellanox OpenStack Troubleshooting]&lt;br /&gt;
&lt;br /&gt;
Issue: Missing zmq package on all nodes (Controller/Compute)&lt;br /&gt;
Solution:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # wget https://bootstrap.pypa.io/get-pip.py&lt;br /&gt;
 # sudo python get-pip.py&lt;br /&gt;
 # sudo pip install pyzmq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hasanq</name></author>	</entry>

	</feed>