07-19-2004 07:49 PM - edited 03-13-2019 05:41 AM
All,
I have read that one may configure up to 4 priority queues, not using the Modular QOS CLI (e.g. "priority-list" command, etc).
For the Modular QOS CLI, PQs are implemented using LLQ ("priority" command), and for this one can only specify a single PQ (though multiple classes may be mapped to this single PQ).
What I would like to do is to have 2 distinct PQs (as should be possible in the non modular cli case) and also use CBWFQ (e.g. "bandwidth" command) for the rest of the clases. Basically I want to have EF in one PQ, another "special" class in the other PQ (lower priority than EF), and AF classes using CBWFQ.
Does anyone know of a way to combine the 2 methods (modular and non modular CLI) of configuring LLQ in order to implement such a configuration? I was encouraged to see that heirarchical policies are supported but so far I have not found a way to specify multiple PQs as well as CBWFQ.
Thanks much!
07-21-2004 03:45 AM
There has been alot of discussion on this subject. But it seems that while IOS will allow you to configure multiple priority queues, its not really possible for it to deliver multiple priority queues.
Which, if you think about it makes sense. A priority queue is just that, it takes priority over all other queues. If you configue 2 priority queues, how would you then then tell the scheduler that these are both priority, but the 2nd is less of a priority?
One way you can accomplish what you're trying to do:
1. Create a single "priority" queue for your EF traffic
2. Use "bandwidth" to guarantee bandwidth to your special class.
3. Put your AF traffic in class-default and let it "fair-queue".
Something like this:
policy-map foo
class EF
priority 100
class Special
bandwith 50
class class-default
fair-queue
-Geoff
07-21-2004 04:44 AM
Geoff,
Thanks for the advice.
What I am planning to do is to map both classes to the PQ, specifying different arg to priority statement for each. This way they both go into the PQ. I am not sure how IOS limits the rates separately within the same queue though, I need to do some testing to ensure this is actually what IOS does, but it is what the cisco docs claim.
It is actually possible to do such a thing using linux tc, actually this is much more flexible than IOS in terms of the queueing structures one can build.
Thanks again,
John
05-24-2006 08:47 AM
Great post Geoff.
I have a question to the form though, I also have LLQ implementations where the RTP traffic has an priority statement, but then either signaling, or another type of traffic uses the bandwidth statement. I realize that LLQ cannot use both, so is this a LLQ/CBWFQ solution? Also, in that bandwidth statement is that in kbps? Or a %?
05-24-2006 11:33 AM
Well, the best practice is to put voice stream (RTP) traffic in the priority class and voice signaling in another CBWFQ class, but if you want to you can put the signaling traffic in the priority class as well by doing something like this:
class-map match-any Voice
match ip dscp ef
match ip dscp af31
match ip dscp cs3
policy-map Voice
class Voice
priority 128 or priority percent 33
class default-class
fair-queue
With the above example I belive I answered your second question in regards to the priority and bandwidth statement, when it's just a number that represents the bandwidth in kbps, if you add "percent" then you can specify the percent of the link's speed. Do not mix these in the same policy-map, use either bandwidth or bandwidth percent.
HTH, please rate all helpful posts!
Chris
05-24-2006 03:35 PM
When you place two classes of traffic into priority queues (say voice and video), they both get priority treatment.
class voice
priority 48
class video
priority 36
The priority queue is given a total bandwidth of 48 + 36, but each traffic is not allowed more than what is guaranteed (48 for voice and 36 for video)
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide