2008-08-18 16:48:27

by Jouni Malinen

[permalink] [raw]
Subject: Userspace client MLME and BSSID-mismatch filtering for scans

I'm trying to get userspace client MLME working again and the next
blocker seems to be in Probe Response frames being dropped during
scanning (prepare_for_handlers() rejects frame due to BSSID mismatch
when "not in scan" (which is currently defined as kernel MLME or hw
scan).

I can workaround this with the patch below, but I would assume there are
some consequences in doing this (at least as far as CPU use is
concerned). Would there be a better way of doing this? Should I add yet
another parameter (like sdata->flags IEEE80211_SDATA_USERSPACE_MLME) for
indicating another type of scan (userspace MLME scanning) and get
wpa_supplicant setting that around scan operations? That would get
rx->flags IEEE80211_RX_IN_SCAN set in __ieee80211_rx_handle_packet and
consequently, would likely allow the ProbeResp frames to be received in
this case.

Any preferences or comments on this?



Index: wireless-testing/net/mac80211/rx.c
===================================================================
--- wireless-testing.orig/net/mac80211/rx.c
+++ wireless-testing/net/mac80211/rx.c
@@ -1828,7 +1828,8 @@ static int prepare_for_handlers(struct i
if (!bssid)
return 0;
if (!ieee80211_bssid_match(bssid, sdata->u.sta.bssid)) {
- if (!(rx->flags & IEEE80211_RX_IN_SCAN))
+ if (!(rx->flags & IEEE80211_RX_IN_SCAN) &&
+ !(sdata->flags & IEEE80211_SDATA_USERSPACE_MLME))
return 0;
rx->flags &= ~IEEE80211_RX_RA_MATCH;
} else if (!multicast &&

--
Jouni Malinen PGP id EFC895FA


2008-08-18 19:09:25

by Jouni Malinen

[permalink] [raw]
Subject: Re: Userspace client MLME and BSSID-mismatch filtering for scans

On Mon, Aug 18, 2008 at 07:47:42PM +0300, Jouni Malinen wrote:
> I'm trying to get userspace client MLME working again and the next
> blocker seems to be in Probe Response frames being dropped during
> scanning

I got the userspace client MLME working with the current wpa_supplicant
0.6.x git version and using -Dnl80211. mac80211 needs two changes for
this to work: cfg80211 vif configuration option for enabling userspace
MLME (I'll send an updated patch for this) and workaround/fix for
ProbeResp frames (BSSID-mismatch) dropping during scan (works with the
patch I sent in the previous message in this thread or alternatively,
could add a mechanism for letting mac80211 know when userspace MLME is
doing scanning if that is considered more preferable; that extension
would add on top of the vif configuration patch to bring in extra
parameters for indicating scan state).

--
Jouni Malinen PGP id EFC895FA

2008-08-19 12:35:45

by Tomas Winkler

[permalink] [raw]
Subject: Re: Userspace client MLME and BSSID-mismatch filtering for scans

On Mon, Aug 18, 2008 at 10:08 PM, Jouni Malinen <[email protected]> wrote:
> On Mon, Aug 18, 2008 at 07:47:42PM +0300, Jouni Malinen wrote:
>> I'm trying to get userspace client MLME working again and the next
>> blocker seems to be in Probe Response frames being dropped during
>> scanning
>
> I got the userspace client MLME working with the current wpa_supplicant
> 0.6.x git version and using -Dnl80211. mac80211 needs two changes for
> this to work: cfg80211 vif configuration option for enabling userspace
> MLME (I'll send an updated patch for this) and workaround/fix for
> ProbeResp frames (BSSID-mismatch) dropping during scan (works with the
> patch I sent in the previous message in this thread or alternatively,
> could add a mechanism for letting mac80211 know when userspace MLME is
> doing scanning if that is considered more preferable; that extension
> would add on top of the vif configuration patch to bring in extra
> parameters for indicating scan state).
>

What are benefits this type of scanning? Is this sultion you are
looking for or this just should bridge temporal lack of nl80211 API
for scanning?
Thanks
Tomas