summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhinav Kumar <abhikuma@codeaurora.org>2019-02-12 18:32:32 +0530
committernshrivas <nshrivas@codeaurora.org>2019-02-19 02:15:17 -0800
commit5a7245af0929c08bbaa215ca221d0197de002fbd (patch)
tree5757f93d1aa055248f6d52e0e980c543a8e50280
parent89911be825b3ab3c10228372b9432c052744f19e (diff)
qcacld-3.0: Add new ini to config roaming scan behavior
Add new ini "roaming_scan_policy" to config roaming scan behavior (DBS/non-DBS) in fw side. This ini is corresponding scan_ctrl_flags_ext in wmi_start_scan_cmd_fixed_param when host sends WMI_ROAM_SCAN_MODE to fw. Change-Id: Id95c3b9bb40d4f32ab3ff14a30f72c6150ac1884 CRs-Fixed: 2398531
-rw-r--r--core/hdd/inc/wlan_hdd_cfg.h27
-rw-r--r--core/hdd/src/wlan_hdd_cfg.c14
-rw-r--r--core/mac/inc/sir_api.h1
-rw-r--r--core/sme/inc/csr_api.h3
-rw-r--r--core/sme/inc/csr_internal.h1
-rw-r--r--core/sme/src/csr/csr_api_roam.c8
-rw-r--r--core/wma/src/wma_scan_roam.c9
7 files changed, 58 insertions, 5 deletions
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 1d3c9f2430e3..99167dbd1d19 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -2246,6 +2246,30 @@ enum hdd_dot11_mode {
/*
* <ini>
+ * roaming_scan_policy - To config roaming scan policy
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to configure roaming scan behavior from HOST
+ * 0 : DBS scan
+ * 1 : Non-DBS scan
+ *
+ * Related: None
+ *
+ * Supported Feature: Roaming
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ROAM_SCAN_SCAN_POLICY_NAME "roaming_scan_policy"
+#define CFG_ROAM_SCAN_SCAN_POLICY_MIN (0)
+#define CFG_ROAM_SCAN_SCAN_POLICY_MAX (1)
+#define CFG_ROAM_SCAN_SCAN_POLICY_DEFAULT (0)
+
+/*
+ * <ini>
* roam_bad_rssi_thresh_offset_2g - RSSI threshold offset for 2G to 5G roam
* @Min: 0
* @Max: 86
@@ -15888,6 +15912,7 @@ struct hdd_config {
uint32_t ho_delay_for_rx;
uint32_t min_delay_btw_roam_scans;
uint32_t roam_trigger_reason_bitmask;
+ bool roaming_scan_policy;
uint32_t roam_bg_scan_client_bitmap;
bool enable_edca_params;
uint32_t edca_vo_cwmin;
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index 32878f57fe6e..3fd0b1327af4 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -4090,6 +4090,13 @@ struct reg_table_entry g_registry_table[] = {
CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_MIN,
CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_MAX),
+ REG_VARIABLE(CFG_ROAM_SCAN_SCAN_POLICY_NAME, WLAN_PARAM_Integer,
+ struct hdd_config, roaming_scan_policy,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ROAM_SCAN_SCAN_POLICY_DEFAULT,
+ CFG_ROAM_SCAN_SCAN_POLICY_MIN,
+ CFG_ROAM_SCAN_SCAN_POLICY_MAX),
+
REG_VARIABLE(CFG_ENABLE_FATAL_EVENT_TRIGGER, WLAN_PARAM_Integer,
struct hdd_config, enable_fatal_event,
VAR_FLAGS_OPTIONAL |
@@ -7402,6 +7409,9 @@ void hdd_cfg_print(hdd_context_t *pHddCtx)
CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_NAME,
pHddCtx->config->roam_trigger_reason_bitmask);
hdd_debug("Name = [%s] Value = [%u]",
+ CFG_ROAM_SCAN_SCAN_POLICY_NAME,
+ pHddCtx->config->roaming_scan_policy);
+ hdd_debug("Name = [%s] Value = [%u]",
CFG_MIN_REST_TIME_NAME,
pHddCtx->config->min_rest_time_conc);
hdd_debug("Name = [%s] Value = [%u]",
@@ -10339,6 +10349,8 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
pHddCtx->config->min_delay_btw_roam_scans;
smeConfig->csrConfig.roam_trigger_reason_bitmask =
pHddCtx->config->roam_trigger_reason_bitmask;
+ smeConfig->csrConfig.roaming_scan_policy =
+ pHddCtx->config->roaming_scan_policy;
smeConfig->csrConfig.obss_width_interval =
pHddCtx->config->obss_width_trigger_interval;
smeConfig->csrConfig.obss_active_dwelltime =
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index 19683b2d1bcf..63018564708b 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -3722,6 +3722,7 @@ typedef struct sSirRoamOffloadScanReq {
uint32_t min_delay_btw_roam_scans;
uint32_t roam_trigger_reason_bitmask;
bool roam_force_rssi_trigger;
+ bool roaming_scan_policy;
} tSirRoamOffloadScanReq, *tpSirRoamOffloadScanReq;
typedef struct sSirRoamOffloadScanRsp {
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index 9da0338cbae4..93de0efb53f6 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1312,6 +1312,7 @@ typedef struct tagCsrConfigParam {
uint32_t roam_preauth_no_ack_timeout;
uint32_t min_delay_btw_roam_scans;
uint32_t roam_trigger_reason_bitmask;
+ bool roaming_scan_policy;
uint8_t isCoalesingInIBSSAllowed;
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
uint8_t cc_switch_mode;
diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h
index 07c0aaacf78a..ddd7a8966991 100644
--- a/core/sme/inc/csr_internal.h
+++ b/core/sme/inc/csr_internal.h
@@ -692,6 +692,7 @@ typedef struct tagCsrConfig {
struct csr_neighbor_report_offload_params neighbor_report_offload;
bool enable_ftopen;
bool roam_force_rssi_trigger;
+ bool roaming_scan_policy;
} tCsrConfig;
typedef struct tagCsrChannelPowerInfo {
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index c738adf5e6bd..b67915e81419 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -2875,6 +2875,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
pParam->min_delay_btw_roam_scans;
pMac->roam.configParam.roam_trigger_reason_bitmask =
pParam->roam_trigger_reason_bitmask;
+ pMac->roam.configParam.roaming_scan_policy =
+ pParam->roaming_scan_policy;
pMac->roam.configParam.isCoalesingInIBSSAllowed =
pParam->isCoalesingInIBSSAllowed;
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
@@ -3246,6 +3248,8 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
pParam->min_delay_btw_roam_scans = cfg_params->min_delay_btw_roam_scans;
pParam->roam_trigger_reason_bitmask =
cfg_params->roam_trigger_reason_bitmask;
+ pParam->roaming_scan_policy =
+ cfg_params->roaming_scan_policy;
pParam->isCoalesingInIBSSAllowed = cfg_params->isCoalesingInIBSSAllowed;
pParam->allowDFSChannelRoam = cfg_params->allowDFSChannelRoam;
pParam->nInitialDwellTime = cfg_params->nInitialDwellTime;
@@ -19167,6 +19171,8 @@ csr_update_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
mac_ctx->roam.configParam.min_delay_btw_roam_scans;
req_buf->roam_trigger_reason_bitmask =
mac_ctx->roam.configParam.roam_trigger_reason_bitmask;
+ req_buf->roaming_scan_policy =
+ mac_ctx->roam.configParam.roaming_scan_policy;
req_buf->roam_force_rssi_trigger =
mac_ctx->roam.configParam.roam_force_rssi_trigger;
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index e9e6c0b24896..8c85ede4d95f 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1003,6 +1003,13 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
params->assoc_ie_length = roam_req->assoc_ie.length;
qdf_mem_copy(params->assoc_ie, roam_req->assoc_ie.addIEdata,
roam_req->assoc_ie.length);
+ /*Configure roaming scan behavior (DBS/Non-DBS scan)*/
+ if (roam_req->roaming_scan_policy)
+ scan_cmd_fp->scan_ctrl_flags_ext |=
+ WMI_SCAN_DBS_POLICY_FORCE_NONDBS;
+ else
+ scan_cmd_fp->scan_ctrl_flags_ext |=
+ WMI_SCAN_DBS_POLICY_DEFAULT;
wma_roam_scan_fill_fils_params(wma_handle, params, roam_req);
}