[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