aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-10-05 13:39:30 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-10-06 16:30:40 -0400
commite31b82136d1adc7a599b6e99d3321e5831841f5a (patch)
treec72d78d4cccfd08587e909c7efe59956f1cbc23e /include/net/mac80211.h
parent53f73c09d64f1fa7d7e6e8b6bb7468d42eddc92d (diff)
cfg80211/mac80211: allow per-station GTKs
This adds API to allow adding per-station GTKs, updates mac80211 to support it, and also allows drivers to remove a key from hwaccel again when this may be necessary due to multiple GTKs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 47316a653ae1..33aa2e39147b 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1041,6 +1041,13 @@ enum ieee80211_tkip_key_type {
1041 * @IEEE80211_HW_NEED_DTIM_PERIOD: 1041 * @IEEE80211_HW_NEED_DTIM_PERIOD:
1042 * This device needs to know the DTIM period for the BSS before 1042 * This device needs to know the DTIM period for the BSS before
1043 * associating. 1043 * associating.
1044 *
1045 * @IEEE80211_HW_SUPPORTS_PER_STA_GTK: The device's crypto engine supports
1046 * per-station GTKs as used by IBSS RSN or during fast transition. If
1047 * the device doesn't support per-station GTKs, but can be asked not
1048 * to decrypt group addressed frames, then IBSS RSN support is still
1049 * possible but software crypto will be used. Advertise the wiphy flag
1050 * only in that case.
1044 */ 1051 */
1045enum ieee80211_hw_flags { 1052enum ieee80211_hw_flags {
1046 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, 1053 IEEE80211_HW_HAS_RATE_CONTROL = 1<<0,
@@ -1064,6 +1071,7 @@ enum ieee80211_hw_flags {
1064 IEEE80211_HW_REPORTS_TX_ACK_STATUS = 1<<18, 1071 IEEE80211_HW_REPORTS_TX_ACK_STATUS = 1<<18,
1065 IEEE80211_HW_CONNECTION_MONITOR = 1<<19, 1072 IEEE80211_HW_CONNECTION_MONITOR = 1<<19,
1066 IEEE80211_HW_SUPPORTS_CQM_RSSI = 1<<20, 1073 IEEE80211_HW_SUPPORTS_CQM_RSSI = 1<<20,
1074 IEEE80211_HW_SUPPORTS_PER_STA_GTK = 1<<21,
1067}; 1075};
1068 1076
1069/** 1077/**
@@ -2582,6 +2590,22 @@ void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success);
2582void ieee80211_request_smps(struct ieee80211_vif *vif, 2590void ieee80211_request_smps(struct ieee80211_vif *vif,
2583 enum ieee80211_smps_mode smps_mode); 2591 enum ieee80211_smps_mode smps_mode);
2584 2592
2593/**
2594 * ieee80211_key_removed - disable hw acceleration for key
2595 * @key_conf: The key hw acceleration should be disabled for
2596 *
2597 * This allows drivers to indicate that the given key has been
2598 * removed from hardware acceleration, due to a new key that
2599 * was added. Don't use this if the key can continue to be used
2600 * for TX, if the key restriction is on RX only it is permitted
2601 * to keep the key for TX only and not call this function.
2602 *
2603 * Due to locking constraints, it may only be called during
2604 * @set_key. This function must be allowed to sleep, and the
2605 * key it tries to disable may still be used until it returns.
2606 */
2607void ieee80211_key_removed(struct ieee80211_key_conf *key_conf);
2608
2585/* Rate control API */ 2609/* Rate control API */
2586 2610
2587/** 2611/**