MLX BUS Registry Keys

Linux Kernel Upstream Release Notes v6.5

SR-IOV feature can be controlled, on a machine level or per device, using the same set of Registry Keys. However, only one level must be used consistently to control SR-IOV feature. If both levels were used, the per-machine level of configuration will be enforced by the driver.

Registry Keys location for machine configuration:

HKLM\SYSTEM\CurrentControlSet\Services\mlx4_bus\Parameters

Registry Keys location for device configuration:

HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e97d-e325-11ce-bfc1- 08002be10318}\<nn>\Parameters

For more information on how to find device index nn, please refer to Finding the Index Value of the HCA.

Key Name

Key Type

Values

Description

PermitSriov

REG_DWORD

0 = Disabled

1 = Enabled (default)

Configures the SR-IOV mode.

SriovPortMode

REG_DWORD

0 = auto_port1

1 = auto_port2

2 = manual (default)

Configures the number of VFs to be enabled by the bus driver to each port. Note: In auto_portX mode, port X will have the number of VFs according to the burnt value in the device and the other port will have no SR-IOV and it will support native Ethernet (i.e. no RoCE). Setting this parameter to "Manual" will configure the number of VFs for each port according to the registry key MaxVFPortX.

Note: The number of VFs can be config- ured both on a Mellanox bus driver level and Network Interface level (i.e using SetNetAdapterSriov Powershell cmdlet). The number of VFs actually available to the Network Interface is the minimum value between Mellanox bus driver configuration and Network Interface configuration. For example, if 8 VFs support was burnt in firmware, SriovPortMode is auto_port1, and Network Interface was allowed 32 VFs using SetNetAdapterSriov Powershell cmdlet, the actual number of VFs available to Network Interface will be 8.

MaxVFPort1 MaxVFPort2

REG_DWORD

16=(default)

MaxVFPort<i> The maximum number of VFs

that are allowed per port. This is the number of VFs the bus driver will open when working in manual mode.

Note: If the total number of VFs requested is larger than the number of VFs burnt in firmware, each port X(1\2) will have the number of VFs according to the following formula: (MaxVFPortX / (MaxVPort1+Max- VPort2)*number of VFs burnt in firmware.

The following registry configuration is available for RoCE under:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mlx4_bus\Parameters\Roce

This registry is per-driver and it will apply to all available adapters.

Parameters

Parameter Type

Description

Allowed Values and Default

roce_mode

DWORD

Sets the RoCE mode. The following are the possible RoCE modes:

  • RoCE MAC Based (v1)

  • RoCE IP Based (v1)

  • RoCE over UDP (v2)

  • No RoCE

  • RoCE MAC Based = 0

  • RoCE IP Based = 5

  • RoCE over UDP = 2

  • No RoCE = 4

Default: No RoCEDefault: RoCE over UDP = 2

Note: The default value depends on the WinOF package used.

roce_udp_dport

DWORD

Sets the RoCE v2 UDP destination port.

Note that in order to communicate with RoCE v2, all machines in a fabric must be configured with the same value for the UDP port number.

  • 1 - 65535

Default (IANA Port): 4791

Registry Keys location for machine configuration:

HKLM\SYSTEM\CurrentControlSet\Services\mlx4_bus\Parameters

Key Name

Key Type

Values

Description

UpdateGIDTimerFrequency

DWORD

0-10000

Default: 3000

Polling interval in milliseconds of local IP-address changes for updating RDMA IP-based GIDs.

RoceRcE2EFlowControlEnable

DWORD

Enabled: 1

Disabled: 0

Default: 1

Determines whether End-to-End Flow Control for RC connections is enabled.

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