Virtual Machine Multiple Queue (VMMQ)

Linux Kernel Upstream Release Notes v6.5

Virtual Machine Multiple Queues (VMMQ), formerly known as Hardware vRSS, is a NIC offload technology that provides scalability for processing network traffic of a VPort in the host (root partition) of a virtualized node. In essence, VMMQ extends the native RSS feature to the VPorts that are associated with the physical function (PF) of a NIC including the default VPort.

VMMQ is available for the VPorts exposed in the host (root partition) regardless of whether the NIC is operating in SR-IOV or VMQ mode. VMMQ is a feature available in Windows Server 2016.

  • Operating System(s): Windows Server 2016

  • Mellanox ConnectX-3/ConnectX-3 Pro VPI adapter card family

  • Available only for Ethernet (no IPOIB)

On the Driver Level

To enable/disable VMMQ:

  1. Go to: Display Manager → Network adapters → Mellanox ConnectX-3 Ethernet Adapter → Properties → Advanced tab → Virtual Switch Rss.


  2. Select Enabled or Disabled.

To enable/disable VMMQ using a Registry Key:

Set the RssOnHostVPorts registry key in the following path to either 1 (enabled) or 0 (disabled)
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\<nn>\* RssOnHostVPorts

On a VPort

To enable VMMQ on a VPort:


PS $ Set-VMNetworkAdapter -Name "Virtual Adapter Name" -VmmqEnabled $true

To disable VMMQ on a VPort:


PS $ Set-VMNetworkAdapter -Name "Virtual Adapter Name" -VmmqEnabled $false


Since the VMMQ is an offload feature for vRss, vRss must be enabled prior to enabling VMMQ.

The requested number of queues for a virtual network adapter (vPort) can be set by invoking this PS cmdlet:


PS $ Set-VMNetworkAdapter -Name "VMName" -name "Virtual Adapter Name" -VmmqQueuePairs <number>


The number provided to this cmdlet is the requested number of queues per vPort. However, the OS might decide to not fulfill the request due to some resources and other factors considerations.

© Copyright 2023, NVIDIA. Last updated on Oct 26, 2023.