This document answers a question on the significance of the egress threshold values in the Cisco Catalyst 3750 Series Switches.
What is the significance of the egress threshold values in the queue threshold calculation for drop avoidance?
In this configuration example,
Switch(config)#mls qos queue-set output 1 threshold 1
3200 3200 100 3200
3200 is the threshold percentage for WTD (Weighted Tail Drop). This number decides how many buffers to utilize from the common pool before the packets are tail dropped. Through this configuration, we tell the switch that thresholds 1, 2, and 3 on egress queue 1 in queue-set 1 are equal and they are free to utilize the common pool up to the configured value (3200). In this example, the drop threshold is 3200 and the maximum threshold and reserved threshold are set to 100%.
The total available common pool for egress buffers varies from one platform to the other. They are more limited in 2960-S: 2MB for the whole system (downlink ports + uplink ports), while 3750-X has 2MB for each set of 24 downlink ports and 2MB for uplinks.
100 is the reserved percent of the buffers for that queue. For example, lets say you have preconfigured 'mls qos queue-set output 1 buffers 15 45 20 20'. Then, 'mls qos queue-set output 1 threshold 1 3200 3200 100 3200' means that queue 1 has 100% of 15% of the total buffers available as reserved.
The egress buffer of 2MB is split into: --------------------------| CPU pool ||-------------------------|| Common Pool || ||-------------------------|| | | | | ||Q1|Q2|Q3|Q4| ....... |<---Reserved Pool| | | | | |---------------------------
- The CPU and Common Pool are of fixed size.
- The Reserved Pool holds the minimum guaranteed buffer space reserved for each front-panel port and its respective queue. One queue reserved buffer cannot be borrowed and shared by other queues of either the same port or different ports. The size of the reserved pool varies and depends on the default or user-configured settings on each of the ports (reserved-threshold). The 3750 has four different queues and three thresholds per queue.
- The common pool contains all the buffer units that are not initially reserved (minus the CPU buffer space). Based on the above configuration, you can borrow from the common pool up to 3200% to accommodate a burst. This means the queue will take buffer units from the common pool until the common pool gets depleted/exhausted. However, as buffers from the common pool are not reserved, they can be returned back to the common pool by the queues when they are no longer needed or after the burst has been put on wire.
- The queue set 1 is assigned to all the ports; by default each queue is allocated 25 percent of the total buffer space. Each queue is reserved 50 percent of allocated buffer space which is 12.5 percent of the total buffer space. The sum of all the reserved buffers represents the reserved pool, and the buffers that remain are part of the common pool. The above configuration sets 3200 percent as the maximum memory that this queue can have before packets are dropped.