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.

Feature/ChangeDescription

20.35.1012

UDPAdded support for copy modify header steering action to/from the UDP field.
RoCE: Adaptive TimerEnabled ADP timer to allow the user to configure RC or DC qp_timeout values lower than 16.
QoS Priority Trust Default State

QoS priority trust default state can now be changed using the new nvconfig below:

  • QOS_TRUST_STATE_P1
  • QOS_TRUST_STATE_P2

The values that can be used to set the default state are:

  • TRUST_PORT
  • TRUST_PCP
  • TRUST_DSCP
  • TRUST_DSCP_PCP
Bug FixesSee Bug Fixes.

20.34.1002

LLDP Properties Implementation on RDEAdded LLDPEnable, LLDPTransmit and LLDPReceive properties to the RDE Port schema implementation.
Queue Counters AllocationThis new capability allows privileged users to allocate queue counters. In this new feature the get_max_qp_cnt_cur_cap() returns a valid value when the UID is with UCTX_CAP_INTERNAL_DEVICE_RESOURCES, otherwise it returns 0.
Bug FixesSee Bug Fixes.

20.33.1048

NV Configurations via the Relevant Reset FlowAdded pci_rescan_needed field to the MFRL access register to indicate whether a PCI rescan is needed based on the NV configurations issued by the software.
Note: If the Keep Link Up NV configuration is changed, phyless reset will be blocked.
MADsAdded a new MAD of class SMP that has the attributes hierarchy_Info as defined in the IB Specification and is used to query the hierarchy information stored on the node and the physical port.
ICM PagesAdded a new register (vhca_icm_ctrl access_reg) to enable querying and limiting the ICM pages in use.
XRQ QP Errors EnhancementsEnhanced the XRQ QP error information provided to the user in case QP goes into an error state. In such case, QUERY_QP will provide information on the syndrome type and which side caused
the error.
ibstatUpdated the ibstat status reported when the phy link is down. Now QUERY_VPORT_STATE.max_tx_speed of UPLINK will not be reported as 0 anymore.
NetworkPort Schema ReplacementReplaced the deprecated NetworkPort schema with Port schema in NIC RDE implementation. 
SMPsDisabled the option to send SMPs from unauthorized hosts.
Firmware SteeringEnabled the option to modify the ip_ecn field in the packet header in firmware steering.
SW Steering CacheModified the TX or RX cache invalidation behavior. TX or RX cache invalidation now does not occur automatically but only when the software performs the sync operation using the using sync_steering command.
Mega Allocations in Bulk Allocator MechanismModified the maximum bulk size per single allocation from "log_table_size - log_num_unisizes", to allocate any range size, to remove limitations that HWS objects such as counters and modify arguments might encounter. 
Changing all the Crypto Features to Wrapped or Cleartext

Crypto features can be in either wrapped or unwrapped mode. Meaning, the key can be wrapped or in plaintext when running the CREATE_DEK PRM command. To comply with the requirements specified in FIPS publication, all the created DEKs must be wrapped.

This feature adds new NV_CONFIG per device to control this mode, and enables the user to change all the crypto features to wrapped or cleartext.

Bug FixesSee Bug Fixes.

20.32.1010

GMP ClassesAdded support for blocking unwanted GMP classes by dedicated MADs.
QP Resources

Added a new NvConfig parameter LOG_MAX_QUEUE to set the maximum number of work queue resources (QP, RQ, SQ...) that can be created per function.

The default value is 2^17.

Congestion Control Key

Added a Congestion Control Key to all Congestion Control MADs to authenticate that they are originated from a trusted source.

SMP Firewall

Added an SMP firewall to block the option of sending SMPs (MADS sent on QP0 from the Subnet Manager) from unauthorized hosts to prevent fake SMPs from being recognized as the SM.

Vendor Specific MADs: Class 0x9Vendor Specific MADs Class 0x9 is no longer supported by the firmware. If case the firmware detects such  MAD, the firmware will return a "NOT SUPPORTED" error to the user.
TLS/XTS/Signature PaddingBlocked the VF's ability to use both padding and signature in order to prevent the NIC from hanging. 
Asserts' Severity Level

Added 3 new assert filters (Health buffer, NVlog, FW trace). The assert will be exposed now if its severity level is equal to or above the new filter.

The filters are configurable by the ini file. The "Health buffer" filter is also configurable by new access register.

VUID VPD Virtio

An emulated PCI device can be hot plugged/unplugged by the DPU software stack. However, the life cycle and the state of the bare metal host system where an emulated PCI device is plugged in, is not in control of the DPU software stack.

PCI BDF may not be available in corner cases, hence, an emulation PCI device handler (VUID) is required which is predictable and stable (across emulation controller reset/restart, across DPU warm reboot). The VUID will show in PCI PF device VPD as [VU] section.

