nl80211: Pass data frames from unknown STAs to hostapd

Pass data frames from unknown STAs to hostapd in order to reply with
a Deauthentication or Disassociation frame. This fixes compliance
with IEEE Std 802.11-2007, 11.3.

Furthermore, this does not cause a lot of overhead (at least with
mac80211 drivers) since mac80211 does not pass all data frames (but
at least from unauthenticated and unassociated STAs) to cooked monitor
interfaces.

Tested with rt2800pci on a MIPS board.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
This commit is contained in:
Helmut Schaa 2010-10-31 21:36:43 +02:00 committed by Jouni Malinen
parent acec8d3203
commit 65ae1afd44

View File

@ -3652,8 +3652,15 @@ static struct sock_filter msock_filter_insns[] = {
* add a filter here that filters on our DA and that flag
* to allow us to deauth frames to that bad station.
*
* Not a regression -- we didn't do it before either.
* For now allow all To DS data frames through.
*/
/* load the IEEE 802.11 frame control field */
BPF_STMT(BPF_LD | BPF_H | BPF_IND, 0),
/* mask off frame type, version and DS status */
BPF_STMT(BPF_ALU | BPF_AND | BPF_K, 0x0F03),
/* accept frame if version 0, type 2 and To DS, fall through otherwise
*/
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, 0x0801, PASS, 0),
#if 0
/*