diff options
authorMoti Haimovsky <>2017-11-09 19:30:56 +0200
committerThomas Monjalon <>2017-11-12 05:02:42 +0100
commit8cfe3aaf34934a15610ea7a811312a47fa0e0a14 (patch)
parentb280c98f70719285d3f1b6516813f63fe4173875 (diff)
doc: update mlx4 documentation
This updates mlx4 documentation and DPDK release notes to reflect the PMD support for rdma-core from linux-rdma. - PMD is now freed from Mellanox OFED and now only depends on the public rdma-core package (v15 and above) instead. (see This PMD should run under Linux v4.14 and above. - In case any of the above requirements can't be satisfied, Mellanox OFED v4.2 and above also provide an updated rdma-core as well back-ported kernel modules for most Linux distributions and previous Linux versions. (see Signed-off-by: Moti Haimovsky <> Acked-by: Adrien Mazarguil <>
2 files changed, 76 insertions, 39 deletions
diff --git a/doc/guides/nics/mlx4.rst b/doc/guides/nics/mlx4.rst
index 7c43177..22341b9 100644
--- a/doc/guides/nics/mlx4.rst
+++ b/doc/guides/nics/mlx4.rst
@@ -74,13 +74,6 @@ long as they share the same MAC address.
Compiling librte_pmd_mlx4 causes DPDK to be linked against libibverbs.
-- Multi arch support: x86_64 and POWER8.
-- Link state information is provided.
-- RX interrupts.
@@ -160,7 +153,7 @@ This driver relies on external libraries and kernel drivers for resources
allocations and initialization. The following dependencies are not part of
DPDK and must be installed separately:
-- **libibverbs**
+- **libibverbs** (provided by rdma-core package)
User space verbs framework used by librte_pmd_mlx4. This library provides
a generic interface between the kernel and low-level user space drivers
@@ -170,7 +163,7 @@ DPDK and must be installed separately:
resources allocations) to be managed by the kernel and fast operations to
never leave user space.
-- **libmlx4**
+- **libmlx4** (provided by rdma-core package)
Low-level user space driver library for Mellanox ConnectX-3 devices,
it is automatically loaded by libibverbs.
@@ -178,7 +171,7 @@ DPDK and must be installed separately:
This library basically implements send/receive calls to the hardware
-- **Kernel modules** (mlnx-ofed-kernel)
+- **Kernel modules**
They provide the kernel-side verbs API and low level device drivers that
manage actual hardware initialization and resources sharing with user
@@ -204,24 +197,27 @@ DPDK and must be installed separately:
Both libraries are BSD and GPL licensed. Linux kernel modules are GPL
-Currently supported by DPDK:
+Depending on system constraints and user preferences either RDMA core library
+with a recent enough Linux kernel release (recommended) or Mellanox OFED,
+which provides compatibility with older releases.
+Current RDMA core package and Linux kernel (recommended)
+- Minimal Linux kernel version: 4.14.
+- Minimal RDMA core version: v15 (see `RDMA core installation documentation`_).
-- Mellanox OFED **4.1**.
-- Firmware version **2.36.5000** and above.
+.. _`RDMA core installation documentation`:
-Getting Mellanox OFED
+.. _Mellanox_OFED_as_a_fallback:
-While these libraries and kernel modules are available on OpenFabrics
-Alliance's `website <>`_ and provided by package
-managers on most distributions, this PMD requires Ethernet extensions that
-may not be supported at the moment (this is a work in progress).
+Mellanox OFED as a fallback
-`Mellanox OFED
-includes the necessary support and should be used in the meantime. For DPDK,
-only libibverbs, libmlx4, mlnx-ofed-kernel packages and firmware updates are
-required from that distribution.
+- `Mellanox OFED`_ version: **4.2**.
+- firmware version: **2.42.5000** and above.
+.. _`Mellanox OFED`:
.. note::
@@ -229,15 +225,10 @@ required from that distribution.
this DPDK release was developed and tested against is strongly
recommended. Please check the `prerequisites`_.
-Supported NICs
+Installing Mellanox OFED
-* Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2*40G)
-Quick Start Guide
-1. Download latest Mellanox OFED. For more info check the `prerequisites`_.
+1. Download latest Mellanox OFED.
2. Install the required libraries and kernel modules either by installing
only the required set, or by installing the entire Mellanox OFED:
@@ -246,19 +237,19 @@ Quick Start Guide
.. code-block:: console
- ./mlnxofedinstall
+ ./mlnxofedinstall --dpdk --upstream-libs
For SR-IOV hypervisors use:
.. code-block:: console
- ./mlnxofedinstall --enable-sriov -hypervisor
+ ./mlnxofedinstall --dpdk --upstream-libs --enable-sriov --hypervisor
For SR-IOV virtual machine use:
.. code-block:: console
- ./mlnxofedinstall --guest
+ ./mlnxofedinstall --dpdk --upstream-libs --guest
3. Verify the firmware is the correct one:
@@ -272,7 +263,19 @@ Quick Start Guide
- Or in the manual way:
+5. Continue with :ref:`section 2 of the Quick Start Guide <QSG_2>`.
+Supported NICs
+* Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2*40G)
+.. _qsg:
+Quick Start Guide
+1. Set all ports links to Ethernet
.. code-block:: console
@@ -280,7 +283,15 @@ Quick Start Guide
echo eth > "/sys/bus/pci/devices/$PCI/mlx4_port0"
echo eth > "/sys/bus/pci/devices/$PCI/mlx4_port1"
-5. In case of bare metal or hypervisor, configure optimized steering mode
+ .. note::
+ If using Mellanox OFED one can permanently set the port link
+ to Ethernet using connectx_port_config tool provided by it.
+ :ref:`Mellanox_OFED_as_a_fallback`:
+.. _QSG_2:
+2. In case of bare metal or hypervisor, configure optimized steering mode
by adding the following line to ``/etc/modprobe.d/mlx4_core.conf``:
.. code-block:: console
@@ -292,7 +303,7 @@ Quick Start Guide
If VLAN filtering is used, set log_num_mgm_entry_size=-1.
Performance degradation can occur on this case.
-6. Restart the driver:
+3. Restart the driver:
.. code-block:: console
@@ -304,7 +315,7 @@ Quick Start Guide
service openibd restart
-7. Compile DPDK and you are ready to go. See instructions on
+4. Compile DPDK and you are ready to go. See instructions on
:ref:`Development Kit Build System <Development_Kit_Build_System>`
Performance tuning
diff --git a/doc/guides/rel_notes/release_17_11.rst b/doc/guides/rel_notes/release_17_11.rst
index e6e4407..c7d8826 100644
--- a/doc/guides/rel_notes/release_17_11.rst
+++ b/doc/guides/rel_notes/release_17_11.rst
@@ -59,6 +59,32 @@ New Features
"Network Interface Controller Drivers" document for more details on this new
+* **Updated mlx4 driver.**
+ Updated the mlx4 driver including the following changes:
+ * Isolated mode (rte_flow) can now be enabled anytime, not only during
+ initial device configuration.
+ * Flow rules now support up to 4096 priority levels usable at will by
+ applications.
+ * Enhanced error message to help debugging invalid/unsupported flow rules.
+ * Flow rules matching all multicast and promiscuous traffic are now allowed.
+ * No more software restrictions on flow rules with the RSS action, their
+ configuration is much more flexible.
+ * Significantly reduced memory footprint for Rx and Tx queue objects.
+ * While supported, UDP RSS is temporarily disabled due to a remaining issue
+ with its support in the Linux kernel.
+ * The new RSS implementation does not automatically spread traffic according
+ to the inner packet of VXLAN frames anymore, only the outer one (like
+ other PMDs).
+ * Partial (Tx only) support for secondary processes was broken and had to be
+ removed.
+ * Refactored driver to get rid of dependency on the components provided by
+ Mellanox OFED and instead rely on the current and public rdma-core
+ package and Linux version from now on.
+ * Removed compile-time limitation on number of device instances the PMD
+ can support.
* **Updated mlx5 driver.**
Updated the mlx5 driver including the following changes: