[PATCH 00/97] NAN: Group keys support, schedule update and more

Andrei Otcheretianski andrei.otcheretianski at intel.com
Tue Apr 28 13:05:01 PDT 2026


This series adds various NAN improvements and bug fixes:

- GTK/IGTK/BIGTK support
- NDPE support
- NAN schedule update handling: deferred schedule updates, peer schedule
  tracking and ULW support.
- Max idle period support for NDL
- NAN channel evacuation event handling
- Follow up status tracking
- Password hex support in NDP and pairing
- Various fixes and improvements

The test patches are marked as RFC since full testing requires kernel
NAN data path support which is not yet complete in wireless-next.
As in previous series, iwlwifi-next/mac80211_candidate kernel can be
used for testing.

Andrei Otcheretianski (28):
  tests: Add get_iface_addr() to wpasupplicant.py
  tests: Add NAN data path, bootstrapping and pairing tests
  wpa_supplicant: Don't send empty NAN maps to the kernel
  NAN: Fix A3 in multicast solicited replies
  NAN: Don't skip zero preference potential entries
  NAN: Add locally_generated parameter to ndp_disconnected callback
  NAN: Send NAF with rejection on schedule validation error
  NAN: Fix NDL attribute parsing
  NAN: Skip duplicate NDI station add for second NDP with same peer
  NAN: Only remove NDI station when no other NDP uses the same peer NDI
  tests: NAN: Add tests for 2 NDPs with same peer
  NAN: Wait longer timeout on counter response
  NAN: Send NDP termination on timeout
  NAN: Indicate if NDP disconnection is due to a failure
  tests: Verify NAN-NDP-DISCONNECTED failure flag
  NAN: Implement spec-compliant security strength comparison
  NAN: Clear peer security info on flush
  NAN: Remove stale sec entry on NDP termination
  tests: Support setting TTL for NAN service discovery
  tests: Add NDP reconnection after termination test
  NAN: Terminate all NDPs with peer if security upgrade fails
  NAN: Skip peer schedule update when local schedule update is pending
  wpa_supplicant: Add NAN_STATUS command
  wpa_supplicant: List NDPs in NAN_PEER_INFO command
  wpa_supplicant: Support overriding NAN potential availability
  tests: Add nan_override_potential_availability test
  NAN: Add data_path parameter to NAN_PUBLISH command
  tests: Add data_path flag verification to NDP tests

Avraham Stern (45):
  NAN: Add security cabapilities to NAN module
  NAN: Add and implement set_group_key() callback
  NAN: Add and implement get_seqnum() callback
  NAN: Add IGTK KDE to NDP setup messages
  NAN: Add BIGTK KDE to NDP setup messages
  NAN: Process IGTK KDE from NDP setup messages
  NAN: Process BIGTK KDE from NDP setup messages
  nl80211: Allow deleting group Rx key with specified address
  nl80211: Modify sta_set_flags() to support non-netdev interfaces
  NAN: Remove peer's IGTK/BIGTK when a peer is removed
  NAN: Add an option to set GTK required for a service
  NAN: Add GTK data to NDP security parameters
  NAN: Add GTK cipher suite to NDP setup messages
  wpa_supplicant: Add an option to set the GTK cipher suite for NDP
    setup
  NAN: Modify get_seqnum() to support NDI group keys
  NAN: Add the GTK KDE to key data field when GTK is required
  NAN: Parse the GTK KDE from key data
  wpa_supplicant: Set the GTK for NDP response
  NAN: Add group keys to NDP connected data
  NAN: Pass struct as parameter to wpas_nan_add_ndi_sta()
  NAN: Add peer's GTK ID to NDP disconnected callback
  wpa_supplicant: Install/remove group keys on NDI interface
  NAN: Add an API to set the cipher suite for group keys
  wpa_supplicant: Add support for setting the NAN group keys cipher
    suite
  NAN: Set GTK/IGTK/BIGTK support from driver capabilities
  NAN: Add a function to check if there are active NDPs
  nl80211: Add an option for deferred NAN schedule update
  NAN: Modify nan_peer_schedule_intersects() to return the common slots
  NAN: Move local schedule from NDL data to global NAN data
  NAN: Move NDL QoS checks into a function
  NAN: Update peer schedule when the peer advertises new availability
    map
  wpa_supplicant: Implement NAN schedule changed callback
  wpa_supplicant: Request a deferred NAN schedule if there are active
    NDPs
  NAN: Update peers schedule when local schedule changes
  wpa_supplicant: Handle NAN schedule update notification
  nl80211: Handle NL80211_CMD_NAN_SCHED_UPDATE_DONE event
  wpa_supplicant: Handle NAN ULW notification
  nl80211: Handle NAN ULW attribute notification
  NAN: Add Unaligned Schedule attribute to the list of parsed attributes
  NAN: Update peer schedule when ULW attributes change
  PASN: Include extra IEs in reject frame
  wpa_supplicant: Send response when pairing is aborted
  wpa_supplicant: NAN: Support password hex in NDP request/response
  wpa_supplicant: Add support for password hex in pairing request
  tests: Add NAN NDP test with password as hex

