Configuring Rate Limits on Enhanced Queuing DPCs
You can rate-limit the strict-high and high queues on the Enhanced Queuing DPC. Without rate limits, traffic in higher-priority queues can block the transmission of lower-priority packets. Unless limited, higher-priority traffic is always sent before lower-priority traffic, causing the lower-priority queues to “starve” and cause timeouts and unnecessarily resent packets.
On the Enhanced Queuing DPC, you can rate-limit queues before the packets are queued for output. All packets exceeding the configured rate limit are dropped, so care is required when establishing this limit. This model is also supported on IQ2 PICs. For more information about configuring CoS on IQ2 PICs, see CoS on Enhanced IQ2 PICs Overview.
Rate limiting is implemented differently on Enhanced Queuing DPCs and non-queuing Packet Forwarding Engines. On Enhanced Queuing DPCs, rate limiting is implemented using a single-rate two-color policer. On nonqueuing Packet Forwarding Engines, rate limiting is achieved by shaping the queue to the transmit rate and keeping the queue delay buffers small to prevent too many packets from being queued after the shaping rate is reached.
To rate-limit queues, include the transmit-rate
statement with the rate-limit
option at the [edit
class-of-service schedulers scheduler-name]
hierarchy level:
[edit class-of-service schedulers scheduler-name] transmit-rate rate rate-limit;
The following example limits the transmit rate of a strict-high
expedited-forwarding queue to 1 Mbps. The scheduler and scheduler
map are defined, and then applied to the traffic at the [edit
interfaces]
and [edit class-of-service]
hierarchy
levels:
[edit class-of-service] schedulers { scheduler-1 { transmit-rate 1m rate-limit; # This establishes the limit priority strict-high; } } scheduler-maps { scheduler-map-1 { forwarding-class expedited-forwarding scheduler scheduler-1; } } [edit interfaces] s0-2/2/0 { per-unit-scheduler; encapsulation frame-relay; unit 0 { dlci 1; } } [edit class-of-service] interfaces { so-2/2/0 { unit 0 { scheduler-map scheduler-map-1; shaping-rate 2m; } } }
You can issue the following operational mode commands to verify your configuration (the first shows the rate limit in effect):
show class-of-service scheduler-map scheduler-map-name
show class-of-service interface interface-name
You can issue the show interfaces queue interface-name
command to view the number of packets dropped at an interface.
The output of the show interfaces queue interface-name
command always displays the rate-limit counter fields whether
or not rate limiting is configured on the queue. Rate-limit counters
are displayed in two columns. The first column is the consolidated
count of the packets dropped and the second column is the real-time
count of the packets dropped.
Rate-limit packet drop counters display the value 0 when rate limiting is not configured on the queue or when the queue does not have rate-limit packet drops even with rate limiting configured.
Rate-limit packet drop counters display meaningful values in both columns when the queue has rate-limit packet drops. However, when rate limiting is not happening in real time but has occurred earlier, the first column displays the consolidated count and the second column displays the value 0.
You
can clear the packet drop statistics by using the clear interface
statistics interface-name
command.