alistair23-linux/net/mac80211
Christian Lamparter 2c31333a8f mac80211: ignore non-bcast mcast deauth/disassoc franes
This patch fixes an curious issue due to insufficient
rx frame filtering.

Saqeb Akhter reported frequent disconnects while streaming
videos over samba: <http://marc.info/?m=128600031109136>
> [ 1166.512087] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)
> [ 1526.059997] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)
> [ 2125.324356] wlan1: deauthenticated from 30:46:9a:10:49:f7 (Reason: 7)
> [...]

The reason is that the device generates frames with slightly
bogus SA/TA addresses.

e.g.:
 [ 2314.402316] Ignore 9f:1f:31:f8:64:ff
 [ 2314.402321] Ignore 9f:1f:31:f8:64:ff
 [ 2352.453804] Ignore 0d:1f:31:f8:64:ff
 [ 2352.453808] Ignore 0d:1f:31:f8:64:ff
 					   ^^ the group-address flag is set!
 (the correct SA/TA would be: 00:1f:31:f8:64:ff)

Since the AP does not know from where the frames come, it
generates a DEAUTH response for the (invalid) mcast address.
This mcast deauth frame then passes through all filters and
tricks the stack into thinking that the AP brutally kicked
us!

This patch fixes the problem by simply ignoring
non-broadcast, group-addressed deauth/disassoc frames.

Cc: Jouni Malinen <j@w1.fi>
Cc: Johannes Berg <johannes@sipsolutions.net>
Reported-by: Saqeb Akhter <saqeb.akhter@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-11-30 13:23:06 -05:00
..
aes_ccm.c mac80211: Don't squash error codes in key setup functions 2010-08-16 15:26:38 -04:00
aes_ccm.h
aes_cmac.c mac80211: Don't squash error codes in key setup functions 2010-08-16 15:26:38 -04:00
aes_cmac.h
agg-rx.c mac80211: avoid transmitting delBA to old AP 2010-10-06 16:30:40 -04:00
agg-tx.c mac80211: avoid transmitting delBA to old AP 2010-10-06 16:30:40 -04:00
cfg.c mac80211: add probe request filter flag 2010-10-13 15:45:22 -04:00
cfg.h
chan.c cfg80211/mac80211: use lockdep_assert_held 2010-09-16 15:46:00 -04:00
debugfs.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
debugfs.h
debugfs_key.c mac80211: fix failure to check kmalloc return value in key_key_read 2010-10-29 14:33:26 -04:00
debugfs_key.h
debugfs_netdev.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
debugfs_netdev.h
debugfs_sta.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
debugfs_sta.h
driver-ops.h mac80211: add p2p device type support 2010-09-16 15:46:07 -04:00
driver-trace.c
driver-trace.h mac80211: add p2p device type support 2010-09-16 15:46:07 -04:00
event.c
ht.c mac80211: fix SMPS request 2010-10-13 15:45:23 -04:00
ibss.c mac80211: Fix ibss station got expired immediately 2010-10-25 14:45:56 -04:00
ieee80211_i.h mac80211: add probe request filter flag 2010-10-13 15:45:22 -04:00
iface.c mac80211: unset SDATA_STATE_OFFCHANNEL when cancelling a scan 2010-11-08 16:53:47 -05:00
Kconfig
key.c cfg80211/mac80211: allow per-station GTKs 2010-10-06 16:30:40 -04:00
key.h cfg80211/mac80211: allow per-station GTKs 2010-10-06 16:30:40 -04:00
led.c
led.h
main.c mac80211: Fix scan_ies_len to include DS Params 2010-10-27 15:46:51 -04:00
Makefile
mesh.c
mesh.h Fix spelling fuction -> function in comments 2010-08-09 11:22:49 +02:00
mesh_hwmp.c
mesh_pathtbl.c
mesh_plink.c mac80211: fix possible null-pointer de-reference 2010-10-11 15:04:20 -04:00
michael.c
michael.h
mlme.c mac80211: Improve mlme probe response log messages. 2010-10-11 15:04:19 -04:00
offchannel.c mac80211: disable beacon monitor while going offchannel 2010-09-16 15:46:17 -04:00
pm.c mac80211: assure we also cancel deferred scan request 2010-10-06 16:30:42 -04:00
rate.c mac80211: don't sanitize invalid rates 2010-10-25 14:43:13 -04:00
rate.h
rc80211_minstrel.c minstrel: don't complain about feedback for unrequested rates 2010-07-26 15:09:04 -04:00
rc80211_minstrel.h
rc80211_minstrel_debugfs.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
rc80211_minstrel_ht.c mac80211: minstrel_ht A-MPDU fix 2010-10-11 15:04:24 -04:00
rc80211_minstrel_ht.h
rc80211_minstrel_ht_debugfs.c mac80211: disallow seeks in minstrel debug code 2010-09-16 10:33:17 +02:00
rc80211_pid.h
rc80211_pid_algo.c
rc80211_pid_debugfs.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
rx.c mac80211: ignore non-bcast mcast deauth/disassoc franes 2010-11-30 13:23:06 -05:00
scan.c mac80211: fix sw scan locking 2010-10-07 14:41:27 -04:00
spectmgmt.c
sta_info.c cfg80211/mac80211: allow per-station GTKs 2010-10-06 16:30:40 -04:00
sta_info.h cfg80211/mac80211: allow per-station GTKs 2010-10-06 16:30:40 -04:00
status.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-10-07 14:39:03 -04:00
tkip.c
tkip.h
tx.c mac80211: Fix frame injection using non-AP vif 2010-11-29 14:41:28 -05:00
util.c mac80211: avoid transmitting delBA to old AP 2010-10-06 16:30:40 -04:00
wep.c mac80211: don't kmalloc 16 bytes 2010-10-11 15:04:23 -04:00
wep.h
wme.c
wme.h
work.c mac80211: per interface idle notification 2010-08-16 15:26:40 -04:00
wpa.c mac80211: move packet flags into packet 2010-09-27 15:57:54 -04:00
wpa.h