Hello! I would like to remind issue with NL80211_CMD_GET_POWER_SAVE described below. Do you have any idea how to fix / workaround it for nl80211 API? On Tuesday 09 June 2020 13:15:44 Pali Rohár wrote: > Hello! > > I'm looking at power save mode provided by mwifiex driver and I see that > current implementation is suboptimal and probably default settings quite > suspicious for me. > > If I understand mwifiex driver correctly, it supports power save mode, > but its setting is global for all interfaces. mwifiex is fullmac driver > and power save mode is controlled by firmware and it is not possible to > set it per-bssid. There is just command which affects all bssids. > Ganapathi, please correct me if I'm wrong here. > > On the other hand, current cfg80211 layer supports controlling power > save mode by NL80211_CMD_SET_POWER_SAVE and NL80211_CMD_GET_POWER_SAVE > commands, which are per-net-interface, not per-wiphy-interface. > > Moreover NL80211_CMD_GET_POWER_SAVE does not use any driver callback, > just use cached value from the last NL80211_CMD_SET_POWER_SAVE call. So > kernel driver cannot provide correct state of power save by asking > firmware for it. > > So currently it is not possible to implement power save mode for mwifiex > driver correctly when more bssid interfaces for wiphy are used. > > Current situation is following: If I create two wlan interfaces (wlan0 > and wlan1) for mwifiex wiphy and turn power save just only for wlan0 > then mwifiex turn power save for both wlan0 and wlan1 (as firmware does > not support per-bssid powe save), but cfg80211 for wlan1 still inform > that power save is enabled. > > Do you have any idea how to fix this issue "properly"? So kernel would > not lay about power save state of mwifiex interfaces? I guess that some > extension or modification would be needed to core wireless cfg80211 > code. > > > And I have another question about power save. How should be handled > WIPHY_FLAG_PS_ON_BY_DEFAULT flag? I see that kernel by default set it > based on CONFIG_CFG80211_DEFAULT_PS compile option. But mwifiex driver > always enable it independently of how is CONFIG_CFG80211_DEFAULT_PS was > set at compile time. > > Should mwifiex driver respect CONFIG_CFG80211_DEFAULT_PS compile time > option and do not enable WIPHY_FLAG_PS_ON_BY_DEFAULT when > CONFIG_CFG80211_DEFAULT_PS is not set to power save? > > > And the last question about power save mode and mwifiex. As power save > mode for mwifiex firmware is global for all interfaces, what should be > the correct behavior when there is wlan0 interface in managed/sta mode > with enabled power save mode and then user add a new wlan1 interface in > AP mode? Should driver turn off power save mode automatically (as it AP > with enabled power save mode may cause problems) or should power save > mode stay enabled (as user explicitly did not turned it off for wlan0)? > > And what should be the correct behavior when there are two interfaces > wlan0 and wlan1, both have power save mode turned off and user try to > enable power save mode just for wlan0? Should mwifiex driver turn power > save mode and therefore enable it for both wlan0 and wlan1? Or it should > not enable power save mode until command is send for both wlan0 and > wlan1 interfaces?