[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