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

Understanding and Configuring Basic QoS

matwood
Level 1
Level 1

Hi Guys,

So a client is deploying a new VOIP phone system on a converged network, and I'm configuring multiple 3750X stacks for data and voip distribution. most workstations will be plugging in through their IP phone, and voip traffic will be on a dedicated voice vlan. The phones are not cisco, so a little more manual configuration is required, but the phones pass data traffic through untagged, and tag their voice traffic with cos/dscp values.

This is the first time I'm really diving in to QoS, so I'm a bit shakey on some things. I've been doing alot of reading and research, but theres still alot thats not very clear. Now, I could use the cisco AutoQoS  (in fact I have it working with autoQoS configured at the moment), but I prefer to have a deeper understanding of the configs on equipment I'm supporting, as well as have the understanding required to customize. also as per the voip provider they have voice traffic getting a CoS value of 6, and from what I can see it looks like AutoQoS is set up for voice traffic to be CoS 5.

As I understand it, the QoS flow goes something like this:

Traffic comes into a port and is classifed with a QoS value (0-7, identical to CoS). this can be done with plenty of methods, but to keep it simple in this case since the phones are already tagging traffic, I just have to trust the tag comming in.

The command I'm currently using is (if-config)#auto qos voip trust, am I correct in thinking that interface commands

mls qos trust cos and/or mls qos trust dscp are the actual commands that handle this part?

CoS and DSCP values then need to be mapped to eachother, done via global command mls qos map cos-dscp. in my case the voip provider as requested some of the default mappings to be overridden, so I'm currently using

mls qos map cos-dscp 0 8 16 18 24 26 46 48

Once traffic is classified it can then be policed, rate limited, traffic shaped, etc. While I'm sure I'll want to get into this at some point for now I want to focus on the basics of prioritizing certain traffic instead of shaping traffic load.

from there traffic goes into input queues. on the 3750s there are two input queues, and four output queues. out of curiosity, do these queues exist per switch or per physical interface? This is where I start to get a little shakier. I've read that by default both queues are of normal priority, but one can be made to be higher priority. what command does this? configured as a priority queue, is it serviced first until empty period, or just with a higher (dare I say configurable?) fequency?

the two input queues share a physical memory space, and what percent of that space is dedicated to each queue can be configured. this would effectively set the maximum burst time for each traffic type. fill up the buffer, and you need to slow down your tx rate or lose packets. I assume that the AutoQoS generated command setting this is

mls qos srr-queue input buffers 67 33

am I correct in assuming that 67% of the buffer is dedicated to input queue_#1 and 33% to input queue_#2? if so, what happens if queue 1 is empty but queue 2 gets full? is queue 2 allowed to overrun into unused queue 1 space, or is it completely reserved?

Then there's the generated command.

mls qos srr-queue input bandwidth 90 10

This seems to indicate that 90% of the internal switching bandwidth is dedicated to queue 1 and 10% to queue 2. I realize that this might hold an answer to my earlier question, does this mean if there are packets in both queues, that 9 packets from queue 1 will be switched for every one packet from queue 2? where the buffer plays primarily with supporting burst rates, this would play mainly with average sustainable data rate, correct?

what if queue 1 is empty? is that 90% Dedicated bandwidth or guaranteed bandwidth? I'd hate to slow my switching capacity down to 10% if noone is on the phone (simplification, I know, but still).

traffic gets assigned to an input queue based on the QoS value, but the only commands I see generated by the autoQoS are

mls qos srr-queue input cos_or_dscp-map queue queue_# threshold threshhold_rank cos_or_dscp_value ...

are these threshold commands where this mapping happens? durring my research I've determined that each queue has three threshhold value, or percentage of its buffer filled where it will no longer accept packets destined for that threshold value. lowest threshhold 1, and mid threshhold 2 are configurable, threshold 3 is fixed at 100% of that queues buffer size. Am I correct in thinking that these generated commands

mls qos srr-queue input threshold 1 8 16

mls qos srr-queue input threshold 2 34 66

mean that for queue 1 threshhold 1 and 2 are set to 8% and 16% respectively and for queue 2 threshhold 1 and 2 are set for 34% and 66% respectively?

From the input queues packets get transfered over to the appropriate output queues. Now, assuming my assumptions so far have been correct, parsing the equivalent mls qos srr-queue output commands isn't difficult. but the output queues appear to be a bit more complex. There seem to be some options that are configured globally, and some configured per interface. supposedly the output queues should have the same basic properties, a command to configure threshhold values, a command to allocate buffer percentage, and a command to allocate bandwidth percentage. I understand that some of those can automatically altered with the interface command priority-queue out, but altered how exactly? Am I correct in thinking that this command, executed on an interface, makes that interface's output queue 1 a "priority queue", and outgoing packets from that queue will be sent out on the wire first? AutoQoS generates the following commands for output queues that I'm just thoroughly lost on

mls qos queue-set output 1 threshold 1 138 138 92 138

mls qos queue-set output 1 threshold 2 138 138 92 400

mls qos queue-set output 1 threshold 3 36 77 100 318

mls qos queue-set output 1 threshold 4 20 50 67 400

mls qos queue-set output 2 threshold 1 149 149 100 149

mls qos queue-set output 2 threshold 2 118 118 100 235

mls qos queue-set output 2 threshold 3 41 68 100 272

mls qos queue-set output 2 threshold 4 42 72 100 242

mls qos queue-set output 1 buffers 10 10 26 54

mls qos queue-set output 2 buffers 16 6 17 61

and interface commands

srr-queue bandwidth share 10 10 60 20

queue-set 2

threshholds and buffers seem to be getting set in those global commands, but I dont understand the syntax, and what's this queue-set business?

the bandwidth breakdown seems to be happening at the interface level. given that 10+10+60+20=100, I would assume these are bandwidth percentages for output queues 1-4, but if queue 1 is the priority queue, giving it only 10% of the outgoing bandwidth seems counter-intuitive unless priority-queue out overrides this?

Finally, if I assume the the AutoQoS VOIP is building a more or less good model for prioritizing voip traffic in a network, I can use it as a baseline for good practice values regarding configuring threshholds, buffers, and bandwidth on queues, but what does the AutoQoS assume for traffic type-to-CoS mappings?

Thanks in advance to the QoS guru who helps me finish wrapping my brain around all this stuff!

Cheers,

Mike

3 Replies 3

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

See if these help:

http://www.cisco.com/en/US/products/hw/switches/ps5023/products_tech_note09186a0080883f9e.shtml

https://supportforums.cisco.com/docs/DOC-8093

Hopefully, these, along with you Configuration Guide for your IOS version, will answer most of your questions.  Please post any follow-up questions.

Thanks Joseph, those docs helped a lot. Just what I was looking for. One quesiton still nagging with the auto-qos generated config:

if my priority traffic gets assigned to input queue 2 (verified by show mls qos maps), why does queue 2 only get 10% bandwidth allocation with mls qos srr-queue input bandwidth 90 10?

one of those documents specified overiding that normal bandwidth allocation with

  • mls qos srr-queue input priority-queue 2 bandwidth 20

but the auto-qos generates no such command. What am I missing?

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

"What your missing" might be, one-sized QoS configuration doesn't always fit all.  You'll often encounter different recommendations for the same settings.  Unfortunately, not always explained is the reasoning behind some recommendations.  Without that, it can be difficult to select between different suggestions or to even realize none of the suggestions might be suitable for your particular situation.

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:

Review Cisco Networking products for a $25 gift card