diff --git a/doc/common/tables/neutron-l3_brocade_mlx.xml b/doc/common/tables/neutron-l3_brocade_mlx.xml
new file mode 100644
index 0000000000..3f2363b713
--- /dev/null
+++ b/doc/common/tables/neutron-l3_brocade_mlx.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<para xmlns="http://docbook.org/ns/docbook" version="5.0">
+  <!-- Warning: Do not edit this file. It is automatically
+     generated and your changes will be overwritten.
+     The tool to do so lives in openstack-doc-tools repository. -->
+  <table rules="all" xml:id="config_table_neutron_l3_brocade_mlx">
+    <caption>Description of Brocade MLX L3 plug-in configuration options</caption>
+    <col width="50%"/>
+    <col width="50%"/>
+    <thead>
+      <tr>
+        <th>Configuration option = Default value</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <th colspan="2">[l3_brocade_mlx]</th>
+      </tr>
+      <tr>
+        <td><option>switch_names</option> = <replaceable></replaceable></td>
+        <td>(StrOpt) Switches connected to the compute nodes</td>
+      </tr>
+    </tbody>
+  </table>
+</para>
diff --git a/doc/common/tables/neutron-l3_brocade_mlx_switch.xml b/doc/common/tables/neutron-l3_brocade_mlx_switch.xml
new file mode 100644
index 0000000000..2e9f818384
--- /dev/null
+++ b/doc/common/tables/neutron-l3_brocade_mlx_switch.xml
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<para xmlns="http://docbook.org/ns/docbook" version="5.0">
+  <!-- Warning: Do not edit this file. It is automatically
+     generated and your changes will be overwritten.
+     The tool to do so lives in openstack-doc-tools repository. -->
+  <table rules="all" xml:id="config_table_neutron_l3_brocade_mlx_switch">
+    <caption>Description of Brocade MLX L3 switch configuration options</caption>
+    <col width="50%"/>
+    <col width="50%"/>
+    <thead>
+      <tr>
+        <th>Configuration option = Default value</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <th colspan="2">[L3_BROCADE_MLX_EXAMPLE]</th>
+      </tr>
+      <tr>
+        <td><option>address</option> = <replaceable></replaceable></td>
+        <td>(StrOpt) The IP address of the MLX switch</td>
+      </tr>
+      <tr>
+        <td><option>password</option> = <replaceable>password</replaceable></td>
+        <td>(StrOpt) The SSH password of the switch</td>
+      </tr>
+      <tr>
+        <td><option>physical_networks</option> = <replaceable></replaceable></td>
+        <td>(StrOpt) Allowed physical networks where VLAN can be configured on this switch</td>
+      </tr>
+      <tr>
+        <td><option>ports</option> = <replaceable></replaceable></td>
+        <td>(StrOpt) Ports to be tagged in the VLAN being configured on the switch</td>
+      </tr>
+      <tr>
+        <td><option>username</option> = <replaceable>admin</replaceable></td>
+        <td>(StrOpt) The SSH username of the switch</td>
+      </tr>
+    </tbody>
+  </table>
+</para>
diff --git a/doc/common/tables/neutron-ml2_brocade_fi_ni.xml b/doc/common/tables/neutron-ml2_brocade_fi_ni.xml
new file mode 100644
index 0000000000..f90ec6027f
--- /dev/null
+++ b/doc/common/tables/neutron-ml2_brocade_fi_ni.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<para xmlns="http://docbook.org/ns/docbook" version="5.0">
+  <!-- Warning: Do not edit this file. It is automatically
+     generated and your changes will be overwritten.
+     The tool to do so lives in openstack-doc-tools repository. -->
+  <table rules="all" xml:id="config_table_neutron_ml2_brocade_fi_ni">
+    <caption>Description of ML2 Brocade MLX ICX mechanism driver configuration options</caption>
+    <col width="50%"/>
+    <col width="50%"/>
+    <thead>
+      <tr>
+        <th>Configuration option = Default value</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <th colspan="2">[ml2_brocade_fi_ni]</th>
+      </tr>
+      <tr>
+        <td><option>switch_names</option> = <replaceable></replaceable></td>
+        <td>(StrOpt) Switches connected to the compute nodes</td>
+      </tr>
+    </tbody>
+  </table>
+</para>
diff --git a/doc/common/tables/neutron-ml2_brocade_fi_ni_switch.xml b/doc/common/tables/neutron-ml2_brocade_fi_ni_switch.xml
new file mode 100644
index 0000000000..de2fc05817
--- /dev/null
+++ b/doc/common/tables/neutron-ml2_brocade_fi_ni_switch.xml
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<para xmlns="http://docbook.org/ns/docbook" version="5.0">
+  <!-- Warning: Do not edit this file. It is automatically
+     generated and your changes will be overwritten.
+     The tool to do so lives in openstack-doc-tools repository. -->
+  <table rules="all" xml:id="config_table_neutron_ml2_brocade_fi_ni_switch">
+    <caption>Description of ML2 Brocade MLX ICX switch configuration options</caption>
+    <col width="50%"/>
+    <col width="50%"/>
+    <thead>
+      <tr>
+        <th>Configuration option = Default value</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <th colspan="2">[ML2_BROCADE_MLX_EXAMPLE]</th>
+      </tr>
+      <tr>
+        <td><option>address</option> = <replaceable></replaceable></td>
+        <td>(StrOpt) The address of the host to SSH to</td>
+      </tr>
+      <tr>
+        <td><option>ostype</option> = <replaceable>NI</replaceable></td>
+        <td>(StrOpt) OS type of the device.</td>
+      </tr>
+      <tr>
+        <td><option>password</option> = <replaceable>password</replaceable></td>
+        <td>(StrOpt) The SSH password to use</td>
+      </tr>
+      <tr>
+        <td><option>physical_networks</option> = <replaceable></replaceable></td>
+        <td>(StrOpt) Allowed physical networks</td>
+      </tr>
+      <tr>
+        <td><option>ports</option> = <replaceable></replaceable></td>
+        <td>(StrOpt) Ports</td>
+      </tr>
+      <tr>
+        <td><option>transport</option> = <replaceable>SSH</replaceable></td>
+        <td>(StrOpt) Protocol used to communicate with Switch</td>
+      </tr>
+      <tr>
+        <td><option>username</option> = <replaceable>admin</replaceable></td>
+        <td>(StrOpt) The SSH username to use</td>
+      </tr>
+    </tbody>
+  </table>
+</para>
diff --git a/doc/config-reference/networking/section_networking-plugins-ml2.xml b/doc/config-reference/networking/section_networking-plugins-ml2.xml
index 74a981aad1..5a615514ce 100644
--- a/doc/config-reference/networking/section_networking-plugins-ml2.xml
+++ b/doc/config-reference/networking/section_networking-plugins-ml2.xml
@@ -73,6 +73,22 @@
             options</title>
         <xi:include href="../../common/tables/neutron-ml2_brocade.xml"/>
     </section>
