diff options
| author | Abhinav Kumar <abhikuma@codeaurora.org> | 2019-02-12 18:32:32 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2019-02-19 02:15:17 -0800 |
| commit | 5a7245af0929c08bbaa215ca221d0197de002fbd (patch) | |
| tree | 5757f93d1aa055248f6d52e0e980c543a8e50280 | |
| parent | 89911be825b3ab3c10228372b9432c052744f19e (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.h | 27 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg.c | 14 | ||||
| -rw-r--r-- | core/mac/inc/sir_api.h | 1 | ||||
| -rw-r--r-- | core/sme/inc/csr_api.h | 3 | ||||
| -rw-r--r-- | core/sme/inc/csr_internal.h | 1 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 8 | ||||
| -rw-r--r-- | core/wma/src/wma_scan_roam.c | 9 |
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); } |
