From: Ilan Peer Date: Wed, 13 Dec 2023 14:04:07 +0000 (+0200) Subject: AP: Use AP MLD MAC address for terminating MLO association X-Git-Tag: hostap_2_11~656 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54e6c56d251f4c9a42105d6f27181f709e38481c;p=thirdparty%2Fhostap.git AP: Use AP MLD MAC address for terminating MLO association Use the AP MLD MAC address when sending Deauthentication and Disassociation frames to a non-AP MLD. Signed-off-by: Ilan Peer --- diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c index 11a4eac82..fd0f97748 100644 --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c @@ -832,15 +832,21 @@ int hostapd_drv_sta_deauth(struct hostapd_data *hapd, const u8 *addr, int reason) { int link_id = -1; + const u8 *own_addr = hapd->own_addr; #ifdef CONFIG_IEEE80211BE - if (hapd->conf->mld_ap) + if (hapd->conf->mld_ap) { + struct sta_info *sta = ap_get_sta(hapd, addr); + link_id = hapd->mld_link_id; + if (sta && sta->mld_info.mld_sta) + own_addr = hapd->mld_addr; + } #endif /* CONFIG_IEEE80211BE */ if (!hapd->driver || !hapd->driver->sta_deauth || !hapd->drv_priv) return 0; - return hapd->driver->sta_deauth(hapd->drv_priv, hapd->own_addr, addr, + return hapd->driver->sta_deauth(hapd->drv_priv, own_addr, addr, reason, link_id); } @@ -848,9 +854,20 @@ int hostapd_drv_sta_deauth(struct hostapd_data *hapd, int hostapd_drv_sta_disassoc(struct hostapd_data *hapd, const u8 *addr, int reason) { + const u8 *own_addr = hapd->own_addr; + +#ifdef CONFIG_IEEE80211BE + if (hapd->conf->mld_ap) { + struct sta_info *sta = ap_get_sta(hapd, addr); + + if (sta && sta->mld_info.mld_sta) + own_addr = hapd->mld_addr; + } +#endif /* CONFIG_IEEE80211BE */ + if (!hapd->driver || !hapd->driver->sta_disassoc || !hapd->drv_priv) return 0; - return hapd->driver->sta_disassoc(hapd->drv_priv, hapd->own_addr, addr, + return hapd->driver->sta_disassoc(hapd->drv_priv, own_addr, addr, reason); }