[PATCH v2 08/15] SME: Add support for handling association with MLD

Andrei Otcheretianski andrei.otcheretianski at intel.com
Wed Nov 30 05:09:32 PST 2022


In case that the AP supports MLD, request an MLD association
from the driver.

When processing the association event from the driver verify
that the multi link information in the association response ML
element matches the links on which the association was expected.

Signed-off-by: Ilan Peer <ilan.peer at intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski at intel.com>
---
 wpa_supplicant/sme.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/wpa_supplicant/sme.c b/wpa_supplicant/sme.c
index 119f1817da..f0a3ff47b1 100644
--- a/wpa_supplicant/sme.c
+++ b/wpa_supplicant/sme.c
@@ -2398,6 +2398,31 @@ mscs_fail:
 	else
 		params.uapsd = -1;
 
+	if (wpa_s->mld) {
+		size_t i;
+
+		wpa_printf(MSG_DEBUG,
+			   "MLD: in association. assoc_link_id=%u, valid_links=0x%x",
+			   wpa_s->mlo_assoc_link_id, wpa_s->valid_links);
+
+		params.mld_params.mld_addr = wpa_s->ap_mld_addr;
+		params.mld_params.valid_links = wpa_s->valid_links;
+		params.mld_params.assoc_link_id = wpa_s->mlo_assoc_link_id;
+		for (i = 0; i < MAX_NUM_MLD_LINKS ; i++) {
+			if (!(wpa_s->valid_links & BIT(i)))
+				continue;
+
+			params.mld_params.mld_links[i].bssid =
+				wpa_s->links[i].bssid;
+			params.mld_params.mld_links[i].freq =
+				wpa_s->links[i].freq;
+
+			wpa_printf(MSG_DEBUG, "MLD: id=%zu, freq=%d, " MACSTR,
+				   i, wpa_s->links[i].freq,
+				   MAC2STR(wpa_s->links[i].bssid));
+		}
+	}
+
 	if (wpa_drv_associate(wpa_s, &params) < 0) {
 		wpa_msg(wpa_s, MSG_INFO, "SME: Association request to the "
 			"driver failed");
-- 
2.25.1




More information about the Hostap mailing list