aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 7f035d779db9..2c10eac637d8 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2137,6 +2137,38 @@ struct ieee80211_sta *ieee80211_find_sta_by_hw(struct ieee80211_hw *hw,
2137 const u8 *addr); 2137 const u8 *addr);
2138 2138
2139/** 2139/**
2140 * ieee80211_sta_block_awake - block station from waking up
2141 * @hw: the hardware
2142 * @pubsta: the station
2143 * @block: whether to block or unblock
2144 *
2145 * Some devices require that all frames that are on the queues
2146 * for a specific station that went to sleep are flushed before
2147 * a poll response or frames after the station woke up can be
2148 * delivered to that it. Note that such frames must be rejected
2149 * by the driver as filtered, with the appropriate status flag.
2150 *
2151 * This function allows implementing this mode in a race-free
2152 * manner.
2153 *
2154 * To do this, a driver must keep track of the number of frames
2155 * still enqueued for a specific station. If this number is not
2156 * zero when the station goes to sleep, the driver must call
2157 * this function to force mac80211 to consider the station to
2158 * be asleep regardless of the station's actual state. Once the
2159 * number of outstanding frames reaches zero, the driver must
2160 * call this function again to unblock the station. That will
2161 * cause mac80211 to be able to send ps-poll responses, and if
2162 * the station queried in the meantime then frames will also
2163 * be sent out as a result of this. Additionally, the driver
2164 * will be notified that the station woke up some time after
2165 * it is unblocked, regardless of whether the station actually
2166 * woke up while blocked or not.
2167 */
2168void ieee80211_sta_block_awake(struct ieee80211_hw *hw,
2169 struct ieee80211_sta *pubsta, bool block);
2170
2171/**
2140 * ieee80211_beacon_loss - inform hardware does not receive beacons 2172 * ieee80211_beacon_loss - inform hardware does not receive beacons
2141 * 2173 *
2142 * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. 2174 * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf.