image image image image image

On This Page

This section includes history of changes and new feature of 3 major releases back. For older releases history, please refer to the relevant firmware versions.



Using NC-SI Commands for Debugging PCI Link FailuresImplemented a new NC-SI command get_debug_info to get mstdump via the NC-SI protocol to debug a device if the PCI link fails for any given reason.
Eye Margin Measurement[Beta] Added support for SLRED grade register to provide grade criteria for the link.
Clear Phy Counters x seconds after Link is UpPhy counters are cleared x seconds after link is up. This feature can be configured and enabled via the ini fields using the NVconfig. The timeout to wait after the link is up before cleaning the counters is configured via NVconfig.
Enable/Disable RDMA via the UEFI HII System Settings

Added support for Enabling/Disabling NIC and RDMA (port/partition) via the UEFI HII system settings.

Note: Values set in this option only take effect when is Ethernet mode.

Single PF per NUMA in Socket-DirectAdded support for a single PF per NUMA for Socket-Direct without a host management.
Dynamic Flex Parser Extended the Dynamic Flex Parser capabilities in order to support RTP packets parsing.
Tunnel Header MatcherAdded support for full tunnel header matcher to VXLAN header (including VXLAN alert bit).
NC-SI Speed ReportingUpdated the NC-SI speed reporting output to support 200GbE speed. Now when running the NC-SI command, the output presents 200GbE speed as well.  
Increased the Maximum Number of MSIX per VFIncreased the maximum number of MSIX per VF to 127.
Note that increasing the number of MSIX per VF (NUM_VF_MSIX) affects the configured number of VFs (NUM_OF_VFS). The firmware may reduce the configured number of MSIX per VF and/or the number of VFs with respect to maximum number of MSIX vectors supported by the device (MAX_TOTAL_MSIX).
Running NVME Traffic on another vHCA than the Emulation Manager vHCANVME traffic can run now on another vHCA than the emulation manager vHCA. NVME SQ continues to be created on the emulation manager vHCA and an Alias object is created on the transport vHCA. The NVME SQ BE object is connected then to the Alias object with the QP provided.
Note: With this change, the emulation manager capability for NVME is limited to only PF VHCA.
Extended MSIX

Allows the device to be configured with more than 256 MSIX vectors per physical PCI function.

To use it, please follow the Asymmetrical MSIX configuration (PF_NUM_PF_MSIX_VALID) (see feature Asymmetrical MSIX Configuration below).

Note: When using this feature while Sub-Function configuration (PF_BAR2_ENABLE / PER_PF_NUM_SF) is enabled, it is recommended to configure “above 4G-decoding” in the BIOS due to device BAR space requirements.

Asymmetrical MSIX Configuration

Allows the device to be configured with a different number of MSIX vectors per physical PCI functions.

To use this feature, please follow these steps:

  1. Clear NUM_PF_MSIX_VALID to disable global symmetrical MSIX configuration.
  2. Set PF_NUM_PF_MSIX_VALID to enable asymmetrical per Physical Function MSIX configuration.
  3. Configure PF_NUM_PF_MSIX per physical PCI function.


  • When using this configuration, NUM_PF_MSIX (the symmetrical MSIX configuration field) will be ignored by the firmware although it will be present in the mlxconfig query.
  • The asymmetrical MSIX configuration and the legacy symmetrical MSIX configuration are mutually exclusive. When both are enabled, the firmware will work according to the symmetrical MSIX configuration.
  • Step #3 should be done on each of the physical PCI functions, otherwise, the device will use default configurations.
Adaptive Routing (AR): multi_path, data_in_orderAdded a new bit ("data_in_order") to query the QP and allow a process/library to detect when the AR is enabled.
flex_parser for GENEVE Hardware Offload and ICMPAdded a new flex parser to support GENEVE hardware offload and ICMP.

When the non-page-supplier-FLR funcion is initiated, the firmware triggers a page event to the page supplier to indicate that all pages should be returned for the FLR function.

Pages are returned by the driver to the kernel without issuing the MANAGE_PAGES commands to the firmare.

PCIe Eye OpeningEnabled measuring PCIe eye dynamic grading over PCIe Gen3 speed.
Real Time Clock through VFEnabled hardware real time clock for virtualized environment.
SteeringAdded support for matching field ipv4_ihl in create_flow_group and set_flow_table_entry commands.
Bug FixesSee Bug Fixes History section.


