[RFC v2 46/99] NAN: Add an API to get a peer device capabilities

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


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

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

diff --git a/src/nan/nan.c b/src/nan/nan.c
index 4e3463a12d..6cd6c4c595 100644
--- a/src/nan/nan.c
+++ b/src/nan/nan.c
@@ -1671,3 +1671,29 @@ void nan_ndp_terminated(struct nan_data *nan, struct nan_peer *peer,
 	if (dl_list_empty(&peer->ndps) && !peer->ndp_setup.ndp)
 		nan_ndl_reset(nan, peer);
 }
+
+
+int nan_peer_get_device_capabilities(struct nan_data *nan, const u8 *addr,
+				     u8 map_id,
+				     struct nan_device_capabilities *capa)
+{
+	struct nan_dev_capa_entry *cur, *next;
+	struct nan_peer *peer;
+
+	if (!nan || !capa)
+		return -1;
+
+	peer = nan_get_peer(nan, addr);
+	if (!peer)
+		return -1;
+
+	dl_list_for_each_safe(cur, next, &peer->info.dev_capa,
+			      struct nan_dev_capa_entry, list) {
+		if (cur->map_id == map_id) {
+			*capa = cur->capa;
+			return 0;
+		}
+	}
+
+	return  -1;
+}
diff --git a/src/nan/nan.h b/src/nan/nan.h
index 017ded8d1a..15da8a5d36 100644
--- a/src/nan/nan.h
+++ b/src/nan/nan.h
@@ -447,4 +447,8 @@ int nan_action_rx(struct nan_data *nan, const struct ieee80211_mgmt *mgmt,
 int nan_tx_status(struct nan_data *nan, const u8 *dst, const u8 *data,
 		  size_t data_len, u8 acked);
 int nan_handle_ndp_setup(struct nan_data *nan, struct nan_ndp_params *params);
+
+int nan_peer_get_device_capabilities(struct nan_data *nan, const u8 *addr,
+				     u8 map_id,
+				     struct nan_device_capabilities *capa);
 #endif /* NAN_H */
-- 
2.49.0




More information about the Hostap mailing list