cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1684
Views
18
Helpful
9
Replies

QoS Implementation

Plinio Brandao
Level 1
Level 1

Hi Folks,

I have a simple topology but I'm having some problems with my QoS configuration. My situation is the following:

- 3 class

  - EXPRESS: 25% - match all traffic TCP in 211 port

  - OFFICE: 25% - match all traffic TCP in 5950 port

  - default: without limits at this time

- Link of 1Mb

The intetion is:

a) If only class EXPRESS in use, It can use all the link;

b) If class EXPRESS in use and a FTP transfer (that will be marked in default class) in progress, the class EXPRESS should use the 256k (25%) and the class default should use the remaing traffic (75%);

What's happening:

a) When I start a FTP transfer and a TCP transfer on 211 port (EXPRESS), the EXPRESS class and the default class split the bandwidth of the link;

b) At this time, EXPRESS transfer reaches ~480k and default ~480k.

In the first configuration, my intention was that all traffic that exceeded the 25%, should be remarked and used in default class. I used the following configuration (the ACL's exists, omitted to optimize):

class-map match-any EXPRESS

match access-group name EXPRESS

class-map match-any OFFICE

match access-group name OFFICE

policy-map OUT

class EXPRESS

   police cir percent 25

     conform-action set-dscp-transmit ef

     exceed-action set-dscp-transmit default

    priority

class OFFICE

    bandwidth percent 25

  set ip dscp af31

policy-map SHAPE_1M_OUT

class class-default

    shape average 1024000

  service-policy OUT

NOTE: In this case, the traffic in EXPRESS class become very unstable, ranging between 80k and 230k.

In the second configuration, I discard the idea of remark the exceeded packets into default class and set the following configuration:

class-map match-any EXPRESS

match access-group name EXPRESS

class-map match-any OFFICE

match access-group name OFFICE

policy-map OUT

class EXPRESS

    shape peak percent 100

    shape adaptive 256000

  set ip dscp ef

class OFFICE

    bandwidth percent 25

  set ip dscp af31

policy-map SHAPE_1M_OUT

class class-default

    shape average 1024000

  service-policy OUT

NOTE: In this case, the EXPRESS class uses all link when it's free, but when a FTP traffic starts, they split the band.

Where am I wrong? Is it possible to do what I want?

Thank you very much. Any suggestion is welcome.

9 Replies 9

Edison Ortiz
Hall of Fame
Hall of Fame

Do you want priority or bandwidth guaranteed for the EXPRESS class?

If you want priority, the following should work:

policy-map OUT

class EXPRESS

     priority percent 25

     set ip dscp ef

class OFFICE

    bandwidth percent 25

    set ip dscp af31

policy-map SHAPE_1M_OUT

class class-default

    shape average 1024000

      service-policy OUT

If you want bandwidth guaranteed, the following should work:

policy-map OUT

class EXPRESS

     bandwidth percent 25

     set ip dscp ef

class OFFICE

    bandwidth percent 25

    set ip dscp af31

policy-map SHAPE_1M_OUT

class class-default

    shape average 1024000

      service-policy OUT

You need to keep in mind, QoS will kick during congestion and if the FTP has throttle

back to less than 750kbps, then the EXPRESS class can potentially use more than 250kbps.

Regards,

Edison

Hi Edison,

My intention is reserve 25% for EXPRESS and if believe available bandwidth, use it. But if default class wants to use 700k, for example, be able to do it.

I tried you suggestion, please take a look at the attached file. The Red line are 7 ftp connections been marked in best-effort.

Thank you again.

Plinio,

You are guaranteeing at least 25% of your traffic to EXPRESS. Anything above that will be best effort.

EXPRESS will not stop at 25%, but any flow over 25% will contend with your default traffic and that's exactly what is doing.

Per your original question on the 480kbps/480kbps load split,  250kbps were guaranteed traffic and 130kbps were best effort traffic.

If you want your FTP to use 700kbps, you need to create a class for FTP and assign the remaining % of your link.

Edison,

Thank you again for the information. Just one more question for check if I understood.

I set this configuration, conform your suggestion:

policy-map OUT

class EXPRESS

     bandwidth percent 25

     set ip dscp ef

class OFFICE

    bandwidth percent 25

    set ip dscp af31

policy-map SHAPE_1M_OUT

class class-default

    shape average 1024000

      service-policy OUT

In this configuration, we'll have the following behavior:

1- 25% of the EXPRESS traffic will be guaranteed; (checked)

2- If just EXPRESS traffic still running, it will be able to use all available bandwidth; (checked)

3- If  500k of the EXPRESS traffic be generated, 250k will be guaranteed and 250k will be best-effort; (checked conform your information)

4- If 500k of the EXPRESS traffic be generated together 700k of best-effort traffic (FTP, ANY), I'll have this situation:

    - 250k will be guaranteed (yes)

    - 250k of exceeded EXPRESS will be best-effort (yes or no?)

    - 500k of BE will be best-effort and 200k will be dropped (yes or no?)

    - 700k of BE will be best-effort and ONLY 50k of exceeded EXPRESS will be best-effort (yes or no?)

    - or the available 750k of the 1mb link will be disputed and will auto adjust (yes or no?)

Sorry for so many questions, but I think that with these information, all will be clear.

Thank you Edison.

1) yes

