Hi Kim,

Thanks for the input, trying to wrap my head around what you're saying.

If the shaper is putting packets into shaping queues to wait their turn to
meet CIR, what causes the CBWFQ queues to fill up?  There is no
backpressure to tell the class-based queues to stack up -- they should be
able to go straight to the tx_ring.  If it works that way, I would expect
to see the shaper working (overall traffic being throttled) but the
class-based software queues seeing no depth at all.

To clarify, I'm not doing per-class shaping.  I'm shaping the entire
interface, then feeding class-based queues.  This is what I'm doing...

policy-map pm-shaper
class class-default
shaper average percent 100
service-policy pm-cbwfq
!
policy-map pm-cbwfq
class cm-ssh
bandwidth percent 5
class cm-http
bandwidth percent 20
class class-default
fair-queue

Thanks again, looking forward to hearing back.

Keller Giacomarro
[email protected]


On Sat, Jul 14, 2012 at 5:12 AM, Kim Pedersen <[email protected]> wrote:

> Hi,
>
>   For the most part you are right.
>
>   However, an important piece of the puzzle is the fact that shaping
> queues are not the same as your regular software queues.
>
>   If shaping is in effect (ie, the current packet needs to wait in
> line), it gets put into one of your defined _shaping_ queues. From the
> shaping queue(s) packets are then released to the software queues and
> finally to your TX ring.
>
> Kim
>
> On Sat, Jul 14, 2012 at 12:07 PM, Keller Giacomarro <[email protected]>
> wrote:
> > I am trying to wrap my head around how QoS queueing actually functions.
>  If
> > you're able, please confirm or debunk my understanding!
> >
> > Your 'normal' QoS setup involves a CBWFQ policy-map applied outbound on a
> > WAN interface.  As the tx_ring fills up, packets are queued into the
> CBWFQ
> > policy-map queues (one per class-map), and are dequeued as normal.  The
> > tx_ring filling up is the trigger for filling queues.  Okay, simple so
> far.
> >
> > The complication comes when you have an interface with a rate limit
> higher
> > than your CIR (like a home Internet connection via 100Mbps ethernet with
> a
> > CIR of 512Kbps).  If CBWFQ is applied directly to the interface, even if
> > the bandwidth is set, the tx_ring clears faster than the WAN circuit will
> > take the data, and the software queues are bypassed entirely.  In this
> > situation, applying a CBWFQ policy-map directly to the interface, even
> > setting the bandwidth command, does absolutely nothing.
> >
> > Here's where I get fuzzier.  The solution to this is to put something
> else
> > between the CBWFQ policy-map and the tx_ring: a shaper via nested policy
> > maps.  The shaper is configured to the correct CIR.  As the shaper sees
> > that the interface is transmitting too fast, it begins to fill up the
> CBWFQ
> > policy-map queues instead of transmitting.  In this way, the physical
> > interface is faster than the CIR but we still create the necessary
> > 'backpressure' to fill up the software queues.
> >
> > Two things muck with my understanding:
> > In https://supportforums.cisco.com/thread/2132501 , a Cisco employee
> says
> > that the shaper uses WFQ (or HQF in the newest releases) to de-queue the
> > CBWFQ queues.  Why is the shaper implementing any dequeueing strategy at
> > all?  Shouldn't the CBWFQ policy-map be handling that (such as policy
> > queues going first, etc)?  And how can it possibly do that without full
> > flow information?
> >
> > The other issue is that the show commands on my router support my
> > understanding...almost.  If I'm moving a lot of ssh data upstream (via
> > scp), I can see the shaper queue fill and the CBWFQ queue fill, makes
> > sense.     Most of the time their values are the same.  However, they do
> > on occasion differ by a number or two.  Show command artifact, or an
> > indication that I have no idea what I'm talking about?
> >
> > gateway#show policy-map int f0/1
> >  FastEthernet0/1
> >
> >   Service-policy output: pm-wan-out-shaper
> >
> >     Class-map: class-default (match-any)
> >       600317 packets, 143960388 bytes
> >       30 second offered rate 631000 bps, drop rate 14000 bps
> >       Match: any
> >       Traffic Shaping
> >            Target/Average   Byte   Sustain   Excess    Interval
>  Increment
> >              Rate           Limit  bits/int  bits/int  (ms)      (bytes)
> >            600000/600000    937    3750      3750      6         468
> >
> >         Adapt  *Queue*     Packets   Bytes     Packets   Bytes
> Shaping
> >         Active *Depth*                         Delayed   Delayed   Active
> >         -      *3*         598394    141284492 90698     94225802  yes
> >
> >         Class-map: cm-ssh (match-all)
> >           70238 packets, 105192011 bytes
> >           30 second offered rate 621000 bps, drop rate 14000 bps
> >           Match: protocol ssh
> >           Queueing
> >             Output Queue: Conversation 74
> >             Bandwidth 5 (%)
> >             Bandwidth 30 (kbps)
> >             (pkts matched/bytes matched) 62464/93671468
> >         *(depth/total drops/no-buffer drops) 2*/1816/3
> >              exponential weight: 9
> >              mean queue depth: 1
> >
> > Appreciate your input -- hopefully this helps someone else too, as none
> of
> > the standard study resources I've read have adequately explained how this
> > works!
> >
> > Keller Giacomarro
> > [email protected]
> > _______________________________________________
> > For more information regarding industry leading CCIE Lab training,
> please visit www.ipexpert.com
> >
> > Are you a CCNP or CCIE and looking for a job? Check out
> www.PlatinumPlacement.com
> >
> > http://onlinestudylist.com/mailman/listinfo/ccie_rs
>
>
>
> --
> // Freedom Matters
> // CCIE #29189
> // www.packet-forwarding.net
>
_______________________________________________
For more information regarding industry leading CCIE Lab training, please visit 
www.ipexpert.com

Are you a CCNP or CCIE and looking for a job? Check out 
www.PlatinumPlacement.com

http://onlinestudylist.com/mailman/listinfo/ccie_rs

Reply via email to