Ilan Peer (24):
  NAN: Add definitions and parsing for NDPE
  NAN: Add support for NDPE
  NAN: Add support for communicating the IPv6 local address
  NAN: Support configuration and notification of IPv6 local identifier
  tests: Add coverage for interface ID in NDP
  driver: Extend the NAN capabilities to indicate beacon protection
  NAN: Add a testing configuration for protected NAN multicast follow up
  NAN: Control the support for beacon protection
  wpa_supplicant: Support configuring MAC address on interface creation
  tests: Test NAN management interface creation with an address
  NAN: Add support for including max idle period in NDL
  NAN: Support getting peer max idle period
  NAN: Add handling of max idle period
  wpa_supplicant: NAN: Add support for max NDL idle period
  tests: Verify NAN max idle period
  NAN: Extend Tx status reporting
  NAN: Add support for tracking the status of transmit requests
  wpa_supplicant: Support tracking NAN transmit requests
  tests: Add NAN test to cover followup status tracking
  tests: Test NAN broadcast traffic once NDP has been established
  tests: Add NAN NDP establishment with GTK, IGTK and BIGTK
  tests: Add testing coverage for protected multicast SDF
  driver: Add support for NAN channel evacuation event
  wpa_supplicant: Notify control interface about NAN channel evacuation

 src/ap/nan_usd_ap.c                     |    2 +-
 src/common/nan_de.c                     |  261 ++++-
 src/common/nan_de.h                     |   25 +-
 src/common/nan_defs.h                   |   56 +-
 src/common/wpa_common.h                 |    7 +
 src/common/wpa_ctrl.h                   |    8 +
 src/drivers/driver.h                    |   60 +
 src/drivers/driver_common.c             |    3 +
 src/drivers/driver_nl80211.c            |   16 +-
 src/drivers/driver_nl80211_capa.c       |   16 +
 src/drivers/driver_nl80211_event.c      |   71 ++
 src/nan/nan.c                           | 1004 ++++++++++++++++-
 src/nan/nan.h                           |  133 ++-
 src/nan/nan_i.h                         |   80 +-
 src/nan/nan_module_tests.c              |   10 +-
 src/nan/nan_ndl.c                       |  184 ++--
 src/nan/nan_ndp.c                       |  243 +++-
 src/nan/nan_pairing.c                   |  130 ++-
 src/nan/nan_sec.c                       |  506 ++++++++-
 src/nan/nan_util.c                      |  106 +-
 src/pasn/pasn_responder.c               |    5 +-
 tests/hwsim/test_nan.py                 | 1250 ++++++++++++++++++++-
 tests/hwsim/wpasupplicant.py            |   22 +-
 wpa_supplicant/ctrl_iface.c             |   73 +-
 wpa_supplicant/dbus/dbus_new_handlers.c |    2 +-
 wpa_supplicant/driver_i.h               |    9 +
 wpa_supplicant/events.c                 |   10 +
 wpa_supplicant/nan_supplicant.c         | 1341 +++++++++++++++++++----
 wpa_supplicant/nan_supplicant.h         |   25 +-
 wpa_supplicant/notify.c                 |   74 +-
 wpa_supplicant/notify.h                 |   15 +-
 wpa_supplicant/wpa_cli.c                |   17 +-
 wpa_supplicant/wpa_supplicant_i.h       |    8 +
 33 files changed, 5254 insertions(+), 518 deletions(-)

-- 
2.53.0




More information about the Hostap mailing list