[PATCH 00/71] NAN Data Path and Bootstrapping support

Andrei Otcheretianski andrei.otcheretianski at intel.com
Wed Apr 1 15:01:09 PDT 2026


This patch series adds NAN Data Path (NDP) and NAN Bootstrapping support
to wpa_supplicant. It includes schedule, data path, and bootstrapping
control interface APIs along with the corresponding nl80211 driver
interface. The series also contains bugfixes and adjustments to the NAN
module for proper integration with wpa_supplicant.

NAN PASN Pairing support will be sent in a separate patch series.

This series does not include nl80211_copy.h, which should be
synchronized separately with the latest wireless-next tree. Note that
wireless-next does not yet include support for NAN data path in
mac80211/mac80211_hwsim; this work is still under review (WIP by Miri
and Johannes).

As a result, the hwsim test patches in this series are expected to fail
and are marked as RFC. For testing this implementation, the
iwlwifi-next/mac80211_candidate kernel branch may be used.

Andrei Otcheretianski (58):
  NAN: Don't add empty SDEA in SDF frames
  NAN: Initialize pri_chan_bm for 20/40MHz in nan_get_chan_bm()
  NAN: Fix memory leak in schedule validation
  driver_nl80211: Add new NAN commands to nl80211_command_to_string()
  drivers: Define new NAN capabilities struct
  drivers: Add NAN scheduling APIs
  wpa_supplicant: Configure NAN capabilities to NAN module
  wpa_supplicant: Support NAN local schedule configuration
  wpa_supplicant: Support NAN_DATA interface
  NAN: Add a function to get peer NDC channel
  wpa_supplicant: Support NAN_NDP_REQUEST command
  wpa_supplicant: Handle NAF tx status
  wpa_supplicant: Register NAN data path callbacks
  driver_nl80211: Register for NAFs
  wpa_supplicant: Receive NAFs
  wpa_supplicant: Implement nan_get_chans() callback
  wpa_supplicant: Add NAN data path events
  wpa_supplicant: Add support for NDP_RESPONSE command
  wpa_supplicant: Support NAN_NDP_TERMINATE command
  crypto: Add pbkdf2_sha256() and pbkdf2_sha384() functions
  NAN: Add ND-PMK derivation API in nan_crypto.c
  wpa_supplicant: Init NAN security configurations
  wpa_supplicant: Add security parameters to NAN DP request and response
  ctrl_iface: Add command to dump peer schedule
  ctrl_iface: Support dumping NAN peer capabilities
  NAN_DE: Add a callback for additional attributes
  NAN: Make nan_add_dev_capa_attr() available outside of NAN module
  wpa_supplicant: Implement NAN DE's add_extra_attrs() callback
  wpa_supplicant: Support NDP setup with PMK
  wpa_supplicant: Add NAN config to disallow freqs and limit bandwidth
  NAN: Parse device attributes from SDF frames
  NAN: Make ndp_connected() callback return int
  NAN: Configure peer NMI station and schedule
  NAN: Add an API to convert nan_sched_chan struct to channel entry
  wpa_supplicant: Set chan_entry field in local NAN schedule
  wpa_supplicant: Implement NAN peer configuration and scheduling
  NAN: Indicate if new keys are derived or previous NDP exists
  NAN: Add API to get peer elements
  drivers: Add nmi_addr field to hostapd_sta_add_params
  wpa_supplicant: Configure NAN data station
  nl80211: Report NAN scheduling capabilities
  wpa_supplicant: Set availability attribute in NAN schedule config
  wpa_cli: Add NAN data path commands
  tests: Add get_iface_addr() to wpasupplicant.py
  tests: Add NAN data path tests
  defs: Add NAN bootstrap definitions
  NAN: Support publishing NPBA in SDF frames
  NAN: Pass the entire frame in follow up receive callbacks
  NAN: Add a DE API to query the bootstrap methods of a service
  NAN: Add bootstrapping configuration and callbacks definitions
  NAN: Extend transmit function to allow additional NAN attributes
  wpa_supplicant: Implement NAN bootstrap callbacks and configuration
  NAN: Parse and store peer bootstrap information
  NAN: Implement bootstrapping
  wpa_supplicant: Forward follow up SDFs to NAN module
  wpa_supplicant: Support NAN_BOOTSTRAP command
  NAN: Report supported bootstrapping methods in NAN_PEER_INFO
  tests: Add NAN bootstrapping hwsim testing

Avraham Stern (3):
  NAN: Move some functions to nan_util.c
  NAN: Pass local schedule as a parameter to
    nan_configure_peer_schedule()
  NAN: Make the potential entries in NAN availability attribute optional

Daniel Gabay (3):
  nl80211: use nl80211_cmd_msg in sta_add/remove to support NAN
    interfaces
  nl80211: don't fill empty supported rates in sta_add for NAN
  wpa_supplicant: Manage NDI operstate using per-interface NDP refcount

Ilan Peer (7):
  NAN: Add an API to delete all NDPs of a specific peer
  NAN: Configure peer even if there is not common schedule with it
  NAN: Fix setting dialog token in NDP setup
  nl80211: Parse NAN PHY capabilities as reported by the kernel
  nl80211: Extend add/set station command to support NDI
  nl80211: Add support for sending NAN schedule commands
  nl80211: Support adding stations on NAN interface

 src/ap/nan_usd_ap.c                |    5 +-
 src/common/nan_de.c                |  106 +-
 src/common/nan_de.h                |   21 +-
 src/common/nan_defs.h              |   36 +
 src/common/wpa_ctrl.h              |    7 +
 src/crypto/crypto_openssl.c        |   30 +
 src/crypto/sha256.h                |    3 +-
 src/crypto/sha384.h                |    2 +
 src/drivers/driver.h               |  212 ++-
 src/drivers/driver_nl80211.c       |  457 ++++-
 src/drivers/driver_nl80211_capa.c  |  247 ++-
 src/drivers/driver_nl80211_event.c |    5 +
 src/nan/nan.c                      |  372 +++-
 src/nan/nan.h                      |  118 +-
 src/nan/nan_bootstrap.c            |  715 ++++++++
 src/nan/nan_crypto.c               |   24 +
 src/nan/nan_i.h                    |   67 +-
 src/nan/nan_module_tests.c         |   82 +-
 src/nan/nan_ndl.c                  |   91 +-
 src/nan/nan_util.c                 |  263 ++-
 tests/hwsim/test_nan.py            |  459 ++++-
 tests/hwsim/wpasupplicant.py       |   18 +
 wpa_supplicant/Makefile            |    1 +
 wpa_supplicant/ctrl_iface.c        |   37 +
 wpa_supplicant/driver_i.h          |   24 +
 wpa_supplicant/events.c            |   29 +-
 wpa_supplicant/nan_supplicant.c    | 2629 ++++++++++++++++++++++++++--
 wpa_supplicant/nan_supplicant.h    |   21 +
 wpa_supplicant/notify.c            |   28 +
 wpa_supplicant/notify.h            |    7 +
 wpa_supplicant/wpa_cli.c           |   62 +
 wpa_supplicant/wpa_supplicant.c    |    4 +-
 wpa_supplicant/wpa_supplicant_i.h  |   15 +-
 33 files changed, 5777 insertions(+), 420 deletions(-)
 create mode 100644 src/nan/nan_bootstrap.c

-- 
2.53.0




More information about the Hostap mailing list