How to Enable Tx/Rx Hardware Flow Control and Disable Priority Flow Control on an ESXi Host
search cancel

How to Enable Tx/Rx Hardware Flow Control and Disable Priority Flow Control on an ESXi Host

book

Article ID: 417909

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

When managing high-throughput or storage network traffic (such as iSCSI or NVMe over RDMA) on VMware ESXi hosts, network congestion can lead to packet loss.

Users need to manually adjust network pacing parameters to either enable global Link-Level Flow Control (Pause Frames) or disable granular Priority Flow Control (PFC) to match physical switch configurations or vendor compatibility guidelines.

Environment

VMware ESXi 7.x, ESXi 8.x

Resolution

[IMPORTANT!] Before modifying flow control settings, verify that your NIC drivers and firmware versions are fully compliant with the Broadcom Compatibility Guide.

Step 1: Enable Tx/Rx Hardware Flow Control (Link-Level)

  1. Log in to the ESXi host CLI via SSH as a privileged user.

  2. Run the following command to list the current pause parameters and status of all physical network interfaces:
    Bash

    esxcli network nic pauseParams list

  3. Set the receive (rx) and transmit (tx) flow control parameters to true for the target interface:
    Bash

    esxcli network nic pauseParams set-n <vmnic_name> --rx=true--tx=true

    • Example: esxcli network nic pauseParams set -n vmnic2 --rx=true --tx=true

[NOTE!] The target physical NIC interface must be in an Up state. You cannot modify pauseParams on a disconnected or administrative-down interface.

Make Settings Persistent Across Reboots

To ensure these adjustments survive an ESXi host reboot, append the command to the local startup script:

  1. Open the /etc/rc.local.d/local.sh file using a text editor (such as vi).

  2. Add your explicit configuration command block above the exit 0 line.

Step 2: Disable Priority Flow Control (PFC)

PFC is typically managed via specific driver module parameters and is effectively disabled if the underlying driver configuration, hardware capabilities, or physical switch port configurations do not actively enforce it.

  1. Identify the active driver module for your NIC and check its supported parameters:
    Bash

    esxcli system module parameters list --module <driver_name>
  2. To disable or unset a specific vendor PFC configuration (for example, on Mellanox nmlx5_core drivers where bitmaps are used to designate active queues), clear or set the module parameter back to default values:
    Bash

    esxcli system module parameters set-m nmlx5_core -p "pfctx=0x00 pfcrx=0x00"
    (Note: 0x00 clears the priority bitmap, effectively disabling PFC on all queues).

  3. Verify the status of Data Center Bridging (DCB), which acts as the exchange architecture for PFC:
    Bash

    esxcli network nic dcb status get -n <vmnic_name>

    If there is a DCB mode mismatch between the physical switch and the host, PFC will remain disabled.
  1. Reboot the ESXi host for the module parameter modifications to safely take effect.

Additional Information

Working Concepts

Hardware Flow Control (IEEE 802.3x)

Hardware flow control works at the link layer. When a receiving node's buffers are overwhelmed, it transmits a Pause Frame to the sending node. This instructs the sender to stop transmitting data momentarily across the entire link, preventing buffer overruns and subsequent dropped packets.

Priority Flow Control (PFC / IEEE 802.1Qbb)

PFC extends traditional flow control by operating granularly on individual traffic classes (Class of Service / CoS values 0-7) instead of the entire physical link.

  • Selective Pausing: Pauses lower-priority traffic (e.g., standard management traffic) during congestion while keeping high-priority, loss-sensitive workloads (e.g., NVMe over RDMA or iSCSI storage traffic) running uninterrupted.
  • Requirements: Requires strict end-to-end alignment across the ESXi network driver, the network adapter hardware, and matching configurations on the adjacent physical switch ports.

Related References