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 https://github.com/linux-rdma/rdma-core/releases)
  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 http://www.mellanox.com/page/products_dyn?product_family=26).

Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
This commit is contained in:
Moti Haimovsky 2017-11-09 19:30:56 +02:00 committed by Thomas Monjalon
parent b280c98f70
commit 8cfe3aaf34
2 changed files with 76 additions and 39 deletions

View File

@ -74,13 +74,6 @@ long as they share the same MAC address.
Compiling librte_pmd_mlx4 causes DPDK to be linked against libibverbs. Compiling librte_pmd_mlx4 causes DPDK to be linked against libibverbs.
Features
--------
- Multi arch support: x86_64 and POWER8.
- Link state information is provided.
- RX interrupts.
Configuration Configuration
------------- -------------
@ -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 allocations and initialization. The following dependencies are not part of
DPDK and must be installed separately: 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 User space verbs framework used by librte_pmd_mlx4. This library provides
a generic interface between the kernel and low-level user space drivers 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 resources allocations) to be managed by the kernel and fast operations to
never leave user space. never leave user space.
- **libmlx4** - **libmlx4** (provided by rdma-core package)
Low-level user space driver library for Mellanox ConnectX-3 devices, Low-level user space driver library for Mellanox ConnectX-3 devices,
it is automatically loaded by libibverbs. 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 This library basically implements send/receive calls to the hardware
queues. queues.
- **Kernel modules** (mlnx-ofed-kernel) - **Kernel modules**
They provide the kernel-side verbs API and low level device drivers that They provide the kernel-side verbs API and low level device drivers that
manage actual hardware initialization and resources sharing with user 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 Both libraries are BSD and GPL licensed. Linux kernel modules are GPL
licensed. licensed.
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.
- Mellanox OFED **4.1**. Current RDMA core package and Linux kernel (recommended)
- Firmware version **2.36.5000** and above. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Getting Mellanox OFED - Minimal Linux kernel version: 4.14.
~~~~~~~~~~~~~~~~~~~~~ - Minimal RDMA core version: v15 (see `RDMA core installation documentation`_).
While these libraries and kernel modules are available on OpenFabrics .. _`RDMA core installation documentation`: https://raw.githubusercontent.com/linux-rdma/rdma-core/master/README.md
Alliance's `website <https://www.openfabrics.org/>`_ 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 .. _Mellanox_OFED_as_a_fallback:
<http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers>`_
includes the necessary support and should be used in the meantime. For DPDK, Mellanox OFED as a fallback
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`: http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers
.. note:: .. note::
@ -229,15 +225,10 @@ required from that distribution.
this DPDK release was developed and tested against is strongly this DPDK release was developed and tested against is strongly
recommended. Please check the `prerequisites`_. recommended. Please check the `prerequisites`_.
Supported NICs Installing Mellanox OFED
-------------- ^^^^^^^^^^^^^^^^^^^^^^^^
* Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2*40G) 1. Download latest Mellanox OFED.
Quick Start Guide
-----------------
1. Download latest Mellanox OFED. For more info check the `prerequisites`_.
2. Install the required libraries and kernel modules either by installing 2. Install the required libraries and kernel modules either by installing
only the required set, or by installing the entire Mellanox OFED: only the required set, or by installing the entire Mellanox OFED:
@ -246,19 +237,19 @@ Quick Start Guide
.. code-block:: console .. code-block:: console
./mlnxofedinstall ./mlnxofedinstall --dpdk --upstream-libs
For SR-IOV hypervisors use: For SR-IOV hypervisors use:
.. code-block:: console .. code-block:: console
./mlnxofedinstall --enable-sriov -hypervisor ./mlnxofedinstall --dpdk --upstream-libs --enable-sriov --hypervisor
For SR-IOV virtual machine use: For SR-IOV virtual machine use:
.. code-block:: console .. code-block:: console
./mlnxofedinstall --guest ./mlnxofedinstall --dpdk --upstream-libs --guest
3. Verify the firmware is the correct one: 3. Verify the firmware is the correct one:
@ -272,7 +263,19 @@ Quick Start Guide
connectx_port_config connectx_port_config
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 .. 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_port0"
echo eth > "/sys/bus/pci/devices/$PCI/mlx4_port1" 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``: by adding the following line to ``/etc/modprobe.d/mlx4_core.conf``:
.. code-block:: console .. code-block:: console
@ -292,7 +303,7 @@ Quick Start Guide
If VLAN filtering is used, set log_num_mgm_entry_size=-1. If VLAN filtering is used, set log_num_mgm_entry_size=-1.
Performance degradation can occur on this case. Performance degradation can occur on this case.
6. Restart the driver: 3. Restart the driver:
.. code-block:: console .. code-block:: console
@ -304,7 +315,7 @@ Quick Start Guide
service openibd restart 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>` :ref:`Development Kit Build System <Development_Kit_Build_System>`
Performance tuning Performance tuning

View File

@ -59,6 +59,32 @@ New Features
"Network Interface Controller Drivers" document for more details on this new "Network Interface Controller Drivers" document for more details on this new
driver. driver.
* **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 mlx5 driver.**
Updated the mlx5 driver including the following changes: Updated the mlx5 driver including the following changes: