]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
mesh: Allow processing authentication frames in blocked state
authorFelix Fietkau <nbd@nbd.name>
Thu, 4 Apr 2024 10:52:15 +0000 (12:52 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 15 Apr 2024 20:14:33 +0000 (23:14 +0300)
If authentication fails repeatedly, e.g., because of a weak signal, the
link can end up in blocked state. If one of the nodes tries to establish
a link again before it is unblocked on the other side, it will block the
link to that other side. The same happens on the other side when it
unblocks the link. In that scenario, the link never recovers on its own.

To fix this, allow restarting authentication even if the link is in
blocked state, but don't initiate the attempt until the blocked period
is over. This reverts commit 09d96de09e01 ("mesh: Drop Authentication
frames from BLOCKED STA").

Signed-off-by: Felix Fietkau <nbd@nbd.name>
src/ap/ieee802_11.c

index 13b1536ea55d3f09cde3e954708cc8d785e13a5e..85a39d5ffb0e7f1bf1d75ce1fc4e3d5c886f9387 100644 (file)
@@ -3058,15 +3058,6 @@ static void handle_auth(struct hostapd_data *hapd,
                                       seq_ctrl);
                        return;
                }
-#ifdef CONFIG_MESH
-               if ((hapd->conf->mesh & MESH_ENABLED) &&
-                   sta->plink_state == PLINK_BLOCKED) {
-                       wpa_printf(MSG_DEBUG, "Mesh peer " MACSTR
-                                  " is blocked - drop Authentication frame",
-                                  MAC2STR(sa));
-                       return;
-               }
-#endif /* CONFIG_MESH */
 #ifdef CONFIG_PASN
                if (auth_alg == WLAN_AUTH_PASN &&
                    (sta->flags & WLAN_STA_ASSOC)) {