[PATCH] PR: Fix PASN responder ROC duration, MAC filtering and termination notification
Emily Xia
xiayucheng at google.com
Thu Aug 6 08:13:49 PDT 2026
- Increase PR_PASN_RESPONDER_ROC_DURATION from 5s to 10s to allow
sufficient time for PASN responder authentication and ranging setup.
- Notify upper layers with PR_SESSION_END_NEG_FAILED in
wpas_pr_pasn_roc_start_cb when driver remain-on-channel fails to start
for responder role.
- Copy pr_responder_src_addr to radio work src_addr in
wpas_pr_schedule_responder_roc to preserve custom MAC filter address
when rescheduling subsequent ROC chunks.
Signed-off-by: Emily Xia <xiayucheng at google.com>
---
wpa_supplicant/pr_supplicant.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c
index abfc85be1..60eb6da85 100644
--- a/wpa_supplicant/pr_supplicant.c
+++ b/wpa_supplicant/pr_supplicant.c
@@ -27,7 +27,7 @@ static void wpas_pr_pasn_auth_work_done(struct wpa_supplicant *wpa_s);
static void wpas_pr_pasn_auth_retry_timeout(void *eloop_ctx, void *timeout_ctx);
/* Total listen window (ms) for the PASN responder ROC */
-#define PR_PASN_RESPONDER_ROC_DURATION 5000
+#define PR_PASN_RESPONDER_ROC_DURATION 10000
/* Initiator PASN authentication timeout (s) */
#define PR_PASN_AUTH_TIMEOUT 10
/* Retry interval (ms) for unacked PASN Authentication frame 1 */
@@ -1140,6 +1140,7 @@ static void wpas_pr_pasn_roc_start_cb(struct wpa_radio_work *work, int deinit)
"PR PASN: Failed to start ROC for responder");
wpas_pr_pasn_roc_work_done(wpa_s);
wpas_pr_pasn_abort_responder(wpa_s);
+ wpas_notify_pr_ranging_terminated(wpa_s, PR_SESSION_END_NEG_FAILED);
return;
}
@@ -1163,6 +1164,10 @@ static void wpas_pr_schedule_responder_roc(struct wpa_supplicant *wpa_s,
}
rwork->freq = freq;
+ if (wpa_s->pr_responder_mode && !is_zero_ether_addr(wpa_s->pr_responder_src_addr)) {
+ os_memcpy(rwork->src_addr, wpa_s->pr_responder_src_addr, ETH_ALEN);
+ }
+
if (!radio_add_work(wpa_s, freq, "pr-pasn-roc", 0,
wpas_pr_pasn_roc_start_cb, rwork)) {
wpa_printf(MSG_INFO, "PR PASN: Failed to reschedule ROC");
--
2.55.0.629.g250fe7f194-goog
More information about the Hostap
mailing list