Browse Source

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>
Masashi Honma 9 years ago
parent
commit
f029c44cf2
1 changed files with 6 additions and 0 deletions
  1. 6 0
      wpa_supplicant/mesh_mpm.c

+ 6 - 0
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 */
 			   2 + 22;  /* HT operation */
 	}
 	}
 #endif /* CONFIG_IEEE80211N */
 #endif /* CONFIG_IEEE80211N */
+	if (type != PLINK_CLOSE)
+		buf_len += conf->rsn_ie_len; /* RSN IE */
+
 	buf = wpabuf_alloc(buf_len);
 	buf = wpabuf_alloc(buf_len);
 	if (!buf)
 	if (!buf)
 		return;
 		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);
 		pos = hostapd_eid_ext_supp_rates(bss, pos);
 		wpabuf_put_data(buf, supp_rates, pos - supp_rates);
 		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 */
 		/* IE: Mesh ID */
 		wpabuf_put_u8(buf, WLAN_EID_MESH_ID);
 		wpabuf_put_u8(buf, WLAN_EID_MESH_ID);
 		wpabuf_put_u8(buf, conf->meshid_len);
 		wpabuf_put_u8(buf, conf->meshid_len);