aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-02-08 16:52:31 -0500
committerDavid S. Miller <davem@davemloft.net>2011-02-08 16:52:31 -0500
commitc0c84ef5c130f8871adbdaac2ba824b9195cb6d9 (patch)
treed7221b5323d5a4d3d84676d32bdca21d21d85a18 /include/net
parent2360d2e8f01043632d6b651672bec66c49892f94 (diff)
parent3ad97fbcc233a295f2ccc2c6bdeb32323e360a5e (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h58
1 files changed, 57 insertions, 1 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index d6b0045788c..8fcd1691cfb 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -341,6 +341,9 @@ struct ieee80211_bss_conf {
341 * the off-channel channel when a remain-on-channel offload is done 341 * the off-channel channel when a remain-on-channel offload is done
342 * in hardware -- normal packets still flow and are expected to be 342 * in hardware -- normal packets still flow and are expected to be
343 * handled properly by the device. 343 * handled properly by the device.
344 * @IEEE80211_TX_INTFL_TKIP_MIC_FAILURE: Marks this packet to be used for TKIP
345 * testing. It will be sent out with incorrect Michael MIC key to allow
346 * TKIP countermeasures to be tested.
344 * 347 *
345 * Note: If you have to add new flags to the enumeration, then don't 348 * Note: If you have to add new flags to the enumeration, then don't
346 * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary. 349 * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary.
@@ -370,6 +373,7 @@ enum mac80211_tx_control_flags {
370 IEEE80211_TX_CTL_LDPC = BIT(22), 373 IEEE80211_TX_CTL_LDPC = BIT(22),
371 IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24), 374 IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24),
372 IEEE80211_TX_CTL_TX_OFFCHAN = BIT(25), 375 IEEE80211_TX_CTL_TX_OFFCHAN = BIT(25),
376 IEEE80211_TX_INTFL_TKIP_MIC_FAILURE = BIT(26),
373}; 377};
374 378
375#define IEEE80211_TX_CTL_STBC_SHIFT 23 379#define IEEE80211_TX_CTL_STBC_SHIFT 23
@@ -1069,6 +1073,13 @@ enum ieee80211_tkip_key_type {
1069 * to decrypt group addressed frames, then IBSS RSN support is still 1073 * to decrypt group addressed frames, then IBSS RSN support is still
1070 * possible but software crypto will be used. Advertise the wiphy flag 1074 * possible but software crypto will be used. Advertise the wiphy flag
1071 * only in that case. 1075 * only in that case.
1076 *
1077 * @IEEE80211_HW_AP_LINK_PS: When operating in AP mode the device
1078 * autonomously manages the PS status of connected stations. When
1079 * this flag is set mac80211 will not trigger PS mode for connected
1080 * stations based on the PM bit of incoming frames.
1081 * Use ieee80211_start_ps()/ieee8021_end_ps() to manually configure
1082 * the PS mode of connected stations.
1072 */ 1083 */
1073enum ieee80211_hw_flags { 1084enum ieee80211_hw_flags {
1074 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, 1085 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0,
@@ -1093,6 +1104,7 @@ enum ieee80211_hw_flags {
1093 IEEE80211_HW_CONNECTION_MONITOR = 1<<19, 1104 IEEE80211_HW_CONNECTION_MONITOR = 1<<19,
1094 IEEE80211_HW_SUPPORTS_CQM_RSSI = 1<<20, 1105 IEEE80211_HW_SUPPORTS_CQM_RSSI = 1<<20,
1095 IEEE80211_HW_SUPPORTS_PER_STA_GTK = 1<<21, 1106 IEEE80211_HW_SUPPORTS_PER_STA_GTK = 1<<21,
1107 IEEE80211_HW_AP_LINK_PS = 1<<22,
1096}; 1108};
1097 1109
1098/** 1110/**
@@ -1701,7 +1713,9 @@ enum ieee80211_ampdu_mlme_action {
1701 * station, AP, IBSS/WDS/mesh peer etc. This callback can sleep. 1713 * station, AP, IBSS/WDS/mesh peer etc. This callback can sleep.
1702 * 1714 *
1703 * @sta_notify: Notifies low level driver about power state transition of an 1715 * @sta_notify: Notifies low level driver about power state transition of an
1704 * associated station, AP, IBSS/WDS/mesh peer etc. Must be atomic. 1716 * associated station, AP, IBSS/WDS/mesh peer etc. For a VIF operating
1717 * in AP mode, this callback will not be called when the flag
1718 * %IEEE80211_HW_AP_LINK_PS is set. Must be atomic.
1705 * 1719 *
1706 * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), 1720 * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max),
1707 * bursting) for a hardware TX queue. 1721 * bursting) for a hardware TX queue.
@@ -2131,6 +2145,48 @@ static inline void ieee80211_rx_ni(struct ieee80211_hw *hw,
2131 local_bh_enable(); 2145 local_bh_enable();
2132} 2146}
2133 2147
2148/**
2149 * ieee80211_sta_ps_transition - PS transition for connected sta
2150 *
2151 * When operating in AP mode with the %IEEE80211_HW_AP_LINK_PS
2152 * flag set, use this function to inform mac80211 about a connected station
2153 * entering/leaving PS mode.
2154 *
2155 * This function may not be called in IRQ context or with softirqs enabled.
2156 *
2157 * Calls to this function for a single hardware must be synchronized against
2158 * each other.
2159 *
2160 * The function returns -EINVAL when the requested PS mode is already set.
2161 *
2162 * @sta: currently connected sta
2163 * @start: start or stop PS
2164 */
2165int ieee80211_sta_ps_transition(struct ieee80211_sta *sta, bool start);
2166
2167/**
2168 * ieee80211_sta_ps_transition_ni - PS transition for connected sta
2169 * (in process context)
2170 *
2171 * Like ieee80211_sta_ps_transition() but can be called in process context
2172 * (internally disables bottom halves). Concurrent call restriction still
2173 * applies.
2174 *
2175 * @sta: currently connected sta
2176 * @start: start or stop PS
2177 */
2178static inline int ieee80211_sta_ps_transition_ni(struct ieee80211_sta *sta,
2179 bool start)
2180{
2181 int ret;
2182
2183 local_bh_disable();
2184 ret = ieee80211_sta_ps_transition(sta, start);
2185 local_bh_enable();
2186
2187 return ret;
2188}
2189
2134/* 2190/*
2135 * The TX headroom reserved by mac80211 for its own tx_status functions. 2191 * The TX headroom reserved by mac80211 for its own tx_status functions.
2136 * This is enough for the radiotap header. 2192 * This is enough for the radiotap header.