SME: Add support for handling association with MLD
In case both the local driver and the AP support MLD, request an MLD association from the driver. When processing the association event from the driver verify that the multi link information in the (Re)Association Response frame ML element matches the links on which the association was expected. Signed-off-by: Ilan Peer <ilan.peer@intel.com> Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
This commit is contained in:
parent
8f89661df5
commit
23039f5e4a
1 changed files with 25 additions and 0 deletions
|
@ -2431,6 +2431,31 @@ mscs_fail:
|
||||||
else
|
else
|
||||||
params.uapsd = -1;
|
params.uapsd = -1;
|
||||||
|
|
||||||
|
if (wpa_s->valid_links) {
|
||||||
|
unsigned int 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=%u, freq=%d, " MACSTR,
|
||||||
|
i, wpa_s->links[i].freq,
|
||||||
|
MAC2STR(wpa_s->links[i].bssid));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (wpa_drv_associate(wpa_s, ¶ms) < 0) {
|
if (wpa_drv_associate(wpa_s, ¶ms) < 0) {
|
||||||
wpa_msg(wpa_s, MSG_INFO, "SME: Association request to the "
|
wpa_msg(wpa_s, MSG_INFO, "SME: Association request to the "
|
||||||
"driver failed");
|
"driver failed");
|
||||||
|
|
Loading…
Reference in a new issue