Changes and New Features
The following are the changes and/or new features that have been added to this version of MLNX_OFED.
Feature/Change |
Description |
Supported NICs: ConnectX-5 and above |
|
Rx Multi-strides CQE Compression |
Added CQE compression support for Rx multi-strides packets. |
Multi-application QoS |
Added support for configuring QoS on a single QP or on a group of QPs. |
MPLS-over-UDP Hardware Offload Support |
Added support for encap/decap hardware offload of IPv4 traffic over MPLS-over-UDP. This can be used in networks with MPLS routers to achieve more efficient routing. |
Connection Tracking with Hairpin |
Added support for adding connection tracking rules on VFs to forward traffic from one VF to the other. |
sFlow Sampling Rules Offload |
Added support for offloading sFlow sampling rules. |
Supported NICs: BlueField/BlueField-2, ConnectX-5 & ConnectX-6 Dx |
|
mlx5dv_dr Software Steering Parallel Rules Insertion |
Added support for a locking mechanism to enable parallel insertion of rules into the software steering using the mlx5dv_dr API. The parallel insertion improves the insertion rate and takes place when adding Rx and Tx rules via the FDB domain. |
mlx5dv_dr API Matching on Geneve Tunnel |
Added support for the option to match mlx5dv_dr API on Geneve tunnel using a dynamic flex parser. The option header consists of class, type, length and data. The parser should be configured using devx command, after which a rule can be created to match on parser ID and data. |
OVS-DPDK Geneve Encap/Decap |
Added support for Geneve tunneling offload, including matching on extension header. |
OVS-DPDK Parallel Offloads |
Added support for parallel insertion and deletion of offloaded rules using multiple OVS threads. |
Supported NICs: BlueField-2 & ConnectX-6 Dx |
|
GTP-U TEID Modification |
[Beta] Added support to modify GTP-U TEID. This support requires flex parser configuration. |
OVS-DPDK E2E Cache Support |
[Beta] Improved performance of OVS Connection Tracking flows by enabling the merge of the multi-table flow matches and actions into one joint flow. |
Supported NICs: ConnectX-6 Dx and above |
|
Tx Port Time-Stamping |
Transmitted packet timestamping accuracy can be improved when using a timestamp generated at the port level instead of a timestamp generated upon CQE creation. Tx port time-stamping better reflects the actual time of a packet's transmission. This feature is disabled by default. The feature can be enabled or disabled using the following command. ethtool --set-priv-flags <ifs-name> tx_port_ts on / off For further information on this feature, please see Tx Port Time-Stamping.
|
Tunnel Rules Offload |
Added support for offloading tunnel rules when the source interface is VF (in addition to uplink) in the Hypervisor. |
Added support for offloading tunnel rules when the source interface is OpenvSwitch bridge (internal port). |
|
Connection Tracking Mirroring Offload |
Added support for using Mirroring Offload with Connection Tracking. |
mlx5dv_dr API ASO Flow Meter |
Added support for ASO flow meter using the mlx5dv_dr API, which allows for monitoring the packet rate for specific flows. When a packet hits a flow that is connected to a flow meter, the rate of packets through this meter is evaluated, and the packet is marked with a color copied into one of the C registers, according to the current rate compared to the reference rate. |
mlx5dv_dr API ASO First Hit |
Added support for ASO first hit using the mlx5dv_dr API, which allows for tracking rule hits by packets. When a packet hits a rule with the ASO first hit action, a flag is set indicating this event, and the original value of the flag is copied to one of the C registers. |
mlx5dv_dr API GTP-U Extension Header |
Added mlx5dv_dr API support for matching on a new field "gtpu_first_ext_dw_0". This field enables packet filtering based on the GTP-U first extension header (first dword only). To enable parsing of tunnel GTP-U extension header, run the following command. ./cloud_fw_reset.py FLEX_PARSER_PROFILE_ENABLE=3 |
Supported NICs: ConnectX-6 Lx and above |
|
IPsec Offload |
Added IPsec full offload support for extended sequence number, replay protection window and lifetime packet limit. |
Supported NICs: All |
|
Firmware Upgrade |
Firmware upgrade during MLNX_OFED installation is now done on all supported devices simultaneously rather than consecutively. |
RDMA-CM Disassociate Support |
Added support for connecting kernel and RDMA-CM in a reliable way based on device index. |
New Query GID API |
Added support for a new query GID API that allows for querying a single GID entry by its port and GID index, or querying for all GID tables of a specific device. This API works over ioctl instead of sysfs, which accelerates the querying process. |
Multi-Host Firmware Reset |
Added support for performing multi-host firmware reset in order to upgrade the device firmware. Firmware reset loads the new firmware in case it was burnt on the flash and was pending activation, and reloads the current firmware image from the flash in case no new firmware was pending. |
Firmware Live Patching |
[Alpha] Added support for firmware live patching in the driver. Live patching updates the firmware without the need to perform firmware reset. However, it can only be applied in scenarios where the difference between the current and new firmware versions are minor, which is decided upon by the firmware itself. |
Devlink Firmware Reset |
Added support in the devlink tool for performing firmware reset in order to upgrade the device firmware. Firmware reset loads the new firmware in case it was burnt on the flash and was pending activation, and reloads the current firmware image from the flash in case no new firmware was pending. For further information, please refer to the the devlink man page. Note: In order for the firmware reset to run successfully, the following conditions should be met.
Warning
The current MLNX_OFED does not include the latest iproute2 version that provides support for this feature. Therefore, to be able to work with it, make sure to install the latest iproute2 version available on Github.
|
Command Interface Resiliency |
Added a resiliency mechanism for the driver to manually poll the command event queue (EQ) in case of a command timeout. In case the resiliency mechanism finds unhandled event queue entry (EQE) due to a lost interrupt, the driver will handle it, after which the command interface returns to a healthy state. |
Offloaded Traffic Sniffer |
Setting a sniffer private flag is deprecated and no longer required. In order to capture offloaded/RoCE traffic, tcpdump can now be run on the RDMA device. |
Devlink Port Health Reporters |
Added per-port reporters to devlink health to manage per-port health activities. Users can now access the devlink port reporters by specifying the port index in addition to the device devlink name through the devlink health commands API. This update was first introduced in iproute2 v5.8. As part of this feature, mlx5e Tx and Rx reporters are now redefined as devlink port reporters. For examples, please see devlink-health manpage. |
Memory Registration Optimization |
Optimized memory consumption of memory registration in huge page systems. As an example, in a 2MB huge page system, 600 MB would be saved for 100 GB memory registration. |
mlx5dv API |
Added support for mlx5dv API to modify the configured UDP source port for RoCE packets of a given RC/UC QP when QP is in RTS state. |
Enhanced Tx Multi-packet WQE (MPWQE) |
Added support for accelerating Tx datapath by saving PCI bandwidth and CPU utilization. The savings are achieved by aggregating multiple packets into a single WQE. The feature is driven by xmit_more for certain traffic types, such as UDP. |
Innova IPsec |
|
Innova IPsec NIC Support |
Removed support for the network adapter Innova IPsec (EN). |
Supported NICs: All |
|
Bug Fixes |
See Bug Fixes section. |
For additional information on the new features, please refer to MLNX_OFED User Manual.
MLNX_OFED Verbs API Migration
As of MLNX_OFED v5.0 release (Q1 of the year 2020), MLNX_OFED Verbs API have migrated from the legacy version of user space verbs libraries (libibervs, libmlx5, etc.) to the Upstream version rdma-core.
For the list of MLNX_OFED verbs APIs that have been migrated, refer to Migration to RDMA-Core document.