Tag Archives: Wireless QoS

Understanding Wireless QoS – Part 2

3 Dec
This is the continuation from my previous post (Understanding Wireless QoS – Part 1) about Wireless QoS. So far we have looked at so far packet going from C7921 phone to wired PC-softphone. Few key points are,

1. Configured “mls qos trust dscp” on Fa1/0/13 – AP connected switch port.
2. Configured “mls qos trust cos” on G1/0/1 – WLC connected trunk port.
3. RTP traffic from C7921 will be encapsulated by the AP to WLC.
4. Outer DSCP header added by AP based on the original packet DSCP & QoS profile configured on the WLAN.
5. Only Outer DSCP header is visible to switch port & switch will rewrite DSCP/CoS values in this outer header before sending out to a switch port (Original packet DSCP intact-no change)

Now will look at DSCP/CoS changes on the return traffic (PC->C7921). I have taken TCP signalling (Skinny -SCCP) coming from CME & RTP traffic coming from softphone on the PC for analysis. If  you take a capture at fa1/0/4 you would see something like this. CME classify SCCP traffic with DSCP-AF31. Softphone classify its RTP traffic as DSCP-EF.

When you look how these packets DSCP valued get change when it goes to WLC, you would see something like this. You noticed switch will rewrite both EF & AF31 in to DSCP 0. This is because we have not trusted these at Fa 1/0/4.Once you configured “mls qos trust dscp” on fa1/0/4 you will see packets going to WLC will have the original DSCP (AF31 & EF respectively). Switch will add corresponding CoS value to 802.1q header as port is configured as Trunk.when it comes packet path from WLC to AP, CAPWAP encapsulation comes into play, an outer DSCP value corresponding to original packet DSCP will be added by WLC. Since QoS profile configured as Platinum, it is simply copy the original DSCP value into outer DSCP (No cap). Packet capture of the trunk port will show this.

Wireless QoS-2-6

Wireless QoS-2-5

Now when you look at the packets going towards at Fa1/0/13 ,you will notice that SCCP traffic outer DSCP changed to CS3. This is because at the WLC connected port we trust CoS value of 3 (corresponding to DSCP-AF31- see the mapping table in the previous post) & when exiting fa1/0/13 it will re-write DSCP value derived from cos-dscp mapping. But this will have no impact on the original packet DSCP value.

CAT2#sh mls qos map cos-dscp
Cos-dscp map:
cos:   0  1  2  3  4  5  6  7
——————————–
dscp:   0  8 16 24 32 46 48 56 

So when this packet goes into wireless media from the AP to the wireless phone it these will map into 802.11e (WMM) user priorities. This mean RTP (outer DSCP EF) map into 802.11e/WMM UP 6 & Signalling traffic (DSCP CS3) map into 802.11e/WMM UP 4.

In the next post we will see how other QoS profiles (Gold , Silver & Bronze) impacting these QoS settings.

Source: http://mrncciew.wordpress.com/2012/11/30/understanding-wireless-qos-part-2/

Understanding Wireless QoS – Part 1

29 Nov

After reading few online posts about wireless QoS, I felt it is worth to spend some time to understand what’s going on packet level. So this will be the first part of wireless QoS related posts. I have used following lab set up for this exercise.

In this part, I will look at how QoS parameter (primarily DSCP/COS tag) of a packet change when it traverse from wireless client (C7921) to Wired client (PC). Before looking into the packet capture this is my basic understanding how it should work.

