[RFC v2 75/99] ctrl_iface: Support dumping NAN peer capabilities
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Tue Dec 23 03:52:19 PST 2025
This is useful for upper layers.
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski at intel.com>
---
wpa_supplicant/nan_supplicant.c | 37 +++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/wpa_supplicant/nan_supplicant.c b/wpa_supplicant/nan_supplicant.c
index 80eebbd009..7c088c1e05 100644
--- a/wpa_supplicant/nan_supplicant.c
+++ b/wpa_supplicant/nan_supplicant.c
@@ -1749,7 +1749,7 @@ int wpas_nan_ndp_terminate(struct wpa_supplicant *wpa_s, char *cmd)
}
-/* Format: NAN_PEER_INFO <addr> <schedule|potential> */
+/* Format: NAN_PEER_INFO <addr> <schedule|potential|capa> [map_id] */
int wpas_nan_peer_info(struct wpa_supplicant *wpa_s, const char *cmd,
char *reply, size_t reply_size)
{
@@ -1793,7 +1793,40 @@ int wpas_nan_peer_info(struct wpa_supplicant *wpa_s, const char *cmd,
}
ret = nan_peer_dump_pot_avail_to_buf(&pot_avail, reply, reply_size);
- } else {
+ } else if (os_strncmp(pos + 1, "capa", 4) == 0) {
+ int map_id = 0;
+ struct nan_device_capabilities capa;
+ int written = 0;
+
+ if (os_strchr(pos + 1, ' '))
+ map_id = atoi(os_strchr(pos + 1, ' ') + 1);
+
+ if (nan_peer_get_device_capabilities(wpa_s->nan, addr, map_id,
+ &capa) < 0) {
+ wpa_printf(MSG_DEBUG,
+ "NAN: Failed to get capabilities for peer "
+ MACSTR, MAC2STR(addr));
+ return -1;
+ }
+
+ written += wpa_scnprintf(reply + written, reply_size - written,
+ "supported_bands=0x%02x\n",
+ capa.supported_bands);
+ written += wpa_scnprintf(reply + written, reply_size - written,
+ "op_modes=0x%04x\n", capa.op_mode);
+ written += wpa_scnprintf(reply + written, reply_size - written,
+ "cdw_info=0x%04x\n", capa.cdw_info);
+ written += wpa_scnprintf(reply + written, reply_size - written,
+ "n_antennas=%d\n", capa.n_antennas);
+ written += wpa_scnprintf(reply + written, reply_size - written,
+ "channel_switch_time=%d\n",
+ capa.channel_switch_time);
+ written += wpa_scnprintf(reply + written, reply_size - written,
+ "capabilities=0x%02x\n", capa.capa);
+
+ ret = written;
+ }
+ else {
wpa_printf(MSG_DEBUG, "NAN: Unknown info type: %s", pos + 1);
return -1;
}
--
2.49.0
More information about the Hostap
mailing list