Changes and New Feature History
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.
NIC scheduling feature support has been disabled for non-privileged functions.
Using NC-SI Commands for Debugging PCI Link Failures
Implemented 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.
Increased the Maximum Number of MSIX per VF
Increased the maximum number of MSIX per VF to 127.
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:
Added support for RDMA partitioning and RDMA counters in IB mode.
Adaptive Routing (AR): multi_path, data_in_order
Added 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 Offloadand ICMP
Added a new flex parser to support GENEVE hardware offloadand 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.
User Memory (UMEM)
Enabled UID 0 to create resources with UMEM.
Native IB Packets
Added support for receiving and sending native IB packets from/to the software (including all headers) via raw IBL2 QPs.
InfiniBand Packet Steering
Added 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.
See Bug Fixes section.
RoCE, Lossy, slow_restart_idle
Removed triggering unexpected internal CNPs for RoCE Lossy slow_restart_idle feature.
Added 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 new capability enables VF/VF-group rate-limiting while per-host rate-limiter is also applied.
This 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.
See Bug Fixes section.
[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.
See Bug Fixes section.
Multi-Application QoS per QP
Added the option to allow applications to build their own QoS tree over the NIC hierarchy by connecting QPs to responder/requestor Queue Groups.
InfiniBand Support in RDE
Added "InfiniBand" properties set to the Network Device Function Redfish object.
HW Support for Flow Metering
Added HW support for Flow Metering to utilize Advanced Steering Operation (ASO). HW Flow Meter allows higher scale, more accuracy, and better performance compare to the FW Flow Metering.
HW Offloads Enablement on VF
Added trust level for VFs. Once the VF is trusted, it will get a set of trusted capabilities.
Mini CQE Formats
Added 2 new Mini CQE formats:
Enabling Adaptive-Routing (AR) for the Right SL via UCX
UCX 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.
Added support for steering DP hash flow groups.
Ethernet wqe_too_small Mode
Added 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”.
PCIe Rx modifications to prevent the adapter cards from disappearing from the system.
ignore_flow_level is now enabled by the TRUST LEVEL access registry.
Added 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.
Pause Frames from VFs
[Beta] Enabled the capability to allow Virtual Functions to send Pause Frames packets.
Enabled 10/25GbE auto-sensing with 3rd party when using 10/25GbE optical cables.
Hardware steering dump output used for debugging and troubleshooting.
Please see Known Issue 2213356 for its limitations.
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.
VXLAN Extension Header
This feature enables the user to define their own VXLAN extensions for the VXLAN header. The last byte of the VXLAN header is used as a length value for the private extension headers that comes after the VXLAN headers. This VXLAN extension header is supported when the "flex_parser_profile_6_supported" parameter is configured.
GPUDirect in Virtualized Environment
Enabled 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.
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.
Added a new NC-SI command (get_device_id) to report a unique device identifier.
Added 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:
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.
See Bug Fixes.
Flow Sampling and Mirroring
Added support for flow sampling and mirroring with an associated capable software.
Hardware Tag Matching
Increased the maximum XRQ number to 512.
Non-Volatile Configurations (NVCONFIG)
Added the following new mlxconfig parameters to the Non-Volatile Configurations section.
NC-SI 1.2 New Commands
Implemented the following new commands from NS-SI 1.2 specification:
Added the following segments, as appeared in the PRM, to the Resource Dump:
See Bug Fixes.