nl80211: Indicate HS 2.0 OSEN AKM in connect/associate command
authorJouni Malinen <jouni@qca.qualcomm.com>
Tue, 25 Mar 2014 15:57:54 +0000 (17:57 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 25 Mar 2014 16:33:21 +0000 (18:33 +0200)
This allows drivers that build the WPA/RSN IEs internally to use similar
design for building the OSEN IE.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/common/ieee802_11_defs.h
src/drivers/driver_nl80211.c
wpa_supplicant/sme.c

index dcee679..6f2173d 100644 (file)
@@ -1099,6 +1099,7 @@ enum wifi_display_subelem {
 #define WLAN_AKM_SUITE_FT_8021X                0x000FAC03
 #define WLAN_AKM_SUITE_FT_PSK          0x000FAC04
 #define WLAN_AKM_SUITE_CCKM            0x00409600
+#define WLAN_AKM_SUITE_OSEN            0x506f9a01
 
 
 /* IEEE 802.11v - WNM Action field values */
index c3449ac..3ecce19 100644 (file)
@@ -8551,7 +8551,8 @@ static int nl80211_connect_common(struct wpa_driver_nl80211_data *drv,
            params->key_mgmt_suite == WPA_KEY_MGMT_PSK ||
            params->key_mgmt_suite == WPA_KEY_MGMT_FT_IEEE8021X ||
            params->key_mgmt_suite == WPA_KEY_MGMT_FT_PSK ||
-           params->key_mgmt_suite == WPA_KEY_MGMT_CCKM) {
+           params->key_mgmt_suite == WPA_KEY_MGMT_CCKM ||
+           params->key_mgmt_suite == WPA_KEY_MGMT_OSEN) {
                int mgmt = WLAN_AKM_SUITE_PSK;
 
                switch (params->key_mgmt_suite) {
@@ -8567,11 +8568,15 @@ static int nl80211_connect_common(struct wpa_driver_nl80211_data *drv,
                case WPA_KEY_MGMT_FT_PSK:
                        mgmt = WLAN_AKM_SUITE_FT_PSK;
                        break;
+               case WPA_KEY_MGMT_OSEN:
+                       mgmt = WLAN_AKM_SUITE_OSEN;
+                       break;
                case WPA_KEY_MGMT_PSK:
                default:
                        mgmt = WLAN_AKM_SUITE_PSK;
                        break;
                }
+               wpa_printf(MSG_DEBUG, "  * akm=0x%x", mgmt);
                NLA_PUT_U32(msg, NL80211_ATTR_AKM_SUITES, mgmt);
        }
 
index f01844e..a860afb 100644 (file)
@@ -711,6 +711,8 @@ void sme_associate(struct wpa_supplicant *wpa_s, enum wpas_mode mode,
        params.wpa_ie_len = wpa_s->sme.assoc_req_ie_len;
        params.pairwise_suite = wpa_s->pairwise_cipher;
        params.group_suite = wpa_s->group_cipher;
+       params.key_mgmt_suite = wpa_s->key_mgmt;
+       params.wpa_proto = wpa_s->wpa_proto;
 #ifdef CONFIG_HT_OVERRIDES
        os_memset(&htcaps, 0, sizeof(htcaps));
        os_memset(&htcaps_mask, 0, sizeof(htcaps_mask));