[PATCH 1/2] Allow scanning while in authenticated only state

Maxim Levitsky maximlevitsky
Mon Nov 2 15:17:01 PST 2009


On Sun, 2009-11-01 at 22:10 +0200, Jouni Malinen wrote: 
> On Sat, Oct 31, 2009 at 12:33:16PM +0200, Maxim Levitsky wrote:
> 
> > How about putting this in wpa_supplicant, and end all trouble with this
> > for once?
> > 
> > This is a workaround/hack, but at least it works....
> 
> Could you please add a comment pointing that out and explaining that the
> deauth in disassoc is there due to mac80211's inability to handle
> multiple APs in authenticated-but-not-associated state?
I resend this patch with proper comment.

> 
> > diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
> >  static int wpa_driver_nl80211_disassociate(void *priv, const u8 *addr,
> >                                            int reason_code)
> 
> > -       return wpa_driver_nl80211_mlme(drv, addr, NL80211_CMD_DISASSOCIATE,
> > +
> > +       err = wpa_driver_nl80211_mlme(drv, addr, NL80211_CMD_DISASSOCIATE,
> > +                                      reason_code);
> > +       if (err)
> > +               return err;
> > +       return wpa_driver_nl80211_mlme(drv, addr, NL80211_CMD_DEAUTHENTICATE,
> >                                        reason_code);
> 
> There should be no need for doing both disassoc and deauth; just send
> deauth only if that is needed. This will save one extra frame
> transmission and speeds up roaming a bit.
> 
> Though, is this enough to handle the roaming cases where wpa_supplicant
> may not try to send either disassociation or deauthentication?
Currently wpa_supplicant sends only disassociation.
deauthentication is send only in rare cases, usually due to [suspected]
authentication error.
Other that that I don't know, what I need is a clear statement about how
things should work that is:


* Should kernel allow authentication while in authenticated? I guess yes
To same AP? To different APs?

* What should kernel do if it done authentication to several APs?, but
not association.
should it timeout, or let wpa_suplicant do it?
Currently it allows 4 (or 3) such APs, and then then bugs out with
-ENOSPC


* Should kernel allow scanning while in authenticated but not associated
case? 
I have send patch to do so, I hope it will be accepted.


While 3 (or more if I didn't find all of them) problems remain, this
workaround is the only solution.


Best regards,
Maxim Levitsky




More information about the Hostap mailing list