From 69ea73bfed309810243a2002fd0ea9c26e0ddd89 Mon Sep 17 00:00:00 2001 From: Vinayak Yadawad Date: Mon, 20 Nov 2023 18:09:33 +0530 Subject: [PATCH] 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 --- src/drivers/driver_nl80211_event.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/drivers/driver_nl80211_event.c b/src/drivers/driver_nl80211_event.c index 0091032e5..b3daf546f 100644 --- a/src/drivers/driver_nl80211_event.c +++ b/src/drivers/driver_nl80211_event.c @@ -3511,13 +3511,19 @@ 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)) { + 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, + "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]) {