X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fmlx5.rst;h=66794e691bd22f05f698f37dc6fab8431812f3a4;hb=88ac2fd99fa06419c5b95ad662dc1e618bd8ac49;hp=2d68914408e64da0683c832a96156249738e812a;hpb=1ca601d160fc9ec56847c772526576f425159991;p=dpdk.git diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index 2d68914408..66794e691b 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -31,7 +31,7 @@ MLX5 poll mode driver ===================== The MLX5 poll mode driver library (**librte_pmd_mlx5**) provides support for -**Mellanox ConnectX-4 EN** and **Mellanox ConnectX-4 Lx EN** families of +**Mellanox ConnectX-4** and **Mellanox ConnectX-4 Lx** families of 10/25/40/50/100 Gb/s adapters as well as their virtual functions (VF) in SR-IOV context. @@ -48,11 +48,6 @@ There is also a `section dedicated to this poll mode driver be enabled manually by setting ``CONFIG_RTE_LIBRTE_MLX5_PMD=y`` and recompiling DPDK. -.. warning:: - - ``CONFIG_RTE_BUILD_COMBINE_LIBS`` with ``CONFIG_RTE_BUILD_SHARED_LIB`` - is not supported and thus the compilation will fail with this configuration. - Implementation details ---------------------- @@ -78,19 +73,23 @@ Features - Multiple TX and RX queues. - Support for scattered TX and RX frames. -- IPv4, TCPv4 and UDPv4 RSS on any number of queues. +- IPv4, IPv6, TCPv4, TCPv6, UDPv4 and UDPv6 RSS on any number of queues. - Several RSS hash keys, one for each flow type. +- Configurable RETA table. - Support for multiple MAC addresses. - VLAN filtering. - Promiscuous mode. +- Multicast promiscuous mode. +- Hardware checksum offloads. Limitations ----------- -- IPv6 and inner VXLAN RSS are not supported yet. +- KVM and VMware ESX SR-IOV modes are not supported yet. +- Inner RSS for VXLAN frames is not supported yet. - Port statistics through software counters only. -- No allmulticast mode. -- Hardware checksum offloads are not supported yet. +- Hardware checksum offloads for VXLAN inner header are not supported yet. +- Secondary processes are not supported yet. Configuration ------------- @@ -119,8 +118,13 @@ These options can be modified in the ``.config`` file. - ``CONFIG_RTE_LIBRTE_MLX5_MAX_INLINE`` (default **0**) - Amount of data to be inlined during TX operations. Improves latency but - lowers throughput. + Amount of data to be inlined during TX operations. Improves latency. + Can improve PPS performance when PCI backpressure is detected and may be + useful for scenarios involving heavy traffic on many queues. + + Since the additional software logic necessary to handle this mode can + lower performance when there is no backpressure, it is not enabled by + default. - ``CONFIG_RTE_LIBRTE_MLX5_TX_MP_CACHE`` (default **8**) @@ -130,6 +134,19 @@ These options can be modified in the ``.config`` file. This value is always 1 for RX queues since they use a single MP. +Environment variables +~~~~~~~~~~~~~~~~~~~~~ + +- ``MLX5_ENABLE_CQE_COMPRESSION`` + + A nonzero value lets ConnectX-4 return smaller completion entries to + improve performance when PCI backpressure is detected. It is most useful + for scenarios involving heavy traffic on many queues. + + Since the additional software logic necessary to handle this mode can + lower performance when there is no backpressure, it is not enabled by + default. + Run-time configuration ~~~~~~~~~~~~~~~~~~~~~~ @@ -192,10 +209,26 @@ DPDK and must be installed separately: Currently supported by DPDK: -- Mellanox OFED **3.1**. +- Mellanox OFED **3.1-1.0.3** or **3.1-1.5.7.1** depending on usage. + + The following features are supported with version **3.1-1.5.7.1** and + above only: + + - IPv6, UPDv6, TCPv6 RSS. + - RX checksum offloads. + - IBM POWER8. + - Minimum firmware version: - - ConnectX-4: **12.12.0780**. - - ConnectX-4 Lx: **14.12.0780**. + + With MLNX_OFED **3.1-1.0.3**: + + - ConnectX-4: **12.12.1240** + - ConnectX-4 Lx: **14.12.1100** + + With MLNX_OFED **3.1-1.5.7.1**: + + - ConnectX-4: **12.13.0144** + - ConnectX-4 Lx: **14.13.0144** Getting Mellanox OFED ~~~~~~~~~~~~~~~~~~~~~ @@ -217,6 +250,23 @@ required from that distribution. this DPDK release was developed and tested against is strongly recommended. Please check the `prerequisites`_. +Notes for testpmd +----------------- + +Compared to librte_pmd_mlx4 that implements a single RSS configuration per +port, librte_pmd_mlx5 supports per-protocol RSS configuration. + +Since ``testpmd`` defaults to IP RSS mode and there is currently no +command-line parameter to enable additional protocols (UDP and TCP as well +as IP), the following commands must be entered from its CLI to get the same +behavior as librte_pmd_mlx4: + +.. code-block:: console + + > port stop all + > port config all rss all + > port start all + Usage example ------------- @@ -229,6 +279,13 @@ devices managed by librte_pmd_mlx5. modprobe -a ib_uverbs mlx5_core mlx5_ib + Alternatively if MLNX_OFED is fully installed, the following script can + be run: + + .. code-block:: console + + /etc/init.d/openibd restart + .. note:: User space I/O kernel modules (uio and igb_uio) are not used and do