diff options
author | Kalle Valo <kalle.valo@nokia.com> | 2010-01-12 03:42:31 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-01-12 14:20:58 -0500 |
commit | ab13315af97919fae0e014748105fdc2e30afb2d (patch) | |
tree | befa549272ecff20b2839bd6671e4cccbce448f9 /include/net | |
parent | 2d46d7c121436f1dafe91b0a8d9b99e534cfa5f8 (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.h | 7 |
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 | */ |
933 | enum ieee80211_hw_flags { | 939 | enum 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 | /** |