diff options
author | David S. Miller <davem@davemloft.net> | 2011-02-08 16:52:31 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-02-08 16:52:31 -0500 |
commit | c0c84ef5c130f8871adbdaac2ba824b9195cb6d9 (patch) | |
tree | d7221b5323d5a4d3d84676d32bdca21d21d85a18 /include/net | |
parent | 2360d2e8f01043632d6b651672bec66c49892f94 (diff) | |
parent | 3ad97fbcc233a295f2ccc2c6bdeb32323e360a5e (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.h | 58 |
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 | */ |
1073 | enum ieee80211_hw_flags { | 1084 | enum 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 | */ | ||
2165 | int 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 | */ | ||
2178 | static 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. |