Procházet zdrojové kódy

qcacld-3.0: Fix to set ptk_installed to true in 11R roaming

qcacld-2.0 to qcacld-3.0 propagation

PTK exchange and install happens during preauthentication if key_mgmt is
FT-PSK. STA TL state moves to authenticated only if ptk_installed is true.
Currently ptk_installed is false after roaming due to which STA TL state
does not move to authenticated state and also does not enter BMPS.

To fix this issue, set ptk_installed to true in case of 11R roaming

Change-Id: I59e4466994e59b055246e86613315b0299b767a7
CRs-Fixed: 961555
Sreelakshmi Konamki před 9 roky
rodič
revize
720f2b7ac2
1 změnil soubory, kde provedl 18 přidání a 2 odebrání
  1. 18 2
      core/hdd/src/wlan_hdd_assoc.c

+ 18 - 2
core/hdd/src/wlan_hdd_assoc.c

@@ -1576,6 +1576,9 @@ static QDF_STATUS hdd_roam_set_key_complete_handler(hdd_adapter_t *pAdapter,
 	bool fConnected = false;
 	QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE;
 	hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
+	tHalHandle hal_ctx = WLAN_HDD_GET_HAL_CTX(pAdapter);
+	tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal_ctx);
+
 	ENTER();
 
 	if (NULL == pRoamInfo) {
@@ -1623,10 +1626,23 @@ static QDF_STATUS hdd_roam_set_key_complete_handler(hdd_adapter_t *pAdapter,
 			 * At this time we don't handle the state in detail.
 			 * Related CR: 174048 - TL not in authenticated state
 			*/
-			if (eCSR_ROAM_RESULT_AUTHENTICATED == roamResult)
+			if (eCSR_ROAM_RESULT_AUTHENTICATED == roamResult) {
 				pHddStaCtx->conn_info.gtk_installed = true;
-			else
+				/*
+				 * PTK exchange happens in preauthentication
+				 * itself if key_mgmt is FT-PSK, ptk_installed
+				 * was false as there is no set PTK after
+				 * roaming. STA TL state moves to authenticated
+				 * only if ptk_installed is true. So, make
+				 * ptk_installed to true in case of 11R roaming.
+				 */
+				if (csr_neighbor_roam_is11r_assoc(mac_ctx,
+							pAdapter->sessionId))
+					pHddStaCtx->conn_info.ptk_installed =
+						true;
+			} else {
 				pHddStaCtx->conn_info.ptk_installed = true;
+			}
 
 			/* In WPA case move STA to authenticated when
 			 * ptk is installed.Earlier in WEP case STA