1
linux/net/mac80211
Kalle Valo 0c74211d19 mac80211: check uapsd state for dynamic power save
To make U-APSD client mode effective, we must not wake up from dynamic power
save when transmitting frames. So if dynamic power save is enabled, it needs
check the queue the transmitted packet is in and decide if we need to wake
up or not.

In a perfect world, where all packets would have correct QoS tags, U-APSD
enabled queues should not trigger wakeup from power save. But in the real
world, where very few packets have correct QoS tags, this won't work. For
example, if only voip class has U-APSD enabled and we send a packet in voip
class, but the packets we receive are in best effort class, we would receive
the packets with the legacy power save method. And that would increase
latencies too much from a voip application point of view.

The workaround is to enable U-APSD for all qeueus and still use dynamic ps
wakeup for all other queues except voip. That way we can still save power
with a voip application and not sacrifice latency. Normal traffic (in
background, best effort or video class) would still trigger wakeup from
dynamic power save.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-01-12 14:21:02 -05:00
..
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
agg-rx.c mac80211: trace interface name 2009-12-21 18:38:54 -05:00
agg-tx.c mac80211: quit addba_resp_timer if Tx BA session is torn down 2010-01-12 13:50:08 -05:00
cfg.c mac80211: add U-APSD client support 2010-01-12 14:20:58 -05:00
cfg.h
debugfs_key.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_key.h
debugfs_netdev.c mac80211: remove unused type argument 2010-01-12 14:20:57 -05:00
debugfs_netdev.h mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_sta.c mac80211: only bother printing highest data rate on debugfs if its set 2009-12-22 13:56:02 -05:00
debugfs_sta.h
debugfs.c mac80211: add debugfs interface for U-APSD queue configuration 2010-01-12 14:21:00 -05:00
debugfs.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
driver-ops.h mac80211: Add new callback set_coverage_class 2010-01-12 13:50:07 -05:00
driver-trace.c mac80211: fix sparse warnings/errors 2009-08-04 16:43:25 -04:00
driver-trace.h mac80211: Add new callback set_coverage_class 2010-01-12 13:50:07 -05:00
event.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
ht.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-28 15:09:11 -05:00
ibss.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-30 15:25:08 -05:00
ieee80211_i.h mac80211: add debugfs interface for U-APSD queue configuration 2010-01-12 14:21:00 -05:00
iface.c cfg80211/mac80211: Use more generic bitrate mask for rate control 2010-01-12 13:50:11 -05:00
Kconfig mac80211: remove payload alignment warning 2009-12-21 18:56:09 -05:00
key.c mac80211: add ieee80211_sdata_running 2009-12-28 16:54:49 -05:00
key.h mac80211 : fix a race with update_tkip_key 2009-12-22 13:31:14 -05:00
led.c
led.h
main.c mac80211: add debugfs interface for U-APSD queue configuration 2010-01-12 14:21:00 -05:00
Makefile mac80211: Generalize off-channel operation helpers from scan code 2009-12-28 16:55:01 -05:00
mesh_hwmp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-28 15:09:11 -05:00
mesh_pathtbl.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
mesh_plink.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
mesh.c mac80211: add ieee80211_sdata_running 2009-12-28 16:54:49 -05:00
mesh.h mac80211: Revert 'Use correct sign for mesh active path refresh' 2009-12-10 16:12:52 -05:00
michael.c
michael.h
mlme.c mac80211: add debugfs interface for U-APSD queue configuration 2010-01-12 14:21:00 -05:00
offchannel.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-01-06 17:26:13 -05:00
pm.c mac80211: remove struct ieee80211_if_init_conf 2009-12-28 16:55:07 -05:00
rate.c cfg80211/mac80211: Use more generic bitrate mask for rate control 2010-01-12 13:50:11 -05:00
rate.h cfg80211/mac80211: Use more generic bitrate mask for rate control 2010-01-12 13:50:11 -05:00
rc80211_minstrel_debugfs.c net: file_operations should be const 2009-09-02 01:03:53 -07:00
rc80211_minstrel.c rc80211_minstrel: fix contention window calculation 2009-09-23 11:35:42 -04:00
rc80211_minstrel.h mac80211: Remove unnused throughput field from minstrel_rate. 2009-08-28 14:40:34 -04:00
rc80211_pid_algo.c rc80211_pid_algo.c: remove unused variable declaration 2009-08-20 11:36:03 -04:00
rc80211_pid_debugfs.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
rc80211_pid.h
rx.c mac80211: use nullfunc frames for 4-addr sta detection 2010-01-12 14:02:06 -05:00
scan.c mac80211: add U-APSD client support 2010-01-12 14:20:58 -05:00
spectmgmt.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
sta_info.c mac80211: allow station updates on ap interfaces for vlan stations 2010-01-12 14:02:07 -05:00
sta_info.h mac80211: allow station updates on ap interfaces for vlan stations 2010-01-12 14:02:07 -05:00
status.c mac80211: add ieee80211_sdata_running 2009-12-28 16:54:49 -05:00
tkip.c mac80211 : fix a race with update_tkip_key 2009-12-22 13:31:14 -05:00
tkip.h
tx.c mac80211: check uapsd state for dynamic power save 2010-01-12 14:21:02 -05:00
util.c mac80211: add U-APSD client support 2010-01-12 14:20:58 -05:00
wep.c mac80211: trim RX data 2009-11-18 17:09:17 -05:00
wep.h cfg80211: rework key operation 2009-07-24 15:05:09 -04:00
wme.c mac80211: fix-up build breakage in 2.6.33 2010-01-06 15:35:49 -05:00
wme.h mac80211: fix skb buffering issue 2010-01-05 16:21:40 -05:00
work.c mac80211: add debugfs interface for U-APSD queue configuration 2010-01-12 14:21:00 -05:00
wpa.c mac80211: trim RX data 2009-11-18 17:09:17 -05:00
wpa.h