aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2016-05-03 09:58:00 -0400
committerJohannes Berg <johannes.berg@intel.com>2016-05-12 05:16:55 -0400
commit46fa38e84b656f80edf83d21144221b0cad18d61 (patch)
tree42f204b73d06436d055c0e29d85495576a65ed09 /include/net
parent53873f134d285191ef6435882d55837093a36c53 (diff)
mac80211: allow software PS-Poll/U-APSD with AP_LINK_PS
When using RSS, frames might not be processed in the correct order, and thus AP_LINK_PS must be used; most likely with firmware keeping track of the powersave state, this is the case in iwlwifi now. In this case, the driver can use ieee80211_sta_ps_transition() to still have mac80211 manage powersave buffering. However, for U-APSD and PS-Poll this isn't sufficient. If the device can't manage that entirely on its own, mac80211's code should be used. To allow this, export two functions: ieee80211_sta_uapsd_trigger() and ieee80211_sta_pspoll(). Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index ce2f6e3be3cf..be30b0549b88 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -3996,6 +3996,33 @@ static inline int ieee80211_sta_ps_transition_ni(struct ieee80211_sta *sta,
3996 return ret; 3996 return ret;
3997} 3997}
3998 3998
3999/**
4000 * ieee80211_sta_pspoll - PS-Poll frame received
4001 * @sta: currently connected station
4002 *
4003 * When operating in AP mode with the %IEEE80211_HW_AP_LINK_PS flag set,
4004 * use this function to inform mac80211 that a PS-Poll frame from a
4005 * connected station was received.
4006 * This must be used in conjunction with ieee80211_sta_ps_transition()
4007 * and possibly ieee80211_sta_uapsd_trigger(); calls to all three must
4008 * be serialized.
4009 */
4010void ieee80211_sta_pspoll(struct ieee80211_sta *sta);
4011
4012/**
4013 * ieee80211_sta_uapsd_trigger - (potential) U-APSD trigger frame received
4014 * @sta: currently connected station
4015 * @tid: TID of the received (potential) trigger frame
4016 *
4017 * When operating in AP mode with the %IEEE80211_HW_AP_LINK_PS flag set,
4018 * use this function to inform mac80211 that a (potential) trigger frame
4019 * from a connected station was received.
4020 * This must be used in conjunction with ieee80211_sta_ps_transition()
4021 * and possibly ieee80211_sta_pspoll(); calls to all three must be
4022 * serialized.
4023 */
4024void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid);
4025
3999/* 4026/*
4000 * The TX headroom reserved by mac80211 for its own tx_status functions. 4027 * The TX headroom reserved by mac80211 for its own tx_status functions.
4001 * This is enough for the radiotap header. 4028 * This is enough for the radiotap header.