Quellcode durchsuchen

qcacmn: Support single PMK feature for AKM SAE_EXT_KEY

If host founds below all conditions are true:
1. Connected AP sends CCX IE in beacon/probe response
2. single PMK feature enabled via ini
   "sae_single_pmk_feature_enabled"
3. And current connection is SAE with AKM type
   WLAN_CRYPTO_KEY_MGMT_SAE_EXT_KEY or
   WLAN_CRYPTO_KEY_MGMT_SAE

Then host should mark connected AP supports
"single PMK feature" and update same to FW via RSO
command.

Change-Id: I696da4d2ca929e72ee5cff087a1411b492b03ce3
CRs-Fixed: 3803070
Abhinav Kumar vor 1 Jahr
Ursprung
Commit
67fa3a718c

+ 2 - 1
umac/mlme/connection_mgr/core/src/wlan_cm_connect.c

@@ -2262,7 +2262,8 @@ flush_single_pmk:
 	 */
 	if (prev_candidate && !use_same_candidate &&
 	    util_scan_entry_single_pmk(psoc, prev_candidate->entry) &&
-	    QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_SAE)) {
+	    (QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_SAE) ||
+	     QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_SAE_EXT_KEY))) {
 		pmksa_mac = &prev_candidate->entry->bssid;
 		cm_delete_pmksa_for_single_pmk_bssid(cm_ctx, pmksa_mac);
 

+ 2 - 1
umac/mlme/connection_mgr/core/src/wlan_cm_util.c

@@ -837,7 +837,8 @@ bool cm_is_cm_id_current_candidate_single_pmk(struct cnx_mgr *cm_ctx,
 		return is_single_pmk;
 
 	akm = wlan_crypto_get_param(cm_ctx->vdev, WLAN_CRYPTO_PARAM_KEY_MGMT);
-	if (!QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_SAE))
+	if (!(QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_SAE) ||
+	      QDF_HAS_PARAM(akm, WLAN_CRYPTO_KEY_MGMT_SAE_EXT_KEY)))
 		return is_single_pmk;
 
 	cm_req_lock_acquire(cm_ctx);