diff options
| author | Sreelakshmi Konamki <skonam@codeaurora.org> | 2016-02-26 16:44:04 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-04-17 18:12:03 -0700 |
| commit | 720f2b7ac2d8d65e87d62013bd5e729d402723ea (patch) | |
| tree | d5d1dd3d283ba1b7123d4597c992a5538820bde6 | |
| parent | 86d79203a7b6bd2280fcad32af32fca07c28b5ba (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.c | 20 |
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 |
