MQC: Using 'shape' with 'bandwidth'

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