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: Priority Flow Control (PFC) is supported on per priority level for ICX 7550 and ICX 7850 devices only.

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.

The ICX 7550 and 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 7550 and ICX 7850 devices. Instead, the ICX 7550 and 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 ICX 7550 and ICX 7850 devices, the number of ingress buffers is set automatically according to the port speed when PFC is enabled.

Note: Configuring Priority Flow Control (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 ICX 7550 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

ICX 7550 devices: Priority Flow Control (PFC) is supported on per priority level. It is not supported at port level.

ICX 7850 devices: PFC is supported on per priority level. It is not supported at port level. PFC 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.

ICX 7650, ICX 8100, and ICX 8200 devices: PFC is not supported.