[PATCH v3 00/46] PR: Add nl80211 support and ranging for Proximity Detection

Kavita Kavita kavita.kavita at oss.qualcomm.com
Wed May 13 02:59:24 PDT 2026


wpa_supplicant already had PASN authentication support for
Proximity Ranging (PR). This series adds the missing nl80211
driver support and ranging to complete the PD (Proximity
Detection) flow.

It introduces a dedicated PD virtual interface (NL80211_IFTYPE_PD)
with its own MAC address, updates nl80211_copy.h with the
proposed kernel API additions for PD, improves driver capability
parsing with dedicated PR-specific flags, extends the set_key
path to carry LTF key seeds for secure ranging, and wires up
peer measurement start and result handling through the nl80211
driver. The existing PR_PASN_START control interface command is
extended with the full set of EDCA, NTB, and proximity threshold
parameters and rerouted through wpas_pr_pasn_trigger() to drive
the complete PASN-then-ranging flow in a single step.
Support is also added for Out-of-Band peer discovery where USD is
handled by an external application, and per-peer PMK and password
configuration via PR_PASN_START for authenticated PASN without
prior NAN USD discovery.

Kernel Changes are merged into wireless-next tip.
Link: https://patchwork.kernel.org/project/linux-wireless/list/?series=1083204&state=%2A&archive=both

---
Changes in v3:
- The earlier supplicant patchset (v2) was aligned with a previous
  kernel patchset series. Since that kernel series has now been merged,
  the supplicant has been updated again (v3) to align with the current
  wireless-next.
- Fixed several bugs identified during internal testing. Introduced
  new patches in this series.
- Added support for Out-of-Band (OOB) peer discovery: when USD
  service discovery is handled by an external application and
  PASN is triggered separately via PR_PASN_START, a minimal peer
  entry is created automatically to allow PASN to proceed without
  prior NAN USD discovery.
---
Changes in v2:
- Added the correct NL attributes.
- Refactored dependent code paths to reflect the updated NL
  attribute handling.
---

Kavita Kavita (11):
  nl80211: Sync with wireless-next.git include/uapi/linux/nl80211.h
  PR: Add CONFIG_PR to defconfig
  PR: Guard wpas_pr_usd_elems() against uninitialized PR context
  PR: Gate EDCA ranging support on ASAP capability
  PR: Move ranging_wrapper free inside CONFIG_PASN ifdef
  PR: Default pasn_type to DH19_UNAUTH|DH19_AUTH when not configured
  PR: Restore dev_addr to station MAC after PD wdev stop
  PR: Flush PMKSA cache after TK is configured for ranging
  PR: Track peer discovery type and handle OOB peers in PASN initiation
  PR: Allow PMK and password configuration in PR_PASN_START
  PR: Skip key installation for EDCA-based ranging

Peddolla Harshavardhan Reddy (30):
  ctrl_iface: Add forced_addr parameter to NAN_PUBLISH and NAN_SUBSCRIBE
  nl80211: Add MAC address filter support for remain-on-channel
  nl80211: Allow NAN USD frames with foreign destination address
  NAN: Make NAN and P2P network IDs globally accessible
  NAN: Use protocol-specific network ID in USD offload to driver
  NAN: Pass forced_addr to remain-on-channel listen callback
  nl80211: Parse Peer Measurement (PMSR) capabilities
  PR: Use stored capabilities instead of driver flags
  PR: Add support to use stored 6GHz capability for PR
  PR: Fix wrong channel set used in NTB capabilities
  PR: Replace format_and_bw attribute with preamble/BW bitmaps
  PR: Add nl80211 driver support for PD interface
  nl80211: Use wdev-based message for SET_KEY on wdev-only interfaces
  PR: Use set_key to configure secure ranging context for PASN
  PR: Extend PR_PASN_START ctrl iface with src_addr and role
  PR: Add remain-on-channel support for PASN responder role
  PR: Add dedicated PD wdev for PASN with custom MAC address
  PR: Add interface to trigger PASN authentication for ranging
  PR: Add PR_PASN_NEGOTIATION_STARTED event
  PR: Add extended ranging parameters to PASN peer structure
  PR: Use op_class_to_bandwidth() in wpas_pr_ranging_params()
  nl80211: Add peer measurement support for proximity ranging
  PR: Use session time as total ROC budget for PASN responder
  PR: Extend PR_PASN_START ctrl iface with full ranging parameters
  wpa_supplicant: Add FTM peer measurement result handling
  PR: Handle peer measurement complete event
  PR: Add ranging session timeout and integrate socket cleanup
  PR: Add API and ctrl iface command to abort ranging session
  PR: store resolved peer DevIK in pr_device after DIRA match
  PR: use USD source address for DIRA tag computation

Veerendranath Jakkam (5):
  nl80211: Add Proximity Detection (PD) wdev support
  nl80211: Route MLME TX via PD wdev based on source address
  nl80211: Factor out global event BSS lookup and add PD wdev event
    routing
  nl80211: Route key operations to PD wdev based on own_addr
  nl80211: Add dedicated PR ranging socket and stop op

 src/ap/nan_usd_ap.c                |    2 +-
 src/common/nan_de.c                |   13 +-
 src/common/nan_de.h                |    6 +-
 src/common/nan_defs.h              |    4 +
 src/common/proximity_ranging.c     |  134 ++-
 src/common/proximity_ranging.h     |  166 +++-
 src/common/wpa_ctrl.h              |   11 +
 src/drivers/driver.h               |  231 ++++-
 src/drivers/driver_common.c        |    2 +
 src/drivers/driver_nl80211.c       |  677 ++++++++++++++-
 src/drivers/driver_nl80211.h       |    7 +
 src/drivers/driver_nl80211_capa.c  |  176 ++++
 src/drivers/driver_nl80211_event.c |  397 ++++++++-
 src/drivers/nl80211_copy.h         |  303 ++++++-
 wpa_supplicant/ctrl_iface.c        |  157 +++-
 wpa_supplicant/defconfig           |    3 +
 wpa_supplicant/dpp_supplicant.c    |    2 +-
 wpa_supplicant/driver_i.h          |   60 +-
 wpa_supplicant/events.c            |   18 +
 wpa_supplicant/nan_supplicant.c    |   40 +-
 wpa_supplicant/notify.c            |   45 +
 wpa_supplicant/notify.h            |    7 +
 wpa_supplicant/offchannel.c        |    4 +-
 wpa_supplicant/p2p_supplicant.c    |    2 +-
 wpa_supplicant/pr_supplicant.c     | 1280 +++++++++++++++++++++++++---
 wpa_supplicant/pr_supplicant.h     |   56 +-
 wpa_supplicant/wpa_supplicant.c    |    6 +-
 wpa_supplicant/wpa_supplicant_i.h  |   19 +
 28 files changed, 3557 insertions(+), 271 deletions(-)


base-commit: a034719032e92e65a18e28175e009d2598bae453
--
2.34.1




More information about the Hostap mailing list