linux/net/mac80211
Michael Braun 72f15d53f3 mac80211: filter multicast data packets on AP / AP_VLAN
This patch adds filtering for multicast data packets on AP_VLAN
interfaces that have no authorized station connected and changes
filtering on AP interfaces to not count stations assigned to
AP_VLAN interfaces.

This saves airtime and avoids waking up other stations currently
authorized in this BSS. When using WPA, the packets dropped could
not be decrypted by any station.

The behaviour when there are no AP_VLAN interfaces is left unchanged.

When there are AP_VLAN interfaces, this patch
1. adds filtering multicast data packets sent on AP_VLAN interfaces
   that have no authorized station connected.
   No filtering happens on 4addr AP_VLAN interfaces.
2. makes filtering of multicast data packets sent on AP interfaces
   depend on the number of authorized stations in this bss not
   assigned to an AP_VLAN interface.

Therefore, a new num_mcast_sta counter is added for AP_VLAN interfaces.
The existing one for AP interfaces is altered to not track stations
assigned to an AP_VLAN interface.

The new counter is exposed in debugfs.

Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
[reformat commit message a bit, unline ieee80211_vif_{inc,dec}_num_mcast]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2016-10-12 11:33:29 +02:00
..
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
aes_gcm.c
aes_gcm.h
aes_gmac.c
aes_gmac.h
agg-rx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-09-23 06:46:57 -04:00
agg-tx.c mac80211: reject TSPEC TIDs (TSIDs) for aggregation 2016-09-15 10:08:52 +02:00
cfg.c mac80211: filter multicast data packets on AP / AP_VLAN 2016-10-12 11:33:29 +02:00
chan.c mac80211: add boilerplate code for start / stop NAN 2016-09-30 13:21:19 +02:00
debug.h
debugfs_key.c mac80211: move TKIP TX IVs to public part of key struct 2016-02-24 09:04:38 +01:00
debugfs_key.h
debugfs_netdev.c mac80211: filter multicast data packets on AP / AP_VLAN 2016-10-12 11:33:29 +02:00
debugfs_netdev.h
debugfs_sta.c mac80211: remove sta_remove_debugfs driver callback 2016-09-15 16:46:19 +02:00
debugfs_sta.h
debugfs.c mac80211: Export fq memory limit information in debugfs 2016-09-30 13:29:31 +02:00
debugfs.h
driver-ops.c mac80211: add offset_tsf driver op and use it for mesh 2016-09-30 13:45:44 +02:00
driver-ops.h mac80211: add offset_tsf driver op and use it for mesh 2016-09-30 13:45:44 +02:00
ethtool.c mac80211: move station statistics into sub-structs 2015-10-21 10:08:22 +02:00
ht.c mac80211: limit the A-MSDU Tx based on peer's capabilities 2016-02-24 09:04:20 +01:00
ibss.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
ieee80211_i.h mac80211: filter multicast data packets on AP / AP_VLAN 2016-10-12 11:33:29 +02:00
iface.c mac80211: filter multicast data packets on AP / AP_VLAN 2016-10-12 11:33:29 +02:00
Kconfig
key.c mac80211: add fast-rx path 2016-04-06 13:18:18 +02:00
key.h mac80211: move TKIP TX IVs to public part of key struct 2016-02-24 09:04:38 +01:00
led.c
led.h
main.c mac80211: Implement add_nan_func and rm_nan_func 2016-09-30 13:21:52 +02:00
Makefile mac80211: remove event.c 2015-10-14 18:40:26 +02:00
mesh_hwmp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-09-23 06:46:57 -04:00
mesh_pathtbl.c mac80211: make mpath path fixing more robust 2016-09-12 12:27:14 +02:00
mesh_plink.c mac80211: use common cleanup for user/!user_mpm 2016-06-30 12:06:41 +02:00
mesh_ps.c
mesh_sync.c mac80211: mesh: decrease max drift 2016-09-30 13:47:00 +02:00
mesh.c mac80211: mesh: flush stations before beacons are stopped 2016-08-03 08:45:15 +02:00
mesh.h mac80211: mesh: fix cleanup for mesh pathtable 2016-04-05 21:34:53 +02:00
michael.c
michael.h
mlme.c mac80211: fix possible out-of-bounds access 2016-09-15 16:46:16 +02:00
ocb.c mac80211: remove rx_stats.last_rx update after sta alloc 2016-04-06 13:18:15 +02:00
offchannel.c mac80211: add boilerplate code for start / stop NAN 2016-09-30 13:21:19 +02:00
pm.c mac80211: remove useless open_count check 2016-09-13 15:39:29 +02:00
rate.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
rate.h mac80211: remove sta_info debugfs sub-struct 2016-04-05 11:59:05 +02:00
rc80211_minstrel_debugfs.c mac80211: minstrel[_ht]: remove non-ascii debugfs characters 2015-09-29 15:56:47 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: minstrel[_ht]: remove non-ascii debugfs characters 2015-09-29 15:56:47 +02:00
rc80211_minstrel_ht.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
rc80211_minstrel_ht.h
rc80211_minstrel.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
rc80211_minstrel.h
rx.c mac80211: filter multicast data packets on AP / AP_VLAN 2016-10-12 11:33:29 +02:00
scan.c mac80211: fix scan completed tracing 2016-09-15 16:46:16 +02:00
spectmgmt.c mac80211: parse wide bandwidth channel switch IE with workaround 2016-07-06 14:55:04 +02:00
sta_info.c mac80211: filter multicast data packets on AP / AP_VLAN 2016-10-12 11:33:29 +02:00
sta_info.h mac80211: Use rhltable instead of rhashtable 2016-09-20 04:43:36 -04:00
status.c mac80211: Use rhltable instead of rhashtable 2016-09-20 04:43:36 -04:00
tdls.c mac80211: TDLS: don't require beaconing for AP BW 2016-08-30 08:03:41 +02:00
tkip.c mac80211: move TKIP TX IVs to public part of key struct 2016-02-24 09:04:38 +01:00
tkip.h mac80211: move TKIP TX IVs to public part of key struct 2016-02-24 09:04:38 +01:00
trace_msg.h
trace.c
trace.h mac80211: add offset_tsf driver op and use it for mesh 2016-09-30 13:45:44 +02:00
tx.c mac80211: filter multicast data packets on AP / AP_VLAN 2016-10-12 11:33:29 +02:00
util.c mac80211: Move reorder-sensitive TX handlers to after TXQ dequeue 2016-09-30 14:46:57 +02:00
vht.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
wep.c
wep.h
wme.c
wme.h
wpa.c mac80211: allow same PN for AMSDU sub-frames 2016-05-12 11:14:45 +02:00
wpa.h