Search Linux Wireless

Re: mac80211 MLME scanning - BSS list trouble

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

 



On Mon, 2008-03-31 at 18:04 +0300, Jouni Malinen wrote:
> On Sun, Mar 30, 2008 at 10:33:19AM +0200, Johannes Berg wrote:
> 
> > After having two bug reports about the BSS list/probe_resp variable in
> > mac80211 and a very detailed analysis of the problem from Bill Moss, I
> > think I've understood the problem now but I'm not sure how to proceed
> > because I do not understand the reason for "Do not allow beacons to
> > override data from probe responses".
> 
> The main (and only) reason for this is support for multi-SSID
> configurations (hidden SSID and/or multiple SSIDs with the same BSSID,
> but with different security parameters). Only the Probe Response frames
> are guaranteed to include correct information for <BSSID,SSID> pair in
> these cases and because of that, Beacon frames are not allowed to update
> things like SSID or WPA/RSN IE.

Right. But in that case, a beacon frame we receive will update the
<BSSID,""> BSS structure, not the <BSSID,actual SSID> structure because
the update code will find only the former since the SSID is hidden.
TheBSS structure w/o SSID won't actually be used.

> One example of information that should not be overridden by Beacon
> frames is WPA and RSN IE since these could differ based on the SSID in
> multi-SSID configurations. An example of information that must be
> updated from every Beacon frame would be ERP IE. Finally, there are also
> more complex cases, like the Capability Information, which should
> probably be handled separately for each subfield (e.g., Privacy could be
> per-SSID and Short Slot Time for every SSID of the BSSID).

Right. But wouldn't that be covered by operating on different BSS
structs?

> > The only thing I'm not sure about is whether that will introduce
> > regressions because probe responses can contain better information than
> > beacons. The only reason I can find for this would be an AP that has
> > multiple SSIDs with different security settings on each and announces
> > those only in the probe responses (and otherwise uses a hidden SSID),
> > but we only handle that now, much later than the code there that was
> > already present.
> 
> I'm not sure whether the current code is correct for all information
> from Beacon/ProbeResp (i.e., some parts might need to be moved to be
> before/after this check), but changes to WPA/RSN IE are after this
> return-on-Beacon for a reason and removing that check would break some
> multi-SSID networks.

Ok, I think the HT for example should be moved in front.

> > However, that actually seems to have another bug, if you have such an AP
> > will you find two BSSes, one with a hidden and one with a visible SSID?
> 
> That is by design.

Right, ok.

> I think that we will need to evaluate whether the current implementation
> is updating all pieces of information in correct place and still
> maintain possibility of not using Beacon frames to update some fields.

Right. Show of hands who wants to do this? :) Bill sent me a patch
privately, I've asked him to post it here on the list for comments. I
really don't have time right now to investigate all this.

> There might be cases where the old information from ProbeResp should
> expire (though, if we are still associated with that BSSID,SSID pair, we
> should use Probe Request to update this information instead of just
> blindly throughing it away).

Yeah, sure.

> Any information that has to be same for all SSIDs in multi-SSID (single
> BSSID) configuration can be updated based on Beacon frames since the
> SSIDs for a specific SSID would not contain any different information
> for these parts. However, fields that can be configured per-SSID, must
> be handled separately in order to be able to support multi-SSID
> configuration with different security policies per SSID. This would
> mainly included Privacy flag in the capability field and security
> related IEs (WPA IE, RSN IE), but there may be something else that would
> benefit of similar handling.

It might help if there was code in hostapd to actually do run this
scenario. *hint* *hint* :)

johannes

Attachment: signature.asc
Description: This is a digitally signed message part


[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