Tags

, ,

TSPEC allows 802.11 wireless client to signal its traffic requirement to the AP. The client includes the TSPEC in the add traffic stream(ADDTS). TSPEC from client include data rate, packet size, number of stream & more. 802.11e standard specifies TSPEC to provide the management link between higher QoS protocols & the channel access function. Channel Access functions are defined by EDCA(Enhanced Distributed Channel Access) mechanism. To enable TSPEC on the WLC, you have to enable Call Admission Control (CAC).

TSPEC-00

The ADDTS function is how a WLAN client (or station- STA) perform an admission request to AP.Signalling its TSPEC request to the AP, an admission request is in one of the two form:

ADDTS action frame: This happen when client originate a phone call associated to the AP. ADDTS contains TSPEC and might contain traffic stream rate set (TSRS) information element (in CCXv4 clients). A cisco wireless phone actually performs two ADDTS because codec used in the call is not known before the RTP stream is established.

Association & Re-association message:The association message might contain one or more TSPEC and one TSRS IE if the client wants to establish the traffic stream as part of the association. Same info included in re-association message if a client roams to another AP.

Since this TSPEC info include client minimum physical rate (PHY) that client device will use, it allows the calculation of how much time that station can consume in sending & receiving in this TSPEC, thereby allowing AP to calculate whether it has resource to meet the TSPEC. When TS finishes the STA must send a Delete Traffic Stream (DELTS) to release the CAC resources used for that stream.

Here is a wireshark capture of 802.11 wireless frame for client request to AP for ADDTS. (source from 7921 phone to destined to AP). Note that action code is “Setup Request” indicate it is TSPEC request message.TSPEC-01

Here is the response from AP to 7921 phone. Note that action code is “Setup Response” indicate it is TSPEC response.

TSPEC-02

In the above I have setup my WLAN for platinum QoS profile. Now will see if I change it to Silver & see what happen to these messages when I made a call I from 7921 phone. I am getting Network Busy message & won’t able to initiate a call. Why is this ? As you can see below this time TSPEC request is rejected by AP & therefore client did not get bandwidth resources from AP to make that call. See below two capture for ADDTS request & response in this scenario.

TSPEC-03TSPEC-04

You can do “debug cac all enable” on WLC CLI to troubleshoot this. In this scenario you should see something similar to below.

(WLC1) >debug cac all enable 
(WLC1) >*apfMsConnTask_0: Mar 19 19:38:26.182: 00:1b:d4:58:e6:1a Got LBCAC Metrics IE:
*apfMsConnTask_0: Mar 19 19:38:26.182: 00:1b:d4:58:e6:1a ADD TS from mobile  on AP 54:75:d0:3e:80:b0 slotId 1
up = 6, tid = 6, upsd = 1, mediumTime = 714, TSRSIE No
*apfMsConnTask_0: Mar 19 19:38:26.182: 00:1b:d4:58:e6:1a up=6 tsid=6 direc=3
NomMsduSize=208
MaxMsduSize=208
MinServIntvl=0
MaxServIntvl=0
InactIntval=0
MinDataRate=83200
MeanDataRate=83200
PeakDataRate=83200
MinPhyRat
*apfMsConnTask_0: Mar 19 19:38:26.182: 00:1b:d4:58:e6:1a TSPEC from mobile rejected (ac = 2, up = 6) as per WLAN QoS setting
*apfMsConnTask_0: Mar 19 19:38:26.182: 
Not including un-operational rate 6 in TSRS IE 
*apfMsConnTask_0: Mar 19 19:38:26.182: 
Not including un-operational rate 12 in TSRS IE 
*apfMsConnTask_0: Mar 19 19:38:26.182: 00:1b:d4:58:e6:1a Sending Failed ADD TS resp to mobile  on AP 54:75:d0:3e:80:b0 slotId 1

Before a client can send traffic of a certain priority type, it must have requested to do so via the TSPEC mechanism. For example, a WLAN client device wanting to use the Voice (VO) AC must first make a request for use of that AC. Best- (BE) and Background(BK) ACs can be open for use without a TSPEC request.Therfore if you WLAN is not configured for Platinum Profile AP will not allow resources to VO-AC traffic.

If you ever wonder why you can’t make calls while your QoS profile setting is not set to “Platinum” , this TSPEC behavior is the reason for that.

Here is the CAC debug output when everything is working (Platinum QoS).

