nl80211: Update port authorized indication for MLO address

Handling of port authorized event for STA currently handles the
connected BSSID. This needs additional handling to support the AP MLD
address in case of MLO connection. The connected_addr expected by
cfg80211_port_authorized() is mld_addr for ML connection case.

Signed-off-by: Vinayak Yadawad <vinayak.yadawad@broadcom.com>
This commit is contained in:
Vinayak Yadawad 2023-11-20 18:09:33 +05:30 committed by Jouni Malinen
parent 6f014c0d01
commit 69ea73bfed

View file

@ -3511,14 +3511,20 @@ static void nl80211_port_authorized(struct wpa_driver_nl80211_data *drv,
wpa_printf(MSG_DEBUG, wpa_printf(MSG_DEBUG,
"nl80211: Port authorized for STA addr " MACSTR, "nl80211: Port authorized for STA addr " MACSTR,
MAC2STR(addr)); MAC2STR(addr));
} else if (is_sta_interface(drv->nlmode) && } else if (is_sta_interface(drv->nlmode)) {
os_memcmp(addr, drv->bssid, ETH_ALEN) != 0) { const u8 *connected_addr;
connected_addr = drv->sta_mlo_info.valid_links ?
drv->sta_mlo_info.ap_mld_addr : drv->bssid;
if (os_memcmp(addr, connected_addr, ETH_ALEN) != 0) {
wpa_printf(MSG_DEBUG, wpa_printf(MSG_DEBUG,
"nl80211: Ignore port authorized event for " MACSTR "nl80211: Ignore port authorized event for "
" (not the currently connected BSSID " MACSTR ")", MACSTR " (not the currently connected BSSID "
MAC2STR(addr), MAC2STR(drv->bssid)); MACSTR ")",
MAC2STR(addr), MAC2STR(connected_addr));
return; return;
} }
}
if (tb[NL80211_ATTR_TD_BITMAP]) { if (tb[NL80211_ATTR_TD_BITMAP]) {
event.port_authorized.td_bitmap_len = event.port_authorized.td_bitmap_len =