NAN: sta_exec_action MethodType,DataEnd
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
diff --git a/nan.c b/nan.c
index b524aa2..0fd3480 100644
--- a/nan.c
+++ b/nan.c
@@ -821,6 +821,42 @@
}
+static int sigma_nan_data_end(struct sigma_dut *dut, struct sigma_cmd *cmd)
+{
+ const char *nmf_security_config = get_param(cmd, "Security");
+ NanDataPathEndRequest req;
+ NanDebugParams cfg_debug;
+ int size;
+
+ memset(&req, 0, sizeof(NanDataPathEndRequest));
+ memset(&cfg_debug, 0, sizeof(NanDebugParams));
+ if (nmf_security_config) {
+ int nmf_security_config_val = 0;
+
+ cfg_debug.cmd = NAN_TEST_MODE_CMD_NAN_NMF_CLEAR_CONFIG;
+ if (strcasecmp(nmf_security_config, "open") == 0)
+ nmf_security_config_val = NAN_NMF_CLEAR_ENABLE;
+ else if (strcasecmp(nmf_security_config, "secure") == 0)
+ nmf_security_config_val = NAN_NMF_CLEAR_DISABLE;
+ memcpy(cfg_debug.debug_cmd_data,
+ &nmf_security_config_val, sizeof(int));
+ size = sizeof(u32) + sizeof(int);
+ sigma_dut_print(dut, DUT_MSG_INFO,
+ "%s: nmf_security_config_val -- cmd type = %d and command data = %d",
+ __func__, cfg_debug.cmd,
+ nmf_security_config_val);
+ nan_debug_command_config(0, global_interface_handle,
+ cfg_debug, size);
+ }
+
+ req.num_ndp_instances = 1;
+ req.ndp_instance_id[0] = global_ndp_instance_id;
+
+ nan_data_end(0, global_interface_handle, &req);
+ return 0;
+}
+
+
int config_post_disc_attr(void)
{
wifi_error ret;
@@ -1469,6 +1505,7 @@
memset(global_event_resp_buf, 0, sizeof(global_event_resp_buf));
memset(&global_nan_sync_stats, 0, sizeof(global_nan_sync_stats));
+ sigma_nan_data_end(dut, cmd);
nan_data_interface_delete(0, global_interface_handle, (char *) "nan0");
sigma_nan_disable(dut, conn, cmd);
}
@@ -1560,6 +1597,10 @@
sigma_nan_data_response(dut, conn, cmd);
send_resp(dut, conn, SIGMA_COMPLETE, "NULL");
}
+ if (strcasecmp(method_type, "DataEnd") == 0) {
+ sigma_nan_data_end(dut, cmd);
+ send_resp(dut, conn, SIGMA_COMPLETE, "NULL");
+ }
} else {
sigma_nan_config_enable(dut, conn, cmd);
snprintf(resp_buf, sizeof(resp_buf), "mac,"