mesh: Add RSN IE to Mesh Peering Open/Confirm frames
authorMasashi Honma <masashi.honma@gmail.com>
Mon, 31 Aug 2015 07:58:10 +0000 (16:58 +0900)
committerJouni Malinen <j@w1.fi>
Sat, 5 Sep 2015 18:19:25 +0000 (21:19 +0300)
The RSN IE is required by IEEE Std 802.11-2012 on SAE use case:
Table 8-262 Mesh Peering Open frame Action field format
Table 8-263 Mesh Peering Confirm frame Action field format

Add the RSN IE to these frames.

Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
wpa_supplicant/mesh_mpm.c

index b29b5ff..f81b88c 100644 (file)
@@ -239,6 +239,9 @@ static void mesh_mpm_send_plink_action(struct wpa_supplicant *wpa_s,
                           2 + 22;  /* HT operation */
        }
 #endif /* CONFIG_IEEE80211N */
+       if (type != PLINK_CLOSE)
+               buf_len += conf->rsn_ie_len; /* RSN IE */
+
        buf = wpabuf_alloc(buf_len);
        if (!buf)
                return;
@@ -262,6 +265,9 @@ static void mesh_mpm_send_plink_action(struct wpa_supplicant *wpa_s,
                pos = hostapd_eid_ext_supp_rates(bss, pos);
                wpabuf_put_data(buf, supp_rates, pos - supp_rates);
 
+               /* IE: RSN IE */
+               wpabuf_put_data(buf, conf->rsn_ie, conf->rsn_ie_len);
+
                /* IE: Mesh ID */
                wpabuf_put_u8(buf, WLAN_EID_MESH_ID);
                wpabuf_put_u8(buf, conf->meshid_len);