Power saving is a normal function of mobile devices. It’s required to conserve battery.
In this episode, we summarize what we’ve read about Power Management from the 802.11 standard.
Power save (PS) is a power management mode in which a station (STA) alternates between two states:
- Awake: STA is fully powered
- Dozing: STA is not able to transmit or receive and consumes very low power
Stations may define their own power management states. For example, this is a configurable setting from a Wi-Fi scanner:
- CAM – Constant Active Mode
- Fast Power Save
- MAX Power Save
The Power Management Flag is located in the Frame Control Field located in the MAC header of the 802.11 frame:
The Power Saving Flag is used by a STA to notify that it will go to sleep.
That flag is sent within a Null Data Frame from the STA. The Null Data Frame contains no data at all but is used to specify whether the STA goes into Awake or Doze state.
When a STA goes into a doze state, traffic for the STA is buffered at the access point.
How does the STA know there is data buffered for it? The Beacon frame includes a Traffic Indication Map (TIM) and Delivery TIM (DTIM) which tells the STA how often it should come out of doze state and check for buffered data.
The TIM contains a Partial Virtual Map and an Association ID for buffered data associated with a STA.
The DTIM Count field indicates how many Beacon frames (including the current frame) appear before the next DTIM. A DTIM count of 0 indicates that the current TIM is a DTIM.
The DTIM Period field indicates the number of beacon intervals between successive DTIMs.
The Bitmap Control field contains the traffic indication virtual bitmap bit associated with an AID. This bit is set to 1 in TIM elements with a value of 0 in the DTIM Count field when one or more group addressed MSDUs/MMPDUs are buffered at the AP.
- Filter frames with the Power Management bit set to 1
- wlan.fc.pwrmgt == 1
- Filter null Data frames (null data + CF-Poll):
- (wlan.fc.type == 2) && (wlan.fc.subtype == 4)
- Filter beacon frame that indicates buffered data is available for doze STA:
- (wlan.fc.type == 0) && (wlan.fc.subtype == 8) && (wlan.tim.partial_virtual_bitmap != 00)
- Section 6.3.2 – Power Management p.264
- Section 126.96.36.199.7 – Power Management subfield p.642
- Section 11.2 – Power Management (MLME) p.1599
- Section 11.2.3 – Power management in a non-DMG infrastructure network p.1600
- Figure 11-7 – Infrastructure power management operation (no PCF operating) p.1603