X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fmlx5.rst;h=b0614ae335668b2ae8bd7f97a90f2f26a816ccbd;hb=1736219b3c5737c943620c22121b361e35b18d0d;hp=bb03df66a84a8aede195d91ed9e279d2c752362a;hpb=69faa84160213076e5f707ec97b3c57a3b0cc11f;p=dpdk.git diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index bb03df66a8..b0614ae335 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -241,6 +241,32 @@ Limitations reduce the requested Tx size or adjust data inline settings with ``txq_inline_max`` and ``txq_inline_mpw`` devargs keys. +- To provide the packet send scheduling on mbuf timestamps the ``tx_pp`` + parameter should be specified, RTE_MBUF_DYNFIELD_TIMESTAMP_NAME and + RTE_MBUF_DYNFLAG_TIMESTAMP_NAME should be registered by application. + When PMD sees the RTE_MBUF_DYNFLAG_TIMESTAMP_NAME set on the packet + being sent it tries to synchronize the time of packet appearing on + the wire with the specified packet timestamp. It the specified one + is in the past it should be ignored, if one is in the distant future + it should be capped with some reasonable value (in range of seconds). + These specific cases ("too late" and "distant future") can be optionally + reported via device xstats to assist applications to detect the + time-related problems. + + The timestamp upper "too-distant-future" limit + at the moment of invoking the Tx burst routine + can be estimated as ``tx_pp`` option (in nanoseconds) multiplied by 2^23. + Please note, for the testpmd txonly mode, + the limit is deduced from the expression:: + + (n_tx_descriptors / burst_size + 1) * inter_burst_gap + + There is no any packet reordering according timestamps is supposed, + neither within packet burst, nor between packets, it is an entirely + application responsibility to generate packets and its timestamps + in desired order. The timestamps can be put only in the first packet + in the burst providing the entire burst scheduling. + - E-Switch decapsulation Flow: - can be applied to PF port only. @@ -279,6 +305,12 @@ Limitations Other TCP packets (e.g. with MPLS label) received on Rx queue with LRO enabled, will be received with bad checksum. +- CRC: + + - ``DEV_RX_OFFLOAD_KEEP_CRC`` cannot be supported with decapsulation + for some NICs (such as ConnectX-6 Dx and BlueField 2). + The capability bit ``scatter_fcs_w_decap_disable`` shows NIC support. + Statistics ---------- @@ -489,7 +521,7 @@ Driver options value is not in the range of device capability, the default value will be set with a warning message. The default value is 11 which is 2048 bytes per a stride, valid only if ``mprq_en`` is set. With ``mprq_log_stride_size`` set - it is possible for a pcaket to span across multiple strides. This mode allows + it is possible for a packet to span across multiple strides. This mode allows support of jumbo frames (9K) with MPRQ. The memcopy of some packets (or part of a packet if Rx scatter is configured) may be required in case there is no space left for a head room at the end of a stride which incurs some @@ -700,6 +732,25 @@ Driver options variable "MLX5_SHUT_UP_BF" value is used. If there is no "MLX5_SHUT_UP_BF", the default ``tx_db_nc`` value is zero for ARM64 hosts and one for others. +- ``tx_pp`` parameter [int] + + If a nonzero value is specified the driver creates all necessary internal + objects to provide accurate packet send scheduling on mbuf timestamps. + The positive value specifies the scheduling granularity in nanoseconds, + the packet send will be accurate up to specified digits. The allowed range is + from 500 to 1 million of nanoseconds. The negative value specifies the module + of granularity and engages the special test mode the check the schedule rate. + By default (if the ``tx_pp`` is not specified) send scheduling on timestamps + feature is disabled. + +- ``tx_skew`` parameter [int] + + The parameter adjusts the send packet scheduling on timestamps and represents + the average delay between beginning of the transmitting descriptor processing + by the hardware and appearance of actual packet data on the wire. The value + should be provided in nanoseconds and is valid only if ``tx_pp`` parameter is + specified. The default value is zero. + - ``tx_vec_en`` parameter [int] A nonzero value enables Tx vector on ConnectX-5, ConnectX-6, ConnectX-6 Dx @@ -796,6 +847,16 @@ Driver options Enabled by default if supported. +- ``lacp_by_user`` parameter [int] + + A nonzero value enables the control of LACP traffic by the user application. + When a bond exists in the driver, by default it should be managed by the + kernel and therefore LACP traffic should be steered to the kernel. + If this devarg is set to 1 it will allow the user to manage the bond by + itself and not steer LACP traffic to the kernel. + + Disabled by default (set to 0). + - ``mr_ext_memseg_en`` parameter [int] A nonzero value enables extending memseg when registering DMA memory. If @@ -849,6 +910,42 @@ Driver options By default, the PMD will set this value to 16, which means that 9KB jumbo frames will be supported. +- ``reclaim_mem_mode`` parameter [int] + + Cache some resources in flow destroy will help flow recreation more efficient. + While some systems may require the all the resources can be reclaimed after + flow destroyed. + The parameter ``reclaim_mem_mode`` provides the option for user to configure + if the resource cache is needed or not. + + There are three options to choose: + + - 0. It means the flow resources will be cached as usual. The resources will + be cached, helpful with flow insertion rate. + + - 1. It will only enable the DPDK PMD level resources reclaim. + + - 2. Both DPDK PMD level and rdma-core low level will be configured as + reclaimed mode. + + By default, the PMD will set this value to 0. + +- ``sys_mem_en`` parameter [int] + + A non-zero value enables the PMD memory management allocating memory + from system by default, without explicit rte memory flag. + + By default, the PMD will set this value to 0. + +- ``decap_en`` parameter [int] + + Some devices do not support FCS (frame checksum) scattering for + tunnel-decapsulated packets. + If set to 0, this option forces the FCS feature and rejects tunnel + decapsulation in the flow engine for such devices. + + By default, the PMD will set this value to 1. + .. _mlx5_firmware_config: Firmware configuration @@ -926,6 +1023,11 @@ Below are some firmware configurations listed. FLEX_PARSER_PROFILE_ENABLE=3 +- enable eCPRI flow matching:: + + FLEX_PARSER_PROFILE_ENABLE=4 + PROG_PARSE_GRAPH=1 + Prerequisites ------------- @@ -1145,8 +1247,8 @@ Quick Start Guide on OFED/EN echo [num_vfs] > /sys/class/infiniband/mlx5_0/device/sriov_numvfs -6. Compile DPDK and you are ready to go. See instructions on - :ref:`Development Kit Build System ` +6. Install DPDK and you are ready to go. + See :doc:`compilation instructions <../linux_gsg/build_dpdk>`. Enable switchdev mode ---------------------