/* * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. 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 * above copyright notice and this permission notice appear in all * copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ /** * DOC: This file contains centralized definitions of SCAN component */ #ifndef __CONFIG_SCAN_H #define __CONFIG_SCAN_H #include "cfg_define.h" /** * enum scan_mode_6ghz - scan mode for 6GHz * @SCAN_MODE_6G_NO_CHANNEL: Remove 6GHz channels in the scan request * @SCAN_MODE_6G_PSC_CHANNEL: Scan only 6Ghz PSC channels and non-PSC * through RNR IE * @SCAN_MODE_6G_ALL_CHANNEL: Scan all the 6Ghz channels * @SCAN_MODE_6G_RNR_ONLY: Scan the channels (both PSC and non-PSC) found in * RNR-IEs while scanning 2g and 5g bands. Host fills all PSC and non-PSC * channels in the scan request and set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND * for each channel. * @SCAN_MODE_6G_PSC_DUTY_CYCLE: Scan the complete PSC channel list for every * duty cycle. For every duty cycle scan, host fills all 6g channels and sets * the flag FLAG_SCAN_ONLY_IF_RNR_FOUND only for non-PSC channels. Rest of the * scans will be done only on RNR channels (PSC and non-PSC). * @SCAN_MODE_6G_ALL_DUTY_CYCLE: Scan the complete 6g(PSC and non-PSC) channel * list for every duty cycle. For every duty cycle scan, host fills all 6g * channels and doesn't set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND for any 6g * (PSC/non-PSC) channels. Rest of the scans will be done only on RNR (PSC and * non-PSC channels). * @SCAN_MODE_6G_MAX: Max enumeration */ enum scan_mode_6ghz { SCAN_MODE_6G_NO_CHANNEL, SCAN_MODE_6G_PSC_CHANNEL, SCAN_MODE_6G_ALL_CHANNEL, SCAN_MODE_6G_RNR_ONLY, SCAN_MODE_6G_PSC_DUTY_CYCLE, SCAN_MODE_6G_ALL_DUTY_CYCLE, SCAN_MODE_6G_MAX = SCAN_MODE_6G_ALL_DUTY_CYCLE, }; /* * * drop_bcn_on_chan_mismatch - drop the beacon for chan mismatch * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to decide drop the beacon or not if channel received * in metadata doesn't match the one in beacon. * * Related: None * * Usage: External * * */ #define CFG_DROP_BCN_ON_CHANNEL_MISMATCH CFG_INI_BOOL(\ "drop_bcn_on_chan_mismatch",\ true,\ "drop bcn on channel mismatch") /* * * drop_bcn_on_invalid_freq - drop the beacon or probe resp with invalid freq * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to decide whether to drop the beacon/probe resp or not * if channel received in DS param, HT info and HE IE is invalid. * * Related: None * * Usage: External * * */ #define CFG_DROP_BCN_ON_INVALID_FREQ CFG_INI_BOOL(\ "drop_bcn_on_invalid_freq",\ true,\ "drop bcn on invalid freq in HT, DS, HE IE") /* * * gActiveMaxChannelTime - Set max channel time for active scan * @Min: 0 * @Max: 10000 * @Default: 40 * * This ini is used to set maximum channel time in msecs spent in * active scan * * Related: None * * Usage: External * * */ #define CFG_ACTIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\ "gActiveMaxChannelTime",\ 0, 10000, PLATFORM_VALUE(40, 105),\ CFG_VALUE_OR_DEFAULT, "active dwell time") /* * * gEnableDFSChnlScan - Enable/Disable scan on DFS channels * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to enable/disable scan on DFS channels. * * Related: Scan * * Usage: External * * */ #define CFG_ENABLE_DFS_SCAN CFG_INI_BOOL( \ "gEnableDFSChnlScan", \ true, \ "enable dfs scan") /* * * gInitialScanNoDFSChnl - Exclude DFS channels in first scan * @Min: 0 * @Max: 1 * @Default: 0 * * This ini is used to enable/disable scan on DFS channels, in first scan only * * Related: Scan * * Usage: External * * */ #define CFG_INITIAL_NO_DFS_SCAN CFG_INI_BOOL( \ "gInitialScanNoDFSChnl", \ false, \ "disable initial dfs scan") /* * * active_max_channel_time_2g - Set max time for active 2G channel scan * @Min: 0 * @Max: 10000 * @Default: 80 * * This ini is used to set maximum time in msecs spent in active 2G channel scan * if it's not zero, in case of zero, CFG_ACTIVE_MAX_CHANNEL_TIME is used for 2G * channels also. * * Related: None * * Usage: External * * */ #define CFG_ACTIVE_MAX_2G_CHANNEL_TIME CFG_INI_UINT(\ "active_max_channel_time_2g",\ 0, 10000, PLATFORM_VALUE(80, 0),\ CFG_VALUE_OR_DEFAULT, "active dwell time for 2G channels") /* * * min_channel_time_6g - Set min dwell time for 6G channels scan * @Min: 5 * @Max: 60 * @Default: 25 * * This ini is used to set minimum time in msecs spent in 6G channels scan. * Firmware will park on the 6G channel for this duration and if no FILS * discovery, Beacon, Probe resp is received it will move to new channel after * this duration. If found , it will wait for "active_max_channel_time_6g" * duration * * Related: active_max_channel_time_6g * * Supported Feature: Scan * * Usage: External * * */ #define CFG_MIN_6G_CHANNEL_TIME CFG_INI_UINT(\ "min_dwell_time_6g",\ 5, 60, 25,\ CFG_VALUE_OR_DEFAULT, "min dwell time for 6G channels") /* * * active_max_channel_time_6g - Set max time for active 6G channel scan * @Min: 0 * @Max: 10000 * @Default: 60 * * This ini is used to set maximum time in msecs spent in active 6G channel scan * * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_ACTIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\ "active_max_channel_time_6g",\ 0, 10000, 60,\ CFG_VALUE_OR_DEFAULT, "max active dwell time for 6G channels") /* * * passive_max_channel_time_6g - Set max time for passive 6G channel scan * @Min: 0 * @Max: 10000 * @Default: 60 * * This ini is used to set maximum time in msecs spent in passive 6G chan scan * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_PASSIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\ "passive_max_channel_time_6g",\ 0, 10000, 60,\ CFG_VALUE_OR_DEFAULT, "max passive dwell time for 6G channels") /* * * active_max_channel_time_6g_conc - Set max time for active 6G * channel scan when associated to AP. * @Min: 0 * @Max: 10000 * @Default: 40 * * This ini is used to set maximum time in msecs spent in * active 6G channel scan * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_ACTIVE_MAX_6G_CHANNEL_TIME_CONC CFG_INI_UINT(\ "active_max_channel_time_6g_conc",\ 0, 10000, 40,\ CFG_VALUE_OR_DEFAULT, "active conc dwell time for 6G channels") /* * * passive_max_channel_time_6g_conc - Set max time for passive 6G * channel scan when associated to AP. * @Min: 0 * @Max: 10000 * @Default: 40 * * This ini is used to set maximum time in msecs spent in * passive 6G chan scan * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_PASSIVE_MAX_6G_CHANNEL_TIME_CONC CFG_INI_UINT(\ "passive_max_channel_time_6g_conc",\ 0, 10000, 40,\ CFG_VALUE_OR_DEFAULT,\ "passive conc dwell time for 6G channels") /* * * gPassiveMaxChannelTime - Set max channel time for passive scan * @Min: 0 * @Max: 10000 * @Default: 110 * * This ini is used to set maximum channel time in msecs spent in * passive scan * * Related: None * * Usage: External * * */ #define CFG_PASSIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\ "gPassiveMaxChannelTime",\ 0, 10000, PLATFORM_VALUE(110, 300),\ CFG_VALUE_OR_DEFAULT, "passive dwell time") /* * * gScanNumProbes - Set the number of probes on each channel for active scan * @Min: 0 * @Max: 20 * @Default: 0 * * This ini is used to set number of probes on each channel for * active scan */ #define CFG_SCAN_NUM_PROBES CFG_INI_UINT(\ "gScanNumProbes",\ 0, 20, PLATFORM_VALUE(0, 2),\ CFG_VALUE_OR_DEFAULT,\ "number of probes on each channel") /* * * gScanProbeRepeatTime - Set the probe repeat time on each channel * @Min: 0 * @Max: 30 * @Default: 0 * * This ini is used to set probe repeat time on each channel for * active scan * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_SCAN_PROBE_REPEAT_TIME CFG_INI_UINT(\ "gScanProbeRepeatTime",\ 0, 50, PLATFORM_VALUE(20, 50),\ CFG_VALUE_OR_DEFAULT,\ "probe repeat time on each channel") /* * * hostscan_adaptive_dwell_mode - Enable adaptive dwell mode * during host scan with connection * @Min: 0 * @Max: 4 * @Default: 1 * * This ini will set the algo used in dwell time optimization * during host scan with connection. * See enum wmi_dwelltime_adaptive_mode. * Acceptable values for this: * 0: Default (Use firmware default mode) * 1: Conservative optimization * 2: Moderate optimization * 3: Aggressive optimization * 4: Static * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_ADAPTIVE_SCAN_DWELL_MODE CFG_INI_UINT(\ "hostscan_adaptive_dwell_mode",\ 0, 4, PLATFORM_VALUE(1, 0),\ CFG_VALUE_OR_DEFAULT,\ "Enable adaptive dwell mode") /* * * hostscan_adaptive_dwell_mode_no_conn - Enable adaptive dwell mode * during host scan without connection * @Min: 0 * @Max: 4 * @Default: 4 * * This ini will set the algo used in dwell time optimization * during host scan with connection. * See enum wmi_dwelltime_adaptive_mode. * Acceptable values for this: * 0: Default (Use firmware default mode) * 1: Conservative optimization * 2: Moderate optimization * 3: Aggressive optimization * 4: Static * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_ADAPTIVE_SCAN_DWELL_MODE_NC CFG_INI_UINT(\ "hostscan_adaptive_dwell_mode_no_conn",\ 0, 4, PLATFORM_VALUE(4, 0),\ CFG_VALUE_OR_DEFAULT,\ "Enable adaptive dwell mode without connection") /* * * honour_nl_scan_policy_flags - This ini will decide whether to honour * NL80211 scan policy flags * @Min: 0 * @Max: 1 * @Default: 1 * * This parameter will decide whether to honour scan flags such as * NL80211_SCAN_FLAG_HIGH_ACCURACY , NL80211_SCAN_FLAG_LOW_SPAN, * NL80211_SCAN_FLAG_LOW_POWER. * Acceptable values for this: * 0: Config is disabled * 1: Config is enabled * * Related: None * * Supported Feature: Scan * * Usage: Internal * * */ #define CFG_HONOUR_NL_SCAN_POLICY_FLAGS CFG_INI_BOOL(\ "honour_nl_scan_policy_flags",\ true, \ "honour NL80211 scan policy flags") #ifdef FEATURE_WLAN_SCAN_PNO /* * * g_user_config_sched_scan_plan - set user config sched scan plans. * @Min: 0 * @Max:1 * @Default: 1 * * This ini is used to decide if user config number of sched scan plan needs to * be configured or only one sched scan plan needs to be configured. * If this ini is enabled then user config number of sched scan plans will be * configured else only one sched scan plan will be configured. * * Supported Feature: PNO scan * * Usage: External * * */ #define CFG_USER_CONFIG_SCHED_SCAN_PLAN CFG_INI_BOOL(\ "g_user_config_sched_scan_plan",\ true, \ "set user config sched scan plans") /* * * g_max_sched_scan_plan_iterations - pno sched max scan plan iterations. * @Min: 1 * @Max: 100 * @Default: 10 * * This ini is used to set max sched scan plan iterations for pno scan * (value in seconds). * * Related: gPNOScanSupport * * Supported Feature: PNO scan * * Usage: External * * */ #define CFG_MAX_SCHED_SCAN_PLAN_ITERATIONS CFG_INI_UINT( \ "g_max_sched_scan_plan_iterations", \ 1, 100, 10, \ CFG_VALUE_OR_DEFAULT, \ "Max sched scan plan iterations") /* * * g_max_sched_scan_plan_int - pno sched max scan plan interval. * @Min: 1 * @Max: 7200 * @Default: 3600 * * This ini is used to set max sched scan plan interval for pno scan * (value in seconds). * * Related: gPNOScanSupport * * Supported Feature: PNO scan * * Usage: External * * */ #define CFG_MAX_SCHED_SCAN_PLAN_INTERVAL CFG_INI_UINT( \ "g_max_sched_scan_plan_int", \ 1, 7200, 3600, \ CFG_VALUE_OR_DEFAULT, \ "Max sched scan plan interval") /* * * gEnableDFSPnoChnlScan - enable dfs channels in PNO scan * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to enable/disable dfs channels in PNO scan request, * enabling this ini enables driver to include dfs channels in its * PNO scan request * Related: NA * * Supported Feature: DFS, PNO * * Usage: Internal/External * * */ #define CFG_ENABLE_DFS_PNO_CHNL_SCAN CFG_INI_BOOL( \ "gEnableDFSPnoChnlScan", \ true, \ "Enable dfs channels in PNO Scan") /* * * gPNOScanSupport - Enable or Disable PNO scan * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to Enable or Disable PNO scan * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_PNO_SCAN_SUPPORT CFG_INI_BOOL( \ "gPNOScanSupport", \ true, \ "Enable/Disable PNO scan") /* * * gPNOScanTimerRepeatValue - Set PNO scan timer repeat value * @Min: 0 * @Max: 0xffffffff * @Default: 30 * * This ini is used by firmware to set fast scan max cycles * equal to gPNOScanTimerRepeatValue. Taking power consumption * into account firmware after gPNOScanTimerRepeatValue times * fast_scan_period switches to slow_scan_period. * * Usage: External * * */ #define CFG_PNO_SCAN_TIMER_REPEAT_VALUE CFG_INI_UINT( \ "gPNOScanTimerRepeatValue", \ 0, \ 0xffffffff, \ 30, \ CFG_VALUE_OR_DEFAULT, \ "PNO scan timer repeat value") /* * * gPNOSlowScanMultiplier - Set PNO slow scan multiplier * @Min: 0 * @Max: 30 * @Default: 6 * * This ini is used by firmware to set slow scan period * as gPNOSlowScanMultiplier times fast_scan_period. * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_PNO_SLOW_SCAN_MULTIPLIER CFG_INI_UINT( \ "gPNOSlowScanMultiplier", \ 0, \ 30, \ 6, \ CFG_VALUE_OR_DEFAULT, \ "PNO slow scan multiplier") /* * * gPNOChannelPrediction - Enable/disable the PNO channel * prediction feature. * @Min: 0 * @Max: 1 * @Default: 0 * * In current PNO implementation, scan is always done until all configured * channels are scanned. If we can determine DUT is stationary based on * scanning a subset of channels, we may cancel the remaining channels. * Hence, we can save additional power consumption. * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_PNO_CHANNEL_PREDICTION CFG_INI_BOOL( \ "gPNOChannelPrediction", \ false, \ "enable/disable PNO channel prediction feature") /* * * gTopKNumOfChannels - top K number of channels are used for tanimoto distance * @Min: 1 * @Max: 5 * @Default: 3 * * These are the top channels on which the probability of finding the AP's is * extremely high. This number is intended for tweaking the internal algorithm * for experiments. This should not be changed externally. * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_TOP_K_NUM_OF_CHANNELS CFG_INI_UINT( \ "gTopKNumOfChannels", \ 1, \ 5, \ 3, \ CFG_VALUE_OR_DEFAULT, \ "Top K number of channels") /* * * gStationaryThreshold - STA threshold value to determine if it is stationary * @Min: 0 * @Max: 100 * @Default: 10 * * This is the threshold value to determine that the STA is * stationary. If the tanimoto distance is less than this * value, then the device is considered to be stationary. * This parameter is intended to tweak the internal algorithm * for experiments. This should not be changed externally. * * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_STATIONARY_THRESHOLD CFG_INI_UINT( \ "gStationaryThreshold", \ 0, \ 100, \ 10, \ CFG_VALUE_OR_DEFAULT, \ "Threshold to determine if sta is stationary") /* * * gChPredictionFullScanMs - Set periodic timer for channel prediction * @Min: 3000 * @Max: 0x7fffffff * @Default: 60000 * * This ini is used to set the periodic timer upon which * a full scan needs to be triggered when PNO channel * prediction feature is enabled. This parameter is intended * to tweak the internal algorithm for experiments. * * Related: None * * Supported Feature: Scan * * Usage: Internal * * */ #define CFG_CHANNEL_PREDICTION_SCAN_TIMER CFG_INI_UINT( \ "gChPredictionFullScanMs", \ 3000, \ 0x7fffffff, \ 60000, \ CFG_VALUE_OR_DEFAULT, \ "Timer value for channel prediction") /* * * pnoscan_adaptive_dwell_mode - Enable adaptive dwell mode * during pno scan * @Min: 0 * @Max: 4 * @Default: 1 * * This ini will set the algo used in dwell time optimization * during pno scan. see enum scan_dwelltime_adaptive_mode. * Acceptable values for this: * 0: Default (Use firmware default mode) * 1: Conservative optimization * 2: Moderate optimization * 3: Aggressive optimization * 4: Static * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE CFG_INI_UINT( \ "pnoscan_adaptive_dwell_mode", \ 0, \ 4, \ 1, \ CFG_VALUE_OR_DEFAULT, \ "Algorithm used in dwell time optimization") /* * * gScanBackoffMultiplier - For NLO/PNO, multiply fast scan period by this every * max cycles * @Min: 0 * @Max: 255 * @Default: 0 * * For Network Listen Offload and Preferred Network Offload, multiply the fast * scan period by this value after max cycles have occurred. Setting this to 0 * disables the feature. * * @E.g. * # Disable scan backoff multiplier * gScanBackoffMultiplier=0 * # Effectively the same * gScanBackoffMultiplier=1 * # Double the scan period after each max cycles have occurred * gScanBackoffMultiplier=2 * * Related: NLO, PNO * * Usage: Internal/External * * */ #define CFG_SCAN_BACKOFF_MULTIPLIER CFG_INI_UINT( \ "gScanBackoffMultiplier", \ 0, \ 255, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Scan backoff multiplier") /* * * mawc_nlo_enabled - For NLO/PNO, enable MAWC based scan * @Min: 0 * @Max: 1 * @Default: 0 * * Enable/Disable the Motion Aided Wireless Connectivity * based NLO using this parameter * * Related: NLO, PNO * * Usage: Internal/External * * */ #define CFG_MAWC_NLO_ENABLED CFG_INI_BOOL( \ "mawc_nlo_enabled", \ 0, \ "Enable MAWC based scan") /* * * mawc_nlo_exp_backoff_ratio - Exponential back off ratio * @Min: 0 * @Max: 300 * @Default: 3 * * Configure the exponential back off ratio using this * parameter for MAWC based NLO * ratio of exponential backoff, next = current + current*ratio/100 * * Related: NLO, PNO * * Usage: Internal/External * * */ #define CFG_MAWC_NLO_EXP_BACKOFF_RATIO CFG_INI_UINT( \ "mawc_nlo_exp_backoff_ratio", \ 0, \ 300, \ 3, \ CFG_VALUE_OR_DEFAULT, \ "MWAC based NLO exponential ratio") /* * * mawc_nlo_init_scan_interval - Initial Scan Interval * @Min: 1000 * @Max: 0xFFFFFFFF * @Default: 10000 * * Configure the initial scan interval using this * parameter for MAWC based NLO (Units in Milliseconds) * * Related: NLO, PNO * * Usage: Internal/External * * */ #define CFG_MAWC_NLO_INIT_SCAN_INTERVAL CFG_INI_UINT( \ "mawc_nlo_init_scan_interval", \ 1000, \ 0xFFFFFFFF, \ 10000, \ CFG_VALUE_OR_DEFAULT, \ "Initial Scan Interval") /* * * mawc_nlo_max_scan_interval - Maximum Scan Interval * @Min: 1000 * @Max: 0xFFFFFFFF * @Default: 60000 * * Configure the maximum scan interval using this * parameter for MAWC based NLO (Units in Milliseconds) * * Related: NLO, PNO * * Usage: Internal/External * * */ #define CFG_MAWC_NLO_MAX_SCAN_INTERVAL CFG_INI_UINT( \ "mawc_nlo_max_scan_interval", \ 1000, \ 0xFFFFFFFF, \ 60000, \ CFG_VALUE_OR_DEFAULT, \ "Maximum Scan Interval") #define CFG_SCAN_PNO \ CFG(CFG_MAX_SCHED_SCAN_PLAN_ITERATIONS) \ CFG(CFG_MAX_SCHED_SCAN_PLAN_INTERVAL) \ CFG(CFG_PNO_SCAN_SUPPORT) \ CFG(CFG_ENABLE_DFS_PNO_CHNL_SCAN) \ CFG(CFG_PNO_SCAN_TIMER_REPEAT_VALUE) \ CFG(CFG_PNO_SLOW_SCAN_MULTIPLIER) \ CFG(CFG_PNO_CHANNEL_PREDICTION) \ CFG(CFG_TOP_K_NUM_OF_CHANNELS) \ CFG(CFG_STATIONARY_THRESHOLD) \ CFG(CFG_CHANNEL_PREDICTION_SCAN_TIMER) \ CFG(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE) \ CFG(CFG_SCAN_BACKOFF_MULTIPLIER) \ CFG(CFG_MAWC_NLO_ENABLED) \ CFG(CFG_MAWC_NLO_EXP_BACKOFF_RATIO) \ CFG(CFG_MAWC_NLO_INIT_SCAN_INTERVAL) \ CFG(CFG_MAWC_NLO_MAX_SCAN_INTERVAL) \ CFG(CFG_USER_CONFIG_SCHED_SCAN_PLAN) #else #define CFG_SCAN_PNO #endif /* FEATURE_WLAN_SCAN_PNO */ /* * * gActiveMaxChannelTimeConc - Maximum active scan time in milliseconds. * @Min: 0 * @Max: 10000 * @Default: 40 * * This ini is used to set maximum active scan time in STA+SAP concurrent * mode. * * Related: None. * * Supported Feature: Concurrency * * Usage: Internal/External * * */ #define CFG_ACTIVE_MAX_CHANNEL_TIME_CONC CFG_INI_UINT(\ "gActiveMaxChannelTimeConc",\ 0, 10000, PLATFORM_VALUE(40, 0),\ CFG_VALUE_OR_DEFAULT, \ "active scan time in STA+SAP concurrent") /* * * gPassiveMaxChannelTimeConc - Maximum passive scan time in milliseconds. * @Min: 0 * @Max: 10000 * @Default: 110 * * This ini is used to set maximum passive scan time in STA+SAP concurrent * mode. * * Related: None. * * Supported Feature: Concurrency * * Usage: Internal/External * * */ #define CFG_PASSIVE_MAX_CHANNEL_TIME_CONC CFG_INI_UINT(\ "gPassiveMaxChannelTimeConc",\ 0, 10000, PLATFORM_VALUE(110, 0),\ CFG_VALUE_OR_DEFAULT, \ "Set priority for connection with bssid_hint") /* * * gRestTimeConc - Rest time before moving to a new channel to scan. * @Min: 0 * @Max: 10000 * @Default: 100 * * This ini is used to configure rest time. * * Related: None. * * Supported Feature: Concurrency * * Usage: Internal/External * * */ #define CFG_MAX_REST_TIME_CONC CFG_INI_UINT(\ "nRestTimeConc",\ 0, 10000, PLATFORM_VALUE(100, 0),\ CFG_VALUE_OR_DEFAULT, \ "Rest time before moving to a new channel") /* * * min_rest_time_conc - Minimum time spent on home channel before moving to a * new channel to scan. * @Min: 0 * @Max: 50 * @Default: 50 * * This ini is used to configure minimum time spent on home channel before * moving to a new channel to scan. * * Related: None. * * Supported Feature: Concurrency * * Usage: Internal/External * * */ #define CFG_MIN_REST_TIME_CONC CFG_INI_UINT(\ "min_rest_time_conc",\ 0, 50, PLATFORM_VALUE(50, 0),\ CFG_VALUE_OR_DEFAULT, \ "minimum time spent on home channel") /* * * wake_lock_in_user_scan - use to acquire wake lock during user scan * @Min: 0 * @Max: 1 * @Default: 0 * * This INI is added for a specific OEM on their request, who don’t want to * use PNO offload scan (sched scans). This is useful only if PNO scan offload * is disabled. If PNO scan is enabled this INI should be disabled and its * by default disabled intentionally. * This is used to acquire wake lock to handle the case where PNO scan offload * is disabled so that wlan is not suspended during scan before connect and * thus scan is not aborted in between. In case PNO scan is offloaded, the FW * will take care of connect scans and will wake up host when candidate is found * * Related: Scan * * Usage: Internal/External * * */ #define CFG_ENABLE_WAKE_LOCK_IN_SCAN CFG_INI_BOOL( \ "wake_lock_in_user_scan", \ false, \ "use wake lock during scan") /* * * gIdleTimeConc - Data inactivity time in msec. * @Min: 0 * @Max: 25 * @Default: 25 * * This ini is used to configure data inactivity time in msec on bss channel * that will be used by scan engine in firmware. * For example if this value is 25ms then firmware will check for data * inactivity every 25ms till gRestTimeConc is reached. * If inactive then scan engine will move from home channel to scan the next * frequency. * * Related: None. * * Supported Feature: Concurrency * * Usage: Internal/External * * */ #define CFG_IDLE_TIME_CONC CFG_INI_UINT(\ "gIdleTimeConc",\ 0, 25, PLATFORM_VALUE(25, 0),\ CFG_VALUE_OR_DEFAULT, \ "data inactivity time on bss channel") /* * * gChlistTrimConc - Enable scan list modification on concurrent mode. * @Min: 0 * @Max: 1 * @Default: 0 * * This ini is used to enable/disable scan list modification * on concurrent mode. * * Related: None. * * Supported Feature: Concurrency, Scan * * Usage: Internal/External * * */ #define CFG_CHAN_LIST_TRIM_CONC CFG_INI_BOOL(\ "ch_list_trim_conc",\ false, \ "Enable scan list trim") /* * * gEnableMacAddrSpoof - Enable mac address randomization feature. * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to enable/disable mac address randomization for scan. * * Supported Feature: SCAN * * * Usage: Internal/External * * */ #define CFG_ENABLE_MAC_ADDR_SPOOFING CFG_INI_BOOL( \ "gEnableMacAddrSpoof", \ true, \ "Enable mac spoofing") /* * * gScanAgingTime - Set scan aging time * @Min: 0 * @Max: 200 * @Default: 30 * * This ini is used to set scan aging timeout value * in secs. For example after 30 secs the bss results * greater than 30secs age will be flushed. * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #ifdef CONFIG_WIFI_EMULATION_WIFI_3_0 #define CFG_SCAN_AGING_TIME_DEFAULT (90) #else #define CFG_SCAN_AGING_TIME_DEFAULT (30) #endif #define CFG_SCAN_AGING_TIME CFG_INI_UINT( \ "gScanAgingTime", \ 0, \ 200, \ CFG_SCAN_AGING_TIME_DEFAULT, \ CFG_VALUE_OR_DEFAULT, \ "scan aging time") /* * * extscan_adaptive_dwell_mode Enable adaptive dwell mode * during ext scan * @Min: 0 * @Max: 4 * @Default: 1 * * This ini will set the algo used in dwell time optimization * during ext scan. see enum scan_dwelltime_adaptive_mode. * Acceptable values for this: * 0: Default (Use firmware default mode) * 1: Conservative optimization * 2: Moderate optimization * 3: Aggressive optimization * 4: Static * * Related: None * * Supported Feature: Scan * * Usage: External * * */ #define CFG_ADAPTIVE_EXTSCAN_DWELL_MODE CFG_INI_UINT( \ "extscan_adaptive_dwell_mode", \ 0, \ 4, \ 1, \ CFG_VALUE_OR_DEFAULT, \ "ext scan adaptive dwell mode") /* * * sta_scan_burst_duration - Burst duration in case of split scan. * @Min: 0 * @Max: 180 * @Default: 0 * * This ini is used to set burst duration of sta scan requests. * * Related: None. * * Supported Feature: Concurrency * * Usage: External * * */ #define CFG_STA_SCAN_BURST_DURATION CFG_INI_UINT( \ "sta_scan_burst_duration", \ 0, \ 180, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "sta scan burst duration") /* * * p2p_scan_burst_duration - Burst duration in case of split scan for p2p scan. * @Min: 0 * @Max: 180 * @Default: 0 * * This ini is used to set burst duration of scan for p2p scan requests. * * Related: None. * * Supported Feature: Concurrency * * Usage: External * * */ #define CFG_P2P_SCAN_BURST_DURATION CFG_INI_UINT( \ "p2p_scan_burst_duration", \ 0, \ 180, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "p2p scan burst duration") /* * * go_scan_burst_duration - Burst duration in case of split scan when GO is * active. * @Min: 0 * @Max: 180 * @Default: 0 * * This ini is used to set burst duration of scan when GO is active. * * Related: None. * * Supported Feature: Concurrency * * Usage: External * * */ #define CFG_GO_SCAN_BURST_DURATION CFG_INI_UINT( \ "go_scan_burst_duration", \ 0, \ 180, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "go scan burst duration") /* * * ap_scan_burst_duration - Burst duration in case of split scan when ap * is active. * @Min: 0 * @Max: 32 * @Default: 0 * * This ini is used to set burst duration of scan when SAP is active. * * Related: None. * * Supported Feature: Concurrency * * Usage: External * * */ #define CFG_AP_SCAN_BURST_DURATION CFG_INI_UINT( \ "ap_scan_burst_duration", \ 0, \ 32, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "ap scan burst duration") /* * * gSkipDfsChannelInP2pSearch - Skip DFS Channel in case of P2P Search * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to disable(skip) dfs channel in p2p search. * Related: None. * * Supported Feature: DFS P2P * * Usage: External * * */ #define CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH CFG_INI_BOOL( \ "gSkipDfsChannelInP2pSearch", \ 1, \ "skip dfs channel in p2p search") /* * * gEnableConnectedScan - Will enable or disable scan in connected state * This ini is used to enable or disable the scanning in * Connected state * @Min: 0 * @Max: 1 * @Default: 1 * * Related: None * * Supported Feature: STA * * Usage: External * * */ #define CFG_ENABLE_CONNECTED_SCAN CFG_INI_BOOL( \ "gEnableConnectedScan", \ true, \ "Enable/disable scan in connected state") /* * * gEnableSNRMonitoring - Enables SNR Monitoring * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to set default snr monitor * * Related: None * * Supported Feature: STA * * Usage: Internal/External * * */ #define CFG_ENABLE_SNR_MONITORING CFG_INI_BOOL(\ "gEnableSNRMonitoring",\ true,\ "Enable/Disable SNR Monitoring") /* * * scan_mode_6ghz - 6ghz Scan mode * @Min: 0 * @Max: 2 * @Default: 1 * * Configure the 6Ghz scan mode * 0 - Remove 6GHz channels in the scan request * 1 - Allow/Add 6Ghz PSC channels to scan request * 2 - Allow all the 6Ghz channels * 3 - Scan the channels (both PSC and non-PSC) found in RNR-IEs while scanning * 2g and 5g bands. Host fills all PSC and non-PSC channels in the scan * request and set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND for each channel. * 4 - Scan the complete PSC channel list for every duty cycle. For every * duty cycle scan, host fills all 6g channels and sets the flag * FLAG_SCAN_ONLY_IF_RNR_FOUND only for non-PSC channels. Rest of the scans * will be done only on RNR channels (PSC and non-PSC). * 5 - Scan the complete 6g(PSC and non-PSC) channel list for every duty cycle. * For every duty cycle scan, host fills all 6g channels and doesn't set the * flag FLAG_SCAN_ONLY_IF_RNR_FOUND for any 6g (PSC/non-PSC) channels. Rest * of the scans will be done only on RNR (PSC and non-PSC channels). * * Related: SCAN * * Usage: Internal/External * * */ #define CFG_6GHZ_SCAN_MODE CFG_INI_UINT( \ "scan_mode_6ghz", \ SCAN_MODE_6G_NO_CHANNEL, \ SCAN_MODE_6G_MAX, \ PLATFORM_VALUE(SCAN_MODE_6G_PSC_DUTY_CYCLE, \ SCAN_MODE_6G_ALL_CHANNEL), \ CFG_VALUE_OR_DEFAULT, \ "6ghz scan mode") /* * * scan_mode_6ghz_duty_cycle - 6ghz Scan mode duty cycle * @Min: 0 * @Max: 0xFFFF * @Default: 4 * * Configure the 6Ghz scan mode duty cycle * 0 - No full scan needed, all scans are optimized * 1 - No scan optimization, all full scans are considered as it is * 2 - Every alternate full scan req is considered as it is without optimization * 3 - Every third full scan req is considered as it is without optimization * 4 - Every fourth full scan req is considered as it is without optimization * * This INI is used to disable optimization on full scan requests after every * duty cycle and send it as it is to firmware. The optimization is to fill 6ghz * channels and scan for only RNR channels based on the ini scan_mode_6ghz. * * Related: scan_mode_6ghz * * Usage: External * * */ #define CFG_6GHZ_SCAN_MODE_DUTY_CYCLE CFG_INI_UINT( \ "scan_mode_6ghz_duty_cycle", \ 0, \ 0xFFFF, \ 4, \ CFG_VALUE_OR_DEFAULT, \ "6ghz scan mode duty cycle") /* * * scan_allow_bss_with_corrupted_ie - Continue scan even if corrupted IEs are * present. * @Min: 0 * @Max: 1 * @Default: 0 * * This ini is used to continue scan even if corrupted IEs are present. If this * ini is enable, the scan module skips the IEs following corrupted IEs(IE's * with invalid len) and adds the scan entry without completely dropping the * frame. * * Related: scan * * Usage: External * * */ #define CFG_SCAN_ALLOW_BSS_WITH_CORRUPTED_IE CFG_INI_BOOL( \ "scan_allow_bss_with_corrupted_ie", \ false, \ "scan allow bss with corrupted ie") /* * * skip_6g_and_indoor_freq_scan - Skip scan on 6Ghz and indoor channel * @Min: 0 * @Max: 1 * @Default: 0 * * This ini is used to skip 6Ghz and 5Gh indoor freq for STA scan if hw is * non-DBS and SAP is present * * Related: scan * * Usage: External * * */ #define CFG_SKIP_6GHZ_AND_INDOOR_FREQ_SCAN CFG_INI_BOOL( \ "skip_6g_and_indoor_freq_scan", \ false, \ "skip sta scan on 6Ghz and 5Ghz indoor channel") /* * * last_scan_ageout_time - To use cached scan results for provided time * duration. * @Min: 0 * @Max: 30000 ms * @Default: 0 * * This is used to use last cached scan results for provided time. * Instead of issuing new scan, cached scan results can be used to * select best SAP channel if channels are scanned with in the provided * value. * * Related: None. * * Supported Feature: ACS scan optimization * * Usage: Internal * * */ #define CFG_LAST_SCAN_AGEOUT_TIME CFG_INI_UINT( \ "last_scan_ageout_time", \ 0, \ 30000, \ 30000, \ CFG_VALUE_OR_DEFAULT, \ "last scan ageout time") #define CFG_SCAN_ALL \ CFG(CFG_DROP_BCN_ON_CHANNEL_MISMATCH) \ CFG(CFG_DROP_BCN_ON_INVALID_FREQ) \ CFG(CFG_ENABLE_WAKE_LOCK_IN_SCAN) \ CFG(CFG_ACTIVE_MAX_CHANNEL_TIME) \ CFG(CFG_ENABLE_DFS_SCAN) \ CFG(CFG_ENABLE_CONNECTED_SCAN) \ CFG(CFG_INITIAL_NO_DFS_SCAN) \ CFG(CFG_ACTIVE_MAX_2G_CHANNEL_TIME) \ CFG(CFG_PASSIVE_MAX_CHANNEL_TIME) \ CFG(CFG_MIN_6G_CHANNEL_TIME) \ CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME) \ CFG(CFG_PASSIVE_MAX_6G_CHANNEL_TIME) \ CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME_CONC) \ CFG(CFG_PASSIVE_MAX_6G_CHANNEL_TIME_CONC) \ CFG(CFG_SCAN_NUM_PROBES) \ CFG(CFG_SCAN_PROBE_REPEAT_TIME) \ CFG(CFG_ADAPTIVE_SCAN_DWELL_MODE) \ CFG(CFG_ADAPTIVE_SCAN_DWELL_MODE_NC) \ CFG(CFG_HONOUR_NL_SCAN_POLICY_FLAGS) \ CFG(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC) \ CFG(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC) \ CFG(CFG_MAX_REST_TIME_CONC) \ CFG(CFG_MIN_REST_TIME_CONC) \ CFG(CFG_IDLE_TIME_CONC) \ CFG(CFG_CHAN_LIST_TRIM_CONC) \ CFG(CFG_ENABLE_MAC_ADDR_SPOOFING) \ CFG(CFG_SCAN_AGING_TIME) \ CFG(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE) \ CFG(CFG_STA_SCAN_BURST_DURATION) \ CFG(CFG_P2P_SCAN_BURST_DURATION) \ CFG(CFG_GO_SCAN_BURST_DURATION) \ CFG(CFG_ENABLE_SNR_MONITORING) \ CFG(CFG_AP_SCAN_BURST_DURATION) \ CFG(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH) \ CFG(CFG_6GHZ_SCAN_MODE) \ CFG(CFG_6GHZ_SCAN_MODE_DUTY_CYCLE) \ CFG(CFG_SCAN_ALLOW_BSS_WITH_CORRUPTED_IE) \ CFG(CFG_SKIP_6GHZ_AND_INDOOR_FREQ_SCAN) \ CFG_SCAN_PNO \ CFG(CFG_LAST_SCAN_AGEOUT_TIME) #endif /* __CONFIG_SCAN_H */