In order to provides more revenue-generating services to end users, equipment vendors must provide more finely-grain traffic management capabilities in their access box architectures. And, to make that happen, these engineers must properly implement policing, shaping, buffer management, and other key traffic management functions.
In this two-part series, we'll take a detailed look at seven key traffic management elements required in today's access boxes. In Part 1, we'll look at policing, buffer management, and scheduling issues. In Part 2, we'll further the discussion by examining shaping, management time, connection setup time, and propagation time issues. Let's kick off the discussion, however, by looking at policing.
Policing is the function of monitoring traffic generated by the user. Its purpose is to ensure traffic conformance to the contracted temporal behavior and takes appropriate action upon detection of nonconformance.
For cell-based traffic, the well-known generic cell rate algorithms (GCRA) are used to check for conformance to limits on how fast the cells may arrive and limits on the number of cells that may arrive back-to-back during a specified interval. Actions on detection of nonconformance include dropping or tagging cells. During the upstream queuing and buffer management functions, tagged cells are treated with lower priority compared to untagged cells.
For frame-based traffic, service eligibility test, or frame-based generic cell rate algorithm (F-GCRA), is defined in addition to conformance tests. A frame is deemed conforming if all its cells are conforming and nonconforming if one or more of its cells are nonconforming (GCRA test).
A frame is eligible for service guarantees if it is conforming and passes the F-GCRA test for the contracted minimum rate and the associated tolerance. This tolerance limits the number of frames that can arrive back-to-back during a specified interval. These notions of conformance and service eligibility make possible the specification of guarantees of service at the frame-level for the variable-sized frames when using the underlying cell-based infrastructure for transport. For frame-based traffic, ineligibility is handled by dropping complete frames or tagging all the cells of the frame to indicate lower priority during the upstream queuing and buffer management functions.
There are service models in which a sophisticated elastic user can adapt to a dynamic contract in which the cell submission rate from a user varies with time under the feedback information from the network. In such models, the policing function must dynamically adapt to check for conformance when the allowable rates change with time. For such services, dynamic generic cell rate algorithm (D-GCRA) can be used. When the delays from the policing function to communicate the new allowed rate to the source and the delays for the new conforming rate to take effect at the policing function are variable, the design of D-GCRA can be particularly challenging. Through an intelligent choice of delay parameters, however, it is possible to implement D-GCRA in ATM or network processors.
Packet-based policing functions are similar except that traffic is monitored in bytes per second, and the burstiness limits are established based on contracted maximum burst size specified in bytes. That is, several back-to-back packets can be sent, the exact number depending on the packet sizes.
The ultimate objective of the policing function is to protect network resources from malicious or unintentional source misbehavior that can affect quality-of-service (QoS) commitments to other users. This policing is done by detecting violations of contracted parameters and taking appropriate discarding or tagging actions.
2. Buffer Management
Buffer management follows the policing function and has the dual objectives of satisfying the heterogeneous QoS requirements of connections or flows. This is done by first providing the necessary protection and isolation, and then simultaneously extracting multiplexing gains from sharing the different buffer allocations across the hierarchy of classes/port, and across all ports.
Without distinct buffer allocations, it is not possible for the scheduling function to differentiate between the various classes of traffic competing for a single output port. Even within a single class, there may be QoS requirements of different connections or different flows, requiring separate queues or buffers. Providing a hierarchy of buffer allocations with static thresholds achieves the needed differentiation but does not allow efficient sharing across the connections or flows within a class, between different classes per port, or even between ports. As indicated earlier, buffer management should also promote maximal buffer use, because it has a direct affect on the cost of the service provided.
Dynamic thresholding achieves the dual objectives of QoS differentiation while maximizing buffer use. The thresholds are dynamic because they change depending on the amount of free buffer space available. The larger the free buffer space, the higher the threshold. These thresholds are usually provided at all hierarchical levels: per connection/flow, per traffic class per port, per port.
The dynamic thresholds provide tremendous flexibility for using the buffers differently for different traffic classes and connections/flows within each traffic class. Thus, the dynamic threshold function permits allocation of buffers to individually overloaded connections when there are large reserves of unoccupied buffers. This buffer allocation avoids losses that would be incurred by the overloaded connections under a static threshold policy.
Conversely, as the overall traffic-class occupancy approaches a per-traffic-class, per-port threshold, the extra allocation is withdrawn to prevent any one traffic class from occupying a disproportionate share of buffer space at a given port. For example, non-real-time services can use large buffers. By contrast, for real-time services, delay variation tolerance, and transfer delay, constraints dictate smaller guaranteed buffer requirements. Likewise, buffers across multiple ports can be shared up to a guaranteed minimum per port.
The dynamic threshold function provides controlled access of available buffers to overloaded ports and withdraws the extra buffers when general system overload peaks make it impossible to support higher buffer allocations for all the ports. This ensures a degree of fairness across different hierarchy levels. Because these thresholds are a function of buffer occupancies at the connection, class, or port levels, it is often useful to provide advance hysteresis parameters to signal the onset of heavy load state. Such parameters allow effective coping with transient affects in cases where the actual queue lengths may lag behind the control thresholds.
As the buffer fills, the hysteresis parameters recalibrate the thresholding function to allow for some reservation where the excess buffer is not shared and the connections/flows or classes/port or ports that are using space beyond guaranteed buffers have time to drain to their guaranteed allocations. Thus, an intelligent buffer management function plays a major role in providing needed service differentiation while maximizing buffer use.
The scheduling mechanism selects a queue to service at each cell/packet dispatch time such as to meet the associated QoS requirements. Such requirements are usually specified in terms of acceptable statistical bounds on maximum delay, delay variation, loss rate, or some combination of these depending on service type.
While satisfying the QoS requirements, the scheduling mechanism must deliver the bandwidth committed as part of the traffic contract. The scheduling mechanism must ensure sufficient isolation between connections such that the traffic characteristics and QoS requirements of one connection do not adversely impact the bandwidth and QoS provided to another connection. It is also expected that the scheduler will provide fair share to connections of excess link bandwidth whenever it is available.
The scheduling mechanism should promote high use of both bandwidth and buffers. It should be scalable with respect to the number of connections and over a wide range of link speeds. While isolating connections requiring guarantees on bandwidth and QoS, the scheduling mechanism must allow maximal sharing among connections requiring no bandwidth guarantee or QoS.
It is also desirable that scheduling functions work in conjunction with buffer management functions to provide tunable parameters that can maximize coverage of operating points and facilitate design of the connection admission control (CAC), which operates at the connection set-up phase and will be described in Part 2.
Providing QoS Differentiation
Similar to the buffer management function requirements, the need to provide QoS differentiation while enabling the best possible sharing of bandwidth resources and fairness requires a hierarchical scheduler active at the per-connection/flow level, per-service-class level, and per-port level to provide the needed bandwidth guarantees, delay bounds, and fair share of excess bandwidth. The scheduling function should also be augmented to deal with transient backpressure conditions, especially for real-time services.
At the first level, each connection/flow is usually provided its own queue for scheduling. The time to serve the queue, called the starting time, is computed based on the system potential function (also called the virtual time). System potential function keeps track of the total work done by the scheduler and is thus a non-decreasing function of time. A queue becomes eligible when the starting time is less than or equal to the system potential function.
Time-stamp values (finishing times) are assigned to queues based on the system potential function and that advance each cell/packet departure instant by an amount equal to the reciprocal of connection/flow service rate. At any time, the queue with the minimum eligible timestamp value is selected for service. Thus, eligibility is tested with respect to starting time, and scheduling is done based on finishing time. Because packets can be variable size, packet lengths should also be considered for packet scheduling.
Work done by the scheduler should be accurately tracked (the actual byte count) in this case, because it affects the ability to deliver bandwidth and delay guarantees. The objective of such a scheduler type is to assure bounded delay independent of the number of active connections, while maintaining fairness of service among competing connections.
For connections/flows that do not require delay guarantees but need bandwidth guarantees, frame-based approaches can be used. In this approach, weights are assigned to each connection/flow, and at any time the length of the frame is equal to the sum of all the weights of all the active connections/flows. The service for connection/flow is deemed complete in a given frame if the connection/flow is served a number of times equal to the assigned weight in the frame; such service is repeated in the next frame, and so on. Rather than serve each connection/flow consecutively based on its weight, service is interleaved among all the connections/flows in a round-robin fashion.
For variable sized-packets, packet lengths are considered in scheduling, and the frame-based packet scheduler keeps tracks of deficit accrued at each frame service. To meet the long-term average commitment of bandwidth guarantees, the scheduler applies it during the next frame service and so on.
The scheduling schemes at the first level are extended at the second level, where the scheduling is among the different service classes. At this level, bandwidth and delay guarantees are met at the aggregate service class level. Any leftover bandwidth from the guaranteed class level scheduler can be made available to different service classes in a fair manner. Similarly, scheduling at the third level can provide bandwidth and delay guarantees at the port level, while providing the capability to distribute excess bandwidth among ports. Thus, hierarchical scheduling provides the ability of QoS differentiation and through fair sharing promotes efficient bandwidth use.
On to Part 2
As designers can see, policing, scheduling, and buffer management are important elements in traffic management in access box architectures. But, to be truly successful, designs must also effectively handle shaping, propagation, management time, and setup time issues. We'll look at alL four of these components in Part 2.
About the Author
Deepak Kataria is a systems applications engineering manager at Agere Systems. He holds a BS and MS in Electronics & Communication Engineering and PhD in Electrical Engineering. Deepak can be reached at firstname.lastname@example.org.