Tuesday, April 16, 2013

802.11 WMM Priorities: UP/TID/802.1D Demystified.

WMM introduces the concept of priority in to wlan, but to implement the priority it uses a complex terminology like UP (User Priority), TID (Traffic ID)  and  802.1D priority. 


All seem to represent the same "priority" and convey the same information, but then why do we need the three different terms. This confuses many, especially in TSPEC/TCLAS we see TID and UP both in the same frame leading to more confusion. Lets take a quick glance at what they mean and when should we use each of them.


We know that priority in WLAN is tightly coupled with the priority set by the application in the upper layers, so first we need to understand the LLC and MAC interface i.e., MAC SAP.


MA-UNITDATA.request is the primitive used to send any MSDU's to MAC by LLC, in this request the params used are

  • source address,
  • destination address,
  • routing information,
  • data,
  • priority,
  • service class


Here Priority can be an integer from 0-15 (or) non-integer of "contention"/"contention-free".


TX SIDE:


Integer Priority: 

Values:
             0-7 for QOS STA's in an QOS IBSS
             0-15 for QOS STA's in an QOS BSS


The priority directly maps to TID field identify the particular traffic stream from LLC. TID is not priority, its just an ID through which the actual priority is derived....


if (0 <= TID <8)
       UP=TID
else if (8<= TID <=15)
     if (TSPEC defined)
              UP= TID from TSPEC/TCLAS
    else
             UP = 0

Non-Integer Priority:

  • At QoS STAs associated in a QoS BSS, MSDUs with a priority of Contention are considered equivalent to MSDUs with TID 0
  • and those with a priority of ContentionFree are delivered using the contention-free delivery if a point coordinator (PC) is present in the AP. 
  • If a PC is not present, MSDUs with a priority of ContentionFree shall be delivered using an UP of 0

  • At STAs associated in a non-QoS BSS, all MSDUs with an integer priority are considered equivalent to MSDUs with a priority of Contention.


RX SIDE:

If a STA is associated in a QoS BSS, the MSDUs it receives in QoS data frames are reported with the TID
value contained in the MAC header of that frame.


 The MSDUs such a STA receives in non-QoS data frames
are reported to LLC with a priority of Contention, if they are received during the CP, 


or ContentionFree, if they are received during the CFP.

Summary:


TID: 4 bits ID Used in

        QOS CTRL Header

               EDCA: same as UP (0-7)
               HCCA: TSID (8-15)

        TSPEC/TCLAS



UP: 3 bits Priority

        TSPEC/TCLAS



802.1D: 3 bits
          Used Internally similar to UP, taken from the bridging standard.