White Papers
BP1037 Transitioning to DCB with EqualLogic PS series Storage Solutions 8
2.3.1 Priority-based Flow Control (PFC)
Priority-based Flow control is an evolution of the concept of Flow Control originally implemented in
the MAC Pause frame feature of Ethernet (IEEE 802.3x). Pause frames provide a simple way for control
of segment traffic, by allowing a NIC to send a request to an adjacent port to stop transmitting for a
specific time period. With no granularity applied to this request; all Ethernet frames between two ports
are stopped during the pause. But Ethernet NIC manufacturers were not always required to implement
it on all devices. Because of this, you can have a situation where a sending device does not
understand what to do with the pause frame sent by the receiving device. Frames would continue to
be transmitted in this case, which would lead to dropped frames at the receiving device. A similar
problem can also arise during what is referred to as “Head-of-Line Blocking”, where traffic from
multiple ingress ports is squeezed into a single egress port. When this port’s buffer fills up, and it is
unable to accept any more incoming packets, those packets must be discarded (dropped). This can
eventually lead to degradation of the network’s overall performance.
In PFC a request is sent to the sender to stop transmitting, but it in addition PFC leverages the idea of
classes of traffic to apply more granularity to the process. In a DCB environment, all traffic is tagged
with a Class of Service (CoS) using the virtual LAN (VLAN) “Q-tag”. PFC can then request that a specific
CoS be paused for a time, while other classes can continue unhindered as shown in Figure 1. In a
storage environment, this may mean that some (lower priority) TCP/IP traffic is dropped, while iSCSI
traffic is tagged with a different CoS, giving it a higher priority. As a benefit of PFC, once its use has
been negotiated both receiver and sender must adhere to it.
Figure 1 Priority-based Flow Control