[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