[RFC v2 52/99] NAN: Add device capability extension attributes to NAFs

Andrei Otcheretianski andrei.otcheretianski at intel.com
Tue Dec 23 03:51:56 PST 2025


From: Ilan Peer <ilan.peer at intel.com>

Support configuring the device support for 6 GHz regulatory
and the device support for pairing and NPK/NIK caching and
add the device capability extension attribute to the NAFs.

Signed-off-by: Ilan Peer <ilan.peer at intel.com>
---
 src/nan/nan.c      |  1 +
 src/nan/nan.h      |  4 ++++
 src/nan/nan_i.h    |  2 ++
 src/nan/nan_util.c | 19 +++++++++++++++++++
 4 files changed, 26 insertions(+)

diff --git a/src/nan/nan.c b/src/nan/nan.c
index 5e4a4573a6..350c2fd36c 100644
--- a/src/nan/nan.c
+++ b/src/nan/nan.c
@@ -1073,6 +1073,7 @@ static int nan_action_build(struct nan_data *nan, struct nan_peer *peer,
 	nan_action_build_header(nan, buf, subtype);
 
 	nan_add_dev_capa_attr(nan, buf);
+	nan_add_dev_capa_ext_attr(nan, buf);
 
 	ret = nan_ndp_add_ndp_attr(nan, peer, buf);
 	if (ret)
diff --git a/src/nan/nan.h b/src/nan/nan.h
index 1b6d99aaf1..91dc1b4464 100644
--- a/src/nan/nan.h
+++ b/src/nan/nan.h
@@ -393,6 +393,10 @@ struct nan_config {
 
 	struct nan_device_capabilities dev_capa;
 
+	/* See Table 141 (Capability Info Field) */
+	u8 dev_capa_ext_reg_info;
+	u8 dev_capa_ext_pairing_npk_caching;
+
 	/**
 	 * start - Start NAN
 	 * @ctx: Callback context from cb_ctx
diff --git a/src/nan/nan_i.h b/src/nan/nan_i.h
index 7ea0277929..227e5465f5 100644
--- a/src/nan/nan_i.h
+++ b/src/nan/nan_i.h
@@ -603,4 +603,6 @@ int nan_sec_get_tk(struct nan_data *nan, struct nan_peer *peer,
 		   const u8 *peer_ndi, const u8 *local_ndi,
 		   u8 *tk, size_t *tk_len,
 		   enum nan_cipher_suite_id *csid);
+void nan_add_dev_capa_ext_attr(struct nan_data *nan, struct wpabuf *buf);
+
 #endif
diff --git a/src/nan/nan_util.c b/src/nan/nan_util.c
index 9081c225d6..7c143befb2 100644
--- a/src/nan/nan_util.c
+++ b/src/nan/nan_util.c
@@ -335,6 +335,25 @@ void nan_add_dev_capa_attr(struct nan_data *nan, struct wpabuf *buf)
 }
 
 
+/*
+ * nan_add_dev_capa_ext_attr - Add NAN device capability extension attribute
+ *
+ * @nan: NAN module context from nan_init()
+ * @buf: wpabuf to which the attribute would be added
+ */
+void nan_add_dev_capa_ext_attr(struct nan_data *nan, struct wpabuf *buf)
+{
+	if (!nan->cfg->dev_capa_ext_reg_info &&
+	    !nan->cfg->dev_capa_ext_pairing_npk_caching)
+		return;
+
+	wpabuf_put_u8(buf, NAN_ATTR_DCEA);
+	wpabuf_put_le16(buf, 2);
+	wpabuf_put_u8(buf, nan->cfg->dev_capa_ext_reg_info);
+	wpabuf_put_u8(buf, nan->cfg->dev_capa_ext_pairing_npk_caching);
+}
+
+
 /**
  * nan_chan_to_chan_idx_map - convert an op_class and chan to channel
  * bitmap
-- 
2.49.0




More information about the Hostap mailing list