From e98e44bace69ebd28ac4c723c33c2c0985fb0c76 Mon Sep 17 00:00:00 2001 From: Viacheslav Ovsiienko Date: Wed, 7 Aug 2019 12:57:47 +0000 Subject: [PATCH] doc: update Tx inline settings in mlx5 guide This patch updates mlx5 documentation in parts: - txq_inline_min parameter is described in more details, values are fixed - maximal amount of segments in multi-segment packets. Fixes: 38b4b397a57d ("net/mlx5: add Tx configuration and setup") Signed-off-by: Viacheslav Ovsiienko Acked-by: Raslan Darawsheh --- doc/guides/nics/mlx5.rst | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index f7a076fb31..d6082ac4d3 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -124,9 +124,10 @@ Limitations Will match any ipv4 packet (VLAN included). -- A multi segment packet must have less than 6 segments in case the Tx burst function - is set to multi-packet send or Enhanced multi-packet send. Otherwise it must have - less than 50 segments. +- A multi segment packet must have not more segments than reported by dev_infos_get() + in tx_desc_lim.nb_seg_max field. This value depends on maximal supported Tx descriptor + size and ``txq_inline_min`` settings and may be from 2 (worst case forced by maximal + inline settings) to 58. - Flows with a VXLAN Network Identifier equal (or ends to be equal) to 0 are not supported. @@ -403,25 +404,31 @@ Run-time configuration Minimal amount of data to be inlined into WQE during Tx operations. NICs may require this minimal data amount to operate correctly. The exact value - may depend on NIC operation mode, requested offloads, etc. + may depend on NIC operation mode, requested offloads, etc. It is strongly + recommended to omit this parameter and use the default values. Anyway, + applications using this parameter should take into consideration that + specifying an inconsistent value may prevent the NIC from sending packets. If ``txq_inline_min`` key is present the specified value (may be aligned by the driver in order not to exceed the limits and provide better descriptor - space utilization) will be used by the driver and it is guaranteed the - requested data bytes are inlined into the WQE beside other inline settings. - This keys also may update ``txq_inline_max`` value (default of specified - explicitly in devargs) to reserve the space for inline data. + space utilization) will be used by the driver and it is guaranteed that + requested amount of data bytes are inlined into the WQE beside other inline + settings. This key also may update ``txq_inline_max`` value (default + or specified explicitly in devargs) to reserve the space for inline data. If ``txq_inline_min`` key is not present, the value may be queried by the driver from the NIC via DevX if this feature is available. If there is no DevX enabled/supported the value 18 (supposing L2 header including VLAN) is set - for ConnectX-4, value 58 (supposing L2-L4 headers, required by configurations - over E-Switch) is set for ConnectX-4 Lx, and 0 is set by default for ConnectX-5 + for ConnectX-4 and ConnectX-4LX, and 0 is set by default for ConnectX-5 and newer NICs. If packet is shorter the ``txq_inline_min`` value, the entire packet is inlined. - For the ConnectX-4 and ConnectX-4 Lx NICs driver does not allow to set - this value below 18 (minimal L2 header, including VLAN). + For ConnectX-4 NIC, driver does not allow specifying value below 18 + (minimal L2 header, including VLAN), error will be raised. + + For ConnectX-4LX NIC, it is allowed to specify values below 18, but + it is not recommended and may prevent NIC from sending packets over + some configurations. Please, note, this minimal data inlining disengages eMPW feature (Enhanced Multi-Packet Write), because last one does not support partial packet inlining. -- 2.20.1