diff options
| author | Sreelakshmi Konamki <skonam@codeaurora.org> | 2016-09-12 18:38:10 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-09-21 17:07:42 -0700 |
| commit | bda5bbfcc667f7378b69e8fdc7181adbcc69e967 (patch) | |
| tree | 0e65376239cda6436f9452155a3aae5403335a9f | |
| parent | 69c44cd239ccd4ea64ffd707d2d898ae12a2e2fd (diff) | |
qcacld-3.0: Do not send RSO_START if bssid set in connect request
qcacld-2.0 to qcacld-3.0 propagation
Host should not allow roaming if bssid is set in connect request
and hence RSO_START should not be sent.
Add changes to not send RSO_START if bssid set in connect request.
Change-Id: I1037c60837a90472fee312e8654197ea7f68702e
CRs-Fixed: 1016886
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg80211.c | 2 | ||||
| -rw-r--r-- | core/sme/inc/csr_api.h | 1 | ||||
| -rw-r--r-- | core/sme/src/common/sme_api.c | 5 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 8 |
4 files changed, 16 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 06581e96d453..49bf0f87a73f 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -10591,8 +10591,10 @@ static int wlan_hdd_cfg80211_connect_start(hdd_adapter_t *pAdapter, qdf_mem_copy((void *)(pRoamProfile->SSIDs.SSIDList->SSID.ssId), ssid, ssid_len); + pRoamProfile->do_not_roam = false; if (bssid) { pRoamProfile->BSSIDs.numOfBSSIDs = 1; + pRoamProfile->do_not_roam = true; qdf_mem_copy((void *)(pRoamProfile->BSSIDs.bssid), bssid, QDF_MAC_ADDR_SIZE); /* diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 70e175cee25b..c68f20546ab7 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -967,6 +967,7 @@ typedef struct tagCsrRoamProfile { uint8_t beacon_tx_rate; tSirMacRateSet supp_rate_set; tSirMacRateSet extended_rate_set; + bool do_not_roam; } tCsrRoamProfile; #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 122e5839597b..cf838f0b41da 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -8937,6 +8937,7 @@ QDF_STATUS sme_config_fast_roaming(tHalHandle hal, uint8_t session_id, const bool is_fast_roam_enabled) { tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal); + tCsrRoamSession *session = CSR_GET_SESSION(mac_ctx, session_id); QDF_STATUS status; if (!mac_ctx->roam.configParam.isFastRoamIniFeatureEnabled) { @@ -8945,6 +8946,10 @@ QDF_STATUS sme_config_fast_roaming(tHalHandle hal, uint8_t session_id, return QDF_STATUS_SUCCESS; return QDF_STATUS_E_FAILURE; } + + if (is_fast_roam_enabled && session && session->pCurRoamProfile) + session->pCurRoamProfile->do_not_roam = false; + status = csr_neighbor_roam_update_fast_roaming_enabled(mac_ctx, session_id, is_fast_roam_enabled); if (!QDF_IS_STATUS_SUCCESS(status)) { diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 4465d1e6b640..9b9207374642 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -7209,6 +7209,7 @@ QDF_STATUS csr_roam_copy_profile(tpAniSirGlobal pMac, pDstProfile->wps_state = pSrcProfile->wps_state; pDstProfile->ieee80211d = pSrcProfile->ieee80211d; pDstProfile->sap_dot11mc = pSrcProfile->sap_dot11mc; + pDstProfile->do_not_roam = pSrcProfile->do_not_roam; qdf_mem_copy(&pDstProfile->Keys, &pSrcProfile->Keys, sizeof(pDstProfile->Keys)); #ifdef WLAN_FEATURE_11W @@ -17406,6 +17407,13 @@ csr_roam_offload_scan(tpAniSirGlobal mac_ctx, uint8_t session_id, FL("session is null")); return QDF_STATUS_E_FAILURE; } + + if ((ROAM_SCAN_OFFLOAD_START == command) && session->pCurRoamProfile && + session->pCurRoamProfile->do_not_roam) { + sms_log(mac_ctx, LOGE, + FL("Supplicant disabled driver roaming")); + return QDF_STATUS_E_FAILURE; + } #ifdef WLAN_FEATURE_ROAM_OFFLOAD if (session->roam_synch_in_progress && (ROAM_SCAN_OFFLOAD_STOP == command)) { |
