Search Linux Wireless

Re: [PATCH 01/19] orinoco: Add ESSID specific scanning for Agere fw

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2008-08-07 at 22:08 +0100, Dave wrote:
> Dan Williams wrote:
> > On Thu, 2008-08-07 at 19:43 +0100, Dave wrote:
> >> That said, what's wrong with the ap_scan=2 mode? You've stated it's not
> >> great (and I'm prepared to believe it), but what is the actual problem?
> 
> > But the problem with ap_scan=2 is really about the failure window.
> > ap_scan=2 basically dumps a load of options on the driver, and unless
> > the options _exactly_ match the configuration of the AP, you won't
> > connect.  The supplicant isn't able to make intelligent choices about
> > which networks in its config file match the scan result, thus there's a
> > lot more potential for failure unless you know exactly what your network
> > is set up to do, and these capabilities aren't always exposed through
> > beacons.  So ap_scan=2 just opens up a huge window of failure and stuff
> > can't ever Just Work because no intelligence can be applied.
> 
> Wouldn't a different mode of operation in wpa_supplicant solve this (see below)? Then get rid of the mode selection via wpa_supplicant.conf by selecting mode based on drivers error responses (and/or reported capabilities).

Maybe; as long as the modes are not actually exposed or configurable in
any way.  However, since drivers are so horribly inconsistent and since
WEXT doesn't promote consistency, I tend to think having automatically
chosen modes like this would cause more problems than we have now...

> ap_scan=3:
>     * 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 SSID to use based on scan results
>     * wpa_supplicant configures driver to associate with an SSID (SIOCSIWMODE, SIOCSIWGENIE, SIOCSIWAUTH, SIOCSIWESSID)
> 
> SIOCSIWSCAN not supported? => ap_scan=2

If a driver doesn't support SIOCSIWSCAN it'll get a big fat NAK for
kernel inclusion.  Any driver that doesn't support scan shouldn't be
used.

I assume you mean "specific SSID scanning" though, right?  That's
basically what NM does right now; if the driver doesn't support SSID
scan capabilities, NM requests that the supplicant use ap_scan=2.

Basically, I don't think any of this is really a problem any more.  The
supplicant should probably ignore a result of EOPNOTSUPP when calling
SIOCSIWAP during the association run.  ap_scan certainly shouldn't be
overloaded more than it is now.  I don't think the supplicant locking in
the BSSID and controlling roaming in the supplicant based on BSSID is
all that useful since the firmware or stack usually does what it wants
anyway.  Besides, it's sort of insane to specify 10 different network
blocks with a common SSID but different everything else.  That's an
indication of a horribly broken network for starters, and secondly you
simply shouldn't need to lock multiple network blocks with a common SSID
down to different BSSIDs in the first place really.

If we really want to handle roaming in the supplicant, we shouldn't be
overloading ap_scan any more.  We should be thinking about this from the
ground up and not trying to shove a round peg into a square hole.
ap_scan just isn't suitable for actually handling roaming.

Dan

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux