xref: /wlan-dirver/qca-wifi-host-cmn/umac/scan/dispatcher/inc/cfg_scan.h (revision 2888b71da71bce103343119fa1b31f4a0cee07c8)
1 /*
2  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for
6  * any purpose with or without fee is hereby granted, provided that the
7  * above copyright notice and this permission notice appear in all
8  * copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17  * PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 /**
21  * DOC: This file contains centralized definitions of SCAN component
22  */
23 #ifndef __CONFIG_SCAN_H
24 #define __CONFIG_SCAN_H
25 
26 #include "cfg_define.h"
27 
28 /**
29  * enum scan_mode_6ghz - scan mode for 6GHz
30  * @SCAN_MODE_6G_NO_CHANNEL: Remove 6GHz channels in the scan request
31  * @SCAN_MODE_6G_PSC_CHANNEL: Scan only 6Ghz PSC channels and non-PSC
32  *                            through RNR IE
33  * @SCAN_MODE_6G_ALL_CHANNEL: Scan all the 6Ghz channels
34  * @SCAN_MODE_6G_RNR_ONLY: Scan the channels (both PSC and non-PSC) found in
35  *  RNR-IEs while scanning 2g and 5g bands. Host fills all PSC and non-PSC
36  *  channels in the scan request and set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND
37  *  for each channel.
38  * @SCAN_MODE_6G_PSC_DUTY_CYCLE: Scan the complete PSC channel list for every
39  *  duty cycle. For every duty cycle scan, host fills all 6g channels and sets
40  *  the flag FLAG_SCAN_ONLY_IF_RNR_FOUND only for non-PSC channels. Rest of the
41  *  scans will be done only on RNR channels (PSC and non-PSC).
42  * @SCAN_MODE_6G_ALL_DUTY_CYCLE: Scan the complete 6g(PSC and non-PSC) channel
43  *  list for every duty cycle. For every duty cycle scan, host fills all 6g
44  *  channels and doesn't set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND for any 6g
45  *  (PSC/non-PSC) channels. Rest of the scans will be done only on RNR (PSC and
46  *  non-PSC channels).
47  */
48 enum scan_mode_6ghz {
49 	SCAN_MODE_6G_NO_CHANNEL,
50 	SCAN_MODE_6G_PSC_CHANNEL,
51 	SCAN_MODE_6G_ALL_CHANNEL,
52 	SCAN_MODE_6G_RNR_ONLY,
53 	SCAN_MODE_6G_PSC_DUTY_CYCLE,
54 	SCAN_MODE_6G_ALL_DUTY_CYCLE,
55 	SCAN_MODE_6G_MAX = SCAN_MODE_6G_ALL_DUTY_CYCLE,
56 };
57 
58 /*
59  * <ini>
60  * drop_bcn_on_chan_mismatch - drop the beacon for chan mismatch
61  * @Min: 0
62  * @Max: 1
63  * @Default: 1
64  *
65  * This ini is used to decide drop the beacon or not if channel received
66  * in metadata doesn't match the one in beacon.
67  *
68  * Related: None
69  *
70  * Usage: External
71  *
72  * </ini>
73  */
74 #define CFG_DROP_BCN_ON_CHANNEL_MISMATCH CFG_INI_BOOL(\
75 		"drop_bcn_on_chan_mismatch",\
76 		true,\
77 		"drop bcn on channel mismatch")
78 
79 /*
80  * <ini>
81  * drop_bcn_on_invalid_freq - drop the beacon or probe resp with invalid freq
82  * @Min: 0
83  * @Max: 1
84  * @Default: 1
85  *
86  * This ini is used to decide whether to drop the beacon/probe resp or not
87  * if channel received in DS param, HT info and HE IE is invalid.
88  *
89  * Related: None
90  *
91  * Usage: External
92  *
93  * </ini>
94  */
95 #define CFG_DROP_BCN_ON_INVALID_FREQ CFG_INI_BOOL(\
96 		"drop_bcn_on_invalid_freq",\
97 		true,\
98 		"drop bcn on invalid freq in HT, DS, HE IE")
99 
100 /*
101  * <ini>
102  * gActiveMaxChannelTime - Set max channel time for active scan
103  * @Min: 0
104  * @Max: 10000
105  * @Default: 40
106  *
107  * This ini is used to set maximum channel time in msecs spent in
108  * active scan
109  *
110  * Related: None
111  *
112  * Usage: External
113  *
114  * </ini>
115  */
116 #define CFG_ACTIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\
117 		"gActiveMaxChannelTime",\
118 		0, 10000, PLATFORM_VALUE(40, 105),\
119 		CFG_VALUE_OR_DEFAULT, "active dwell time")
120 
121 /*
122  * <ini>
123  * gEnableDFSChnlScan - Enable/Disable scan on DFS channels
124  * @Min: 0
125  * @Max: 1
126  * @Default: 1
127  *
128  * This ini is used to enable/disable scan on DFS channels.
129  *
130  * Related: Scan
131  *
132  * Usage: External
133  *
134  * </ini>
135  */
136 #define CFG_ENABLE_DFS_SCAN CFG_INI_BOOL( \
137 				"gEnableDFSChnlScan", \
138 				true, \
139 				"enable dfs scan")
140 
141 /*
142  * <ini>
143  * gInitialScanNoDFSChnl - Exclude DFS channels in first scan
144  * @Min: 0
145  * @Max: 1
146  * @Default: 0
147  *
148  * This ini is used to enable/disable scan on DFS channels, in first scan only
149  *
150  * Related: Scan
151  *
152  * Usage: External
153  *
154  * </ini>
155  */
156 #define CFG_INITIAL_NO_DFS_SCAN CFG_INI_BOOL( \
157 				"gInitialScanNoDFSChnl", \
158 				false, \
159 				"disable initial dfs scan")
160 
161 /*
162  * <ini>
163  * active_max_channel_time_2g - Set max time for active 2G channel scan
164  * @Min: 0
165  * @Max: 10000
166  * @Default: 80
167  *
168  * This ini is used to set maximum time in msecs spent in active 2G channel scan
169  * if it's not zero, in case of zero, CFG_ACTIVE_MAX_CHANNEL_TIME is used for 2G
170  * channels also.
171  *
172  * Related: None
173  *
174  * Usage: External
175  *
176  * </ini>
177  */
178 #define CFG_ACTIVE_MAX_2G_CHANNEL_TIME CFG_INI_UINT(\
179 		"active_max_channel_time_2g",\
180 		0, 10000, PLATFORM_VALUE(80, 0),\
181 		CFG_VALUE_OR_DEFAULT, "active dwell time for 2G channels")
182 
183 /*
184  * <ini>
185  * min_channel_time_6g - Set min dwell time for 6G channels scan
186  * @Min: 5
187  * @Max: 60
188  * @Default: 25
189  *
190  * This ini is used to set minimum time in msecs spent in 6G channels scan.
191  * Firmware will park on the 6G channel for this duration and if no FILS
192  * discovery, Beacon, Probe resp is received it will move to new channel after
193  * this duration. If found , it will wait for "active_max_channel_time_6g"
194  * duration
195  *
196  * Related: active_max_channel_time_6g
197  *
198  * Supported Feature: Scan
199  *
200  * Usage: External
201  *
202  * </ini>
203  */
204 #define CFG_MIN_6G_CHANNEL_TIME CFG_INI_UINT(\
205 		"min_dwell_time_6g",\
206 		5, 60, 25,\
207 		CFG_VALUE_OR_DEFAULT, "min dwell time for 6G channels")
208 
209 /*
210  * <ini>
211  * active_max_channel_time_6g - Set max time for active 6G channel scan
212  * @Min: 0
213  * @Max: 10000
214  * @Default: 60
215  *
216  * This ini is used to set maximum time in msecs spent in active 6G channel scan
217  *
218  *
219  * Related: None
220  *
221  * Supported Feature: Scan
222  *
223  * Usage: External
224  *
225  * </ini>
226  */
227 #define CFG_ACTIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\
228 		"active_max_channel_time_6g",\
229 		0, 10000, 60,\
230 		CFG_VALUE_OR_DEFAULT, "max active dwell time for 6G channels")
231 
232 /*
233  * <ini>
234  * passive_max_channel_time_6g - Set max time for passive 6G channel scan
235  * @Min: 0
236  * @Max: 10000
237  * @Default: 60
238  *
239  * This ini is used to set maximum time in msecs spent in passive 6G chan scan
240  *
241  * Related: None
242  *
243  * Supported Feature: Scan
244  *
245  * Usage: External
246  *
247  * </ini>
248  */
249 #define CFG_PASSIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\
250 		"passive_max_channel_time_6g",\
251 		0, 10000, 60,\
252 		CFG_VALUE_OR_DEFAULT, "max passive dwell time for 6G channels")
253 
254 /*
255  * <ini>
256  * active_max_channel_time_6g_conc - Set max time for active 6G
257  * channel scan when associated to AP.
258  * @Min: 0
259  * @Max: 10000
260  * @Default: 40
261  *
262  * This ini is used to set maximum time in msecs spent in
263  * active 6G channel scan
264  *
265  * Related: None
266  *
267  * Supported Feature: Scan
268  *
269  * Usage: External
270  *
271  * </ini>
272  */
273 #define CFG_ACTIVE_MAX_6G_CHANNEL_TIME_CONC CFG_INI_UINT(\
274 		"active_max_channel_time_6g_conc",\
275 		0, 10000, 40,\
276 		CFG_VALUE_OR_DEFAULT, "active conc dwell time for 6G channels")
277 
278 /*
279  * <ini>
280  * passive_max_channel_time_6g_conc - Set max time for passive 6G
281  * channel scan when associated to AP.
282  * @Min: 0
283  * @Max: 10000
284  * @Default: 40
285  *
286  * This ini is used to set maximum time in msecs spent in
287  * passive 6G chan scan
288  *
289  * Related: None
290  *
291  * Supported Feature: Scan
292  *
293  * Usage: External
294  *
295  * </ini>
296  */
297 #define CFG_PASSIVE_MAX_6G_CHANNEL_TIME_CONC CFG_INI_UINT(\
298 		"passive_max_channel_time_6g_conc",\
299 		0, 10000, 40,\
300 		CFG_VALUE_OR_DEFAULT,\
301 		"passive conc dwell time for 6G channels")
302 
303 /*
304  * <ini>
305  * gPassiveMaxChannelTime - Set max channel time for passive scan
306  * @Min: 0
307  * @Max: 10000
308  * @Default: 110
309  *
310  * This ini is used to set maximum channel time in msecs spent in
311  * passive scan
312  *
313  * Related: None
314  *
315  * Usage: External
316  *
317  * </ini>
318  */
319 #define CFG_PASSIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\
320 		"gPassiveMaxChannelTime",\
321 		0, 10000, PLATFORM_VALUE(110, 300),\
322 		CFG_VALUE_OR_DEFAULT, "passive dwell time")
323 
324 /*
325  * <ini>
326  * gScanNumProbes - Set the number of probes on each channel for active scan
327  * @Min: 0
328  * @Max: 20
329  * @Default: 0
330  *
331  * This ini is used to set number of probes on each channel for
332  * active scan
333  */
334 #define CFG_SCAN_NUM_PROBES CFG_INI_UINT(\
335 			"gScanNumProbes",\
336 			0, 20, PLATFORM_VALUE(0, 2),\
337 			CFG_VALUE_OR_DEFAULT,\
338 			"number of probes on each channel")
339 
340 /*
341  * <ini>
342  * gScanProbeRepeatTime - Set the probe repeat time on each channel
343  * @Min: 0
344  * @Max: 30
345  * @Default: 0
346  *
347  * This ini is used to set probe repeat time on each channel for
348  * active scan
349  *
350  * Related: None
351  *
352  * Supported Feature: Scan
353  *
354  * Usage: External
355  *
356  * </ini>
357  */
358 #define CFG_SCAN_PROBE_REPEAT_TIME CFG_INI_UINT(\
359 			"gScanProbeRepeatTime",\
360 			0, 50, PLATFORM_VALUE(20, 50),\
361 			CFG_VALUE_OR_DEFAULT,\
362 			"probe repeat time on each channel")
363 
364 /*
365  * <ini>
366  * hostscan_adaptive_dwell_mode - Enable adaptive dwell mode
367  * during host scan with conneciton
368  * @Min: 0
369  * @Max: 4
370  * @Default: 1
371  *
372  * This ini will set the algo used in dwell time optimization
373  * during host scan with connection.
374  * See enum wmi_dwelltime_adaptive_mode.
375  * Acceptable values for this:
376  * 0: Default (Use firmware default mode)
377  * 1: Conservative optimization
378  * 2: Moderate optimization
379  * 3: Aggressive optimization
380  * 4: Static
381  *
382  * Related: None
383  *
384  * Supported Feature: Scan
385  *
386  * Usage: External
387  *
388  * </ini>
389  */
390 #define CFG_ADAPTIVE_SCAN_DWELL_MODE CFG_INI_UINT(\
391 			"hostscan_adaptive_dwell_mode",\
392 			0, 4, PLATFORM_VALUE(1, 0),\
393 			CFG_VALUE_OR_DEFAULT,\
394 			"Enable adaptive dwell mode")
395 
396 /*
397  * <ini>
398  * hostscan_adaptive_dwell_mode_no_conn - Enable adaptive dwell mode
399  * during host scan without conneciton
400  * @Min: 0
401  * @Max: 4
402  * @Default: 4
403  *
404  * This ini will set the algo used in dwell time optimization
405  * during host scan with connection.
406  * See enum wmi_dwelltime_adaptive_mode.
407  * Acceptable values for this:
408  * 0: Default (Use firmware default mode)
409  * 1: Conservative optimization
410  * 2: Moderate optimization
411  * 3: Aggressive optimization
412  * 4: Static
413  *
414  * Related: None
415  *
416  * Supported Feature: Scan
417  *
418  * Usage: External
419  *
420  * </ini>
421  */
422 #define CFG_ADAPTIVE_SCAN_DWELL_MODE_NC CFG_INI_UINT(\
423 			"hostscan_adaptive_dwell_mode_no_conn",\
424 			0, 4, PLATFORM_VALUE(4, 0),\
425 			CFG_VALUE_OR_DEFAULT,\
426 			"Enable adaptive dwell mode without connection")
427 
428 /*
429  * <ini>
430  * honour_nl_scan_policy_flags - This ini will decide whether to honour
431  * NL80211 scan policy flags
432  * @Min: 0
433  * @Max: 1
434  * @Default: 1
435  *
436  * This parameter will decide whether to honour scan flags such as
437  * NL80211_SCAN_FLAG_HIGH_ACCURACY , NL80211_SCAN_FLAG_LOW_SPAN,
438  * NL80211_SCAN_FLAG_LOW_POWER.
439  * Acceptable values for this:
440  * 0: Config is disabled
441  * 1: Config is enabled
442  *
443  * Related: None
444  *
445  * Supported Feature: Scan
446  *
447  * Usage: Internal
448  *
449  * </ini>
450  */
451 #define CFG_HONOUR_NL_SCAN_POLICY_FLAGS CFG_INI_BOOL(\
452 			"honour_nl_scan_policy_flags",\
453 			true, \
454 			"honour NL80211 scan policy flags")
455 
456 #ifdef FEATURE_WLAN_SCAN_PNO
457 /*
458  * <ini>
459  * g_user_config_sched_scan_plan - set user config sched scan plans.
460  * @Min: 0
461  * @Max:1
462  * @Default: 1
463  *
464  * This ini is used to decide if user config number of sched scan plan needs to
465  * be configured or only one sched scan plan needs to be configured.
466  * If this ini is enabled then  user config number of sched scan plans will be
467  * configured else only one sched scan plan will be configured.
468  *
469  * Supported Feature: PNO scan
470  *
471  * Usage: External
472  *
473  * </ini>
474  */
475 
476 #define CFG_USER_CONFIG_SCHED_SCAN_PLAN CFG_INI_BOOL(\
477 			"g_user_config_sched_scan_plan",\
478 			true, \
479 			"set user config sched scan plans")
480 
481 /*
482  * <ini>
483  * g_max_sched_scan_plan_iterations - pno sched max scan plan iterations.
484  * @Min: 1
485  * @Max: 100
486  * @Default: 10
487  *
488  * This ini is used to set max sched scan plan iterations for pno scan
489  * (value in seconds).
490  *
491  * Related: gPNOScanSupport
492  *
493  * Supported Feature: PNO scan
494  *
495  * Usage: External
496  *
497  * </ini>
498  */
499 #define CFG_MAX_SCHED_SCAN_PLAN_ITERATIONS CFG_INI_UINT( \
500 			"g_max_sched_scan_plan_iterations", \
501 			1, 100, 10, \
502 			CFG_VALUE_OR_DEFAULT, \
503 			"Max sched scan plan iterations")
504 
505 /*
506  * <ini>
507  * g_max_sched_scan_plan_int - pno sched max scan plan interval.
508  * @Min: 1
509  * @Max: 7200
510  * @Default: 3600
511  *
512  * This ini is used to set max sched scan plan interval for pno scan
513  * (value in seconds).
514  *
515  * Related: gPNOScanSupport
516  *
517  * Supported Feature: PNO scan
518  *
519  * Usage: External
520  *
521  * </ini>
522  */
523 #define CFG_MAX_SCHED_SCAN_PLAN_INTERVAL CFG_INI_UINT( \
524 			"g_max_sched_scan_plan_int", \
525 			1, 7200, 3600, \
526 			CFG_VALUE_OR_DEFAULT, \
527 			"Max sched scan plan interval")
528 
529 /*
530  * <ini>
531  * gEnableDFSPnoChnlScan - enable dfs channels in PNO scan
532  * @Min: 0
533  * @Max: 1
534  * @Default: 1
535  *
536  * This ini is used to enable/disable dfs channels in PNO scan request,
537  * enabling this ini enables driver to include dfs channels in its
538  * PNO scan request
539  * Related: NA
540  *
541  * Supported Feature: DFS, PNO
542  *
543  * Usage: Internal/External
544  *
545  * </ini>
546  */
547 #define CFG_ENABLE_DFS_PNO_CHNL_SCAN CFG_INI_BOOL( \
548 			"gEnableDFSPnoChnlScan", \
549 			true, \
550 			"Enable dfs channels in PNO Scan")
551 
552 /*
553  * <ini>
554  * gPNOScanSupport - Enable or Disable PNO scan
555  * @Min: 0
556  * @Max: 1
557  * @Default: 1
558  *
559  * This ini is used to Enable or Disable PNO scan
560  *
561  * Related: None
562  *
563  * Supported Feature: Scan
564  *
565  * Usage: External
566  *
567  * </ini>
568  */
569 #define CFG_PNO_SCAN_SUPPORT CFG_INI_BOOL( \
570 			"gPNOScanSupport", \
571 			true, \
572 			"Enable/Disable PNO scan")
573 
574 /*
575  * <ini>
576  * gPNOScanTimerRepeatValue - Set PNO scan timer repeat value
577  * @Min: 0
578  * @Max: 0xffffffff
579  * @Default: 30
580  *
581  * This ini is used by firmware to set fast scan max cycles
582  * equal to gPNOScanTimerRepeatValue. Taking power consumption
583  * into account firmware after gPNOScanTimerRepeatValue times
584  * fast_scan_period switches to slow_scan_period.
585  *
586  * Usage: External
587  *
588  * </ini>
589  */
590 #define CFG_PNO_SCAN_TIMER_REPEAT_VALUE CFG_INI_UINT( \
591 			"gPNOScanTimerRepeatValue", \
592 			0, \
593 			0xffffffff, \
594 			30, \
595 			CFG_VALUE_OR_DEFAULT, \
596 			"PNO scan timer repeat value")
597 
598 /*
599  * <ini>
600  * gPNOSlowScanMultiplier - Set PNO slow scan multiplier
601  * @Min: 0
602  * @Max: 30
603  * @Default: 6
604  *
605  * This ini is used by firmware to set slow scan period
606  * as gPNOSlowScanMultiplier times fast_scan_period.
607  *
608  * Related: None
609  *
610  * Supported Feature: Scan
611  *
612  * Usage: External
613  *
614  * </ini>
615  */
616 #define CFG_PNO_SLOW_SCAN_MULTIPLIER CFG_INI_UINT( \
617 			"gPNOSlowScanMultiplier", \
618 			0, \
619 			30, \
620 			6, \
621 			CFG_VALUE_OR_DEFAULT, \
622 			"PNO slow scan multiplier")
623 
624 /*
625  * <ini>
626  * gPNOChannelPrediction - Enable/disable the PNO channel
627  * prediction feature.
628  * @Min: 0
629  * @Max: 1
630  * @Default: 0
631  *
632  * In current PNO implementation, scan is always done until all configured
633  * channels are scanned. If we can determine DUT is stationary based on
634  * scanning a subset of channels, we may cancel the remaining channels.
635  * Hence, we can save additional power consumption.
636  *
637  * Related: None
638  *
639  * Supported Feature: Scan
640  *
641  * Usage: External
642  *
643  * </ini>
644  */
645 #define CFG_PNO_CHANNEL_PREDICTION CFG_INI_BOOL( \
646 			"gPNOChannelPrediction", \
647 			false, \
648 			"enable/disable PNO channel prediction feature")
649 
650 /*
651  * <ini>
652  * gTopKNumOfChannels - top K number of channels are used for tanimoto distance
653  * @Min: 1
654  * @Max: 5
655  * @Default: 3
656  *
657  * These are the top channels on which the probability of finding the AP's is
658  * extremely high. This number is intended for tweaking the internal algorithm
659  * for experiments. This should not be changed externally.
660  *
661  * Related: None
662  *
663  * Supported Feature: Scan
664  *
665  * Usage: External
666  *
667  * </ini>
668  */
669 #define CFG_TOP_K_NUM_OF_CHANNELS CFG_INI_UINT( \
670 			"gTopKNumOfChannels", \
671 			1, \
672 			5, \
673 			3, \
674 			CFG_VALUE_OR_DEFAULT, \
675 			"Top K number of channels")
676 /*
677  * <ini>
678  * gStationaryThreshold - STA threshold value to determine if it is stationary
679  * @Min: 0
680  * @Max: 100
681  * @Default: 10
682  *
683  * This is the threshold value to determine that the STA is
684  * stationary. If the tanimoto distance is less than this
685  * value, then the device is considered to be stationary.
686  * This parameter is intended to tweak the internal algorithm
687  * for experiments. This should not be changed externally.
688  *
689  *
690  * Related: None
691  *
692  * Supported Feature: Scan
693  *
694  * Usage: External
695  *
696  * </ini>
697  */
698 #define CFG_STATIONARY_THRESHOLD CFG_INI_UINT( \
699 			"gStationaryThreshold", \
700 			0, \
701 			100, \
702 			10, \
703 			CFG_VALUE_OR_DEFAULT, \
704 			"Threshold to determine if sta is stationary")
705 
706 /*
707  * <ini>
708  * gChPredictionFullScanMs - Set periodic timer for channel prediction
709  * @Min: 3000
710  * @Max: 0x7fffffff
711  * @Default: 60000
712  *
713  * This ini is used to set the periodic timer upon which
714  * a full scan needs to be triggered when PNO channel
715  * prediction feature is enabled. This parameter is intended
716  * to tweak the internal algortihm for experiments.
717  *
718  * Related: None
719  *
720  * Supported Feature: Scan
721  *
722  * Usage: Internal
723  *
724  * </ini>
725  */
726 #define CFG_CHANNEL_PREDICTION_SCAN_TIMER CFG_INI_UINT( \
727 			"gChPredictionFullScanMs", \
728 			3000, \
729 			0x7fffffff, \
730 			60000, \
731 			CFG_VALUE_OR_DEFAULT, \
732 			"Timer value for channel prediction")
733 
734 /*
735  * <ini>
736  * pnoscan_adaptive_dwell_mode - Enable adaptive dwell mode
737  * during pno scan
738  * @Min: 0
739  * @Max: 4
740  * @Default: 1
741  *
742  * This ini will set the algo used in dwell time optimization
743  * during pno scan. see enum scan_dwelltime_adaptive_mode.
744  * Acceptable values for this:
745  * 0: Default (Use firmware default mode)
746  * 1: Conservative optimization
747  * 2: Moderate optimization
748  * 3: Aggressive optimization
749  * 4: Static
750  *
751  * Related: None
752  *
753  * Supported Feature: Scan
754  *
755  * Usage: External
756  *
757  * </ini>
758  */
759 #define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE CFG_INI_UINT( \
760 			"pnoscan_adaptive_dwell_mode", \
761 			0, \
762 			4, \
763 			1, \
764 			CFG_VALUE_OR_DEFAULT, \
765 			"Algorithm used in dwell time optimization")
766 
767 /*
768  * <ini>
769  * gScanBackoffMultiplier - For NLO/PNO, multiply fast scan period by this every
770  *      max cycles
771  * @Min: 0
772  * @Max: 255
773  * @Default: 0
774  *
775  * For Network Listen Offload and Perfered Network Offload, multiply the fast
776  * scan period by this value after max cycles have occurred. Setting this to 0
777  * disables the feature.
778  *
779  * @E.g.
780  *      # Disable scan backoff multiplier
781  *      gScanBackoffMultiplier=0
782  *      # Effectively the same
783  *      gScanBackoffMultiplier=1
784  *      # Double the scan period after each max cycles have occurred
785  *      gScanBackoffMultiplier=2
786  *
787  * Related: NLO, PNO
788  *
789  * Usage: Internal/External
790  *
791  * </ini>
792  */
793 #define CFG_SCAN_BACKOFF_MULTIPLIER CFG_INI_UINT( \
794 			"gScanBackoffMultiplier", \
795 			0, \
796 			255, \
797 			0, \
798 			CFG_VALUE_OR_DEFAULT, \
799 			"Scan backoff multiplier")
800 
801 /*
802  * <ini>
803  * mawc_nlo_enabled - For NLO/PNO, enable MAWC based scan
804  * @Min: 0
805  * @Max: 1
806  * @Default: 0
807  *
808  * Enable/Disable the Motion Aided Wireless Connectivity
809  * based NLO using this parameter
810  *
811  * Related: NLO, PNO
812  *
813  * Usage: Internal/External
814  *
815  * </ini>
816  */
817 #define CFG_MAWC_NLO_ENABLED CFG_INI_BOOL( \
818 			"mawc_nlo_enabled", \
819 			0, \
820 			"Enable MAWC based scan")
821 
822 /*
823  * <ini>
824  * mawc_nlo_exp_backoff_ratio - Exponential back off ratio
825  * @Min: 0
826  * @Max: 300
827  * @Default: 3
828  *
829  * Configure the exponential back off ratio using this
830  * parameter for MAWC based NLO
831  * ratio of exponential backoff, next = current + current*ratio/100
832  *
833  * Related: NLO, PNO
834  *
835  * Usage: Internal/External
836  *
837  * </ini>
838  */
839 #define CFG_MAWC_NLO_EXP_BACKOFF_RATIO CFG_INI_UINT( \
840 			"mawc_nlo_exp_backoff_ratio", \
841 			0, \
842 			300, \
843 			3, \
844 			CFG_VALUE_OR_DEFAULT, \
845 			"MWAC based NLO exponential ratio")
846 
847 /*
848  * <ini>
849  * mawc_nlo_init_scan_interval - Initial Scan Interval
850  * @Min: 1000
851  * @Max: 0xFFFFFFFF
852  * @Default: 10000
853  *
854  * Configure the initial scan interval  using this
855  * parameter for MAWC based NLO (Units in Milliseconds)
856  *
857  * Related: NLO, PNO
858  *
859  * Usage: Internal/External
860  *
861  * </ini>
862  */
863 #define CFG_MAWC_NLO_INIT_SCAN_INTERVAL CFG_INI_UINT( \
864 			"mawc_nlo_init_scan_interval", \
865 			1000, \
866 			0xFFFFFFFF, \
867 			10000, \
868 			CFG_VALUE_OR_DEFAULT, \
869 			"Initial Scan Interval")
870 
871 /*
872  * <ini>
873  * mawc_nlo_max_scan_interval - Maximum Scan Interval
874  * @Min: 1000
875  * @Max: 0xFFFFFFFF
876  * @Default: 60000
877  *
878  * Configure the maximum scan interval  using this
879  * parameter for MAWC based NLO (Units in Milliseconds)
880  *
881  * Related: NLO, PNO
882  *
883  * Usage: Internal/External
884  *
885  * </ini>
886  */
887 #define CFG_MAWC_NLO_MAX_SCAN_INTERVAL CFG_INI_UINT( \
888 			"mawc_nlo_max_scan_interval", \
889 			1000, \
890 			0xFFFFFFFF, \
891 			60000, \
892 			CFG_VALUE_OR_DEFAULT, \
893 			"Maximum Scan Interval")
894 
895 #define CFG_SCAN_PNO \
896 	CFG(CFG_MAX_SCHED_SCAN_PLAN_ITERATIONS) \
897 	CFG(CFG_MAX_SCHED_SCAN_PLAN_INTERVAL) \
898 	CFG(CFG_PNO_SCAN_SUPPORT) \
899 	CFG(CFG_ENABLE_DFS_PNO_CHNL_SCAN) \
900 	CFG(CFG_PNO_SCAN_TIMER_REPEAT_VALUE) \
901 	CFG(CFG_PNO_SLOW_SCAN_MULTIPLIER) \
902 	CFG(CFG_PNO_CHANNEL_PREDICTION) \
903 	CFG(CFG_TOP_K_NUM_OF_CHANNELS) \
904 	CFG(CFG_STATIONARY_THRESHOLD) \
905 	CFG(CFG_CHANNEL_PREDICTION_SCAN_TIMER) \
906 	CFG(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE) \
907 	CFG(CFG_SCAN_BACKOFF_MULTIPLIER) \
908 	CFG(CFG_MAWC_NLO_ENABLED) \
909 	CFG(CFG_MAWC_NLO_EXP_BACKOFF_RATIO) \
910 	CFG(CFG_MAWC_NLO_INIT_SCAN_INTERVAL) \
911 	CFG(CFG_MAWC_NLO_MAX_SCAN_INTERVAL) \
912 	CFG(CFG_USER_CONFIG_SCHED_SCAN_PLAN)
913 
914 #else
915 #define CFG_SCAN_PNO
916 #endif  /* FEATURE_WLAN_SCAN_PNO */
917 
918 /*
919  * <ini>
920  * gActiveMaxChannelTimeConc - Maximum active scan time in milliseconds.
921  * @Min: 0
922  * @Max: 10000
923  * @Default: 40
924  *
925  * This ini is used to set maximum active scan time in STA+SAP concurrent
926  * mode.
927  *
928  * Related: None.
929  *
930  * Supported Feature: Concurrency
931  *
932  * Usage: Internal/External
933  *
934  * </ini>
935  */
936 #define CFG_ACTIVE_MAX_CHANNEL_TIME_CONC CFG_INI_UINT(\
937 				"gActiveMaxChannelTimeConc",\
938 				0, 10000, PLATFORM_VALUE(40, 0),\
939 				CFG_VALUE_OR_DEFAULT, \
940 				"active scan time in STA+SAP concurrent")
941 
942 /*
943  * <ini>
944  * gPassiveMaxChannelTimeConc - Maximum passive scan time in milliseconds.
945  * @Min: 0
946  * @Max: 10000
947  * @Default: 110
948  *
949  * This ini is used to set maximum passive scan time in STA+SAP concurrent
950  * mode.
951  *
952  * Related: None.
953  *
954  * Supported Feature: Concurrency
955  *
956  * Usage: Internal/External
957  *
958  * </ini>
959  */
960 #define CFG_PASSIVE_MAX_CHANNEL_TIME_CONC CFG_INI_UINT(\
961 				"gPassiveMaxChannelTimeConc",\
962 				0, 10000, PLATFORM_VALUE(110, 0),\
963 				CFG_VALUE_OR_DEFAULT, \
964 				"Set priority for connection with bssid_hint")
965 
966 /*
967  * <ini>
968  * gRestTimeConc - Rest time before moving to a new channel to scan.
969  * @Min: 0
970  * @Max: 10000
971  * @Default: 100
972  *
973  * This ini is used to configure rest time.
974  *
975  * Related: None.
976  *
977  * Supported Feature: Concurrency
978  *
979  * Usage: Internal/External
980  *
981  * </ini>
982  */
983 #define CFG_MAX_REST_TIME_CONC CFG_INI_UINT(\
984 				"nRestTimeConc",\
985 				0, 10000, PLATFORM_VALUE(100, 0),\
986 				CFG_VALUE_OR_DEFAULT, \
987 				"Rest time before moving to a new channel")
988 
989 /*
990  * <ini>
991  * min_rest_time_conc - Mininum time spent on home channel before moving to a
992  * new channel to scan.
993  * @Min: 0
994  * @Max: 50
995  * @Default: 50
996  *
997  * This ini is used to configure minimum time spent on home channel before
998  * moving to a new channel to scan.
999  *
1000  * Related: None.
1001  *
1002  * Supported Feature: Concurrency
1003  *
1004  * Usage: Internal/External
1005  *
1006  * </ini>
1007  */
1008 #define CFG_MIN_REST_TIME_CONC CFG_INI_UINT(\
1009 				"min_rest_time_conc",\
1010 				0, 50, PLATFORM_VALUE(50, 0),\
1011 				CFG_VALUE_OR_DEFAULT, \
1012 				"minimum time spent on home channel")
1013 
1014 /*
1015  * <ini>
1016  * wake_lock_in_user_scan - use to acquire wake lock during user scan
1017  * @Min: 0
1018  * @Max: 1
1019  * @Default: 0
1020  *
1021  * This INI is added for a specific OEM on their request, who don’t want to
1022  * use PNO offload scan (sched scans). This is useful only if PNO scan offload
1023  * is disabled. If PNO scan is enabled this INI should be disabled and its
1024  * by default disabled intentionally.
1025  * This is used to acquire wake lock to handle the case where PNO scan offload
1026  * is disabled so that wlan is not suspended during scan before connect and
1027  * thus scan is not aborted in between. In case PNO scan is offloaded, the FW
1028  * will take care of connect scans and will wake up host when candidate is found
1029  *
1030  * Related: Scan
1031  *
1032  * Usage: Internal/External
1033  *
1034  * </ini>
1035  */
1036 #define CFG_ENABLE_WAKE_LOCK_IN_SCAN CFG_INI_BOOL( \
1037 				"wake_lock_in_user_scan", \
1038 				false, \
1039 				"use wake lock during scan")
1040 
1041 /*
1042  * <ini>
1043  * gIdleTimeConc - Data inactivity time in msec.
1044  * @Min: 0
1045  * @Max: 25
1046  * @Default: 25
1047  *
1048  * This ini is used to configure data inactivity time in msec on bss channel
1049  * that will be used by scan engine in firmware.
1050  * For example if this value is 25ms then firmware will check for data
1051  * inactivity every 25ms till gRestTimeConc is reached.
1052  * If inactive then scan engine will move from home channel to scan the next
1053  * frequency.
1054  *
1055  * Related: None.
1056  *
1057  * Supported Feature: Concurrency
1058  *
1059  * Usage: Internal/External
1060  *
1061  * </ini>
1062  */
1063 #define CFG_IDLE_TIME_CONC CFG_INI_UINT(\
1064 				"gIdleTimeConc",\
1065 				0, 25, PLATFORM_VALUE(25, 0),\
1066 				CFG_VALUE_OR_DEFAULT, \
1067 				"data inactivity time on bss channel")
1068 
1069 /*
1070  * <ini>
1071  * gChlistTrimConc - Enable scan list modification on concurrent mode.
1072  * @Min: 0
1073  * @Max: 1
1074  * @Default: 0
1075  *
1076  * This ini is used to enable/disable scan list modification
1077  * on concurrent mode.
1078  *
1079  * Related: None.
1080  *
1081  * Supported Feature: Concurrency, Scan
1082  *
1083  * Usage: Internal/External
1084  *
1085  * </ini>
1086  */
1087 #define CFG_CHAN_LIST_TRIM_CONC CFG_INI_BOOL(\
1088 				"ch_list_trim_conc",\
1089 				false, \
1090 				"Enable scan list trim")
1091 
1092 /*
1093  * <ini>
1094  * gEnableMacAddrSpoof - Enable mac address randomization feature.
1095  * @Min: 0
1096  * @Max: 1
1097  * @Default: 1
1098  *
1099  * This ini is used to enable/disable mac address randomization for scan.
1100  *
1101  * Supported Feature: SCAN
1102  *
1103  *
1104  * Usage: Internal/External
1105  *
1106  * </ini>
1107  */
1108 #define CFG_ENABLE_MAC_ADDR_SPOOFING CFG_INI_BOOL( \
1109 		"gEnableMacAddrSpoof", \
1110 		true, \
1111 		"Enable mac spoofing")
1112 
1113 /*
1114  * <ini>
1115  * gScanAgingTime - Set scan aging time
1116  * @Min: 0
1117  * @Max: 200
1118  * @Default: 30
1119  *
1120  * This ini is used to set scan aging timeout value
1121  * in secs. For example after 30 secs the bss results
1122  * greater than 30secs age will be flushed.
1123  *
1124  * Related: None
1125  *
1126  * Supported Feature: Scan
1127  *
1128  * Usage: External
1129  *
1130  * </ini>
1131  */
1132 #ifdef CONFIG_WIFI_EMULATION_WIFI_3_0
1133 #define CFG_SCAN_AGING_TIME_DEFAULT (90)
1134 #else
1135 #define CFG_SCAN_AGING_TIME_DEFAULT (30)
1136 #endif
1137 
1138 #define CFG_SCAN_AGING_TIME CFG_INI_UINT( \
1139 			"gScanAgingTime", \
1140 			0, \
1141 			200, \
1142 			CFG_SCAN_AGING_TIME_DEFAULT, \
1143 			CFG_VALUE_OR_DEFAULT, \
1144 			"scan aging time")
1145 /*
1146  * <ini>
1147  * extscan_adaptive_dwell_mode  Enable adaptive dwell mode
1148  * during ext scan
1149  * @Min: 0
1150  * @Max: 4
1151  * @Default: 1
1152  *
1153  * This ini will set the algo used in dwell time optimization
1154  * during ext scan. see enum scan_dwelltime_adaptive_mode.
1155  * Acceptable values for this:
1156  * 0: Default (Use firmware default mode)
1157  * 1: Conservative optimization
1158  * 2: Moderate optimization
1159  * 3: Aggressive optimization
1160  * 4: Static
1161  *
1162  * Related: None
1163  *
1164  * Supported Feature: Scan
1165  *
1166  * Usage: External
1167  *
1168  * </ini>
1169  */
1170 #define CFG_ADAPTIVE_EXTSCAN_DWELL_MODE CFG_INI_UINT( \
1171 			"extscan_adaptive_dwell_mode", \
1172 			0, \
1173 			4, \
1174 			1, \
1175 			CFG_VALUE_OR_DEFAULT, \
1176 			"ext scan adaptive dwell mode")
1177 
1178 /*
1179  * <ini>
1180  * sta_scan_burst_duration - Burst duration in case of split scan.
1181  * @Min: 0
1182  * @Max: 180
1183  * @Default: 0
1184  *
1185  * This ini is used to set burst duration of sta scan requests.
1186  *
1187  * Related: None.
1188  *
1189  * Supported Feature: Concurrency
1190  *
1191  * Usage: External
1192  *
1193  * </ini>
1194  */
1195 #define CFG_STA_SCAN_BURST_DURATION CFG_INI_UINT( \
1196 			"sta_scan_burst_duration", \
1197 			0, \
1198 			180, \
1199 			0, \
1200 			CFG_VALUE_OR_DEFAULT, \
1201 			"sta scan burst duration")
1202 
1203 /*
1204  * <ini>
1205  * p2p_scan_burst_duration - Burst duration in case of split scan for p2p scan.
1206  * @Min: 0
1207  * @Max: 180
1208  * @Default: 0
1209  *
1210  * This ini is used to set burst duration of scan for p2p scan requests.
1211  *
1212  * Related: None.
1213  *
1214  * Supported Feature: Concurrency
1215  *
1216  * Usage: External
1217  *
1218  * </ini>
1219  */
1220 
1221 #define CFG_P2P_SCAN_BURST_DURATION CFG_INI_UINT( \
1222 			"p2p_scan_burst_duration", \
1223 			0, \
1224 			180, \
1225 			0, \
1226 			CFG_VALUE_OR_DEFAULT, \
1227 			"p2p scan burst duration")
1228 /*
1229  * <ini>
1230  * go_scan_burst_duration - Burst duration in case of split scan when GO is
1231  * active.
1232  * @Min: 0
1233  * @Max: 180
1234  * @Default: 0
1235  *
1236  * This ini is used to set burst duration of scan when GO is active.
1237  *
1238  * Related: None.
1239  *
1240  * Supported Feature: Concurrency
1241  *
1242  * Usage: External
1243  *
1244  * </ini>
1245  */
1246 #define CFG_GO_SCAN_BURST_DURATION CFG_INI_UINT( \
1247 			"go_scan_burst_duration", \
1248 			0, \
1249 			180, \
1250 			0, \
1251 			CFG_VALUE_OR_DEFAULT, \
1252 			"go scan burst duration")
1253 
1254 /*
1255  * <ini>
1256  * ap_scan_burst_duration - Burst duration in case of split scan when ap
1257  * is active.
1258  * @Min: 0
1259  * @Max: 32
1260  * @Default: 0
1261  *
1262  * This ini is used to set burst duration of scan when SAP is active.
1263  *
1264  * Related: None.
1265  *
1266  * Supported Feature: Concurrency
1267  *
1268  * Usage: External
1269  *
1270  * </ini>
1271  */
1272 #define CFG_AP_SCAN_BURST_DURATION CFG_INI_UINT( \
1273 			"ap_scan_burst_duration", \
1274 			0, \
1275 			32, \
1276 			0, \
1277 			CFG_VALUE_OR_DEFAULT, \
1278 			"ap scan burst duration")
1279 
1280 /*
1281  * <ini>
1282  * gSkipDfsChannelInP2pSearch - Skip DFS Channel in case of P2P Search
1283  * @Min: 0
1284  * @Max: 1
1285  * @Default: 1
1286  *
1287  * This ini is used to disable(skip) dfs channel in p2p search.
1288  * Related: None.
1289  *
1290  * Supported Feature: DFS P2P
1291  *
1292  * Usage: External
1293  *
1294  * <ini>
1295  */
1296 #define CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH CFG_INI_BOOL( \
1297 	"gSkipDfsChannelInP2pSearch", \
1298 	1, \
1299 	"skip dfs channel in p2p search")
1300 
1301 /*
1302  * <ini>
1303  * gEnableConnectedScan - Will enable or disable scan in connected state
1304  * This ini is used to enable or disable the scanning in
1305  * Connected state
1306  * @Min: 0
1307  * @Max: 1
1308  * @Default: 1
1309  *
1310  * Related: None
1311  *
1312  * Supported Feature: STA
1313  *
1314  * Usage: External
1315  *
1316  * <ini>
1317  */
1318 #define CFG_ENABLE_CONNECTED_SCAN CFG_INI_BOOL( \
1319 				"gEnableConnectedScan", \
1320 				true, \
1321 				"Enable/disable scan in connected state")
1322 
1323 /*
1324  * <ini>
1325  * gEnableSNRMonitoring - Enables SNR Monitoring
1326  * @Min: 0
1327  * @Max: 1
1328  * @Default: 1
1329  *
1330  * This ini is used to set default snr monitor
1331  *
1332  * Related: None
1333  *
1334  * Supported Feature: STA
1335  *
1336  * Usage: Internal/External
1337  *
1338  * </ini>
1339  */
1340 #define CFG_ENABLE_SNR_MONITORING CFG_INI_BOOL(\
1341 			"gEnableSNRMonitoring",\
1342 			true,\
1343 			"Enable/Disable SNR Monitoring")
1344 
1345 /*
1346  * <ini>
1347  * scan_mode_6ghz - 6ghz Scan mode
1348  * @Min: 0
1349  * @Max: 2
1350  * @Default: 1
1351  *
1352  * Configure the 6Ghz scan mode
1353  * 0 - Remove 6GHz channels in the scan request
1354  * 1 - Allow/Add 6Ghz PSC channels to scan request
1355  * 2 - Allow all the 6Ghz channels
1356  * 3 - Scan the channels (both PSC and non-PSC) found in RNR-IEs while scanning
1357  *     2g and 5g bands. Host fills all PSC and non-PSC channels in the scan
1358  *     request and set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND for each channel.
1359  * 4 - Scan the complete PSC channel list for every duty cycle. For every
1360  *     duty cycle scan, host fills all 6g channels and sets the flag
1361  *     FLAG_SCAN_ONLY_IF_RNR_FOUND only for non-PSC channels. Rest of the scans
1362  *     will be done only on RNR channels (PSC and non-PSC).
1363  * 5 - Scan the complete 6g(PSC and non-PSC) channel list for every duty cycle.
1364  *     For every duty cycle scan, host fills all 6g channels and doesn't set the
1365  *     flag FLAG_SCAN_ONLY_IF_RNR_FOUND for any 6g (PSC/non-PSC) channels. Rest
1366  *     of the scans will be done only on RNR (PSC and non-PSC channels).
1367  *
1368  * Related: SCAN
1369  *
1370  * Usage: Internal/External
1371  *
1372  * </ini>
1373  */
1374 #define CFG_6GHZ_SCAN_MODE CFG_INI_UINT( \
1375 			"scan_mode_6ghz", \
1376 			SCAN_MODE_6G_NO_CHANNEL, \
1377 			SCAN_MODE_6G_MAX, \
1378 			PLATFORM_VALUE(SCAN_MODE_6G_PSC_DUTY_CYCLE, \
1379 				SCAN_MODE_6G_ALL_CHANNEL), \
1380 			CFG_VALUE_OR_DEFAULT, \
1381 			"6ghz scan mode")
1382 
1383 /*
1384  * <ini>
1385  * scan_mode_6ghz_duty_cycle - 6ghz Scan mode duty cycle
1386  * @Min: 0
1387  * @Max: 0xFFFF
1388  * @Default: 4
1389  *
1390  * Configure the 6Ghz scan mode duty cycle
1391  * 0 - No full scan needed, all scans are optimized
1392  * 1 - No scan optimization, all full scans are considered as it is
1393  * 2 - Every alternate full scan req is considered as it is without optimization
1394  * 3 - Every third full scan req is considered as it is without optimization
1395  * 4 - Every fourth full scan req is considered as it is without optimization
1396  *
1397  * This INI is used to disable optimization on full scan requests after every
1398  * duty cycle and send it as it is to firmware. The optimization is to fill 6ghz
1399  * channels and scan for only RNR channels based on the ini scan_mode_6ghz.
1400  *
1401  * Related: scan_mode_6ghz
1402  *
1403  * Usage: External
1404  *
1405  * </ini>
1406  */
1407 #define CFG_6GHZ_SCAN_MODE_DUTY_CYCLE CFG_INI_UINT( \
1408 			"scan_mode_6ghz_duty_cycle", \
1409 			0, \
1410 			0xFFFF, \
1411 			4, \
1412 			CFG_VALUE_OR_DEFAULT, \
1413 			"6ghz scan mode duty cycle")
1414 
1415 /*
1416  * <ini>
1417  * scan_allow_bss_with_corrupted_ie - Continue scan even if corrupted IEs are
1418  * present.
1419  * @Min: 0
1420  * @Max: 1
1421  * @Default: 0
1422  *
1423  * This ini is used to continue scan even if corrupted IEs are present. If this
1424  * ini is enable, the scan module skips the IEs following corrupted IEs(IE's
1425  * with invalid len) and adds the scan entry without completely dropping the
1426  * frame.
1427  *
1428  * Related: scan
1429  *
1430  * Usage: External
1431  *
1432  * <ini>
1433  */
1434 #define CFG_SCAN_ALLOW_BSS_WITH_CORRUPTED_IE CFG_INI_BOOL( \
1435 			"scan_allow_bss_with_corrupted_ie", \
1436 			false, \
1437 			"scan allow bss with corrupted ie")
1438 
1439 /*
1440  * <ini>
1441  * skip_6g_and_indoor_freq_scan - Skip scan on 6Ghz and indoor channel
1442  * @Min: 0
1443  * @Max: 1
1444  * @Default: 0
1445  *
1446  * This ini is used to skip 6Ghz and 5Gh indoor freq for STA scan if hw is
1447  * non-DBS and SAP is present
1448  *
1449  * Related: scan
1450  *
1451  * Usage: External
1452  *
1453  * <ini>
1454  */
1455 #define CFG_SKIP_6GHZ_AND_INDOOR_FREQ_SCAN CFG_INI_BOOL( \
1456 			"skip_6g_and_indoor_freq_scan", \
1457 			false, \
1458 			"skip sta scan on 6Ghz and 5Ghz indoor channel")
1459 #define CFG_SCAN_ALL \
1460 	CFG(CFG_DROP_BCN_ON_CHANNEL_MISMATCH) \
1461 	CFG(CFG_DROP_BCN_ON_INVALID_FREQ) \
1462 	CFG(CFG_ENABLE_WAKE_LOCK_IN_SCAN) \
1463 	CFG(CFG_ACTIVE_MAX_CHANNEL_TIME) \
1464 	CFG(CFG_ENABLE_DFS_SCAN) \
1465 	CFG(CFG_ENABLE_CONNECTED_SCAN) \
1466 	CFG(CFG_INITIAL_NO_DFS_SCAN) \
1467 	CFG(CFG_ACTIVE_MAX_2G_CHANNEL_TIME) \
1468 	CFG(CFG_PASSIVE_MAX_CHANNEL_TIME) \
1469 	CFG(CFG_MIN_6G_CHANNEL_TIME) \
1470 	CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME) \
1471 	CFG(CFG_PASSIVE_MAX_6G_CHANNEL_TIME) \
1472 	CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME_CONC) \
1473 	CFG(CFG_PASSIVE_MAX_6G_CHANNEL_TIME_CONC) \
1474 	CFG(CFG_SCAN_NUM_PROBES) \
1475 	CFG(CFG_SCAN_PROBE_REPEAT_TIME) \
1476 	CFG(CFG_ADAPTIVE_SCAN_DWELL_MODE) \
1477 	CFG(CFG_ADAPTIVE_SCAN_DWELL_MODE_NC) \
1478 	CFG(CFG_HONOUR_NL_SCAN_POLICY_FLAGS) \
1479 	CFG(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC) \
1480 	CFG(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC) \
1481 	CFG(CFG_MAX_REST_TIME_CONC) \
1482 	CFG(CFG_MIN_REST_TIME_CONC) \
1483 	CFG(CFG_IDLE_TIME_CONC) \
1484 	CFG(CFG_CHAN_LIST_TRIM_CONC) \
1485 	CFG(CFG_ENABLE_MAC_ADDR_SPOOFING) \
1486 	CFG(CFG_SCAN_AGING_TIME) \
1487 	CFG(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE) \
1488 	CFG(CFG_STA_SCAN_BURST_DURATION) \
1489 	CFG(CFG_P2P_SCAN_BURST_DURATION) \
1490 	CFG(CFG_GO_SCAN_BURST_DURATION) \
1491 	CFG(CFG_ENABLE_SNR_MONITORING) \
1492 	CFG(CFG_AP_SCAN_BURST_DURATION) \
1493 	CFG(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH) \
1494 	CFG(CFG_6GHZ_SCAN_MODE) \
1495 	CFG(CFG_6GHZ_SCAN_MODE_DUTY_CYCLE) \
1496 	CFG(CFG_SCAN_ALLOW_BSS_WITH_CORRUPTED_IE) \
1497 	CFG(CFG_SKIP_6GHZ_AND_INDOOR_FREQ_SCAN) \
1498 	CFG_SCAN_PNO
1499 
1500 #endif /* __CONFIG_SCAN_H */
1501