[PATCH 02/16] PR: Handle PASN Authentication frame TX status with retransmission
Peddolla Harshavardhan Reddy
peddolla.reddy at oss.qualcomm.com
Sun Jul 12 23:29:50 PDT 2026
Handle PASN Authentication frame 1 TX status in
pr_pasn_auth_tx_status() by retransmitting the stored frame when it
is not acknowledged. Extend the initiator auth work timeout from 2
seconds to 10 seconds via a new PR_PASN_AUTH_TIMEOUT constant to
provide sufficient window for retransmissions to succeed.
Signed-off-by: Peddolla Harshavardhan Reddy <peddolla.reddy at oss.qualcomm.com>
---
src/common/proximity_ranging.c | 4 ++++
wpa_supplicant/pr_supplicant.c | 5 ++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c
index 3cb892d33..19261c3ee 100644
--- a/src/common/proximity_ranging.c
+++ b/src/common/proximity_ranging.c
@@ -2110,6 +2110,10 @@ int pr_pasn_auth_tx_status(struct pr_data *pr, const u8 *data, size_t data_len,
MAC2STR(mgmt->da), acked);
ret = wpa_pasn_auth_tx_status(pasn, data, data_len, acked);
+ if (ret != 1 && !acked && pasn->frame)
+ return pasn->send_mgmt(pasn->cb_ctx, wpabuf_head(pasn->frame),
+ wpabuf_len(pasn->frame), 0, pasn->freq,
+ 1000);
if (ret == 1 && acked && pr->cfg->pasn_result)
pr->cfg->pasn_result(pr->cfg->cb_ctx, dev->ranging_role,
dev->protocol_type, dev->final_op_class,
diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c
index 606a73d80..547428945 100644
--- a/wpa_supplicant/pr_supplicant.c
+++ b/wpa_supplicant/pr_supplicant.c
@@ -25,6 +25,8 @@ static void wpas_pr_pasn_timeout(void *eloop_ctx, void *timeout_ctx);
/* Total listen window (ms) for the PASN responder ROC */
#define PR_PASN_RESPONDER_ROC_DURATION 5000
+/* Initiator PASN auth timeout (s) */
+#define PR_PASN_AUTH_TIMEOUT 10
#endif /* CONFIG_PASN */
@@ -1193,7 +1195,8 @@ static void wpas_pr_pasn_auth_start_cb(struct wpa_radio_work *work, int deinit)
}
eloop_cancel_timeout(wpas_pr_pasn_timeout, wpa_s, NULL);
- eloop_register_timeout(2, 0, wpas_pr_pasn_timeout, wpa_s, NULL);
+ eloop_register_timeout(PR_PASN_AUTH_TIMEOUT, 0, wpas_pr_pasn_timeout,
+ wpa_s, NULL);
wpa_s->pr_pasn_auth_work = work;
return;
--
2.34.1
More information about the Hostap
mailing list