802.11s mesh powersaving for linux¶
Scope ¶
- Implement non-realtime powersaving features of 802.11s draft:
- powersaving level indication;
- traffic buffering for sleeping peers;
- TIM/DTIM in beacons;
- peer service period;
- Provide powersaving level control on MSTA/peer link basis;
- Provide peer link control;
Approach¶
Enhance current in-kernel 802.11s implementation:
- powersaving scheme proposed by 802.11s draft closely resemble AP-based scheme (traffic buffering/TIM/DTIM), so this code may be reused;
- powersaving level indication (both peer and non-peer)/mesh awake window attributes need to be added;
- wakeup for peer beacon reception may be implemented later, now it's enough to stay awake continuously and just calculate whether station would actually hear the frames that it receives;
- peer service period logic need to be added, it's a simple state machine;
Testing may be carried out with mac80211_hwsim driver. Test cases.
What's to be done ¶
- MSTA power mode tracking (11C.13.3);
- each peering power mode tracking (11C.13.4);
- TIM/DTIM in beacons (11C.13.5-6) -- ieee80211_beacon_get_tim;
- mesh awake window (11C.13.7);
- wake-up scheduling for peer beacons (optional);
- service period tracking (11C.13.10);
- frame buffering for doze peers -- ieee80211_tx_h_multicast_ps_buf, ieee80211_tx_h_unicast_ps_buf;
- user interface controls -- like nl80211_set_power_save;
Repository¶
- current repo: https://github.com/OSLL/greenmesh
- outdated repos
- linux wireless-testing repository with mesh-power branch as master: git://kkv.spb.su/dumb/mesh-power/wireless-testing.git
- iw repository with mesh-power branch as master: git://kkv.spb.su/dumb/mesh-power/iw.git
Manuals¶
Project stuff¶
- Project team
- Basic terms
- Basic Mesh functionality Intro
- Power save related info
- Test cases and testing strategy
- Meeting minutes
- Draft letter to linux-wireless
- mac80211 call's stack description
- Patch and build wireshark
- Task for begginers
- Starting mesh network for newbies