Rate Limit per VM instead of VM-TCEnabled Rate Limit per VM instead of VM-TC. This capability is implemented by adding support to a new Scheduling element type: rate limit elements that will connect to the rate_limit and will share its  rate limit.
Dynamically Connected Transport (DCT) with Adaptive Routing (AR)Performance improvements in the DCT with AR flow by exposing a hint to the software in DCI software context that indicates that RDMA WRITE on this DCI is not supported.
Dynamic Timeout MechanismAdded support for dynamic timeout mechanism when in InfiniBand mode.
QSHR Access RegisterAdded support for QSHR access register to enable Set and Query rate limit per-host per-port.
New Software Steering ICM Resource for VXLAN EncapsulationThe firmware now exposes a new Software Steering ICM resource for VXLAN encap expand in order for the SW Steering to manage this resource directly.
Asymmetrical VFs per PF

Added support for asymmetrical VFs per PF. 

To enable it:
PF_NUM_OF_VF_VALID must be true, and PF_NUM_OF_VF to a none zero value.

mlxlink Support to read/write Access Registers by LIDAdded 2 new MAD access registers to enable mlxlink to read/write access registers by LID (to the whole subnet).
VXLAN Encapsulation ExpansionEnabled the exposure of new ICM resource to the software steering for VXLAN encapsulation expansion.
Bug FixesSee Bug Fixes.

20.31.1014

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.
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.

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).
Asymmetrical MSIX Configuration

This feature 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.

Notes:

  • 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.
RDMA, NC-SIAdded support for RDMA partitioning and RDMA counters in IB mode.
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.
Non-Page-Supplier-FLR

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.
User Memory (UMEM)Enabled UID 0 to create resources with UMEM. 
Native IB PacketsAdded support for receiving and sending native IB packets from/to the software (including all headers) via raw IBL2 QPs.
InfiniBand Packet SteeringAdded support for RX RDMA NIC flow table on an IB port. Now the software can steer native IB packets to raw IB receive queues according to the DLID and the DQPN.
SteeringAdded support for matching field ipv4_ihl in create_flow_group and set_flow_table_entry commands.
Bug FixesSee Bug Fixes section. 

20.30.1004

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. 
VF/VF-group rate-limitingThis new capability enables VF/VF-group rate-limiting while per-host rate-limiter is also applied.
Bug Fixes

See Bug Fixes section. 

20.29.2002

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).

PAM4PAM4 200GbE linkup time improvement, the linkup time is now sub 5 seconds. 
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 Fixes

See Bug Fixes section. 

20.29.1016

Cable Firmware Burning

[Beta] Added support for LinkX module burning via MFT toolset. The new capability enables direct firmware burning from the internal flash storage to reduce the bandwidth and accelerate the burning process, including burning several modules at a time.

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).
Tx SetsEnabled the options to control different Tx sets for the same attribute when connecting a Mellanox-Mellanox vs Mellanox to 3rd party HCA.
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.
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.
InfiniBand Congestion ControlEnhanced IB Congestion Control to support lower minimum rate. Now it uses destination-lid to classify flows to handle larger scale, and achieve better results in GPCNeT benchmark.
Steering Dump

Hardware steering dump output used for debugging and troubleshooting.

Please see Known Issue 2213356 for its limitations.

20.28.4000

PAM4PAM4 link performance improvement.
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.

20.28.2006

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.

AES-XTSAES_XTS is used to perform all disk encryption/decryption related flows in the NIC and reduce cost and overheads of the related FIPS certification.
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.
ROCE ACCL

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
ROCE ACCL

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.

20.28.2006

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.

AES-XTSAES_XTS is used to perform all disk encryption/decryption related flows in the NIC and reduce cost and overheads of the related FIPS certification.
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.
ROCE ACCL

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
ROCE ACCL

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.

20.28.1002

EDR Link in ConnectX-6 100Gb/s cards
EDR link speed is now supported when using ConnectX-6 100Gb/s HCA and connecting with HDR optical cables.
NC-SI 1.2 New Commands

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

  • Get IB Link Status
  • Get IB Statistics
  • Get PF Assignment
NC-SIAdded support for Virtual node GUID, and set & get address through the NC-SI commands.
Error Injection Port LevelAdded the ability to inject iCRC/vCRC port level error using Port Transmit Error Register (PTER).
In-Node SyncAdded support for in-node sync.
IPoIB Virtualization Updates

Added the following IPoIB Virtualization updates:

  • Support for SX RDMA Flow Table type in IB port
  • Support for modifying header action in IB port
  • Support for new hairpin mode:
    • IB-to-IB
    • Eth-to-IB
    • IB-to-Eth
MPFS Forwarding Packets BehaviorThis new feature defines the forwarding behavior in MPFS for packets arriving from the network (uplink) with destination MAC address that does not appear in the MPFS FDB. The new feature is configured by a new NV configuration (UNKNOWN_UPLINK_MAC_FLOOD) which when enabled, floods all local MPFS ports with these packets, otherwise drops these packets.
Hardware Tag MatchingIncreased the maximum XRQ number to 512.
Non-Volatile Configurations (NVCONFIG)

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

  • log_max_outstandng_wqe
  • ece_disable_mask
Bug FixesSee Bug Fixes.

Customer-Affecting Changes

Feature/ChangeDescription

20.27.1016

Link Protocol

Due to in a change in link protocol in 100GbE and 200GbE adapter cards (from PAM4 to NRZ), the link may not come up on certain configurations. For limitations related to this change, see issue 2094355.