RE: MQC: Using 'shape' with 'bandwidth'

From: Paresh Khatri (Paresh.Khatri@aapt.com.au)
Date: Mon Dec 05 2005 - 00:15:16 GMT-3


Thanks Chris.. I suspected I would not get a definitive answer to this but it
was worth a shot :-)

Cheers,
Paresh.

-----Original Message-----
From: Chris Lewis [mailto:chrlewiscsco@yahoo.com]
Sent: Monday, 05 December 2005 01:06 PM
To: Paresh Khatri; Cisco certification
Subject: Re: MQC: Using 'shape' with 'bandwidth'

Paresh,

It looks like you have a good undersatnding of what you need for the lab exam
on this topic, going beyond that gets a bit tricky and there is not exactly
one answer, it can change depending on hardware.

The way I discuss this with customers is at a level that considers the
followiong:

For egress, packets get placed in to a class, the per class policy is applied,
then packets enter the frame relay shaper. After the shaper there is either a
single FIFO or a dual FIFO depending on FRF.12 configuration. If single FIFO,
all packets go in to that, if dual FIFO, voip packets can bypass the frame
shaper depending on platform capabilities.

Chris

Paresh Khatri <Paresh.Khatri@aapt.com.au> wrote:

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