summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarun Reddy Yeturu <varunreddy.yeturu@codeaurora.org>2016-04-20 12:26:11 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-05-23 11:46:41 -0700
commitff4feb0a0e6686570ee591064b6ea3607f552f76 (patch)
tree28de598b1c448fefc41b10d679c197fe2aa2d5b5
parent6a313dcb167bf96104db52d81deb32effa4bfbad (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.h17
-rw-r--r--core/sme/src/common/sme_api.c89
-rw-r--r--core/sme/src/csr/csr_neighbor_roam.c379
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*/