aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorKalle Valo <kalle.valo@nokia.com>2010-01-12 03:42:31 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-01-12 14:20:58 -0500
commitab13315af97919fae0e014748105fdc2e30afb2d (patch)
treebefa549272ecff20b2839bd6671e4cccbce448f9 /include/net
parent2d46d7c121436f1dafe91b0a8d9b99e534cfa5f8 (diff)
mac80211: add U-APSD client support
Add Unscheduled Automatic Power-Save Delivery (U-APSD) client support. The idea is that the data frames from the client trigger AP to send the buffered frames with ACs which have U-APSD enabled. This decreases latency and makes it possible to save even more power. Driver needs to use IEEE80211_HW_UAPSD to enable the feature. The current implementation assumes that firmware takes care of the wakeup and hardware needing IEEE80211_HW_PS_NULLFUNC_STACK is not yet supported. Tested with wl1251 on a Nokia N900 and Cisco Aironet 1231G AP and running various test traffic with ping. Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index e1e73c6abeff..f313a3cbabda 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -113,6 +113,7 @@ struct ieee80211_tx_queue_params {
113 u16 cw_min; 113 u16 cw_min;
114 u16 cw_max; 114 u16 cw_max;
115 u8 aifs; 115 u8 aifs;
116 bool uapsd;
116}; 117};
117 118
118/** 119/**
@@ -929,6 +930,11 @@ enum ieee80211_tkip_key_type {
929 * Hardware supports dynamic spatial multiplexing powersave, 930 * Hardware supports dynamic spatial multiplexing powersave,
930 * ie. can turn off all but one chain and then wake the rest 931 * ie. can turn off all but one chain and then wake the rest
931 * up as required after, for example, rts/cts handshake. 932 * up as required after, for example, rts/cts handshake.
933 *
934 * @IEEE80211_HW_SUPPORTS_UAPSD:
935 * Hardware supports Unscheduled Automatic Power Save Delivery
936 * (U-APSD) in managed mode. The mode is configured with
937 * conf_tx() operation.
932 */ 938 */
933enum ieee80211_hw_flags { 939enum ieee80211_hw_flags {
934 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, 940 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0,
@@ -948,6 +954,7 @@ enum ieee80211_hw_flags {
948 IEEE80211_HW_BEACON_FILTER = 1<<14, 954 IEEE80211_HW_BEACON_FILTER = 1<<14,
949 IEEE80211_HW_SUPPORTS_STATIC_SMPS = 1<<15, 955 IEEE80211_HW_SUPPORTS_STATIC_SMPS = 1<<15,
950 IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS = 1<<16, 956 IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS = 1<<16,
957 IEEE80211_HW_SUPPORTS_UAPSD = 1<<17,
951}; 958};
952 959
953/** 960/**