cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
916
Views
5
Helpful
5
Replies

Multiple Priority Queues?

jhaluska
Level 1
Level 1

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!

5 Replies 5

geoff.belknap
Level 1
Level 1

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

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

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 %?

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

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)

Sankar Nair
UC Solutions Architect
Pacific Northwest | CDW
CCIE Collaboration #17135 Emeritus