MLX BUS Registry Keys
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:
|
Default: 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. |
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. |