-.. _mlx5_firmware_config:
-
-Firmware configuration
-~~~~~~~~~~~~~~~~~~~~~~
-
-Firmware features can be configured as key/value pairs.
-
-The command to set a value is::
-
- mlxconfig -d <device> set <key>=<value>
-
-The command to query a value is::
-
- mlxconfig -d <device> query | grep <key>
-
-The device name for the command ``mlxconfig`` can be either the PCI address,
-or the mst device name found with::
-
- mst status
-
-Below are some firmware configurations listed.
-
-- link type::
-
- LINK_TYPE_P1
- LINK_TYPE_P2
- value: 1=Infiniband 2=Ethernet 3=VPI(auto-sense)
-
-- enable SR-IOV::
-
- SRIOV_EN=1
-
-- maximum number of SR-IOV virtual functions::
-
- NUM_OF_VFS=<max>
-
-- enable DevX (required by Direct Rules and other features)::
-
- UCTX_EN=1
-
-- aggressive CQE zipping::
-
- CQE_COMPRESSION=1
-
-- L3 VXLAN and VXLAN-GPE destination UDP port::
-
- IP_OVER_VXLAN_EN=1
- IP_OVER_VXLAN_PORT=<udp dport>
-
-- enable VXLAN-GPE tunnel flow matching::
-
- FLEX_PARSER_PROFILE_ENABLE=0
- or
- FLEX_PARSER_PROFILE_ENABLE=2
-
-- enable IP-in-IP tunnel flow matching::
-
- FLEX_PARSER_PROFILE_ENABLE=0
-
-- enable MPLS flow matching::
-
- FLEX_PARSER_PROFILE_ENABLE=1
-
-- enable ICMP(code/type/identifier/sequence number) / ICMP6(code/type) fields matching::
-
- FLEX_PARSER_PROFILE_ENABLE=2
-
-- enable Geneve flow matching::
-
- FLEX_PARSER_PROFILE_ENABLE=0
- or
- FLEX_PARSER_PROFILE_ENABLE=1
-
-- enable Geneve TLV option flow matching::
-
- FLEX_PARSER_PROFILE_ENABLE=0
-
-- enable GTP flow matching::
-
- FLEX_PARSER_PROFILE_ENABLE=3
-
-- enable eCPRI flow matching::
-
- FLEX_PARSER_PROFILE_ENABLE=4
- PROG_PARSE_GRAPH=1
-
-- enable dynamic flex parser for flex item::
-
- FLEX_PARSER_PROFILE_ENABLE=4
- PROG_PARSE_GRAPH=1
-
-- enable realtime timestamp format::
-
- REAL_TIME_CLOCK_ENABLE=1
-
-Linux Prerequisites
--------------------
-
-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**
-
- User space Verbs framework used by librte_net_mlx5. This library provides
- a generic interface between the kernel and low-level user space drivers
- such as libmlx5.
-
- It allows slow and privileged operations (context initialization, hardware
- resources allocations) to be managed by the kernel and fast operations to
- never leave user space.
-
-- **libmlx5**
-
- Low-level user space driver library for Mellanox
- ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices, it is automatically loaded
- by libibverbs.
-
- This library basically implements send/receive calls to the hardware
- queues.
-
-- **Kernel modules**
-
- They provide the kernel-side Verbs API and low level device drivers that
- manage actual hardware initialization and resources sharing with user
- space processes.
-
- Unlike most other PMDs, these modules must remain loaded and bound to
- their devices:
-
- - mlx5_core: hardware driver managing Mellanox
- ConnectX-4/ConnectX-5/ConnectX-6/BlueField devices and related Ethernet kernel
- network devices.
- - mlx5_ib: InifiniBand device driver.
- - ib_uverbs: user space driver for Verbs (entry point for libibverbs).
-
-- **Firmware update**
-
- Mellanox OFED/EN releases include firmware updates for
- ConnectX-4/ConnectX-5/ConnectX-6/BlueField adapters.
-
- Because each release provides new features, these updates must be applied to
- match the kernel modules and libraries they come with.
-
-.. note::
-
- Both libraries are BSD and GPL licensed. Linux kernel modules are GPL
- licensed.
-
-Installation
-~~~~~~~~~~~~
-
-Either RDMA Core library with a recent enough Linux kernel release
-(recommended) or Mellanox OFED/EN, which provides compatibility with older
-releases.
-
-RDMA Core with Linux Kernel
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-- Minimal kernel version : v4.14 or the most recent 4.14-rc (see `Linux installation documentation`_)
-- Minimal rdma-core version: v15+ commit 0c5f5765213a ("Merge pull request #227 from yishaih/tm")
- (see `RDMA Core installation documentation`_)
-- When building for i686 use:
-
- - rdma-core version 18.0 or above built with 32bit support.
- - Kernel version 4.14.41 or above.
-
-- Starting with rdma-core v21, static libraries can be built::
-
- cd build
- CFLAGS=-fPIC cmake -DIN_PLACE=1 -DENABLE_STATIC=1 -GNinja ..
- ninja
-
-.. _`Linux installation documentation`: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/plain/Documentation/admin-guide/README.rst
-.. _`RDMA Core installation documentation`: https://raw.githubusercontent.com/linux-rdma/rdma-core/master/README.md
-
-
-Mellanox OFED/EN
-^^^^^^^^^^^^^^^^
-
-- Mellanox OFED version: **4.5** and above /
- Mellanox EN version: **4.5** and above
-- firmware version:
-
- - ConnectX-4: **12.21.1000** and above.
- - ConnectX-4 Lx: **14.21.1000** and above.
- - ConnectX-5: **16.21.1000** and above.
- - ConnectX-5 Ex: **16.21.1000** and above.
- - ConnectX-6: **20.27.0090** and above.
- - ConnectX-6 Dx: **22.27.0090** and above.
- - BlueField: **18.25.1010** and above.
-
-While these libraries and kernel modules are available on OpenFabrics
-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
-<http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux>`__ and
-`Mellanox EN
-<http://www.mellanox.com/page/products_dyn?product_family=27&mtag=linux>`__
-include the necessary support and should be used in the meantime. For DPDK,
-only libibverbs, libmlx5, mlnx-ofed-kernel packages and firmware updates are
-required from that distribution.
-
-.. note::
-
- Several versions of Mellanox OFED/EN are available. Installing the version
- this DPDK release was developed and tested against is strongly
- recommended. Please check the `linux prerequisites`_.
-
-Windows Prerequisites
----------------------
-
-This driver relies on external libraries and kernel drivers for resources
-allocations and initialization. The dependencies in the following sub-sections
-are not part of DPDK, and must be installed separately.
-
-Compilation Prerequisites
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-DevX SDK installation
-^^^^^^^^^^^^^^^^^^^^^
-
-The DevX SDK must be installed on the machine building the Windows PMD.
-Additional information can be found at
-`How to Integrate Windows DevX in Your Development Environment
-<https://docs.mellanox.com/display/winof2v250/RShim+Drivers+and+Usage#RShimDriversandUsage-DevXInterface>`__.
-
-Runtime Prerequisites
-~~~~~~~~~~~~~~~~~~~~~
-
-WinOF2 version 2.60 or higher must be installed on the machine.
-
-WinOF2 installation
-^^^^^^^^^^^^^^^^^^^
-
-The driver can be downloaded from the following site:
-`WINOF2
-<https://www.mellanox.com/products/adapter-software/ethernet/windows/winof-2>`__
-
-DevX Enablement
-^^^^^^^^^^^^^^^
-
-DevX for Windows must be enabled in the Windows registry.
-The keys ``DevxEnabled`` and ``DevxFsRules`` must be set.
-Additional information can be found in the WinOF2 user manual.