[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