[RFC PATCH 32/34] wpa_cli support for PR discovery and PR secure negotiation
Peddolla Harshavardhan Reddy
peddolla at qti.qualcomm.com
Thu May 15 00:17:55 PDT 2025
Signed-off-by: Peddolla Harshavardhan Reddy <peddolla at qti.qualcomm.com>
---
wpa_supplicant/wpa_cli.c | 37 +++++++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/wpa_supplicant/wpa_cli.c b/wpa_supplicant/wpa_cli.c
index 2ab291712..87523342b 100644
--- a/wpa_supplicant/wpa_cli.c
+++ b/wpa_supplicant/wpa_cli.c
@@ -3277,8 +3277,31 @@ static int wpa_cli_cmd_pasn_deauth(struct wpa_ctrl *ctrl, int argc,
return wpa_cli_cmd(ctrl, "PASN_DEAUTH", 1, argc, argv);
}
+static int wpa_cli_cmd_pr_pasn_start(struct wpa_ctrl *ctrl, int argc,
+ char *argv[])
+{
+ return wpa_cli_cmd(ctrl, "PR_PASN_START", 4, argc, argv);
+}
+
+static int wpa_cli_cmd_pr_set_dik_context(struct wpa_ctrl *ctrl, int argc,
+ char *argv[])
+{
+ return wpa_cli_cmd(ctrl, "PR_SET_DIK_CONTEXT", 1, argc, argv);
+}
+
+static int wpa_cli_cmd_pr_clear_dik_context(struct wpa_ctrl *ctrl, int argc,
+ char *argv[])
+{
+ return wpa_ctrl_command(ctrl, "PR_CLEAR_DIK_CONTEXT");
+}
+
#endif /* CONFIG_PASN */
+static int wpa_cli_cmd_generate_new_mac(struct wpa_ctrl *ctrl, int argc,
+ char *argv[])
+{
+ return wpa_ctrl_command(ctrl, "NEW_RANDOM_MAC_ADDRESS");
+}
static int wpa_cli_cmd_mscs(struct wpa_ctrl *ctrl, int argc, char *argv[])
{
@@ -4079,7 +4102,17 @@ static const struct wpa_cli_cmd wpa_cli_commands[] = {
{ "pasn_deauth", wpa_cli_cmd_pasn_deauth, NULL,
cli_cmd_flag_none,
"bssid=<BSSID> = Remove PASN PTKSA state" },
+ { "pr_pasn_start", wpa_cli_cmd_pr_pasn_start, NULL,
+ cli_cmd_flag_none,
+ "bssid=<BSSID> role=<ISTA/RSTA> ranging_type=<edca/ntb/ntb-open/ntb-secure> update=<allow for role update?>" },
+ { "pr_set_dik_context", wpa_cli_cmd_pr_set_dik_context, NULL,
+ cli_cmd_flag_none,
+ "self dik=<own_dik/peerdik> password=<global_pw/unique_pw> pmk=<pmk>" },
+ { "pr_clear_dik_context", wpa_cli_cmd_pr_clear_dik_context, NULL,
+ cli_cmd_flag_none, "= Clear all DIK contexts" },
#endif /* CONFIG_PASN */
+ { "new_random_mac_address", wpa_cli_cmd_generate_new_mac, NULL,
+ cli_cmd_flag_none, "= Generate new random mac addr" },
{ "mscs", wpa_cli_cmd_mscs, NULL,
cli_cmd_flag_none,
"<add|remove|change> [up_bitmap=<hex byte>] [up_limit=<integer>] [stream_timeout=<in TUs>] [frame_classifier=<hex bytes>] = Configure MSCS request" },
@@ -4101,14 +4134,14 @@ static const struct wpa_cli_cmd wpa_cli_commands[] = {
#ifdef CONFIG_NAN_USD
{ "nan_publish", wpa_cli_cmd_nan_publish, NULL,
cli_cmd_flag_none,
- "service_name=<name> [ttl=<time-to-live-in-sec>] [freq=<in MHz>] [freq_list=<comma separate list of MHz>] [srv_proto_type=<type>] [ssi=<service specific information (hexdump)>] [solicited=0] [unsolicited=0] [fsd=0] [p2p=1] = Publish NAN service" },
+ "service_name=<name> [ttl=<time-to-live-in-sec>] [freq=<in MHz>] [freq_list=<comma separate list of MHz>] [srv_proto_type=<type>] [ssi=<service specific information (hexdump)>] [solicited=0] [unsolicited=0] [fsd=0] [p2p=1] [pr=1] = Publish NAN service" },
{ "nan_cancel_publish", wpa_cli_cmd_nan_cancel_publish, NULL,
cli_cmd_flag_none, "publish_id=<id from NAN_PUBLISH> = Cancel NAN USD publish instance" },
{ "nan_update_publish", wpa_cli_cmd_nan_update_publish, NULL,
cli_cmd_flag_none, "publish_id=<id from NAN_PUBLISH> [ssi=<service specific information (hexdump)> = Update publish" },
{ "nan_subscribe", wpa_cli_cmd_nan_subscribe, NULL,
cli_cmd_flag_none,
- "service_name=<name> [active=1] [ttl=<time-to-live-in-sec>] [freq=<in MHz>] [srv_proto_type=<type>] [ssi=<service specific information (hexdump)>] [p2p=1] = Subscribe to NAN service" },
+ "service_name=<name> [active=1] [ttl=<time-to-live-in-sec>] [freq=<in MHz>] [srv_proto_type=<type>] [ssi=<service specific information (hexdump)>] [p2p=1] [pr=1] = Subscribe to NAN service" },
{ "nan_cancel_subscribe", wpa_cli_cmd_nan_cancel_subscribe, NULL,
cli_cmd_flag_none, "subscribe_id=<id from NAN_PUBLISH> = Cancel NAN USD subscribe instance" },
{ "nan_transmit", wpa_cli_cmd_nan_transmit, NULL,
--
2.34.1
More information about the Hostap
mailing list