[RFC v2 88/99] wpa_cli: Add NAN data path commands

Andrei Otcheretianski andrei.otcheretianski at intel.com
Tue Dec 23 03:52:32 PST 2025


Add support for NAN data path and scheduling commands.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski at intel.com>
---
 wpa_supplicant/wpa_cli.c | 45 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/wpa_supplicant/wpa_cli.c b/wpa_supplicant/wpa_cli.c
index e0541e7fbc..17aa0bd13d 100644
--- a/wpa_supplicant/wpa_cli.c
+++ b/wpa_supplicant/wpa_cli.c
@@ -3418,6 +3418,41 @@ static int wpa_cli_cmd_nan_update_conf(struct wpa_ctrl *ctrl, int argc,
 	return wpa_cli_cmd(ctrl, "NAN_UPDATE_CONF", 0, argc, argv);
 }
 
+
+static int wpa_cli_cmd_nan_sched_config_map(struct wpa_ctrl *ctrl, int argc,
+					     char *argv[])
+{
+	return wpa_cli_cmd(ctrl, "NAN_SCHED_CONFIG_MAP", 1, argc, argv);
+}
+
+
+static int wpa_cli_cmd_nan_ndp_request(struct wpa_ctrl *ctrl, int argc,
+				       char *argv[])
+{
+	return wpa_cli_cmd(ctrl, "NAN_NDP_REQUEST", 4, argc, argv);
+}
+
+
+static int wpa_cli_cmd_nan_ndp_response(struct wpa_ctrl *ctrl, int argc,
+					char *argv[])
+{
+	return wpa_cli_cmd(ctrl, "NAN_NDP_RESPONSE", 3, argc, argv);
+}
+
+
+static int wpa_cli_cmd_nan_ndp_terminate(struct wpa_ctrl *ctrl, int argc,
+					 char *argv[])
+{
+	return wpa_cli_cmd(ctrl, "NAN_NDP_TERMINATE", 3, argc, argv);
+}
+
+
+static int wpa_cli_cmd_nan_peer_info(struct wpa_ctrl *ctrl, int argc,
+				     char *argv[])
+{
+	return wpa_cli_cmd(ctrl, "NAN_PEER_INFO", 2, argc, argv);
+}
+
 #endif /* CONFIG_NAN */
 
 
@@ -4208,6 +4243,16 @@ static const struct wpa_cli_cmd wpa_cli_commands[] = {
 	  "= set NAN configuration variable" },
 	{ "nan_update_conf", wpa_cli_cmd_nan_update_conf, NULL,
 	  cli_cmd_flag_none, "= update NAN configuration" },
+	{ "nan_sched_config_map", wpa_cli_cmd_nan_sched_config_map, NULL,
+	  cli_cmd_flag_none, "map_id=<id> [freq:bitmap_hex] = Configure NAN schedule. Clear if no bitmaps provided" },
+	{ "nan_ndp_request", wpa_cli_cmd_nan_ndp_request, NULL,
+	  cli_cmd_flag_none, "handle=<id> ndi=<ifname> peer_nmi=<nmi> peer_id=<peer_instance_id> [ssi=<hexdata>] [qos=<slots:latency>] [csid = <cipher_suite> <password=<string>|pmk=<hex>>] = Request NAN data path" },
+	{ "nan_ndp_response", wpa_cli_cmd_nan_ndp_response, NULL,
+	  cli_cmd_flag_none, "accept|reject peer_nmi=<nmi> [reason_code=<reject_reason>] [ndi=<ifname> handle=<service_handle> init_ndi=<ndi> ndp_id=<id> [ssi=<hexdata>] [qos=<slots:latency>] [csid=<csid> <password=<string>|pmk=<hex>]] = Respond to NAN data path request" },
+	{ "nan_ndp_terminate", wpa_cli_cmd_nan_ndp_terminate, NULL,
+	  cli_cmd_flag_none, "peer_nmi=<nmi> init_ndi=<ndi> ndp_id=<id> = Terminate NAN data path" },
+	{ "nan_peer_info", wpa_cli_cmd_nan_peer_info, NULL,
+	  cli_cmd_flag_none, "<addr> <schedule|potential|capa> [map_id] = Get NAN peer information" },
 #endif /* CONFIG_NAN */
 	{ "new_random_mac_address", wpa_cli_cmd_generate_new_mac, NULL,
 	  cli_cmd_flag_none, "= Generate new random MAC address" },
-- 
2.49.0




More information about the Hostap mailing list