Thread (6 messages) flat view 6 messages, 3 authors, 2013-11-11

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) received
Not 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help