CBWFQ Question

Answered Question
Dec 10th, 2008
User Badges:

Hi there,


I'm trying to understand the behaviour of class based weighted fair queue (CBWFQ) under particular conditions.


Say have 2 queues.


Queue 1 - bandwidth 50%

queue 2 - is the default queue bandwidth 10%


There is no LLQ

Policy is applied outbound.


For simplicity the interface bandwidth is 1mb.


What happens when both queues are full? How is the traffic split?

For arguments sake let's say that the other interface on the router is 100mb and its receiving both classes of traffic at rate of 20mb.


Now I understand that Queue 1 will have a reservation of 50% (500k). But how is the remaining 500k split?

In a 5:1 ratio or 50\50 split?


Thanks


Andy


Correct Answer by Joseph W. Doherty about 8 years 7 months ago

My understanding is excess available bandwidth is assigned in the same ratios, i.e. 5:1 in your example. This assumes all the other classes have explicitly defined bandwidths and they all would use 100%. I think I came across a Cisco reference that excess would be split equally across classes, i.e. 50/50 in your example, but believe the former, ratios, is correct. Reason being for this belief, CBWFQ seems to use the bandwidth setting to assign a "weight" to the class-queue (WFQ between classes), and as far as I can tell, this weight isn't adjusted when the class rate exceeds its bandwidth assignment.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (1 ratings)
Loading.
Correct Answer
Joseph W. Doherty Wed, 12/10/2008 - 04:07
User Badges:
  • Super Bronze, 10000 points or more

My understanding is excess available bandwidth is assigned in the same ratios, i.e. 5:1 in your example. This assumes all the other classes have explicitly defined bandwidths and they all would use 100%. I think I came across a Cisco reference that excess would be split equally across classes, i.e. 50/50 in your example, but believe the former, ratios, is correct. Reason being for this belief, CBWFQ seems to use the bandwidth setting to assign a "weight" to the class-queue (WFQ between classes), and as far as I can tell, this weight isn't adjusted when the class rate exceeds its bandwidth assignment.

serotonin888 Wed, 12/10/2008 - 11:47
User Badges:

Hi Joe,


Yep - I agree with you as this seems to fit well with the whole idea of WFQ. (although I dont have an evidence\expereince to back it up.)


Appreciate you taking the time to reply

thotsaphon Wed, 12/10/2008 - 04:12
User Badges:
  • Gold, 750 points or more

hi Andy,

what you are going to do is called "Congestion Management". So if the intefaace wasn't congested then they will be sent at access-rate,1Mbps. Bandwidth 50%? what does it mean? It will guarantee at least 50% of the bandwidth for queue1 if congested. Am I clear? so Queue1 can use more than 50% if the other queues use less than the guarantee bandwidth.


HTH,

Toshi

serotonin888 Wed, 12/10/2008 - 11:43
User Badges:

Hi Toshi,


The config would look something like this.


policy-map test-policy

class queue1

bandwidth percent 50

class queue2

bandwidth percent 10


The question is that if traffic for both queues is causing congestion how is the remainder of the bandwidth (40%) split between the queues?


My tendency would be to agree with Joe that the remaining bandwidth is split proportionally (weighted) between the 2 different classes.


(Although iv'e jsut realised my maths was wrong in the first example. Only 400k is not reserved for any class).


thotsaphon Wed, 12/10/2008 - 12:07
User Badges:
  • Gold, 750 points or more

hi,

let's check by using a "show policy-map interface " command. You will know that you have a class-default as well. Bandwidth is reserved 25% for a class-default by default. So you will then have 15% for available bandwidth. let's check by using a "show queueing interface s6/0 " command. Queue1 and Queue2 are very likely to use more than 50% and 10% respectively when the interface is congested.



HTH

Toshi

Actions

This Discussion