NL80211_ATTR_PREV_BSSID on resume

Carlo Caione carlo at endlessm.com
Thu Jan 25 09:12:11 PST 2018


Hi,
I'm not sure if this is a wpa_supplicant or a driver problem but I'd
like to discuss this a bit here since I'm missing familiarity with
NL80211 to define where the problem actually is.

In Endless we are facing a problem with an hardware shipping a
RTL8723BU WiFi module. Since the upstream drivers are not working fine
we resorted to use the downstream driver at [0].

This driver is usually working fine with a big problem though: when
resuming the machine from suspend, nm fails to connect again to the
AP. As you can see in [1] we are not the only ones experiencing this
problem.

I bisected this issue down to the upstream commit in [2]. In
particular AFAICT the problem is triggered by the line in [3] since
(as you can see in [4]), the NL80211_ATTR_PREV_BSSID attribute is not
set on connect. AFAICT wpa_supplicant is perfectly able to set the
NL80211_ATTR_PREV_BSSID on connect but it is not doing that on resume
from the logs I collected (if you are interested in [5] the
wpa_supplicant log after the resume).

Now I'm wondering where the problem is. For sure something is wrong in
the driver (otherwise I would have seen much more complains around
with other drivers) but it's still not clear to me what's the matter
with NL80211_ATTR_PREV_BSSID and if wpa_supplicant is supposed to set
the attribute when connecting and especially after a resume.

Thank you,

[0] https://github.com/lwfinger/rtl8723bu
[1] https://github.com/lwfinger/rtl8723bu/issues/91
[2] https://github.com/torvalds/linux/commit/51e13359cd5ea34acc62c90627603352956380af
[3] https://github.com/torvalds/linux/blob/master/net/wireless/sme.c#L1121
[4] https://github.com/torvalds/linux/blob/master/net/wireless/nl80211.c#L9008
[5] https://gist.github.com/carlocaione/44bcc5a1d675004c537f58cc78cbcafa

-- 
Carlo Caione  |  +44.7384.69.16.04  |  Endless



More information about the Hostap mailing list