kernel-ark/net/mac80211
Emmanuel Grumbach 687da13223 mac80211: implement SMPS for AP
When the driver requests to move to STATIC or DYNAMIC SMPS,
we send an action frame to each associated station and
reconfigure the channel context / driver.
Of course, non-MIMO stations are ignored.

The beacon isn't updated. The association response will
include the original capabilities. Stations that associate
while in non-OFF SMPS mode will get an action frame right
after association to inform them about our current state.
Note that we wait until the end of the EAPOL. Sending an
action frame before the EAPOL is finished can be an issue
for a few clients. Clients aren't likely to send EAPOL
frames in MIMO anyway.

When the SMPS configuration gets more permissive (e.g.
STATIC -> OFF), we don't wake up stations that are asleep
We remember that they don't know about the change and send
the action frame when they wake up.

When the SMPS configuration gets more restrictive (e.g.
OFF -> STATIC), we set the TIM bit for every sleeping STA.
uAPSD stations might send MIMO until they poll the action
frame, but this is for a short period of time.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
[fix vht streams loop, initialisation]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-10-28 15:05:11 +01:00
..
aes_ccm.c mac80211: port CCMP to cryptoapi's CCM driver 2013-10-11 15:38:20 +02:00
aes_ccm.h mac80211: port CCMP to cryptoapi's CCM driver 2013-10-11 15:38:20 +02:00
aes_cmac.c mac80211: include export.h in aes_cmac 2012-11-07 18:01:54 +01:00
aes_cmac.h
agg-rx.c mac80211: improve aggregation debug messages 2013-01-18 21:55:15 +01:00
agg-tx.c mac80211: fix aggregation state with current drivers 2013-01-24 15:43:51 +01:00
cfg.c mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
cfg.h
chan.c mac80211: implement STA CSA for drivers using channel contexts 2013-10-02 18:18:23 +02:00
debug.h mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
debugfs_key.c mac80211: move sdata debugfs dir to vif 2013-03-18 20:10:04 +01:00
debugfs_key.h
debugfs_netdev.c mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
debugfs_netdev.h
debugfs_sta.c mac80211: add debugfs for driver-buffered TID bitmap 2013-08-01 15:08:24 +02:00
debugfs_sta.h
debugfs.c mac80211: fix some snprintf misuses 2013-10-01 12:16:51 +02:00
debugfs.h mac80211: use __printf attribute in debugfs 2012-10-18 09:01:57 +02:00
driver-ops.h mac80211: add explicit IBSS driver operations 2013-10-01 12:17:45 +02:00
event.c
ht.c mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
ibss.c mac80211: add explicit IBSS driver operations 2013-10-01 12:17:45 +02:00
ieee80211_i.h mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
iface.c mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
Kconfig mac80211: port CCMP to cryptoapi's CCM driver 2013-10-11 15:38:20 +02:00
key.c mac80211: use ERR_CAST() 2013-09-26 13:21:38 +02:00
key.h mac80211: port CCMP to cryptoapi's CCM driver 2013-10-11 15:38:20 +02:00
led.c mac80211: use oneshot blink API for LED triggers 2013-08-01 10:48:49 +02:00
led.h mac80211: use oneshot blink API for LED triggers 2013-08-01 10:48:49 +02:00
main.c mac80211: move setting WIPHY_FLAG_SUPPORTS_SCHED_SCAN into drivers 2013-08-23 12:02:26 +02:00
Makefile mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_hwmp.c mac80211: parse VHT channel switch IEs 2013-04-16 15:29:45 +02:00
mesh_pathtbl.c mac80211: return new mpath from mesh_path_add() 2013-04-08 09:16:59 +02:00
mesh_plink.c mac80211: select and adjust bitrates according to channel mode 2013-07-16 09:58:06 +03:00
mesh_ps.c mac80211: prevent the buffering or frame transmission to non-assoc mesh STA 2013-07-22 15:32:47 +02:00
mesh_sync.c mac80211: clean up mesh code 2013-02-15 15:46:37 +01:00
mesh.c mac80211: only respond to probe request with mesh ID 2013-08-23 15:25:06 +02:00
mesh.h mac80211: update mesh beacon on workqueue 2013-06-18 15:57:27 +02:00
michael.c
michael.h
mlme.c mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
offchannel.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-04-10 14:09:54 -04:00
pm.c mac80211: fix monitor interface suspend crash regression 2013-07-23 14:02:08 +02:00
rate.c mac80211: allow lowest basic rate for unicast management for mesh 2013-08-09 15:11:27 +02:00
rate.h mac80211/rc80211: add chandef to rate initialization 2013-07-16 09:58:02 +03:00
rc80211_minstrel_debugfs.c mac80211: cosmetics for minstrel_debugfs 2013-04-17 17:08:23 +02:00
rc80211_minstrel_ht_debugfs.c mac80211/minstrel_ht: add support for using CCK rates 2013-02-13 10:56:33 +01:00
rc80211_minstrel_ht.c mac80211: do not override fixed_rate_idx in minstrel_ht_update_stats 2013-09-26 13:27:12 +02:00
rc80211_minstrel_ht.h mac80211/minstrel_ht: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_minstrel.c mac80211: add fixed_rate management to minstrel rc 2013-09-26 13:27:12 +02:00
rc80211_minstrel.h mac80211/minstrel: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_pid_algo.c mac80211/rc80211: add chandef to rate initialization 2013-07-16 09:58:02 +03:00
rc80211_pid_debugfs.c mac80211: fix some snprintf misuses 2013-10-01 12:16:51 +02:00
rc80211_pid.h
rx.c mac80211: support reporting A-MSDU subframes individually 2013-10-01 12:22:03 +02:00
scan.c mac80211: change beacon/connection polling 2013-09-26 13:27:11 +02:00
spectmgmt.c mac80211: split off channel switch parsing function 2013-09-26 13:27:13 +02:00
sta_info.c mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
sta_info.h mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
status.c mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
tkip.c mac80211: use just spin_lock() in ieee80211_get_tkip_p2k() 2013-05-16 22:38:06 +02:00
tkip.h
trace.c mac80211: trace debug messages 2012-06-24 11:33:18 +02:00
trace.h mac80211: add explicit IBSS driver operations 2013-10-01 12:17:45 +02:00
tx.c mac80211: add support for CSA in IBSS mode 2013-09-26 13:27:14 +02:00
util.c mac80211: implement SMPS for AP 2013-10-28 15:05:11 +01:00
vht.c ieee80211: fix vht cap definitions 2013-10-01 12:17:08 +02:00
wep.c wireless: move crypto constants to ieee80211.h 2013-05-16 22:39:41 +02:00
wep.h mac80211: move RX WEP weak IV counting 2012-03-13 14:54:16 -04:00
wme.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
wme.h mac80211: save wmm_acm per sdata 2012-06-20 17:35:22 +02:00
wpa.c mac80211: port CCMP to cryptoapi's CCM driver 2013-10-11 15:38:20 +02:00
wpa.h mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00