cfg80211: IBSS: Add support for static WEP in driver for IBSS
authorTova Mussai <tova.mussai@intel.com>
Sun, 29 Oct 2017 09:51:11 +0000 (11:51 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 11 Dec 2017 11:19:21 +0000 (12:19 +0100)
Add support for drivers that implement static WEP internally for IBSS.
Add the WEP keys to the IBSS params struct, that will allow the driver
to use the keys in the join flow, and not only after the connection.

Signed-off-by: Tova Mussai <tova.mussai@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/cfg80211.h
net/wireless/ibss.c

index 8b8118a7fadbc74a9aa879dc934de0442bb3a013..698cebf2de2aeec2b0bd3bd0f42ee0a177c2ed28 100644 (file)
@@ -2021,6 +2021,9 @@ struct cfg80211_disassoc_request {
  * @ht_capa:  HT Capabilities over-rides.  Values set in ht_capa_mask
  *     will be used in ht_capa.  Un-supported values will be ignored.
  * @ht_capa_mask:  The bits of ht_capa which are to be used.
+ * @wep_keys: static WEP keys, if not NULL points to an array of
+ *     CFG80211_MAX_WEP_KEYS WEP keys
+ * @wep_tx_key: key index (0..3) of the default TX static WEP key
  */
 struct cfg80211_ibss_params {
        const u8 *ssid;
@@ -2037,6 +2040,8 @@ struct cfg80211_ibss_params {
        int mcast_rate[NUM_NL80211_BANDS];
        struct ieee80211_ht_cap ht_capa;
        struct ieee80211_ht_cap ht_capa_mask;
+       struct key_params *wep_keys;
+       int wep_tx_key;
 };
 
 /**
index 413d4f4e63345bd561b6c157ea7bdd2bc0c64504..a1d10993d08a7e306ce5fe2c39ac7bf9444de2ba 100644 (file)
@@ -126,6 +126,11 @@ static int __cfg80211_join_ibss(struct cfg80211_registered_device *rdev,
        wdev->ibss_fixed = params->channel_fixed;
        wdev->ibss_dfs_possible = params->userspace_handles_dfs;
        wdev->chandef = params->chandef;
+       if (connkeys) {
+               params->wep_keys = connkeys->params;
+               params->wep_tx_key = connkeys->def;
+       }
+
 #ifdef CONFIG_CFG80211_WEXT
        wdev->wext.ibss.chandef = params->chandef;
 #endif