summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasashi Honma <masashi.honma@gmail.com>2015-08-31 16:58:10 +0900
committerJouni Malinen <j@w1.fi>2015-09-05 21:19:25 +0300
commitf029c44cf29c97d408eb15bad28137505862d95b (patch)
tree9d562f97b473761e410f12473f40356c6856ad66
parent8a51dcbc2f5a032963dd9aa947c1a50d1da307ee (diff)
downloadhostap-f029c44cf29c97d408eb15bad28137505862d95b.tar.gz
mesh: Add RSN IE to Mesh Peering Open/Confirm frames
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>
-rw-r--r--wpa_supplicant/mesh_mpm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c
index b29b5ff9f..f81b88c89 100644
--- a/wpa_supplicant/mesh_mpm.c
+++ b/wpa_supplicant/mesh_mpm.c
@@ -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);