WMM Power Save (WMM-PS)
Before going through WMM-PS you should go through LegacyPowerSave for better understanding.
♣ WMM-PS topics:
♣ What is WMM-PS?
If we break down WMMPS, we get WMM+PS = Wi-Fi Multimedia + Powersave. This means if any Wi-Fi device supports WMM then that device is eligible to support WMMPS. But it’s not mandatory for a device to use WMMPS evenif it supports WMM. The point is, to get WMMPS device has to support WMM.
♣ How to check if AP supports WMM-PS?
We need to check U-APSD field from AP’s Beacon.
Beacon-> Tagged Parameter-> WMM/WME -> WME Qos Info -> U-APSD
Here is this article; WMMPS refers to U-APSD (Unscheduled Automatic PowerSave Delivery). U-APSD is widely supported in all devices and more famous than S-APSD (Scheduled Automatic PowerSave Delivery)
♣ Steps for WMM-PS:
a. STA and AP both should support WMM/QoS.
b. Association should be WMM association. We can check Association Request, Association Response packet for WMM IE.
c. STA and AP both should support WMMPS. For AP we have discussed in previous point.
For STA WMMPS support we need to check in Association Request frame-> WME ->WME QoS Info ->Set 4 ACs [VO, VI, BE, BK] as 1 .This also means each AC is delivery and trigger enabled. As of now just remember this we will discuss in deep in another post.
d. One more important parameter: It also specifies the maximum SP length which indicates the number of buffered frames the AP may send per service period. We will discuss this later with an example to understand better.
Screenshot for c and d
1. Now after association is completed, STA sends one Null Data frame to AP where PM=1. This means STA is going to powersave. This is same as Legacy PowerSave mechanism.
2. We have assumed that all ACs in Association Request frame are set to 1. Then AP indicates in Beacon TIM for buffered data for sleeping STA.
3. STA wakes up in listen interval and sees that Beacon TIM indicates its AID.
4. STA sends a trigger frame to AP. A trigger frame may be a QoS Null or Data packet. Remember that PM bit is set to 1 in trigger frame (Data or QoS Null). In general we can see trigger frame is Voice Access Category.
5. Once AP receives a trigger frame, AP starts sending buffer data one by one within max service period length (See Max SP Length). In our example SP length is set to 0.
6. STA sends ACK for each Data packet.
Let’s see one instance to understand point 5, 6 better. Here we can see ping request coming from AP and ping reply coming from STA. So, ping request is buffered packet.
7. STA goes to sleep without any sending packet to AP. Because all trigger frame is having PM=1 always. This style is same as PS-POLL mechanism.
♣ Maximum Service Period Length (Max SP Length):
1. Suppose STA sets “Maximum service period length” as 10(one zero) in Association Request. So according to below table AP may send max 2 Data frame to STA within one service period.
Max SP length is 2 bits field and here is meaning table from IEEE Spec
2. Now AP has buffered 4 packets.
3. After STA sends trigger frame to AP, AP sends Data1 where More Data =1, EOSP = 0
4. Data2 where More Data =1, EOSP=1
5. So more data is buffered in AP, now STA has to send one more trigger frame to get the other buffer data.
6. After STA sends one more trigger frame,
AP sends Data3 where More Data =1 and EOSP=0
Data4 where More Data =0 and EOSP=1
♣ Partial WMM-PS:
As we know in our above example all ACs are set to 1 in Assoc Request. If any scenario STA sets some ACs as 1 in Assoc Request then different protocols will be used for powersave.
1. AC  will follow WMMPS and other AC  follows Legacy powersave.
2. In this case, Beacon’s TIM will indicate only for Legacy buffer data. STA has to send trigger frame using own logic to get WMMPS buffer data from AP.
♣ What happens if STA sends trigger frame but AP does not have any buffered data?
In this scenario AP replies with QoS Null frame where More Data=0 and EOSP=1.
♣ Why trigger packet’s AC is Voice?
So that trigger packet gets highest priority from STA transmission on the wireless medium.
♣ One real life example where STA can send trigger frame without waiting for beacon and it’s required to do so?
Suppose one Cisco wireless voip phone is connected to Wi-Fi router (AP). AP backend has internet through wired network. This wireless phone supports WMMPS and goes to powersave. Now wireless voip phone got one voice call so any voice packet coming from AP (AP gets from wired network) should be buffered at AP. And we know voip phone (STA) can transmit voice packet any time as its TX. In general AP’s beacon interval is 100ms so AP’s TIM bit will set after 100ms. 100ms is the minimum time STA has to wait to get voice buffered data. But voice packet cannot tolerate 100ms latency. Otherwise there will not be any synchronization between received and sent voice. So to avoid this problem STA sends trigger frame on every 20ms (It’s proven that voice packet can tolerate 20ms delay) to AP and then AP clear all buffered voice packet. If there is no buffered packet then AP replies with QoS null where More Data=0 and EOSP=1.
♣ WMMPS is based on U-APSD or S-APSD?
WMMPS is based on U-APSD.
♣ Why it’s called Unscheduled?
Because there is no predefined agreed time when STA sends trigger frame.
♣ What is trigger frame?
A trigger is a data frame (may not contain data) which sent to AP from STA to get buffered data from AP. PM bit is set to 1 in trigger frame and AC is generally set to voice.
♣ Good to know
There are advantages for WMMPS over Legacy Powersave, that’s why WMMPS (U-APSD) is widely accepted in many devices. We will discuss the comparison between Legacy powersave and WMMPS in another post.
♥♥ If you have any doubts or query please let me know in comment section or send mail at email@example.com ♥♥