2021-11-24 16:02:26 +00:00
|
|
|
From: Felix Fietkau <nbd@nbd.name>
|
|
|
|
Date: Mon, 18 Feb 2019 12:57:11 +0100
|
|
|
|
Subject: [PATCH] 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.
|
|
|
|
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
|
|
---
|
|
|
|
|
|
|
|
--- a/src/ap/ieee802_11.c
|
|
|
|
+++ b/src/ap/ieee802_11.c
|
2022-08-19 00:17:22 +00:00
|
|
|
@@ -3781,15 +3781,6 @@ static void handle_auth(struct hostapd_d
|
2021-11-24 16:02:26 +00:00
|
|
|
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(mgmt->sa));
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-#endif /* CONFIG_MESH */
|
|
|
|
#ifdef CONFIG_PASN
|
|
|
|
if (auth_alg == WLAN_AUTH_PASN &&
|
|
|
|
(sta->flags & WLAN_STA_ASSOC)) {
|