[PATCH v2 0/3] PR: Improve PASN authentication reliability and frame loss recovery
Emily Xia
xiayucheng at google.com
Fri Oct 30 02:23:12 PDT 2026
This patch series hardens the Proximity Ranging (PR) PASN authentication
state machine against duplicate/out-of-order frames and over-the-air
frame or 802.11 ACK loss across M1, M2, and M3, aligning PR PASN
retransmission and timeout behavior with P2P GO Negotiation:
1. Ignore duplicate and out-of-order PASN authentication frames (M1, M2,
M3) after the state machine has advanced, and reset per-peer PASN
state between sessions.
2. Add PASN M2 off-channel dwell (1000ms), responder M2 NACK recovery
ROC (3000ms), initiator fallback M1 retry when M2 is lost after M1
ACK, and responder cached M2 replay on duplicate M1.
3. Add initiator M3 retransmission and optimistic completion when M3 or
its 802.11 ACK is lost, guard against stale TX status events, add a
1000ms responder M3 wait timer after M2 ACK, and unify return-code
and timer cleanup semantics across Auth1/Auth2/Auth3 handlers.
Changes in v2:
- Patch 1:
* Resend as part of the series.
- Patch 2:
* In responder M2 recovery, use max_remain_on_chan as per-chunk duration
and restart chunks across the 3000ms retry ROC window instead of passing
an explicit 3000ms duration to a single ROC request, matching DPP/P2P
ROC chunking and avoiding driver limits.
* Simplify timer registration using 0, PR_PASN_M2_RETRY_ROC_DURATION_MS * 1000.
* Update commit message to reflect chunked ROC restart behavior.
- Patch 3:
* In wpas_pr_cancel_remain_on_channel_cb(), verify that the responder is
still waiting for M3 (pr_is_pasn_responder_waiting_m3) before restarting
the next ROC chunk; otherwise, cancel all active PASN timeouts and
abort cleanly.
* Adapt wpas_pr_schedule_responder_roc() call to match the 2-parameter
signature from Patch 2.
Signed-off-by: Emily Xia <xiayucheng at google.com>
Signed-off-by: Sunil Ravi <sunilravi at google.com>
Emily Xia (3):
PR: Ignore duplicate and out-of-order PASN authentication frames
PR: Recover from PASN M2 TX failure and handle duplicate M1
PR PASN: Handle lost M3 and lost M3 ACK (align with P2P GO Neg
Confirm)
src/common/proximity_ranging.c | 339 +++++++++++++++++++++++++++------
src/common/proximity_ranging.h | 6 +
wpa_supplicant/events.c | 7 +-
wpa_supplicant/pr_supplicant.c | 321 ++++++++++++++++++++++++++++---
4 files changed, 590 insertions(+), 83 deletions(-)
--
2.56.0.385.gac671c819a-goog
More information about the Hostap
mailing list