[PATCH 00/58] NAN: Add NAN Data Path (NDP) support
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Thu Feb 19 12:24:16 PST 2026
This patch series adds NAN Data Path (NDP) support to the existing
NAN Discovery Engine implementation.
The implementation extends the NAN module with:
- NDP and NDL (NAN Data Link) state machines for connection establishment
- Schedule management including availability attributes, time bitmaps,
and peer schedule negotiation.
- Security support with NAN-specific cryptographic functions, key derivation
etc.
- Parsing and building of NAN Action Frames (NAF) and all required NAN
attributes.
- APIs for NDP request/response/terminate, peer capabilities, schedule
retrieval, and cluster management
The series also includes module tests covering the crypto APIs and NDP flows.
Note, this patch series doesn't include any wpa_supplicant, driver and control
interface parts. This will be added in the next submission.
Andrei Otcheretianski (1):
NAN_DE: Fix SSI parsing in SDA (move to start)
Avraham Stern (1):
NAN: Add a function for adding the CSIA attribute
Ilan Peer (56):
NAN: Rename a NAN attribute name
NAN: Add Data path and scheduling definition
NAN: Add Data path security definitions
NAN: Change the return value of nan_de_rx_sdf()
NAN: Keep a list of known peers and their attributes
NAN: Add support for parsing NAN action frames
NAN: Add a function to add device capability attribute
NAN: Introduce NDP data structures
NAN: Support handling NDP state machine and operations
NAN: Define data structure to represent a NAN schedule.
NAN: Add support for parsing NAN availability attribute
NAN: Add support for parsing device capability attributes
NAN: Add support for parsing element container attributes
common: Add some helper functions
utils: Add few more functions to bitfield module
NAN: Add utility function to convert channel to bitmap
NAN: Initial support for NDL state machine and operations
NAN: Add support for building schedule related attributes
NAN: Add Tx status notification to NDL
NAN: Add support for adding availability attributes
NAN: Add potential availability entries
NAN: Add support for converting NAN schedule entries to availability
NAN: Add utility functions for NAN schedule validation
NAN: Add validation of peer availability
NAN: Properly set the NDL status in a response and confirm
NAN: Reject NDLs with overlapping time bitmaps
NAN: Add an API to update the cluster ID
NAN: Add send_naf() callback support
NAN: Add a function to add element container attribute
NAN: Add support for building a NAF
NAN: Process NAN Action frame
NAN: Add Tx status handling
NAN: Add API to request/response/terminate an NDP
NAN: Support handling NDP termination from peer in NDP SM
NAN: Add support for terminating an NDP
NAN: Add NAN cryptographic functions
NAN: Add support for NDP security Rx flow
NAN: Add support for adding security attributes
NAN: Add handling of pre Tx security operations
NAN: Support security processing on NDP done
NAN: Handle security in NDP processing
NAN: Add security configuration to NDP request/response
NAN: Add security support in NAF transmit flow
NAN: Extend the nan_ndp_action_notif() callback to include security
NAN: Add a callback to allow verifying publish instance ID
NAN: Add an API to get a peer device capabilities
NAN: Add an API to retrieve TK
NAN: Add an API to get committed/conditional schedule of a peer
NAN: Add an API to get the potential availability of a peer
NAN: Add an API to convert a schedule into a buffer
NAN: Support parsing peer device capability extension attribute
NAN: Add device capability extension attributes to NAFs
NAN: Add test utility for NAN module
NAN: Add crypto API tests
NAN: Add NAN module testing for secure state machine
NAN: Add testing coverage for multiple NDP setups
src/common/ieee802_11_common.c | 147 ++
src/common/ieee802_11_common.h | 5 +
src/common/ieee802_11_defs.h | 11 +
src/common/nan_de.c | 135 +-
src/common/nan_de.h | 4 +-
src/common/nan_defs.h | 463 ++++++-
src/nan/Makefile | 8 +-
src/nan/nan.c | 2025 ++++++++++++++++++++++++++++
src/nan/nan.h | 499 +++++++
src/nan/nan_crypto.c | 397 ++++++
src/nan/nan_i.h | 619 +++++++++
src/nan/nan_module_test_cases.c | 810 +++++++++++
src/nan/nan_module_tests.c | 1453 ++++++++++++++++++++
src/nan/nan_module_tests.h | 145 ++
src/nan/nan_ndl.c | 1783 ++++++++++++++++++++++++
src/nan/nan_ndp.c | 1015 ++++++++++++++
src/nan/nan_sec.c | 1235 +++++++++++++++++
src/nan/nan_util.c | 1691 +++++++++++++++++++++++
src/utils/bitfield.c | 158 +++
src/utils/bitfield.h | 12 +
src/utils/common.h | 2 +
src/utils/module_tests.h | 1 +
src/utils/utils_module_tests.c | 75 +-
wpa_supplicant/Makefile | 9 +
wpa_supplicant/nan_supplicant.c | 32 +-
wpa_supplicant/wpas_module_tests.c | 5 +
26 files changed, 12669 insertions(+), 70 deletions(-)
create mode 100644 src/nan/nan_crypto.c
create mode 100644 src/nan/nan_module_test_cases.c
create mode 100644 src/nan/nan_module_tests.c
create mode 100644 src/nan/nan_module_tests.h
create mode 100644 src/nan/nan_ndl.c
create mode 100644 src/nan/nan_ndp.c
create mode 100644 src/nan/nan_sec.c
create mode 100644 src/nan/nan_util.c
--
2.52.0
More information about the Hostap
mailing list