diff options
author | Johannes Berg <johannes.berg@intel.com> | 2011-09-29 10:04:33 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-09-30 15:57:15 -0400 |
commit | 47086fc51aa2220f58049704a8b73e4fcdf372b9 (patch) | |
tree | 31f7ae0e59318352d772b62fa26316d349cde88e /net/mac80211/sta_info.h | |
parent | 4049e09acdf4ffd270cb8fbf1cf5b39c3d02357c (diff) |
mac80211: implement uAPSD
Add uAPSD support to mac80211. This is probably not
possible with all devices, so advertising it with
the cfg80211 flag will be left up to drivers that
want it.
Due to my previous patches it is now a fairly
straight-forward extension. Drivers need to have
accurate TX status reporting for the EOSP frame.
For drivers that buffer themselves, the provided
APIs allow releasing the right number of frames,
but then drivers need to set EOSP and more-data
themselves. This is documented in more detail in
the new code itself.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/sta_info.h')
-rw-r--r-- | net/mac80211/sta_info.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h index 8589afad3295..751ad25f925f 100644 --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h | |||
@@ -46,6 +46,11 @@ | |||
46 | * @WLAN_STA_TDLS_PEER: Station is a TDLS peer. | 46 | * @WLAN_STA_TDLS_PEER: Station is a TDLS peer. |
47 | * @WLAN_STA_TDLS_PEER_AUTH: This TDLS peer is authorized to send direct | 47 | * @WLAN_STA_TDLS_PEER_AUTH: This TDLS peer is authorized to send direct |
48 | * packets. This means the link is enabled. | 48 | * packets. This means the link is enabled. |
49 | * @WLAN_STA_UAPSD: Station requested unscheduled SP while driver was | ||
50 | * keeping station in power-save mode, reply when the driver | ||
51 | * unblocks the station. | ||
52 | * @WLAN_STA_SP: Station is in a service period, so don't try to | ||
53 | * reply to other uAPSD trigger frames. | ||
49 | */ | 54 | */ |
50 | enum ieee80211_sta_info_flags { | 55 | enum ieee80211_sta_info_flags { |
51 | WLAN_STA_AUTH = 1<<0, | 56 | WLAN_STA_AUTH = 1<<0, |
@@ -63,6 +68,8 @@ enum ieee80211_sta_info_flags { | |||
63 | WLAN_STA_PSPOLL = 1<<13, | 68 | WLAN_STA_PSPOLL = 1<<13, |
64 | WLAN_STA_TDLS_PEER = 1<<15, | 69 | WLAN_STA_TDLS_PEER = 1<<15, |
65 | WLAN_STA_TDLS_PEER_AUTH = 1<<16, | 70 | WLAN_STA_TDLS_PEER_AUTH = 1<<16, |
71 | WLAN_STA_UAPSD = 1<<17, | ||
72 | WLAN_STA_SP = 1<<18, | ||
66 | }; | 73 | }; |
67 | 74 | ||
68 | #define STA_TID_NUM 16 | 75 | #define STA_TID_NUM 16 |
@@ -539,5 +546,6 @@ void ieee80211_sta_expire(struct ieee80211_sub_if_data *sdata, | |||
539 | 546 | ||
540 | void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta); | 547 | void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta); |
541 | void ieee80211_sta_ps_deliver_poll_response(struct sta_info *sta); | 548 | void ieee80211_sta_ps_deliver_poll_response(struct sta_info *sta); |
549 | void ieee80211_sta_ps_deliver_uapsd(struct sta_info *sta); | ||
542 | 550 | ||
543 | #endif /* STA_INFO_H */ | 551 | #endif /* STA_INFO_H */ |