diff options
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 029e8cb7bf4e..056c225173d8 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -205,8 +205,8 @@ struct ieee80211_tx_control { | |||
205 | * is not implemented by the driver */ | 205 | * is not implemented by the driver */ |
206 | u8 power_level; /* per-packet transmit power level, in dBm */ | 206 | u8 power_level; /* per-packet transmit power level, in dBm */ |
207 | u8 antenna_sel_tx; /* 0 = default/diversity, 1 = Ant0, 2 = Ant1 */ | 207 | u8 antenna_sel_tx; /* 0 = default/diversity, 1 = Ant0, 2 = Ant1 */ |
208 | s8 key_idx; /* -1 = do not encrypt, >= 0 keyidx from | 208 | s8 key_idx; /* HW_KEY_IDX_INVALID = do not encrypt, |
209 | * hw->set_key() */ | 209 | * other values: keyidx from hw->set_key() */ |
210 | u8 icv_len; /* length of the ICV/MIC field in octets */ | 210 | u8 icv_len; /* length of the ICV/MIC field in octets */ |
211 | u8 iv_len; /* length of the IV field in octets */ | 211 | u8 iv_len; /* length of the IV field in octets */ |
212 | u8 tkip_key[16]; /* generated phase2/phase1 key for hw TKIP */ | 212 | u8 tkip_key[16]; /* generated phase2/phase1 key for hw TKIP */ |
@@ -392,26 +392,23 @@ struct ieee80211_if_conf { | |||
392 | struct ieee80211_tx_control *beacon_control; | 392 | struct ieee80211_tx_control *beacon_control; |
393 | }; | 393 | }; |
394 | 394 | ||
395 | typedef enum { ALG_NONE, ALG_WEP, ALG_TKIP, ALG_CCMP, ALG_NULL } | 395 | typedef enum { |
396 | ieee80211_key_alg; | 396 | ALG_NONE, |
397 | 397 | ALG_WEP, | |
398 | ALG_TKIP, | ||
399 | ALG_CCMP, | ||
400 | } ieee80211_key_alg; | ||
398 | 401 | ||
399 | struct ieee80211_key_conf { | 402 | struct ieee80211_key_conf { |
403 | /* shall be changed by the driver to anything but HW_KEY_IDX_INVALID */ | ||
404 | int hw_key_idx; | ||
400 | 405 | ||
401 | int hw_key_idx; /* filled + used by low-level driver */ | ||
402 | ieee80211_key_alg alg; | 406 | ieee80211_key_alg alg; |
407 | |||
403 | int keylen; | 408 | int keylen; |
404 | 409 | ||
405 | #define IEEE80211_KEY_FORCE_SW_ENCRYPT (1<<0) /* to be cleared by low-level | 410 | #define IEEE80211_KEY_FORCE_SW_ENCRYPT (1<<0) /* to be cleared by low-level |
406 | driver */ | 411 | driver */ |
407 | #define IEEE80211_KEY_DEFAULT_TX_KEY (1<<1) /* This key is the new default TX | ||
408 | key (used only for broadcast | ||
409 | keys). */ | ||
410 | #define IEEE80211_KEY_DEFAULT_WEP_ONLY (1<<2) /* static WEP is the only | ||
411 | configured security policy; | ||
412 | this allows some low-level | ||
413 | drivers to determine when | ||
414 | hwaccel can be used */ | ||
415 | u32 flags; /* key configuration flags defined above */ | 412 | u32 flags; /* key configuration flags defined above */ |
416 | 413 | ||
417 | s8 keyidx; /* WEP key index */ | 414 | s8 keyidx; /* WEP key index */ |
@@ -625,20 +622,26 @@ struct ieee80211_ops { | |||
625 | * Must be atomic. */ | 622 | * Must be atomic. */ |
626 | int (*set_tim)(struct ieee80211_hw *hw, int aid, int set); | 623 | int (*set_tim)(struct ieee80211_hw *hw, int aid, int set); |
627 | 624 | ||
628 | /* Set encryption key. IEEE 802.11 module calls this function to set | 625 | /* |
629 | * encryption keys. addr is ff:ff:ff:ff:ff:ff for default keys and | 626 | * Set encryption key. |
630 | * station hwaddr for individual keys. aid of the station is given | 627 | * |
631 | * to help low-level driver in selecting which key->hw_key_idx to use | 628 | * This is called to enable hardware acceleration of encryption and |
632 | * for this key. TX control data will use the hw_key_idx selected by | 629 | * decryption. The address will be the broadcast address for default |
633 | * the low-level driver. */ | 630 | * keys and the other station's hardware address for individual keys. |
631 | * When transmitting, the TX control data will use the hw_key_idx | ||
632 | * selected by the low-level driver. | ||
633 | */ | ||
634 | int (*set_key)(struct ieee80211_hw *hw, set_key_cmd cmd, | 634 | int (*set_key)(struct ieee80211_hw *hw, set_key_cmd cmd, |
635 | u8 *addr, struct ieee80211_key_conf *key, int aid); | 635 | u8 *address, struct ieee80211_key_conf *key, |
636 | int static_wep_only); | ||
636 | 637 | ||
637 | /* Set TX key index for default/broadcast keys. This is needed in cases | 638 | /* |
639 | * Set TX key index for default/broadcast keys. This is needed in cases | ||
638 | * where wlan card is doing full WEP/TKIP encapsulation (wep_include_iv | 640 | * where wlan card is doing full WEP/TKIP encapsulation (wep_include_iv |
639 | * is not set), in other cases, this function pointer can be set to | 641 | * is not set), in other cases, this function pointer can be set to |
640 | * NULL since the IEEE 802. 11 module takes care of selecting the key | 642 | * NULL since the IEEE 802.11 module takes care of selecting the key |
641 | * index for each TX frame. */ | 643 | * index for each TX frame. |
644 | */ | ||
642 | int (*set_key_idx)(struct ieee80211_hw *hw, int idx); | 645 | int (*set_key_idx)(struct ieee80211_hw *hw, int idx); |
643 | 646 | ||
644 | /* Enable/disable IEEE 802.1X. This item requests wlan card to pass | 647 | /* Enable/disable IEEE 802.1X. This item requests wlan card to pass |