qcacld-3.0: Use MLME CFG for BSS Scoring Items
Implement the usage of MLME CFG infra for BSS Scoring related INI Items and remove the older INI definitions from HDD. Change-Id: I0db69138f0439131916a38176b5b21b706ff3671 CRs-Fixed: 2318320
This commit is contained in:

committed by
nshrivas

parent
db2dbab047
commit
987f0bba09
@@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include "wlan_mlme_main.h"
|
#include "wlan_mlme_main.h"
|
||||||
#include "cfg_ucfg_api.h"
|
#include "cfg_ucfg_api.h"
|
||||||
|
#include "wlan_scan_public_structs.h"
|
||||||
|
|
||||||
struct wlan_mlme_psoc_obj *mlme_get_psoc_obj(struct wlan_objmgr_psoc *psoc)
|
struct wlan_mlme_psoc_obj *mlme_get_psoc_obj(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
@@ -375,6 +376,151 @@ static void wlan_mlme_init_lfr_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
cfg_default(CFG_LFR_MAX_NUM_PRE_AUTH);
|
cfg_default(CFG_LFR_MAX_NUM_PRE_AUTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t
|
||||||
|
mlme_limit_max_per_index_score(uint32_t per_index_score)
|
||||||
|
{
|
||||||
|
uint8_t i, score;
|
||||||
|
|
||||||
|
for (i = 0; i < MAX_INDEX_PER_INI; i++) {
|
||||||
|
score = WLAN_GET_SCORE_PERCENTAGE(per_index_score, i);
|
||||||
|
if (score > MAX_INDEX_SCORE)
|
||||||
|
WLAN_SET_SCORE_PERCENTAGE(per_index_score,
|
||||||
|
MAX_INDEX_SCORE, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return per_index_score;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void mlme_init_scoring_cfg(struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct wlan_mlme_scoring_cfg *scoring_cfg)
|
||||||
|
{
|
||||||
|
uint32_t total_weight;
|
||||||
|
|
||||||
|
scoring_cfg->enable_scoring_for_roam =
|
||||||
|
cfg_get(psoc, CFG_ENABLE_SCORING_FOR_ROAM);
|
||||||
|
scoring_cfg->weight_cfg.rssi_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_RSSI_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.ht_caps_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_HT_CAPS_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.vht_caps_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_VHT_CAPS_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.he_caps_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_HE_CAPS_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.chan_width_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_CHAN_WIDTH_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.chan_band_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_CHAN_BAND_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.nss_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_NSS_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.beamforming_cap_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_BEAMFORM_CAP_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.pcl_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_PCL_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.channel_congestion_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_CHAN_CONGESTION_WEIGHTAGE);
|
||||||
|
scoring_cfg->weight_cfg.oce_wan_weightage =
|
||||||
|
cfg_get(psoc, CFG_SCORING_OCE_WAN_WEIGHTAGE);
|
||||||
|
|
||||||
|
total_weight = scoring_cfg->enable_scoring_for_roam +
|
||||||
|
scoring_cfg->weight_cfg.rssi_weightage +
|
||||||
|
scoring_cfg->weight_cfg.ht_caps_weightage +
|
||||||
|
scoring_cfg->weight_cfg.vht_caps_weightage +
|
||||||
|
scoring_cfg->weight_cfg.he_caps_weightage +
|
||||||
|
scoring_cfg->weight_cfg.chan_width_weightage +
|
||||||
|
scoring_cfg->weight_cfg.chan_band_weightage +
|
||||||
|
scoring_cfg->weight_cfg.nss_weightage +
|
||||||
|
scoring_cfg->weight_cfg.beamforming_cap_weightage +
|
||||||
|
scoring_cfg->weight_cfg.pcl_weightage +
|
||||||
|
scoring_cfg->weight_cfg.channel_congestion_weightage +
|
||||||
|
scoring_cfg->weight_cfg.oce_wan_weightage;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If configured weights are greater than max weight,
|
||||||
|
* fallback to default weights
|
||||||
|
*/
|
||||||
|
if (total_weight > BEST_CANDIDATE_MAX_WEIGHT) {
|
||||||
|
mlme_err("Total weight greater than %d, using default weights",
|
||||||
|
BEST_CANDIDATE_MAX_WEIGHT);
|
||||||
|
scoring_cfg->weight_cfg.rssi_weightage = RSSI_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.ht_caps_weightage =
|
||||||
|
HT_CAPABILITY_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.vht_caps_weightage =
|
||||||
|
VHT_CAP_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.he_caps_weightage = HE_CAP_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.chan_width_weightage =
|
||||||
|
CHAN_WIDTH_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.chan_band_weightage =
|
||||||
|
CHAN_BAND_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.nss_weightage = NSS_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.beamforming_cap_weightage =
|
||||||
|
BEAMFORMING_CAP_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.pcl_weightage = PCL_WEIGHT;
|
||||||
|
scoring_cfg->weight_cfg.channel_congestion_weightage =
|
||||||
|
CHANNEL_CONGESTION_WEIGHTAGE;
|
||||||
|
scoring_cfg->weight_cfg.oce_wan_weightage = OCE_WAN_WEIGHTAGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
scoring_cfg->rssi_score.best_rssi_threshold =
|
||||||
|
cfg_get(psoc, CFG_SCORING_BEST_RSSI_THRESHOLD);
|
||||||
|
scoring_cfg->rssi_score.good_rssi_threshold =
|
||||||
|
cfg_get(psoc, CFG_SCORING_GOOD_RSSI_THRESHOLD);
|
||||||
|
scoring_cfg->rssi_score.bad_rssi_threshold =
|
||||||
|
cfg_get(psoc, CFG_SCORING_BAD_RSSI_THRESHOLD);
|
||||||
|
|
||||||
|
scoring_cfg->rssi_score.good_rssi_pcnt =
|
||||||
|
cfg_get(psoc, CFG_SCORING_GOOD_RSSI_PERCENT);
|
||||||
|
scoring_cfg->rssi_score.bad_rssi_pcnt =
|
||||||
|
cfg_get(psoc, CFG_SCORING_BAD_RSSI_PERCENT);
|
||||||
|
|
||||||
|
scoring_cfg->rssi_score.good_rssi_bucket_size =
|
||||||
|
cfg_get(psoc, CFG_SCORING_GOOD_RSSI_BUCKET_SIZE);
|
||||||
|
scoring_cfg->rssi_score.bad_rssi_bucket_size =
|
||||||
|
cfg_get(psoc, CFG_SCORING_BAD_RSSI_BUCKET_SIZE);
|
||||||
|
|
||||||
|
scoring_cfg->rssi_score.rssi_pref_5g_rssi_thresh =
|
||||||
|
cfg_get(psoc, CFG_SCORING_RSSI_PREF_5G_THRESHOLD);
|
||||||
|
|
||||||
|
scoring_cfg->bandwidth_weight_per_index =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_BW_WEIGHT_PER_IDX));
|
||||||
|
scoring_cfg->nss_weight_per_index =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_NSS_WEIGHT_PER_IDX));
|
||||||
|
scoring_cfg->band_weight_per_index =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_BAND_WEIGHT_PER_IDX));
|
||||||
|
|
||||||
|
scoring_cfg->esp_qbss_scoring.num_slot =
|
||||||
|
cfg_get(psoc, CFG_SCORING_NUM_ESP_QBSS_SLOTS);
|
||||||
|
scoring_cfg->esp_qbss_scoring.score_pcnt3_to_0 =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_ESP_QBSS_SCORE_IDX_3_TO_0));
|
||||||
|
scoring_cfg->esp_qbss_scoring.score_pcnt7_to_4 =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_ESP_QBSS_SCORE_IDX_7_TO_4));
|
||||||
|
scoring_cfg->esp_qbss_scoring.score_pcnt11_to_8 =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_ESP_QBSS_SCORE_IDX_11_TO_8));
|
||||||
|
scoring_cfg->esp_qbss_scoring.score_pcnt15_to_12 =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_ESP_QBSS_SCORE_IDX_15_TO_12));
|
||||||
|
|
||||||
|
scoring_cfg->oce_wan_scoring.num_slot =
|
||||||
|
cfg_get(psoc, CFG_SCORING_NUM_OCE_WAN_SLOTS);
|
||||||
|
scoring_cfg->oce_wan_scoring.score_pcnt3_to_0 =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_OCE_WAN_SCORE_IDX_3_TO_0));
|
||||||
|
scoring_cfg->oce_wan_scoring.score_pcnt7_to_4 =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_OCE_WAN_SCORE_IDX_7_TO_4));
|
||||||
|
scoring_cfg->oce_wan_scoring.score_pcnt11_to_8 =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_OCE_WAN_SCORE_IDX_11_TO_8));
|
||||||
|
scoring_cfg->oce_wan_scoring.score_pcnt15_to_12 =
|
||||||
|
mlme_limit_max_per_index_score(
|
||||||
|
cfg_get(psoc, CFG_SCORING_OCE_WAN_SCORE_IDX_15_TO_12));
|
||||||
|
}
|
||||||
|
|
||||||
QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
struct wlan_mlme_psoc_obj *mlme_obj;
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
@@ -398,6 +544,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
|||||||
mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40);
|
mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40);
|
||||||
mlme_init_sta_cfg(psoc, &mlme_cfg->sta);
|
mlme_init_sta_cfg(psoc, &mlme_cfg->sta);
|
||||||
wlan_mlme_init_lfr_cfg(psoc, &mlme_cfg->lfr);
|
wlan_mlme_init_lfr_cfg(psoc, &mlme_cfg->lfr);
|
||||||
|
mlme_init_scoring_cfg(psoc, &mlme_cfg->scoring);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,7 @@
|
|||||||
#include "cfg_mlme_sta.h"
|
#include "cfg_mlme_sta.h"
|
||||||
#include "cfg_sap_protection.h"
|
#include "cfg_sap_protection.h"
|
||||||
#include "cfg_mlme_sap.h"
|
#include "cfg_mlme_sap.h"
|
||||||
|
#include "cfg_mlme_scoring.h"
|
||||||
|
|
||||||
#define CFG_MLME_ALL \
|
#define CFG_MLME_ALL \
|
||||||
CFG_CHAINMASK_ALL \
|
CFG_CHAINMASK_ALL \
|
||||||
@@ -46,6 +47,7 @@
|
|||||||
CFG_RATES_ALL \
|
CFG_RATES_ALL \
|
||||||
CFG_SAP_PROTECTION_ALL \
|
CFG_SAP_PROTECTION_ALL \
|
||||||
CFG_SAP_ALL \
|
CFG_SAP_ALL \
|
||||||
CFG_STA_ALL
|
CFG_STA_ALL \
|
||||||
|
CFG_SCORING_ALL
|
||||||
|
|
||||||
#endif /* __CFG_MLME_H */
|
#endif /* __CFG_MLME_H */
|
||||||
|
@@ -10091,143 +10091,6 @@ enum hdd_external_acs_policy {
|
|||||||
#define CFG_IS_BSSID_HINT_PRIORITY_MAX (1)
|
#define CFG_IS_BSSID_HINT_PRIORITY_MAX (1)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
|
||||||
* rssi_weightage - RSSI Weightage to calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 20
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease RSSI weightage in best candidate
|
|
||||||
* selection. AP with better RSSI will get more weightage.
|
|
||||||
*
|
|
||||||
* Related: None
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_RSSI_WEIGHTAGE_NAME "rssi_weightage"
|
|
||||||
#define CFG_RSSI_WEIGHTAGE_DEFAULT (20)
|
|
||||||
#define CFG_RSSI_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_RSSI_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* ht_caps_weightage - HT caps weightage to calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 2
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease HT caps weightage in best candidate
|
|
||||||
* selection. If AP supports HT caps, AP will get additional Weightage with
|
|
||||||
* this param. Weightage will be given only if dot11mode is HT capable.
|
|
||||||
*
|
|
||||||
* Related: None
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_HT_CAPABILITY_WEIGHTAGE_NAME "ht_caps_weightage"
|
|
||||||
#define CFG_HT_CAPABILITY_WEIGHTAGE_DEFAULT (2)
|
|
||||||
#define CFG_HT_CAPABILITY_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_HT_CAPABILITY_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* vht_caps_weightage - VHT caps Weightage to calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 1
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease VHT caps weightage in best candidate
|
|
||||||
* selection. If AP supports VHT caps, AP will get additional weightage with
|
|
||||||
* this param. Weightage will be given only if dot11mode is VHT capable.
|
|
||||||
*
|
|
||||||
* Related: None
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_VHT_CAPABILITY_WEIGHTAGE_NAME "vht_caps_weightage"
|
|
||||||
#define CFG_VHT_CAPABILITY_WEIGHTAGE_DEFAULT (1)
|
|
||||||
#define CFG_VHT_CAPABILITY_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_VHT_CAPABILITY_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* he_caps_weightage - HE caps Weightage to calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 1
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease HE caps weightage in best candidate
|
|
||||||
* selection. If AP supports HE caps, AP will get additional weightage with
|
|
||||||
* this param. Weightage will be given only if dot11mode is HE capable.
|
|
||||||
*
|
|
||||||
* Related: None
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_HE_CAPABILITY_WEIGHTAGE_NAME "he_caps_weightage"
|
|
||||||
#define CFG_HE_CAPABILITY_WEIGHTAGE_DEFAULT (2)
|
|
||||||
#define CFG_HE_CAPABILITY_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_HE_CAPABILITY_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* chan_width_weightage - Channel Width Weightage to calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 17
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease Channel Width weightage in best
|
|
||||||
* candidate selection. AP with Higher channel width will get higher weightage
|
|
||||||
*
|
|
||||||
* Related: bandwidth_weight_per_index
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_CHAN_WIDTH_WEIGHTAGE_NAME "chan_width_weightage"
|
|
||||||
#define CFG_CHAN_WIDTH_WEIGHTAGE_DEFAULT (17)
|
|
||||||
#define CFG_CHAN_WIDTH_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_CHAN_WIDTH_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* chan_band_weightage - Channel Band perferance to 5GHZ to
|
|
||||||
* calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 2
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease Channel Band Preference weightage
|
|
||||||
* in best candidate selection. 5GHZ AP get this additional boost compare to
|
|
||||||
* 2GHZ AP before rssi_pref_5g_rssi_thresh and 2.4Ghz get weightage after
|
|
||||||
* rssi_pref_5g_rssi_thresh.
|
|
||||||
*
|
|
||||||
* Related: rssi_pref_5g_rssi_thresh, band_weight_per_index
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
* gEnableFastPwrTransition - Configuration for fast power transition
|
* gEnableFastPwrTransition - Configuration for fast power transition
|
||||||
* @Min: 0
|
* @Min: 0
|
||||||
* @Max: 2
|
* @Max: 2
|
||||||
@@ -10270,739 +10133,6 @@ enum hdd_external_acs_policy {
|
|||||||
#define CFG_IS_SAE_ENABLED_MIN (0)
|
#define CFG_IS_SAE_ENABLED_MIN (0)
|
||||||
#define CFG_IS_SAE_ENABLED_MAX (1)
|
#define CFG_IS_SAE_ENABLED_MAX (1)
|
||||||
|
|
||||||
/*
|
|
||||||
* Type declarations
|
|
||||||
*/
|
|
||||||
#define CFG_CHAN_BAND_WEIGHTAGE_NAME "chan_band_weightage"
|
|
||||||
#define CFG_CHAN_BAND_WEIGHTAGE_DEFAULT (2)
|
|
||||||
#define CFG_CHAN_BAND_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_CHAN_BAND_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* nss_weightage - NSS Weightage to calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 16
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease NSS weightage in best candidate
|
|
||||||
* selection. If there are two AP, one AP supports 2x2 and another one supports
|
|
||||||
* 1x1 and station supports 2X2, first A will get this additional weightage
|
|
||||||
* depending on self-capability.
|
|
||||||
*
|
|
||||||
* Related: nss_weight_per_index
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_NSS_WEIGHTAGE_NAME "nss_weightage"
|
|
||||||
#define CFG_NSS_WEIGHTAGE_DEFAULT (16)
|
|
||||||
#define CFG_NSS_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_NSS_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* beamforming_cap_weightage - Beam Forming Weightage to
|
|
||||||
* calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 2
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease Beam forming Weightage if some AP
|
|
||||||
* support Beam forming or not. If AP supports Beam forming, that AP will get
|
|
||||||
* additional boost of this weightage.
|
|
||||||
*
|
|
||||||
* Related: None
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_BEAMFORMING_CAP_WEIGHTAGE_NAME "beamforming_cap_weightage"
|
|
||||||
#define CFG_BEAMFORMING_CAP_WEIGHTAGE_DEFAULT (2)
|
|
||||||
#define CFG_BEAMFORMING_CAP_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_BEAMFORMING_CAP_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* pcl_weightage - PCL Weightage to calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 10
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease PCL weightage in best candidate
|
|
||||||
* selection. If some APs are in PCL list, those AP will get addition
|
|
||||||
* weightage.
|
|
||||||
*
|
|
||||||
* Related: None
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_PCL_WEIGHT_WEIGHTAGE_NAME "pcl_weightage"
|
|
||||||
#define CFG_PCL_WEIGHT_DEFAULT (10)
|
|
||||||
#define CFG_PCL_WEIGHT_MIN (0)
|
|
||||||
#define CFG_PCL_WEIGHT_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* channel_congestion_weightage - channel Congestion Weightage to
|
|
||||||
* calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 5
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease channel congestion weightage in
|
|
||||||
* candidate selection. Congestion is measured with the help of ESP/QBSS load.
|
|
||||||
*
|
|
||||||
* Related: num_esp_qbss_slots
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_CHANNEL_CONGESTION_WEIGHTAGE_NAME "channel_congestion_weightage"
|
|
||||||
#define CFG_CHANNEL_CONGESTION_WEIGHTAGE_DEFAULT (5)
|
|
||||||
#define CFG_CHANNEL_CONGESTION_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_CHANNEL_CONGESTION_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* oce_wan_weightage - OCE WAN DL capacity Weightage to calculate best candidate
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 2
|
|
||||||
*
|
|
||||||
* This ini is used to increase/decrease OCE WAN caps weightage in best
|
|
||||||
* candidate selection. If AP have OCE WAN information, give weightage depending
|
|
||||||
* on the downaload available capacity.
|
|
||||||
*
|
|
||||||
* Related: num_oce_wan_slots
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_OCE_WAN_WEIGHTAGE_NAME "oce_wan_weightage"
|
|
||||||
#define CFG_OCE_WAN_WEIGHTAGE_DEFAULT (2)
|
|
||||||
#define CFG_OCE_WAN_WEIGHTAGE_MIN (0)
|
|
||||||
#define CFG_OCE_WAN_WEIGHTAGE_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* best_rssi_threshold - Best Rssi for score calculation
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 96
|
|
||||||
* @Default: 55
|
|
||||||
*
|
|
||||||
* This ini tells limit for best RSSI. RSSI better than this limit are
|
|
||||||
* considered as best RSSI. The best RSSI is given full rssi_weightage.
|
|
||||||
*
|
|
||||||
* Related: rssi_weightage
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_BEST_RSSI_THRESHOLD_NAME "best_rssi_threshold"
|
|
||||||
#define CFG_BEST_RSSI_THRESHOLD_DEFAULT (55)
|
|
||||||
#define CFG_BEST_RSSI_THRESHOLD_MIN (0)
|
|
||||||
#define CFG_BEST_RSSI_THRESHOLD_MAX (96)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* good_rssi_threshold - Good Rssi for score calculation
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 96
|
|
||||||
* @Default: 70
|
|
||||||
*
|
|
||||||
* This ini tells limit for good RSSI. RSSI better than this limit and less
|
|
||||||
* than best_rssi_threshold is considered as good RSSI.
|
|
||||||
*
|
|
||||||
* Related: rssi_weightage, best_rssi_threshold
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_GOOD_RSSI_THRESHOLD_NAME "good_rssi_threshold"
|
|
||||||
#define CFG_GOOD_RSSI_THRESHOLD_DEFAULT (70)
|
|
||||||
#define CFG_GOOD_RSSI_THRESHOLD_MIN (0)
|
|
||||||
#define CFG_GOOD_RSSI_THRESHOLD_MAX (96)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* bad_rssi_threshold - Bad Rssi for score calculation
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 96
|
|
||||||
* @Default: 80
|
|
||||||
*
|
|
||||||
* This ini tells limit for Bad RSSI. RSSI greater then bad_rssi_threshold
|
|
||||||
* is considered as bad RSSI.
|
|
||||||
*
|
|
||||||
* Related: rssi_weightage, good_rssi_threshold
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_BAD_RSSI_THRESHOLD_NAME "bad_rssi_threshold"
|
|
||||||
#define CFG_BAD_RSSI_THRESHOLD_DEFAULT (80)
|
|
||||||
#define CFG_BAD_RSSI_THRESHOLD_MIN (0)
|
|
||||||
#define CFG_BAD_RSSI_THRESHOLD_MAX (96)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* good_rssi_pcnt - Percent Score to Good RSSI out of total RSSI score.
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 80
|
|
||||||
*
|
|
||||||
* This ini tells about how much percent should be given to good RSSI(RSSI
|
|
||||||
* between best_rssi_threshold and good_rssi_threshold) out of RSSI weightage.
|
|
||||||
*
|
|
||||||
* Related: rssi_weightage, best_rssi_threshold, good_rssi_threshold
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_GOOD_RSSI_PCNT_NAME "good_rssi_pcnt"
|
|
||||||
#define CFG_GOOD_RSSI_PCNT_DEFAULT (80)
|
|
||||||
#define CFG_GOOD_RSSI_PCNT_MIN (0)
|
|
||||||
#define CFG_GOOD_RSSI_PCNT_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* bad_rssi_pcnt - Percent Score to BAD RSSI out of total RSSI score.
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 100
|
|
||||||
* @Default: 25
|
|
||||||
*
|
|
||||||
* This ini tells about how much percent should be given to bad RSSI (RSSI
|
|
||||||
* between good_rssi_threshold and bad_rssi_threshold) out of RSSI weightage.
|
|
||||||
*
|
|
||||||
* Related: rssi_weightage, good_rssi_threshold, bad_rssi_threshold
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_BAD_RSSI_PCNT_NAME "bad_rssi_pcnt"
|
|
||||||
#define CFG_BAD_RSSI_PCNT_DEFAULT (25)
|
|
||||||
#define CFG_BAD_RSSI_PCNT_MIN (0)
|
|
||||||
#define CFG_BAD_RSSI_PCNT_MAX (100)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* good_rssi_bucket_size - Bucket size between best and good RSSI to score.
|
|
||||||
* @Min: 1
|
|
||||||
* @Max: 10
|
|
||||||
* @Default: 5
|
|
||||||
*
|
|
||||||
* This ini tells about bucket size for scoring between best and good RSSI.
|
|
||||||
* Below Best RSSI, 100% score will be given. Between best and good RSSI, RSSI
|
|
||||||
* is divided in buckets and score will be assigned bucket wise starting from
|
|
||||||
* good_rssi_pcnt.
|
|
||||||
*
|
|
||||||
* Related: rssi_weightage, good_rssi_pcnt
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_GOOD_RSSI_BUCKET_SIZE_NAME "good_rssi_bucket_size"
|
|
||||||
#define CFG_GOOD_RSSI_BUCKET_SIZE_DEFAULT (5)
|
|
||||||
#define CFG_GOOD_RSSI_BUCKET_SIZE_MIN (1)
|
|
||||||
#define CFG_GOOD_RSSI_BUCKET_SIZE_MAX (10)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* bad_rssi_bucket_size - Bucket size between good and bad RSSI to score.
|
|
||||||
* @Min: 1
|
|
||||||
* @Max: 10
|
|
||||||
* @Default: 5
|
|
||||||
*
|
|
||||||
* This ini tells about bucket size for scoring between good and bad RSSI.
|
|
||||||
* Between good and bad RSSI, RSSI is divided in buckets and score will be
|
|
||||||
* assigned bucket wise starting from bad_rssi_pcnt.
|
|
||||||
*
|
|
||||||
* Related: rssi_weightage, bad_rssi_pcnt
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_BAD_RSSI_BUCKET_SIZE_NAME "bad_rssi_bucket_size"
|
|
||||||
#define CFG_BAD_RSSI_BUCKET_SIZE_DEFAULT (5)
|
|
||||||
#define CFG_BAD_RSSI_BUCKET_SIZE_MIN (1)
|
|
||||||
#define CFG_BAD_RSSI_BUCKET_SIZE_MAX (10)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* rssi_pref_5g_rssi_thresh - A RSSI threshold above which 5 GHz is not favored
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 96
|
|
||||||
* @Default: 76
|
|
||||||
*
|
|
||||||
* 5G AP are given chan_band_weightage. This ini tells about RSSI threshold
|
|
||||||
* above which 5GHZ is not favored.
|
|
||||||
*
|
|
||||||
* Related: chan_band_weightage
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_RSSI_PERF_5G_THRESHOLD_NAME "rssi_pref_5g_rssi_thresh"
|
|
||||||
#define CFG_RSSI_PERF_5G_THRESHOLD_DEFAULT (76)
|
|
||||||
#define CFG_RSSI_PERF_5G_THRESHOLD_MIN (0)
|
|
||||||
#define CFG_RSSI_PERF_5G_THRESHOLD_MAX (96)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* bandwidth_weight_per_index - percentage as per bandwidth
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x6432190C
|
|
||||||
*
|
|
||||||
* This INI give percentage value of chan_width_weightage to be used as per
|
|
||||||
* peer bandwidth. Self BW is also considered while calculating score. Eg if
|
|
||||||
* self BW is 20 MHZ 10% will be given for all AP irrespective of the AP
|
|
||||||
* capability.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): 20 MHz - Def 12%
|
|
||||||
* 1 Index (BITS 8-15): 40 MHz - Def 25%
|
|
||||||
* 2 Index (BITS 16-23): 80 MHz - Def 50%
|
|
||||||
* 3 Index (BITS 24-31): 160 MHz - Def 100%
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: chan_width_weightage
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_BAND_WIDTH_WEIGHT_PER_INDEX_NAME "bandwidth_weight_per_index"
|
|
||||||
#define CFG_BAND_WIDTH_WEIGHT_PER_INDEX_DEFAULT (0x6432190C)
|
|
||||||
#define CFG_BAND_WIDTH_WEIGHT_PER_INDEX_MIN (0x00000000)
|
|
||||||
#define CFG_BAND_WIDTH_WEIGHT_PER_INDEX_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* nss_weight_per_index - percentage as per NSS
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x6432190C
|
|
||||||
*
|
|
||||||
* This INI give percentage value of nss_weightage to be used as per peer NSS.
|
|
||||||
* Self NSS capability is also considered. Eg if self NSS is 1x1 10% will be
|
|
||||||
* given for all AP irrespective of the AP capability.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): 1X1- Def 12%
|
|
||||||
* 1 Index (BITS 8-15): 2X2- Def 25%
|
|
||||||
* 2 Index (BITS 16-23): 3X3- Def 50%
|
|
||||||
* 3 Index (BITS 24-31): 4X4- Def 100%
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: nss_weightage
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_NSS_WEIGHT_PER_INDEX_NAME "nss_weight_per_index"
|
|
||||||
#define CFG_NSS_WEIGHT_PER_INDEX_DEFAULT (0x6432190C)
|
|
||||||
#define CFG_NSS_WEIGHT_PER_INDEX_MIN (0x00000000)
|
|
||||||
#define CFG_NSS_WEIGHT_PER_INDEX_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* band_weight_per_index - percentage as per band
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x0000644B
|
|
||||||
*
|
|
||||||
* This INI give percentage value of chan_band_weightage to be used as per band.
|
|
||||||
* If RSSI is greater than rssi_pref_5g_rssi_thresh preference is given for 5Ghz
|
|
||||||
* else, it's given for 2.4Ghz.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): 2.4GHz - Def 10%
|
|
||||||
* 1 Index (BITS 8-15): 5GHz - Def 20%
|
|
||||||
* 2 Index (BITS 16-23): Reserved
|
|
||||||
* 3 Index (BITS 24-31): Reserved
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: chan_band_weightage, rssi_pref_5g_rssi_thresh
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_BAND_WEIGHT_PER_INDEX_NAME "band_weight_per_index"
|
|
||||||
#define CFG_BAND_WEIGHT_PER_INDEX_DEFAULT (0x0000644B)
|
|
||||||
#define CFG_BAND_WEIGHT_PER_INDEX_MIN (0x00000000)
|
|
||||||
#define CFG_BAND_WEIGHT_PER_INDEX_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* num_esp_qbss_slots - number of slots in which the esp/qbss load will
|
|
||||||
* be divided
|
|
||||||
*
|
|
||||||
* @Min: 1
|
|
||||||
* @Max: 15
|
|
||||||
* @Default: 4
|
|
||||||
*
|
|
||||||
* Number of slots in which the esp/qbss load will be divided. Max 15. index 0
|
|
||||||
* is used for 'not_present. Num_slot will equally divide 100. e.g, if
|
|
||||||
* num_slot = 4 slot 1 = 0-25% load, slot 2 = 26-50% load, slot 3 = 51-75% load,
|
|
||||||
* slot 4 = 76-100% load. Remaining unused index can be 0.
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_ESP_QBSS_SLOTS_NAME "num_esp_qbss_slots"
|
|
||||||
#define CFG_ESP_QBSS_SLOTS_DEFAULT (4)
|
|
||||||
#define CFG_ESP_QBSS_SLOTS_MIN (1)
|
|
||||||
#define CFG_ESP_QBSS_SLOTS_MAX (15)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* esp_qbss_score_idx3_to_0 - percentage for esp/qbss load for slots 0-3
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x19326432
|
|
||||||
*
|
|
||||||
* This INI give percentage value of channel_congestion_weightage to be used as
|
|
||||||
* index in which the load value falls. Index 0 is for percentage when ESP/QBSS
|
|
||||||
* is not present.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): when ESP/QBSS is not present
|
|
||||||
* 1 Index (BITS 8-15): SLOT_1
|
|
||||||
* 2 Index (BITS 16-23): SLOT_2
|
|
||||||
* 3 Index (BITS 24-31): SLOT_3
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: channel_congestion_weightage, num_esp_qbss_slots
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX3_TO_0_NAME "esp_qbss_score_idx3_to_0"
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX3_TO_0_DEFAULT (0x19326432)
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX3_TO_0_MIN (0x00000000)
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX3_TO_0_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* esp_qbss_score_idx7_to_4 - percentage for esp/qbss load for slots 4-7
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x0000000A
|
|
||||||
*
|
|
||||||
* This INI give percentage value of channel_congestion_weightage to be used as
|
|
||||||
* index in which the load value falls. Used only if num_esp_qbss_slots is
|
|
||||||
* greater than 3.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): SLOT_4
|
|
||||||
* 1 Index (BITS 8-15): SLOT_5
|
|
||||||
* 2 Index (BITS 16-23): SLOT_6
|
|
||||||
* 3 Index (BITS 24-31): SLOT_7
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: channel_congestion_weightage, num_esp_qbss_slots
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX7_TO_4_NAME "esp_qbss_score_idx7_to_4"
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX7_TO_4_DEFAULT (0x0000000A)
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX7_TO_4_MIN (0x00000000)
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX7_TO_4_MAX (0x64646464)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* esp_qbss_score_idx11_to_8 - percentage for esp/qbss load for slots 8-11
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x00000000
|
|
||||||
*
|
|
||||||
* This INI give percentage value of channel_congestion_weightage to be used as
|
|
||||||
* index in which the load value falls. Used only if num_esp_qbss_slots is
|
|
||||||
* greater than 7.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): SLOT_8
|
|
||||||
* 1 Index (BITS 8-15): SLOT_9
|
|
||||||
* 2 Index (BITS 16-23): SLOT_10
|
|
||||||
* 3 Index (BITS 24-31): SLOT_11
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: channel_congestion_weightage, num_esp_qbss_slots
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX11_TO_8_NAME "esp_qbss_score_idx11_to_8"
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX11_TO_8_DEFAULT (0x00000000)
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX11_TO_8_MIN (0x00000000)
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX11_TO_8_MAX (0x64646464)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* esp_qbss_score_idx15_to_12 - percentage for esp/qbss load for slots 12-15
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x00000000
|
|
||||||
*
|
|
||||||
* This INI give percentage value of channel_congestion_weightage to be used as
|
|
||||||
* index in which the load value falls. Used only if num_esp_qbss_slots is
|
|
||||||
* greater than 11.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): SLOT_12
|
|
||||||
* 1 Index (BITS 8-15): SLOT_13
|
|
||||||
* 2 Index (BITS 16-23): SLOT_14
|
|
||||||
* 3 Index (BITS 24-31): SLOT_15
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: channel_congestion_weightage, num_esp_qbss_slots
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX15_TO_12_NAME "esp_qbss_score_idx15_to_12"
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX15_TO_12_DEFAULT (0x00000000)
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX15_TO_12_MIN (0x00000000)
|
|
||||||
#define CFG_ESP_QBSS_SCORE_IDX15_TO_12_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* num_oce_wan_slots - number of slots in which the oce wan metrics will
|
|
||||||
* be divided
|
|
||||||
*
|
|
||||||
* @Min: 1
|
|
||||||
* @Max: 15
|
|
||||||
* @Default: 8
|
|
||||||
*
|
|
||||||
* Number of slots in which the oce wan metrics will be divided. Max 15. index 0
|
|
||||||
* is used for not_present. Num_slot will equally divide 100. e.g, if
|
|
||||||
* num_slot = 4 slot 1 = 0-3 DL CAP, slot 2 = 4-7 DL CAP, slot 3 = 8-11 DL CAP,
|
|
||||||
* slot 4 = 12-15 DL CAP. Remaining unused index can be 0.
|
|
||||||
*
|
|
||||||
* Related: oce_wan_weightage
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_OCE_WAN_SLOTS_NAME "num_oce_wan_slots"
|
|
||||||
#define CFG_OCE_WAN_SLOTS_DEFAULT (15)
|
|
||||||
#define CFG_OCE_WAN_SLOTS_MIN (1)
|
|
||||||
#define CFG_OCE_WAN_SLOTS_MAX (15)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* oce_wan_score_idx3_to_0 - percentage for OCE WAN metrics score for slots 0-3
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x00000032
|
|
||||||
*
|
|
||||||
* This INI give percentage value of OCE WAN metrics DL CAP, to be used as
|
|
||||||
* index in which the DL CAP value falls. Index 0 is for percentage when
|
|
||||||
* OCE WAN metrics DL CAP is not present.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): when OCE WAN metrics DL CAP is not present
|
|
||||||
* 1 Index (BITS 8-15): SLOT_1
|
|
||||||
* 2 Index (BITS 16-23): SLOT_2
|
|
||||||
* 3 Index (BITS 24-31): SLOT_3
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: num_oce_wan_slots, oce_wan_weightage
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX3_TO_0_NAME "oce_wan_score_idx3_to_0"
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX3_TO_0_DEFAULT (0x00000032)
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX3_TO_0_MIN (0x00000000)
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX3_TO_0_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* oce_wan_score_idx7_to_4 - percentage for OCE WAN metrics score for slots 4-7
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x00000000
|
|
||||||
*
|
|
||||||
* This INI give percentage value of OCE WAN metrics DL CAP, to be used as
|
|
||||||
* index in which the DL CAP value falls. Used only if num_oce_wan_slots is
|
|
||||||
* greater than 3.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): SLOT_4
|
|
||||||
* 1 Index (BITS 8-15): SLOT_5
|
|
||||||
* 2 Index (BITS 16-23): SLOT_6
|
|
||||||
* 3 Index (BITS 24-31): SLOT_7
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: num_oce_wan_slots, oce_wan_weightage
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX7_TO_4_NAME "oce_wan_score_idx7_to_4"
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX7_TO_4_DEFAULT (0x00000000)
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX7_TO_4_MIN (0x00000000)
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX7_TO_4_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* oce_wan_score_idx11_to_8 - percentage for OCE WAN metrics score for slot 8-11
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x06030000
|
|
||||||
*
|
|
||||||
* This INI give percentage value of OCE WAN metrics DL CAP, to be used as
|
|
||||||
* index in which the DL CAP value falls. Used only if num_oce_wan_slots is
|
|
||||||
* greater than 7.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): SLOT_8
|
|
||||||
* 1 Index (BITS 8-15): SLOT_9
|
|
||||||
* 2 Index (BITS 16-23): SLOT_10
|
|
||||||
* 3 Index (BITS 24-31): SLOT_11
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: num_oce_wan_slots, oce_wan_weightage
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX11_TO_8_NAME "oce_wan_score_idx11_to_8"
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX11_TO_8_DEFAULT (0x06030000)
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX11_TO_8_MIN (0x00000000)
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX11_TO_8_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* oce_wan_score_idx15_to_12 - % for OCE WAN metrics score for slot 12-15
|
|
||||||
* @Min: 0x00000000
|
|
||||||
* @Max: 0x64646464
|
|
||||||
* @Default: 0x6432190C
|
|
||||||
*
|
|
||||||
* This INI give percentage value of OCE WAN metrics DL CAP, to be used as
|
|
||||||
* index in which the DL CAP value falls. Used only if num_oce_wan_slots is
|
|
||||||
* greater than 11.
|
|
||||||
*
|
|
||||||
* Indexes are defined in this way.
|
|
||||||
* 0 Index (BITS 0-7): SLOT_12
|
|
||||||
* 1 Index (BITS 8-15): SLOT_13
|
|
||||||
* 2 Index (BITS 16-23): SLOT_14
|
|
||||||
* 3 Index (BITS 24-31): SLOT_15
|
|
||||||
* These percentage values are stored in HEX. For any index max value, can be 64
|
|
||||||
*
|
|
||||||
* Related: num_oce_wan_slots, oce_wan_weightage
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX15_TO_12_NAME "oce_wan_score_idx15_to_12"
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX15_TO_12_DEFAULT (0x6432190C)
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX15_TO_12_MIN (0x00000000)
|
|
||||||
#define CFG_OCE_WAN_SCORE_IDX15_TO_12_MAX (0x64646464)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* enable_scoring_for_roam - enable/disable scoring logic in FW for candidate
|
|
||||||
* selection during roaming
|
|
||||||
*
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 1
|
|
||||||
* @Default: 1
|
|
||||||
*
|
|
||||||
* This ini is used to enable/disable scoring logic in FW for candidate
|
|
||||||
* selection during roaming.
|
|
||||||
*
|
|
||||||
* Supported Feature: STA Candidate selection by FW during roaming based on
|
|
||||||
* scoring logic.
|
|
||||||
*
|
|
||||||
* Usage: External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_ENABLE_SCORING_FOR_ROAM_NAME "enable_scoring_for_roam"
|
|
||||||
#define CFG_ENABLE_SCORING_FOR_ROAM_DEFAULT (1)
|
|
||||||
#define CFG_ENABLE_SCORING_FOR_ROAM_MIN (0)
|
|
||||||
#define CFG_ENABLE_SCORING_FOR_ROAM_MAX (1)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* gChanSwitchHostapdRateEnabled - Enable/disable hostapd rate when doing SAP
|
* gChanSwitchHostapdRateEnabled - Enable/disable hostapd rate when doing SAP
|
||||||
@@ -12848,39 +11978,6 @@ struct hdd_config {
|
|||||||
uint32_t scan_11d_interval;
|
uint32_t scan_11d_interval;
|
||||||
bool chan_switch_hostapd_rate_enabled;
|
bool chan_switch_hostapd_rate_enabled;
|
||||||
bool is_bssid_hint_priority;
|
bool is_bssid_hint_priority;
|
||||||
uint8_t rssi_weightage;
|
|
||||||
uint8_t ht_caps_weightage;
|
|
||||||
uint8_t vht_caps_weightage;
|
|
||||||
uint8_t he_caps_weightage;
|
|
||||||
uint8_t chan_width_weightage;
|
|
||||||
uint8_t chan_band_weightage;
|
|
||||||
uint8_t nss_weightage;
|
|
||||||
uint8_t beamforming_cap_weightage;
|
|
||||||
uint8_t pcl_weightage;
|
|
||||||
uint8_t channel_congestion_weightage;
|
|
||||||
uint8_t oce_wan_weightage;
|
|
||||||
uint32_t bandwidth_weight_per_index;
|
|
||||||
uint32_t nss_weight_per_index;
|
|
||||||
uint32_t band_weight_per_index;
|
|
||||||
uint32_t best_rssi_threshold;
|
|
||||||
uint32_t good_rssi_threshold;
|
|
||||||
uint32_t bad_rssi_threshold;
|
|
||||||
uint32_t good_rssi_pcnt;
|
|
||||||
uint32_t bad_rssi_pcnt;
|
|
||||||
uint32_t good_rssi_bucket_size;
|
|
||||||
uint32_t bad_rssi_bucket_size;
|
|
||||||
uint32_t rssi_pref_5g_rssi_thresh;
|
|
||||||
uint8_t num_esp_qbss_slots;
|
|
||||||
uint32_t esp_qbss_score_slots3_to_0;
|
|
||||||
uint32_t esp_qbss_score_slots7_to_4;
|
|
||||||
uint32_t esp_qbss_score_slots11_to_8;
|
|
||||||
uint32_t esp_qbss_score_slots15_to_12;
|
|
||||||
uint8_t num_oce_wan_slots;
|
|
||||||
uint32_t oce_wan_score_slots3_to_0;
|
|
||||||
uint32_t oce_wan_score_slots7_to_4;
|
|
||||||
uint32_t oce_wan_score_slots11_to_8;
|
|
||||||
uint32_t oce_wan_score_slots15_to_12;
|
|
||||||
bool enable_scoring_for_roam;
|
|
||||||
bool is_fils_enabled;
|
bool is_fils_enabled;
|
||||||
uint16_t wlm_latency_enable;
|
uint16_t wlm_latency_enable;
|
||||||
uint16_t wlm_latency_level;
|
uint16_t wlm_latency_level;
|
||||||
|
@@ -4141,237 +4141,6 @@ struct reg_table_entry g_registry_table[] = {
|
|||||||
CFG_LATENCY_FLAGS_ULTRALOW_MIN,
|
CFG_LATENCY_FLAGS_ULTRALOW_MIN,
|
||||||
CFG_LATENCY_FLAGS_ULTRALOW_MAX),
|
CFG_LATENCY_FLAGS_ULTRALOW_MAX),
|
||||||
|
|
||||||
REG_VARIABLE(CFG_RSSI_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, rssi_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_RSSI_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_RSSI_WEIGHTAGE_MIN,
|
|
||||||
CFG_RSSI_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_HT_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, ht_caps_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_HT_CAPABILITY_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_HT_CAPABILITY_WEIGHTAGE_MIN,
|
|
||||||
CFG_HT_CAPABILITY_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_VHT_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, vht_caps_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_VHT_CAPABILITY_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_VHT_CAPABILITY_WEIGHTAGE_MIN,
|
|
||||||
CFG_VHT_CAPABILITY_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_HE_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, he_caps_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_HE_CAPABILITY_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_HE_CAPABILITY_WEIGHTAGE_MIN,
|
|
||||||
CFG_HE_CAPABILITY_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_CHAN_WIDTH_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, chan_width_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_CHAN_WIDTH_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_CHAN_WIDTH_WEIGHTAGE_MIN,
|
|
||||||
CFG_CHAN_WIDTH_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_CHAN_BAND_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, chan_band_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_CHAN_BAND_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_CHAN_BAND_WEIGHTAGE_MIN,
|
|
||||||
CFG_CHAN_BAND_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_NSS_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, nss_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_NSS_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_NSS_WEIGHTAGE_MIN,
|
|
||||||
CFG_NSS_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_BEAMFORMING_CAP_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, beamforming_cap_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_BEAMFORMING_CAP_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_BEAMFORMING_CAP_WEIGHTAGE_MIN,
|
|
||||||
CFG_BEAMFORMING_CAP_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_PCL_WEIGHT_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, pcl_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_PCL_WEIGHT_DEFAULT,
|
|
||||||
CFG_PCL_WEIGHT_MIN,
|
|
||||||
CFG_PCL_WEIGHT_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_CHANNEL_CONGESTION_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, channel_congestion_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_CHANNEL_CONGESTION_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_CHANNEL_CONGESTION_WEIGHTAGE_MIN,
|
|
||||||
CFG_CHANNEL_CONGESTION_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_OCE_WAN_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, oce_wan_weightage,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_OCE_WAN_WEIGHTAGE_DEFAULT,
|
|
||||||
CFG_OCE_WAN_WEIGHTAGE_MIN,
|
|
||||||
CFG_OCE_WAN_WEIGHTAGE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_BEST_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, best_rssi_threshold,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_BEST_RSSI_THRESHOLD_DEFAULT,
|
|
||||||
CFG_BEST_RSSI_THRESHOLD_MIN,
|
|
||||||
CFG_BEST_RSSI_THRESHOLD_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_GOOD_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, good_rssi_threshold,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_GOOD_RSSI_THRESHOLD_DEFAULT,
|
|
||||||
CFG_GOOD_RSSI_THRESHOLD_MIN,
|
|
||||||
CFG_GOOD_RSSI_THRESHOLD_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_BAD_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, bad_rssi_threshold,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_BAD_RSSI_THRESHOLD_DEFAULT,
|
|
||||||
CFG_BAD_RSSI_THRESHOLD_MIN,
|
|
||||||
CFG_BAD_RSSI_THRESHOLD_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_GOOD_RSSI_PCNT_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, good_rssi_pcnt,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_GOOD_RSSI_PCNT_DEFAULT,
|
|
||||||
CFG_GOOD_RSSI_PCNT_MIN,
|
|
||||||
CFG_GOOD_RSSI_PCNT_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_BAD_RSSI_PCNT_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, bad_rssi_pcnt,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_BAD_RSSI_PCNT_DEFAULT,
|
|
||||||
CFG_BAD_RSSI_PCNT_MIN,
|
|
||||||
CFG_BAD_RSSI_PCNT_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_GOOD_RSSI_BUCKET_SIZE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, good_rssi_bucket_size,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_GOOD_RSSI_BUCKET_SIZE_DEFAULT,
|
|
||||||
CFG_GOOD_RSSI_BUCKET_SIZE_MIN,
|
|
||||||
CFG_GOOD_RSSI_BUCKET_SIZE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_BAD_RSSI_BUCKET_SIZE_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, bad_rssi_bucket_size,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_BAD_RSSI_BUCKET_SIZE_DEFAULT,
|
|
||||||
CFG_BAD_RSSI_BUCKET_SIZE_MIN,
|
|
||||||
CFG_BAD_RSSI_BUCKET_SIZE_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_RSSI_PERF_5G_THRESHOLD_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, rssi_pref_5g_rssi_thresh,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_RSSI_PERF_5G_THRESHOLD_DEFAULT,
|
|
||||||
CFG_RSSI_PERF_5G_THRESHOLD_MIN,
|
|
||||||
CFG_RSSI_PERF_5G_THRESHOLD_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_BAND_WIDTH_WEIGHT_PER_INDEX_NAME,
|
|
||||||
WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, bandwidth_weight_per_index,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_BAND_WIDTH_WEIGHT_PER_INDEX_DEFAULT,
|
|
||||||
CFG_BAND_WIDTH_WEIGHT_PER_INDEX_MIN,
|
|
||||||
CFG_BAND_WIDTH_WEIGHT_PER_INDEX_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_NSS_WEIGHT_PER_INDEX_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, nss_weight_per_index,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_NSS_WEIGHT_PER_INDEX_DEFAULT,
|
|
||||||
CFG_NSS_WEIGHT_PER_INDEX_MIN,
|
|
||||||
CFG_NSS_WEIGHT_PER_INDEX_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_BAND_WEIGHT_PER_INDEX_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, band_weight_per_index,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_BAND_WEIGHT_PER_INDEX_DEFAULT,
|
|
||||||
CFG_BAND_WEIGHT_PER_INDEX_MIN,
|
|
||||||
CFG_BAND_WEIGHT_PER_INDEX_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ESP_QBSS_SLOTS_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, num_esp_qbss_slots,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SLOTS_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SLOTS_MIN,
|
|
||||||
CFG_ESP_QBSS_SLOTS_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX3_TO_0_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, esp_qbss_score_slots3_to_0,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX3_TO_0_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX3_TO_0_MIN,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX3_TO_0_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX7_TO_4_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, esp_qbss_score_slots7_to_4,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX7_TO_4_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX7_TO_4_MIN,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX7_TO_4_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX11_TO_8_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, esp_qbss_score_slots11_to_8,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX11_TO_8_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX11_TO_8_MIN,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX11_TO_8_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX15_TO_12_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, esp_qbss_score_slots15_to_12,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX15_TO_12_DEFAULT,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX15_TO_12_MIN,
|
|
||||||
CFG_ESP_QBSS_SCORE_IDX15_TO_12_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_OCE_WAN_SLOTS_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, num_oce_wan_slots,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SLOTS_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SLOTS_MIN,
|
|
||||||
CFG_OCE_WAN_SLOTS_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX3_TO_0_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, oce_wan_score_slots3_to_0,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX3_TO_0_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX3_TO_0_MIN,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX3_TO_0_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX7_TO_4_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, oce_wan_score_slots7_to_4,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX7_TO_4_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX7_TO_4_MIN,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX7_TO_4_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX11_TO_8_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, oce_wan_score_slots11_to_8,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX11_TO_8_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX11_TO_8_MIN,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX11_TO_8_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX15_TO_12_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, oce_wan_score_slots15_to_12,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX15_TO_12_DEFAULT,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX15_TO_12_MIN,
|
|
||||||
CFG_OCE_WAN_SCORE_IDX15_TO_12_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ENABLE_SCORING_FOR_ROAM_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, enable_scoring_for_roam,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_ENABLE_SCORING_FOR_ROAM_DEFAULT,
|
|
||||||
CFG_ENABLE_SCORING_FOR_ROAM_MIN,
|
|
||||||
CFG_ENABLE_SCORING_FOR_ROAM_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_IS_FILS_ENABLED_NAME, WLAN_PARAM_Integer,
|
REG_VARIABLE(CFG_IS_FILS_ENABLED_NAME, WLAN_PARAM_Integer,
|
||||||
struct hdd_config, is_fils_enabled,
|
struct hdd_config, is_fils_enabled,
|
||||||
@@ -6351,125 +6120,6 @@ eCsrRoamWmmUserModeType hdd_to_csr_wmm_mode(enum hdd_wmm_user_mode mode)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* hdd_update_score_params() -initializes the sme config for bss score params
|
|
||||||
*
|
|
||||||
* @config: pointer to config
|
|
||||||
* @score_params: bss score params
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static void hdd_update_bss_score_params(struct hdd_config *config,
|
|
||||||
struct sir_score_config *score_params)
|
|
||||||
{
|
|
||||||
int total_weight;
|
|
||||||
|
|
||||||
score_params->enable_scoring_for_roam =
|
|
||||||
config->enable_scoring_for_roam;
|
|
||||||
score_params->weight_cfg.rssi_weightage = config->rssi_weightage;
|
|
||||||
score_params->weight_cfg.ht_caps_weightage = config->ht_caps_weightage;
|
|
||||||
score_params->weight_cfg.vht_caps_weightage =
|
|
||||||
config->vht_caps_weightage;
|
|
||||||
score_params->weight_cfg.he_caps_weightage =
|
|
||||||
config->he_caps_weightage;
|
|
||||||
score_params->weight_cfg.chan_width_weightage =
|
|
||||||
config->chan_width_weightage;
|
|
||||||
score_params->weight_cfg.chan_band_weightage =
|
|
||||||
config->chan_band_weightage;
|
|
||||||
score_params->weight_cfg.nss_weightage = config->nss_weightage;
|
|
||||||
score_params->weight_cfg.beamforming_cap_weightage =
|
|
||||||
config->beamforming_cap_weightage;
|
|
||||||
score_params->weight_cfg.pcl_weightage = config->pcl_weightage;
|
|
||||||
score_params->weight_cfg.channel_congestion_weightage =
|
|
||||||
config->channel_congestion_weightage;
|
|
||||||
score_params->weight_cfg.oce_wan_weightage = config->oce_wan_weightage;
|
|
||||||
|
|
||||||
total_weight = score_params->weight_cfg.rssi_weightage +
|
|
||||||
score_params->weight_cfg.ht_caps_weightage +
|
|
||||||
score_params->weight_cfg.vht_caps_weightage +
|
|
||||||
score_params->weight_cfg.he_caps_weightage +
|
|
||||||
score_params->weight_cfg.chan_width_weightage +
|
|
||||||
score_params->weight_cfg.chan_band_weightage +
|
|
||||||
score_params->weight_cfg.nss_weightage +
|
|
||||||
score_params->weight_cfg.beamforming_cap_weightage +
|
|
||||||
score_params->weight_cfg.pcl_weightage +
|
|
||||||
score_params->weight_cfg.channel_congestion_weightage +
|
|
||||||
score_params->weight_cfg.oce_wan_weightage;
|
|
||||||
|
|
||||||
if (total_weight > BEST_CANDIDATE_MAX_WEIGHT) {
|
|
||||||
hdd_err("total weight is greater than %d fallback to default values",
|
|
||||||
BEST_CANDIDATE_MAX_WEIGHT);
|
|
||||||
|
|
||||||
score_params->weight_cfg.rssi_weightage = RSSI_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.ht_caps_weightage =
|
|
||||||
HT_CAPABILITY_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.vht_caps_weightage = VHT_CAP_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.he_caps_weightage = HE_CAP_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.chan_width_weightage =
|
|
||||||
CHAN_WIDTH_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.chan_band_weightage =
|
|
||||||
CHAN_BAND_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.nss_weightage = NSS_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.beamforming_cap_weightage =
|
|
||||||
BEAMFORMING_CAP_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.pcl_weightage = PCL_WEIGHT;
|
|
||||||
score_params->weight_cfg.channel_congestion_weightage =
|
|
||||||
CHANNEL_CONGESTION_WEIGHTAGE;
|
|
||||||
score_params->weight_cfg.oce_wan_weightage = OCE_WAN_WEIGHTAGE;
|
|
||||||
}
|
|
||||||
|
|
||||||
score_params->bandwidth_weight_per_index =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->bandwidth_weight_per_index);
|
|
||||||
score_params->nss_weight_per_index =
|
|
||||||
hdd_limit_max_per_index_score(config->nss_weight_per_index);
|
|
||||||
score_params->band_weight_per_index =
|
|
||||||
hdd_limit_max_per_index_score(config->band_weight_per_index);
|
|
||||||
|
|
||||||
score_params->rssi_score.best_rssi_threshold =
|
|
||||||
config->best_rssi_threshold;
|
|
||||||
score_params->rssi_score.good_rssi_threshold =
|
|
||||||
config->good_rssi_threshold;
|
|
||||||
score_params->rssi_score.bad_rssi_threshold =
|
|
||||||
config->bad_rssi_threshold;
|
|
||||||
score_params->rssi_score.good_rssi_pcnt = config->good_rssi_pcnt;
|
|
||||||
score_params->rssi_score.bad_rssi_pcnt = config->bad_rssi_pcnt;
|
|
||||||
score_params->rssi_score.good_rssi_bucket_size =
|
|
||||||
config->good_rssi_bucket_size;
|
|
||||||
score_params->rssi_score.bad_rssi_bucket_size =
|
|
||||||
config->bad_rssi_bucket_size;
|
|
||||||
score_params->rssi_score.rssi_pref_5g_rssi_thresh =
|
|
||||||
config->rssi_pref_5g_rssi_thresh;
|
|
||||||
|
|
||||||
score_params->esp_qbss_scoring.num_slot = config->num_esp_qbss_slots;
|
|
||||||
score_params->esp_qbss_scoring.score_pcnt3_to_0 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->esp_qbss_score_slots3_to_0);
|
|
||||||
score_params->esp_qbss_scoring.score_pcnt7_to_4 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->esp_qbss_score_slots7_to_4);
|
|
||||||
score_params->esp_qbss_scoring.score_pcnt11_to_8 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->esp_qbss_score_slots11_to_8);
|
|
||||||
score_params->esp_qbss_scoring.score_pcnt15_to_12 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->esp_qbss_score_slots15_to_12);
|
|
||||||
|
|
||||||
score_params->oce_wan_scoring.num_slot = config->num_oce_wan_slots;
|
|
||||||
score_params->oce_wan_scoring.score_pcnt3_to_0 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->oce_wan_score_slots3_to_0);
|
|
||||||
score_params->oce_wan_scoring.score_pcnt7_to_4 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->oce_wan_score_slots7_to_4);
|
|
||||||
score_params->oce_wan_scoring.score_pcnt11_to_8 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->oce_wan_score_slots11_to_8);
|
|
||||||
score_params->oce_wan_scoring.score_pcnt15_to_12 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
config->oce_wan_score_slots15_to_12);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hdd_update_11k_offload_params() - initializes the 11k offload related params
|
* hdd_update_11k_offload_params() - initializes the 11k offload related params
|
||||||
*
|
*
|
||||||
@@ -6883,8 +6533,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
|
|||||||
hdd_ctx->config->btm_max_attempt_cnt;
|
hdd_ctx->config->btm_max_attempt_cnt;
|
||||||
smeConfig->csrConfig.btm_sticky_time =
|
smeConfig->csrConfig.btm_sticky_time =
|
||||||
hdd_ctx->config->btm_sticky_time;
|
hdd_ctx->config->btm_sticky_time;
|
||||||
hdd_update_bss_score_params(hdd_ctx->config,
|
|
||||||
&smeConfig->csrConfig.bss_score_params);
|
|
||||||
|
|
||||||
hdd_update_11k_offload_params(hdd_ctx->config,
|
hdd_update_11k_offload_params(hdd_ctx->config,
|
||||||
&smeConfig->csrConfig);
|
&smeConfig->csrConfig);
|
||||||
|
@@ -2938,6 +2938,8 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx, bool reinit)
|
|||||||
goto hdd_psoc_close;
|
goto hdd_psoc_close;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hdd_ctx->mac_handle = cds_get_context(QDF_MODULE_ID_SME);
|
||||||
|
|
||||||
if (hdd_ctx->config->rx_thread_affinity_mask)
|
if (hdd_ctx->config->rx_thread_affinity_mask)
|
||||||
cds_set_rx_thread_cpu_mask(
|
cds_set_rx_thread_cpu_mask(
|
||||||
hdd_ctx->config->rx_thread_affinity_mask);
|
hdd_ctx->config->rx_thread_affinity_mask);
|
||||||
@@ -2964,8 +2966,6 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx, bool reinit)
|
|||||||
*/
|
*/
|
||||||
hdd_nan_register_callbacks(hdd_ctx);
|
hdd_nan_register_callbacks(hdd_ctx);
|
||||||
|
|
||||||
hdd_ctx->mac_handle = cds_get_context(QDF_MODULE_ID_SME);
|
|
||||||
|
|
||||||
status = cds_pre_enable();
|
status = cds_pre_enable();
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
hdd_err("Failed to pre-enable CDS; status: %d", status);
|
hdd_err("Failed to pre-enable CDS; status: %d", status);
|
||||||
@@ -13665,116 +13665,21 @@ uint32_t hdd_limit_max_per_index_score(uint32_t per_index_score)
|
|||||||
* @score_config: score config to update
|
* @score_config: score config to update
|
||||||
* @cfg: config params
|
* @cfg: config params
|
||||||
*
|
*
|
||||||
* Return: 0 if success else err
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
static void hdd_update_score_config(
|
static QDF_STATUS
|
||||||
struct scoring_config *score_config, struct hdd_config *cfg)
|
hdd_update_score_config(struct scoring_config *score_config,
|
||||||
|
struct hdd_config *cfg)
|
||||||
{
|
{
|
||||||
int total_weight;
|
struct hdd_context *hdd_ctx;
|
||||||
|
|
||||||
score_config->weight_cfg.rssi_weightage = cfg->rssi_weightage;
|
hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD);
|
||||||
score_config->weight_cfg.ht_caps_weightage = cfg->ht_caps_weightage;
|
if (!hdd_ctx) {
|
||||||
score_config->weight_cfg.vht_caps_weightage =
|
hdd_err("HDD context is NULL");
|
||||||
cfg->vht_caps_weightage;
|
return QDF_STATUS_E_FAILURE;
|
||||||
score_config->weight_cfg.he_caps_weightage =
|
|
||||||
cfg->he_caps_weightage;
|
|
||||||
score_config->weight_cfg.chan_width_weightage =
|
|
||||||
cfg->chan_width_weightage;
|
|
||||||
score_config->weight_cfg.chan_band_weightage =
|
|
||||||
cfg->chan_band_weightage;
|
|
||||||
score_config->weight_cfg.nss_weightage = cfg->nss_weightage;
|
|
||||||
score_config->weight_cfg.beamforming_cap_weightage =
|
|
||||||
cfg->beamforming_cap_weightage;
|
|
||||||
score_config->weight_cfg.pcl_weightage = cfg->pcl_weightage;
|
|
||||||
score_config->weight_cfg.channel_congestion_weightage =
|
|
||||||
cfg->channel_congestion_weightage;
|
|
||||||
score_config->weight_cfg.oce_wan_weightage = cfg->oce_wan_weightage;
|
|
||||||
|
|
||||||
total_weight = score_config->weight_cfg.rssi_weightage +
|
|
||||||
score_config->weight_cfg.ht_caps_weightage +
|
|
||||||
score_config->weight_cfg.vht_caps_weightage +
|
|
||||||
score_config->weight_cfg.he_caps_weightage +
|
|
||||||
score_config->weight_cfg.chan_width_weightage +
|
|
||||||
score_config->weight_cfg.chan_band_weightage +
|
|
||||||
score_config->weight_cfg.nss_weightage +
|
|
||||||
score_config->weight_cfg.beamforming_cap_weightage +
|
|
||||||
score_config->weight_cfg.pcl_weightage +
|
|
||||||
score_config->weight_cfg.channel_congestion_weightage +
|
|
||||||
score_config->weight_cfg.oce_wan_weightage;
|
|
||||||
|
|
||||||
if (total_weight > BEST_CANDIDATE_MAX_WEIGHT) {
|
|
||||||
hdd_err("total weight is greater than %d fallback to default values",
|
|
||||||
BEST_CANDIDATE_MAX_WEIGHT);
|
|
||||||
|
|
||||||
score_config->weight_cfg.rssi_weightage = RSSI_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.ht_caps_weightage =
|
|
||||||
HT_CAPABILITY_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.vht_caps_weightage = VHT_CAP_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.he_caps_weightage = HE_CAP_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.chan_width_weightage =
|
|
||||||
CHAN_WIDTH_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.chan_band_weightage =
|
|
||||||
CHAN_BAND_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.nss_weightage = NSS_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.beamforming_cap_weightage =
|
|
||||||
BEAMFORMING_CAP_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.pcl_weightage = PCL_WEIGHT;
|
|
||||||
score_config->weight_cfg.channel_congestion_weightage =
|
|
||||||
CHANNEL_CONGESTION_WEIGHTAGE;
|
|
||||||
score_config->weight_cfg.oce_wan_weightage = OCE_WAN_WEIGHTAGE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
score_config->bandwidth_weight_per_index =
|
sme_update_score_config(hdd_ctx->mac_handle, score_config);
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->bandwidth_weight_per_index);
|
|
||||||
score_config->nss_weight_per_index =
|
|
||||||
hdd_limit_max_per_index_score(cfg->nss_weight_per_index);
|
|
||||||
score_config->band_weight_per_index =
|
|
||||||
hdd_limit_max_per_index_score(cfg->band_weight_per_index);
|
|
||||||
|
|
||||||
score_config->rssi_score.best_rssi_threshold =
|
|
||||||
cfg->best_rssi_threshold;
|
|
||||||
score_config->rssi_score.good_rssi_threshold =
|
|
||||||
cfg->good_rssi_threshold;
|
|
||||||
score_config->rssi_score.bad_rssi_threshold =
|
|
||||||
cfg->bad_rssi_threshold;
|
|
||||||
score_config->rssi_score.good_rssi_pcnt = cfg->good_rssi_pcnt;
|
|
||||||
score_config->rssi_score.bad_rssi_pcnt = cfg->bad_rssi_pcnt;
|
|
||||||
score_config->rssi_score.good_rssi_bucket_size =
|
|
||||||
cfg->good_rssi_bucket_size;
|
|
||||||
score_config->rssi_score.bad_rssi_bucket_size =
|
|
||||||
cfg->bad_rssi_bucket_size;
|
|
||||||
score_config->rssi_score.rssi_pref_5g_rssi_thresh =
|
|
||||||
cfg->rssi_pref_5g_rssi_thresh;
|
|
||||||
|
|
||||||
score_config->esp_qbss_scoring.num_slot = cfg->num_esp_qbss_slots;
|
|
||||||
score_config->esp_qbss_scoring.score_pcnt3_to_0 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->esp_qbss_score_slots3_to_0);
|
|
||||||
score_config->esp_qbss_scoring.score_pcnt7_to_4 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->esp_qbss_score_slots7_to_4);
|
|
||||||
score_config->esp_qbss_scoring.score_pcnt11_to_8 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->esp_qbss_score_slots11_to_8);
|
|
||||||
score_config->esp_qbss_scoring.score_pcnt15_to_12 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->esp_qbss_score_slots15_to_12);
|
|
||||||
|
|
||||||
score_config->oce_wan_scoring.num_slot = cfg->num_oce_wan_slots;
|
|
||||||
score_config->oce_wan_scoring.score_pcnt3_to_0 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->oce_wan_score_slots3_to_0);
|
|
||||||
score_config->oce_wan_scoring.score_pcnt7_to_4 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->oce_wan_score_slots7_to_4);
|
|
||||||
score_config->oce_wan_scoring.score_pcnt11_to_8 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->oce_wan_score_slots11_to_8);
|
|
||||||
score_config->oce_wan_scoring.score_pcnt15_to_12 =
|
|
||||||
hdd_limit_max_per_index_score(
|
|
||||||
cfg->oce_wan_score_slots15_to_12);
|
|
||||||
|
|
||||||
|
|
||||||
score_config->cb_mode_24G = cfg->nChannelBondingMode24GHz;
|
score_config->cb_mode_24G = cfg->nChannelBondingMode24GHz;
|
||||||
score_config->cb_mode_5G = cfg->nChannelBondingMode5GHz;
|
score_config->cb_mode_5G = cfg->nChannelBondingMode5GHz;
|
||||||
@@ -13800,6 +13705,7 @@ static void hdd_update_score_config(
|
|||||||
if (cfg->enableTxBF)
|
if (cfg->enableTxBF)
|
||||||
score_config->beamformee_cap = 1;
|
score_config->beamformee_cap = 1;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13865,7 +13771,12 @@ static int hdd_update_scan_config(struct hdd_context *hdd_ctx)
|
|||||||
cfg->sta_miracast_mcc_rest_time_val;
|
cfg->sta_miracast_mcc_rest_time_val;
|
||||||
hdd_update_pno_config(&scan_cfg.pno_cfg, cfg);
|
hdd_update_pno_config(&scan_cfg.pno_cfg, cfg);
|
||||||
hdd_update_ie_whitelist_attr(&scan_cfg.ie_whitelist, cfg);
|
hdd_update_ie_whitelist_attr(&scan_cfg.ie_whitelist, cfg);
|
||||||
hdd_update_score_config(&scan_cfg.score_config, cfg);
|
|
||||||
|
status = hdd_update_score_config(&scan_cfg.score_config, cfg);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
|
hdd_err("Failed to update scoring config");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
status = ucfg_scan_update_user_config(psoc, &scan_cfg);
|
status = ucfg_scan_update_user_config(psoc, &scan_cfg);
|
||||||
if (status != QDF_STATUS_SUCCESS) {
|
if (status != QDF_STATUS_SUCCESS) {
|
||||||
|
@@ -2678,93 +2678,6 @@ struct roam_ext_params {
|
|||||||
uint32_t bg_scan_client_bitmap;
|
uint32_t bg_scan_client_bitmap;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* struct sir_weight_config - weight params to
|
|
||||||
* calculate best candidate
|
|
||||||
* @rssi_weightage: RSSI weightage
|
|
||||||
* @ht_caps_weightage: HT caps weightage
|
|
||||||
* @vht_caps_weightage: VHT caps weightage
|
|
||||||
* @he_caps_weightage: HE caps weightage
|
|
||||||
* @chan_width_weightage: Channel width weightage
|
|
||||||
* @chan_band_weightage: Channel band weightage
|
|
||||||
* @nss_weightage: NSS weightage
|
|
||||||
* @beamforming_cap_weightage: Beamforming caps weightage
|
|
||||||
* @pcl_weightage: PCL weightage
|
|
||||||
* @channel_congestion_weightage: channel congestion weightage
|
|
||||||
* @oce_wan_weightage: OCE WAN metrics weightage
|
|
||||||
*/
|
|
||||||
struct sir_weight_config {
|
|
||||||
uint8_t rssi_weightage;
|
|
||||||
uint8_t ht_caps_weightage;
|
|
||||||
uint8_t vht_caps_weightage;
|
|
||||||
uint8_t he_caps_weightage;
|
|
||||||
uint8_t chan_width_weightage;
|
|
||||||
uint8_t chan_band_weightage;
|
|
||||||
uint8_t nss_weightage;
|
|
||||||
uint8_t beamforming_cap_weightage;
|
|
||||||
uint8_t pcl_weightage;
|
|
||||||
uint8_t channel_congestion_weightage;
|
|
||||||
uint8_t oce_wan_weightage;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct sir_rssi_cfg_score {
|
|
||||||
uint32_t best_rssi_threshold;
|
|
||||||
uint32_t good_rssi_threshold;
|
|
||||||
uint32_t bad_rssi_threshold;
|
|
||||||
uint32_t good_rssi_pcnt;
|
|
||||||
uint32_t bad_rssi_pcnt;
|
|
||||||
uint32_t good_rssi_bucket_size;
|
|
||||||
uint32_t bad_rssi_bucket_size;
|
|
||||||
uint32_t rssi_pref_5g_rssi_thresh;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct sir_per_slot_scoring - define % score for differents slots for a
|
|
||||||
* scoring param.
|
|
||||||
* num_slot: number of slots in which the param will be divided.
|
|
||||||
* Max 15. index 0 is used for 'not_present. Num_slot will
|
|
||||||
* equally divide 100. e.g, if num_slot = 4 slot 0 = 0-25%, slot
|
|
||||||
* 1 = 26-50% slot 2 = 51-75%, slot 3 = 76-100%
|
|
||||||
* score_pcnt3_to_0: Conatins score percentage for slot 0-3
|
|
||||||
* BITS 0-7 :- the scoring pcnt when not present
|
|
||||||
* BITS 8-15 :- SLOT_1
|
|
||||||
* BITS 16-23 :- SLOT_2
|
|
||||||
* BITS 24-31 :- SLOT_3
|
|
||||||
* score_pcnt7_to_4: Conatins score percentage for slot 4-7
|
|
||||||
* BITS 0-7 :- SLOT_4
|
|
||||||
* BITS 8-15 :- SLOT_5
|
|
||||||
* BITS 16-23 :- SLOT_6
|
|
||||||
* BITS 24-31 :- SLOT_7
|
|
||||||
* score_pcnt11_to_8: Conatins score percentage for slot 8-11
|
|
||||||
* BITS 0-7 :- SLOT_8
|
|
||||||
* BITS 8-15 :- SLOT_9
|
|
||||||
* BITS 16-23 :- SLOT_10
|
|
||||||
* BITS 24-31 :- SLOT_11
|
|
||||||
* score_pcnt15_to_12: Conatins score percentage for slot 12-15
|
|
||||||
* BITS 0-7 :- SLOT_12
|
|
||||||
* BITS 8-15 :- SLOT_13
|
|
||||||
* BITS 16-23 :- SLOT_14
|
|
||||||
* BITS 24-31 :- SLOT_15
|
|
||||||
*/
|
|
||||||
struct sir_per_slot_scoring {
|
|
||||||
uint32_t num_slot;
|
|
||||||
uint32_t score_pcnt3_to_0;
|
|
||||||
uint32_t score_pcnt7_to_4;
|
|
||||||
uint32_t score_pcnt11_to_8;
|
|
||||||
uint32_t score_pcnt15_to_12;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct sir_score_config {
|
|
||||||
bool enable_scoring_for_roam;
|
|
||||||
struct sir_weight_config weight_cfg;
|
|
||||||
struct sir_rssi_cfg_score rssi_score;
|
|
||||||
struct sir_per_slot_scoring esp_qbss_scoring;
|
|
||||||
struct sir_per_slot_scoring oce_wan_scoring;
|
|
||||||
uint32_t bandwidth_weight_per_index;
|
|
||||||
uint32_t nss_weight_per_index;
|
|
||||||
uint32_t band_weight_per_index;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct pmkid_mode_bits - Bit flags for PMKID usage in RSN IE
|
* struct pmkid_mode_bits - Bit flags for PMKID usage in RSN IE
|
||||||
* @fw_okc: Opportunistic key caching enable in firmware
|
* @fw_okc: Opportunistic key caching enable in firmware
|
||||||
|
@@ -1234,7 +1234,6 @@ typedef struct tagCsrConfigParam {
|
|||||||
uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
|
uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
|
||||||
uint16_t pkt_err_disconn_th;
|
uint16_t pkt_err_disconn_th;
|
||||||
bool is_force_1x1;
|
bool is_force_1x1;
|
||||||
struct sir_score_config bss_score_params;
|
|
||||||
uint8_t oce_feature_bitmap;
|
uint8_t oce_feature_bitmap;
|
||||||
uint32_t btm_offload_config;
|
uint32_t btm_offload_config;
|
||||||
uint32_t btm_solicited_timeout;
|
uint32_t btm_solicited_timeout;
|
||||||
|
@@ -558,7 +558,6 @@ struct csr_config {
|
|||||||
uint16_t wlm_latency_enable;
|
uint16_t wlm_latency_enable;
|
||||||
uint16_t wlm_latency_level;
|
uint16_t wlm_latency_level;
|
||||||
uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
|
uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
|
||||||
struct sir_score_config bss_score_params;
|
|
||||||
uint8_t oce_feature_bitmap;
|
uint8_t oce_feature_bitmap;
|
||||||
uint32_t btm_offload_config;
|
uint32_t btm_offload_config;
|
||||||
uint32_t btm_solicited_timeout;
|
uint32_t btm_solicited_timeout;
|
||||||
|
@@ -2793,4 +2793,13 @@ QDF_STATUS
|
|||||||
sme_get_roam_scan_stats(tHalHandle hal, roam_scan_stats_cb cb, void *context,
|
sme_get_roam_scan_stats(tHalHandle hal, roam_scan_stats_cb cb, void *context,
|
||||||
uint32_t vdev_id);
|
uint32_t vdev_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sme_update_score_config() - Update the Scoring Config from MLME
|
||||||
|
* @hal: Mac Handle
|
||||||
|
* @score_config: Pointer to the scoring config structure to be populated
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
void sme_update_score_config(tHalHandle hal,
|
||||||
|
struct scoring_config *score_config);
|
||||||
#endif /* #if !defined( __SME_API_H ) */
|
#endif /* #if !defined( __SME_API_H ) */
|
||||||
|
@@ -16284,3 +16284,81 @@ sme_get_roam_scan_stats(tHalHandle hal, roam_scan_stats_cb cb, void *context,
|
|||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sme_update_score_config(tHalHandle hal,
|
||||||
|
struct scoring_config *score_config)
|
||||||
|
{
|
||||||
|
tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal);
|
||||||
|
struct wlan_mlme_scoring_cfg *mlme_scoring_cfg;
|
||||||
|
|
||||||
|
mlme_scoring_cfg = &mac_ctx->mlme_cfg->scoring;
|
||||||
|
|
||||||
|
score_config->weight_cfg.rssi_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.rssi_weightage;
|
||||||
|
score_config->weight_cfg.ht_caps_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.ht_caps_weightage;
|
||||||
|
score_config->weight_cfg.vht_caps_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.vht_caps_weightage;
|
||||||
|
score_config->weight_cfg.he_caps_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.he_caps_weightage;
|
||||||
|
score_config->weight_cfg.chan_width_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.chan_width_weightage;
|
||||||
|
score_config->weight_cfg.chan_band_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.chan_band_weightage;
|
||||||
|
score_config->weight_cfg.nss_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.nss_weightage;
|
||||||
|
score_config->weight_cfg.beamforming_cap_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.beamforming_cap_weightage;
|
||||||
|
score_config->weight_cfg.pcl_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.pcl_weightage;
|
||||||
|
score_config->weight_cfg.channel_congestion_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.channel_congestion_weightage;
|
||||||
|
score_config->weight_cfg.oce_wan_weightage =
|
||||||
|
mlme_scoring_cfg->weight_cfg.oce_wan_weightage;
|
||||||
|
|
||||||
|
score_config->bandwidth_weight_per_index =
|
||||||
|
mlme_scoring_cfg->bandwidth_weight_per_index;
|
||||||
|
score_config->nss_weight_per_index =
|
||||||
|
mlme_scoring_cfg->nss_weight_per_index;
|
||||||
|
score_config->band_weight_per_index =
|
||||||
|
mlme_scoring_cfg->band_weight_per_index;
|
||||||
|
|
||||||
|
score_config->rssi_score.best_rssi_threshold =
|
||||||
|
mlme_scoring_cfg->rssi_score.best_rssi_threshold;
|
||||||
|
score_config->rssi_score.good_rssi_threshold =
|
||||||
|
mlme_scoring_cfg->rssi_score.good_rssi_threshold;
|
||||||
|
score_config->rssi_score.bad_rssi_threshold =
|
||||||
|
mlme_scoring_cfg->rssi_score.bad_rssi_threshold;
|
||||||
|
score_config->rssi_score.good_rssi_pcnt =
|
||||||
|
mlme_scoring_cfg->rssi_score.good_rssi_pcnt;
|
||||||
|
score_config->rssi_score.bad_rssi_pcnt =
|
||||||
|
mlme_scoring_cfg->rssi_score.bad_rssi_pcnt;
|
||||||
|
score_config->rssi_score.good_rssi_bucket_size =
|
||||||
|
mlme_scoring_cfg->rssi_score.good_rssi_bucket_size;
|
||||||
|
score_config->rssi_score.bad_rssi_bucket_size =
|
||||||
|
mlme_scoring_cfg->rssi_score.bad_rssi_bucket_size;
|
||||||
|
score_config->rssi_score.rssi_pref_5g_rssi_thresh =
|
||||||
|
mlme_scoring_cfg->rssi_score.rssi_pref_5g_rssi_thresh;
|
||||||
|
|
||||||
|
score_config->esp_qbss_scoring.num_slot =
|
||||||
|
mlme_scoring_cfg->esp_qbss_scoring.num_slot;
|
||||||
|
score_config->esp_qbss_scoring.score_pcnt3_to_0 =
|
||||||
|
mlme_scoring_cfg->esp_qbss_scoring.score_pcnt3_to_0;
|
||||||
|
score_config->esp_qbss_scoring.score_pcnt7_to_4 =
|
||||||
|
mlme_scoring_cfg->esp_qbss_scoring.score_pcnt7_to_4;
|
||||||
|
score_config->esp_qbss_scoring.score_pcnt11_to_8 =
|
||||||
|
mlme_scoring_cfg->esp_qbss_scoring.score_pcnt11_to_8;
|
||||||
|
score_config->esp_qbss_scoring.score_pcnt15_to_12 =
|
||||||
|
mlme_scoring_cfg->esp_qbss_scoring.score_pcnt15_to_12;
|
||||||
|
|
||||||
|
score_config->oce_wan_scoring.num_slot =
|
||||||
|
mlme_scoring_cfg->oce_wan_scoring.num_slot;
|
||||||
|
score_config->oce_wan_scoring.score_pcnt3_to_0 =
|
||||||
|
mlme_scoring_cfg->oce_wan_scoring.score_pcnt3_to_0;
|
||||||
|
score_config->oce_wan_scoring.score_pcnt7_to_4 =
|
||||||
|
mlme_scoring_cfg->oce_wan_scoring.score_pcnt7_to_4;
|
||||||
|
score_config->oce_wan_scoring.score_pcnt11_to_8 =
|
||||||
|
mlme_scoring_cfg->oce_wan_scoring.score_pcnt11_to_8;
|
||||||
|
score_config->oce_wan_scoring.score_pcnt15_to_12 =
|
||||||
|
mlme_scoring_cfg->oce_wan_scoring.score_pcnt15_to_12;
|
||||||
|
}
|
||||||
|
@@ -1747,27 +1747,6 @@ static void init_config_param(tpAniSirGlobal pMac)
|
|||||||
pMac->roam.configParam.nInitialDwellTime = 0;
|
pMac->roam.configParam.nInitialDwellTime = 0;
|
||||||
pMac->roam.configParam.initial_scan_no_dfs_chnl = 0;
|
pMac->roam.configParam.initial_scan_no_dfs_chnl = 0;
|
||||||
pMac->roam.configParam.csr_mawc_config.mawc_enabled = true;
|
pMac->roam.configParam.csr_mawc_config.mawc_enabled = true;
|
||||||
|
|
||||||
qdf_mem_zero(&pMac->roam.configParam.bss_score_params,
|
|
||||||
sizeof(struct sir_score_config));
|
|
||||||
pMac->roam.configParam.bss_score_params.weight_cfg.rssi_weightage =
|
|
||||||
RSSI_WEIGHTAGE;
|
|
||||||
pMac->roam.configParam.bss_score_params.weight_cfg.ht_caps_weightage =
|
|
||||||
HT_CAPABILITY_WEIGHTAGE;
|
|
||||||
pMac->roam.configParam.bss_score_params.weight_cfg.vht_caps_weightage =
|
|
||||||
VHT_CAP_WEIGHTAGE;
|
|
||||||
pMac->roam.configParam.bss_score_params.
|
|
||||||
weight_cfg.chan_width_weightage = CHAN_WIDTH_WEIGHTAGE;
|
|
||||||
pMac->roam.configParam.bss_score_params.
|
|
||||||
weight_cfg.chan_band_weightage = CHAN_BAND_WEIGHTAGE;
|
|
||||||
pMac->roam.configParam.bss_score_params.weight_cfg.nss_weightage =
|
|
||||||
NSS_WEIGHTAGE;
|
|
||||||
pMac->roam.configParam.bss_score_params.weight_cfg.
|
|
||||||
beamforming_cap_weightage = BEAMFORMING_CAP_WEIGHTAGE;
|
|
||||||
pMac->roam.configParam.bss_score_params.weight_cfg.pcl_weightage =
|
|
||||||
PCL_WEIGHT;
|
|
||||||
pMac->roam.configParam.bss_score_params.weight_cfg.
|
|
||||||
channel_congestion_weightage = CHANNEL_CONGESTION_WEIGHTAGE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum band_info csr_get_current_band(tHalHandle hHal)
|
enum band_info csr_get_current_band(tHalHandle hHal)
|
||||||
@@ -3159,9 +3138,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
|
|||||||
pMac->roam.configParam.roam_force_rssi_trigger =
|
pMac->roam.configParam.roam_force_rssi_trigger =
|
||||||
pParam->roam_force_rssi_trigger;
|
pParam->roam_force_rssi_trigger;
|
||||||
|
|
||||||
qdf_mem_copy(&pMac->roam.configParam.bss_score_params,
|
|
||||||
&pParam->bss_score_params,
|
|
||||||
sizeof(struct sir_score_config));
|
|
||||||
pMac->roam.configParam.btm_offload_config =
|
pMac->roam.configParam.btm_offload_config =
|
||||||
pParam->btm_offload_config;
|
pParam->btm_offload_config;
|
||||||
pMac->roam.configParam.btm_solicited_timeout =
|
pMac->roam.configParam.btm_solicited_timeout =
|
||||||
@@ -3400,9 +3376,6 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
|
|||||||
pParam->oce_feature_bitmap =
|
pParam->oce_feature_bitmap =
|
||||||
pMac->roam.configParam.oce_feature_bitmap;
|
pMac->roam.configParam.oce_feature_bitmap;
|
||||||
pParam->roam_force_rssi_trigger = cfg_params->roam_force_rssi_trigger;
|
pParam->roam_force_rssi_trigger = cfg_params->roam_force_rssi_trigger;
|
||||||
qdf_mem_copy(&pParam->bss_score_params,
|
|
||||||
&pMac->roam.configParam.bss_score_params,
|
|
||||||
sizeof(struct sir_score_config));
|
|
||||||
pParam->btm_offload_config = pMac->roam.configParam.btm_offload_config;
|
pParam->btm_offload_config = pMac->roam.configParam.btm_offload_config;
|
||||||
pParam->btm_solicited_timeout =
|
pParam->btm_solicited_timeout =
|
||||||
pMac->roam.configParam.btm_solicited_timeout;
|
pMac->roam.configParam.btm_solicited_timeout;
|
||||||
@@ -19631,14 +19604,14 @@ static void csr_update_score_params(tpAniSirGlobal mac_ctx,
|
|||||||
{
|
{
|
||||||
struct scoring_param *req_score_params;
|
struct scoring_param *req_score_params;
|
||||||
struct rssi_scoring *req_rssi_score;
|
struct rssi_scoring *req_rssi_score;
|
||||||
struct sir_score_config *bss_score_params;
|
struct wlan_mlme_scoring_cfg *bss_score_params;
|
||||||
struct sir_weight_config *weight_config;
|
struct wlan_mlme_weight_config *weight_config;
|
||||||
struct sir_rssi_cfg_score *rssi_score;
|
struct wlan_mlme_rssi_cfg_score *rssi_score;
|
||||||
|
|
||||||
req_score_params = &req_buffer->score_params;
|
req_score_params = &req_buffer->score_params;
|
||||||
req_rssi_score = &req_score_params->rssi_scoring;
|
req_rssi_score = &req_score_params->rssi_scoring;
|
||||||
|
|
||||||
bss_score_params = &mac_ctx->roam.configParam.bss_score_params;
|
bss_score_params = &mac_ctx->mlme_cfg->scoring;
|
||||||
weight_config = &bss_score_params->weight_cfg;
|
weight_config = &bss_score_params->weight_cfg;
|
||||||
rssi_score = &bss_score_params->rssi_score;
|
rssi_score = &bss_score_params->rssi_score;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user