1. If wireless client device is WMM capable it will classify its application traffic into one of four categories (Voice-VO, Video-VI, Best Effort-BE, Background-BK).In this case RTP media traffic with DSCP EF (WMM AC – VO) & tcp control traffic with DSCP CS3 (WMM AC-BE). 2. When AP receive this traffic, it will encapsulates the original packet into CAPWAP and added outer DSCP values(copy the inner DSCP value as long as QoS profile allow that level of QoS). 3. CAPWAP packet source would be Access Point IP & destination IP would be WLC ap-manager IP(In 5508 just mgt IP as no ap-manager interface).Source port would be high random UDP port & destination would be UDP 5247(capwap-data) 4. This outer DSCP value corresponds to original packet DSCP & capped into a max value as per the QoS profile(Platinum, Gold, Silver, Bronze) defined on the WLC. 5. If Switchport connected to AP is configured to trust DSCP it will trust this outer DSCP 6. If packet is sent to a trunk port it will derive a COS value based on the outer DSCP. 7. When It comes to WLC & prior to send packet to wired side,it will re-write COS value based on the capped value configure on QoS profile  outer DSCP value un-changed. 8. If switchport connected WLC is configured to trust cos, it will trust cos & derive DSCP value  based on cos-dscp table mapping on the switch. 9. Then packet will send to the wired client.

First Capture I have taken at the switch port (Fa1/0/13) where AP connected while VoIP call originated from 7921 Phone(10.10.15.53)  to  the soft-phone in wired PC(192.168.1.10).

If you look at from bottom to top, you will see original packet is destined to PC IP (192.168.1.10) with RTP payload (udp range 16384-32767). This is marked with DSCP EF by the wireless phone. Through the wireless media this get priority as this will classified as WMM-VO category & contention window for those packets are smaller than the other wireless packets.

When it comes to Access Point, AP encapsulates this packet in to CAPWAP (des port 5247) & sending it to WLC ap-mgr IP. AP should map outer DSCP to EF(as my QoS profile for the WLAN in this exercise is set to Platinum). But why I am seeing outer DSCP 0 in the above packet capture. This is because switch port will not trust DSCP/CoS of a incoming packet by default. It will rewrite DSCP 0 instead. If you configure “mls qos trust DSCP” on fa1/0/13, you would see the packet capture like this. Note that now Outer DSCP value is preserved as EF.

Now if you capture the packets at WLC connected switch port you would see two packets corresponds to this conversation(7921->PC). One with CAPWAP encapsulation (from AP to WLC) & other with normal packet towards wired PC. In the CAPWAP packets parameters as same as fa1/0/13 capture (unless switch use dscp mutation map). Packet towards PC should have the original DSCP set up.But if you look at outgoing packet at Fa1/0/4 (towards CME & Wired PC), you will see the DSCP as 0.

This is again due to switch port is not trusting DSCP/CoS values by default. You have to configure “mls qos trust DSCP|CoS” on the interface connected to WLC to preserve the original DSCP value of the packet. Cisco’s best practice is to trust the CoS value as switch port is configured as Layer 2-Trunk. Then switch will trust this CoS value of the incoming packet from Controller & re-write DSCP correspond to this CoS value prior to send it to wired infrastructure. Below shows the capture at Fa1/0/4 when WLC connected switch port configured for “mls qos trust cos“

Still here you can configure “mls qos trust dscp” & preserve the QoS values end to end. In this way switch will not re-write DSCP based on the incoming CoS value. Trusting DSCP is my preferred option as I want classifying my network traffic & assign a DSCP label at the access layer ingress port.(Do Not Want  switch to change this value based on dscp-cos-dscp mapping occur in transit)

Following diagram summarized these QoS parameter mapping at the AP & WLC in a unified wireless deployment model (CAPWAP). We looked at Step 4 & 5 in this post.

Since my WLAN QoS profile is set to Platinum outer DSCP value was remain as EF. But if my QoS profile was Gold, then what would be the outer DSCP when it goes from AP ? It won’t be EF as QoS profile Gold does not allow that (max is AF41 ).So outer DSCP capped to AF41 (even though inner DSCP is EF). Below table show the WMM user priority values & corresponding DSCP mapping values in each QoS profile.

In the next post will see how the return traffic (PC -> C7921) QoS value get change at the transit points.(Fa1/0/4, G1/0/1, WLC,  Fa1/0/13 & AP )

Source: http://mrncciew.wordpress.com/2012/11/28/understanding-wireless-qos-part-1/