Browse Source

qcacld-3.0: Update RSN intersect capability to FW

A new capability OCVC (Operating Channel Validation Capable) bit in RSN
capabilities provides mutual verification between peers (e.g., AP and
STA) of the current operating channel during security-related exchanges
and channel switches to defend against multi-channel MITM attacks.
FW enables OCV feature only if AP and STA both support it, hence update
RSN intersect capability to FW.

Change-Id: Iedc67287ae6c56c1d609ae599fbb591cdfcb4aa8
CRs-Fixed: 2721176
Abhishek Ambure 4 years ago
parent
commit
38a8f8bc4e
1 changed files with 24 additions and 0 deletions
  1. 24 0
      core/sme/src/csr/csr_api_roam.c

+ 24 - 0
core/sme/src/csr/csr_api_roam.c

@@ -7147,6 +7147,29 @@ static void csr_update_tx_pwr_to_fw(struct mac_context *mac_ctx,
 	}
 }
 
+static void csr_update_rsn_intersect_to_fw(struct wlan_objmgr_psoc *psoc,
+					   uint8_t vdev_id)
+{
+	uint32_t rsn_val = 0;
+	struct wlan_objmgr_vdev *vdev;
+
+	vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
+						    WLAN_LEGACY_SME_ID);
+
+	if (!vdev) {
+		sme_err("Invalid vdev obj for vdev id %d", vdev_id);
+		return;
+	}
+
+	rsn_val = wlan_crypto_get_param(vdev, WLAN_CRYPTO_PARAM_RSN_CAP);
+	wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
+
+	if (wma_cli_set2_command(vdev_id, WMI_VDEV_PARAM_RSN_CAPABILITY,
+				 rsn_val, 0, VDEV_CMD))
+		sme_err("Failed to update WMI_VDEV_PARAM_RSN_CAPABILITY for vdev id %d",
+			vdev_id);
+}
+
 /**
  * csr_roam_process_join_res() - Process the Join results
  * @mac_ctx:          Global MAC Context
@@ -7557,6 +7580,7 @@ static void csr_roam_process_join_res(struct mac_context *mac_ctx,
 	}
 
 	csr_update_tx_pwr_to_fw(mac_ctx, session_id);
+	csr_update_rsn_intersect_to_fw(mac_ctx->psoc, session_id);
 	sme_free_join_rsp_fils_params(roam_info);
 	qdf_mem_free(roam_info);
 }