summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhishek Singh <absingh@codeaurora.org>2017-10-04 13:53:18 +0530
committersnandini <snandini@codeaurora.org>2017-10-04 08:44:05 -0700
commit0ae2e7c343e4aeb3f8df200d7b8a7632d3158acb (patch)
tree4759145a3bfbf42d87430678dcce1223128b3ec1
parent26763775d86233521a58fe550eea4c2e07db5593 (diff)
qcacld-3.0: Add INI to disable AP scoring logic for roaming
Adds an INI disable_scoring_for_roam, to disable AP scoring logic for roaming. Change-Id: Iaa29b3a3f1710fad0b25ecc991ad787527d0544f CRs-Fixed: 2120919
-rw-r--r--core/hdd/inc/wlan_hdd_cfg.h23
-rw-r--r--core/hdd/src/wlan_hdd_cfg.c12
-rw-r--r--core/mac/inc/sir_api.h1
-rw-r--r--core/sme/src/csr/csr_api_roam.c4
4 files changed, 40 insertions, 0 deletions
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 876f75174814..5d67323f9882 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -12672,6 +12672,28 @@ enum hw_filter_mode {
/*
* <ini>
+ * disable_scoring_for_roam - disable candidate selection logic for
+ * roaming
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * This ini is used to enable/disable candidate selection logic to be used
+ * during Firmware roaming.
+ *
+ * Supported Feature: STA Candidate selection
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_CANDIDATE_SEL_ROAM_NAME "disable_scoring_for_roam"
+#define CFG_ENABLE_CANDIDATE_SEL_ROAM_DEFAULT (1)
+#define CFG_ENABLE_CANDIDATE_SEL_ROAM_MIN (0)
+#define CFG_ENABLE_CANDIDATE_SEL_ROAM_MAX (1)
+
+/*
+ * <ini>
* gChanSwitchHostapdRateEnabled - Enable/disable hostapd rate when doing SAP
* channel switch
* @Min: 0
@@ -13546,6 +13568,7 @@ struct hdd_config {
uint32_t esp_qbss_score_slots7_to_4;
uint32_t esp_qbss_score_slots11_to_8;
uint32_t esp_qbss_score_slots15_to_12;
+ bool disable_scoring_for_roam;
bool chan_switch_hostapd_rate_enabled;
};
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index 3568a2d9820e..ec431957a5d2 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -5155,6 +5155,13 @@ struct reg_table_entry g_registry_table[] = {
CFG_ESP_QBSS_SCORE_IDX15_TO_12_MIN,
CFG_ESP_QBSS_SCORE_IDX15_TO_12_MAX),
+ REG_VARIABLE(CFG_ENABLE_CANDIDATE_SEL_ROAM_NAME, WLAN_PARAM_Integer,
+ struct hdd_config, disable_scoring_for_roam,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_CANDIDATE_SEL_ROAM_DEFAULT,
+ CFG_ENABLE_CANDIDATE_SEL_ROAM_MIN,
+ CFG_ENABLE_CANDIDATE_SEL_ROAM_MAX),
+
REG_VARIABLE(CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME,
WLAN_PARAM_Integer,
struct hdd_config, chan_switch_hostapd_rate_enabled,
@@ -6913,6 +6920,9 @@ void hdd_cfg_print(hdd_context_t *pHddCtx)
hdd_debug("Name = [%s] value = [%u]",
CFG_ESP_QBSS_SCORE_IDX15_TO_12_NAME,
pHddCtx->config->esp_qbss_score_slots15_to_12);
+ hdd_debug("Name = [%s] value = [%u]",
+ CFG_ENABLE_CANDIDATE_SEL_ROAM_NAME,
+ pHddCtx->config->disable_scoring_for_roam);
hdd_debug("Name = [%s] value = [%u]",
CFG_DOT11P_MODE_NAME,
@@ -8217,6 +8227,8 @@ static void hdd_update_bss_score_params(struct hdd_config *config,
{
int total_weight;
+ score_params->disable_scoring_for_roam =
+ config->disable_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 =
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index 9c68b8e25eed..b63085556501 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -3483,6 +3483,7 @@ struct sir_per_slot_scoring {
};
struct sir_score_config {
+ bool disable_scoring_for_roam;
struct sir_weight_config weight_cfg;
struct sir_rssi_cfg_score rssi_score;
struct sir_per_slot_scoring esp_qbss_scoring;
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index 1fde2891853b..be8e7e7e34e7 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -19133,6 +19133,10 @@ static void csr_update_score_params(tpAniSirGlobal mac_ctx,
weight_config = &bss_score_params->weight_cfg;
rssi_score = &bss_score_params->rssi_score;
+ if (bss_score_params->disable_scoring_for_roam)
+ req_score_params->disable_bitmap =
+ WLAN_ROAM_SCORING_DISABLE_ALL;
+
req_score_params->rssi_weightage = weight_config->rssi_weightage;
req_score_params->ht_weightage = weight_config->ht_caps_weightage;
req_score_params->vht_weightage = weight_config->vht_caps_weightage;