Precision Time Protocol (PTP) Enabled Precision Time Protocol (PTP) timestamp (UTC mode) in Multi-Host devices. 
PAM4Added support for PAM4 Auto Negotiation and Link Training in 200GbE link speed.
RoCE, Lossy, slow_restart_idleRemoved triggering unexpected internal CNPs for RoCE Lossy slow_restart_idle feature.
KR-Startup in Auto-NegotiationEnabled KR-Startup in Auto-Negotiation mode for PAM4.
Performance: SteeringAdded support for a new NV config mode “icm_cache_mode_large_scale_steering” that enables less cache misses and improves performance for cases when working with many steering rules.
This capability is enabled using the mlxconfig parameter "ICM_CACHE_MODE".
Active-State Power Management (ASPM)Added support for power saving in L1 ASPM link state. 
Rx Link-TuningAdded support for Rx Link-Tuning in PAM4 Serdes speeds.
QoSThis new capability allows the user to configure QoS (Rate Limit / BW share) between a network and the storage in a SmartNIC.
Origin bit in the ctrl Segment of the WQEThis new capability adds an origin bit in the ctrl segment of the WQE sent by the Target to the Initiator during frontend controller exceptions in the NVMeoF interface. The WQE sent with the origin bit "set" will have SWQE_OPCODE_SEND_IMM opcode.
Connection Tracking Window ValidationEnabled connection tracking window validation by supporting CONN_TRACK_OFFLOAD general object and WQE with opcode ASO and opmode CONN_TRACK.
Transport Layer Security (TLS) OffloadEnabled TLS offload v1.3 with the key size of 256.
VF/VF-group rate-limitingThis new capability enables VF/VF-group rate-limiting while per-host rate-limiter is also applied.
Sub-Function ScalabilityExpanded the Sub-Function capability to support the scale of up to 512 by supporting more MSIX, removing internal obstacles and reducing the ICM memory footprint.
NvConfig: Sub-FunctionsThis new capability enables asymmetric Sub-Function configuration. It expands the asymmetric Sub-Function configuration to support asymmetric configurations between all PFs, and provides Sub-Function scalability and asymmetric NV configurations.
Match Definer Object

Added support for new steering match definer formats.

  • Match definer format 26
  • Match definer format 27
Steering by Sanity Check FlagsAdded support for matching the following flags: l3_ok, l4_ok, ipv4_checksum_ok, l4_checksum_ok bits in create_flow_group and set_flow_table_entry commands, as well as in match definer formats (formats 0,1,2 and 3) to be used in matching actions on the packet headers. 
Virtio Full EmulationAdded support for up to 500 virtio-net VFs for full emulation.
Bug FixesSee Bug Fixes History section. 


PAM4PAM4 200GbE linkup time improvement, the linkup time is now sub 5 seconds. 
Remote Loopback in NRZ

[Beta] Enabled remote (PMA) loopback in NRZ, Rx-to-Tx.

Note: To use the PMA loopback, both sides should be in Force Mode (AN Disabled).

Reserved QPN

[Beta] This capability allows the software to reserve a QPN that can be used to establish connection performed over RDMA_CM, and provide the software a unique QP number.

Since RDMA_CM does not support DC, by using CREATE_QPN_RESERVED_OBJECT the software can reserve a QPN value from the firmware's managed QP number namespace range. This allows multiple software processes to hold a unique QPN value instead of using UD-QPs.

Bug FixesSee Bug Fixes History section. 


Eye-Opening[Beta] Eye-opening is supported only when using NRZ signal.
Multi-Application QoS per QPAdded the option to allow applications to build their own QoS tree over the NIC hierarchy by connecting QPs to responder/requestor Queue Groups.
NRZ Link Performance Improved NRZ link performance (RX algorithm).
NRZ Link-Up Time Improved NRZ link-up time (25G\50G\100G speeds).
InfiniBand Support in RDEAdded "InfiniBand" properties set to the Network Device Function Redfish object.
Direct Packet Placement (DPP)Added support for Direct Packet Placement (DPP). DPP is a receive side transport service in which the Ethernet packets are scattered to the memory according to a packet sequence number (PSN) carried by the packet, and not by their arrival order. To enable DPP offload, the software should create a special RQ by using the CREATE_RQ command, and set DPP relevant attributes.
HW Offloads Enablement on VFAdded trust level for VFs. Once the VF is trusted, it will get a set of trusted capabilities.
vDPA StatisticsAdded support for error statistics and reporting for vDPA.
IPv6 TSO OffloadAdded support for IPv6 TSO offload. 
Enabling Adaptive-Routing (AR) for the Right SL via UCXUCX can now enable AR by exposing Out-Of-Ordering bitmask per SL with "ooo_per_sl" field in the HCA_VPORT context. It can be also queried by running the QUERY_HCA_VPORT_CONTEXT command.
vDPA PerformanceOptimized vDPA performance for PPS in scalability of up to 127 devices per port.
External SmartNIC (ECPF)When using a Multi-Host device, the firmware can now discover who is the external SmartNIC host (the Embedded CPU PF (ECPF) ) with the highest index that is responsible for performing offload activities to the adapter card.
Steering Dump

Hardware steering dump output used for debugging and troubleshooting.

Please see Known Issue 2213356 for its limitations.


PAM4 Link Performance PAM4 link performance improvement.
PAM4 Link Maintenance Improved PAM4 link maintenance that improved pre-FEC BER (support VL mapping on different physical lanes).
Ethernet wqe_too_small ModeAdded a new counter per vPort that counts the number of packets that reached the Ethernet RQ but cannot fit into the WQE due to their large size. Additionally, we added the option to control if such packet will cause “CQE with Error” or “CQE_MOCK”.
Access Registriesignore_flow_level is now enabled by the TRUST LEVEL access registry. 
Pause Frames from VFs[Beta] Enabled the capability to allow Virtual Functions to send Pause Frames packets.
CountersAdded support for the cq_overrun counter. The counter represents the number of times CQs enter an error state due to overflow that occur when the device tries to post a CQE into a full CQ buffer.
Bug FixesSee Bug Fixes.