2) yes

3) yes

4a) yes

4b) yes

4c) No, you will have 750kbps combined best effort traffic, this traffic will include the EXPRESS traffic. All traffic under this class has potential to be dropped equally.

4d) correct.

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

My understanding of CBWFQ is a little different.

1) depends, prior to HQF type CBWFQ, no; w/ HQF not sure, might be 1/3

2) yes

3) no

4a) depends, prior to HQF depends on # flows in class-default; w/HQF not sure, might be 1/2

4b) no

4c) depends, prior to HQF depends on # flows in class-default; w/HQF not sure, might be 1/2

4d) no and depends

Prior to HQF CBWFQ, I believe implicit class-default uses FQ which distorts bandwidth for defined classes.  Same would be true with explict class-default using FQ, again prior to HQF.  HQF class-default can holds FQ to class bandwidth setting.

For bandwidth % to make sense, you need to allocate 100%, when you don't you get effective percentages you get the ratios (which would normally be more than the percentage).

e.g. (and disregarding class-default)

class a

bandwidth percent 10

class b

bandwidth percent 10

effectively same as

class a

bandwidth remaining percent 5

class b

bandwidth remaining percent 5

effectively same as

class a

bandwidth 8

class b

bandwidth 8

Weights for these two classes would be the same and they would split bandwidth 50/50 or 1:1

Prior to HQF you can, by default (it can be changed), only allocate to classes other than class-default a total of 75%.

Once a traffic is a class queue, it's treated as that class.  For instance in poster's original post:

policy-map OUT

class EXPRESS

   police cir percent 25

     conform-action set-dscp-transmit ef

     exceed-action set-dscp-transmit default

    priority

You can do that, i.e. change markings, but traffic remains in this policy's EXPRESS class, even with the changed marking.  Next hop, though, can split the flow because of the different markings.

Hi Joseph,

Thank you for your information. I'll do some tests and I'll post the results.

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

When testing, you need to be aware of the "flavor" of CBWFQ you're using, since they all don't operate exactly alike with the same configuration.

Also, don't forget CBWFW only engages when the TX-ring fills which can impact observed performance.

Lastly, performance can be impacted by the nature of the traffic.  For example if both TCP and UDP fight over bandwidth, and both are seeing some drops, TCP will reduce its send window (reducing its transmission rate) but UDP normally doesn't.  I.e. UDP will grab more bandwidth because its being yielded by TCP, not because the policy isn't working correctly.

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

Try something like what Edison suggested but additionally with:

policy-map OUT

.
.
class class-default

bandwidth percent 50

NB: with only Express and default traffic, with LLQ Express should only get 25% of bandwidth, but w/o LLQ Express will get 1/3 bandwidth (because it and class-default will split unused OFFICE).

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: