IEEE 802.1Qbb Priority Flow Control

In BlackDiamond X8 Series Switches, BlackDiamond 8900-10G24X-c and 8900-40G6X-xm Modules and Summit X460, X670, and X770 Switches, priority flow control (PFC) as defined in the IEEE 802.1Qbb standard is an extension of IEEE 802.3x flow control, which is discussed in IEEE 802.3x Flow Control.

When buffer congestion is detected, IEEE 802.3x flow control allows the communicating device to pause all traffic on the port, whereas IEEE 802.1Qbb allows the device to pause just a portion of the traffic while allowing other traffic on the same port to continue.

For PFC, when an ingress port detects congestion, it generates a MAC control packet to the connected partner with an indication of which traffic priority to pause and an associated time for the pause to remain in effect. The recipient of the PFC packet then stops transmission on the priority indicated in the control packet and starts a timer indicating when traffic can resume.

Traffic can resume in two ways:
  • On the transmitting side, when the timer expires, traffic on that priority can resume.
  • On the receiving side, once congestion is relieved, another PFC packet is generated to un-pause the priority so that traffic can resume.


The following limitations are associated with this feature:
  • In this release, PFC must be explicitly configured by the user.
  • In order to support the signaling of congestion across the fabric, an enhanced fabric mode is required. This enhanced mode is not available on some older models of Summits and BlackDiamond 8000 series modules (see the following supported platforms section). Also, this enhanced mode reduces the effective bandwidth on the fabric by a small amount (less than 5%). The BlackDiamond 8900-10G24X-c becomes slightly more blocking and the BlackDiamond 8900-10G8X-xl card is no longer non-blocking when this enhanced mode is configured.
  • The fabric flow control packets take up some small amount of bandwidth on the fabric ports.
  • On Summit X670 and X670V switches, the PFC feature does not support fabric flow control messages on alternate stack ports or SummitStack-V80 native stack ports.

Supported Platforms

PFC is currently supported only on 10G ports and on specific models of the following newer platforms indicated by the part number:
  • BlackDiamond X8 series switches
  • BlackDiamond 8900-10G24X-c modules (manufacturing number 800397-00)
  • BlackDiamond 8900-40G6X-xm modules, 40G ports and 10G ports when in 4x10 partition mode
  • Summit X450-G2 switches
  • Summit X460 and X460-G2 switches, 10/40G ports
  • Summit X670 switches, 10G ports
  • Summit X670V and X670-G2 switches, 10G and 40G ports
  • Summit X770-32q, 10G and 40G ports

To verify that your switch or module supports PFC, use the show version command. If you attempt to enable PFC on unsupported ports, an error message is displayed. (See Abnormal Configuration Examples.)

Setting the Priorities

Priority is established for reception of PFC packets with a QoS profile value on the ExtremeXOS switch and for transmission with a priority value added to the PFC packet.

  • QoS profile—Ingress traffic is associated with a QoS profile for assignment to one of eight hardware queues in the system that define how the traffic flows with respect to bandwidth, priority, and other parameters. By default, there are two QoS profiles (QP1 and QP8) defined in these supported platforms and PFC works with this default. To segregate the ingress traffic with more granularity, you will want to define other QoS profiles. The traffic that will be paused on reception of the PFC packet is associated with the hardware queue of the QoS profile that you specify.

    The QoS profile is also used to configure the fabric ports.

  • Priority—When the hardware transmits a PFC packet, it uses the priority bits in the VLAN header on the ingress packet to determine the priority to pause, if the ingress packet is tagged. You can specify this transmit priority independently from the QoS profile to associate it with the reception of a PFC packet thus giving flexibility in the configuration of the network. For untagged ingress packets, the hardware queue determines the priority in the transmitted PFC packet. (For additional information, see QoS Profiles.

It is suggested that the priority in the VLAN header match the QoS profile priority when traffic ingresses at the edge of the network so that the traffic can be more easily controlled as it traverses through the network.