From: Paresh Khatri (Paresh.Khatri@aapt.com.au)
Date: Sun Dec 04 2005 - 21:30:36 GMT-3
Hi all,
I'm trying to get an understanding of how the 'shape' command works when used together with a 'bandwidth' command.
For example:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
class-map match-all prec3
match ip precedence 3
!
policy-map PolOut4
class prec3
bandwidth 128
shape average 256000
router#sh policy-map PolOut4
Policy Map PolOut4
Class prec3
Bandwidth 128 (kbps) Max Threshold 64 (packets)
Traffic Shaping
Average Rate Traffic Shaping
CIR 256000 (bps) Max. Buffers Limit 1000 (Packets)
router#
router#sh policy-map int fast0/0 output
FastEthernet0/0
Service-policy output: PolOut4
Class-map: prec3 (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: ip precedence 3
Queueing
Output Queue: Conversation 265
Bandwidth 128 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Traffic Shaping
Target/Average Byte Sustain Excess Interval Increment
Rate Limit bits/int bits/int (ms) (bytes)
256000/256000 1984 7936 7936 31 992
Adapt Queue Packets Bytes Packets Bytes Shaping
Active Depth Delayed Delayed Active
- 0 0 0 0 0 no
Class-map: class-default (match-any)
41 packets, 5096 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
router#
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I don't have any problems with the intent of such a configuration. The bandwidth will determine the minimum rate at which the prec3 queue will be serviced under congestion whereas the shaping rate will be the maximum rate at which the queue will be serviced. Based on my testing, all of this works quite well.
My confusion is with the order of operations and the queue sizes. The output of 'show policy-map' indicates a max buffers of 1000 (for the shaping queue) and a threshold of 64 packets for the CBWFQ queue. However, the output of 'show policy-map' interface does not show the max buffers for shaping. Are there two separate queues used when using such a configuration ? If so, what is the order of operations here ?
Here is what I consider to be the three options:
1. There are 2 queues where the shaping queue follows the CBWFQ queue.
The output of the CBWFQ queue enters the shaping queue from which packets are leaked out based on the shaping parameters. This would satisfy the shaping requirement of the class. At each scheduling interval, the router would schedule packets out of the CBWFQ and into the shaping queue. At the same time it would de-queue packets from the head of the shaping queue at a rate that does not exceed the shaping rate. Therefore, for classes for which shaping is configured, packets destined for the TxQ would only be de-queued from the shaping queue (because packets de-queued from the CBWFQ queue would enter the shaping queue). For classes for which shaping is not configured, packets are dequeued directly from the CBWFQ queue and into the TxQ.
2. There are 2 queues where the CBWFQ queue follows the shaping queue.
The output of the shaping queue enters the CBWFQ queue from which packets are leaked out based on the shaping parameters. The router would give the CBWFQ queue sufficient credits in each shceduling interval so that the shaping rate is not exceeded. In this case, the shaping queue is there purely to provide additional buffer space. The scheduling of packets is consistent for all classes in this case (whether or not they use shaping) - all packets are de-queueud from the CBWFQ and send to the TxQ.
3. There is just one queue which is used for CBWFQ and shaping.
In this case, it would make sense that the queue is the size of the shaping queue (1000 packets, by default). The router would give the CBWFQ queue sufficient credits in each scheduling interval so that the shaping rate is not exceeded.
Alright, so that's what I am grappling with at the moment. So which of the above is it ? Or am I totally off the mark and there is some other way this is done.
All comments appreciated.
Paresh.
This communication, including any attachments, is confidential. If you are not the intended recipient, you should not read it - please contact me immediately, destroy it, and do not copy or use any part of this communication or disclose anything about it.
This archive was generated by hypermail 2.1.4 : Mon Jan 09 2006 - 07:07:50 GMT-3