During the platform bringup of IPQ807x, we noticed with @robimarko that apparently Openwrt completely lacks SMPS support. To be more precise, mac80211.sh is missing the checks and configuration of SMPS, so hostapd is not configured as well.
As this is a generic 802.11 feature and not platform-specific, I decided to open a separate thread for it.
SMPS is a power save feature that disables all but one of the radio chains of a Wifi radio. There are two versions: dynamic and static SMPS.
The capability is being advertised by the wireless driver based on the radio capability:
Capabilities: 0x19e7 RX LDPC HT20/HT40 Dynamic SM Power Save <--- this is it RX HT20 SGI RX HT40 SGI TX STBC RX STBC 1-stream Max AMSDU length: 7935 bytes DSSS/CCK HT40
Feature bits involved:
||NL80211_FEATURE_STATIC_SMPS|||= 1 << 24,| ||NL80211_FEATURE_DYNAMIC_SMPS|||= 1 << 25,|
As it is relatively straight forward to implement this feature in mac80211.sh and populate it to hostapd, hopefully someone a bit more experienced than I am, can pick this up and make it a reality for the whole of Openwrt.