Priority Flow Control

The RUCKUS implementation of priority flow control (PFC) prevents frame loss from congestion by pausing traffic based on the congested priority without affecting the traffic of uncongested priorities.
Note: PFC is supported only on ICX 7250, ICX 7450, and ICX 7850 devices.

Flow control enables feedback from a receiver to its sender to communicate buffer exhaustion and buffer availability. A receiver generates a MAC control frame and sends a PAUSE request to a sender when a specified threshold (Xoff value) of the receiver buffer is filled. Upon receiving a PAUSE request, the sender stops transmission of any new packets until the receiver notifies the sender that it has sufficient buffer space (Xon value). The RUCKUS implementation of IEEE 802.1Qbb PFC supports eight priorities and four priority groups (PGs) that can be subjected to flow control independently. You can configure PGs for priority flow control and ingress buffer management.

Note: PFC is disabled by default. It can be enabled by using the priority-flow-control enable command.

Note: Priority flow control and IEEE 802.3x flow control are mutually exclusive; therefore, configuring the priority-flow-control enable command disables IEEE 802.3x in both the transmit and receive directions.
Note: PFC is always symmetric. Once it is enabled, it enables both PFC RX and TX.

Because multiple priorities can be mapped to a single PG, congestion on one priority in a PG may generate a pause, stopping transmission of all priorities in that PG. Therefore, it is important to create a custom priority-to-PG map to meet your application needs, using either PFC pause honoring or PFC pause transmission.

PFC can be enabled globally on all supported devices. The ICX 7450 and ICX 7250 devices support per-port per-priority PFC, in which PFC can be enabled or disabled on individual ports. These devices support hierarchical queuing, which allows you to allocate separate queue groups for lossy traffic and loss-less traffic with the same priority. Traffic classified as the same traffic class but coming from different sources (lossy or loss-less) goes to different queues upon egress.

The ICX 7850 devices support a flat queuing structure. Therefore, it is not possible to channel the traffic from different sources with the same priority to separate lossy and loss-less queues. A pause frame applied to this queue affects the traffic from both sources (lossy and loss-less). Therefore, PFC cannot be enabled at the interface level on ICX 7850. Instead, the ICX 7850 devices support per-priority PFC, in which lossy and loss-less traffic is channeled to different egress queues based on the priorities mapped to the priority groups.

PFC Pause Honoring

  • The MAC decodes the class enable vector field to extract the priorities and pause the timer value from the packet.
  • The per-priority Xoff or Xon status is passed to the pausing logic to pause or resume packet scheduling to the corresponding queue of the egress port.

PFC Pause Transmission

  • Priorities 0 through 6 can be mapped to a PG; Priority 7 cannot be mapped.
  • The mapping is configurable.
  • When the buffer threshold of a PG exceeds the Xoff value, a PFC pause frame is sent. The pause frame is encoded with all priorities that belong to the PG in the class enable vector.

A receiver using PFC must predict the potential for buffer exhaustion for a PG and respond by generating an explicit pause frame for that class when that condition arises. At any time, the receiver must have enough ingress buffers available to store any packet that may be in flight while the pause frame travels back to the sender and gets processed there. In RUCKUS ICX 7250, ICX 7450, and ICX 7850 devices, the number of ingress buffers is set automatically according to the port speed when PFC is enabled.

Note: Configuring PFC commands may temporarily interrupt traffic.

You can configure the qos priority-to-pg command to change the default priority to PG mapping.

By default, the RUCKUS ICX 7250, ICX 7450, and ICX 7850 devices boot up with tail-drop mode, which means that packets are dropped at the egress queues during congestion. By default, all ports honor IEEE 802.3x pause. However, when transmission of the IEEE 802.3x pause is disabled, PFC is also disabled. You can configure the symmetrical-flow-control enable command to enable the transmission of the IEEE 802.3x pause.

Note: Enabling flow control on ports that have auto-negotiation enabled causes flapping because the port pause capabilities must be advertised and negotiated again with the peer. Ports with auto-negotiation disabled do not experience flapping.

PFC Support on ICX Devices

RUCKUS ICX 7150 devices: Priority flow control (PFC) is not supported.

RUCKUS ICX 7250 devices: Symmetrical flow control (SFC) is not supported for ports across stack units.

RUCKUS ICX 7450 devices: SFC is not supported for ports across stack units or for ports across master and slave packet processor (pp) devices in RUCKUS ICX 7450-48 units.

RUCKUS ICX 7550 devices: PFC is not supported.

RUCKUS ICX 7650 devices: PFC is not supported.

RUCKUS ICX 7850 devices: PFC is supported. SFC is not supported for 1-Gbps ports as well as for ports across stack units. Port flow control is not supported in 1-Gbps ports.