Guest

Voice Quality

Voice QoS: ToS-CoS Packet Marking for use with LLQ

Document ID: 23442

Updated: Feb 02, 2006

   Print

Introduction

This document describes Quality of Service (QoS) for Voice over IP (VoIP) in a LAN environment by mapping Type of Service (ToS) to Class of Service (CoS) parameters.

Until recently, the general consensus was that QoS would never be an issue in the enterprise side due to the bursty nature of network traffic and the capability of buffer overflow. The reason for QoS on the LAN side is due to buffering, not lack of bandwidth. For this reason, QoS tools are required to manage these buffers to minimize loss, delay, and delay variation. Transmit buffers have a tendency to fill to capacity in high-speed networks due to the bursty nature of data networks combined with the high volume of smaller Transmission Control Protocol (TCP) packets. If an output buffer fills, ingress interfaces are not able to immediately place new flow traffic into the output buffer. Once the ingress buffer fills (can happen quickly), packet drops occur. This is where voice quality may possibly degrade due to packet loss.

VoIP traffic is sensitive to both delayed packets and dropped packets. Delay should never be a factor, regardless of the size of the queue buffer, due to high speed on LAN links. However, drops always adversely affect voice quality in all networks. The use of multiple queues on transmit interfaces is the only way to eliminate the potential for dropped traffic caused by buffers that operate at 100% capacity. The separation of voice and video (both sensitive to delays and drops) into their own queues can prevent flows from being dropped at the ingress interface, even if data flows fill up the data transmit buffer.

In networks with high traffic loads, it is critical to manage the delivery of control traffic to ensure a positive user experience with VoIP. This is easily illustrated. For example, when an IP phone goes off-hook, it asks the Cisco CallManager what to do. Cisco CallManager then instructs the IP phone to play the dial tone. If the Skinny Client Protocol management and control traffic is dropped or delayed, the user experience is adversely affected. In order to provide QoS, mark packet headers with a higher precedence and map them correctly to the Layer 2 headers for Catalysts to understand. This ensures proper prioritization on the voice packets across the LAN.

Prerequisites

Requirements

There are no specific prerequisites for this document.

Components Used

The information in this document is based on these software and hardware versions.

  • Cisco 3725 Voice Gateway with Cisco IOS® Software Release 12.3(4)T .

  • Catalyst 4000 switch

  • Cisco CallManagers and IP phones

The information presented in this document was created from devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If you are working in a live network, ensure that you understand the potential impact of any command before using it.

Conventions

For more information on document conventions, see the Cisco Technical Tips Conventions.

Configure

In this section, you are presented with the information to configure the features described in this document.

Note: To find additional information on the commands used in this document, use the Command Lookup Tool (registered customers only) .

Network Diagram

This document uses the network setup shown in this diagram.

tos-cos-1.gif

Configurations

This document uses these configurations.

This configuration shows how to map ToS/differentiated services code point (DSCP) values into a CoS value in the 802.1p header portion. There are many ways to implement this and the slight differences vary depending on your design. The two configuration examples here are equivalent and either one can be used to achieve the same result. Be sure to only allow VoIP packets that have an IP precedence of critical (5) in the ToS bit. No other traffic should have this bit set to critical. This causes overlap of unwanted traffic in the voice queue.

Note: LLQ configuration is done on other devices in the network such as the Catalyst 4000, which is not discussed in this document.

In this first example, only the RTP streams that match IP precedence 5 are tagged, and not RTCP or any H.225/245 signaling and messaging packets.

Cisco 3660 (example 1)
!
ip cef
!

!--- The Cisco Express Forwarding (CEF) mechanism needs to be enabled 
!--- in order for the set cos command that is 
!--- configured later to take effect.
!--- If this is not on, the router reminds you with 
!--- the error "CEF switching needed for 'set' operations".

! 
class-map match-all RTP
match ip precedence 5 

!--- This command matches on all packets with the IP precedence of 5.
 
!
policy-map OutboundPolicy
class RTP
set CoS 5

!--- For all packets which previously matched on class-map RTP for 
!--- having precedence of 5, the CoS bit is now set to 5.

class class-default
set CoS 0

!--- All other traffic has a CoS of 0 and 
!--- carries a lower priority of delivery.

!
interface FastEthernet0/0
no ip address
no ip mroute-cache
duplex auto
speed auto
!
interface FastEthernet0/0.816
encapsulation dot1Q 816

!--- There must be subinterfaces for FastEthernet to enable trunking, 
!--- as well as either dot1q or isl encapsulation.

ip address 10.120.16.112 255.255.255.0
service-policy output OutboundPolicy

!--- Apply the QoS to the interface that connects to the LAN
!--- via the Catalyst 4000.

