aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h
diff options
context:
space:
mode:
authorAyala Beker <ayala.beker@intel.com>2016-04-07 09:21:57 -0400
committerLuca Coelho <luciano.coelho@intel.com>2016-07-05 19:07:49 -0400
commit2a53d166c464d7b51d6f7204d445fc0254b25f51 (patch)
tree8b717a54a2272473558cf125ce42a415a9fc35f2 /drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h
parent9c07e9aafcbe4b2a98c18d9b0ee28c84d749ea84 (diff)
iwlwifi: mvm: add support for GCMP encryption
Newer hardware supports GCMP and GCMP 256-bit ciphers. Add support for adding/setting GCMP key for TX mode. In the TX command handling GCMP-256 is handled in a different way as the key size should be up to 128-bits: Set the key value to the key index in the key table, and specify that this key should be taken form the key table instead of from the TX command. While at it - convert security control flags to an enum. Signed-off-by: Ayala Beker <ayala.beker@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h b/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h
index 38b1d045be8e..d1c4fb849111 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-sta.h
@@ -141,6 +141,7 @@ enum iwl_sta_flags {
141 * @STA_KEY_FLG_CCM: CCMP encryption algorithm 141 * @STA_KEY_FLG_CCM: CCMP encryption algorithm
142 * @STA_KEY_FLG_TKIP: TKIP encryption algorithm 142 * @STA_KEY_FLG_TKIP: TKIP encryption algorithm
143 * @STA_KEY_FLG_EXT: extended cipher algorithm (depends on the FW support) 143 * @STA_KEY_FLG_EXT: extended cipher algorithm (depends on the FW support)
144 * @STA_KEY_FLG_GCMP: GCMP encryption algorithm
144 * @STA_KEY_FLG_CMAC: CMAC encryption algorithm 145 * @STA_KEY_FLG_CMAC: CMAC encryption algorithm
145 * @STA_KEY_FLG_ENC_UNKNOWN: unknown encryption algorithm 146 * @STA_KEY_FLG_ENC_UNKNOWN: unknown encryption algorithm
146 * @STA_KEY_FLG_EN_MSK: mask for encryption algorithmi value 147 * @STA_KEY_FLG_EN_MSK: mask for encryption algorithmi value
@@ -149,6 +150,7 @@ enum iwl_sta_flags {
149 * @STA_KEY_FLG_KEYID_MSK: the index of the key 150 * @STA_KEY_FLG_KEYID_MSK: the index of the key
150 * @STA_KEY_NOT_VALID: key is invalid 151 * @STA_KEY_NOT_VALID: key is invalid
151 * @STA_KEY_FLG_WEP_13BYTES: set for 13 bytes WEP key 152 * @STA_KEY_FLG_WEP_13BYTES: set for 13 bytes WEP key
153 * @STA_KEY_FLG_KEY_32BYTES for non-wep key set for 32 bytes key
152 * @STA_KEY_MULTICAST: set for multical key 154 * @STA_KEY_MULTICAST: set for multical key
153 * @STA_KEY_MFP: key is used for Management Frame Protection 155 * @STA_KEY_MFP: key is used for Management Frame Protection
154 */ 156 */
@@ -158,6 +160,7 @@ enum iwl_sta_key_flag {
158 STA_KEY_FLG_CCM = (2 << 0), 160 STA_KEY_FLG_CCM = (2 << 0),
159 STA_KEY_FLG_TKIP = (3 << 0), 161 STA_KEY_FLG_TKIP = (3 << 0),
160 STA_KEY_FLG_EXT = (4 << 0), 162 STA_KEY_FLG_EXT = (4 << 0),
163 STA_KEY_FLG_GCMP = (5 << 0),
161 STA_KEY_FLG_CMAC = (6 << 0), 164 STA_KEY_FLG_CMAC = (6 << 0),
162 STA_KEY_FLG_ENC_UNKNOWN = (7 << 0), 165 STA_KEY_FLG_ENC_UNKNOWN = (7 << 0),
163 STA_KEY_FLG_EN_MSK = (7 << 0), 166 STA_KEY_FLG_EN_MSK = (7 << 0),
@@ -167,6 +170,7 @@ enum iwl_sta_key_flag {
167 STA_KEY_FLG_KEYID_MSK = (3 << STA_KEY_FLG_KEYID_POS), 170 STA_KEY_FLG_KEYID_MSK = (3 << STA_KEY_FLG_KEYID_POS),
168 STA_KEY_NOT_VALID = BIT(11), 171 STA_KEY_NOT_VALID = BIT(11),
169 STA_KEY_FLG_WEP_13BYTES = BIT(12), 172 STA_KEY_FLG_WEP_13BYTES = BIT(12),
173 STA_KEY_FLG_KEY_32BYTES = BIT(12),
170 STA_KEY_MULTICAST = BIT(14), 174 STA_KEY_MULTICAST = BIT(14),
171 STA_KEY_MFP = BIT(15), 175 STA_KEY_MFP = BIT(15),
172}; 176};
@@ -388,7 +392,6 @@ struct iwl_mvm_add_sta_cmd {
388 * @key_offset: key offset in key storage 392 * @key_offset: key offset in key storage
389 * @key_flags: type %iwl_sta_key_flag 393 * @key_flags: type %iwl_sta_key_flag
390 * @key: key material data 394 * @key: key material data
391 * @key2: key material data
392 * @rx_secur_seq_cnt: RX security sequence counter for the key 395 * @rx_secur_seq_cnt: RX security sequence counter for the key
393 * @tkip_rx_tsc_byte2: TSC[2] for key mix ph1 detection 396 * @tkip_rx_tsc_byte2: TSC[2] for key mix ph1 detection
394 * @tkip_rx_ttak: 10-byte unicast TKIP TTAK for Rx 397 * @tkip_rx_ttak: 10-byte unicast TKIP TTAK for Rx
@@ -397,8 +400,7 @@ struct iwl_mvm_add_sta_key_cmd {
397 u8 sta_id; 400 u8 sta_id;
398 u8 key_offset; 401 u8 key_offset;
399 __le16 key_flags; 402 __le16 key_flags;
400 u8 key[16]; 403 u8 key[32];
401 u8 key2[16];
402 u8 rx_secur_seq_cnt[16]; 404 u8 rx_secur_seq_cnt[16];
403 u8 tkip_rx_tsc_byte2; 405 u8 tkip_rx_tsc_byte2;
404 u8 reserved; 406 u8 reserved;