[PATCH 54/58] NAN: Add device capability extension attributes to NAFs

Andrei Otcheretianski andrei.otcheretianski at intel.com
Thu Feb 19 12:25:10 PST 2026


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 d0f1c6822a..416f96a21c 100644
--- a/src/nan/nan.c
+++ b/src/nan/nan.c
@@ -1079,6 +1079,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 73ecaa13bb..aa07f46f81 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 7de3500d0f..f95008f618 100644
--- a/src/nan/nan_i.h
+++ b/src/nan/nan_i.h
@@ -633,4 +633,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 /* NAN_I_H */
diff --git a/src/nan/nan_util.c b/src/nan/nan_util.c
index 70015474e5..76e8a4fc4f 100644
--- a/src/nan/nan_util.c
+++ b/src/nan/nan_util.c
@@ -387,6 +387,25 @@ int nan_add_csia(struct wpabuf *buf, u8 capab, size_t cs_list_len,
 }
 
 
+/*
+ * 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.52.0




More information about the Hostap mailing list