Configuring Priority Flow Control

Information About Priority Flow Control

Priority flow control (PFC; IEEE 802.1bb), which is also referred to as Class-based Flow Control (CBFC) or Per Priority Pause (PPP), is a mechanism that prevents frame loss that is due to congestion. PFC is similar to 802.3x Flow Control (pause frames) or link-level flow control (LFC). However, PFC functions on a per class-of-service (CoS) basis.

When a buffer threshold is exceeded due to congestion, LFC sends a pause frame to its peer to pause all data transmission on the link for a specified period of time. When the congestion is mitigated (traffic comes under the configured threshold), a resume frame is generated to restart data transmission on the link.

In contrast, during congestion, PFC sends a pause frame that indicates which CoS value needs to be paused. A PFC pause frame contains a 2-octet timer value for each CoS that indicates the length of time that the traffic needs to be paused. The unit of time for the timer is specified in pause quanta. A quanta is the time that is required for transmitting 512 bits at the speed of the port. The range is from 0 to 65535. A pause frame with a pause quanta of 0 indicates a resume frame to restart the paused traffic.


Note

Only certain classes of service of traffic can be flow controlled while other classes are allowed to operate normally.


PFC asks the peer to stop sending frames of a particular CoS value by sending a pause frame to a well-known multicast address. This pause frame is a one-hop frame that is not forwarded when received by the peer. When the congestion is mitigated, PFC can request the peer to restart transmitting frames.

Licensing Requirements for Priority Flow Control

The following table shows the licensing requirements for this feature:

Product

License Requirement

Cisco MDS NX-OS

The QoS feature does not require a license. Any feature not included in a license package is bundled with the Cisco MDS NX-OS system images and is provided at no extra charge to you. For a complete explanation of the Cisco MDS NX-OS licensing scheme, see the Cisco MDS NX-OS Licensing Guide.

Guidelines and Limitations for Priority Flow Control

PFC has the following configuration guidelines and limitations:

  • If PFC is enabled on a port or a port channel, it does not cause a port flap.

  • A flap occurs when both the PFC and LFC are enabled and PFC is disabled before LFC is configured.

  • PFC configuration enables PFC in both the send (Tx) and receive (Rx) direction.

  • PFC on mode is used to support the hosts that support PFC but do not support the Data Center Bridging Capability Exchange Protocol (DCBXP).

  • Only an exact match of the no-drop CoS is considered as a successful negotiation of PFC by the DCBXP.

Default Settings for Priority Flow Control

The following table lists the default setting for PFC:

Parameter

Parameter

PFC

Auto

Configuring Priority Flow Control

You can configure PFC one of these three modes with the long-distance feature:

  • auto—Enables the no-drop CoS values to be advertised by the DCBXP and negotiated with the peer. A successful negotiation enables PFC on the no-drop CoS. Any failures because of a mismatch in the capability of peers causes the PFC not to be enabled.

  • on—Enables PFC on the local port regardless of the capability of the peers.

  • off—Disables PFC on the local port.


Note

You can also enable Link-level Flow Control (LFC) on the same port in which PFC is enabled. However, PFC, if enabled, always gets the priority.


Procedure


Step 1

Enter global configuration mode:

switch# configure terminal

Step 2

Enter interface configuration mode:

switch(config)# interface ethernet slot/ethernet

Step 3

Set the PFC to auto, off, or on mode. By default, PFC mode is set to auto on all ports.

switch(config-if)# priority-flow-control mode { auto | off | on }

Step 4

Exit interface and global configuration modes:

switch(config-if)# exit

switch(config)# exit

Step 5

(Optional) Verify the status of PFC on all interfaces:

switch# show interface priority-flow-control


Example: Configuring Priority Flow Control

The following running configuration shows how to configure PFC. Replace the placeholders with relevant values for your setup.

configure terminal
 interface <ethernet 1/2>
  priority-flow-control mode on
  exit
 exit