@@ -3495,6 +3495,7 @@ static void nl80211_port_authorized(struct wpa_driver_nl80211_data *drv,
{
const u8 *addr;
union wpa_event_data event;
+ const u8 *connected_addr;
os_memset(&event, 0, sizeof(event));
@@ -3511,13 +3512,16 @@ static void nl80211_port_authorized(struct wpa_driver_nl80211_data *drv,
wpa_printf(MSG_DEBUG,
"nl80211: Port authorized for STA addr " MACSTR,
MAC2STR(addr));
- } else if (is_sta_interface(drv->nlmode) &&
- os_memcmp(addr, drv->bssid, ETH_ALEN) != 0) {
- wpa_printf(MSG_DEBUG,
- "nl80211: Ignore port authorized event for " MACSTR
- " (not the currently connected BSSID " MACSTR ")",
- MAC2STR(addr), MAC2STR(drv->bssid));
- return;
+ } else if (is_sta_interface(drv->nlmode)) {
+ 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,
+ "nl80211: Ignore port authorized event for " MACSTR
+ " (not the currently connected BSSID " MACSTR ")",
+ MAC2STR(addr), MAC2STR(connected_addr));
+ return;
+ }
}
if (tb[NL80211_ATTR_TD_BITMAP]) {
Handling of port authorized event for STA currently handles the connected BSSID. This needs additional handling to support the MLD AP 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> --- src/drivers/driver_nl80211_event.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-)