(WLC1) >*apfMsConnTask_0: Mar 19 19:46:08.897: 00:1b:d4:58:e6:1a Got LBCAC Metrics IE:
*apfMsConnTask_0: Mar 19 19:46:08.897: 00:1b:d4:58:e6:1a ADD TS from mobile  on AP 54:75:d0:3e:80:b0 slotId 1
up = 6, tid = 6, upsd = 1, mediumTime = 1072, TSRSIE No
*apfMsConnTask_0: Mar 19 19:46:08.897: 00:1b:d4:58:e6:1a up=6 tsid=6 direc=3
NomMsduSize=208
MaxMsduSize=208
MinServIntvl=0
MaxServIntvl=0
InactIntval=0
MinDataRate=83200
MeanDataRate=83200
PeakDataRate=83200
MinPhyRat
*apfMsConnTask_0: Mar 19 19:46:08.897: Current TSPEC dir 3, ac 2, up 6, tsid 6
*apfMsConnTask_0: Mar 19 19:46:08.897: 00:1b:d4:58:e6:1a ACCEPT: first TSPEC on this AC 2
*apfMsConnTask_0: Mar 19 19:46:08.897: Max stream Size is 168000
*apfMsConnTask_0: Mar 19 19:46:08.897: Max streams number is 2
*apfMsConnTask_0: Mar 19 19:46:08.897: LBCAC Metrics:td=0, tw=0, tu_vc=0, tdr=0 pb=0, pv=0, qo=0, rd=0, pb_v=0 no=0, pkts=0, num_clients=0
*apfMsConnTask_0: Mar 19 19:46:08.897: LBCAC Stats->: 
Total BW available (in MT) = 26562 
Total BW available for voice (in MT) = 23437 
Voice BW exhausted (in MT) = 0 
*apfMsConnTask_0: Mar 19 19:46:08.897: 00:1b:d4:58:e6:1a LBCAC checks for tspec PASSED for ms on AP 54:75:d0:3e:80:b0 slotId 1 bw_req = 1072, totAvailable MT for tspecs = 22031 tx_queue_req = 20, current tx queue util = 0
*apfMsConnTask_0: Mar 19 19:46:08.897: 00:1b:d4:58:e6:1a Allocating voice bw for ms on AP AP5475.d0dd.a488 54:75:d0:3e:80:b0 slotId 1
tid = 6 maxBw = 23437 bw_req = 1072 totalVoiceBwAlloc = 1072
*apfMsConnTask_0: Mar 19 19:46:08.897: LBCAC Na Stats->: 
Total BW available (in MT) = 25490 
Total BW available for voice (in MT) = 22365 
Na for direct calls = 19 
Na for roaming in calls = 20 
*apfMsConnTask_0: Mar 19 19:46:08.897: 00:1b:d4:58:e6:1a sending ADD TS to AP  54:75:D0:3E:80:B0 slotId 1, for client  00:1B:D4:58:E6:1A 
tid = 6 up = 6, upsd = 1, bw = 1072
*apfMsConnTask_0: Mar 19 19:46:08.897: 
Not including un-operational rate 6 in TSRS IE 
*apfMsConnTask_0: Mar 19 19:46:08.897: 00:1b:d4:58:e6:1a Sending Successfull ADD TS resp to mobile  on AP 54:75:d0:3e:80:b0 slotId 1
*spamReceiveTask: Mar 19 19:46:08.897: 54:75:d0:3e:80:b0 AP  slotId 1 voiceBw = 23437 videoBw = 18750 voiceBwAlloc = 1072 videoBwAlloc = 0 availBw = 41115
*apfMsConnTask_0: Mar 19 19:46:15.267: 00:1b:d4:58:e6:1a Received TCLAS IE, Count=1
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a Received TCLAS PROCESSING Element IE
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a Got LBCAC Metrics IE:
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a ADD TS from mobile  on AP 54:75:d0:3e:80:b0 slotId 1
up = 6, tid = 6, upsd = 1, mediumTime = 1072, TSRSIE No
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a up=6 tsid=6 direc=3
NomMsduSize=208
MaxMsduSize=208
MinServIntvl=0
MaxServIntvl=0
InactIntval=0
MinDataRate=83200
MeanDataRate=83200
PeakDataRate=83200
MinPhyRat
*apfMsConnTask_0: Mar 19 19:46:15.268: Current TSPEC dir 3, ac 2, up 6, tsid 6
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a TSID 6,--  AC 2,-- UP 6-- dir 3
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a apfWmmOneTspecPerAcCheck Count of numbers 1
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a ACCEPT: simple replacement
*apfMsConnTask_0: Mar 19 19:46:15.268: Max stream Size is 168000
*apfMsConnTask_0: Mar 19 19:46:15.268: Max streams number is 2
*apfMsConnTask_0: Mar 19 19:46:15.268: LBCAC Metrics:td=0, tw=12, tu_vc=0, tdr=0 pb=0, pv=0, qo=0, rd=0, pb_v=0 no=0, pkts=0, num_clients=0
*apfMsConnTask_0: Mar 19 19:46:15.268: LBCAC Stats->: 
Total BW available (in MT) = 26562 
Total BW available for voice (in MT) = 23437 
Voice BW exhausted (in MT) = 0 
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a sending DEL_TS to AP  54:75:D0:3E:80:B0 slotId 1, for client  00:1B:D4:58:E6:1A 
tid = 6 up = 6, upsd = 1, inactive = 0
*apfMsConnTask_0: Mar 19 19:46:15.268: LBCAC Na Stats->: 
Total BW available (in MT) = 27634 
Total BW available for voice (in MT) = 24509 
Na for direct calls = 21 
Na for roaming in calls = 22 
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a Free voice bw for mobile on AP 54:75:d0:3e:80:b0 slotId 1tid = 6 bw_free = 1072 totalVoiceBwAlloc = 0
*apfMsConnTask_0: Mar 19 19:46:15.268: LBCAC Na Stats->: 
Total BW available (in MT) = 26562 
Total BW available for voice (in MT) = 23437 
Na for direct calls = 20 
Na for roaming in calls = 21 
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a sending ADD TS to AP  54:75:D0:3E:80:B0 slotId 1, for client  00:1B:D4:58:E6:1A 
tid = 6 up = 6, upsd = 1, bw = 1072
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a Accept TspecId=6 UP=6 Op=1 (1 is OR)
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a   tclas1 mask=0x55 srcIp=0.0.0.0 dstIp=10.10.14.54
*apfMsConnTask_0: Mar 19 19:46:15.268: 00:1b:d4:58:e6:1a          srcPort=0 dstPort=17008 proto=17 dscp=0
*apfMsConnTask_0: Mar 19 19:46:15.268: Disabling NPU TCLAS check as tclas count is 0
*apfMsConnTask_0: Mar 19 19:46:15.269: DisableNpuTclasCheck status is 0
*apfMsConnTask_0: Mar 19 19:46:15.269: 
Not including un-operational rate 6 in TSRS IE 
*apfMsConnTask_0: Mar 19 19:46:15.269: 00:1b:d4:58:e6:1a Build TCLAS IE for tid=6:
*apfMsConnTask_0: Mar 19 19:46:15.269: 00:1b:d4:58:e6:1a   UP=6 classType=0x1 classMask=0x55 version=4
*apfMsConnTask_0: Mar 19 19:46:15.269: 00:1b:d4:58:e6:1a     srcIp=0.0.0.0 dstIp=10.10.14.54 srcPort=0 dstPort=17008
*apfMsConnTask_0: Mar 19 19:46:15.269: 00:1b:d4:58:e6:1a     dscp=0 proto=17 reserved=0
*apfMsConnTask_0: Mar 19 19:46:15.269: 00:1b:d4:58:e6:1a Build TSTAT IE: tid=6 UP=6 status=Success
*apfMsConnTask_0: Mar 19 19:46:15.269: 00:1b:d4:58:e6:1a Sending Successfull ADD TS resp to mobile  on AP 54:75:d0:3e:80:b0 slotId 1
*spamReceiveTask: Mar 19 19:46:15.269: 54:75:d0:3e:80:b0 AP  slotId 1 voiceBw = 23437 videoBw = 18750 voiceBwAlloc = 1072 videoBwAlloc = 0 availBw = 41115
*spamReceiveTask: Mar 19 19:46:15.270: 54:75:d0:3e:80:b0 AP  slotId 1 voiceBw = 23437 videoBw = 18750 voiceBwAlloc = 1072 videoBwAlloc = 0 availBw = 41115
*apfMsConnTask_0: Mar 19 19:46:18.255: 00:1b:d4:58:e6:1a DEL TS from mobile on AP 54:75:d0:3e:80:b0 slotId 1up = 6, tid = 6, bw deleted = 1072
*apfMsConnTask_0: Mar 19 19:46:18.255: 00:1b:d4:58:e6:1a sending DEL_TS to AP  54:75:D0:3E:80:B0 slotId 1, for client  00:1B:D4:58:E6:1A 
tid = 6 up = 6, upsd = 1, inactive = 0
*apfMsConnTask_0: Mar 19 19:46:18.255: LBCAC Na Stats->: 
Total BW available (in MT) = 27634 
Total BW available for voice (in MT) = 24509 
Na for direct calls = 21 
Na for roaming in calls = 22 
*apfMsConnTask_0: Mar 19 19:46:18.255: 00:1b:d4:58:e6:1a Free voice bw for mobile on AP 54:75:d0:3e:80:b0 slotId 1tid = 6 bw_free = 1072 totalVoiceBwAlloc = 0
*apfMsConnTask_0: Mar 19 19:46:18.255: 00:1b:d4:58:e6:1a Delete TCLAS of tid=6
*apfMsConnTask_0: Mar 19 19:46:18.256: Disabling NPU TCLAS check as tclas count is 0
*apfMsConnTask_0: Mar 19 19:46:18.256: DisableNpuTclasCheck status is 0
*spamReceiveTask: Mar 19 19:46:18.256: 54:75:d0:3e:80:b0 AP  slotId 1 voiceBw = 23437 videoBw = 18750 voiceBwAlloc = 0 videoBwAlloc = 0 availBw = 42187

Update@14-Feb-2017
Read this CSC forum thread if you need to understand more on TSpec and ACM with different client types and Cisco WLCs.

 

Related Posts

1. Top 10 Recommendations for VoWLAN
2. BYOD with QoS
3. Cisco WLAN Best Practices for Apple Devices
4.
5.
6.