]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
AP MLD: Add Timeout Interval element for MLD reassociation rejection
authorKarthik M <karthik.m@oss.qualcomm.com>
Thu, 25 Sep 2025 07:31:14 +0000 (13:01 +0530)
committerJouni Malinen <j@w1.fi>
Mon, 29 Sep 2025 10:16:03 +0000 (13:16 +0300)
The AP MLD with an associated non-AP MLD receiving an (Re)Association
Request frame that uses the same MLD MAC address as that of the
associated non-AP MLD may reject association temporarily and include the
Timeout Interval element to indicate the association comeback time.
However, the Timeout Interval element is not included currently as
mld_addrs_not_translated flag is true in this case which causes NULL sta
object to be passed to send_assoc_resp().

Fix this by not setting mld_addrs_not_translated if the station is found
in the same link where an (Re)Association Request frame is received, so
that the Timeout Interval element is added into the (Re)Association
Response frame when requesting association comeback.

Signed-off-by: Karthik M <karthik.m@oss.qualcomm.com>
src/ap/ieee802_11.c

index e92faa5276a19afc906fb579f77d22efb9e917d9..57e6503fb169a03627f72dd212ea324e29b21937 100644 (file)
@@ -5794,10 +5794,13 @@ static void handle_assoc(struct hostapd_data *hapd,
                sta = handle_mlo_translate(hapd, mgmt, len, reassoc,
                                           &assoc_hapd);
                if (sta) {
-                       wpa_printf(MSG_DEBUG,
-                                  "MLD: Switching to assoc hapd/station");
-                       hapd = assoc_hapd;
-                       mld_addrs_not_translated = true;
+                       if (hapd != assoc_hapd) {
+                               wpa_printf(MSG_DEBUG,
+                                          "MLD: Switching to assoc hapd/station");
+                               hapd = assoc_hapd;
+                               mld_addrs_not_translated = true;
+                       }
+
                }
        }
 #endif /* CONFIG_IEEE80211BE */