cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
3041
Views
2
Helpful
14
Replies

CB-WFQ vs HFQ

lap
Level 2
Level 2

Hi all,

I would like to understand what is the difference between CB-WFQ and HFQ. Cisco says that HFQ uses Hierarchical Qos but I don't see any difference in the configuration between CB-WFQ and HFQ.

Could someone explain me this difference (maybe with 1 example or 2).

Thanks;-)

Regards,

Laurent

14 Replies 14

Frederic Vanderbecq
Cisco Employee
Cisco Employee

Hello Laurent,

CBWFQ allows the definition of specific QoS for specific traffic through the use of a service-policy and class-maps, the service-policy being directly applied to a (sub)interface or VC.

HQF is in fact allowing you the possibility of adding a hierarchy to your QoS and embed a service-policy within a service-policy allowing several levels of QoS. For instance, doing QoS for multiple traffic classes while allowing the shaping of the global traffic from all those classes at a specific rate More details on HQF can be found at the following URL:

http://www.cisco.com/en/US/docs/ios/qos/configuration/guide/qos_frhqf_support.html

Let me know if this answers your question.

Fred

Helle Frederic,

Thanks for your quick post and the explanation.

I have tried to configure HQoS in the following scenario for the spoke location:

Of course I have completely simplified the drawing. The network as you can see is based on DMVPN.

A the spoke I shape to the upload bandwidth. Let's take an example where a spoke router has 1 Mbit upload so my configuration looks like that:

****Config for the spoke router***

First I create a shapping policy-map:


policy-map Shapping-Out
class class-default
    shape average 1000000
     random-detect

Then I define which type of traffic I would to guarantee bandwidth for. In this case let's say Citrix:

policy-map Citrix (child policy)
class Match-Citrix-DSCP
bandwidth percent 70


Then I apply the child policy under the parent policy previously created:

policy-map Shapping-Out
  class class-default
     shape average 1000000
      random-detect

  service-policy Citrix

Then I apply the policy -map shapping-Out to the physical interface in this case F4.

What do you think about this QoS configuration? It is ok or you will add something else? any advices?

Could I so define this configuration with the Following drawing or it is wrong?

Thanks for helping;-)

Regards,

Laurent

Frederic Vanderbecq
Cisco Employee
Cisco Employee

From the HQoS config point-of-view on the hub, it looks good though.

Now, the spoke connection has 10M in download, no ?

Whatever the speed for the spoke, if you shape that particular traffic at 1M on F4, it means all spokes will only have 1M to share from the hub to the DMVPN network. That might be a bit severe especially if you have a lot of spokes.

Normally, in DMVPN, the shaping done on the hub should match the circuit size from the hub to the DMVPN network.

Fred

Hi Frederic,

I think you maybe misunderstood me in my previous post. The example and the config was for the spoke router and not the HUB.

Regards,

Laurent


Yes, I misread your previous question, sorry.

The HQoS config then looks good for the spoke.

Fred

Hi Frederic,

What about my drawing regarding HQoS, is that ok or I should draw it in a different way to represent the HQoS config I did on the spoke?

Thanks.

Laurent

Hello Laurent,

the drawing represents HQoS properly, a 1M pipe on your FE link in which 70% will be dedicated to the Citrix class.

The only remark is that it is not only the tunnel traffic which will be shaped at 1M but all traffic going out of that FE interface. If only the tunnel traffic goes via that interface, then the drawing is accurate from the naming point-of-view.


Fred

Hello Fred,

Thanks for your answer.

I still have a misunderstanding regarding fair queuing.

Above in the child policy I have configured following:

policy-map Citrix (child policy)
class Match-Citrix-DSCP
bandwidth percent 70

So the default Queing mechanism for class Match-Citrix-DSCP and class-default will FIFO right?

Shouldn't I configure fair queuing instead? In the Cisco link you send me Cisco write the following:

"The fair-queueing behavior for the class-default  class is flow-based. This is a change from the weighted fair queueing  (WFQ) behavior in previous releases. With flow-based fair queueing, the  flow queues in the class-default class are scheduled equally instead of  by weight based on the IP Precedence bits."

Will the fair-queueing behavior for the other classes also be flow-based?

What does flow-based means? Is that one TCP session for example equal one flow?

So if for example I have many Citrix users there will be several Citrix sessions right? So maybe it is better to configure fair-queuing? What do you think?

Thanks.

Laurent

Laurent,

the behavior within a class (except for the default-class) will always be FIFO. Only the default-class can be manually configured with "fair-queue" and have the WFQ algorithm applied to all the flows being queued in the default-class.

A flow is being defined by source address, destination address, source port, destination port, and protocol. Whenever packets are going to be dequeued from the default-class, this will be done based on the weighted fair algorithm running within the queue.

As the Citrix class is FIFO, all the sessions will then "compete" for the buffers. The only tuning parameters you then have are the bandwidth assigned to the class and its queue-limit.

Fred

Hello Fred,

if I do the following it is working:

policy-map Citrix (child policy)
class Match-Citrix-DSCP
bandwidth percent 70

fair-queue

But you said: "Only the default-class can be manually configured with "fair-queue" and  have the WFQ algorithm applied to all the flows being queued in the  default-class"

So I am confused;-) What will be the point to add fair-queue in this case to the clas Match-Citrix-DSCP ?

Thanks,

Laurent

That is interesting. From my experience, classes with bandwidth statemet are FIFO only. Though, there are specific behavior linked to the platform.

It is possible such configuration is supported here but I cannot answer that unfortunately.

Now, from the functional specification point-of-view, that configuration would mean you are reserving 70% of the bw for the citrix traffic and will use WFQ within the class to decide which packets are dequeued whenever the class is serviced.


Fred

Well it is still not really clear to me but thanks for your help Frederic.

Regards,

Laurent

Laurent,

one thing for QoS is that we can recommend as much as we want, only checking the configuration with live traffic will tell us if the config suits your needs.

You may discover for instance that 70% of guaranteed traffic for Citrix is an overkill or simply not enough. You may have also to tune queue-limits for instance if the default sizes do not accomdate for the bursts this traffic may have.

Fred

Laurent,

when using CBWFQ, each classes will be serviced based on their configured bandwidth. The bandwidth configuration basically assigns a weight to the class (the default-class will also get a weight even if no bandwidth is configured) and the Weighted Fair algorithm is used to decide which class can send traffic at a specific point. This is similar to the "old" weighted fair queueing algorithm but which was applied on a per-flow basis. With CBWFQ, you do weighted fair queueing on a per-class basis.

When a class is to be serviced, a certain amout of packets will be dequeued. The order in which the packets are dequeued from the class can be of two types:

1) FIFO

2) WFQ: In that method, the WFQ algorithm will look to every flows in the class and based on the flow "weight" will decide which packets will be forwarded during the time the class is serviced.

Let me know if this is still not clear.


Fred

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:

Innovations in Cisco Full Stack Observability - A new webinar from Cisco