!
dial-peer voice 99131 voip
destination-pattern 9913109
session target ipv4:10.120.17.133
 ip qos dscp cs5 media
no vad
!

Note: The command ip qos dscp was introduced in Cisco IOS Software Release 12.2(2)T. It replaces the ip precedence (dial-peer) command. All routers that run on Cisco IOS Software Release 12.2(2)T and earlier can use ip precedence in the dial-peer configuration.

The second example has different matching parameters for classes of policy-map. The Cisco 3660 configuration matches on the H.225 call setup packets as well as the RTP streams. The matching criteria for the RTP stream is also slightly different. Do not look at the IP headers, only look at the UDP port range. If it falls between 16384 and 32767, tag them and send them to policy-map.

Cisco 3660 (example 2)
!
ip cef
!

!--- The CEF mechanism needs to be enabled 
!--- in order for the set cos command that is 
!--- configured later to take effect.
!--- If this is not on, the router reminds you with 
!--- the error "CEF switching needed for 'set' operations".
!
class-map match-all Call-Control
match access-group 101
!
class-map match-all RTP
match ip rtp 16384 16383

!--- Match on UDP port range 16384-32767 to single out 
!--- VoIP packets for policy-map.

!
access-list 101 permit tcp host 10.120.16.112 any eq 1720

!--- Match on all packets using TCP port 1720 which is 
!--- dedicated for H.225 call setup. 

!
policy-map OutboundPolicy
class RTP
set CoS 5

!--- For all VoIP packets that match the  UDP port range listed above,
!--- set the CoS bit to 5.

class Call-Control
set CoS 3
set ip precedence 3

!--- For all signaling and control packets that match access-list 
!--- 101, set the CoS bit to 3 and IP precedence to 3.

class class-default
set CoS 0

!--- All other traffic has a CoS of 0 and carries a 
!--- lower priority of delivery. 

!
interface FastEthernet0/0
no ip address
no ip mroute-cache
duplex auto
speed auto
!
interface FastEthernet0/0.816
encapsulation dot1Q 816
ip address 10.120.16.112 255.255.255.0
service-policy output OutboundPolicy

!--- Apply your QoS to the interface that connects to the 
!--- LAN via the Catalyst 4000.

!
dial-peer voice 99131 voip
destination-pattern 9913109
session target ipv4:10.120.17.133
 ip qos dscp cs5 media 
no vad
!

Verify

This section provides information you can use to confirm your configuration is working properly.

Certain show commands are supported by the Output Interpreter Tool (registered customers only) , which allows you to view an analysis of show command output.

The routers are now configured to map the ToS bit to the CoS bit. Use the show policy-map interface command to make sure the traffic is actually marked according to the configuration.

In this first example output, the 539 VoIP packets match the class-map and all 539 packets have the CoS bit marked to a value of critical as a result. This type of queuing does not have to wait for congestion to be active. As long as there is voice traffic that traverses the FastEthernet link, it marks all packets accordingly. In the second example, all the VoIP packets marked to CoS value of 5 and all the signaling packets are marked to a CoS value of 3 according to the configuration.

From the first 3660 example configuration:

vdtl-3660-16a#show policy-map interface fastethernet 0/0.816
 FastEthernet0/0.816  
  Service-policy output: OutboundPolicy

    Class-map: RTP (match-all)
      539 packets, 42042 bytes
      5 minute offered rate 2000 bps, drop rate 0 BPS
      Match: ip precedence 5 
      QoS Set
        CoS 5
          Packets marked 539

    Class-map: class-default (match-any)
      13 packets, 1803 bytes
      5 minute offered rate 0 BPS, drop rate 0 BPS
      Match: any 
      QoS Set
        CoS 0
          Packets marked 13

From the second 3660 example configuration:

vdtl-3660-16a#show policy-map interface fastethernet 0/0.816
 FastEthernet0/0.816 

  Service-policy output: OutboundPolicy

    Class-map: RTP (match-all)
      370 packets, 28860 bytes
      5 minute offered rate 0 BPS, drop rate 0 BPS
      Match: ip rtp 16384 16383
      QoS Set
        CoS 5
          Packets marked 370

    Class-map: Call-Control (match-all)
      26 packets, 2697 bytes
      5 minute offered rate 0 BPS, drop rate 0 BPS
      Match: access-group 101
      QoS Set
        ip precedence 3
          Packets marked 26
        CoS 3
          Packets marked 26

    Class-map: class-default (match-any)
      4363 packets, 515087 bytes
      5 minute offered rate 0 BPS, drop rate 0 BPS
      Match: any 
      QoS Set
        CoS 0
          Packets marked 4363
vdtl-3660-16a#

Troubleshoot

There is currently no specific troubleshooting information available for this configuration.

Related Information

Updated: Feb 02, 2006
Document ID: 23442