+    <section xml:id="networking-plugin-ml2_brocade_fi_ni">
+        <title>Modular Layer 3 (ml2) Brocade MLX ICX Mechanism configuration
+            options</title>
+        <para>Configure switch names to be used as group names
+            as described below</para>
+        <xi:include href="../../common/tables/neutron-ml2_brocade_fi_ni.xml"/>
+        <para>Configure MLX and ICX switch options in the form of switch
+            groups as described in the example below:</para>
+        <xi:include href="../../common/tables/neutron-ml2_brocade_fi_ni_switch.xml"/>
+        <note>
+            <para>Define a switch group for each MLX and ICX switch using the switch
+                names used in <option>switch_names</option> configuration
+                option as a group name.
+            </para>
+        </note>
+    </section>
     <section xml:id="networking-plugin-ml2_cisco">
         <title>Modular Layer 2 (ml2) Cisco Mechanism configuration
             options</title>
diff --git a/doc/config-reference/networking/section_networking-plugins.xml b/doc/config-reference/networking/section_networking-plugins.xml
index dd3e67a8ec..8eabdd6efa 100644
--- a/doc/config-reference/networking/section_networking-plugins.xml
+++ b/doc/config-reference/networking/section_networking-plugins.xml
@@ -39,6 +39,25 @@
                            href="../../common/tables/neutron-brocade.xml"
                   />
          </section>
+         <section xml:id="networking-plugin-brocade_mlx_l3">
+             <title>Brocade MLX L3 plug-in</title>
+             <para>Configure switch names to be used as group names
+                 as described below</para>
+             <xi:include
+                 href="../../common/tables/neutron-l3_brocade_mlx.xml"
+             />
+             <para>Configure MLX switch options in the form of switch
+                 groups as described in the example below:</para>
+             <xi:include
+                 href="../../common/tables/neutron-l3_brocade_mlx_switch.xml"
+             />
+             <note>
+                 <para>Define a switch group for each switch using the switch
+                     names used in <option>switch_names</option> configuration
+                     option as a group name.
+                 </para>
+             </note>
+         </section>
          <section xml:id="networking-plugin-brocade_vyatta_l3">
                   <title>Brocade Vyatta layer 3 plug-in</title>
                   <para>The Brocade Vyatta Layer 3 plug-in configures Vyatta
