Ethernet Flow Control and QoS


This section summarizes the flow-control and QoS mechanisms supported by Ethernet.

Ethernet Flow Control

As discussed in chapter 5, "The OSI Physical and Data Link Layers," Ethernet supports reactive flow control via the Pause Operation Code (Pause Opcode). All 10-Gbps Ethernet implementations inherently support flow control and do not need to negotiate its use. 1000BASE-X negotiates flow control using the Pause bits in the Configuration ordered sets. Twisted-pair-based Ethernet implementations use the Technology Ability field to negotiate flow control. Except for 10-Gbps Ethernet implementations, three options may be negotiated: symmetric, asymmetric, or none. Symmetric indicates that the device is capable of both transmitting and receiving the Pause Opcode. Asymmetric indicates that the device is capable of either receiving or transmitting the Pause Opcode. None indicates that the Pause Opcode is not supported. All 10-Gbps Ethernet implementations support symmetric operation. A Pause Opcode may be sent before a queue overrun occurs, but many Ethernet switches do not behave in this manner.

Ethernet switches often employ "tail-drop" to manage flows. Tail-drop is not a mechanism per se, but rather a behavior. Tail-drop is the name given to the process of dropping packets that need to be queued in a queue that is already full. In other words, when a receive queue fills, additional frames received while the queue is full must be dropped from the "tail" of the queue. ULPs are expected to detect the dropped frames, reduce the rate of transmission, and retransmit the dropped frames. Tail-drop and the Pause Opcode often are used in concert. For example, when a receive queue fills, a Pause Opcode may be sent to stem the flow of new frames. If additional frames are received after the Pause Opcode is sent and while the receive queue is still full, those frames are dropped. For more information about Ethernet flow control, readers are encouraged to consult the IEEE 802.3-2002 specification.

Ethernet QoS

Ethernet supports QoS via the Priority field in the header tag defined by the IEEE 802.1Q-2003 specification. Whereas the 802.1Q-2003 specification defines the header tag format, the IEEE 802.1D-2004 specification defines the procedures for setting the priority bits. Because the Priority field is 3 bits long, eight priority levels are supported. Currently, only seven traffic classes are considered necessary to provide adequate QoS. The seven traffic classes defined in the 802.1D-2004 specification include the following:

  • Network control information

  • Voice applications

  • Video applications

  • Controlled load applications

  • Excellent effort applications

  • Best effort applications

  • Background applications

The 802.1D-2004 specification defines a recommended set of default mappings between the seven traffic classes and the eight Ethernet priority values. In Ethernet switches that support seven or more queues per port, each traffic class can be mapped into its own queue. However, many Ethernet switches support fewer than seven queues per port. So, the 802.1D-2004 specification also defines recommendations for traffic class groupings when traffic classes must share queues. These mappings and groupings are not mandated, but they promote interoperability between Ethernet devices so that end-to-end QoS can be implemented successfully in a plug-and-play manner (even in multi-vendor environments).

Currently, no functionality is defined in the Ethernet specifications for the Pause Opcode to interact with the Priority field. So, the Pause Opcode affects all traffic classes simultaneously. In other words, an Ethernet switch that supports the Pause Opcode and multiple receive queues on a given port must send a Pause Opcode via that port (affecting all traffic classes) if any one of the queues fills. Otherwise, tail-drop occurs for the queue that filled. However, tail-drop can interact with the Priority field. Many Ethernet switches produced by Cisco Systems support advanced tail-drop, in which queuing thresholds can be set for each Ethernet priority level. Tail-drop then affects each traffic class independently. When a particular traffic class exceeds its queue threshold, frames matching that traffic class are dropped while the queue remains above the threshold defined for that traffic class. Other traffic classes are unaffected unless they also exceed their respective thresholds. The Pause Opcode needs to be sent only if all queues filled simultaneously. Alternately, the Pause Opcode may be sent only when one or more of the high-priority queues fill, thus avoiding tail-drop for high-priority traffic while permitting tail-drop to occur for lower-priority traffic. In this manner, the Pause Opcode can interact with the Priority field, but this functionality is proprietary and is not supported by all Ethernet switches. For more information about Ethernet QoS, readers are encouraged to consult the IEEE 802.1Q-2003 and 802.1D-2004 specifications.




Storage Networking Protocol Fundamentals
Storage Networking Protocol Fundamentals (Vol 2)
ISBN: 1587051605
EAN: 2147483647
Year: 2007
Pages: 196
Authors: James Long

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net