wlantest: Find non-AP MLD only from affiliated BSSs of the AP MLD

Make sta_find_mlo() more accurate by searching a non-AP MLD only from
the affialiated BSSs of the AP MLD instead of from any BSS. This might
help in some roaming cases where both the old and the new AP MLD have
their affiliated links in the BSS table.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
Jouni Malinen 2023-08-10 11:18:57 +03:00 committed by Jouni Malinen
parent 74e4a0a6f1
commit a5a0b2cf7b

View file

@ -54,6 +54,10 @@ struct wlantest_sta * sta_find_mlo(struct wlantest *wt,
dl_list_for_each(obss, &wt->bss, struct wlantest_bss, list) { dl_list_for_each(obss, &wt->bss, struct wlantest_bss, list) {
if (obss == bss) if (obss == bss)
continue; continue;
if (!is_zero_ether_addr(bss->mld_mac_addr) &&
os_memcmp(obss->mld_mac_addr, bss->mld_mac_addr,
ETH_ALEN) != 0)
continue;
dl_list_for_each(sta, &obss->sta, struct wlantest_sta, list) { dl_list_for_each(sta, &obss->sta, struct wlantest_sta, list) {
if (os_memcmp(sta->addr, addr, ETH_ALEN) == 0) if (os_memcmp(sta->addr, addr, ETH_ALEN) == 0)
return sta; return sta;