Traditionally, reserved buffers are statically allocated for each queue. No matter whether the queue is active or not, its
buffers are held up by the queue. In addition, as the number of queues increases, the portion of the reserved buffers allocated
for each queue can become smaller and smaller. Eventually, a situation may occur where there are not enough reserved buffers
to support a jumbo frame for all queues.
The device supports Dynamic Thresholding and Scaling (DTS), which is a feature that provides a fair and efficient allocation of buffer
resources. When congestion occurs, this DTS mechanism provides an elastic buffer allocation for the incoming data based on
the occupancy of the global/port resources. Conceptually, DTS scales down the queue buffer allocation gradually as the resources
are used up to leave room for other queues, and vice versa. This flexible method allows the buffers to be more efficiently
and fairly utilized.
As mentioned in the previous sections, there are two limits configured on a queue—a hard limit and a soft limit.
Hard limits are not part of DTS. These buffers are available only for that queue. The sum of the hard limits should be less
than the globally set up hard maximum limit. The global hard limit configured for egress queuing is currently set to 5705.
In the default scenario when there are no MQC policies configured, the 24 1-gigabit ports would take up 24 * 67 = 1608, and
the 4 10-gigabit ports would take up 4 * 720 = 2880, for a total of 4488 buffers, allowing room for more hard buffers to be
allocated based upon the configuration.
Soft limit buffers participate in the DTS process. Additionally, some of the soft buffer allocations can exceed the global
soft limit allocation. The global soft limit allocation for egress queuing is currently set to 7607. The sum of the hard and
soft limits add up to 13312, which in turn translates to 3.4 MB. Because the sum of the soft buffer allocations can exceed
the global limit, it allows a specific queue to use a large number of buffers when the system is lightly loaded. The DTS process
dynamically adjusts the per-queue allocation as the system becomes more heavily loaded.