[PATCH v2 00/35] Add initial support for NAN synchronized discovery

Andrei Otcheretianski andrei.otcheretianski at intel.com
Tue Dec 23 03:45:49 PST 2025


This patch series add initial support for NAN synchronized discovery
by reusing the existing USD implemetation in wpa_supplicant.
This is based on the latest wireless-next tree, which introduced
DW notification concept and allows SDF transmissions over NAN device
interface with proper timing.
This patch series implement the following:
  - Add support for NAN device interface
  - Introduce NAN module, and refactor USD so it will be possible to
    reuse the existing implementation.
  - Handle DW notifications and support synchronized discovery
  - Extend NAN DE to support match, SRF and RSSI filtering.
  - Testing coverage
 
In this implementation, NAN device interface can be used both for
synchronized and unsynchronized discovery (USD). For sync discovery, NAN
services (publish/subscribe) should be added with sync=1 parameter,
otherwise USD will be used. Sync discovery is only allowed after NAN
operation has been started.
 
Changes in V2:
- Fixed sync follow up addressing and added follow up hwsim test
- Fixed NAN cluster ID configuration.
- Increased timeouts in hwsim tests for discovery events.
- Don't set FSD bit in sync discovery tests.

Andrei Otcheretianski (20):
  Add support for NAN start/stop callbacks.
  wpa_supplicant: Handle NAN cluster join and next DW events
  wpa_supplicant: Add more NAN driver flags
  nl80211: Parse NAN capabilities
  wpa_supplicant: Check SYNC_CONFIG support
  nl80211: Handle NAN cluster join and DW notifications
  nl80211: Configure 'enable dw notification' NAN flag
  NAN: Handle cluster join notification
  nl80211: Config address and register mgmt frames on NAN iface
  NAN: Support synchronized SDF transmissions
  wpa_supplicant: Refactor NAN USD
  wpa_supplicant: Make sure NAN DE is initialized in wpas_nan_ready()
  NAN: Enable DW notification
  wpa_supplicant: Support synchronized NAN publish/subscribe
  NAN: Reuse nan_de_tx_sdf() to transmit solicited publish
  NAN: Support matching filters
  ctrl_iface: Support configuration of publish/subscribe match filters
  NAN: Support Service Response Filters (SRF)
  NAN: Support RSSI range limited services
  NAN: Don't send sync SDFs with offchannel tx

Ilan Peer (15):
  NAN: Fix enumeration value of NAN_ATTR_EXT_P2P_OPER
  USD: Rename WPA_DRIVER_FLAGS2_NAN_OFFLOAD
  NAN: Rename common/nan.h to common/nan_defs.h
  driver: Add support for NAN device operations
  tests: Enable building NAN for hwsim testing
  NAN: Add a basic NAN module
  NAN: Integrate the NAN module with the wpa_supplicant
  wpa_supplicant: Add control interface commands for NAN
  nl80211: Support NAN Device interface
  nl80211: Do not allow off channel for NAN Device action frames
  driver: Extend NAN cluster configuration
  NAN: Support configuring NAN operation
  nl80211: Support updating NAN configuration
  nl80211: Extend NAN configuration
  tests: Add testing coverage for NAN operation

 src/ap/nan_usd_ap.c                           |   2 +-
 src/common/nan_de.c                           | 633 +++++++++++---
 src/common/nan_de.h                           |  44 +-
 src/common/{nan.h => nan_defs.h}              |  15 +-
 src/common/wpa_ctrl.h                         |   3 +-
 src/drivers/driver.h                          | 133 ++-
 src/drivers/driver_common.c                   |   2 +
 src/drivers/driver_nl80211.c                  | 425 ++++++++--
 src/drivers/driver_nl80211.h                  |   8 +
 src/drivers/driver_nl80211_capa.c             |  47 +-
 src/drivers/driver_nl80211_event.c            |  50 ++
 src/nan/Makefile                              |   3 +
 src/nan/nan.c                                 | 112 +++
 src/nan/nan.h                                 |  46 ++
 src/nan/nan_i.h                               |  19 +
 tests/hwsim/example-wpa_supplicant.config     |   2 +
 tests/hwsim/test_nan.py                       | 776 ++++++++++++++++++
 wpa_supplicant/Android.mk                     |  14 +-
 wpa_supplicant/Makefile                       |  14 +-
 wpa_supplicant/ctrl_iface.c                   | 137 +++-
 wpa_supplicant/dbus/dbus_new_handlers.c       |  14 +-
 wpa_supplicant/defconfig                      |   3 +
 wpa_supplicant/driver_i.h                     |  27 +
 wpa_supplicant/events.c                       |  33 +-
 .../{nan_usd.c => nan_supplicant.c}           | 483 +++++++++--
 wpa_supplicant/nan_supplicant.h               | 182 ++++
 wpa_supplicant/nan_usd.h                      |  53 --
 wpa_supplicant/notify.c                       |   4 +-
 wpa_supplicant/p2p_supplicant.c               |   1 +
 wpa_supplicant/wpa_cli.c                      |  41 +-
 wpa_supplicant/wpa_supplicant.c               |  32 +-
 wpa_supplicant/wpa_supplicant_i.h             |  15 +-
 32 files changed, 3000 insertions(+), 373 deletions(-)
 rename src/common/{nan.h => nan_defs.h} (91%)
 create mode 100644 src/nan/Makefile
 create mode 100644 src/nan/nan.c
 create mode 100644 src/nan/nan.h
 create mode 100644 src/nan/nan_i.h
 create mode 100644 tests/hwsim/test_nan.py
 rename wpa_supplicant/{nan_usd.c => nan_supplicant.c} (52%)
 create mode 100644 wpa_supplicant/nan_supplicant.h
 delete mode 100644 wpa_supplicant/nan_usd.h

-- 
2.49.0




More information about the Hostap mailing list