How to Configure Flow Control on Network Adapters in Windows 11 Using PowerShell

In high-speed local area networks, disparities between network switch buffer capacities and client receiver processing speeds can cause receiver buffers to overflow, resulting in dropped packets and costly TCP retransmissions. IEEE 802.3x Flow Control solves this by allowing network adapters and switches to send pause frames when incoming traffic threatens to overwhelm buffer queues. While Flow Control prevents packet loss during burst traffic, misconfigured or asymmetric flow control settings can introduce artificial latency and head-of-line blocking in modern gigabit and multi-gigabit environments. In Windows 11, PowerShell allows network administrators to audit, configure, and standardize Flow Control across all physical network adapters using native cmdlets.

Understanding IEEE 802.3x Flow Control Mechanisms

When Ethernet Flow Control is enabled, a receiving network interface card (NIC) that detects its hardware receive FIFO queue reaching a predefined threshold transmits an IEEE 802.3x PAUSE frame back to the transmitting device or switch port. The transmitting switch momentarily halts packet delivery for the duration specified in the frame, allowing the receiver’s CPU and driver stack to clear pending buffers before resuming wire-speed transmission.

Flow Control can be configured in four operational modes:

  • Disabled: Neither Tx (transmit) nor Rx (receive) pause frames are processed. Dropped packets must be recovered by higher-layer TCP retransmissions.
  • Rx Enabled: The adapter responds to incoming pause frames from switches by pausing its own transmissions, but does not send pause frames when its own receive buffer fills.
  • Tx Enabled: The adapter transmits pause frames when its receive buffers fill, but ignores pause requests received from the upstream network.
  • Rx & Tx Enabled: Symmetric flow control where both incoming and outgoing pause frames are fully negotiated and respected.

When deployed alongside jumbo frames and packet priority and VLAN tagging, configuring appropriate flow control parameters ensures optimal queue efficiency across iSCSI storage, NAS file transfers, and gaming traffic.

Launching Elevated PowerShell in Windows 11

Configuring network driver hardware parameters requires local administrative privileges:

  1. Right-click the Start menu button on the taskbar or press Windows Key + X.
  2. Choose Terminal (Admin) or PowerShell (Admin).
  3. Select Yes when prompted by the User Account Control (UAC) security prompt.

Auditing Current Flow Control Settings on Network Adapters

To inspect the active Flow Control configuration across your physical network interfaces, query the driver’s advanced properties using Get-NetAdapterAdvancedProperty:

Get-NetAdapterAdvancedProperty -DisplayName "*Flow Control*"

PowerShell outputs a structured list displaying the interface name, registry keyword, and active configuration value:

Name                      DisplayName                    DisplayValue                   RegistryKeyword
----                      -----------                    ------------                   ---------------
Ethernet                  Flow Control                   Rx & Tx Enabled                *FlowControl

To view all possible valid configuration options supported by your specific hardware controller (such as Intel, Realtek, or Marvell AQC), run:

Get-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "*Flow Control*" | Select-Object -ExpandProperty ValidDisplayValues

The console prints the exact accepted string values, typically including Disabled, Rx Enabled, Tx Enabled, and Rx & Tx Enabled.

Configuring Flow Control with Set-NetAdapterAdvancedProperty

To update the operational state, use Set-NetAdapterAdvancedProperty with the target display value:

Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Flow Control" -DisplayValue "Rx & Tx Enabled"

The network driver will momentarily reload its hardware register settings to apply the new pause frame behaviour. If you wish to disable Flow Control—a common recommendation when connecting to low-latency datacenter switches or when employing Priority-Based Flow Control (PFC) alongside TCP pacing profiles—execute:

Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Flow Control" -DisplayValue "Disabled"

To standardize this configuration across all physical Ethernet adapters on a multi-homed workstation or server, pipe the adapter list directly:

Get-NetAdapter -Physical | Where-Object { $_.HardwareInterface } | Set-NetAdapterAdvancedProperty -DisplayName "Flow Control" -DisplayValue "Rx & Tx Enabled"

Verifying Settings and Monitoring Discard Counters

After applying new Flow Control parameters, verify the updated state:

Get-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "*Flow Control*"

Confirm that the DisplayValue reflects your chosen operational policy. If you recently configured IPsec task offload, balancing flow control prevents packet drops during heavy cryptographic payload bursts, keeping high-bandwidth file transfers stable and reliable across Windows 11.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.