diff options
| author | Varun Reddy Yeturu <varunreddy.yeturu@codeaurora.org> | 2016-04-20 12:26:11 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-05-23 11:46:41 -0700 |
| commit | ff4feb0a0e6686570ee591064b6ea3607f552f76 (patch) | |
| tree | 28de598b1c448fefc41b10d679c197fe2aa2d5b5 | |
| parent | 6a313dcb167bf96104db52d81deb32effa4bfbad (diff) | |
qcacld-3.0: Cleanup NCHO commands
Aggregate all the handlers of NCHO configration update
commands into a single routine
CRs-Fixed: 1007810
Change-Id: I9722dbead499f14f3969a85a20baf74aa03efff2
| -rw-r--r-- | core/sme/inc/csr_neighbor_roam.h | 17 | ||||
| -rw-r--r-- | core/sme/src/common/sme_api.c | 89 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_neighbor_roam.c | 379 |
3 files changed, 96 insertions, 389 deletions
diff --git a/core/sme/inc/csr_neighbor_roam.h b/core/sme/inc/csr_neighbor_roam.h index b63d5a176a80..260794035e84 100644 --- a/core/sme/inc/csr_neighbor_roam.h +++ b/core/sme/inc/csr_neighbor_roam.h @@ -265,23 +265,10 @@ static inline bool csr_neighbor_roam_is_handoff_in_progress(tpAniSirGlobal pMac, } #endif bool csr_neighbor_middle_of_roaming(tpAniSirGlobal pMac, uint8_t sessionId); -QDF_STATUS csr_neighbor_roam_set_lookup_rssi_threshold(tpAniSirGlobal pMac, - uint8_t sessionId, uint8_t neighborLookupRssiThreshold); -QDF_STATUS csr_neighbor_roam_set_opportunistic_scan_threshold_diff( - tpAniSirGlobal pMac, uint8_t sessionId, - uint8_t nOpportunisticThresholdDiff); -QDF_STATUS csr_neighbor_roam_set_roam_rescan_rssi_diff(tpAniSirGlobal pMac, - uint8_t sessionId, uint8_t nRoamRescanRssiDiff); -QDF_STATUS csr_neighbor_roam_set_roam_bmiss_first_bcnt(tpAniSirGlobal pMac, - uint8_t sessionId, uint8_t nRoamBmissFirstBcnt); -QDF_STATUS csr_neighbor_roam_set_roam_bmiss_final_bcnt(tpAniSirGlobal pMac, - uint8_t sessionId, uint8_t nRoamBmissFinalBcnt); -QDF_STATUS csr_neighbor_roam_set_roam_beacon_rssi_weight(tpAniSirGlobal pMac, - uint8_t sessionId, uint8_t nRoamBeaconRssiWeight); +QDF_STATUS csr_neighbor_roam_update_config(tpAniSirGlobal mac_ctx, + uint8_t session_id, uint8_t value, uint8_t reason); QDF_STATUS csr_neighbor_roam_update_fast_roaming_enabled(tpAniSirGlobal pMac, uint8_t sessionId, const bool fastRoamEnabled); -QDF_STATUS csr_neighbor_roam_update_ese_mode_enabled(tpAniSirGlobal pMac, - uint8_t sessionId, const bool eseMode); QDF_STATUS csr_neighbor_roam_channels_filter_by_current_band( tpAniSirGlobal pMac, uint8_t sessionId, uint8_t *pInputChannelList, diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index a0407e3ff3f3..ea8c0c84ccf9 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -1937,8 +1937,8 @@ QDF_STATUS sme_update_is_ese_feature_enabled(tHalHandle hHal, pMac->roam.configParam.isEseIniFeatureEnabled, isEseIniFeatureEnabled); pMac->roam.configParam.isEseIniFeatureEnabled = isEseIniFeatureEnabled; - csr_neighbor_roam_update_ese_mode_enabled(pMac, sessionId, - isEseIniFeatureEnabled); + csr_neighbor_roam_update_fast_roaming_enabled( + pMac, sessionId, isEseIniFeatureEnabled); if (true == isEseIniFeatureEnabled) sme_update_fast_transition_enabled(hHal, true); @@ -8837,19 +8837,10 @@ QDF_STATUS sme_set_roam_opportunistic_scan_threshold_diff(tHalHandle hHal, status = sme_acquire_global_lock(&pMac->sme); if (QDF_IS_STATUS_SUCCESS(status)) { - status = csr_neighbor_roam_set_opportunistic_scan_threshold_diff(pMac, - sessionId, - nOpportunisticThresholdDiff); + status = csr_neighbor_roam_update_config(pMac, sessionId, + nOpportunisticThresholdDiff, + REASON_OPPORTUNISTIC_THRESH_DIFF_CHANGED); if (QDF_IS_STATUS_SUCCESS(status)) { - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - "LFR runtime successfully set " - "opportunistic threshold diff to %d" - " - old value is %d - roam state is %d", - nOpportunisticThresholdDiff, - pMac->roam.configParam.neighborRoamConfig. - nOpportunisticThresholdDiff, - pMac->roam.neighborRoamInfo[sessionId]. - neighborRoamState); pMac->roam.configParam.neighborRoamConfig. nOpportunisticThresholdDiff = nOpportunisticThresholdDiff; @@ -8895,18 +8886,10 @@ QDF_STATUS sme_set_roam_rescan_rssi_diff(tHalHandle hHal, status = sme_acquire_global_lock(&pMac->sme); if (QDF_IS_STATUS_SUCCESS(status)) { - status = csr_neighbor_roam_set_roam_rescan_rssi_diff(pMac, sessionId, - nRoamRescanRssiDiff); + status = csr_neighbor_roam_update_config(pMac, sessionId, + nRoamRescanRssiDiff, + REASON_ROAM_RESCAN_RSSI_DIFF_CHANGED); if (QDF_IS_STATUS_SUCCESS(status)) { - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - "LFR runtime successfully set " - "opportunistic threshold diff to %d" - " - old value is %d - roam state is %d", - nRoamRescanRssiDiff, - pMac->roam.configParam.neighborRoamConfig. - nRoamRescanRssiDiff, - pMac->roam.neighborRoamInfo[sessionId]. - neighborRoamState); pMac->roam.configParam.neighborRoamConfig. nRoamRescanRssiDiff = nRoamRescanRssiDiff; } @@ -8950,18 +8933,10 @@ QDF_STATUS sme_set_roam_bmiss_first_bcnt(tHalHandle hHal, status = sme_acquire_global_lock(&pMac->sme); if (QDF_IS_STATUS_SUCCESS(status)) { - status = csr_neighbor_roam_set_roam_bmiss_first_bcnt(pMac, sessionId, - nRoamBmissFirstBcnt); + status = csr_neighbor_roam_update_config(pMac, sessionId, + nRoamBmissFirstBcnt, + REASON_ROAM_BMISS_FIRST_BCNT_CHANGED); if (QDF_IS_STATUS_SUCCESS(status)) { - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - "LFR runtime successfully set " - "beacon miss first beacon count to %d" - " - old value is %d - roam state is %d", - nRoamBmissFirstBcnt, - pMac->roam.configParam.neighborRoamConfig. - nRoamBmissFirstBcnt, - pMac->roam.neighborRoamInfo[sessionId]. - neighborRoamState); pMac->roam.configParam.neighborRoamConfig. nRoamBmissFirstBcnt = nRoamBmissFirstBcnt; } @@ -9003,18 +8978,10 @@ QDF_STATUS sme_set_roam_bmiss_final_bcnt(tHalHandle hHal, status = sme_acquire_global_lock(&pMac->sme); if (QDF_IS_STATUS_SUCCESS(status)) { - status = csr_neighbor_roam_set_roam_bmiss_final_bcnt(pMac, sessionId, - nRoamBmissFinalBcnt); + status = csr_neighbor_roam_update_config(pMac, sessionId, + nRoamBmissFinalBcnt, + REASON_ROAM_BMISS_FINAL_BCNT_CHANGED); if (QDF_IS_STATUS_SUCCESS(status)) { - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - "LFR runtime successfully set " - "beacon miss final beacon count to %d" - " - old value is %d - roam state is %d", - nRoamBmissFinalBcnt, - pMac->roam.configParam.neighborRoamConfig. - nRoamBmissFinalBcnt, - pMac->roam.neighborRoamInfo[sessionId]. - neighborRoamState); pMac->roam.configParam.neighborRoamConfig. nRoamBmissFinalBcnt = nRoamBmissFinalBcnt; } @@ -9058,18 +9025,10 @@ QDF_STATUS sme_set_roam_beacon_rssi_weight(tHalHandle hHal, status = sme_acquire_global_lock(&pMac->sme); if (QDF_IS_STATUS_SUCCESS(status)) { - status = csr_neighbor_roam_set_roam_beacon_rssi_weight(pMac, sessionId, - nRoamBeaconRssiWeight); + status = csr_neighbor_roam_update_config(pMac, sessionId, + nRoamBeaconRssiWeight, + REASON_ROAM_BEACON_RSSI_WEIGHT_CHANGED); if (QDF_IS_STATUS_SUCCESS(status)) { - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - "LFR runtime successfully set " - "beacon miss final beacon count to %d" - " - old value is %d - roam state is %d", - nRoamBeaconRssiWeight, - pMac->roam.configParam.neighborRoamConfig. - nRoamBeaconRssiWeight, - pMac->roam.neighborRoamInfo[sessionId]. - neighborRoamState); pMac->roam.configParam.neighborRoamConfig. nRoamBeaconRssiWeight = nRoamBeaconRssiWeight; } @@ -9109,18 +9068,10 @@ QDF_STATUS sme_set_neighbor_lookup_rssi_threshold status = sme_acquire_global_lock(&pMac->sme); if (QDF_IS_STATUS_SUCCESS(status)) { - status = csr_neighbor_roam_set_lookup_rssi_threshold(pMac, sessionId, - neighborLookupRssiThreshold); + status = csr_neighbor_roam_update_config(pMac, + sessionId, neighborLookupRssiThreshold, + REASON_LOOKUP_THRESH_CHANGED); if (QDF_IS_STATUS_SUCCESS(status)) { - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - "LFR runtime successfully set Lookup threshold to %d - old value is %d - roam state is %s", - neighborLookupRssiThreshold, - pMac->roam.configParam.neighborRoamConfig. - nNeighborLookupRssiThreshold, - mac_trace_get_neighbour_roam_state(pMac->roam. - neighborRoamInfo - [sessionId]. - neighborRoamState)); pMac->roam.configParam.neighborRoamConfig. nNeighborLookupRssiThreshold = neighborLookupRssiThreshold; diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c index 672dfd33e62b..64914e4577d5 100644 --- a/core/sme/src/csr/csr_neighbor_roam.c +++ b/core/sme/src/csr/csr_neighbor_roam.c @@ -49,6 +49,19 @@ #include "cds_concurrency.h" #define NEIGHBOR_ROAM_DEBUG sms_log +static const char *lfr_get_config_item_string(uint8_t reason) +{ + switch (reason) { + CASE_RETURN_STRING(REASON_LOOKUP_THRESH_CHANGED); + CASE_RETURN_STRING(REASON_OPPORTUNISTIC_THRESH_DIFF_CHANGED); + CASE_RETURN_STRING(REASON_ROAM_RESCAN_RSSI_DIFF_CHANGED); + CASE_RETURN_STRING(REASON_ROAM_BMISS_FIRST_BCNT_CHANGED); + CASE_RETURN_STRING(REASON_ROAM_BMISS_FINAL_BCNT_CHANGED); + CASE_RETURN_STRING(REASON_ROAM_BEACON_RSSI_WEIGHT_CHANGED); + default: + return "unknown"; + } +} static void csr_neighbor_roam_reset_channel_info(tpCsrNeighborRoamChannelInfo rChInfo); @@ -127,8 +140,6 @@ csr_neighbor_roam_update_fast_roaming_enabled(tpAniSirGlobal pMac, QDF_STATUS qdf_status = QDF_STATUS_SUCCESS; tpCsrNeighborRoamControlInfo pNeighborRoamInfo = &pMac->roam.neighborRoamInfo[sessionId]; - /* set fast roam enable/disable flag */ - pMac->roam.configParam.isFastRoamIniFeatureEnabled = fastRoamEnabled; switch (pNeighborRoamInfo->neighborRoamState) { case eCSR_NEIGHBOR_ROAM_STATE_CONNECTED: @@ -158,315 +169,73 @@ csr_neighbor_roam_update_fast_roaming_enabled(tpAniSirGlobal pMac, } return qdf_status; } - -#ifdef FEATURE_WLAN_ESE -QDF_STATUS csr_neighbor_roam_update_ese_mode_enabled(tpAniSirGlobal pMac, - uint8_t sessionId, - const bool eseMode) -{ - QDF_STATUS qdf_status = QDF_STATUS_SUCCESS; - tpCsrNeighborRoamControlInfo pNeighborRoamInfo = - &pMac->roam.neighborRoamInfo[sessionId]; - - switch (pNeighborRoamInfo->neighborRoamState) { - case eCSR_NEIGHBOR_ROAM_STATE_CONNECTED: - if (true == eseMode) { - csr_roam_offload_scan(pMac, sessionId, - ROAM_SCAN_OFFLOAD_START, - REASON_CONNECT); - } else if (false == eseMode) { - csr_roam_offload_scan(pMac, sessionId, - ROAM_SCAN_OFFLOAD_STOP, - REASON_DISCONNECTED); - } - break; - - case eCSR_NEIGHBOR_ROAM_STATE_INIT: - NEIGHBOR_ROAM_DEBUG(pMac, - LOG2, - FL - ("Currently in INIT state, Nothing to do")); - break; - - default: - NEIGHBOR_ROAM_DEBUG(pMac, LOGE, - FL - ("Unexpected state %d, returning failure"), - pNeighborRoamInfo->neighborRoamState); - break; - } - return qdf_status; -} -#endif - -QDF_STATUS csr_neighbor_roam_set_lookup_rssi_threshold(tpAniSirGlobal pMac, - uint8_t sessionId, - uint8_t - neighborLookupRssiThreshold) -{ - tpCsrNeighborRoamControlInfo pNeighborRoamInfo = - &pMac->roam.neighborRoamInfo[sessionId]; - QDF_STATUS qdf_status = QDF_STATUS_SUCCESS; - - switch (pNeighborRoamInfo->neighborRoamState) { - case eCSR_NEIGHBOR_ROAM_STATE_CONNECTED: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in CONNECTED state, " - "sending ROAM_SCAN_OFFLOAD_UPDATE_CFG.")); - pNeighborRoamInfo->cfgParams.neighborLookupThreshold = - neighborLookupRssiThreshold; - pNeighborRoamInfo->currentNeighborLookupThreshold = - pNeighborRoamInfo->cfgParams.neighborLookupThreshold; - csr_roam_offload_scan(pMac, sessionId, - ROAM_SCAN_OFFLOAD_UPDATE_CFG, - REASON_LOOKUP_THRESH_CHANGED); - break; - - case eCSR_NEIGHBOR_ROAM_STATE_INIT: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in INIT state, " - "just set lookupRssi threshold.")); - pNeighborRoamInfo->cfgParams.neighborLookupThreshold = - neighborLookupRssiThreshold; - pNeighborRoamInfo->currentNeighborLookupThreshold = - pNeighborRoamInfo->cfgParams.neighborLookupThreshold; - break; - - default: - NEIGHBOR_ROAM_DEBUG(pMac, LOGE, - FL - ("Unexpected state %s, returning failure"), - mac_trace_get_neighbour_roam_state - (pNeighborRoamInfo->neighborRoamState)); - qdf_status = QDF_STATUS_E_FAILURE; - break; - } - return qdf_status; -} - -QDF_STATUS -csr_neighbor_roam_set_opportunistic_scan_threshold_diff(tpAniSirGlobal pMac, - uint8_t sessionId, - uint8_t - nOpportunisticThresholdDiff) -{ - QDF_STATUS qdf_status = QDF_STATUS_SUCCESS; - tpCsrNeighborRoamControlInfo pNeighborRoamInfo = - &pMac->roam.neighborRoamInfo[sessionId]; - - switch (pNeighborRoamInfo->neighborRoamState) { - case eCSR_NEIGHBOR_ROAM_STATE_CONNECTED: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in CONNECTED state, " - "sending ROAM_SCAN_OFFLOAD_UPDATE_CFG")); - pNeighborRoamInfo->cfgParams.nOpportunisticThresholdDiff = - nOpportunisticThresholdDiff; - pNeighborRoamInfo->currentOpportunisticThresholdDiff = - nOpportunisticThresholdDiff; - - csr_roam_offload_scan(pMac, - sessionId, - ROAM_SCAN_OFFLOAD_UPDATE_CFG, - REASON_OPPORTUNISTIC_THRESH_DIFF_CHANGED); - break; - - case eCSR_NEIGHBOR_ROAM_STATE_INIT: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in INIT state, " - "just set opportunistic threshold diff")); - pNeighborRoamInfo->cfgParams.nOpportunisticThresholdDiff = - nOpportunisticThresholdDiff; - pNeighborRoamInfo->currentOpportunisticThresholdDiff = - nOpportunisticThresholdDiff; - break; - - default: - NEIGHBOR_ROAM_DEBUG(pMac, LOGE, - FL("Unexpected state %d returning failure"), - pNeighborRoamInfo->neighborRoamState); - qdf_status = QDF_STATUS_E_FAILURE; - break; - } - return qdf_status; -} - -QDF_STATUS -csr_neighbor_roam_set_roam_rescan_rssi_diff(tpAniSirGlobal pMac, - uint8_t sessionId, - uint8_t nRoamRescanRssiDiff) -{ - QDF_STATUS qdf_status = QDF_STATUS_SUCCESS; - tpCsrNeighborRoamControlInfo pNeighborRoamInfo = - &pMac->roam.neighborRoamInfo[sessionId]; - - switch (pNeighborRoamInfo->neighborRoamState) { - case eCSR_NEIGHBOR_ROAM_STATE_CONNECTED: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in CONNECTED state, " - "sending ROAM_SCAN_OFFLOAD_UPDATE_CFG.")); - pNeighborRoamInfo->cfgParams.nRoamRescanRssiDiff = - nRoamRescanRssiDiff; - pNeighborRoamInfo->currentRoamRescanRssiDiff = - nRoamRescanRssiDiff; - csr_roam_offload_scan(pMac, sessionId, - ROAM_SCAN_OFFLOAD_UPDATE_CFG, - REASON_ROAM_RESCAN_RSSI_DIFF_CHANGED); - break; - - case eCSR_NEIGHBOR_ROAM_STATE_INIT: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in INIT state, " - "just set rescan rssi diff")); - pNeighborRoamInfo->cfgParams.nRoamRescanRssiDiff = - nRoamRescanRssiDiff; - pNeighborRoamInfo->currentRoamRescanRssiDiff = - nRoamRescanRssiDiff; - break; - - default: - NEIGHBOR_ROAM_DEBUG(pMac, LOGE, - FL("Unexpected state %d returning failure"), - pNeighborRoamInfo->neighborRoamState); - qdf_status = QDF_STATUS_E_FAILURE; - break; - } - return qdf_status; -} - -QDF_STATUS -csr_neighbor_roam_set_roam_bmiss_first_bcnt(tpAniSirGlobal pMac, - uint8_t sessionId, - uint8_t nRoamBmissFirstBcnt) +QDF_STATUS csr_neighbor_roam_update_config(tpAniSirGlobal mac_ctx, + uint8_t session_id, uint8_t value, uint8_t reason) { - QDF_STATUS qdf_status = QDF_STATUS_SUCCESS; tpCsrNeighborRoamControlInfo pNeighborRoamInfo = - &pMac->roam.neighborRoamInfo[sessionId]; - - switch (pNeighborRoamInfo->neighborRoamState) { - case eCSR_NEIGHBOR_ROAM_STATE_CONNECTED: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in CONNECTED state, " - "sending ROAM_SCAN_OFFLOAD_UPDATE_CFG.")); - pNeighborRoamInfo->cfgParams.nRoamBmissFirstBcnt = - nRoamBmissFirstBcnt; - pNeighborRoamInfo->currentRoamBmissFirstBcnt = - nRoamBmissFirstBcnt; - - csr_roam_offload_scan(pMac, - sessionId, - ROAM_SCAN_OFFLOAD_UPDATE_CFG, - REASON_ROAM_BMISS_FIRST_BCNT_CHANGED); - break; + &mac_ctx->roam.neighborRoamInfo[session_id]; + tpCsrNeighborRoamCfgParams cfg_params; + eCsrNeighborRoamState state; + uint8_t old_value; - case eCSR_NEIGHBOR_ROAM_STATE_INIT: - NEIGHBOR_ROAM_DEBUG(pMac, - LOG2, FL - ("Currently in INIT state, safe to set roam rescan rssi diff")); - pNeighborRoamInfo->cfgParams.nRoamBmissFirstBcnt = - nRoamBmissFirstBcnt; - pNeighborRoamInfo->currentRoamBmissFirstBcnt = - nRoamBmissFirstBcnt; - break; - - default: - NEIGHBOR_ROAM_DEBUG(pMac, - LOGE, - FL("Unexpected state %d returning failure"), - pNeighborRoamInfo->neighborRoamState); - qdf_status = QDF_STATUS_E_FAILURE; - break; + if (NULL == pNeighborRoamInfo) { + sms_log(mac_ctx, LOG1, FL("Invalid Session ID %d"), session_id); + return QDF_STATUS_E_FAILURE; } - return qdf_status; -} - -QDF_STATUS -csr_neighbor_roam_set_roam_bmiss_final_bcnt(tpAniSirGlobal pMac, - uint8_t sessionId, - uint8_t nRoamBmissFinalBcnt) -{ - QDF_STATUS qdf_status = QDF_STATUS_SUCCESS; - tpCsrNeighborRoamControlInfo pNeighborRoamInfo = - &pMac->roam.neighborRoamInfo[sessionId]; - - switch (pNeighborRoamInfo->neighborRoamState) { - case eCSR_NEIGHBOR_ROAM_STATE_CONNECTED: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in CONNECTED state, " - "sending ROAM_SCAN_OFFLOAD_UPDATE_CFG.")); - pNeighborRoamInfo->cfgParams.nRoamBmissFinalBcnt = - nRoamBmissFinalBcnt; - pNeighborRoamInfo->currentRoamBmissFinalBcnt = - nRoamBmissFinalBcnt; - - csr_roam_offload_scan(pMac, sessionId, - ROAM_SCAN_OFFLOAD_UPDATE_CFG, - REASON_ROAM_BMISS_FINAL_BCNT_CHANGED); - break; - - case eCSR_NEIGHBOR_ROAM_STATE_INIT: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in INIT state, " - "just set roam fianl bmiss count")); - pNeighborRoamInfo->cfgParams.nRoamBmissFinalBcnt = - nRoamBmissFinalBcnt; - pNeighborRoamInfo->currentRoamBmissFinalBcnt = - nRoamBmissFinalBcnt; - break; - - default: - NEIGHBOR_ROAM_DEBUG(pMac, - LOGE, - FL("Unexpected state %d returning failure"), - pNeighborRoamInfo->neighborRoamState); - qdf_status = QDF_STATUS_E_FAILURE; - break; + cfg_params = &pNeighborRoamInfo->cfgParams; + state = pNeighborRoamInfo->neighborRoamState; + if ((state == eCSR_NEIGHBOR_ROAM_STATE_CONNECTED) || + state == eCSR_NEIGHBOR_ROAM_STATE_INIT) { + switch (reason) { + case REASON_LOOKUP_THRESH_CHANGED: + old_value = cfg_params->neighborLookupThreshold; + cfg_params->neighborLookupThreshold = value; + pNeighborRoamInfo->currentNeighborLookupThreshold = + value; + break; + case REASON_OPPORTUNISTIC_THRESH_DIFF_CHANGED: + old_value = cfg_params->nOpportunisticThresholdDiff; + cfg_params->nOpportunisticThresholdDiff = value; + pNeighborRoamInfo->currentOpportunisticThresholdDiff = + value; + break; + case REASON_ROAM_RESCAN_RSSI_DIFF_CHANGED: + old_value = cfg_params->nRoamRescanRssiDiff; + cfg_params->nRoamRescanRssiDiff = value; + pNeighborRoamInfo->currentRoamRescanRssiDiff = value; + break; + case REASON_ROAM_BMISS_FIRST_BCNT_CHANGED: + old_value = cfg_params->nRoamBmissFirstBcnt; + cfg_params->nRoamBmissFirstBcnt = value; + pNeighborRoamInfo->currentRoamBmissFirstBcnt = value; + break; + case REASON_ROAM_BMISS_FINAL_BCNT_CHANGED: + old_value = cfg_params->nRoamBmissFinalBcnt; + cfg_params->nRoamBmissFinalBcnt = value; + pNeighborRoamInfo->currentRoamBmissFinalBcnt = value; + break; + case REASON_ROAM_BEACON_RSSI_WEIGHT_CHANGED: + old_value = cfg_params->nRoamBeaconRssiWeight; + cfg_params->nRoamBeaconRssiWeight = value; + pNeighborRoamInfo->currentRoamBeaconRssiWeight = value; + break; + default: + sms_log(mac_ctx, LOG2, FL("Unknown update cfg reason")); + return QDF_STATUS_E_FAILURE; + } + } else { + sms_log(mac_ctx, LOGE, FL("Unexpected state %s, return fail"), + mac_trace_get_neighbour_roam_state(state)); + return QDF_STATUS_E_FAILURE; } - return qdf_status; -} - -QDF_STATUS -csr_neighbor_roam_set_roam_beacon_rssi_weight(tpAniSirGlobal pMac, - uint8_t sessionId, - uint8_t nRoamBeaconRssiWeight) -{ - QDF_STATUS qdf_status = QDF_STATUS_SUCCESS; - tpCsrNeighborRoamControlInfo pNeighborRoamInfo = - &pMac->roam.neighborRoamInfo[sessionId]; - - switch (pNeighborRoamInfo->neighborRoamState) { - case eCSR_NEIGHBOR_ROAM_STATE_CONNECTED: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in CONNECTED state, " - "sending ROAM_SCAN_OFFLOAD_UPDATE_CFG.")); - pNeighborRoamInfo->cfgParams.nRoamBeaconRssiWeight = - nRoamBeaconRssiWeight; - pNeighborRoamInfo->currentRoamBeaconRssiWeight = - nRoamBeaconRssiWeight; - - csr_roam_offload_scan(pMac, sessionId, - ROAM_SCAN_OFFLOAD_UPDATE_CFG, - REASON_ROAM_BEACON_RSSI_WEIGHT_CHANGED); - break; - - case eCSR_NEIGHBOR_ROAM_STATE_INIT: - NEIGHBOR_ROAM_DEBUG(pMac, LOG2, - FL("Currently in INIT state, " - "just set roam beacon rssi weight")); - pNeighborRoamInfo->cfgParams.nRoamBeaconRssiWeight = - nRoamBeaconRssiWeight; - pNeighborRoamInfo->currentRoamBeaconRssiWeight = - nRoamBeaconRssiWeight; - break; - - default: - NEIGHBOR_ROAM_DEBUG(pMac, - LOGE, - FL("Unexpected state %d returning failure"), - pNeighborRoamInfo->neighborRoamState); - qdf_status = QDF_STATUS_E_FAILURE; - break; + if (state == eCSR_NEIGHBOR_ROAM_STATE_CONNECTED) { + sms_log(mac_ctx, LOG2, FL("CONNECTED, send update cfg cmd")); + csr_roam_offload_scan(mac_ctx, session_id, + ROAM_SCAN_OFFLOAD_UPDATE_CFG, reason); } - return qdf_status; + sms_log(mac_ctx, LOG2, FL("LFR config for %s changed from %d to %d"), + lfr_get_config_item_string(reason), old_value, value); + return QDF_STATUS_SUCCESS; } /*CleanUP Routines*/ |
