[PATCH 26/71] NAN_DE: Add a callback for additional attributes
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Wed Apr 1 15:01:35 PDT 2026
This will be used to publish device capabilities and availability maps
in SDFs.
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski at intel.com>
---
src/common/nan_de.c | 7 +++++++
src/common/nan_de.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/src/common/nan_de.c b/src/common/nan_de.c
index 4ee1d6d7ed..abcabfe407 100644
--- a/src/common/nan_de.c
+++ b/src/common/nan_de.c
@@ -308,6 +308,10 @@ static void nan_de_tx_sdf(struct nan_de *de, struct nan_de_service *srv,
if (srv->elems)
len += NAN_ATTR_HDR_LEN + 1 + wpabuf_len(srv->elems);
+ /* Reserve some additional space for extra attributes */
+ if (de->cb.add_extra_attrs)
+ len += 256;
+
buf = nan_de_alloc_sdf(len);
if (!buf)
return;
@@ -375,6 +379,9 @@ static void nan_de_tx_sdf(struct nan_de *de, struct nan_de_service *srv,
/* Use per-service source address if configured, otherwise use NMI */
forced_addr = srv->forced_addr_set ? srv->forced_addr : de->nmi;
+ if (de->cb.add_extra_attrs)
+ de->cb.add_extra_attrs(de->cb.ctx, buf);
+
nan_de_tx(de, srv->sync ? 0 : srv->freq, srv->sync ? 0 : wait_time,
dst, forced_addr, a3, buf);
wpabuf_free(buf);
diff --git a/src/common/nan_de.h b/src/common/nan_de.h
index 3f8f124cc5..ea47097f3e 100644
--- a/src/common/nan_de.h
+++ b/src/common/nan_de.h
@@ -64,6 +64,7 @@ struct nan_callbacks {
void (*process_pr_usd_elems)(void *ctx, const u8 *buf,
u16 buf_len, const u8 *peer_addr,
unsigned int freq);
+ void (*add_extra_attrs)(void *ctx, struct wpabuf *buf);
};
bool nan_de_is_nan_network_id(const u8 *addr);
--
2.53.0
More information about the Hostap
mailing list