wlantest: Use the MLD MAC address as well for matching STA entries

Allow either a link address or the MLD MAC address of a non-AP MLD to
match the MAC address that is being used to identify a source or
destination of a frame for the MLO cases.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
Jouni Malinen 2023-08-10 11:34:41 +03:00 committed by Jouni Malinen
parent 4e8e515f92
commit 49bf9f2df9

View file

@ -38,6 +38,8 @@ struct wlantest_sta * sta_find_mlo(struct wlantest *wt,
dl_list_for_each(sta, &bss->sta, struct wlantest_sta, list) { dl_list_for_each(sta, &bss->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;
if (os_memcmp(sta->mld_mac_addr, addr, ETH_ALEN) == 0)
return sta;
} }
if (is_zero_ether_addr(addr)) if (is_zero_ether_addr(addr))
@ -61,6 +63,8 @@ struct wlantest_sta * sta_find_mlo(struct wlantest *wt,
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;
if (os_memcmp(sta->mld_mac_addr, addr, ETH_ALEN) == 0)
return sta;
for (link_id = 0; link_id < MAX_NUM_MLO_LINKS; for (link_id = 0; link_id < MAX_NUM_MLO_LINKS;
link_id++) { link_id++) {
if (os_memcmp(sta->link_addr[link_id], addr, if (os_memcmp(sta->link_addr[link_id], addr,