RDMA & QoS configured, but no OperationalTrafficClasses shown on adapters

Tony Gedge 241 Reputation points

I have a Windows Server 2016 cluster with RDMA NICs which for some reason doesn't apply QoS Policies to the NICs.

I've set up the policies, traffic classes and configured RDMA/QoS on the appropriate adapters:

New-NetQosPolicy "Live Migration" -LiveMigration -Priority 5
New-NetQosPolicy "SMB Direct" -NetDirectPort 445 -Priority 3
New-NetQosPolicy "Cluster" -IPDstPort 3343 -Priority 6
New-NetQosTrafficClass "SMB Direct" -Priority 3 -Algorithm ETS -Bandwidth 90
New-NetQosTrafficClass "Cluster" -Priority 6 -Algorithm ETS -Bandwidth 5
Enable-NetQosFlowControl -Priority 3
Disable-NetQosFlowControl -Priority 0,1,2,4,5,6,7
Set-NetAdapterQos -Name storage -Enabled:$True
Set-NetAdapterRDMA -Name storage -Enabled:$True

With the above set, there are no OperationalTrafficClasses shown on the storage adapters:

The strange thing is this configuration did have OperationalTrafficClasses showing yesterday, but I can't seem to get it back to the same state. Does anyone know why this might be the case or where to look to try to diagnose the issue?

A Windows technology providing a hypervisor-based virtualization solution enabling customers to consolidate workloads onto a single server.
2,576 questions
Windows Server Clustering
Windows Server Clustering
Windows Server: A family of Microsoft server operating systems that support enterprise-level management, data storage, applications, and communications.Clustering: The grouping of multiple servers in a way that allows them to appear to be a single unit to client computers on a network. Clustering is a means of increasing network capacity, providing live backup in case one of the servers fails, and improving data security.
963 questions
0 comments No comments
{count} vote

Accepted answer
  1. Mico Mi 1,921 Reputation points

    Typically, networks operate on a best-effort delivery basis, which means that all traffic has equal priority and an equal chance of being delivered in a timely manner. When congestion occurs, all traffic has an equal chance of being dropped.
    When you configure the QoS feature, you can select specific network traffic, prioritize it according to its relative importance, and use congestion-management and congestion-avoidance techniques to provide preferential treatment. Implementing QoS in your network makes network performance more predictable and bandwidth utilization more effective.

    If the DCBX willing bit on a device is set to true, the device is willing to accept configurations from the DCB switch through the DCBX protocol. If the willing bit is set to false, the device rejects all configuration attempts from remote devices and enforces only the local configurations.
    Here are some docs for you to better understand the DCB:

    Thanks for your time!
    Best Regards,
    Mico Mi


    If the Answer is helpful, please click "Accept Answer" and upvote it.
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

4 additional answers

Sort by: Most helpful
  1. Tony Gedge 241 Reputation points

    We have changed the switch configuration and we now have OperationalTrafficClasses showing but no RemoteTrafficClasses showing.

    Clearly I don't understand where these values are coming from and what they're used for.

    Can anyone outline what windows uses OperationalTrafficClasses and RemoteTrafficClasses for (in QoS output)?? If DCBx willing is false, are they just advisory? What would the presence or absence indicate?

    1 person found this answer helpful.
    0 comments No comments

  2. Mico Mi 1,921 Reputation points

    As the article states, If QoS is disabled, then this cmdlet only gets the hardware QoS capabilities of the network adapter. If QoS is enabled, then this cmdlet gets the operational traffic class and flow control configurations in addition.
    Since you have configured QoS, you can try to disable and then enable QoS and check if it works.

    Disable QoS on a specified network adapter:
    Disable-NetAdapterQos -Name "Ethernet 2"
    Enable QoS on the specified network adapter:
    Enable-NetAdapterQos -Name "DCBNIC1"
    Try again:
    Get-NetAdapterQos -Name "*" | Where-Object -FilterScript { $_.Enabled }

    Thanks for your time!
    Best Regards,
    Mico Mi


    If the Answer is helpful, please click "Accept Answer" and upvote it.
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

  3. Aleksey Bondarenko 1 Reputation point

    I have the same issue on my Intel X722 network cards. But on other cards mellanox or Qlogic all is ok. But Intel iWARP, on others i using ROCE.
    How i can check, thats ets and pfc working correctly?

  4. Mico Mi 1,921 Reputation points

    Before the issue happened, did you make any changes to your environment?
    Best Regards,
    Mico Mi