mesh: Allow processing authentication frames in blocked state

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 09d96de09e ("mesh: Drop Authentication
frames from BLOCKED STA").

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2024-04-04 12:52:15 +02:00 committed by Jouni Malinen
parent a210fdb1c7
commit 8634e7343d

View file

@ -3058,15 +3058,6 @@ static void handle_auth(struct hostapd_data *hapd,
seq_ctrl); seq_ctrl);
return; 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 #ifdef CONFIG_PASN
if (auth_alg == WLAN_AUTH_PASN && if (auth_alg == WLAN_AUTH_PASN &&
(sta->flags & WLAN_STA_ASSOC)) { (sta->flags & WLAN_STA_ASSOC)) {