NAN: MethodType,Publish and DataPath arguments
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
diff --git a/nan.c b/nan.c
index 90bd885..c5d2d71 100644
--- a/nan.c
+++ b/nan.c
@@ -1033,6 +1033,9 @@
const char *tx_match_filter = get_param(cmd, "txMatchFilter");
const char *sdftx_dw = get_param(cmd, "SDFTxDW");
const char *discrange_ltd = get_param(cmd, "DiscRangeLtd");
+ const char *ndp_enable = get_param(cmd, "DataPathFlag");
+ const char *ndp_type = get_param(cmd, "DataPathType");
+ const char *data_path_security = get_param(cmd, "datapathsecurity");
NanPublishRequest req;
int filter_len_rx = 0, filter_len_tx = 0;
u8 input_rx[NAN_MAX_MATCH_FILTER_LEN];
@@ -1119,10 +1122,42 @@
req.service_name_len = strlen(service_name);
}
+ if (ndp_enable) {
+ if (strcasecmp(ndp_enable, "enable") == 0)
+ req.sdea_params.config_nan_data_path = 1;
+ else
+ req.sdea_params.config_nan_data_path = 0;
+
+ if (ndp_type)
+ req.sdea_params.ndp_type = atoi(ndp_type);
+
+ if (data_path_security) {
+ if (strcasecmp(data_path_security, "secure") == 0) {
+ req.sdea_params.security_cfg =
+ NAN_DP_CONFIG_SECURITY;
+ } else if (strcasecmp(data_path_security, "open") ==
+ 0) {
+ req.sdea_params.security_cfg =
+ NAN_DP_CONFIG_NO_SECURITY;
+ }
+ }
+
+ if (dut->nan_pmk_len == NAN_PMK_INFO_LEN) {
+ memcpy(&req.key_info.body.pmk_info.pmk[0],
+ &dut->nan_pmk[0], NAN_PMK_INFO_LEN);
+ req.key_info.body.pmk_info.pmk_len = NAN_PMK_INFO_LEN;
+ sigma_dut_print(dut, DUT_MSG_INFO, "%s: pmk len = %d",
+ __func__, req.key_info.body.pmk_info.pmk_len);
+ }
+ }
+
ret = nan_publish_request(0, global_interface_handle, &req);
if (ret != WIFI_SUCCESS)
send_resp(dut, conn, SIGMA_ERROR, "Unable to publish");
+ if (ndp_enable)
+ dut->ndp_enable = 1;
+
return 0;
}