2011-02-01 11:23:11

by Arik Nemtsov

[permalink] [raw]
Subject: [PATCH] mac80211: pass up beacons from external BSS when operating as AP

Beacons from external BSSes are required for updating overlapping BSS
info (i.e. ERP protection). Pass them up unconditionally.

Signed-off-by: Arik Nemtsov <[email protected]>
---
net/mac80211/rx.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index f36d70f..42dbb6f 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2658,7 +2658,8 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,
return 0;
} else if (!ieee80211_bssid_match(bssid,
sdata->vif.addr)) {
- if (!(status->rx_flags & IEEE80211_RX_IN_SCAN))
+ if (!(status->rx_flags & IEEE80211_RX_IN_SCAN) &&
+ !ieee80211_is_beacon(hdr->frame_control))
return 0;
status->rx_flags &= ~IEEE80211_RX_RA_MATCH;
}
--
1.7.1



2011-02-01 13:56:56

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: pass up beacons from external BSS when operating as AP

On Tue, 2011-02-01 at 13:23 +0200, Arik Nemtsov wrote:
> Beacons from external BSSes are required for updating overlapping BSS
> info (i.e. ERP protection). Pass them up unconditionally.

Where will they be processed though?

johannes


2011-02-01 14:57:01

by Jouni Malinen

[permalink] [raw]
Subject: Re: [PATCH] mac80211: pass up beacons from external BSS when operating as AP

On Tue, Feb 01, 2011 at 03:52:53PM +0100, Johannes Berg wrote:
> On Tue, 2011-02-01 at 16:51 +0200, Jouni Malinen wrote:
> > This code has been there for a long time, but the functionality was
> > broken at some point (maybe already during d80211 -> mac80211 process)
> > due to the beacons not getting delivered there anymore.
>
> Oh, I guess then they are delivered via the monitor interface?

I haven't tested this patch, but yes, I would assume so. They used to be
delivered in the exact same way as other management frames and at this
point, that would indeed be the monitor interface.

--
Jouni Malinen PGP id EFC895FA

2011-02-01 14:52:56

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: pass up beacons from external BSS when operating as AP

On Tue, 2011-02-01 at 16:51 +0200, Jouni Malinen wrote:
> On Tue, Feb 01, 2011 at 02:56:54PM +0100, Johannes Berg wrote:
> > On Tue, 2011-02-01 at 13:23 +0200, Arik Nemtsov wrote:
> > > Beacons from external BSSes are required for updating overlapping BSS
> > > info (i.e. ERP protection). Pass them up unconditionally.
> >
> > Where will they be processed though?
>
> In src/ap/ap_list.c (hostap.git) ;-)
>
> This code has been there for a long time, but the functionality was
> broken at some point (maybe already during d80211 -> mac80211 process)
> due to the beacons not getting delivered there anymore.

Oh, I guess then they are delivered via the monitor interface?

johannes


2011-02-01 14:51:07

by Jouni Malinen

[permalink] [raw]
Subject: Re: [PATCH] mac80211: pass up beacons from external BSS when operating as AP

On Tue, Feb 01, 2011 at 02:56:54PM +0100, Johannes Berg wrote:
> On Tue, 2011-02-01 at 13:23 +0200, Arik Nemtsov wrote:
> > Beacons from external BSSes are required for updating overlapping BSS
> > info (i.e. ERP protection). Pass them up unconditionally.
>
> Where will they be processed though?

In src/ap/ap_list.c (hostap.git) ;-)

This code has been there for a long time, but the functionality was
broken at some point (maybe already during d80211 -> mac80211 process)
due to the beacons not getting delivered there anymore.

--
Jouni Malinen PGP id EFC895FA