WPA supplicant log from current libertas-2.6 head

Dan Williams dcbw at redhat.com
Wed Jun 6 08:18:12 EDT 2007


On Wed, 2007-06-06 at 08:15 +0200, Holger Schurig wrote:
> > ap_scan=1
> 
> Do you mean this?  With ap_scan=1, wpa_supplicant does the 
> scanning & roaming. With ap_scan=2, the WLAN driver does it.

Yes, I mean ap_scan = 1.  ap_scan has always been a bitch to figure out
which you need, but AFAIK the rule of thumb was that ap-scan=2 is only
used for ad-hoc and non-SSID-broadcasting networks.

If you use ap_scan=2, you have to know _exactly_ what options the AP
needs for the GTK and PTK, with ap_scan=1 wpa_supplicant can make some
intelligent choices about what to use.

> This is from wpa_supplicant's documentation:
> 
> --------------------------------------------------------
> 
> AP selection depends on ap_scan configuration:
> 
> ap_scan=1:
> 
> - %wpa_supplicant requests scan with SIOCSIWSCAN
> - driver reports scan complete with wireless event SIOCGIWSCAN
> - %wpa_supplicant reads scan results with SIOCGIWSCAN (multiple
>   call if a larget buffer is needed)
> - %wpa_supplicant decides which AP to use based on scan results
> - %wpa_supplicant configures driver to associate with the 
> selected BSS
>   (SIOCSIWMODE, SIOCSIWGENIE, SIOCSIWAUTH, SIOCSIWFREQ,
>    SIOCSIWESSID, SIOCSIWAP)
> 
> ap_scan=2:
> 
> - %wpa_supplicant configures driver to associate with an SSID
>   (SIOCSIWMODE, SIOCSIWGENIE, SIOCSIWAUTH, SIOCSIWESSID)
> 
> --------------------------------------------------------
> 
> So, which ioctl from wpa_supplicant isn't Libertas?  And wouldn't 
> it be an option to simply add this ioctl?  After all, an 
> unmodified wpa_supplicant run's with a huge range of different 
> cards via the -Dwext driver ...

Haha.  Not really.  It only does that because I ported half the
in-kernel drivers (and a few external ones) to WEXT so that they _would_
run with wpa_supplicant for both WPA, WEP, and unencrypted.  And when
NetworkManager started requiring the 'wext' driver, only then did
madwifi, linux-wlan-driver, and others actually implement WE-19 so that
they would work with the 'wext' driver and WPA too.  There are still
problems with a  lot of drivers though.

The problem is that wpa_supplicant was originally built for hostap.  For
example, not many drivers implement PRIVACY_INVOKED and
RX_UNENCRYPTED_EAPOL (basically just hostap and madwifi), and I can't
find anywhere in libertas to implement that.  That's the same for airo,
orinoco, atmel, etc.  But if the driver doesn't silently accept that,
wpa_supplicant sets the association timeout to 5s even though the driver
succeeds.

It feels really, really wrong to have a bunch of cases that just return
NULL; wpa_supplicant should be more flexible in what constitutes a
required setting and what doesn't before dropping the association
timeout from 60s -> 5s just because one of the ioctls is unsupported.

Dan





More information about the libertas-dev mailing list