Browse Source

qcacmn: Exchange CSID cap and GTK param

To support group NDP security, WiFi-HAL and firmware introduces
two new parameters (csid_cap and gtk_required) in NDP initiator
request, responder requestor and NDP indication event.

Host driver will retrieve the CSID capabilities and GTK parameter
and parse it to firmware in NDP Initiator and Responder request
TLV. Also, driver extract these parameters from NDP indication TLV
and will pass to Wifi-HAL in vendor event.

Change-Id: I23483141219e4224bb76ed209aee46e131eaa747
CRs-Fixed: 3583154
Rahul Gusain 1 năm trước cách đây
mục cha
commit
94ce1bb20d
1 tập tin đã thay đổi với 15 bổ sung2 xóa
  1. 15 2
      wmi/src/wmi_unified_nan_tlv.c

+ 15 - 2
wmi/src/wmi_unified_nan_tlv.c

@@ -406,6 +406,8 @@ static QDF_STATUS nan_ndp_initiator_req_tlv(wmi_unified_t wmi_handle,
 	cmd->nan_csid = ndp_req->ncs_sk_type;
 	cmd->nan_passphrase_len = ndp_req->passphrase.passphrase_len;
 	cmd->nan_servicename_len = ndp_req->service_name.service_name_len;
+	cmd->nan_csid_cap = ndp_req->ndp_add_params.csid_cap;
+	cmd->nan_gtk_required = ndp_req->ndp_add_params.gtk;
 
 	ch_tlv = (wmi_channel *)&cmd[1];
 	WMITLV_SET_HDR(ch_tlv, WMITLV_TAG_STRUC_wmi_channel,
@@ -462,6 +464,9 @@ static QDF_STATUS nan_ndp_initiator_req_tlv(wmi_unified_t wmi_handle,
 		 cmd->ndp_cfg_len, cmd->ndp_app_info_len, cmd->nan_pmk_len,
 		 cmd->nan_passphrase_len, cmd->nan_servicename_len);
 
+	wmi_debug("ndp_csid_cap %d, ndp_gtk_required %d", cmd->nan_csid_cap,
+		  cmd->nan_gtk_required);
+
 	wmi_mtrace(WMI_NDP_INITIATOR_REQ_CMDID, cmd->vdev_id, 0);
 	status = wmi_unified_cmd_send(wmi_handle, buf, len,
 				      WMI_NDP_INITIATOR_REQ_CMDID);
@@ -530,6 +535,8 @@ static QDF_STATUS nan_ndp_responder_req_tlv(wmi_unified_t wmi_handle,
 	cmd->nan_csid = req->ncs_sk_type;
 	cmd->nan_passphrase_len = req->passphrase.passphrase_len;
 	cmd->nan_servicename_len = req->service_name.service_name_len;
+	cmd->nan_csid_cap = req->ndp_add_params.csid_cap;
+	cmd->nan_gtk_required = req->ndp_add_params.gtk;
 
 	tlv_ptr = (uint8_t *)&cmd[1];
 	WMITLV_SET_HDR(tlv_ptr, WMITLV_TAG_ARRAY_BYTE, ndp_cfg_len);
@@ -584,6 +591,9 @@ static QDF_STATUS nan_ndp_responder_req_tlv(wmi_unified_t wmi_handle,
 		 cmd->nan_pmk_len, cmd->nan_passphrase_len,
 		 cmd->nan_servicename_len);
 
+	wmi_debug("ndp_csid_cap %d, ndp_gtk_required %d", cmd->nan_csid_cap,
+		  cmd->nan_gtk_required);
+
 	wmi_mtrace(WMI_NDP_RESPONDER_REQ_CMDID, cmd->vdev_id, 0);
 	status = wmi_unified_cmd_send(wmi_handle, buf, len,
 				      WMI_NDP_RESPONDER_REQ_CMDID);
@@ -813,13 +823,15 @@ static QDF_STATUS extract_ndp_ind_tlv(wmi_unified_t wmi_handle,
 	rsp->ndp_instance_id = fixed_params->ndp_instance_id;
 	rsp->role = fixed_params->self_ndp_role;
 	rsp->policy = fixed_params->accept_policy;
+	rsp->ndp_add_params.csid_cap = fixed_params->nan_csid_cap;
+	rsp->ndp_add_params.gtk = fixed_params->nan_gtk_required;
 
 	WMI_MAC_ADDR_TO_CHAR_ARRAY(&fixed_params->peer_ndi_mac_addr,
 				rsp->peer_mac_addr.bytes);
 	WMI_MAC_ADDR_TO_CHAR_ARRAY(&fixed_params->peer_discovery_mac_addr,
 				rsp->peer_discovery_mac_addr.bytes);
 
-	wmi_debug("WMI_NDP_INDICATION_EVENTID(0x%X) received. vdev %d service_instance %d, ndp_instance %d, role %d, policy %d csid: %d, scid_len: %d, peer_addr: "QDF_MAC_ADDR_FMT", peer_disc_addr: "QDF_MAC_ADDR_FMT" ndp_cfg - %d bytes ndp_app_info - %d bytes",
+	wmi_debug("WMI_NDP_INDICATION_EVENTID(0x%X) received. vdev %d service_instance %d, ndp_instance %d, role %d, policy %d csid: %d, scid_len: %d, peer_addr: "QDF_MAC_ADDR_FMT", peer_disc_addr: "QDF_MAC_ADDR_FMT" ndp_cfg - %d bytes ndp_app_info - %d bytes ndp_csid_caps %d, ndp_gtk_required %d",
 		 WMI_NDP_INDICATION_EVENTID, fixed_params->vdev_id,
 		 fixed_params->service_instance_id,
 		 fixed_params->ndp_instance_id, fixed_params->self_ndp_role,
@@ -828,7 +840,8 @@ static QDF_STATUS extract_ndp_ind_tlv(wmi_unified_t wmi_handle,
 		 QDF_MAC_ADDR_REF(rsp->peer_mac_addr.bytes),
 		 QDF_MAC_ADDR_REF(rsp->peer_discovery_mac_addr.bytes),
 		 fixed_params->ndp_cfg_len,
-		 fixed_params->ndp_app_info_len);
+		 fixed_params->ndp_app_info_len, rsp->ndp_add_params.csid_cap,
+		 rsp->ndp_add_params.gtk);
 
 	rsp->ncs_sk_type = fixed_params->nan_csid;
 	if (event->ndp_cfg) {