summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSreelakshmi Konamki <skonam@codeaurora.org>2016-02-26 16:44:04 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2016-04-17 18:12:03 -0700
commit720f2b7ac2d8d65e87d62013bd5e729d402723ea (patch)
treed5d1dd3d283ba1b7123d4597c992a5538820bde6
parent86d79203a7b6bd2280fcad32af32fca07c28b5ba (diff)
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
-rw-r--r--core/hdd/src/wlan_hdd_assoc.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index d6060f067b6e..e090491c0a69 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/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