Changes and New Features

Linux Kernel Upstream Release Notes v5.17

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.

  • Each function should have the driver up and active with a version that supports this feature

  • None of the functions has the devlink parameter enable_remote_dev_reset set to False.

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.

© Copyright 2023, NVIDIA. Last updated on Oct 23, 2023.