Sub Function (SF) BAR Size

Increased the minimum Sub Function (SF) BAR size from 128KB to 256KB. Due to the larger SF BAR size, for the same PF BAR2 size, which can be queried/modified by LOG_PF_BAR2_SIZE NV config, the firmware will support half of the SFs.

To maintain the same amount of supported SFs, software needs to increase the LOG_PF_BAR2_SIZE NV config value by 1.

GPUDirect in Virtualized EnvironmentEnabled a direct access to ATS from the NIC to GPU buffers using PCIe peer-to-peer transactions. To enable this capability, the “p2p_ordering_mode” parameter was added to the NV_PCI_CONF configuration.
Note: When SECURE_ALL or SECURE_TRUST is configured, ATS and RO must be set identically. When SECURE_NONE is configured, ATS and RO may be set independently as the current firmware behavior allows.
Non-Volatile Configurations

Added a new Non-Volatile Configuration parameter to control VL15 buffer size (VL15_BUFFER_SIZE).

Note: VL15 buffer size enlargement will decrease all other VLs buffers size.

NC-SIAdded a new NC-SI command (get_device_id) to report a unique device identifier.
NC-SIAdded new NC-SI commands (get_lldp_nb, set_lldp_nb) to query the current status of LLDP and to enable/disable it.

Split the SlowRestart ROCE_ACCL into the following:

  • slow-restart – used to reduce rate on retransmission events
  • slow-restart-after-idle – used to reduce rate before first transmission after >1s without transmitting

Enabled TX PSN window size configuration using LOG_TX_PSN_WINDOW NVconfig parameter.

Note: Due to hardware limitations, max log_tx_psn_win value can be set 9.

Bug FixesSee Bug Fixes.


GPRS Tunneling ProtocolAdded support for GPRS Tunneling Protocol (GTP).
IPSec Full Offload

Enabled with IPsec transport mode (ESP header over IP header). All the bellow settings are done by the hardware (full offload):

  • packet re-formatting, adding/deleting ESP header/trailer, and SN configuration
  • encryption and decryption
Flow Sampling and MirroringAdded support for flow sampling and mirroring with an associated capable software.
NC-SI 1.2 New Command

Implemented the following new command from NS-SI 1.2 specification:

  • Get PF Assignment
vDPA BondingAdded support for vDPA bonding on two PFs.
Flow Metering[Beta] Added support for Flow Metering.
SerDes Lane Receive Eye Diagram (SLRD)Added a new register to read the SerDes receive eye diagram for each eye.
PTPUpdated the Packet Pacing clock to be in sync with the PTP clock.
PTPAdded support for hardware real time clock by UTC timestamp in PCIE BAR and CQE.
Enhanced Connection Establishment (ECE)

ECE is new negotiation scheme used to exchange extra information about QPs capabilities and later negotiate them at the connection establishment phase. It is used to support various features such as RoCE Selective Repeat and PCC.

RoCE Selective Repeat using Enhanced Connection Establishment (ECE)

RoCE Selective Repeat activation now is available using ECE. This feature is enabled automatically using ECE if NV_config.sr_enable parameter is set 1 otherwise using go back N retransmission.

This new capability comes with the following limitations:

  • Selective Repeat results in packets arriving out of order
  • Signature is not supported with Selective Repeat.
  • Need to create mkey with signature before QPs are opened in gvmi
Non-Volatile Configurations (NVCONFIG)

Added the following new mlxconfig parameters to the Non-Volatile Configurations section.

  • log_max_outstandng_wqe
  • ece_disable_mask
  • NV_config.sr_enable
Hardware Tag MatchingIncreased the maximum XRQ number to 512.
Bug FixesSee Bug Fixes.


PAM4 Link Speeds when Using 400GbE/200GbE

The following are the minimal software/firmware versions that support PAM4 link speeds when connected using Mellanox NIC to Mellanox Switch and Mellanox NIC to 3rd Party Switches:

  • Mellanox Spectrum-3: 30.2007.1142
  • Mellanox Spectrum-2: 29.2007.1142
  • Switch SDK: 4.4.0920
  • Mellanox Onyx: 3.9.0830-038
  • SONiC/SAI: 201911
  • ConnectX-6 Dx: 22.27.2008*

*Note: NICs with this firmware version support Mellanox-to-Mellanox connectivity with PAM4 link speeds

Programmable Congestion Control (CC)Programmable Congestion Control (PCC) is at GA level.
TLSEnabled TLS offload v1.3 with key size 256.
vDPAAdded support for vDPA including LSO and csum offload.

Added the following segments, as appeared in the PRM, to the Resource Dump:

Bug FixesSee Bug Fixes.