From: Moti Haimovsky Date: Thu, 9 Nov 2017 17:30:56 +0000 (+0200) Subject: doc: update mlx4 documentation X-Git-Tag: spdx-start~842 X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=8cfe3aaf34934a15610ea7a811312a47fa0e0a14 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 Acked-by: Adrien Mazarguil --- diff --git a/doc/guides/nics/mlx4.rst b/doc/guides/nics/mlx4.rst index 7c431778bc..22341b904d 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. -Features --------- - -- Multi arch support: x86_64 and POWER8. -- Link state information is provided. -- RX interrupts. - 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 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 queues. -- **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 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. + +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`: https://raw.githubusercontent.com/linux-rdma/rdma-core/master/README.md -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`: http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers .. 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 connectx_port_config - Or in the manual way: +5. Continue with :ref:`section 2 of the Quick Start Guide `. + +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 ` Performance tuning diff --git a/doc/guides/rel_notes/release_17_11.rst b/doc/guides/rel_notes/release_17_11.rst index e6e4407cb4..c7d88268d3 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 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 the mlx5 driver including the following changes: