cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1195
Views
0
Helpful
3
Replies

CBWFQ - Are there multiple Queues per Class, or one Queue per Class?

According to "Cisco QOS Exam Certification Guide 2nd Edition", it states that:

Currently, CBWFQ can use either FIFO or WFQ inside the class-default queue.
With Flow-Based WFQ in the class-default queue, when CBWFQ decides to take one or more packets from the queue, it takes the packet with the best sequence number (SN) — just like WFQ normally does.

Although some of the CBWFQ command output references WFQ in sections describing queues other than class-default, CBWFQ does not use Flow-Based WFQ inside any of these queues.
CBWFQ on most Cisco router models can only use Flow-Based WFQ inside one queue—the class-default queue.
(On the 7500, WFQ can be used inside each CBWFQ queue.)

From this, I assumed that there is only a Single Queue for the class-default, and WFQ will assign the Sequence Number (SN) for this Queue only, and extract the lowest SN from the Queue, to the Tx-Ring.

 

However I got confused when I see these from the verification command:

R4#show policy-map interface
 FastEthernet0/0

  Service-policy output: ASD

    Class-map: QWE (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0000 bps, drop rate 0000 bps
      Match: protocol icmp
      Queueing
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops/flowdrops) 0/0/0/0
      (pkts output/bytes output) 0/0
      bandwidth 20 kbps
      Fair-queue: per-flow queue limit 16 packets

    Class-map: class-default (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0000 bps, drop rate 0000 bps
      Match: any
      Queueing
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops/flowdrops) 0/0/0/0
      (pkts output/bytes output) 0/0
      Fair-queue: per-flow queue limit 16 packets
                  Maximum Number of Hashed Queues 32

If a Class have a "Maximum Number of Queues" within it, does it mean that there are multiple Queues per Class?

And also, if I have multiple Class with "Fair-queue", are the Sequence Number compared across the Classes or are they compared within the Class?

 

1 Accepted Solution

Accepted Solutions

Hi,

 

The first concept to understand that you have single output queue TX-ring in most Cisco routers (2900 and 3900). Also, queues created by QoS congestion management mechanisms are logical queues.

 

Now, HQF architecture works in a way that each class will have its logical queue (including the default class). A child policy within a class will create a sub-queue per child class. HQF QoS support upto 3 tiers depth sub-queues.

 

In the statement

CBWFQ on most Cisco router models can only use Flow-Based WFQ inside one queue—the class-default queue.

this is referenced to CBWFQ logical queues. For example if you have 5 classes (5 queues) CBWFQ, you can use WFQ in one of the 5 classes. However, within the class (queue) that is using WFQ you can have 32 sub-queues created by WFQ. Look at below chart.

 

CBWFQ Default Class with WFQ (one queue) ----------- WFQ Class#1 (queue#1)

                                                                          ----------- WFQ Class#2 (queue#2)

                                                                            ...................................

                                                                          -----------  WFQ Class#32 (queue 32)

 

The SN will be compared within the class (Queue). But if you have child policy within a class then the SN will go deeper to scan again all sub-classes until you find a first match.

Hope this clarify the confusion.

View solution in original post

3 Replies 3

Hi,

 

The first concept to understand that you have single output queue TX-ring in most Cisco routers (2900 and 3900). Also, queues created by QoS congestion management mechanisms are logical queues.

 

Now, HQF architecture works in a way that each class will have its logical queue (including the default class). A child policy within a class will create a sub-queue per child class. HQF QoS support upto 3 tiers depth sub-queues.

 

In the statement

CBWFQ on most Cisco router models can only use Flow-Based WFQ inside one queue—the class-default queue.

this is referenced to CBWFQ logical queues. For example if you have 5 classes (5 queues) CBWFQ, you can use WFQ in one of the 5 classes. However, within the class (queue) that is using WFQ you can have 32 sub-queues created by WFQ. Look at below chart.

 

CBWFQ Default Class with WFQ (one queue) ----------- WFQ Class#1 (queue#1)

                                                                          ----------- WFQ Class#2 (queue#2)

                                                                            ...................................

                                                                          -----------  WFQ Class#32 (queue 32)

 

The SN will be compared within the class (Queue). But if you have child policy within a class then the SN will go deeper to scan again all sub-classes until you find a first match.

Hope this clarify the confusion.

Hi,

That makes a lot of sense.

Are there anywhere that I can read about this 3 tier depth of sub-queues?

Hi Mohammad, 

Thanks for the clarification. Do you know any resource to study the tier based queues. 

Regards

Sanjeewa.