# CBWFQ not supported on Sub-Interfaces

**URL:** https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023
**Category:** Lessons Discussion
**Created:** [December 26, 2016, 6:17pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023 "2016-12-26T18:17:06Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![ReneMolenaar](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/renemolenaar/32/488_2.png) [@ReneMolenaar](https://forum.networklessons.com/u/ReneMolenaar)
#### Post date: [December 26, 2016, 6:17pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/1 "2016-12-26T18:17:06Z")

</div>

This topic is to discuss the following lesson:

> **[CBWFQ not supported on Sub-Interfaces](https://networklessons.com/quality-of-service/apply-cbwfq-to-sub-interface)**
>
> CBWFQ is not supported on sub-interfaces unless you use hierarchical policy-maps with shaping. This lesson explains how to do it.

---

<div class="post-metadata">

### Author: ![ReneMolenaar](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/renemolenaar/32/488_2.png) [@ReneMolenaar](https://forum.networklessons.com/u/ReneMolenaar)
#### Post date: [May 10, 2013, 6:08pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/2 "2013-05-10T18:08:02Z")

</div>

CBWFQ stands for Class-Based Weighted Fair Queuing

---

<div class="post-metadata">

### Author: ![ReneMolenaar](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/renemolenaar/32/488_2.png) [@ReneMolenaar](https://forum.networklessons.com/u/ReneMolenaar)
#### Post date: [May 10, 2013, 6:10pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/3 "2013-05-10T18:10:01Z")

</div>

Class-Based Weighted Fair Queuing. It’s meant to give a certain bandwidth to traffic classes when an interface is congested.

---

<div class="post-metadata">

### Author: ![system](https://cdn-forum.networklessons.com/uploads/default/original/1X/1d2ef66728c7fbac8377748594345a3f474fce5f.png) [@system](https://forum.networklessons.com/u/system)
#### Post date: [January 27, 2014, 10:09am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/4 "2014-01-27T10:09:00Z")

</div>

Brilliant as ever Rene. Good post i was looking for it

---

<div class="post-metadata">

### Author: ![system](https://cdn-forum.networklessons.com/uploads/default/original/1X/1d2ef66728c7fbac8377748594345a3f474fce5f.png) [@system](https://forum.networklessons.com/u/system)
#### Post date: [August 30, 2014, 6:26pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/5 "2014-08-30T18:26:23Z")

</div>

Hi Rene,

I’ve been following your tutorials for quite a while now and they have helped my a lot. Thanks for them.

Two things I want to ask:

1. Using Class-map, is it possible to block something like Facebook. I am able to block [http://www.facebook.com](http://www.facebook.com) but https is a headache. Can’t seem to block only one https site. I don’t want to block all https category.

2. Do you have tutorials on different Switching stuffs like STP, RSTP, MST, VLAN etc?

Please share if ya have. Will be grateful.

rgds  
BJ

---

<div class="post-metadata">

### Author: ![ReneMolenaar](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/renemolenaar/32/488_2.png) [@ReneMolenaar](https://forum.networklessons.com/u/ReneMolenaar)
#### Post date: [September 11, 2014, 10:55am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/6 "2014-09-11T10:55:41Z")

</div>

Hi BJ,

You can use NBAR to block HTTP but not HTTPS, here’s why:

> **[Block website with NBAR on Cisco Router](https://networklessons.com/quality-of-service/block-website-with-nbar-on-cisco-router)**
>
> NBAR can be used on Cisco IOS routers to block certain websites. This lesson explains the configuration and verification.

I have quite some switching tutorials but I’m going to add more, take a look here:

> **[Switching - NetworkLessons.com](https://networklessons.com/switching)**
>
> This networklessons.com course covers all basic and advanced switching topics on Cisco IOS Catalyst switches.

Rene

---

<div class="post-metadata">

### Author: ![omarfakeye](https://cdn-forum.networklessons.com/letter_avatar_proxy/v4/letter/o/b5e925/32.png) [@omarfakeye](https://forum.networklessons.com/u/omarfakeye)
#### Post date: [May 14, 2015, 2:28am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/7 "2015-05-14T02:28:07Z")

</div>

Hello Rene,

Nice article. Does this work around also works on SVI (interface vlan)?

---

<div class="post-metadata">

### Author: ![omarfakeye](https://cdn-forum.networklessons.com/letter_avatar_proxy/v4/letter/o/b5e925/32.png) [@omarfakeye](https://forum.networklessons.com/u/omarfakeye)
#### Post date: [May 14, 2015, 2:32am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/8 "2015-05-14T02:32:26Z")

</div>

Adding..

Tried adding policies on a SVI ina 4900/4500 Switch. Said its not allowed. Does the same work around works for this? i haven’t tried it yet but will do and find out result.

---

<div class="post-metadata">

### Author: ![ReneMolenaar](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/renemolenaar/32/488_2.png) [@ReneMolenaar](https://forum.networklessons.com/u/ReneMolenaar)
#### Post date: [May 14, 2015, 4:34pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/9 "2015-05-14T16:34:43Z")

</div>

Hi Olaniyi,

QoS on the switches works a bit different. The configuration is different. Here’s an example:

> **[Queuing on Cisco 3560 and 3750 switch](https://networklessons.com/quality-of-service/how-to-configure-queuing-on-cisco-catalyst-3560-and-3750-switch)**
>
> This lesson teaches you queueing operates and the configuration of Cisco Catalyst 2960, 3560, and 3750 switches.

I think the 4900/4500 QoS is similar but I’d have to check.

Rene

---

<div class="post-metadata">

### Author: ![filips.85](https://cdn-forum.networklessons.com/letter_avatar_proxy/v4/letter/f/b782af/32.png) [@filips.85](https://forum.networklessons.com/u/filips.85)
#### Post date: [January 15, 2016, 3:50pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/10 "2016-01-15T15:50:39Z")

</div>

Hello Rene,

I don’t see a CBWFQ topic, so I’ll ask a question here.

I understand that CBWFQ guarantees a minimum bandwidth in times of congestion for certain traffic. If one queue doesn’t need it’s bandwitdh, other user-defined classes of traffic can use that bandwidth in proportion to their configured bandwidth.

But what happens with class-default class? Can it also use unused bandwidth of user-defined classes, and in which proportion? I suppose that class-default can use that bandwidth only if we manually define bandwidth for that class. Am I right?

---

<div class="post-metadata">

### Author: ![ReneMolenaar](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/renemolenaar/32/488_2.png) [@ReneMolenaar](https://forum.networklessons.com/u/ReneMolenaar)
#### Post date: [January 19, 2016, 1:33pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/11 "2016-01-19T13:33:44Z")

</div>

Hi Filip,

That’s right and the same thing applies to the class-default class. The only difference is that the class-default class will have a much higher weight that any of the user defined classes so it will only get a small portion of the bandwidth, even if you don’t configure a bandwidth for it. I’d have to check how much exactly, on IOS 12.4 you could use the “show queueing” command to see the weights. Not sure you can still see them on IOS 15 since these commands have been deprecated but I could do a simple bandwidth test 🙂

Rene

---

<div class="post-metadata">

### Author: ![ayyapanr](https://cdn-forum.networklessons.com/letter_avatar_proxy/v4/letter/a/71e660/32.png) [@ayyapanr](https://forum.networklessons.com/u/ayyapanr)
#### Post date: [October 8, 2018, 10:11pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/12 "2018-10-08T22:11:58Z")

</div>

Hi Rene,

I need you shed some light on ‘when congested’. Am I right in saying the QoS policies that we apply are insignificant during the period of non-congestion? can request you demo this.

Also I believe tx ring limit and hold-queue commands on an interface lets us play with the interface buffers and hence the congestion. Can you please shed some light on them too?

Thanks.  
Ayyappan

---

<div class="post-metadata">

### Author: ![lagapidis](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/lagapidis/32/4949_2.png) [@lagapidis](https://forum.networklessons.com/u/lagapidis)
#### Post date: [October 12, 2018, 6:06am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/13 "2018-10-12T06:06:10Z")

</div>

Hello Ayyappan

QoS mechanisms will only engage when there is congestion. They play absolutely no role when there is no congestion on a particular interface. QoS will look at DSCP values and compare them between packets that are waiting in line (in the queue) to see which to send first based on the QoS configuration. There is a comparison involved and then a decision as to which will be sent first. If a packet arrives at an interface and the interface’s queues are empty, there is no comparison, there is no question as to which packet will be sent, it is the one that has arrived and will be sent immediately.

This is why one way to deal with congestion is to over-provision links. If you vastly over-provision links, there is no need to employ QoS. (Although this thought is logical, it is a simplistic view and should not be considered best practice). So if there is no congestion, there is no delay, packets are sent immediately and QoS is not engaged.

The `tx-ring-limit` command is used on ATM router interfaces that support per virtual circuit queuing. This is something that you would find on ISP or telecom carrier equipment and not on a simple Ethernet interface. You can find more information about that, and when it should be used, here:

> **[Understanding and Tuning the tx-ring-limit Value](https://www.cisco.com/c/en/us/support/docs/asynchronous-transfer-mode-atm/ip-to-atm-class-of-service/6142-txringlimit-6142.html#topic6)**
>
> This document discusses the function of a hardware transmit ring and the purpose of the tx-ring-limit command on ATM router interface hardware that supports per-virtual circuit (VC) queueing.

As for the `hold-queue` command,

> the system counts input queue drops if the number of packet buffers allocated to the interface is exhausted or reaches its maximum threshold. You can increase the maximum queue value with the `hold-queue <value>` command for each interface (the queue length value can be between 0 and 4096. The default value is 75).

You can find out more about that command here:

> **[Cisco 800 Series Routers - Troubleshooting TechNotes](https://www.cisco.com/c/en/us/support/routers/800-series-routers/products-tech-notes-list.html)**
>
> Cisco 800 Series Routers - Some links below may open a new browser window to display the document you selected.

I hope this has been helpful!

Laz

---

<div class="post-metadata">

### Author: ![sammiria801](https://cdn-forum.networklessons.com/letter_avatar_proxy/v4/letter/s/53a042/32.png) [@sammiria801](https://forum.networklessons.com/u/sammiria801)
#### Post date: [January 25, 2019, 9:42pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/14 "2019-01-25T21:42:37Z")

</div>

Hello,

I have router 3925 I configured subinterfaces on the Ethernet LAN for Assigning DSCP values for the input traffic, the configuration is made without nested policy map, do you think this configuration it’s different from router to router? or it’s because the policy only assigning DCSP?

---

<div class="post-metadata">

### Author: ![lagapidis](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/lagapidis/32/4949_2.png) [@lagapidis](https://forum.networklessons.com/u/lagapidis)
#### Post date: [January 28, 2019, 11:21am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/15 "2019-01-28T11:21:02Z")

</div>

Hello Samer

If you are only changing the markings on the packets going through each subinterface, then you will have no problem in applying a policy map and setting DSCP values. The restriction of the CBWFQ on subinterfaces will appear when you attempt to assign a percentage of bandwidth to a particular class of traffic.

I hope this has been helpful!

Laz

---

<div class="post-metadata">

### Author: ![akhasfarooq](https://cdn-forum.networklessons.com/letter_avatar_proxy/v4/letter/a/3d9bf3/32.png) [@akhasfarooq](https://forum.networklessons.com/u/akhasfarooq)
#### Post date: [August 10, 2020, 11:52am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/16 "2020-08-10T11:52:31Z")

</div>

Hi Rene,

Great explanation! I have a question about the queues. Are there 4 queue by default? I have watched a video on YouTube where another instructor states that Cisco recommends not to create more than 11 classes (12 in total if you include the default-class). My question is how do you create the queues? Are the queues created as you create the class-maps? How do you check how many queues have been created? Cisco has recommendations for 4, 8 and 12 classes? I’m abit confused and would really appreciate if you can shed some light?

Regards

Akhas

---

<div class="post-metadata">

### Author: ![lagapidis](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/lagapidis/32/4949_2.png) [@lagapidis](https://forum.networklessons.com/u/lagapidis)
#### Post date: [August 14, 2020, 6:41am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/17 "2020-08-14T06:41:49Z")

</div>

Hello Akhas

First of all it’s important to note that there is a difference between physical or hardware queues on an interface, and logical queues. Most lower end devices (2900 and 3900 series) will have a single hardware queue while some of the higher end devices [such as the 9000 series](https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-9000/white-paper-c11-742388.html#_Toc12008707) may have multiple hardware queues. However, these queues fundamentally function in FIFO mode, and are simply used as buffers for oversubscribed traffic.

The queues created using QoS mechanisms such as CBWFQ for example, **are logical queues** , and they are essentially defined **using the number of classes that you define in your policy map**. Typically, the Cisco recommendation for 4, 8, or 12 classes is considered best practice, because this number of classes that will create the most efficient set of queues.

Now keep in mind that you can create very complex multi-level queueing structures where some platforms will support up to 64 queues in total (this is platform and IOS dependant), but it is generally not efficient to use so many queues. You can find out more about multi-level queuing at the following Cisco documentation:

> **[Multi-Level Priority Queues](https://www.cisco.com/c/en/us/td/docs/ios/12_2sb/feature/guide/mpq.html#wp1049428)**
>
> Multi-Level Priority Queues

I hope this has been helpful!

Laz

---

<div class="post-metadata">

### Author: ![akhasfarooq](https://cdn-forum.networklessons.com/letter_avatar_proxy/v4/letter/a/3d9bf3/32.png) [@akhasfarooq](https://forum.networklessons.com/u/akhasfarooq)
#### Post date: [August 19, 2020, 3:44pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/18 "2020-08-19T15:44:42Z")

</div>

Hi Laz,

That’s clarified it!

Many thanks!

---

<div class="post-metadata">

### Author: ![network23](https://cdn-forum.networklessons.com/letter_avatar_proxy/v4/letter/n/fbc32d/32.png) [@network23](https://forum.networklessons.com/u/network23)
#### Post date: [September 19, 2021, 3:42pm UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/19 "2021-09-19T15:42:09Z")

</div>

I have multiple sub-interfaces configured under one parent interface and using CBWFQ with bandwidth guarantees for different classes of traffic in the child policy and a shaper for all traffic in the parent policy. How does the policy under one of the sub-interfaces know how to calculate the bandwidth guarantee since it needs to guarantee based on the CIR it has with the provider and not the full line rate?

---

<div class="post-metadata">

### Author: ![lagapidis](https://cdn-forum.networklessons.com/user_avatar/forum.networklessons.com/lagapidis/32/4949_2.png) [@lagapidis](https://forum.networklessons.com/u/lagapidis)
#### Post date: [September 21, 2021, 9:53am UTC](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023/20 "2021-09-21T09:53:15Z")

</div>

Hello Victor

It would be helpful if you shared the configuration of your particular configuration on the physical interface, on the sub interfaces, as well as in the policy and class maps. You can “sanitize” the configuration and share it here, and we’ll be able to respond to it in more detail.

Laz

[Next page](https://forum.networklessons.com/t/cbwfq-not-supported-on-sub-interfaces/1023.md?page=2)
