Cisco2950 and QoS

Unanswered Question
Jul 21st, 2008
User Badges:

I have a simple network with 4 Catalyst 2940 - 48 port switches with the EI image. We use a BCM400 Nortel VOIP product. VOIP phones are plugged into data jacks and computers into the phones. Here is my current config (reduced) from the switch that connects to the BCM:

nnblsw1# sh run


version 12.1

no service pad

service timestamps debug uptime

service timestamps log uptime

service password-encryption


hostname nnblsw1


no logging on

enable secret xxx


clock timezone MST -7

clock summer-time MDT recurring 2 Sun Mar 2:00 1 Sun Nov 2:00

ip subnet-zero


spanning-tree mode pvst

no spanning-tree optimize bpdu transmission

spanning-tree extend system-id


interface FastEthernet0/1

switchport mode trunk


interface FastEthernet0/2

description BCM400 LAN connection

switchport mode access


interface FastEthernet0/30

description WAN Connection

switchport mode trunk

speed 10

duplex full


interface FastEthernet0/46

description BCM VOIP connection

switchport access vlan 2

switchport mode access


interface FastEthernet0/48

switchport mode trunk


interface GigabitEthernet0/1

switchport mode trunk


interface GigabitEthernet0/2

switchport mode trunk


interface Vlan1

ip address

no ip route-cache


ip default-gateway

ip http server

logging trap debugging

logging facility daemon


snmp-server community ?123! RO


Note, all ports except the port that plugs into the BCM VOIP port are in VLAN 1. I want to enable QoS on the catalyst switches. I read through the Configuring QoS document from Cisco, but I am more that a little confused. My goal is to give VOIP traffic a higher priority than data traffic.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)
michaelchoo Mon, 07/21/2008 - 16:19
User Badges:

The simplest way is to configure AutoQoS on the appropriate ports, which will generate all the necessary QoS configurations on the switch. Simply invoke the "auto qos voip trust" command on the interface connected to the BCM as well as on the inter-switch link(s).

murray-davis Wed, 07/23/2008 - 09:14
User Badges:

Is there not two parts of this and should not the auto qos voip trust command be done at the global config level, i.e.

config t

auto qos voip trust

mls qos trust cos

Collin Clark Wed, 07/23/2008 - 09:31
User Badges:
  • Purple, 4500 points or more

You need to apply auto qos to all interface where a phone could be connected.

<font size="2">interface range fa0/1 - 48</p><p>auto qos voip trust</p><p>mls qos trust dscp</p><p>priority-queue out</p><p></font>

You don't need to apply these commands to trunk ports, but you can, it won't hurt anything. Also note that Nortel uses CS3 for call signaling, where Cisco uses CS5. You'll need to remap or change the BCM to match Cisco.


mls qos srr-queue output dscp-map queue 1 threshold 3 31 41 42 43 44 45 46 47

mls qos srr-queue input dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 40

Hope that helps.

andrew.butterworth Wed, 07/23/2008 - 10:02
User Badges:
  • Gold, 750 points or more

I think you are a little confused there Coling ;o)

The switch in question is a 2950, the commands you posted are for the 2960, 3560 & 3750. You also state Nortel uses CS3 for Call Signalling and Cisco use CS5. It is actually the other way around Nortel use CS5 (by default) and Cisco use either CS3 or AF31 by default depending on software version and what hardware.

I personally wouldn't use Auto-QoS as I don't believe the configuration it generates will suit a lot of scenarios. I prefer to put the extra mile in and configure it manually.

Queuing on the 2950 is Global and is configured with the command 'wrr-queue'. There are 4 egress queues per interface and only CoS values can be mapped to queues (map the internal DSCP value to CoS and then CoS to queue). By default all 4 queues have the same weight:

wrr-queue bandwidth 25 25 25 25

Queue 4 can be an expedite queue if you make it's weight 0. This is the configuration I have on a 2950 EI:

wrr-queue bandwidth 5 25 70 0

wrr-queue cos-map 1 1

wrr-queue cos-map 2 0

wrr-queue cos-map 3 2 3 4 6 7

wrr-queue cos-map 4 5

Here I have given Queue 1 5% of the scheduler, Queue 2 25%, Queue 3 70% and Queue 4 is an expedite queue. I have also changed the CoS-to-Queue mappings so CoS 1 goes to Queue 1, CoS 0 to Queue 2, CoS 2,3,4,6, & 7 to Queue 3 and CoS 5 to Queue 4.

The 2950 is unique amongst the IOS Catalysts in that QoS cannot be turned off, also it doesn't remark CoS & DSCP to 0 on untrusted ports. You would need to write a ingress service-policy if you want to remark incoming CoS or DSCP values.




This Discussion