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

questions on CBWFQ

sarahr202
Level 5
Level 5

Hi every body

CBWFQ uses both custom based ( with a little enhancement i.e we used percentage of interface bandwidth rather than byte counts) and weighted fair queuing using class map and policy maps

Here is my confusion.

In Custom based queuing we have queues with bytes counts and scheduler uses round robin method to empty them, for example :

http traffic assigns to q1 byte count 2000

ftp traffic assigns to 2 byte count 200

q1 will be serviced first until byte count reaches zero then scheduler moves to q2 and services it until q 2 byte count reaches zero.

Here we have control as to which traffic goes toq 1 and thereby we can control which traffic get serviced first before others.

Now if we compare this with CBWFQ,specifically custom-based portion of CBWQ we do not have this control.

for example.

Class HTTP

match http

Class FTP

match ftp

policy-map NEE

class Http

bandwidth 10

class-map Ftp

bandwidth 20

int s0/0

service-policy  Nee output

Above , we are saying http traffic will get upto 10 percent bandwidth of s0/0 ,ftp will get 20 percent.

But which queue will be served first?  http queue? or ftp? queue? ( because my understanding is in CBWFQ, we still follow round robin algorithm to empty our queues, that means the q1 will be service first than q2. When we use CBWFQ we do not know which queue will be mapped to http or ftp in my example)

thanks.

have a great weekend

2 Accepted Solutions

Accepted Solutions

Reza Sharifi
Hall of Fame
Hall of Fame

Hi Sarah,

Hope all is well with the new job!!

According to the CBWFQ document (link below) the traffic is forwarded based on FIFO and not Round Robin. So, in this case if http packet comes in first, it will be served first and so on....

CBWFQ extends the standard WFQ functionality to provide support for user-defined traffic classes. For CBWFQ, you define traffic classes based on match criteria including protocols, access control lists (ACLs), and input interfaces. Packets satisfying the match criteria for a class constitute the traffic for that class. A FIFO queue is reserved for each class, and traffic belonging to a class is directed to the queue for that class.

link:

http://www.cisco.com/en/US/docs/ios/12_2/qos/configuration/guide/qcfconmg.html#wp1001203

HTH

View solution in original post

Joseph W. Doherty
Hall of Fame
Hall of Fame

Disclaimer

The  Author of this posting offers the information contained within this  posting without consideration and with the reader's understanding that  there's no implied or expressed suitability or fitness for any purpose.  Information provided is for informational purposes only and should not  be construed as rendering professional advice of any kind. Usage of this  posting's information is solely at reader's own risk.

Liability Disclaimer

In  no event shall Author be liable for any damages whatsoever (including,  without limitation, damages for loss of use, data or profit) arising out  of the use or inability to use the posting's information even if Author  has been advised of the possibility of such damage.

Posting

Above , we are saying http traffic will get upto 10 percent bandwidth of s0/0 ,ftp will get 20 percent.

Yea, the policy says that, but that's only true if CBWFQ is active, all the classes are active, all the class allocations add to 100%, and all the classes are trying to exceed their allocations.

But which queue will be served first?  http queue? or ftp? queue? ( because my understanding is in CBWFQ, we still follow round robin algorithm to empty our queues, that means the q1 will be service first than q2. When we use CBWFQ we do not know which queue will be mapped to http or ftp in my example)

Actually, CBWFQ for non-LLQs is very similar to custom-queuing.  Queues are serviced to try to maintain the ratios between them.  In your example, FTP will be dequeued such that it transmits twice as much data as HTTP; because of the 20 and 10 percentages or 2:1 ratio between the two classes.

If you wanted to know, from an "even start", which class would transmit first, I don't know, and as it isn't documented, I wouldn't count on it always being the same between platforms and/or IOS versions.

As it's packets that are transmitted, during short time intevals, if there a large size difference between the packet sizes for HTTP vs. FTP, the 2:1 ratio won't be exact, but it should average out over a longer time interval.

View solution in original post

3 Replies 3

Reza Sharifi
Hall of Fame
Hall of Fame

Hi Sarah,

Hope all is well with the new job!!

According to the CBWFQ document (link below) the traffic is forwarded based on FIFO and not Round Robin. So, in this case if http packet comes in first, it will be served first and so on....

CBWFQ extends the standard WFQ functionality to provide support for user-defined traffic classes. For CBWFQ, you define traffic classes based on match criteria including protocols, access control lists (ACLs), and input interfaces. Packets satisfying the match criteria for a class constitute the traffic for that class. A FIFO queue is reserved for each class, and traffic belonging to a class is directed to the queue for that class.

link:

http://www.cisco.com/en/US/docs/ios/12_2/qos/configuration/guide/qcfconmg.html#wp1001203

HTH

Joseph W. Doherty
Hall of Fame
Hall of Fame

Disclaimer

The  Author of this posting offers the information contained within this  posting without consideration and with the reader's understanding that  there's no implied or expressed suitability or fitness for any purpose.  Information provided is for informational purposes only and should not  be construed as rendering professional advice of any kind. Usage of this  posting's information is solely at reader's own risk.

Liability Disclaimer

In  no event shall Author be liable for any damages whatsoever (including,  without limitation, damages for loss of use, data or profit) arising out  of the use or inability to use the posting's information even if Author  has been advised of the possibility of such damage.

Posting

Above , we are saying http traffic will get upto 10 percent bandwidth of s0/0 ,ftp will get 20 percent.

Yea, the policy says that, but that's only true if CBWFQ is active, all the classes are active, all the class allocations add to 100%, and all the classes are trying to exceed their allocations.

But which queue will be served first?  http queue? or ftp? queue? ( because my understanding is in CBWFQ, we still follow round robin algorithm to empty our queues, that means the q1 will be service first than q2. When we use CBWFQ we do not know which queue will be mapped to http or ftp in my example)

Actually, CBWFQ for non-LLQs is very similar to custom-queuing.  Queues are serviced to try to maintain the ratios between them.  In your example, FTP will be dequeued such that it transmits twice as much data as HTTP; because of the 20 and 10 percentages or 2:1 ratio between the two classes.

If you wanted to know, from an "even start", which class would transmit first, I don't know, and as it isn't documented, I wouldn't count on it always being the same between platforms and/or IOS versions.

As it's packets that are transmitted, during short time intevals, if there a large size difference between the packet sizes for HTTP vs. FTP, the 2:1 ratio won't be exact, but it should average out over a longer time interval.

Thanks Joseph and Reza

If you wanted to know, from an "even start", which class would transmit first, I don't know, and as it isn't documented

This is exactly what I found in CCIE R/S  guide by Wendel

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: