qcacld-3.0: Apply second part of LFR INIs changes

Since refined second part of LFR INIs, apply these changes in
SME/MAC/WMA layer.

Change-Id: I7994a9038d5bd094ce23bcd525ef8f5282974bfc
CRs-Fixed: 2346790
This commit is contained in:
Wu Gao
2018-11-08 16:29:10 +08:00
committed by nshrivas
parent 5d23d785f9
commit 51a6356b60
13 changed files with 186 additions and 802 deletions

View File

@@ -101,7 +101,6 @@ enum active_apf_mode {
* @force_target_assert_enabled: Indicate whether target assert enabled or not * @force_target_assert_enabled: Indicate whether target assert enabled or not
* @bandcapability: Configured band by user * @bandcapability: Configured band by user
* @rps_enabled: RPS enabled in SAP mode * @rps_enabled: RPS enabled in SAP mode
* @delay_before_vdev_stop: wait time for tx complete before vdev stop
* Structure for holding cds ini parameters. * Structure for holding cds ini parameters.
* @num_vdevs: Configured max number of VDEVs can be supported in the stack. * @num_vdevs: Configured max number of VDEVs can be supported in the stack.
*/ */
@@ -151,7 +150,6 @@ struct cds_config_info {
bool force_target_assert_enabled; bool force_target_assert_enabled;
uint8_t bandcapability; uint8_t bandcapability;
bool rps_enabled; bool rps_enabled;
uint8_t delay_before_vdev_stop;
uint32_t num_vdevs; uint32_t num_vdevs;
}; };

View File

@@ -628,7 +628,7 @@
((u16value) &= (~(SIR_MAC_SET_ ## bitname(0)))) ((u16value) &= (~(SIR_MAC_SET_ ## bitname(0))))
#define IS_WES_MODE_ENABLED(x) \ #define IS_WES_MODE_ENABLED(x) \
((x)->roam.configParam.isWESModeEnabled) ((x)->mlme_cfg->lfr.wes_mode_enabled)
#define BA_RECIPIENT 1 #define BA_RECIPIENT 1
#define BA_INITIATOR 2 #define BA_INITIATOR 2

View File

@@ -81,7 +81,7 @@ static void get_ese_version_ie_probe_response(tpAniSirGlobal mac_ctx,
tpSirProbeRespBeacon beacon_struct, tpSirProbeRespBeacon beacon_struct,
struct pe_session *session) struct pe_session *session)
{ {
if (mac_ctx->roam.configParam.isEseIniFeatureEnabled) if (mac_ctx->mlme_cfg->lfr.ese_enabled)
session->is_ese_version_ie_present = session->is_ese_version_ie_present =
beacon_struct->is_ese_ver_ie_present; beacon_struct->is_ese_ver_ie_present;
} }

View File

@@ -230,7 +230,7 @@ void lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal mac_ctx,
* associate to. * associate to.
*/ */
if (pe_session->is_ese_version_ie_present && if (pe_session->is_ese_version_ie_present &&
mac_ctx->roam.configParam.isEseIniFeatureEnabled) mac_ctx->mlme_cfg->lfr.ese_enabled)
populate_dot11f_ese_version(&frm->ESEVersion); populate_dot11f_ese_version(&frm->ESEVersion);
/* For ESE Associations fill the ESE IEs */ /* For ESE Associations fill the ESE IEs */
if (pe_session->isESEconnection && if (pe_session->isESEconnection &&

View File

@@ -1893,7 +1893,7 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
* associate to. * associate to.
*/ */
if (pe_session->is_ese_version_ie_present && if (pe_session->is_ese_version_ie_present &&
mac_ctx->roam.configParam.isEseIniFeatureEnabled) mac_ctx->mlme_cfg->lfr.ese_enabled)
populate_dot11f_ese_version(&frm->ESEVersion); populate_dot11f_ese_version(&frm->ESEVersion);
/* For ESE Associations fill the ESE IEs */ /* For ESE Associations fill the ESE IEs */
if (pe_session->isESEconnection && if (pe_session->isESEconnection &&

View File

@@ -964,30 +964,6 @@ typedef struct tagCsrRoamConnectedProfile {
#endif #endif
} tCsrRoamConnectedProfile; } tCsrRoamConnectedProfile;
typedef struct tagCsrNeighborRoamConfigParams {
uint32_t nNeighborScanTimerPeriod;
uint32_t neighbor_scan_min_timer_period;
uint8_t nNeighborLookupRssiThreshold;
int8_t rssi_thresh_offset_5g;
uint16_t nNeighborScanMinChanTime;
uint16_t nNeighborScanMaxChanTime;
sCsrChannel neighborScanChanList;
uint8_t nMaxNeighborRetries;
uint16_t nNeighborResultsRefreshPeriod;
uint16_t nEmptyScanRefreshPeriod;
uint8_t nOpportunisticThresholdDiff;
uint8_t nRoamRescanRssiDiff;
uint8_t nRoamBmissFirstBcnt;
uint8_t nRoamBmissFinalBcnt;
uint8_t nRoamBeaconRssiWeight;
uint8_t delay_before_vdev_stop;
uint32_t nhi_rssi_scan_max_count;
uint32_t nhi_rssi_scan_rssi_delta;
uint32_t nhi_rssi_scan_delay;
int32_t nhi_rssi_scan_rssi_ub;
} tCsrNeighborRoamConfigParams;
/** /**
* enum sta_roam_policy_dfs_mode - state of DFS mode for STA ROME policy * enum sta_roam_policy_dfs_mode - state of DFS mode for STA ROME policy
* @CSR_STA_ROAM_POLICY_NONE: DFS mode attribute is not valid * @CSR_STA_ROAM_POLICY_NONE: DFS mode attribute is not valid
@@ -1102,10 +1078,6 @@ typedef struct tagCsrConfigParam {
#endif #endif
uint8_t isFastRoamIniFeatureEnabled; uint8_t isFastRoamIniFeatureEnabled;
struct mawc_params csr_mawc_config; struct mawc_params csr_mawc_config;
uint8_t isFastTransitionEnabled;
uint8_t RoamRssiDiff;
bool isWESModeEnabled;
tCsrNeighborRoamConfigParams neighborRoamConfig;
/* /*
* Customer wants to optimize the scan time. Avoiding scans(passive) * Customer wants to optimize the scan time. Avoiding scans(passive)
* on DFS channels while swipping through both bands can save some time * on DFS channels while swipping through both bands can save some time
@@ -1124,13 +1096,7 @@ typedef struct tagCsrConfigParam {
* To enable/disable scanning only 2.4Ghz channels on first scan * To enable/disable scanning only 2.4Ghz channels on first scan
*/ */
bool fFirstScanOnly2GChnl; bool fFirstScanOnly2GChnl;
bool nRoamPrefer5GHz;
bool nRoamIntraBand;
uint8_t nProbes;
uint16_t nRoamScanHomeAwayTime;
bool isRoamOffloadScanEnabled;
bool bFastRoamInConIniFeatureEnabled;
uint8_t scanCfgAgingTime; uint8_t scanCfgAgingTime;
uint8_t disable_high_ht_mcs_2x2; uint8_t disable_high_ht_mcs_2x2;
uint32_t ho_delay_for_rx; uint32_t ho_delay_for_rx;

View File

@@ -60,7 +60,8 @@
#define CSR_MAX_NUM_COUNTRY_CODE 100 #define CSR_MAX_NUM_COUNTRY_CODE 100
#define CSR_IS_DFS_CH_ROAM_ALLOWED(mac_ctx) \ #define CSR_IS_DFS_CH_ROAM_ALLOWED(mac_ctx) \
( \ ( \
(((mac_ctx)->roam.configParam.allowDFSChannelRoam) ? true : false) \ ((((mac_ctx)->mlme_cfg->lfr.roaming_dfs_channel) == \
ROAMING_DFS_CHANNEL_DISABLED) ? true : false) \
) )
#define CSR_IS_SELECT_5GHZ_MARGIN(mac) \ #define CSR_IS_SELECT_5GHZ_MARGIN(mac) \
( \ ( \
@@ -68,16 +69,15 @@
) )
#define CSR_IS_ROAM_PREFER_5GHZ(mac) \ #define CSR_IS_ROAM_PREFER_5GHZ(mac) \
( \ ( \
(((mac)->roam.configParam.nRoamPrefer5GHz) ? true : false) \ ((mac)->mlme_cfg->lfr.roam_prefer_5ghz) \
) )
#define CSR_IS_ROAM_INTRA_BAND_ENABLED(mac) \ #define CSR_IS_ROAM_INTRA_BAND_ENABLED(mac) \
( \ ( \
(((mac)->roam.configParam.nRoamIntraBand) ? true : false) \ ((mac)->mlme_cfg->lfr.roam_intra_band) \
) )
#define CSR_IS_FASTROAM_IN_CONCURRENCY_INI_FEATURE_ENABLED(mac) \ #define CSR_IS_FASTROAM_IN_CONCURRENCY_INI_FEATURE_ENABLED(mac) \
( \ ( \
(((mac)->roam.configParam.bFastRoamInConIniFeatureEnabled) ? \ ((mac)->mlme_cfg->lfr.enable_fast_roam_in_concurrency) \
true : false) \
) )
#define CSR_IS_CHANNEL_24GHZ(chnNum) \ #define CSR_IS_CHANNEL_24GHZ(chnNum) \
(((chnNum) > 0) && ((chnNum) <= 14)) (((chnNum) > 0) && ((chnNum) <= 14))
@@ -365,29 +365,6 @@ struct delstafor_sessionCmd {
void *context; void *context;
}; };
struct csr_neighbor_roamconfig {
uint32_t nNeighborScanTimerPeriod;
uint32_t neighbor_scan_min_timer_period;
uint8_t nNeighborLookupRssiThreshold;
int8_t rssi_thresh_offset_5g;
uint16_t nNeighborScanMinChanTime;
uint16_t nNeighborScanMaxChanTime;
sCsrChannel neighborScanChanList;
uint8_t nMaxNeighborRetries;
uint16_t nNeighborResultsRefreshPeriod;
uint16_t nEmptyScanRefreshPeriod;
uint8_t nOpportunisticThresholdDiff;
uint8_t nRoamRescanRssiDiff;
uint8_t nRoamBmissFirstBcnt;
uint8_t nRoamBmissFinalBcnt;
uint8_t nRoamBeaconRssiWeight;
uint8_t delay_before_vdev_stop;
uint32_t nhi_rssi_scan_max_count;
uint32_t nhi_rssi_scan_rssi_delta;
uint32_t nhi_rssi_scan_delay;
int32_t nhi_rssi_scan_rssi_ub;
};
/* /*
* Neighbor Report Params Bitmask * Neighbor Report Params Bitmask
*/ */
@@ -452,23 +429,9 @@ struct csr_config {
uint32_t statsReqPeriodicityInPS;/* stats req freq while in powersave */ uint32_t statsReqPeriodicityInPS;/* stats req freq while in powersave */
uint32_t dtimPeriod; uint32_t dtimPeriod;
bool ssidHidden; bool ssidHidden;
uint8_t isFastRoamIniFeatureEnabled;
struct mawc_params csr_mawc_config; struct mawc_params csr_mawc_config;
uint8_t isRoamOffloadScanEnabled; uint8_t isRoamOffloadScanEnabled;
bool bFastRoamInConIniFeatureEnabled;
#ifdef FEATURE_WLAN_ESE
uint8_t isEseIniFeatureEnabled;
#endif
uint8_t isFastTransitionEnabled;
uint8_t RoamRssiDiff;
bool nRoamPrefer5GHz;
bool nRoamIntraBand;
bool isWESModeEnabled;
bool nRoamScanControl; bool nRoamScanControl;
uint8_t nProbes;
uint16_t nRoamScanHomeAwayTime;
struct csr_neighbor_roamconfig neighborRoamConfig;
/* /*
* Remove this code once SLM_Sessionization is supported * Remove this code once SLM_Sessionization is supported
@@ -491,7 +454,6 @@ struct csr_config {
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
uint8_t cc_switch_mode; uint8_t cc_switch_mode;
#endif #endif
uint8_t allowDFSChannelRoam;
#ifdef WLAN_FEATURE_ROAM_OFFLOAD #ifdef WLAN_FEATURE_ROAM_OFFLOAD
bool isRoamOffloadEnabled; bool isRoamOffloadEnabled;
#endif #endif

View File

@@ -770,10 +770,6 @@ QDF_STATUS sme_set_tm_level(mac_handle_t mac_handle, uint16_t newTMLevel,
void sme_feature_caps_exchange(mac_handle_t mac_handle); void sme_feature_caps_exchange(mac_handle_t mac_handle);
void sme_disable_feature_capablity(uint8_t feature_index); void sme_disable_feature_capablity(uint8_t feature_index);
void sme_reset_power_values_for5_g(mac_handle_t mac_handle); void sme_reset_power_values_for5_g(mac_handle_t mac_handle);
QDF_STATUS sme_update_roam_prefer5_g_hz(mac_handle_t mac_handle,
bool nRoamPrefer5GHz);
QDF_STATUS sme_set_roam_intra_band(mac_handle_t mac_handle,
const bool nRoamIntraBand);
QDF_STATUS sme_update_roam_scan_n_probes(mac_handle_t mac_handle, QDF_STATUS sme_update_roam_scan_n_probes(mac_handle_t mac_handle,
uint8_t sessionId, uint8_t sessionId,
const uint8_t nProbes); const uint8_t nProbes);
@@ -802,15 +798,11 @@ QDF_STATUS sme_update_is_fast_roam_ini_feature_enabled(mac_handle_t mac_handle,
QDF_STATUS sme_config_fast_roaming(mac_handle_t mac_handle, uint8_t session_id, QDF_STATUS sme_config_fast_roaming(mac_handle_t mac_handle, uint8_t session_id,
const bool is_fast_roam_enabled); const bool is_fast_roam_enabled);
QDF_STATUS sme_update_is_mawc_ini_feature_enabled(mac_handle_t mac_handle,
const bool MAWCEnabled);
QDF_STATUS sme_stop_roaming(mac_handle_t mac_handle, uint8_t sessionId, QDF_STATUS sme_stop_roaming(mac_handle_t mac_handle, uint8_t sessionId,
uint8_t reason); uint8_t reason);
QDF_STATUS sme_start_roaming(mac_handle_t mac_handle, uint8_t sessionId, QDF_STATUS sme_start_roaming(mac_handle_t mac_handle, uint8_t sessionId,
uint8_t reason); uint8_t reason);
QDF_STATUS sme_update_enable_fast_roam_in_concurrency(mac_handle_t mac_handle,
bool bFastRoamInConIniFeatureEnabled);
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
QDF_STATUS sme_update_is_ese_feature_enabled(mac_handle_t mac_handle, QDF_STATUS sme_update_is_ese_feature_enabled(mac_handle_t mac_handle,
uint8_t sessionId, uint8_t sessionId,
@@ -828,8 +820,6 @@ QDF_STATUS sme_set_roam_opportunistic_scan_threshold_diff(
uint8_t sme_get_roam_opportunistic_scan_threshold_diff(mac_handle_t mac_handle); uint8_t sme_get_roam_opportunistic_scan_threshold_diff(mac_handle_t mac_handle);
QDF_STATUS sme_set_neighbor_lookup_rssi_threshold(mac_handle_t mac_handle, QDF_STATUS sme_set_neighbor_lookup_rssi_threshold(mac_handle_t mac_handle,
uint8_t sessionId, uint8_t neighborLookupRssiThreshold); uint8_t sessionId, uint8_t neighborLookupRssiThreshold);
QDF_STATUS sme_set_delay_before_vdev_stop(mac_handle_t mac_handle,
uint8_t sessionId, uint8_t delay_before_vdev_stop);
uint8_t sme_get_neighbor_lookup_rssi_threshold(mac_handle_t mac_handle); uint8_t sme_get_neighbor_lookup_rssi_threshold(mac_handle_t mac_handle);
QDF_STATUS sme_set_neighbor_scan_refresh_period(mac_handle_t mac_handle, QDF_STATUS sme_set_neighbor_scan_refresh_period(mac_handle_t mac_handle,
uint8_t sessionId, uint16_t neighborScanResultsRefreshPeriod); uint8_t sessionId, uint16_t neighborScanResultsRefreshPeriod);
@@ -868,14 +858,9 @@ QDF_STATUS sme_set_neighbor_scan_min_period(mac_handle_t mac_handle,
uint8_t session_id, const uint16_t neighbor_scan_min_period); uint8_t session_id, const uint16_t neighbor_scan_min_period);
QDF_STATUS sme_set_roam_bmiss_first_bcnt(mac_handle_t mac_handle, QDF_STATUS sme_set_roam_bmiss_first_bcnt(mac_handle_t mac_handle,
uint8_t sessionId, const uint8_t nRoamBmissFirstBcnt); uint8_t sessionId, const uint8_t nRoamBmissFirstBcnt);
uint8_t sme_get_roam_bmiss_first_bcnt(mac_handle_t mac_handle);
QDF_STATUS sme_set_roam_bmiss_final_bcnt(mac_handle_t mac_handle, QDF_STATUS sme_set_roam_bmiss_final_bcnt(mac_handle_t mac_handle,
uint8_t sessionId, uint8_t sessionId,
const uint8_t nRoamBmissFinalBcnt); const uint8_t nRoamBmissFinalBcnt);
uint8_t sme_get_roam_bmiss_final_bcnt(mac_handle_t mac_handle);
QDF_STATUS sme_set_roam_beacon_rssi_weight(mac_handle_t mac_handle,
uint8_t sessionId,
const uint8_t nRoamBeaconRssiWeight);
uint8_t sme_get_roam_beacon_rssi_weight(mac_handle_t mac_handle); uint8_t sme_get_roam_beacon_rssi_weight(mac_handle_t mac_handle);
uint8_t sme_get_roam_rssi_diff(mac_handle_t mac_handle); uint8_t sme_get_roam_rssi_diff(mac_handle_t mac_handle);
QDF_STATUS sme_change_roam_scan_channel_list(mac_handle_t mac_handle, QDF_STATUS sme_change_roam_scan_channel_list(mac_handle_t mac_handle,
@@ -895,8 +880,6 @@ bool sme_get_wes_mode(mac_handle_t mac_handle);
bool sme_get_roam_scan_control(mac_handle_t mac_handle); bool sme_get_roam_scan_control(mac_handle_t mac_handle);
bool sme_get_is_lfr_feature_enabled(mac_handle_t mac_handle); bool sme_get_is_lfr_feature_enabled(mac_handle_t mac_handle);
bool sme_get_is_ft_feature_enabled(mac_handle_t mac_handle); bool sme_get_is_ft_feature_enabled(mac_handle_t mac_handle);
QDF_STATUS sme_update_roam_scan_offload_enabled(mac_handle_t mac_handle,
bool nRoamScanOffloadEnabled);
bool sme_is_feature_supported_by_fw(enum cap_bitmap feature); bool sme_is_feature_supported_by_fw(enum cap_bitmap feature);
QDF_STATUS sme_set_phy_mode(mac_handle_t mac_handle, eCsrPhyMode phyMode); QDF_STATUS sme_set_phy_mode(mac_handle_t mac_handle, eCsrPhyMode phyMode);
@@ -1501,11 +1484,6 @@ QDF_STATUS sme_handle_set_fcc_channel(mac_handle_t mac_handle,
bool fcc_constraint, bool fcc_constraint,
bool scan_pending); bool scan_pending);
QDF_STATUS sme_update_roam_scan_hi_rssi_scan_params(mac_handle_t mac_handle,
uint8_t session_id,
uint32_t notify_id,
int32_t val);
/** /**
* sme_update_tx_bfee_supp() - sets the Tx Bfee support * sme_update_tx_bfee_supp() - sets the Tx Bfee support
* @mac_handle: Opaque handle to the global MAC context * @mac_handle: Opaque handle to the global MAC context

View File

@@ -1476,28 +1476,28 @@ QDF_STATUS sme_update_is_ese_feature_enabled(mac_handle_t mac_handle,
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status; QDF_STATUS status;
if (mac->roam.configParam.isEseIniFeatureEnabled == if (mac->mlme_cfg->lfr.ese_enabled ==
isEseIniFeatureEnabled) { isEseIniFeatureEnabled) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: ESE Mode is already enabled or disabled, nothing to do (returning) old(%d) new(%d)", "%s: ESE Mode is already enabled or disabled, nothing to do (returning) old(%d) new(%d)",
__func__, __func__,
mac->roam.configParam.isEseIniFeatureEnabled, mac->mlme_cfg->lfr.ese_enabled,
isEseIniFeatureEnabled); isEseIniFeatureEnabled);
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: EseEnabled is changed from %d to %d", __func__, "%s: EseEnabled is changed from %d to %d", __func__,
mac->roam.configParam.isEseIniFeatureEnabled, mac->mlme_cfg->lfr.ese_enabled,
isEseIniFeatureEnabled); isEseIniFeatureEnabled);
mac->roam.configParam.isEseIniFeatureEnabled = isEseIniFeatureEnabled; mac->mlme_cfg->lfr.ese_enabled = isEseIniFeatureEnabled;
csr_neighbor_roam_update_fast_roaming_enabled( csr_neighbor_roam_update_fast_roaming_enabled(
mac, sessionId, isEseIniFeatureEnabled); mac, sessionId, isEseIniFeatureEnabled);
if (true == isEseIniFeatureEnabled) if (true == isEseIniFeatureEnabled)
sme_update_fast_transition_enabled(mac_handle, true); mac->mlme_cfg->lfr.fast_transition_enabled = true;
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
status = sme_acquire_global_lock(&mac->sme); status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
@@ -1824,7 +1824,7 @@ QDF_STATUS sme_set_ese_roam_scan_channel_list(mac_handle_t mac_handle,
pNeighborRoamInfo->neighborRoamState); pNeighborRoamInfo->neighborRoamState);
} }
if (mac->roam.configParam.isRoamOffloadScanEnabled) if (mac->mlme_cfg->lfr.roam_scan_offload_enabled)
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_CHANNEL_LIST_CHANGED); REASON_CHANNEL_LIST_CHANGED);
@@ -6530,68 +6530,6 @@ void sme_reset_power_values_for5_g(mac_handle_t mac_handle)
csr_apply_power2_current(mac); csr_apply_power2_current(mac);
} }
/*
* sme_update_roam_prefer5_g_hz() -
* Enable/disable Roam prefer 5G runtime option
* This function is called through dynamic setConfig callback function
* to configure the Roam prefer 5G runtime option
*
* mac_handle: Opaque handle to the global MAC context
* nRoamPrefer5GHz Enable/Disable Roam prefer 5G runtime option
* Return Success or failure
*/
QDF_STATUS sme_update_roam_prefer5_g_hz(mac_handle_t mac_handle,
bool nRoamPrefer5GHz)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
MTRACE(qdf_trace(QDF_MODULE_ID_SME,
TRACE_CODE_SME_RX_HDD_UPDATE_RP5G, NO_SESSION, 0));
status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: gRoamPrefer5GHz is changed from %d to %d",
__func__, mac->roam.configParam.nRoamPrefer5GHz,
nRoamPrefer5GHz);
mac->roam.configParam.nRoamPrefer5GHz = nRoamPrefer5GHz;
sme_release_global_lock(&mac->sme);
}
return status;
}
/*
* sme_set_roam_intra_band() -
* enable/disable Intra band roaming
* This function is called through dynamic setConfig callback function
* to configure the intra band roaming
* mac_handle: Opaque handle to the global MAC context
* nRoamIntraBand Enable/Disable Intra band roaming
* Return Success or failure
*/
QDF_STATUS sme_set_roam_intra_band(mac_handle_t mac_handle,
const bool nRoamIntraBand)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
MTRACE(qdf_trace(QDF_MODULE_ID_SME,
TRACE_CODE_SME_RX_HDD_SET_ROAMIBAND, NO_SESSION, 0));
status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: gRoamIntraBand is changed from %d to %d",
__func__, mac->roam.configParam.nRoamIntraBand,
nRoamIntraBand);
mac->roam.configParam.nRoamIntraBand = nRoamIntraBand;
sme_release_global_lock(&mac->sme);
}
return status;
}
/* /*
* sme_update_roam_scan_n_probes() - * sme_update_roam_scan_n_probes() -
* Function to update roam scan N probes * Function to update roam scan N probes
@@ -6616,10 +6554,11 @@ QDF_STATUS sme_update_roam_scan_n_probes(mac_handle_t mac_handle,
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: gRoamScanNProbes is changed from %d to %d", "%s: gRoamScanNProbes is changed from %d to %d",
__func__, mac->roam.configParam.nProbes, nProbes); __func__, mac->mlme_cfg->lfr.roam_scan_n_probes,
mac->roam.configParam.nProbes = nProbes; nProbes);
mac->mlme_cfg->lfr.roam_scan_n_probes = nProbes;
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_NPROBES_CHANGED); REASON_NPROBES_CHANGED);
@@ -6659,13 +6598,13 @@ QDF_STATUS sme_update_roam_scan_home_away_time(
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: gRoamScanHomeAwayTime is changed from %d to %d", "%s: gRoamScanHomeAwayTime is changed from %d to %d",
__func__, __func__,
mac->roam.configParam.nRoamScanHomeAwayTime, mac->mlme_cfg->lfr.roam_scan_home_away_time,
nRoamScanHomeAwayTime); nRoamScanHomeAwayTime);
mac->roam.configParam.nRoamScanHomeAwayTime = mac->mlme_cfg->lfr.roam_scan_home_away_time =
nRoamScanHomeAwayTime; nRoamScanHomeAwayTime;
if (mac->roam.configParam.isRoamOffloadScanEnabled && if (mac->mlme_cfg->lfr.roam_scan_offload_enabled &&
bSendOffloadCmd) { bSendOffloadCmd) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_HOME_AWAY_TIME_CHANGED); REASON_HOME_AWAY_TIME_CHANGED);
@@ -6727,7 +6666,8 @@ bool sme_get_roam_intra_band(mac_handle_t mac_handle)
MTRACE(qdf_trace(QDF_MODULE_ID_SME, MTRACE(qdf_trace(QDF_MODULE_ID_SME,
TRACE_CODE_SME_RX_HDD_GET_ROAMIBAND, NO_SESSION, 0)); TRACE_CODE_SME_RX_HDD_GET_ROAMIBAND, NO_SESSION, 0));
return mac->roam.configParam.nRoamIntraBand;
return mac->mlme_cfg->lfr.roam_intra_band;
} }
/* /*
@@ -6741,7 +6681,7 @@ uint8_t sme_get_roam_scan_n_probes(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.nProbes; return mac->mlme_cfg->lfr.roam_scan_n_probes;
} }
/* /*
@@ -6755,7 +6695,7 @@ uint16_t sme_get_roam_scan_home_away_time(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.nRoamScanHomeAwayTime; return mac->mlme_cfg->lfr.roam_scan_home_away_time;
} }
/* /*
@@ -6789,14 +6729,14 @@ QDF_STATUS sme_update_roam_rssi_diff(mac_handle_t mac_handle, uint8_t sessionId,
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR runtime successfully set roam rssi diff to %d - old value is %d - roam state is %s", "LFR runtime successfully set roam rssi diff to %d - old value is %d - roam state is %s",
RoamRssiDiff, RoamRssiDiff,
mac->roam.configParam.RoamRssiDiff, mac->mlme_cfg->lfr.roam_rssi_diff,
mac_trace_get_neighbour_roam_state(mac->roam. mac_trace_get_neighbour_roam_state(mac->roam.
neighborRoamInfo neighborRoamInfo
[sessionId]. [sessionId].
neighborRoamState)); neighborRoamState));
mac->roam.configParam.RoamRssiDiff = RoamRssiDiff; mac->mlme_cfg->lfr.roam_rssi_diff = RoamRssiDiff;
if (mac->roam.configParam.isRoamOffloadScanEnabled) if (mac->mlme_cfg->lfr.roam_scan_offload_enabled)
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_RSSI_DIFF_CHANGED); REASON_RSSI_DIFF_CHANGED);
@@ -6825,7 +6765,7 @@ QDF_STATUS sme_update_fils_config(mac_handle_t mac_handle, uint8_t session_id,
return QDF_STATUS_E_INVAL; return QDF_STATUS_E_INVAL;
} }
if (!mac->roam.configParam.isFastRoamIniFeatureEnabled || if (!mac->mlme_cfg->lfr.lfr_enabled ||
(neighbor_roam_info->neighborRoamState != (neighbor_roam_info->neighborRoamState !=
eCSR_NEIGHBOR_ROAM_STATE_CONNECTED)) { eCSR_NEIGHBOR_ROAM_STATE_CONNECTED)) {
sme_info("Fast roam is disabled or not connected(%d)", sme_info("Fast roam is disabled or not connected(%d)",
@@ -6870,7 +6810,7 @@ void sme_send_hlp_ie_info(mac_handle_t mac_handle, uint8_t session_id,
return; return;
} }
if (!mac->roam.configParam.isFastRoamIniFeatureEnabled || if (!mac->mlme_cfg->lfr.lfr_enabled ||
(neighbor_roam_info->neighborRoamState != (neighbor_roam_info->neighborRoamState !=
eCSR_NEIGHBOR_ROAM_STATE_CONNECTED)) { eCSR_NEIGHBOR_ROAM_STATE_CONNECTED)) {
sme_debug("Fast roam is disabled or not connected(%d)", sme_debug("Fast roam is disabled or not connected(%d)",
@@ -6951,42 +6891,6 @@ inline void sme_send_hlp_ie_info(mac_handle_t mac_handle, uint8_t session_id,
{} {}
#endif #endif
/*
* sme_update_fast_transition_enabled() - enable/disable Fast Transition
* support at runtime
* It is used at in the REG_DYNAMIC_VARIABLE macro definition of
* isFastTransitionEnabled.
* This is a synchronous call
*
* mac_handle - The handle returned by mac_open.
* Return QDF_STATUS_SUCCESS - SME update isFastTransitionEnabled config
* successfully.
* Other status means SME is failed to update isFastTransitionEnabled.
*/
QDF_STATUS sme_update_fast_transition_enabled(mac_handle_t mac_handle,
bool isFastTransitionEnabled)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
MTRACE(qdf_trace(QDF_MODULE_ID_SME,
TRACE_CODE_SME_RX_HDD_UPDATE_FTENABLED, NO_SESSION,
0));
status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: FastTransitionEnabled is changed from %d to %d",
__func__,
mac->roam.configParam.isFastTransitionEnabled,
isFastTransitionEnabled);
mac->roam.configParam.isFastTransitionEnabled =
isFastTransitionEnabled;
sme_release_global_lock(&mac->sme);
}
return status;
}
/* /*
* sme_update_wes_mode() - * sme_update_wes_mode() -
* Update WES Mode * Update WES Mode
@@ -7017,12 +6921,12 @@ QDF_STATUS sme_update_wes_mode(mac_handle_t mac_handle, bool isWESModeEnabled,
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR runtime successfully set WES Mode to %d - old value is %d - roam state is %s", "LFR runtime successfully set WES Mode to %d - old value is %d - roam state is %s",
isWESModeEnabled, isWESModeEnabled,
mac->roam.configParam.isWESModeEnabled, mac->mlme_cfg->lfr.wes_mode_enabled,
mac_trace_get_neighbour_roam_state(mac->roam. mac_trace_get_neighbour_roam_state(mac->roam.
neighborRoamInfo neighborRoamInfo
[sessionId]. [sessionId].
neighborRoamState)); neighborRoamState));
mac->roam.configParam.isWESModeEnabled = isWESModeEnabled; mac->mlme_cfg->lfr.wes_mode_enabled = isWESModeEnabled;
sme_release_global_lock(&mac->sme); sme_release_global_lock(&mac->sme);
} }
@@ -7071,7 +6975,7 @@ QDF_STATUS sme_set_roam_scan_control(mac_handle_t mac_handle, uint8_t sessionId,
"LFR runtime successfully cleared roam scan cache"); "LFR runtime successfully cleared roam scan cache");
csr_flush_cfg_bg_scan_roam_channel_list(mac, csr_flush_cfg_bg_scan_roam_channel_list(mac,
sessionId); sessionId);
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_FLUSH_CHANNEL_LIST); REASON_FLUSH_CHANNEL_LIST);
@@ -7100,22 +7004,21 @@ QDF_STATUS sme_update_is_fast_roam_ini_feature_enabled(mac_handle_t mac_handle,
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
if (mac->roam.configParam.isFastRoamIniFeatureEnabled == if (mac->mlme_cfg->lfr.lfr_enabled ==
isFastRoamIniFeatureEnabled) { isFastRoamIniFeatureEnabled) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: FastRoam is already enabled or disabled, nothing to do (returning) old(%d) new(%d)", "%s: FastRoam is already enabled or disabled, nothing to do (returning) old(%d) new(%d)",
__func__, __func__,
mac->roam.configParam.isFastRoamIniFeatureEnabled, mac->mlme_cfg->lfr.lfr_enabled,
isFastRoamIniFeatureEnabled); isFastRoamIniFeatureEnabled);
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: FastRoamEnabled is changed from %d to %d", __func__, "%s: FastRoamEnabled is changed from %d to %d", __func__,
mac->roam.configParam.isFastRoamIniFeatureEnabled, mac->mlme_cfg->lfr.lfr_enabled,
isFastRoamIniFeatureEnabled); isFastRoamIniFeatureEnabled);
mac->roam.configParam.isFastRoamIniFeatureEnabled = mac->mlme_cfg->lfr.lfr_enabled = isFastRoamIniFeatureEnabled;
isFastRoamIniFeatureEnabled;
csr_neighbor_roam_update_fast_roaming_enabled(mac, sessionId, csr_neighbor_roam_update_fast_roaming_enabled(mac, sessionId,
isFastRoamIniFeatureEnabled); isFastRoamIniFeatureEnabled);
@@ -7157,7 +7060,7 @@ QDF_STATUS sme_config_fast_roaming(mac_handle_t mac_handle, uint8_t session_id,
session->pCurRoamProfile->supplicant_disabled_roaming = session->pCurRoamProfile->supplicant_disabled_roaming =
!is_fast_roam_enabled; !is_fast_roam_enabled;
if (!mac_ctx->roam.configParam.isFastRoamIniFeatureEnabled) { if (!mac_ctx->mlme_cfg->lfr.lfr_enabled) {
sme_debug("Fast roam is disabled through ini"); sme_debug("Fast roam is disabled through ini");
if (!is_fast_roam_enabled) if (!is_fast_roam_enabled)
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
@@ -7174,38 +7077,6 @@ QDF_STATUS sme_config_fast_roaming(mac_handle_t mac_handle, uint8_t session_id,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/*
* sme_update_is_mawc_ini_feature_enabled() -
* Enable/disable LFR MAWC support at runtime
* It is used at in the REG_DYNAMIC_VARIABLE macro definition of
* isMAWCIniFeatureEnabled.
* This is a synchronous call
*
* mac_handle - The handle returned by mac_open.
* Return QDF_STATUS_SUCCESS - SME update MAWCEnabled config successfully.
* Other status means SME is failed to update MAWCEnabled.
*/
QDF_STATUS sme_update_is_mawc_ini_feature_enabled(mac_handle_t mac_handle,
const bool MAWCEnabled)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: MAWCEnabled is changed from %d to %d", __func__,
mac->roam.configParam.csr_mawc_config.mawc_enabled,
MAWCEnabled);
mac->roam.configParam.csr_mawc_config.mawc_enabled =
MAWCEnabled;
sme_release_global_lock(&mac->sme);
}
return status;
}
/** /**
* sme_stop_roaming() - Stop roaming for a given sessionId * sme_stop_roaming() - Stop roaming for a given sessionId
* This is a synchronous call * This is a synchronous call
@@ -7306,37 +7177,6 @@ QDF_STATUS sme_start_roaming(mac_handle_t mac_handle, uint8_t sessionId,
return status; return status;
} }
/*
* sme_update_enable_fast_roam_in_concurrency() - enable/disable LFR if
* Concurrent session exists
* This is a synchronuous call
*
* mac_handle - The handle returned by mac_open.
* Return QDF_STATUS_SUCCESS
* Other status means SME is failed
*/
QDF_STATUS sme_update_enable_fast_roam_in_concurrency(mac_handle_t mac_handle,
bool
bFastRoamInConIniFeatureEnabled)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
mac->roam.configParam.bFastRoamInConIniFeatureEnabled =
bFastRoamInConIniFeatureEnabled;
if (0 == mac->roam.configParam.isRoamOffloadScanEnabled) {
mac->roam.configParam.bFastRoamInConIniFeatureEnabled =
0;
}
sme_release_global_lock(&mac->sme);
}
return status;
}
/* /*
* sme_set_roam_opportunistic_scan_threshold_diff() - * sme_set_roam_opportunistic_scan_threshold_diff() -
* Update Opportunistic Scan threshold diff * Update Opportunistic Scan threshold diff
@@ -7364,8 +7204,7 @@ QDF_STATUS sme_set_roam_opportunistic_scan_threshold_diff(
nOpportunisticThresholdDiff, nOpportunisticThresholdDiff,
REASON_OPPORTUNISTIC_THRESH_DIFF_CHANGED); REASON_OPPORTUNISTIC_THRESH_DIFF_CHANGED);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.opportunistic_scan_threshold_diff =
nOpportunisticThresholdDiff =
nOpportunisticThresholdDiff; nOpportunisticThresholdDiff;
} }
sme_release_global_lock(&mac->sme); sme_release_global_lock(&mac->sme);
@@ -7385,8 +7224,7 @@ uint8_t sme_get_roam_opportunistic_scan_threshold_diff(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.neighborRoamConfig. return mac->mlme_cfg->lfr.opportunistic_scan_threshold_diff;
nOpportunisticThresholdDiff;
} }
/* /*
@@ -7413,10 +7251,10 @@ QDF_STATUS sme_set_roam_rescan_rssi_diff(mac_handle_t mac_handle,
status = csr_neighbor_roam_update_config(mac, sessionId, status = csr_neighbor_roam_update_config(mac, sessionId,
nRoamRescanRssiDiff, nRoamRescanRssiDiff,
REASON_ROAM_RESCAN_RSSI_DIFF_CHANGED); REASON_ROAM_RESCAN_RSSI_DIFF_CHANGED);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status))
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.roam_rescan_rssi_diff =
nRoamRescanRssiDiff = nRoamRescanRssiDiff; nRoamRescanRssiDiff;
}
sme_release_global_lock(&mac->sme); sme_release_global_lock(&mac->sme);
} }
return status; return status;
@@ -7434,7 +7272,7 @@ uint8_t sme_get_roam_rescan_rssi_diff(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.neighborRoamConfig.nRoamRescanRssiDiff; return mac->mlme_cfg->lfr.roam_rescan_rssi_diff;
} }
/* /*
@@ -7462,28 +7300,14 @@ QDF_STATUS sme_set_roam_bmiss_first_bcnt(mac_handle_t mac_handle,
nRoamBmissFirstBcnt, nRoamBmissFirstBcnt,
REASON_ROAM_BMISS_FIRST_BCNT_CHANGED); REASON_ROAM_BMISS_FIRST_BCNT_CHANGED);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.roam_bmiss_first_bcnt =
nRoamBmissFirstBcnt = nRoamBmissFirstBcnt; nRoamBmissFirstBcnt;
} }
sme_release_global_lock(&mac->sme); sme_release_global_lock(&mac->sme);
} }
return status; return status;
} }
/*
* sme_get_roam_bmiss_first_bcnt() -
* get neighbor roam beacon miss first count
*
* mac_handle - The handle returned by mac_open.
* Return uint8_t - neighbor roam beacon miss first count
*/
uint8_t sme_get_roam_bmiss_first_bcnt(mac_handle_t mac_handle)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.neighborRoamConfig.nRoamBmissFirstBcnt;
}
/* /*
* sme_set_roam_bmiss_final_bcnt() - * sme_set_roam_bmiss_final_bcnt() -
* Update Roam count for final beacon miss * Update Roam count for final beacon miss
@@ -7509,57 +7333,8 @@ QDF_STATUS sme_set_roam_bmiss_final_bcnt(mac_handle_t mac_handle,
nRoamBmissFinalBcnt, nRoamBmissFinalBcnt,
REASON_ROAM_BMISS_FINAL_BCNT_CHANGED); REASON_ROAM_BMISS_FINAL_BCNT_CHANGED);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.roam_bmiss_final_bcnt =
nRoamBmissFinalBcnt = nRoamBmissFinalBcnt; nRoamBmissFinalBcnt;
}
sme_release_global_lock(&mac->sme);
}
return status;
}
/*
* sme_get_roam_bmiss_final_bcnt() -
* gets Roam count for final beacon miss
* This is a synchronous call
*
* mac_handle - The handle returned by mac_open
* Return uint8_t - nRoamBmissFinalBcnt
*/
uint8_t sme_get_roam_bmiss_final_bcnt(mac_handle_t mac_handle)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.neighborRoamConfig.nRoamBmissFinalBcnt;
}
/*
* sme_set_roam_beacon_rssi_weight() -
* Update Roam beacon rssi weight
* This function is called through dynamic setConfig callback function
* to configure nRoamBeaconRssiWeight
*
* mac_handle: Opaque handle to the global MAC context
* sessionId - Session Identifier
* nRoamBeaconRssiWeight - Roam beacon rssi weight
* Return QDF_STATUS_SUCCESS - SME update nRoamBeaconRssiWeight config
* successfully.
* else SME is failed to update nRoamBeaconRssiWeight
*/
QDF_STATUS sme_set_roam_beacon_rssi_weight(mac_handle_t mac_handle,
uint8_t sessionId,
const uint8_t nRoamBeaconRssiWeight)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
status = csr_neighbor_roam_update_config(mac, sessionId,
nRoamBeaconRssiWeight,
REASON_ROAM_BEACON_RSSI_WEIGHT_CHANGED);
if (QDF_IS_STATUS_SUCCESS(status)) {
mac->roam.configParam.neighborRoamConfig.
nRoamBeaconRssiWeight = nRoamBeaconRssiWeight;
} }
sme_release_global_lock(&mac->sme); sme_release_global_lock(&mac->sme);
} }
@@ -7578,7 +7353,7 @@ uint8_t sme_get_roam_beacon_rssi_weight(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.neighborRoamConfig.nRoamBeaconRssiWeight; return mac->mlme_cfg->lfr.roam_beacon_rssi_weight;
} }
/* /*
@@ -7603,8 +7378,7 @@ QDF_STATUS sme_set_neighbor_lookup_rssi_threshold(mac_handle_t mac_handle,
sessionId, neighborLookupRssiThreshold, sessionId, neighborLookupRssiThreshold,
REASON_LOOKUP_THRESH_CHANGED); REASON_LOOKUP_THRESH_CHANGED);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_lookup_rssi_threshold =
nNeighborLookupRssiThreshold =
neighborLookupRssiThreshold; neighborLookupRssiThreshold;
} }
sme_release_global_lock(&mac->sme); sme_release_global_lock(&mac->sme);
@@ -7612,45 +7386,6 @@ QDF_STATUS sme_set_neighbor_lookup_rssi_threshold(mac_handle_t mac_handle,
return status; return status;
} }
/*
* sme_set_delay_before_vdev_stop() - update delay before VDEV_STOP
* This is a synchronous call
*
* mac_handle - The handle returned by macOpen.
* session_id - Session Identifier
* delay_before_vdev_stop - value to be set
* Return QDF_STATUS_SUCCESS - SME update config successful.
* Other status means SME is failed to update
*/
QDF_STATUS sme_set_delay_before_vdev_stop(mac_handle_t mac_handle,
uint8_t session_id,
uint8_t delay_before_vdev_stop)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
if (session_id >= CSR_ROAM_SESSION_MAX) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
FL("Invalid sme session id: %d"), session_id);
return QDF_STATUS_E_INVAL;
}
status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR param delay_before_vdev_stop changed from %d to %d",
mac->roam.configParam.neighborRoamConfig.
delay_before_vdev_stop,
delay_before_vdev_stop);
mac->roam.neighborRoamInfo[session_id].cfgParams.
delay_before_vdev_stop = delay_before_vdev_stop;
mac->roam.configParam.neighborRoamConfig.
delay_before_vdev_stop = delay_before_vdev_stop;
sme_release_global_lock(&mac->sme);
}
return status;
}
/* /*
* sme_get_neighbor_lookup_rssi_threshold() - get neighbor lookup * sme_get_neighbor_lookup_rssi_threshold() - get neighbor lookup
* rssi threshold * rssi threshold
@@ -7664,8 +7399,7 @@ uint8_t sme_get_neighbor_lookup_rssi_threshold(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.neighborRoamConfig. return mac->mlme_cfg->lfr.neighbor_lookup_rssi_threshold;
nNeighborLookupRssiThreshold;
} }
/* /*
@@ -7683,7 +7417,6 @@ QDF_STATUS sme_set_neighbor_scan_refresh_period(mac_handle_t mac_handle,
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
struct csr_neighbor_roamconfig *pNeighborRoamConfig = NULL;
tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL; tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL;
if (sessionId >= CSR_ROAM_SESSION_MAX) { if (sessionId >= CSR_ROAM_SESSION_MAX) {
@@ -7694,24 +7427,22 @@ QDF_STATUS sme_set_neighbor_scan_refresh_period(mac_handle_t mac_handle,
status = sme_acquire_global_lock(&mac->sme); status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
pNeighborRoamConfig =
&mac->roam.configParam.neighborRoamConfig;
pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId]; pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId];
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR runtime successfully set roam scan refresh period to %d- old value is %d - roam state is %s", "LFR runtime successfully set roam scan refresh period to %d- old value is %d - roam state is %s",
neighborScanResultsRefreshPeriod, neighborScanResultsRefreshPeriod,
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.
nNeighborResultsRefreshPeriod, neighbor_scan_results_refresh_period,
mac_trace_get_neighbour_roam_state(mac->roam. mac_trace_get_neighbour_roam_state(mac->roam.
neighborRoamInfo neighborRoamInfo
[sessionId]. [sessionId].
neighborRoamState)); neighborRoamState));
pNeighborRoamConfig->nNeighborResultsRefreshPeriod = mac->mlme_cfg->lfr.neighbor_scan_results_refresh_period =
neighborScanResultsRefreshPeriod; neighborScanResultsRefreshPeriod;
pNeighborRoamInfo->cfgParams.neighborResultsRefreshPeriod = pNeighborRoamInfo->cfgParams.neighborResultsRefreshPeriod =
neighborScanResultsRefreshPeriod; neighborScanResultsRefreshPeriod;
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_NEIGHBOR_SCAN_REFRESH_PERIOD_CHANGED); REASON_NEIGHBOR_SCAN_REFRESH_PERIOD_CHANGED);
@@ -7722,37 +7453,6 @@ QDF_STATUS sme_set_neighbor_scan_refresh_period(mac_handle_t mac_handle,
return status; return status;
} }
/*
* sme_update_roam_scan_offload_enabled() - enable/disable roam scan
* offload feaure
* It is used at in the REG_DYNAMIC_VARIABLE macro definition of
* gRoamScanOffloadEnabled.
* This is a synchronous call
*
* mac_handle - The handle returned by mac_open.
* Return QDF_STATUS_SUCCESS - SME update config successfully.
* Other status means SME is failed to update.
*/
QDF_STATUS sme_update_roam_scan_offload_enabled(mac_handle_t mac_handle,
bool nRoamScanOffloadEnabled)
{
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"gRoamScanOffloadEnabled is changed from %d to %d",
mac->roam.configParam.isRoamOffloadScanEnabled,
nRoamScanOffloadEnabled);
mac->roam.configParam.isRoamOffloadScanEnabled =
nRoamScanOffloadEnabled;
sme_release_global_lock(&mac->sme);
}
return status;
}
/* /*
* sme_get_neighbor_scan_refresh_period() - get neighbor scan results * sme_get_neighbor_scan_refresh_period() - get neighbor scan results
* refresh period * refresh period
@@ -7765,8 +7465,7 @@ uint16_t sme_get_neighbor_scan_refresh_period(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.neighborRoamConfig. return mac->mlme_cfg->lfr.neighbor_scan_results_refresh_period;
nNeighborResultsRefreshPeriod;
} }
/* /*
@@ -7781,8 +7480,7 @@ uint16_t sme_get_empty_scan_refresh_period(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.neighborRoamConfig. return mac->mlme_cfg->lfr.empty_scan_refresh_period;
nEmptyScanRefreshPeriod;
} }
/* /*
@@ -7805,7 +7503,6 @@ QDF_STATUS sme_update_empty_scan_refresh_period(mac_handle_t mac_handle,
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
struct csr_neighbor_roamconfig *pNeighborRoamConfig = NULL;
tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL; tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL;
if (sessionId >= CSR_ROAM_SESSION_MAX) { if (sessionId >= CSR_ROAM_SESSION_MAX) {
@@ -7816,24 +7513,21 @@ QDF_STATUS sme_update_empty_scan_refresh_period(mac_handle_t mac_handle,
status = sme_acquire_global_lock(&mac->sme); status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
pNeighborRoamConfig =
&mac->roam.configParam.neighborRoamConfig;
pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId]; pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId];
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR runtime successfully set roam scan period to %d -old value is %d - roam state is %s", "LFR runtime successfully set roam scan period to %d -old value is %d - roam state is %s",
nEmptyScanRefreshPeriod, nEmptyScanRefreshPeriod,
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.empty_scan_refresh_period,
nEmptyScanRefreshPeriod,
mac_trace_get_neighbour_roam_state(mac->roam. mac_trace_get_neighbour_roam_state(mac->roam.
neighborRoamInfo neighborRoamInfo
[sessionId]. [sessionId].
neighborRoamState)); neighborRoamState));
pNeighborRoamConfig->nEmptyScanRefreshPeriod = mac->mlme_cfg->lfr.empty_scan_refresh_period =
nEmptyScanRefreshPeriod; nEmptyScanRefreshPeriod;
pNeighborRoamInfo->cfgParams.emptyScanRefreshPeriod = pNeighborRoamInfo->cfgParams.emptyScanRefreshPeriod =
nEmptyScanRefreshPeriod; nEmptyScanRefreshPeriod;
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_EMPTY_SCAN_REF_PERIOD_CHANGED); REASON_EMPTY_SCAN_REF_PERIOD_CHANGED);
@@ -7876,15 +7570,14 @@ QDF_STATUS sme_set_neighbor_scan_min_chan_time(mac_handle_t mac_handle,
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR runtime successfully set channel min dwell time to %d - old value is %d - roam state is %s", "LFR runtime successfully set channel min dwell time to %d - old value is %d - roam state is %s",
nNeighborScanMinChanTime, nNeighborScanMinChanTime,
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_min_chan_time,
nNeighborScanMinChanTime,
mac_trace_get_neighbour_roam_state(mac->roam. mac_trace_get_neighbour_roam_state(mac->roam.
neighborRoamInfo neighborRoamInfo
[sessionId]. [sessionId].
neighborRoamState)); neighborRoamState));
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_min_chan_time =
nNeighborScanMinChanTime = nNeighborScanMinChanTime; nNeighborScanMinChanTime;
mac->roam.neighborRoamInfo[sessionId].cfgParams. mac->roam.neighborRoamInfo[sessionId].cfgParams.
minChannelScanTime = nNeighborScanMinChanTime; minChannelScanTime = nNeighborScanMinChanTime;
sme_release_global_lock(&mac->sme); sme_release_global_lock(&mac->sme);
@@ -7913,7 +7606,6 @@ QDF_STATUS sme_set_neighbor_scan_max_chan_time(mac_handle_t mac_handle,
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
struct csr_neighbor_roamconfig *pNeighborRoamConfig = NULL;
tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL; tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL;
if (sessionId >= CSR_ROAM_SESSION_MAX) { if (sessionId >= CSR_ROAM_SESSION_MAX) {
@@ -7924,23 +7616,20 @@ QDF_STATUS sme_set_neighbor_scan_max_chan_time(mac_handle_t mac_handle,
status = sme_acquire_global_lock(&mac->sme); status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
pNeighborRoamConfig =
&mac->roam.configParam.neighborRoamConfig;
pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId]; pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId];
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR runtime successfully set channel max dwell time to %d - old value is %d - roam state is %s", "LFR runtime successfully set channel max dwell time to %d - old value is %d - roam state is %s",
nNeighborScanMaxChanTime, nNeighborScanMaxChanTime,
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_max_chan_time,
nNeighborScanMaxChanTime,
mac_trace_get_neighbour_roam_state(mac->roam. mac_trace_get_neighbour_roam_state(mac->roam.
neighborRoamInfo neighborRoamInfo
[sessionId]. [sessionId].
neighborRoamState)); neighborRoamState));
pNeighborRoamConfig->nNeighborScanMaxChanTime = mac->mlme_cfg->lfr.neighbor_scan_max_chan_time =
nNeighborScanMaxChanTime; nNeighborScanMaxChanTime;
pNeighborRoamInfo->cfgParams.maxChannelScanTime = pNeighborRoamInfo->cfgParams.maxChannelScanTime =
nNeighborScanMaxChanTime; nNeighborScanMaxChanTime;
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_SCAN_CH_TIME_CHANGED); REASON_SCAN_CH_TIME_CHANGED);
@@ -7948,7 +7637,6 @@ QDF_STATUS sme_set_neighbor_scan_max_chan_time(mac_handle_t mac_handle,
sme_release_global_lock(&mac->sme); sme_release_global_lock(&mac->sme);
} }
return status; return status;
} }
@@ -8147,7 +7835,6 @@ QDF_STATUS sme_set_neighbor_scan_period(mac_handle_t mac_handle,
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
struct csr_neighbor_roamconfig *pNeighborRoamConfig = NULL;
tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL; tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL;
if (sessionId >= CSR_ROAM_SESSION_MAX) { if (sessionId >= CSR_ROAM_SESSION_MAX) {
@@ -8158,24 +7845,21 @@ QDF_STATUS sme_set_neighbor_scan_period(mac_handle_t mac_handle,
status = sme_acquire_global_lock(&mac->sme); status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
pNeighborRoamConfig =
&mac->roam.configParam.neighborRoamConfig;
pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId]; pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId];
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR runtime successfully set neighbor scan period to %d - old value is %d - roam state is %s", "LFR runtime successfully set neighbor scan period to %d - old value is %d - roam state is %s",
nNeighborScanPeriod, nNeighborScanPeriod,
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_timer_period,
nNeighborScanTimerPeriod,
mac_trace_get_neighbour_roam_state(mac->roam. mac_trace_get_neighbour_roam_state(mac->roam.
neighborRoamInfo neighborRoamInfo
[sessionId]. [sessionId].
neighborRoamState)); neighborRoamState));
pNeighborRoamConfig->nNeighborScanTimerPeriod = mac->mlme_cfg->lfr.neighbor_scan_timer_period =
nNeighborScanPeriod; nNeighborScanPeriod;
pNeighborRoamInfo->cfgParams.neighborScanPeriod = pNeighborRoamInfo->cfgParams.neighborScanPeriod =
nNeighborScanPeriod; nNeighborScanPeriod;
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_SCAN_HOME_TIME_CHANGED); REASON_SCAN_HOME_TIME_CHANGED);
@@ -8227,7 +7911,6 @@ QDF_STATUS sme_set_neighbor_scan_min_period(mac_handle_t mac_handle,
{ {
tpAniSirGlobal pmac = PMAC_STRUCT(mac_handle); tpAniSirGlobal pmac = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
struct csr_neighbor_roamconfig *p_neighbor_roam_config = NULL;
tpCsrNeighborRoamControlInfo p_neighbor_roam_info = NULL; tpCsrNeighborRoamControlInfo p_neighbor_roam_info = NULL;
if (session_id >= CSR_ROAM_SESSION_MAX) { if (session_id >= CSR_ROAM_SESSION_MAX) {
@@ -8237,19 +7920,17 @@ QDF_STATUS sme_set_neighbor_scan_min_period(mac_handle_t mac_handle,
status = sme_acquire_global_lock(&pmac->sme); status = sme_acquire_global_lock(&pmac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
p_neighbor_roam_config =
&pmac->roam.configParam.neighborRoamConfig;
p_neighbor_roam_info = &pmac-> p_neighbor_roam_info = &pmac->
roam.neighborRoamInfo[session_id]; roam.neighborRoamInfo[session_id];
sme_debug("LFR:set neighbor scan min period, old:%d, " sme_debug("LFR:set neighbor scan min period, old:%d, "
"new: %d, state: %s", "new: %d, state: %s",
pmac->roam.configParam.neighborRoamConfig. pmac->mlme_cfg->lfr.
neighbor_scan_min_timer_period, neighbor_scan_min_timer_period,
neighbor_scan_min_period, neighbor_scan_min_period,
mac_trace_get_neighbour_roam_state(pmac->roam. mac_trace_get_neighbour_roam_state(pmac->roam.
neighborRoamInfo[session_id]. neighborRoamInfo[session_id].
neighborRoamState)); neighborRoamState));
p_neighbor_roam_config->neighbor_scan_min_timer_period = pmac->mlme_cfg->lfr.neighbor_scan_min_timer_period =
neighbor_scan_min_period; neighbor_scan_min_period;
p_neighbor_roam_info->cfgParams.neighbor_scan_min_period = p_neighbor_roam_info->cfgParams.neighbor_scan_min_period =
neighbor_scan_min_period; neighbor_scan_min_period;
@@ -8270,7 +7951,7 @@ uint8_t sme_get_roam_rssi_diff(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.RoamRssiDiff; return mac->mlme_cfg->lfr.roam_rssi_diff;
} }
/** /**
@@ -8344,7 +8025,7 @@ QDF_STATUS sme_change_roam_scan_channel_list(mac_handle_t mac_handle,
newChannelList, oldChannelList, newChannelList, oldChannelList,
mac->roam.neighborRoamInfo[sessionId].neighborRoamState); mac->roam.neighborRoamInfo[sessionId].neighborRoamState);
if (mac->roam.configParam.isRoamOffloadScanEnabled) if (mac->mlme_cfg->lfr.roam_scan_offload_enabled)
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_CHANNEL_LIST_CHANGED); REASON_CHANNEL_LIST_CHANGED);
@@ -8432,7 +8113,7 @@ bool sme_get_wes_mode(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.isWESModeEnabled; return mac->mlme_cfg->lfr.wes_mode_enabled;
} }
/* /*
@@ -8460,7 +8141,7 @@ bool sme_get_is_lfr_feature_enabled(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.isFastRoamIniFeatureEnabled; return mac->mlme_cfg->lfr.lfr_enabled;
} }
/* /*
@@ -8475,7 +8156,7 @@ bool sme_get_is_ft_feature_enabled(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.isFastTransitionEnabled; return mac->mlme_cfg->lfr.fast_transition_enabled;
} }
/** /**
@@ -11143,14 +10824,14 @@ QDF_STATUS sme_update_dfs_scan_mode(mac_handle_t mac_handle, uint8_t sessionId,
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"LFR runtime successfully set AllowDFSChannelRoam Mode to %d - old value is %d - roam state is %s", "LFR runtime successfully set AllowDFSChannelRoam Mode to %d - old value is %d - roam state is %s",
allowDFSChannelRoam, allowDFSChannelRoam,
mac->roam.configParam.allowDFSChannelRoam, mac->mlme_cfg->lfr.roaming_dfs_channel,
mac_trace_get_neighbour_roam_state(mac->roam. mac_trace_get_neighbour_roam_state(mac->roam.
neighborRoamInfo neighborRoamInfo
[sessionId]. [sessionId].
neighborRoamState)); neighborRoamState));
mac->roam.configParam.allowDFSChannelRoam = mac->mlme_cfg->lfr.roaming_dfs_channel =
allowDFSChannelRoam; allowDFSChannelRoam;
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
csr_roam_offload_scan(mac, sessionId, csr_roam_offload_scan(mac, sessionId,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
REASON_ROAM_DFS_SCAN_MODE_CHANGED); REASON_ROAM_DFS_SCAN_MODE_CHANGED);
@@ -11173,7 +10854,7 @@ uint8_t sme_get_dfs_scan_mode(mac_handle_t mac_handle)
{ {
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
return mac->roam.configParam.allowDFSChannelRoam; return mac->mlme_cfg->lfr.roaming_dfs_channel;
} }
/* /*
@@ -11316,7 +10997,7 @@ QDF_STATUS sme_abort_roam_scan(mac_handle_t mac_handle, uint8_t sessionId)
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
tpAniSirGlobal mac = PMAC_STRUCT(mac_handle); tpAniSirGlobal mac = PMAC_STRUCT(mac_handle);
if (mac->roam.configParam.isRoamOffloadScanEnabled) { if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
/* acquire the lock for the sme object */ /* acquire the lock for the sme object */
status = sme_acquire_global_lock(&mac->sme); status = sme_acquire_global_lock(&mac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
@@ -14109,99 +13790,6 @@ void sme_setdef_dot11mode(mac_handle_t mac_handle)
csr_set_default_dot11_mode(mac_ctx); csr_set_default_dot11_mode(mac_ctx);
} }
/**
* sme_update_roam_scan_hi_rssi_scan_params() - update high rssi scan
* params
* @mac_handle - The handle returned by macOpen.
* @session_id - Session Identifier
* @notify_id - Identifies 1 of the 4 parameters to be modified
* @val New value of the parameter
*
* Return: QDF_STATUS - SME update config successful.
* Other status means SME failed to update
*/
QDF_STATUS sme_update_roam_scan_hi_rssi_scan_params(mac_handle_t mac_handle,
uint8_t session_id,
uint32_t notify_id,
int32_t val)
{
tpAniSirGlobal mac_ctx = PMAC_STRUCT(mac_handle);
QDF_STATUS status = QDF_STATUS_SUCCESS;
struct csr_neighbor_roamconfig *nr_config = NULL;
tpCsrNeighborRoamControlInfo nr_info = NULL;
uint32_t reason = 0;
if (session_id >= CSR_ROAM_SESSION_MAX) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
FL("Invalid sme session id: %d"), session_id);
return QDF_STATUS_E_INVAL;
}
status = sme_acquire_global_lock(&mac_ctx->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
nr_config = &mac_ctx->roam.configParam.neighborRoamConfig;
nr_info = &mac_ctx->roam.neighborRoamInfo[session_id];
switch (notify_id) {
case eCSR_HI_RSSI_SCAN_MAXCOUNT_ID:
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"%s: gRoamScanHirssiMaxCount %d => %d",
__func__, nr_config->nhi_rssi_scan_max_count,
val);
nr_config->nhi_rssi_scan_max_count = val;
nr_info->cfgParams.hi_rssi_scan_max_count = val;
reason = REASON_ROAM_SCAN_HI_RSSI_MAXCOUNT_CHANGED;
break;
case eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID:
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
FL("gRoamScanHiRssiDelta %d => %d"),
nr_config->nhi_rssi_scan_rssi_delta,
val);
nr_config->nhi_rssi_scan_rssi_delta = val;
nr_info->cfgParams.hi_rssi_scan_rssi_delta = val;
reason = REASON_ROAM_SCAN_HI_RSSI_DELTA_CHANGED;
break;
case eCSR_HI_RSSI_SCAN_DELAY_ID:
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
FL("gRoamScanHiRssiDelay %d => %d"),
nr_config->nhi_rssi_scan_delay,
val);
nr_config->nhi_rssi_scan_delay = val;
nr_info->cfgParams.hi_rssi_scan_delay = val;
reason = REASON_ROAM_SCAN_HI_RSSI_DELAY_CHANGED;
break;
case eCSR_HI_RSSI_SCAN_RSSI_UB_ID:
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
FL("gRoamScanHiRssiUpperBound %d => %d"),
nr_config->nhi_rssi_scan_rssi_ub,
val);
nr_config->nhi_rssi_scan_rssi_ub = val;
nr_info->cfgParams.hi_rssi_scan_rssi_ub = val;
reason = REASON_ROAM_SCAN_HI_RSSI_UB_CHANGED;
break;
default:
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
FL("invalid parameter notify_id %d"),
notify_id);
status = QDF_STATUS_E_INVAL;
break;
}
if (mac_ctx->roam.configParam.isRoamOffloadScanEnabled &&
status == QDF_STATUS_SUCCESS) {
csr_roam_offload_scan(mac_ctx, session_id,
ROAM_SCAN_OFFLOAD_UPDATE_CFG, reason);
}
sme_release_global_lock(&mac_ctx->sme);
}
return status;
}
/** /**
* sme_update_tgt_services() - update the target services config. * sme_update_tgt_services() - update the target services config.
* @mac_handle: Opaque handle to the global MAC context. * @mac_handle: Opaque handle to the global MAC context.
@@ -15091,7 +14679,7 @@ QDF_STATUS sme_update_sta_roam_policy(mac_handle_t mac_handle,
FL("failed to update the supported channel list")); FL("failed to update the supported channel list"));
} }
if (mac_ctx->roam.configParam.isRoamOffloadScanEnabled) { if (mac_ctx->mlme_cfg->lfr.roam_scan_offload_enabled) {
status = sme_acquire_global_lock(&mac_ctx->sme); status = sme_acquire_global_lock(&mac_ctx->sme);
if (QDF_IS_STATUS_SUCCESS(status)) { if (QDF_IS_STATUS_SUCCESS(status)) {
csr_roam_offload_scan(mac_ctx, session_id, csr_roam_offload_scan(mac_ctx, session_id,

View File

@@ -1695,32 +1695,7 @@ static void init_config_param(tpAniSirGlobal mac)
CSR_MIN_GLOBAL_STAT_QUERY_PERIOD; CSR_MIN_GLOBAL_STAT_QUERY_PERIOD;
mac->roam.configParam.statsReqPeriodicityInPS = mac->roam.configParam.statsReqPeriodicityInPS =
CSR_MIN_GLOBAL_STAT_QUERY_PERIOD_IN_BMPS; CSR_MIN_GLOBAL_STAT_QUERY_PERIOD_IN_BMPS;
mac->roam.configParam.neighborRoamConfig.nMaxNeighborRetries = 3;
mac->roam.configParam.neighborRoamConfig.nNeighborLookupRssiThreshold =
120;
mac->roam.configParam.neighborRoamConfig.nOpportunisticThresholdDiff =
30;
mac->roam.configParam.neighborRoamConfig.nRoamRescanRssiDiff = 5;
mac->roam.configParam.neighborRoamConfig.nNeighborScanMinChanTime = 20;
mac->roam.configParam.neighborRoamConfig.nNeighborScanMaxChanTime = 40;
mac->roam.configParam.neighborRoamConfig.nNeighborScanTimerPeriod =
200;
mac->roam.configParam.neighborRoamConfig.
neighbor_scan_min_timer_period = 200;
mac->roam.configParam.neighborRoamConfig.neighborScanChanList.
numChannels = 3;
mac->roam.configParam.neighborRoamConfig.neighborScanChanList.
channelList[0] = 1;
mac->roam.configParam.neighborRoamConfig.neighborScanChanList.
channelList[1] = 6;
mac->roam.configParam.neighborRoamConfig.neighborScanChanList.
channelList[2] = 11;
mac->roam.configParam.neighborRoamConfig.nNeighborResultsRefreshPeriod
= 20000; /* 20 seconds */
mac->roam.configParam.neighborRoamConfig.nEmptyScanRefreshPeriod = 0;
mac->roam.configParam.neighborRoamConfig.nRoamBmissFirstBcnt = 10;
mac->roam.configParam.neighborRoamConfig.nRoamBmissFinalBcnt = 10;
mac->roam.configParam.neighborRoamConfig.nRoamBeaconRssiWeight = 14;
mac->roam.configParam.nVhtChannelWidth = mac->roam.configParam.nVhtChannelWidth =
WNI_CFG_VHT_CHANNEL_WIDTH_80MHZ + 1; WNI_CFG_VHT_CHANNEL_WIDTH_80MHZ + 1;
@@ -1732,7 +1707,6 @@ static void init_config_param(tpAniSirGlobal mac)
mac->roam.configParam.nInitialDwellTime = 0; mac->roam.configParam.nInitialDwellTime = 0;
mac->roam.configParam.initial_scan_no_dfs_chnl = 0; mac->roam.configParam.initial_scan_no_dfs_chnl = 0;
mac->roam.configParam.csr_mawc_config.mawc_enabled = true;
} }
enum band_info csr_get_current_band(struct mac_context *mac) enum band_info csr_get_current_band(struct mac_context *mac)
@@ -1934,7 +1908,7 @@ bool csr_roam_is_ese_assoc(tpAniSirGlobal mac_ctx, uint32_t session_id)
*/ */
bool csr_roam_is_ese_ini_feature_enabled(tpAniSirGlobal mac) bool csr_roam_is_ese_ini_feature_enabled(tpAniSirGlobal mac)
{ {
return mac->roam.configParam.isEseIniFeatureEnabled; return mac->mlme_cfg->lfr.ese_enabled;
} }
/** /**
@@ -2104,8 +2078,9 @@ csr_fetch_ch_lst_from_received_list(tpAniSirGlobal mac_ctx,
ch_lst = curr_ch_lst_info->ChannelList; ch_lst = curr_ch_lst_info->ChannelList;
for (i = 0; i < curr_ch_lst_info->numOfChannels; i++) { for (i = 0; i < curr_ch_lst_info->numOfChannels; i++) {
if ((!mac_ctx->roam.configParam.allowDFSChannelRoam || if (((mac_ctx->mlme_cfg->lfr.roaming_dfs_channel !=
(mac_ctx->roam.configParam.sta_roam_policy.dfs_mode == ROAMING_DFS_CHANNEL_DISABLED) ||
(mac_ctx->roam.configParam.sta_roam_policy.dfs_mode ==
CSR_STA_ROAM_POLICY_DFS_DISABLED)) && CSR_STA_ROAM_POLICY_DFS_DISABLED)) &&
(wlan_reg_is_dfs_ch(mac_ctx->pdev, *ch_lst))) { (wlan_reg_is_dfs_ch(mac_ctx->pdev, *ch_lst))) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
@@ -2221,7 +2196,7 @@ QDF_STATUS csr_roam_read_tsf(tpAniSirGlobal mac, uint8_t *pTimestamp,
*/ */
bool csr_roam_is_roam_offload_scan_enabled(tpAniSirGlobal mac_ctx) bool csr_roam_is_roam_offload_scan_enabled(tpAniSirGlobal mac_ctx)
{ {
return mac_ctx->roam.configParam.isRoamOffloadScanEnabled; return mac_ctx->mlme_cfg->lfr.roam_scan_offload_enabled;
} }
/* The funcns csr_convert_cb_ini_value_to_phy_cb_state and /* The funcns csr_convert_cb_ini_value_to_phy_cb_state and
@@ -2493,7 +2468,7 @@ csr_copy_mawc_config(tpAniSirGlobal mac,
struct mawc_params *mawc_config) struct mawc_params *mawc_config)
{ {
mawc_config->mawc_enabled = mawc_config->mawc_enabled =
mac->roam.configParam.csr_mawc_config.mawc_enabled; mac->mlme_cfg->lfr.mawc_enabled;
mawc_config->mawc_roam_enabled = mawc_config->mawc_roam_enabled =
mac->mlme_cfg->lfr.mawc_roam_enabled; mac->mlme_cfg->lfr.mawc_roam_enabled;
mawc_config->mawc_roam_traffic_threshold = mawc_config->mawc_roam_traffic_threshold =
@@ -2566,9 +2541,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal mac,
mac->roam.configParam.AdHocChannel24 = pParam->AdHocChannel24; mac->roam.configParam.AdHocChannel24 = pParam->AdHocChannel24;
mac->roam.configParam.AdHocChannel5G = pParam->AdHocChannel5G; mac->roam.configParam.AdHocChannel5G = pParam->AdHocChannel5G;
mac->roam.configParam.wep_tkip_in_he = pParam->wep_tkip_in_he; mac->roam.configParam.wep_tkip_in_he = pParam->wep_tkip_in_he;
mac->roam.configParam.neighborRoamConfig.
delay_before_vdev_stop =
pParam->neighborRoamConfig.delay_before_vdev_stop;
/* if HDD passed down non zero values then only update, */ /* if HDD passed down non zero values then only update, */
/* otherwise keep using the defaults */ /* otherwise keep using the defaults */
@@ -2649,84 +2621,44 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal mac,
!wlan_reg_11d_enabled_on_host(mac->psoc)) !wlan_reg_11d_enabled_on_host(mac->psoc))
csr_init_channel_power_list(mac, &pParam->Csr11dinfo); csr_init_channel_power_list(mac, &pParam->Csr11dinfo);
mac->roam.configParam.isFastTransitionEnabled = sme_debug("neighbor_scan_timer_period: %d",
pParam->isFastTransitionEnabled; mac->mlme_cfg->lfr.neighbor_scan_timer_period);
mac->roam.configParam.RoamRssiDiff = pParam->RoamRssiDiff;
mac->roam.configParam.nRoamPrefer5GHz =
pParam->nRoamPrefer5GHz;
mac->roam.configParam.nRoamIntraBand = pParam->nRoamIntraBand;
mac->roam.configParam.isWESModeEnabled =
pParam->isWESModeEnabled;
mac->roam.configParam.nProbes = pParam->nProbes;
mac->roam.configParam.nRoamScanHomeAwayTime =
pParam->nRoamScanHomeAwayTime;
mac->roam.configParam.isRoamOffloadScanEnabled =
pParam->isRoamOffloadScanEnabled;
mac->roam.configParam.bFastRoamInConIniFeatureEnabled =
pParam->bFastRoamInConIniFeatureEnabled;
mac->roam.configParam.isFastRoamIniFeatureEnabled =
pParam->isFastRoamIniFeatureEnabled;
mac->roam.configParam.csr_mawc_config.mawc_enabled =
pParam->csr_mawc_config.mawc_enabled;
#ifdef FEATURE_WLAN_ESE
mac->roam.configParam.isEseIniFeatureEnabled =
pParam->isEseIniFeatureEnabled;
#endif
qdf_mem_copy(&mac->roam.configParam.neighborRoamConfig,
&pParam->neighborRoamConfig,
sizeof(tCsrNeighborRoamConfigParams));
sme_debug("nNeighborScanTimerPerioid: %d",
mac->roam.configParam.neighborRoamConfig.
nNeighborScanTimerPeriod);
sme_debug("neighbor_scan_min_timer_period: %d", sme_debug("neighbor_scan_min_timer_period: %d",
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_min_timer_period);
neighbor_scan_min_timer_period); sme_debug("neighbor_lookup_rssi_threshold: %d",
sme_debug("nNeighborLookupRssiThreshold: %d", mac->mlme_cfg->lfr.neighbor_lookup_rssi_threshold);
mac->roam.configParam.neighborRoamConfig. sme_debug("opportunistic_scan_threshold_diff: %d",
nNeighborLookupRssiThreshold); mac->mlme_cfg->lfr.
sme_debug("nOpportunisticThresholdDiff: %d", opportunistic_scan_threshold_diff);
mac->roam.configParam.neighborRoamConfig. sme_debug("roam_rescan_rssi_diff: %d",
nOpportunisticThresholdDiff); mac->mlme_cfg->lfr.roam_rescan_rssi_diff);
sme_debug("nRoamRescanRssiDiff: %d", sme_debug("neighbor_scan_min_chan_time: %d",
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_min_chan_time);
nRoamRescanRssiDiff); sme_debug("neighbor_scan_max_chan_time: %d",
sme_debug("nNeighborScanMinChanTime: %d", mac->mlme_cfg->lfr.neighbor_scan_max_chan_time);
mac->roam.configParam.neighborRoamConfig. sme_debug("neighbor_scan_results_refresh_period: %d",
nNeighborScanMinChanTime); mac->mlme_cfg->lfr.
sme_debug("nNeighborScanMaxChanTime: %d", neighbor_scan_results_refresh_period);
mac->roam.configParam.neighborRoamConfig. sme_debug("empty_scan_refresh_period: %d",
nNeighborScanMaxChanTime); mac->mlme_cfg->lfr.empty_scan_refresh_period);
sme_debug("nNeighborResultsRefreshPeriod: %d",
mac->roam.configParam.neighborRoamConfig.
nNeighborResultsRefreshPeriod);
sme_debug("nEmptyScanRefreshPeriod: %d",
mac->roam.configParam.neighborRoamConfig.
nEmptyScanRefreshPeriod);
{ {
int i; int i;
sme_debug("Num of Channels in CFG Channel List: %d", sme_debug("Num of Channels in CFG Channel List: %d",
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.
neighborScanChanList.numChannels); neighbor_scan_channel_list_num);
for (i = 0; for (i = 0; i < mac->mlme_cfg->lfr.
i < neighbor_scan_channel_list_num; i++) {
mac->roam.configParam.neighborRoamConfig. sme_debug("%d ", mac->mlme_cfg->lfr.
neighborScanChanList.numChannels; i++) { neighbor_scan_channel_list[i]);
sme_debug("%d ",
mac->roam.configParam.
neighborRoamConfig.neighborScanChanList.
channelList[i]);
} }
} }
sme_debug("nRoamBmissFirstBcnt: %d", sme_debug("roam_bmiss_first_bcnt: %d",
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.roam_bmiss_first_bcnt);
nRoamBmissFirstBcnt); sme_debug("roam_bmiss_final_bcnt: %d",
sme_debug("nRoamBmissFinalBcnt: %d", mac->mlme_cfg->lfr.roam_bmiss_final_bcnt);
mac->roam.configParam.neighborRoamConfig. sme_debug("roam_beacon_rssi_weight: %d",
nRoamBmissFinalBcnt); mac->mlme_cfg->lfr.roam_beacon_rssi_weight);
sme_debug("nRoamBeaconRssiWeight: %d",
mac->roam.configParam.neighborRoamConfig.
nRoamBeaconRssiWeight);
mac->scan.fEnableDFSChnlScan = pParam->fEnableDFSChnlScan; mac->scan.fEnableDFSChnlScan = pParam->fEnableDFSChnlScan;
mac->scan.scanResultCfgAgingTime = pParam->scanCfgAgingTime; mac->scan.scanResultCfgAgingTime = pParam->scanCfgAgingTime;
mac->roam.configParam.fScanTwice = pParam->fScanTwice; mac->roam.configParam.fScanTwice = pParam->fScanTwice;
@@ -2759,8 +2691,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal mac,
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
mac->roam.configParam.cc_switch_mode = pParam->cc_switch_mode; mac->roam.configParam.cc_switch_mode = pParam->cc_switch_mode;
#endif #endif
mac->roam.configParam.allowDFSChannelRoam =
pParam->allowDFSChannelRoam;
mac->roam.configParam.obssEnabled = pParam->obssEnabled; mac->roam.configParam.obssEnabled = pParam->obssEnabled;
mac->roam.configParam.vendor_vht_sap = mac->roam.configParam.vendor_vht_sap =
pParam->vendor_vht_sap; pParam->vendor_vht_sap;
@@ -2916,36 +2846,6 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal mac, tCsrConfigParam *pParam)
pParam->fEnableMCCMode = cfg_params->fenableMCCMode; pParam->fEnableMCCMode = cfg_params->fenableMCCMode;
pParam->fAllowMCCGODiffBI = cfg_params->fAllowMCCGODiffBI; pParam->fAllowMCCGODiffBI = cfg_params->fAllowMCCGODiffBI;
pParam->scanCfgAgingTime = mac->scan.scanResultCfgAgingTime; pParam->scanCfgAgingTime = mac->scan.scanResultCfgAgingTime;
qdf_mem_copy(&pParam->neighborRoamConfig,
&cfg_params->neighborRoamConfig,
sizeof(tCsrNeighborRoamConfigParams));
pParam->isFastTransitionEnabled = cfg_params->isFastTransitionEnabled;
pParam->RoamRssiDiff = cfg_params->RoamRssiDiff;
pParam->nRoamPrefer5GHz = cfg_params->nRoamPrefer5GHz;
pParam->nRoamIntraBand = cfg_params->nRoamIntraBand;
pParam->isWESModeEnabled = cfg_params->isWESModeEnabled;
pParam->nProbes = cfg_params->nProbes;
pParam->nRoamScanHomeAwayTime = cfg_params->nRoamScanHomeAwayTime;
pParam->isRoamOffloadScanEnabled = cfg_params->isRoamOffloadScanEnabled;
pParam->bFastRoamInConIniFeatureEnabled =
cfg_params->bFastRoamInConIniFeatureEnabled;
pParam->isFastRoamIniFeatureEnabled =
cfg_params->isFastRoamIniFeatureEnabled;
#ifdef FEATURE_WLAN_ESE
pParam->isEseIniFeatureEnabled = cfg_params->isEseIniFeatureEnabled;
#endif
qdf_mem_copy(&pParam->neighborRoamConfig,
&cfg_params->neighborRoamConfig,
sizeof(tCsrNeighborRoamConfigParams));
sme_debug("Num of Channels in CFG Channel List: %d",
cfg_params->neighborRoamConfig.
neighborScanChanList.numChannels);
for (i = 0; i < cfg_params->neighborRoamConfig.
neighborScanChanList.numChannels; i++) {
sme_debug("%d ",
cfg_params->neighborRoamConfig.
neighborScanChanList.channelList[i]);
}
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
pParam->cc_switch_mode = cfg_params->cc_switch_mode; pParam->cc_switch_mode = cfg_params->cc_switch_mode;
@@ -2957,7 +2857,6 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal mac, tCsrConfigParam *pParam)
pParam->roam_trigger_reason_bitmask = pParam->roam_trigger_reason_bitmask =
cfg_params->roam_trigger_reason_bitmask; cfg_params->roam_trigger_reason_bitmask;
pParam->isCoalesingInIBSSAllowed = cfg_params->isCoalesingInIBSSAllowed; pParam->isCoalesingInIBSSAllowed = cfg_params->isCoalesingInIBSSAllowed;
pParam->allowDFSChannelRoam = cfg_params->allowDFSChannelRoam;
pParam->nInitialDwellTime = cfg_params->nInitialDwellTime; pParam->nInitialDwellTime = cfg_params->nInitialDwellTime;
pParam->initial_scan_no_dfs_chnl = cfg_params->initial_scan_no_dfs_chnl; pParam->initial_scan_no_dfs_chnl = cfg_params->initial_scan_no_dfs_chnl;
csr_set_channels(mac, pParam); csr_set_channels(mac, pParam);
@@ -6363,9 +6262,9 @@ bool csr_roam_is_fast_roam_enabled(tpAniSirGlobal mac, uint32_t sessionId)
} }
} }
if (true == CSR_IS_FASTROAM_IN_CONCURRENCY_INI_FEATURE_ENABLED(mac)) { if (true == CSR_IS_FASTROAM_IN_CONCURRENCY_INI_FEATURE_ENABLED(mac)) {
return mac->roam.configParam.isFastRoamIniFeatureEnabled; return mac->mlme_cfg->lfr.lfr_enabled;
} else { } else {
return mac->roam.configParam.isFastRoamIniFeatureEnabled && return mac->mlme_cfg->lfr.lfr_enabled &&
(!csr_is_concurrent_session_running(mac)); (!csr_is_concurrent_session_running(mac));
} }
} }
@@ -8973,9 +8872,10 @@ QDF_STATUS csr_roam_save_connected_information(tpAniSirGlobal mac,
&pIesTemp); &pIesTemp);
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
if ((csr_is_profile_ese(pProfile) || if ((csr_is_profile_ese(pProfile) ||
(QDF_IS_STATUS_SUCCESS(status) && (pIesTemp->ESEVersion.present) (QDF_IS_STATUS_SUCCESS(status) &&
&& (pProfile->negotiatedAuthType == eCSR_AUTH_TYPE_OPEN_SYSTEM))) (pIesTemp->ESEVersion.present) &&
&& (mac->roam.configParam.isEseIniFeatureEnabled)) { (pProfile->negotiatedAuthType == eCSR_AUTH_TYPE_OPEN_SYSTEM))) &&
(mac->mlme_cfg->lfr.ese_enabled)) {
pConnectProfile->isESEAssoc = 1; pConnectProfile->isESEAssoc = 1;
} }
#endif #endif
@@ -15453,7 +15353,7 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal mac, uint32_t sessionId,
(pProfile->negotiatedMCEncryptionType); (pProfile->negotiatedMCEncryptionType);
csr_set_mgmt_enc_type(pProfile, pIes, csr_join_req); csr_set_mgmt_enc_type(pProfile, pIes, csr_join_req);
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
ese_config = mac->roam.configParam.isEseIniFeatureEnabled; ese_config = mac->mlme_cfg->lfr.ese_enabled;
#endif #endif
pProfile->MDID.mdiePresent = pBssDescription->mdiePresent; pProfile->MDID.mdiePresent = pBssDescription->mdiePresent;
if (csr_is_profile11r(mac, pProfile) if (csr_is_profile11r(mac, pProfile)
@@ -17781,7 +17681,7 @@ csr_update_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
qdf_mem_copy(req_buf->R0KH_ID, qdf_mem_copy(req_buf->R0KH_ID,
session->ftSmeContext.r0kh_id, session->ftSmeContext.r0kh_id,
req_buf->R0KH_ID_Length); req_buf->R0KH_ID_Length);
req_buf->Prefer5GHz = mac_ctx->roam.configParam.nRoamPrefer5GHz; req_buf->Prefer5GHz = (uint8_t)mac_ctx->mlme_cfg->lfr.roam_prefer_5ghz;
req_buf->RoamRssiCatGap = mac_ctx->roam.configParam.bCatRssiOffset; req_buf->RoamRssiCatGap = mac_ctx->roam.configParam.bCatRssiOffset;
req_buf->Select5GHzMargin = mac_ctx->mlme_cfg->gen.select_5ghz_margin; req_buf->Select5GHzMargin = mac_ctx->mlme_cfg->gen.select_5ghz_margin;
req_buf->ho_delay_for_rx = mac_ctx->roam.configParam.ho_delay_for_rx; req_buf->ho_delay_for_rx = mac_ctx->roam.configParam.ho_delay_for_rx;
@@ -17880,10 +17780,11 @@ csr_fetch_ch_lst_from_ini(tpAniSirGlobal mac_ctx,
if (!csr_check_band_channel_match(band, *ch_lst)) if (!csr_check_band_channel_match(band, *ch_lst))
continue; continue;
/* Allow DFS channels only if the DFS roaming is enabled */ /* Allow DFS channels only if the DFS roaming is enabled */
if ((!mac_ctx->roam.configParam.allowDFSChannelRoam || if (((mac_ctx->mlme_cfg->lfr.roaming_dfs_channel !=
(mac_ctx->roam.configParam.sta_roam_policy.dfs_mode == ROAMING_DFS_CHANNEL_DISABLED) ||
(mac_ctx->roam.configParam.sta_roam_policy.dfs_mode ==
CSR_STA_ROAM_POLICY_DFS_DISABLED)) && CSR_STA_ROAM_POLICY_DFS_DISABLED)) &&
(wlan_reg_is_dfs_ch(mac_ctx->pdev, *ch_lst))) { (wlan_reg_is_dfs_ch(mac_ctx->pdev, *ch_lst))) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
("ignoring dfs channel %d"), *ch_lst); ("ignoring dfs channel %d"), *ch_lst);
ch_lst++; ch_lst++;
@@ -17961,10 +17862,11 @@ csr_fetch_ch_lst_from_occupied_lst(tpAniSirGlobal mac_ctx,
sizeof(unsafe_chan)); sizeof(unsafe_chan));
for (i = 0; i < mac_ctx->scan.occupiedChannels[session_id].numChannels; for (i = 0; i < mac_ctx->scan.occupiedChannels[session_id].numChannels;
i++) { i++) {
if ((!mac_ctx->roam.configParam.allowDFSChannelRoam || if (((mac_ctx->mlme_cfg->lfr.roaming_dfs_channel !=
(mac_ctx->roam.configParam.sta_roam_policy.dfs_mode == ROAMING_DFS_CHANNEL_DISABLED) ||
(mac_ctx->roam.configParam.sta_roam_policy.dfs_mode ==
CSR_STA_ROAM_POLICY_DFS_DISABLED)) && CSR_STA_ROAM_POLICY_DFS_DISABLED)) &&
(wlan_reg_is_dfs_ch(mac_ctx->pdev, *ch_lst))) { (wlan_reg_is_dfs_ch(mac_ctx->pdev, *ch_lst))) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
("ignoring dfs channel %d"), *ch_lst); ("ignoring dfs channel %d"), *ch_lst);
ch_lst++; ch_lst++;
@@ -17995,7 +17897,7 @@ csr_fetch_ch_lst_from_occupied_lst(tpAniSirGlobal mac_ctx,
if (*ch_lst) if (*ch_lst)
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"DFSRoam=%d, ChnlState=%d, Chnl=%d, num_ch=%d", "DFSRoam=%d, ChnlState=%d, Chnl=%d, num_ch=%d",
mac_ctx->roam.configParam.allowDFSChannelRoam, mac_ctx->mlme_cfg->lfr.roaming_dfs_channel,
wlan_reg_get_channel_state(mac_ctx->pdev, wlan_reg_get_channel_state(mac_ctx->pdev,
*ch_lst), *ch_lst),
*ch_lst, *ch_lst,
@@ -18070,10 +17972,11 @@ csr_fetch_valid_ch_lst(tpAniSirGlobal mac_ctx,
continue; continue;
} }
if ((!mac_ctx->roam.configParam.allowDFSChannelRoam || if (((mac_ctx->mlme_cfg->lfr.roaming_dfs_channel !=
(mac_ctx->roam.configParam.sta_roam_policy.dfs_mode == ROAMING_DFS_CHANNEL_DISABLED) ||
(mac_ctx->roam.configParam.sta_roam_policy.dfs_mode ==
CSR_STA_ROAM_POLICY_DFS_DISABLED)) && CSR_STA_ROAM_POLICY_DFS_DISABLED)) &&
(wlan_reg_is_dfs_ch(mac_ctx->pdev, *ch_lst))) { (wlan_reg_is_dfs_ch(mac_ctx->pdev, *ch_lst))) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
("ignoring dfs channel %d"), *ch_lst); ("ignoring dfs channel %d"), *ch_lst);
ch_lst++; ch_lst++;
@@ -18175,7 +18078,7 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
roam_info->b_roam_scan_offload_started; roam_info->b_roam_scan_offload_started;
} else { } else {
req_buf->RoamScanOffloadEnabled = req_buf->RoamScanOffloadEnabled =
mac_ctx->roam.configParam.isRoamOffloadScanEnabled; mac_ctx->mlme_cfg->lfr.roam_scan_offload_enabled;
} }
qdf_mem_copy(req_buf->ConnectedNetwork.currAPbssid, qdf_mem_copy(req_buf->ConnectedNetwork.currAPbssid,
roam_info->currAPbssid.bytes, sizeof(struct qdf_mac_addr)); roam_info->currAPbssid.bytes, sizeof(struct qdf_mac_addr));
@@ -18206,7 +18109,7 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
roam_info->cfgParams.nOpportunisticThresholdDiff; roam_info->cfgParams.nOpportunisticThresholdDiff;
req_buf->RoamRescanRssiDiff = req_buf->RoamRescanRssiDiff =
roam_info->cfgParams.nRoamRescanRssiDiff; roam_info->cfgParams.nRoamRescanRssiDiff;
req_buf->RoamRssiDiff = mac_ctx->roam.configParam.RoamRssiDiff; req_buf->RoamRssiDiff = mac_ctx->mlme_cfg->lfr.roam_rssi_diff;
req_buf->rssi_abs_thresh = req_buf->rssi_abs_thresh =
mac_ctx->mlme_cfg->lfr.roam_rssi_abs_threshold; mac_ctx->mlme_cfg->lfr.roam_rssi_abs_threshold;
req_buf->reason = reason; req_buf->reason = reason;
@@ -18322,8 +18225,8 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
mac_ctx->roam.roamSession[session_id]. mac_ctx->roam.roamSession[session_id].
connectedProfile.MDID.mobilityDomain; connectedProfile.MDID.mobilityDomain;
req_buf->sessionId = session_id; req_buf->sessionId = session_id;
req_buf->nProbes = mac_ctx->roam.configParam.nProbes; req_buf->nProbes = mac_ctx->mlme_cfg->lfr.roam_scan_n_probes;
req_buf->HomeAwayTime = mac_ctx->roam.configParam.nRoamScanHomeAwayTime; req_buf->HomeAwayTime = mac_ctx->mlme_cfg->lfr.roam_scan_home_away_time;
/* /*
* Home Away Time should be at least equal to (MaxDwell time + (2*RFS)), * Home Away Time should be at least equal to (MaxDwell time + (2*RFS)),
@@ -18344,8 +18247,8 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
dot11_mode = (uint8_t) csr_translate_to_wni_cfg_dot11_mode(mac_ctx, dot11_mode = (uint8_t) csr_translate_to_wni_cfg_dot11_mode(mac_ctx,
csr_find_best_phy_mode(mac_ctx, csr_find_best_phy_mode(mac_ctx,
mac_ctx->roam.configParam.phyMode)); mac_ctx->roam.configParam.phyMode));
req_buf->allowDFSChannelRoam = req_buf->allowDFSChannelRoam = (eSirDFSRoamScanMode)
mac_ctx->roam.configParam.allowDFSChannelRoam; mac_ctx->mlme_cfg->lfr.roaming_dfs_channel;
req_buf->early_stop_scan_enable = req_buf->early_stop_scan_enable =
mac_ctx->mlme_cfg->lfr.early_stop_scan_enable; mac_ctx->mlme_cfg->lfr.early_stop_scan_enable;
req_buf->early_stop_scan_min_threshold = req_buf->early_stop_scan_min_threshold =
@@ -18797,8 +18700,8 @@ static void ese_populate_addtional_ies(tpAniSirGlobal mac_ctx,
tspec_ie = (ese_wmm_tspec_ie *)(tspec_ie_buf + SIR_MAC_OUI_WME_HDR_MIN); tspec_ie = (ese_wmm_tspec_ie *)(tspec_ie_buf + SIR_MAC_OUI_WME_HDR_MIN);
if (csr_is_wmm_supported(mac_ctx) && if (csr_is_wmm_supported(mac_ctx) &&
mac_ctx->roam.configParam.isEseIniFeatureEnabled && mac_ctx->mlme_cfg->lfr.ese_enabled &&
csr_roam_is_ese_assoc(mac_ctx, session->sessionId)) { csr_roam_is_ese_assoc(mac_ctx, session->sessionId)) {
ese_tspec.numTspecs = sme_qos_ese_retrieve_tspec_info(mac_ctx, ese_tspec.numTspecs = sme_qos_ese_retrieve_tspec_info(mac_ctx,
session->sessionId, session->sessionId,
(tTspecInfo *) &ese_tspec.tspec[0]); (tTspecInfo *) &ese_tspec.tspec[0]);
@@ -18883,7 +18786,7 @@ static void csr_update_driver_assoc_ies(tpAniSirGlobal mac_ctx,
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
/* Append ESE version IE if isEseIniFeatureEnabled INI is enabled */ /* Append ESE version IE if isEseIniFeatureEnabled INI is enabled */
if (mac_ctx->roam.configParam.isEseIniFeatureEnabled) if (mac_ctx->mlme_cfg->lfr.ese_enabled)
csr_append_assoc_ies(mac_ctx, req_buf, IEEE80211_ELEMID_VENDOR, csr_append_assoc_ies(mac_ctx, req_buf, IEEE80211_ELEMID_VENDOR,
DOT11F_IE_ESEVERSION_MAX_LEN, DOT11F_IE_ESEVERSION_MAX_LEN,
ese_ie); ese_ie);

View File

@@ -995,7 +995,7 @@ static void csr_neighbor_roam_info_ctx_init(
if (csr_is_auth_type11r if (csr_is_auth_type11r
(mac, session->connectedProfile.AuthType, (mac, session->connectedProfile.AuthType,
session->connectedProfile.MDID.mdiePresent)) { session->connectedProfile.MDID.mdiePresent)) {
if (mac->roam.configParam.isFastTransitionEnabled) if (mac->mlme_cfg->lfr.fast_transition_enabled)
init_ft_flag = true; init_ft_flag = true;
ngbr_roam_info->is11rAssoc = true; ngbr_roam_info->is11rAssoc = true;
} else } else
@@ -1006,7 +1006,7 @@ static void csr_neighbor_roam_info_ctx_init(
#ifdef FEATURE_WLAN_ESE #ifdef FEATURE_WLAN_ESE
/* Based on the auth scheme tell if we are 11r */ /* Based on the auth scheme tell if we are 11r */
if (session->connectedProfile.isESEAssoc) { if (session->connectedProfile.isESEAssoc) {
if (mac->roam.configParam.isFastTransitionEnabled) if (mac->mlme_cfg->lfr.fast_transition_enabled)
init_ft_flag = true; init_ft_flag = true;
ngbr_roam_info->isESEAssoc = true; ngbr_roam_info->isESEAssoc = true;
} else } else
@@ -1226,53 +1226,44 @@ QDF_STATUS csr_neighbor_roam_init(tpAniSirGlobal mac, uint8_t sessionId)
pNeighborRoamInfo->prevNeighborRoamState = pNeighborRoamInfo->prevNeighborRoamState =
eCSR_NEIGHBOR_ROAM_STATE_CLOSED; eCSR_NEIGHBOR_ROAM_STATE_CLOSED;
pNeighborRoamInfo->cfgParams.maxChannelScanTime = pNeighborRoamInfo->cfgParams.maxChannelScanTime =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_max_chan_time;
nNeighborScanMaxChanTime;
pNeighborRoamInfo->cfgParams.minChannelScanTime = pNeighborRoamInfo->cfgParams.minChannelScanTime =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_min_chan_time;
nNeighborScanMinChanTime;
pNeighborRoamInfo->cfgParams.neighborLookupThreshold = pNeighborRoamInfo->cfgParams.neighborLookupThreshold =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_lookup_rssi_threshold;
nNeighborLookupRssiThreshold;
pNeighborRoamInfo->cfgParams.rssi_thresh_offset_5g = pNeighborRoamInfo->cfgParams.rssi_thresh_offset_5g =
mac->mlme_cfg->lfr.rssi_threshold_offset_5g; mac->mlme_cfg->lfr.rssi_threshold_offset_5g;
pNeighborRoamInfo->cfgParams.delay_before_vdev_stop = pNeighborRoamInfo->cfgParams.delay_before_vdev_stop =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.delay_before_vdev_stop;
delay_before_vdev_stop;
pNeighborRoamInfo->cfgParams.nOpportunisticThresholdDiff = pNeighborRoamInfo->cfgParams.nOpportunisticThresholdDiff =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.opportunistic_scan_threshold_diff;
nOpportunisticThresholdDiff;
pNeighborRoamInfo->cfgParams.nRoamRescanRssiDiff = pNeighborRoamInfo->cfgParams.nRoamRescanRssiDiff =
mac->roam.configParam.neighborRoamConfig.nRoamRescanRssiDiff; mac->mlme_cfg->lfr.roam_rescan_rssi_diff;
pNeighborRoamInfo->cfgParams.nRoamBmissFirstBcnt = pNeighborRoamInfo->cfgParams.nRoamBmissFirstBcnt =
mac->roam.configParam.neighborRoamConfig.nRoamBmissFirstBcnt; mac->mlme_cfg->lfr.roam_bmiss_first_bcnt;
pNeighborRoamInfo->cfgParams.nRoamBmissFinalBcnt = pNeighborRoamInfo->cfgParams.nRoamBmissFinalBcnt =
mac->roam.configParam.neighborRoamConfig.nRoamBmissFinalBcnt; mac->mlme_cfg->lfr.roam_bmiss_final_bcnt;
pNeighborRoamInfo->cfgParams.nRoamBeaconRssiWeight = pNeighborRoamInfo->cfgParams.nRoamBeaconRssiWeight =
mac->roam.configParam.neighborRoamConfig.nRoamBeaconRssiWeight; mac->mlme_cfg->lfr.roam_beacon_rssi_weight;
pNeighborRoamInfo->cfgParams.neighborScanPeriod = pNeighborRoamInfo->cfgParams.neighborScanPeriod =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_timer_period;
nNeighborScanTimerPeriod;
pNeighborRoamInfo->cfgParams.neighbor_scan_min_period = pNeighborRoamInfo->cfgParams.neighbor_scan_min_period =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_min_timer_period;
neighbor_scan_min_timer_period;
pNeighborRoamInfo->cfgParams.neighborResultsRefreshPeriod = pNeighborRoamInfo->cfgParams.neighborResultsRefreshPeriod =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_results_refresh_period;
nNeighborResultsRefreshPeriod;
pNeighborRoamInfo->cfgParams.emptyScanRefreshPeriod = pNeighborRoamInfo->cfgParams.emptyScanRefreshPeriod =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.empty_scan_refresh_period;
nEmptyScanRefreshPeriod;
pNeighborRoamInfo->cfgParams.channelInfo.numOfChannels = pNeighborRoamInfo->cfgParams.channelInfo.numOfChannels =
mac->roam.configParam.neighborRoamConfig.neighborScanChanList. mac->mlme_cfg->lfr.neighbor_scan_channel_list_num;
numChannels;
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
FL("number of channels: %u"), FL("number of channels: %u"),
pNeighborRoamInfo->cfgParams.channelInfo.numOfChannels); pNeighborRoamInfo->cfgParams.channelInfo.numOfChannels);
if (pNeighborRoamInfo->cfgParams.channelInfo.numOfChannels != 0) { if (pNeighborRoamInfo->cfgParams.channelInfo.numOfChannels != 0) {
pNeighborRoamInfo->cfgParams.channelInfo.ChannelList = pNeighborRoamInfo->cfgParams.channelInfo.ChannelList =
qdf_mem_malloc(mac->roam.configParam.neighborRoamConfig. qdf_mem_malloc(mac->mlme_cfg->lfr.
neighborScanChanList.numChannels); neighbor_scan_channel_list_num);
if (!pNeighborRoamInfo->cfgParams.channelInfo.ChannelList) if (!pNeighborRoamInfo->cfgParams.channelInfo.ChannelList)
return QDF_STATUS_E_NOMEM; return QDF_STATUS_E_NOMEM;
@@ -1282,22 +1273,16 @@ QDF_STATUS csr_neighbor_roam_init(tpAniSirGlobal mac, uint8_t sessionId)
/* Update the roam global structure from CFG */ /* Update the roam global structure from CFG */
qdf_mem_copy(pNeighborRoamInfo->cfgParams.channelInfo.ChannelList, qdf_mem_copy(pNeighborRoamInfo->cfgParams.channelInfo.ChannelList,
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.neighbor_scan_channel_list,
neighborScanChanList.channelList, mac->mlme_cfg->lfr.neighbor_scan_channel_list_num);
mac->roam.configParam.neighborRoamConfig.
neighborScanChanList.numChannels);
pNeighborRoamInfo->cfgParams.hi_rssi_scan_max_count = pNeighborRoamInfo->cfgParams.hi_rssi_scan_max_count =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.roam_scan_hi_rssi_maxcount;
nhi_rssi_scan_max_count;
pNeighborRoamInfo->cfgParams.hi_rssi_scan_rssi_delta = pNeighborRoamInfo->cfgParams.hi_rssi_scan_rssi_delta =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.roam_scan_hi_rssi_delta;
nhi_rssi_scan_rssi_delta;
pNeighborRoamInfo->cfgParams.hi_rssi_scan_delay = pNeighborRoamInfo->cfgParams.hi_rssi_scan_delay =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.roam_scan_hi_rssi_delay;
nhi_rssi_scan_delay;
pNeighborRoamInfo->cfgParams.hi_rssi_scan_rssi_ub = pNeighborRoamInfo->cfgParams.hi_rssi_scan_rssi_ub =
mac->roam.configParam.neighborRoamConfig. mac->mlme_cfg->lfr.roam_scan_hi_rssi_ub;
nhi_rssi_scan_rssi_ub;
qdf_zero_macaddr(&pNeighborRoamInfo->currAPbssid); qdf_zero_macaddr(&pNeighborRoamInfo->currAPbssid);
pNeighborRoamInfo->currentNeighborLookupThreshold = pNeighborRoamInfo->currentNeighborLookupThreshold =

View File

@@ -2795,8 +2795,8 @@ struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
if ((self_sta_req->type == WMI_VDEV_TYPE_STA) && if ((self_sta_req->type == WMI_VDEV_TYPE_STA) &&
(self_sta_req->sub_type == 0)) (self_sta_req->sub_type == 0))
wma_roam_scan_bmiss_cnt(wma_handle, wma_roam_scan_bmiss_cnt(wma_handle,
mac->roam.configParam.neighborRoamConfig.nRoamBmissFirstBcnt, mac->mlme_cfg->lfr.roam_bmiss_first_bcnt,
mac->roam.configParam.neighborRoamConfig.nRoamBmissFinalBcnt, mac->mlme_cfg->lfr.roam_bmiss_final_bcnt,
self_sta_req->session_id); self_sta_req->session_id);
if (wlan_cfg_get_int(mac, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED, if (wlan_cfg_get_int(mac, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,

View File

@@ -91,6 +91,7 @@
#include "wlan_cp_stats_mc_ucfg_api.h" #include "wlan_cp_stats_mc_ucfg_api.h"
#include "cfg_nan_api.h" #include "cfg_nan_api.h"
#include "wlan_mlme_api.h" #include "wlan_mlme_api.h"
#include "wlan_mlme_ucfg_api.h"
#define WMA_LOG_COMPLETION_TIMER 3000 /* 3 seconds */ #define WMA_LOG_COMPLETION_TIMER 3000 /* 3 seconds */
#define WMI_TLV_HEADROOM 128 #define WMI_TLV_HEADROOM 128
@@ -3183,6 +3184,7 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
void *cds_context; void *cds_context;
target_resource_config *wlan_res_cfg; target_resource_config *wlan_res_cfg;
enum pmo_wow_enable_type wow_enable; enum pmo_wow_enable_type wow_enable;
uint8_t delay_before_vdev_stop;
WMA_LOGD("%s: Enter", __func__); WMA_LOGD("%s: Enter", __func__);
@@ -3359,8 +3361,10 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
for (i = 0; i < wma_handle->max_bssid; ++i) { for (i = 0; i < wma_handle->max_bssid; ++i) {
wma_vdev_init(&wma_handle->interfaces[i]); wma_vdev_init(&wma_handle->interfaces[i]);
ucfg_mlme_get_delay_before_vdev_stop(wma_handle->psoc,
&delay_before_vdev_stop);
wma_handle->interfaces[i].delay_before_vdev_stop = wma_handle->interfaces[i].delay_before_vdev_stop =
cds_cfg->delay_before_vdev_stop; delay_before_vdev_stop;
} }
/* Register the debug print event handler */ /* Register the debug print event handler */
wmi_unified_register_event_handler(wma_handle->wmi_handle, wmi_unified_register_event_handler(wma_handle->wmi_handle,