diff --git a/tools/autogenerate-config-flagmappings/neutron.flagmappings b/tools/autogenerate-config-flagmappings/neutron.flagmappings
index 29b6abe406..84a7e1a79e 100644
--- a/tools/autogenerate-config-flagmappings/neutron.flagmappings
+++ b/tools/autogenerate-config-flagmappings/neutron.flagmappings
@@ -270,6 +270,11 @@ CONTRAIL/api_server_port opencontrail
 ESWITCH/vnic_type ml2_mlnx
 HYPERV/network_vlan_ranges hyperv_agent
 HYPERV/tenant_network_type hyperv_agent
+L3_BROCADE_MLX_EXAMPLE/address l3_brocade_mlx_switch
+L3_BROCADE_MLX_EXAMPLE/password l3_brocade_mlx_switch
+L3_BROCADE_MLX_EXAMPLE/physical_networks l3_brocade_mlx_switch
+L3_BROCADE_MLX_EXAMPLE/ports l3_brocade_mlx_switch
+L3_BROCADE_MLX_EXAMPLE/username l3_brocade_mlx_switch
 LINUX_BRIDGE/physical_interface_mappings linuxbridge_agent
 META/default_flavor meta
 META/default_l3_flavor meta
@@ -278,6 +283,13 @@ META/l3_plugin_list meta
 META/plugin_list meta
 META/rpc_flavor meta
 META/supported_extension_aliases meta
+ML2_BROCADE_MLX_EXAMPLE/address ml2_brocade_fi_ni_switch
+ML2_BROCADE_MLX_EXAMPLE/ostype ml2_brocade_fi_ni_switch
+ML2_BROCADE_MLX_EXAMPLE/password ml2_brocade_fi_ni_switch
+ML2_BROCADE_MLX_EXAMPLE/physical_networks ml2_brocade_fi_ni_switch
+ML2_BROCADE_MLX_EXAMPLE/ports ml2_brocade_fi_ni_switch
+ML2_BROCADE_MLX_EXAMPLE/transport ml2_brocade_fi_ni_switch
+ML2_BROCADE_MLX_EXAMPLE/username ml2_brocade_fi_ni_switch
 NOVA/node_override_vif_802.1qbg bigswitch ml2_bigswitch
 NOVA/node_override_vif_802.1qbh bigswitch ml2_bigswitch
 NOVA/node_override_vif_binding_failed bigswitch ml2_bigswitch
@@ -530,6 +542,7 @@ l3_arista/primary_l3_host_password l3_arista
 l3_arista/primary_l3_host_username l3_arista
 l3_arista/secondary_l3_host l3_arista
 l3_arista/use_vrf l3_arista
+l3_brocade_mlx/switch_names l3_brocade_mlx
 matchmaker_redis/host redis
 matchmaker_redis/password redis
 matchmaker_redis/port redis
@@ -551,6 +564,7 @@ ml2_brocade/password ml2_brocade
 ml2_brocade/physical_networks ml2_brocade
 ml2_brocade/rbridge_id ml2_brocade
 ml2_brocade/username ml2_brocade
+ml2_brocade_fi_ni/switch_names ml2_brocade_fi_ni
 ml2_cisco_apic/apic_agent_poll_interval ml2_cisco
 ml2_cisco_apic/apic_agent_report_interval ml2_cisco
 ml2_cisco_apic/apic_app_profile_name ml2_cisco
diff --git a/tools/autogenerate-config-flagmappings/neutron.headers b/tools/autogenerate-config-flagmappings/neutron.headers
index ce9df5b83f..7b56a94477 100644
--- a/tools/autogenerate-config-flagmappings/neutron.headers
+++ b/tools/autogenerate-config-flagmappings/neutron.headers
@@ -11,6 +11,8 @@ hyperv_agent HyperV agent
 ipv6_ra IPv6 router advertisement
 l3_agent L3 agent
 l3_arista Arista layer-3 service plug-in
+l3_brocade_mlx Brocade MLX L3 plug-in
+l3_brocade_mlx_switch Brocade MLX L3 switch
 linuxbridge_agent Linux Bridge agent
 meta meta
 metering_agent metering agent
@@ -19,6 +21,8 @@ ml2 ML2
 ml2_arista ML2 Arista mechanism driver
 ml2_bigswitch ML2 BigSwitch  mechanism driver
 ml2_brocade ML2 Brocade mechanism driver
+ml2_brocade_fi_ni ML2 Brocade MLX ICX mechanism driver
+ml2_brocade_fi_ni_switch ML2 Brocade MLX ICX switch
 ml2_cisco ML2 Cisco mechanism driver
 ml2_flat ML2 Flat mechanism driver
 ml2_fslsdn ML2 Freescale SDN mechanism driver