cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1909
Views
0
Helpful
1
Replies

QoS and buffers on ISR4k

Francois Lieuze
Level 1
Level 1

Hello guys,

 

I have to perform a QoS design which leverage Shaping & CBWFQ and I have a question regarding buffering. Target platforms are ISR4431 & ISR 4451X. I'm quite of struggling to find the way IOS-XE allocate buffers and if the queue-limit fot the buffer is shared among the queues or not.

 

In my context, High priority traffic is supposed to be bursty : at the beginning of each second, a significant quantity of traffic will arrive to the router. This router could be connected to a really slow WAN access.

 

A shaper rated to the WAN access bandwidth is set on the router and CBWFQ is performed inside the shaper with one priority class. Let's suppose that we don't use WRED (of course, we will use WRED). Let's also assume that a big quantity of non priority traffic is coming to the router while the priority queue is empty. The router will logically begins to fill the buffer of the shaper. I think at this time, the QoS mechanisms will trigger so the priority class will have always space in the buffer, but that is the point I would like to confirm with you guys.

 

If this is note the case, the buffer will soon become full and packets will be dropped. Finally, lets assume we are really unlucky and at the same time, priority traffic start to flow toward the router.

 

My other question is : is part of the priority traffic will be dropped at this time ? Is there any mechanism allowing the router to dequeue non-priority traffic from the buffer ?

 

More generally, if the priority traffic does not exceed the overall capacity of a shaper and is conform to the policer, is there a scenario where part of this traffic can be dropped ?

 

Thanks in advance.

 

 

 

Thanks in advance !

François

1 Reply 1

Joseph W. Doherty
Hall of Fame
Hall of Fame

BTW, first off, regarding WRED, I highly recommend it only be used by QoS experts. It's much more complicated to use correctly then it's documentation would seem to indicate. (For those who believe otherwise, you might look into all the RED variants, which should raise the question, why are they all needed?)

Generally speaking, as buffer memory, on an ISR, is provided by its ordinary RAM (or so I believe), it's uncommon to run out of buffer resources physically. However, it's not uncommon to run out of buffer resources logically, as Cisco defaults are not uncommonly insufficient. (Do note, though, that very large buffers, to avoid packet dropping raises its own issues.)

I believe a shaper might set the size of it's buffers based on the CBWFQ policy class queue-limit command (if supported by the IOS). (Further, some CBWFQ policy classes support a flow queue limit command; when using FQ in the class).

As far as I know, if a parent policy class hits the class queue limit, all traffic going to the class will be dropped.

For example, given something like:

policy-map Parent
class class-default
shape average 1000000
service-policy Child

policy-map Child
class LLQ
priority 10 percent

If class-default traffic, within the Child policy causes the Parent's class-default to overflow, then incoming Child LLQ traffic will be dropped.

If this is possible, and a problem, you might try something like:

policy-map Parent2
class LLQ
priority 10 percent
class class-default
shape average 900000
service-policy Child

The Parent2 policy, unfortunately, "reserves" 10 percent of bandwidth for the LLQ.

Another, possibly better, approach would be something like:

policy-map Parent3
class class-default
shape average 1000000
queue-limit 1000
service-policy Child

policy-map Child3
class LLQ
priority 10 percent
class class-default
queue-limit 900