Disabling SMPS (Spatial multiplexing power save) when 802.11n is not used

Jose Blanquicet blanquicet at gmail.com
Fri Mar 18 06:11:13 PDT 2016

Sorry for the double semicolon, my mistake!

You are probably right, the problem could be that smps attribute is added
without verify if it is going to do HT. In function wpa_driver_nl80211_set_ap:

if (nla_put_u32(msg, NL80211_ATTR_SMPS_MODE, smps_mode))
           goto fail;

When I set it to HT_CAP_INFO_SMPS_DISABLED, nl80211 shoul ignore it
and that's the reason why it works.

On Fri, Mar 18, 2016 at 1:33 PM, Johannes Berg
<johannes at sipsolutions.net> wrote:
> On Fri, 2016-03-18 at 09:20 +0100, Jose Blanquicet wrote:
>> Hello,
>> SMPS (Spatial multiplexing power save) is a feature proposed in
>> 802.11n
>> to reduce power consumption. When device is playing in Access Point
>> and
>> 802.11n mode is disable setting disable_ht = 1, the HT Capabilities
>> (conf->ht_capab) are "cleaned" (Set to zero) in function
>> wpa_supplicant_conf_ap_ht, but the value 0 does not actually clean
>> the
>> capabilities, instead it is being set to use SMPS_STATIC:
>>       #define HT_CAP_INFO_SMPS_STATIC                 ((u16)
>> 0)
>>       #define HT_CAP_INFO_SMPS_DYNAMIC                ((u16) BIT(2))
>>       #define HT_CAP_INFO_SMPS_DISABLED               ((u16) (BIT(2)
>> | BIT(3)))
>> Therefore, when the beacons parameters are configured, it results in
>> an
>> error because SMPS is set to SMPS_STATIC mode in a non-802.11n
>> configuration:
>>       nl80211: Beacon set failed: -22 (Invalid argument)
> Hm. Sounds a bit more like nl80211 driver shouldn't have this attribute
> at all if it's not actually going to do HT?
> johannes

More information about the Hostap mailing list