[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