Re: [PATCH v2] mac80211: add assoc beacon timeout logic
From: Johannes Berg <johannes@sipsolutions.net>
Date: 2013-11-11 17:00:35
Also in:
linux-wireless
On Mon, 2013-11-11 at 10:53 -0600, Felipe Contreras wrote:
quoted
I see the same behaviour - but it's the supplicant's doing, it is indeed getting the event that the AP connection failed (timed out): wlan0: Event ASSOC_TIMED_OUT (15) receivedNot in my setup.
Well, dunno then. Different kernel versions? This clearly happens for me.
quoted
quoted
quoted
This isn't really true like I said above - the kernel can only drop the association, if userspace *insists* then it will try again and again.But it's not doing this: ieee80211_destroy_assoc_data(sdata, false); cfg80211_assoc_timeout(sdata->dev, bss); Which is what causes the association to stop for me. So where exactly in the code is the association being "dropped"?This does get called in my setup.Yes, because your setup is receiving beacons.
No ... I tested on hwsim, making it ask for dtim-before-assoc, and short-circuiting the beacon-TX routing. It can't have been seeing beacons.
Check the code:
if ((ifmgd->assoc_data->need_beacon && !ifmgd->have_beacon) ||
ieee80211_do_assoc(sdata)) {
struct cfg80211_bss *bss = ifmgd->assoc_data->bss;
ieee80211_destroy_assoc_data(sdata, false);
cfg80211_assoc_timeout(sdata->dev, bss);
}
If there's no beacon, cfg80211_assoc_timeout() is not called.Yes it is. "need_beacon && !have_beacon: means - I wanted the beacon but didn't get it at the timeout.
I'm sure if you don't call ieee80211_rx_mgmt_beacon() at all you will see the same behavior I see.
I'm sure I won't :)
quoted
Like I said before - trying to work with an AP without beacons at all is really bad, we shouldn't be doing it.Why not? For all intents and purposes my system is not receiving any beacons, and I don't see any problems.
The not receiving part is a bug. I think you're probably receiving beacons once associated though?
What would you prefer? That nothing works at all?
Yes, that'd be much safer.
quoted
We might not properly react to radar events, and other things, for example.So? I don't know what that means, but it can't be worst than not being able to connect to the Internet whatsoever at all.
It can make you break the law. johannes