xref: /wlan-driver/qcacld-3.0/components/mlme/dispatcher/inc/cfg_mlme_lfr.h (revision 5113495b16420b49004c444715d2daae2066e7dc) !
1 /*
2  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2021-2024 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 configuration definitions for MLME LFR.
22  */
23 
24 #ifndef CFG_MLME_LFR_H__
25 #define CFG_MLME_LFR_H__
26 
27 #ifdef CONNECTION_ROAMING_CFG
28 # define RoamScan_ActiveCH_DwellTime_min 0
29 # define RoamScan_ActiveCH_DwellTime_max 200
30 # define RoamScan_ActiveCH_DwellTime_default 40
31 # define RoamScan_InactiveCount_min 0
32 # define RoamScan_InactiveCount_max 20
33 # define RoamScan_InactiveCount_default 5
34 # define RoamScan_StepRSSI_min 0
35 # define RoamScan_StepRSSI_max 20
36 # define RoamScan_StepRSSI_default 5
37 # define RoamScan_HomeTime_min 0
38 # define RoamScan_HomeTime_max 200
39 # define RoamScan_HomeTime_default 45
40 # define RoamScan_AwayTime_min 0
41 # define RoamScan_AwayTime_max 200
42 # define RoamScan_AwayTime_default 100
43 # define RoamRSSI_Trigger_min -100
44 # define RoamRSSI_Trigger_max -50
45 # define RoamRSSI_Trigger_default -75
46 # define RoamCU_Trigger_min 60
47 # define RoamCU_Trigger_max 90
48 # define RoamCU_Trigger_default 70
49 # define RoamCU_24GRSSIRange_min -70
50 # define RoamCU_24GRSSIRange_max -50
51 # define RoamCU_24GRSSIRange_default -60
52 # define RoamCU_5GRSSIRange_min -70
53 # define RoamCU_5GRSSIRange_max -50
54 # define RoamCU_5GRSSIRange_default -70
55 # define RoamIdle_TriggerBand_min 0
56 # define RoamIdle_TriggerBand_max 4
57 # define RoamIdle_TriggerBand_default 3
58 # define RoamIdle_MinRSSI_min -70
59 # define RoamIdle_MinRSSI_max -50
60 # define RoamIdle_MinRSSI_default -65
61 # define RoamIdle_RSSIVariation_min 0
62 # define RoamIdle_RSSIVariation_max 10
63 # define RoamIdle_RSSIVariation_default 8
64 # define RoamIdle_InactivePacketCount_min 0
65 # define RoamIdle_InactivePacketCount_max 20
66 # define RoamIdle_InactivePacketCount_default 5
67 # define CONBEACONLOSS_TIMEOUTONWAKEUP_MIN 0
68 # define CONBEACONLOSS_TIMEOUTONWAKEUP_MAX 20
69 # define CONBEACONLOSS_TIMEOUTONWAKEUP_DEFAULT 6
70 # define CONBEACONLOSS_TIMEOUTONSLEEP_MIN 0
71 # define CONBEACONLOSS_TIMEOUTONSLEEP_MAX 20
72 # define CONBEACONLOSS_TIMEOUTONSLEEP_DEFAULT 10
73 # define ROAMCU_6GRSSIRANGE_MIN -70
74 # define ROAMCU_6GRSSIRANGE_MAX -50
75 # define ROAMCU_6GRSSIRANGE_DEFAULT -70
76 # define RoamIdle_InactiveTime_default 5
77 #else
78 # define RoamScan_ActiveCH_DwellTime_min 3
79 # define RoamScan_ActiveCH_DwellTime_max 300
80 # define RoamScan_ActiveCH_DwellTime_default 40
81 # define RoamScan_InactiveCount_min 0
82 # define RoamScan_InactiveCount_max 0xFFFFFFFF
83 # define RoamScan_InactiveCount_default 10
84 # define RoamScan_StepRSSI_min 0
85 # define RoamScan_StepRSSI_max 100
86 # define RoamScan_StepRSSI_default 5
87 # define RoamScan_HomeTime_min 3
88 # define RoamScan_HomeTime_max 300
89 # define RoamScan_HomeTime_default 50
90 # define RoamScan_AwayTime_min 0
91 # define RoamScan_AwayTime_max 300
92 # define RoamScan_AwayTime_default 0
93 # define RoamRSSI_Trigger_min -100
94 # define RoamRSSI_Trigger_max -50
95 # define RoamRSSI_Trigger_default -76
96 # define RoamCU_Trigger_min 0
97 # define RoamCU_Trigger_max 100
98 # define RoamCU_Trigger_default 70
99 # define RoamCU_24GRSSIRange_min -120
100 # define RoamCU_24GRSSIRange_max 0
101 # define RoamCU_24GRSSIRange_default -60
102 # define RoamCU_5GRSSIRange_min -120
103 # define RoamCU_5GRSSIRange_max 0
104 # define RoamCU_5GRSSIRange_default -70
105 # define RoamIdle_TriggerBand_min 0
106 # define RoamIdle_TriggerBand_max 2
107 # define RoamIdle_TriggerBand_default 0
108 # define RoamIdle_MinRSSI_min -96
109 # define RoamIdle_MinRSSI_max 0
110 # define RoamIdle_MinRSSI_default -65
111 # define RoamIdle_RSSIVariation_min 0
112 # define RoamIdle_RSSIVariation_max 50
113 # define RoamIdle_RSSIVariation_default 3
114 # define RoamIdle_InactivePacketCount_min 0
115 # define RoamIdle_InactivePacketCount_max 0xFFFFFFFF
116 # define RoamIdle_InactivePacketCount_default 10
117 # define CONBEACONLOSS_TIMEOUTONWAKEUP_MIN 0
118 # define CONBEACONLOSS_TIMEOUTONWAKEUP_MAX 20
119 # define CONBEACONLOSS_TIMEOUTONWAKEUP_DEFAULT 3
120 # define CONBEACONLOSS_TIMEOUTONSLEEP_MIN 0
121 # define CONBEACONLOSS_TIMEOUTONSLEEP_MAX 20
122 # define CONBEACONLOSS_TIMEOUTONSLEEP_DEFAULT 5
123 # define ROAMCU_6GRSSIRANGE_MIN -120
124 # define ROAMCU_6GRSSIRANGE_MAX 0
125 # define ROAMCU_6GRSSIRANGE_DEFAULT -70
126 # define RoamIdle_InactiveTime_default 10
127 #endif
128 
129 /*
130  * <ini>
131  * RoamScan_PassiveCH_DwellTime - Set max channel time for roam passive scan
132  * @Min: 0
133  * @Max: 200
134  * @Default: 130
135  *
136  * This ini is used to set maximum channel time in msecs spent in
137  * passive scan for roaming
138  *
139  * Related: None
140  *
141  * Usage: External
142  *
143  * </ini>
144  */
145 #define CFG_ROAM_PASSIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\
146 		"RoamScan_PassiveCH_DwellTime",\
147 		0, \
148 		200, \
149 		130, \
150 		CFG_VALUE_OR_DEFAULT, "roam scan passive dwell time")
151 
152 /*
153  * <ini>
154  * mawc_roam_enabled - Enable/Disable MAWC during roaming
155  * @Min: 0 - Disabled
156  * @Max: 1 - Enabled
157  * @Default: 0
158  *
159  * This ini is used to control MAWC during roaming.
160  *
161  * Related: MAWCEnabled.
162  *
163  * Supported Feature: MAWC Roaming
164  *
165  * Usage: Internal/External
166  *
167  * </ini>
168  */
169 #define CFG_LFR_MAWC_ROAM_ENABLED CFG_INI_BOOL( \
170 	"mawc_roam_enabled", \
171 	0, \
172 	"Enable/Disable MAWC during roaming")
173 
174 /*
175  * <ini>
176  * mawc_roam_traffic_threshold - Configure traffic threshold
177  * @Min: 0
178  * @Max: 0xFFFFFFFF
179  * @Default: 300
180  *
181  * This ini is used to configure the data traffic load in kbps to
182  * register CMC.
183  *
184  * Related: mawc_roam_enabled.
185  *
186  * Supported Feature: MAWC Roaming
187  *
188  * Usage: Internal/External
189  *
190  * </ini>
191  */
192 #define CFG_LFR_MAWC_ROAM_TRAFFIC_THRESHOLD CFG_INI_UINT( \
193 	"mawc_roam_traffic_threshold", \
194 	0, \
195 	0xFFFFFFFF, \
196 	300, \
197 	CFG_VALUE_OR_DEFAULT, \
198 	"Configure traffic threshold")
199 
200 /*
201  * <ini>
202  * mawc_roam_ap_rssi_threshold - Best AP RSSI threshold
203  * @Min: -120
204  * @Max: 0
205  * @Default: -66
206  *
207  * This ini is used to specify the RSSI threshold to scan for the AP.
208  *
209  * Related: mawc_roam_enabled.
210  *
211  * Supported Feature: MAWC Roaming
212  *
213  * Usage: Internal/External
214  *
215  * </ini>
216  */
217 #define CFG_LFR_MAWC_ROAM_AP_RSSI_THRESHOLD CFG_INI_INT( \
218 	"mawc_roam_ap_rssi_threshold", \
219 	-120, \
220 	0, \
221 	-66, \
222 	CFG_VALUE_OR_DEFAULT, \
223 	"Best AP RSSI threshold")
224 
225 /*
226  * <ini>
227  * mawc_roam_rssi_high_adjust - Adjust MAWC roam high RSSI
228  * @Min: 3
229  * @Max: 5
230  * @Default: 5
231  *
232  * This ini is used for high RSSI threshold adjustment in stationary state
233  * to suppress the scan.
234  *
235  * Related: mawc_roam_enabled.
236  *
237  * Supported Feature: MAWC Roaming
238  *
239  * Usage: Internal/External
240  *
241  * </ini>
242  */
243 #define CFG_LFR_MAWC_ROAM_RSSI_HIGH_ADJUST CFG_INI_UINT( \
244 	"mawc_roam_rssi_high_adjust", \
245 	3, \
246 	5, \
247 	5, \
248 	CFG_VALUE_OR_DEFAULT, \
249 	"Adjust MAWC roam high RSSI")
250 
251 /*
252  * <ini>
253  * mawc_roam_rssi_low_adjust - Adjust MAWC roam low RSSI
254  * @Min: 3
255  * @Max: 5
256  * @Default: 5
257  *
258  * This ini is used for low RSSI threshold adjustment in stationary state
259  * to suppress the scan.
260  *
261  * Related: mawc_roam_enabled.
262  *
263  * Supported Feature: MAWC Roaming
264  *
265  * Usage: Internal/External
266  *
267  * </ini>
268  */
269 #define CFG_LFR_MAWC_ROAM_RSSI_LOW_ADJUST CFG_INI_UINT( \
270 	"mawc_roam_rssi_low_adjust", \
271 	3, \
272 	5, \
273 	5, \
274 	CFG_VALUE_OR_DEFAULT, \
275 	"Adjust MAWC roam low RSSI")
276 
277 /*
278  * <ini>
279  * rssi_abs_thresh - The min RSSI of the candidate AP to consider roam
280  * @Min: -96
281  * @Max: 0
282  * @Default: 0
283  *
284  * The RSSI value of the candidate AP should be higher than rssi_abs_thresh
285  * to roam to the AP. 0 means no absolute minimum RSSI is required.
286  *
287  * Related: None
288  *
289  * Supported Feature: Roaming
290  *
291  * Usage: External
292  *
293  * </ini>
294  */
295 #define CFG_LFR_ROAM_RSSI_ABS_THRESHOLD CFG_INI_INT( \
296 	"rssi_abs_thresh", \
297 	-96, \
298 	0, \
299 	0, \
300 	CFG_VALUE_OR_DEFAULT, \
301 	"The min RSSI of the candidate AP to consider roam")
302 
303 /*
304  * <ini>
305  * lookup_threshold_5g_offset - Lookup threshold offset for 5G band
306  * @Min: -120
307  * @Max: 120
308  * @Default: 0
309  *
310  * This ini is used to set the 5G band lookup threshold for roaming.
311  * It depends on another INI which is gNeighborLookupThreshold.
312  * gNeighborLookupThreshold is a legacy INI item which will be used to
313  * set the RSSI lookup threshold for both 2G and 5G bands. If the
314  * user wants to setup a different threshold for a 5G band, then user
315  * can use this offset value which will be summed up to the value of
316  * gNeighborLookupThreshold and used for 5G
317  * e.g: gNeighborLookupThreshold = -76dBm
318  *      lookup_threshold_5g_offset = 6dBm
319  *      Then the 5G band will be configured to -76+6 = -70dBm
320  * A default value of Zero to lookup_threshold_5g_offset will keep the
321  * thresholds same for both 2G and 5G bands
322  *
323  * Related: gNeighborLookupThreshold
324  *
325  * Supported Feature: Roaming
326  *
327  * Usage: Internal/External
328  *
329  * </ini>
330  */
331 #define CFG_LFR_5G_RSSI_THRESHOLD_OFFSET CFG_INI_INT( \
332 	"lookup_threshold_5g_offset", \
333 	-120, \
334 	120, \
335 	0, \
336 	CFG_VALUE_OR_DEFAULT, \
337 	"Lookup threshold offset for 5G band")
338 
339 /*
340  * <ini>
341  * gEnableFastRoamInConcurrency - Enable LFR roaming on STA during concurrency
342  * @Min: 0
343  * @Max: 1
344  * @Default: 1
345  *
346  * This INI is used to enable Legacy fast roaming(LFR) on STA link during
347  * concurrent sessions.
348  *
349  * Related: None
350  *
351  * Supported Feature: Roaming
352  *
353  * Usage: External
354  *
355  * </ini>
356  */
357 #define CFG_LFR_ENABLE_FAST_ROAM_IN_CONCURRENCY CFG_INI_BOOL( \
358 	"gEnableFastRoamInConcurrency", \
359 	1, \
360 	"Enable LFR roaming on STA during concurrency")
361 
362 /*
363  * <ini>
364  * gEnableEarlyStopScan - Set early stop scan
365  * @Min: 0
366  * @Max: 1
367  * @Default: 0
368  *
369  * This ini is used to set early stop scan. Early stop
370  * scan is a feature for roaming to stop the scans at
371  * an early stage as soon as we find a better AP to roam.
372  * This would make the roaming happen quickly.
373  *
374  * Related: None
375  *
376  * Supported Feature: LFR Scan
377  *
378  * Usage: External
379  *
380  * </ini>
381  */
382 #define CFG_LFR_EARLY_STOP_SCAN_ENABLE CFG_INI_BOOL( \
383 	"gEnableEarlyStopScan", \
384 	0, \
385 	"Set early stop scan")
386 
387 /*
388  * <ini>
389  * gEarlyStopScanMinThreshold - Set early stop scan min
390  * threshold
391  * @Min: -80
392  * @Max: -70
393  * @Default: -73
394  *
395  * This ini is used to set the early stop scan minimum
396  * threshold. Early stop scan minimum threshold is the
397  * minimum threshold to be considered for stopping the
398  * scan. The algorithm starts with a scan on the greedy
399  * channel list with the maximum threshold and steps down
400  * the threshold by 20% for each further channel. It can
401  * step down on each channel but cannot go lower than the
402  * minimum threshold.
403  *
404  * Related: None
405  *
406  * Supported Feature: Scan
407  *
408  * Usage: External
409  *
410  * </ini>
411  */
412 #define CFG_LFR_EARLY_STOP_SCAN_MIN_THRESHOLD CFG_INI_INT( \
413 	"gEarlyStopScanMinThreshold", \
414 	-80, \
415 	-70, \
416 	-73, \
417 	CFG_VALUE_OR_DEFAULT, \
418 	"Set early stop scan min")
419 
420 /*
421  * <ini>
422  * gEarlyStopScanMaxThreshold - Set early stop scan max
423  * threshold
424  * @Min: -60
425  * @Max: -40
426  * @Default: -43
427  *
428  * This ini is used to set the the early stop scan maximum
429  * threshold at which the candidate AP should be to be
430  * qualified as a potential roam candidate and good enough
431  * to stop the roaming scan.
432  *
433  * Related: None
434  *
435  * Supported Feature: Scan
436  *
437  * Usage: External
438  *
439  * </ini>
440  */
441 #define CFG_LFR_EARLY_STOP_SCAN_MAX_THRESHOLD CFG_INI_INT( \
442 	"gEarlyStopScanMaxThreshold", \
443 	-60, \
444 	-40, \
445 	-43, \
446 	CFG_VALUE_OR_DEFAULT, \
447 	"Set early stop scan max")
448 
449 /*
450  * <ini>
451  * gtraffic_threshold - Dense traffic threshold
452  * @Min: 0
453  * @Max: 0xffffffff
454  * @Default: 400
455  *
456  * Dense traffic threshold
457  * traffic threshold required for dense roam scan
458  * Measured in kbps
459  *
460  * Related: None
461  *
462  * Supported Feature: Roaming
463  *
464  * Usage: External
465  *
466  * </ini>
467  */
468 #define CFG_LFR_ROAM_DENSE_TRAFFIC_THRESHOLD CFG_INI_UINT( \
469 	"gtraffic_threshold", \
470 	0, \
471 	0xffffffff, \
472 	400, \
473 	CFG_VALUE_OR_DEFAULT, \
474 	"Dense traffic threshold")
475 
476 /*
477  * <ini>
478  * groam_dense_rssi_thresh_offset - Sets dense roam RSSI threshold diff
479  * @Min: 0
480  * @Max: 20
481  * @Default: 10
482  *
483  * This INI is used to set offset value from normal RSSI threshold to dense
484  * RSSI threshold FW will optimize roaming based on new RSSI threshold once
485  * it detects dense environment.
486  *
487  * Related: None
488  *
489  * Supported Feature: Roaming
490  *
491  * Usage: External
492  *
493  * </ini>
494  */
495 #define CFG_LFR_ROAM_DENSE_RSSI_THRE_OFFSET CFG_INI_UINT( \
496 	"groam_dense_rssi_thresh_offset", \
497 	0, \
498 	20, \
499 	10, \
500 	CFG_VALUE_OR_DEFAULT, \
501 	"Dense traffic threshold")
502 
503 /*
504  * <ini>
505  * groam_dense_min_aps - Sets minimum number of AP for dense roam
506  * @Min: 1
507  * @Max: 5
508  * @Default: 3
509  *
510  * Minimum number of APs required for dense roam. FW will consider
511  * environment as dense once it detects #APs operating is more than
512  * groam_dense_min_aps.
513  *
514  * Related: None
515  *
516  * Supported Feature: Roaming
517  *
518  * Usage: External
519  *
520  * </ini>
521  */
522 #define CFG_LFR_ROAM_DENSE_MIN_APS CFG_INI_UINT( \
523 	"groam_dense_min_aps", \
524 	1, \
525 	5, \
526 	3, \
527 	CFG_VALUE_OR_DEFAULT, \
528 	"Sets minimum number of AP for dense roam")
529 
530 /*
531  * <ini>
532  * roam_bg_scan_bad_rssi_thresh - RSSI threshold for background roam
533  * @Min: -96
534  * @Max: 0
535  * @Default: -76
536  *
537  * If the DUT is connected to an AP with weak signal, then the bad RSSI
538  * threshold will be used as an opportunity to use the scan results
539  * from other scan clients and try to roam if there is a better AP
540  * available in the environment.
541  *
542  * Related: None
543  *
544  * Supported Feature: Roaming
545  *
546  * Usage: External
547  *
548  * </ini>
549  */
550 #define CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD CFG_INI_INT( \
551 	"roam_bg_scan_bad_rssi_thresh", \
552 	-96, \
553 	0, \
554 	-76, \
555 	CFG_VALUE_OR_DEFAULT, \
556 	"RSSI threshold for background roam")
557 
558 /*
559  * <ini>
560  * roam_bg_scan_client_bitmap - Bitmap used to identify the scan clients
561  * @Min: 0
562  * @Max: 0x7FF
563  * @Default: 0x424
564  *
565  * This bitmap is used to define the client scans that need to be used
566  * by the roaming module to perform a background roaming.
567  * Currently supported bit positions are as follows:
568  * Bit 0 is reserved in the firmware.
569  * WMI_SCAN_CLIENT_NLO - 1
570  * WMI_SCAN_CLIENT_EXTSCAN - 2
571  * WMI_SCAN_CLIENT_ROAM - 3
572  * WMI_SCAN_CLIENT_P2P - 4
573  * WMI_SCAN_CLIENT_LPI - 5
574  * WMI_SCAN_CLIENT_NAN - 6
575  * WMI_SCAN_CLIENT_ANQP - 7
576  * WMI_SCAN_CLIENT_OBSS - 8
577  * WMI_SCAN_CLIENT_PLM - 9
578  * WMI_SCAN_CLIENT_HOST - 10
579  *
580  * Related: None
581  *
582  * Supported Feature: Roaming
583  *
584  * Usage: External
585  *
586  * </ini>
587  */
588 #define CFG_LFR_ROAM_BG_SCAN_CLIENT_BITMAP CFG_INI_UINT( \
589 	"roam_bg_scan_client_bitmap", \
590 	0, \
591 	0x7FF, \
592 	0x424, \
593 	CFG_VALUE_OR_DEFAULT, \
594 	"Bitmap used to identify the scan clients")
595 
596 /*
597  * <ini>
598  * roam_bad_rssi_thresh_offset_2g - RSSI threshold offset for 2G to 5G roam
599  * @Min: 0
600  * @Max: 86
601  * @Default: 40
602  *
603  * If the DUT is connected to an AP with weak signal in 2G band, then the
604  * bad RSSI offset for 2g would be used as offset from the bad RSSI
605  * threshold configured and then use the resulting rssi for an opportunity
606  * to use the scan results from other scan clients and try to roam to
607  * 5G Band ONLY if there is a better AP available in the environment.
608  *
609  * For example if the roam_bg_scan_bad_rssi_thresh is -76 and
610  * roam_bad_rssi_thresh_offset_2g is 40 then the difference of -36 would be
611  * used as a trigger to roam to a 5G AP if DUT initially connected to a 2G AP
612  *
613  * Related: roam_bg_scan_bad_rssi_thresh
614  *
615  * Supported Feature: Roaming
616  *
617  * Usage: External
618  *
619  * </ini>
620  */
621 #define CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G CFG_INI_UINT( \
622 	"roam_bad_rssi_thresh_offset_2g", \
623 	0, \
624 	86, \
625 	40, \
626 	CFG_VALUE_OR_DEFAULT, \
627 	"RSSI threshold offset for 2G to 5G roam")
628 
629 /*
630  * <ini>
631  * roam_data_rssi_threshold_triggers - triggers of data rssi threshold for roam
632  * @Min: 0
633  * @Max: 0xffff
634  * @Default: 0x3
635  *
636  * If the DUT is connected to an AP with weak signal, during latest
637  * rx_data_inactivity_time, if there is no activity or avg of data_rssi is
638  * better than roam_data_rssi_threshold(-70dbM), then suppress roaming
639  * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan.
640  * Triggers bitmap definition:
641  * ROAM_DATA_RSSI_FLAG_LOW_RSSI   1<<0
642  * ROAM_DATA_RSSI_FLAG_BACKGROUND 1<<1
643  *
644  * Related: None
645  *
646  * Supported Feature: Roaming
647  *
648  * Usage: External
649  *
650  * </ini>
651  */
652 #define CFG_ROAM_DATA_RSSI_THRESHOLD_TRIGGERS CFG_INI_UINT( \
653 	"roam_data_rssi_threshold_triggers", \
654 	0, \
655 	0xffff, \
656 	0x3, \
657 	CFG_VALUE_OR_DEFAULT, \
658 	"Triggers of DATA RSSI threshold for roam")
659 
660 /*
661  * <ini>
662  * roam_data_rssi_threshold - Data RSSI threshold for background roam
663  * @Min: -96
664  * @Max: 0
665  * @Default: -70
666  *
667  * If the DUT is connected to an AP with weak signal, during latest
668  * rx_data_inactivity_time, if there is no activity or avg of data_rssi is
669  * better than roam_data_rssi_threshold(-70dbM), then suppress roaming
670  * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan.
671  *
672  * Related: None
673  *
674  * Supported Feature: Roaming
675  *
676  * Usage: External
677  *
678  * </ini>
679  */
680 #define CFG_ROAM_DATA_RSSI_THRESHOLD CFG_INI_INT( \
681 	"roam_data_rssi_threshold", \
682 	-96, \
683 	0, \
684 	-70, \
685 	CFG_VALUE_OR_DEFAULT, \
686 	"DATA RSSI threshold for roam")
687 
688 /*
689  * <ini>
690  * rx_data_inactivity_time - Duration to check data rssi
691  * @Min: 0
692  * @Max: 100000 ms
693  * @Default: 2000
694  *
695  * If the DUT is connected to an AP with weak signal, during latest
696  * rx_data_inactivity_time, if there is no activity or avg of data_rssi is
697  * better than roam_data_rssi_threshold(-70dbM), then suppress roaming
698  * triggered by roam_data_rssi_threshold_triggers: low RSSI or bg scan.
699  *
700  * Related: None
701  *
702  * Supported Feature: Roaming
703  *
704  * Usage: External
705  *
706  * </ini>
707  */
708 #define CFG_RX_DATA_INACTIVITY_TIME CFG_INI_UINT( \
709 	"rx_data_inactivity_time", \
710 	0, \
711 	100000, \
712 	2000, \
713 	CFG_VALUE_OR_DEFAULT, \
714 	"Rx inactivity time to check data rssi")
715 
716 /*
717  * <ini>
718  * roamscan_adaptive_dwell_mode - Sets dwell time adaptive mode
719  * @Min: 0
720  * @Max: 4
721  * @Default: 4
722  *
723  * This parameter will set the algo used in dwell time optimization during
724  * roam scan. see enum scan_dwelltime_adaptive_mode.
725  * Acceptable values for this:
726  * 0: Default (Use firmware default mode)
727  * 1: Conservative optimization
728  * 2: Moderate optimization
729  * 3: Aggressive optimization
730  * 4: Static
731  *
732  * Related: None
733  *
734  * Supported Feature: Roaming
735  *
736  * Usage: External
737  *
738  * </ini>
739  */
740 #define CFG_LFR_ADAPTIVE_ROAMSCAN_DWELL_MODE CFG_INI_UINT( \
741 	"roamscan_adaptive_dwell_mode", \
742 	0, \
743 	4, \
744 	4, \
745 	CFG_VALUE_OR_DEFAULT, \
746 	"Sets dwell time adaptive mode")
747 
748 /*
749  * <ini>
750  * gper_roam_enabled - To enabled/disable PER based roaming in FW
751  * @Min: 0
752  * @Max: 3
753  * @Default: 3
754  *
755  * This ini is used to enable/disable Packet error based roaming, enabling this
756  * will cause DUT to monitor Tx and Rx traffic and roam to a better candidate
757  * if current is not good enough.
758  *
759  * Values supported:
760  * 0: disabled
761  * 1: enabled for Rx traffic
762  * 2: enabled for Tx traffic
763  * 3: enabled for Tx and Rx traffic
764  *
765  * Related: gper_roam_high_rate_th, gper_roam_low_rate_th,
766  *          gper_roam_th_percent, gper_roam_rest_time
767  *
768  * Supported Feature: LFR-3.0
769  *
770  * Usage: Internal
771  *
772  * </ini>
773  */
774 #define CFG_LFR_PER_ROAM_ENABLE CFG_INI_UINT( \
775 	"gper_roam_enabled", \
776 	0, \
777 	3, \
778 	3, \
779 	CFG_VALUE_OR_DEFAULT, \
780 	"To enabled/disable PER based roaming in FW")
781 
782 /*
783  * <ini>
784  * gper_roam_high_rate_th - Rate at which PER based roam will stop
785  * @Min: 1 Mbps
786  * @Max: 0xffffffff
787  * @Default: 40 Mbps
788  *
789  * This ini is used to define the data rate in mbps*10 at which FW will stop
790  * monitoring the traffic for PER based roam.
791  *
792  * Related: gper_roam_enabled, gper_roam_low_rate_th,
793  *          gper_roam_th_percent, gper_roam_rest_time
794  *
795  * Supported Feature: LFR-3.0
796  *
797  * Usage: Internal
798  *
799  * </ini>
800  */
801 #define CFG_LFR_PER_ROAM_CONFIG_HIGH_RATE_TH CFG_INI_UINT( \
802 	"gper_roam_high_rate_th", \
803 	10, \
804 	0xffffffff, \
805 	400, \
806 	CFG_VALUE_OR_DEFAULT, \
807 	"Rate at which PER based roam will stop")
808 
809 /*
810  * <ini>
811  * gper_roam_low_rate_th - Rate at which FW starts considering traffic for PER
812  * based roam.
813  *
814  * @Min: 1 Mbps
815  * @Max: 0xffffffff
816  * @Default: 20 Mbps
817  *
818  * This ini is used to define the rate in mbps*10 at which FW starts considering
819  * traffic for PER based roam, if gper_roam_th_percent of data is below this
820  * rate, FW will issue a roam scan.
821  *
822  * Related: gper_roam_enabled, gper_roam_high_rate_th,
823  *          gper_roam_th_percent, gper_roam_rest_time
824  *
825  * Supported Feature: LFR-3.0
826  *
827  * Usage: Internal
828  *
829  * </ini>
830  */
831 #define CFG_LFR_PER_ROAM_CONFIG_LOW_RATE_TH CFG_INI_UINT( \
832 	"gper_roam_low_rate_th", \
833 	10, \
834 	0xffffffff, \
835 	200, \
836 	CFG_VALUE_OR_DEFAULT, \
837 	"Rate at which FW starts considering traffic for PER")
838 
839 /*
840  * <ini>
841  * gper_roam_th_percent - Percentage at which FW will issue a roam scan if
842  * traffic is below gper_roam_low_rate_th rate.
843  *
844  * @Min: 10%
845  * @Max: 100%
846  * @Default: 60%
847  *
848  * This ini is used to define the percentage at which FW will issue a roam scan
849  * if traffic is below gper_roam_low_rate_th rate.
850  *
851  * Related: gper_roam_enabled, gper_roam_high_rate_th,
852  *          gper_roam_high_rate_th, gper_roam_rest_time
853  *
854  * Supported Feature: LFR-3.0
855  *
856  * Usage: Internal
857  *
858  * </ini>
859  */
860 #define CFG_LFR_PER_ROAM_CONFIG_RATE_TH_PERCENT CFG_INI_UINT( \
861 	"gper_roam_th_percent", \
862 	10, \
863 	100, \
864 	60, \
865 	CFG_VALUE_OR_DEFAULT, \
866 	"Percentage at which FW will issue a roam scan")
867 
868 /*
869  * <ini>
870  * gper_roam_rest_time - Time for which FW will wait once it issues a
871  * roam scan.
872  *
873  * @Min: 10 seconds
874  * @Max: 3600 seconds
875  * @Default: 300 seconds
876  *
877  * This ini is used to define the time for which FW will wait once it issues a
878  * PER based roam scan.
879  *
880  * Related: gper_roam_enabled, gper_roam_high_rate_th,
881  *          gper_roam_high_rate_th, gper_roam_th_percent
882  *
883  * Supported Feature: LFR-3.0
884  *
885  * Usage: Internal
886  *
887  * </ini>
888  */
889 #define CFG_LFR_PER_ROAM_REST_TIME CFG_INI_UINT( \
890 	"gper_roam_rest_time", \
891 	10, \
892 	3600, \
893 	300, \
894 	CFG_VALUE_OR_DEFAULT, \
895 	"Time for which FW will wait once it issues a roam scan")
896 
897 /*
898  * <ini>
899  * gper_roam_mon_time - Minimum time required in seconds to
900  * be considered as valid scenario for PER based roam
901  * @Min: 5
902  * @Max: 25
903  * @Default: 25
904  *
905  * This ini is used to define minimum time in seconds for which DUT has
906  * collected the PER stats before it can consider the stats hysteresis to be
907  * valid for PER based scan.
908  * DUT collects following information during this period:
909  *     1. % of packets below gper_roam_low_rate_th
910  *     2. # packets above gper_roam_high_rate_th
911  * if DUT gets (1) greater than gper_roam_th_percent and (2) is zero during
912  * this period, it triggers PER based roam scan.
913  *
914  * Related: gper_roam_enabled, gper_roam_high_rate_th, gper_roam_low_rate_th,
915  *          gper_roam_th_percent, gper_roam_rest_time
916  *
917  * Supported Feature: LFR-3.0
918  *
919  * Usage: Internal
920  *
921  * </ini>
922  */
923 #define CFG_LFR_PER_ROAM_MONITOR_TIME CFG_INI_UINT( \
924 	"gper_roam_mon_time", \
925 	5, \
926 	25, \
927 	25, \
928 	CFG_VALUE_OR_DEFAULT, \
929 	"Minimum time to be considered as valid scenario for PER based roam")
930 
931 /*
932  * <ini>
933  * gper_min_rssi_threshold_for_roam -  Minimum roamable AP RSSI for
934  * candidate selection for PER based roam
935  * @Min: 0
936  * @Max: 96
937  * @Default: 83
938  *
939  * Minimum roamable AP RSSI for candidate selection for PER based roam
940  *
941  * Related: gper_roam_enabled, gper_roam_high_rate_th, gper_roam_low_rate_th,
942  *          gper_roam_th_percent, gper_roam_rest_time
943  *
944  * Supported Feature: LFR-3.0
945  *
946  * Usage: Internal
947  *
948  * </ini>
949  */
950 #define CFG_LFR_PER_ROAM_MIN_CANDIDATE_RSSI CFG_INI_UINT( \
951 	"gper_min_rssi_threshold_for_roam", \
952 	10, \
953 	96, \
954 	83, \
955 	CFG_VALUE_OR_DEFAULT, \
956 	"Minimum roamable AP RSSI for candidate selection for PER based roam")
957 
958 /*
959  * <ini>
960  * groam_disallow_duration - disallow duration before roaming
961  * @Min: 0
962  * @Max: 3600
963  * @Default: 30
964  *
965  * This ini is used to configure how long LCA[Last Connected AP] AP will
966  * be disallowed before it can be a roaming candidate again, in units of
967  * seconds.
968  *
969  * Related: LFR
970  *
971  * Usage: Internal
972  *
973  * </ini>
974  */
975 #define CFG_LFR3_ROAM_DISALLOW_DURATION CFG_INI_UINT( \
976 	"groam_disallow_duration", \
977 	0, \
978 	3600, \
979 	30, \
980 	CFG_VALUE_OR_DEFAULT, \
981 	"disallow duration before roaming")
982 
983 /*
984  * <ini>
985  * grssi_channel_penalization - RSSI penalization
986  * @Min: 0
987  * @Max: 15
988  * @Default: 5
989  *
990  * This ini is used to configure RSSI that will be penalized if candidate(s)
991  * are found to be in the same channel as disallowed AP's, in units of db.
992  *
993  * Related: LFR
994  *
995  * Usage: Internal
996  *
997  * </ini>
998  */
999 #define CFG_LFR3_ROAM_RSSI_CHANNEL_PENALIZATION CFG_INI_UINT( \
1000 	"grssi_channel_penalization", \
1001 	0, \
1002 	15, \
1003 	5, \
1004 	CFG_VALUE_OR_DEFAULT, \
1005 	"RSSI penalization")
1006 
1007 /*
1008  * <ini>
1009  * groam_num_disallowed_aps - Max number of AP's to maintain in LCA list
1010  * @Min: 0
1011  * @Max: 8
1012  * @Default: 3
1013  *
1014  * This ini is used to set the maximum number of AP's to be maintained
1015  * in LCA [Last Connected AP] list.
1016  *
1017  * Related: LFR
1018  *
1019  * Usage: Internal
1020  *
1021  * </ini>
1022  */
1023 #define CFG_LFR3_ROAM_NUM_DISALLOWED_APS CFG_INI_UINT( \
1024 	"groam_num_disallowed_aps", \
1025 	0, \
1026 	8, \
1027 	3, \
1028 	CFG_VALUE_OR_DEFAULT, \
1029 	"Max number of AP's to maintain in LCA list")
1030 
1031 /*
1032  * <ini>
1033  * enable_5g_band_pref - Enable preference for 5G from INI.
1034  * @Min: 0
1035  * @Max: 1
1036  * @Default: 0
1037  * This ini is used to enable 5G preference parameters.
1038  *
1039  * Related: 5g_rssi_boost_threshold, 5g_rssi_boost_factor, 5g_max_rssi_boost
1040  * 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor, 5g_max_rssi_penalize
1041  *
1042  * Supported Feature: 5G band preference
1043  *
1044  * Usage: External
1045  *
1046  * </ini>
1047  */
1048 #define CFG_LFR_ENABLE_5G_BAND_PREF CFG_INI_BOOL( \
1049 	"enable_5g_band_pref", \
1050 	0, \
1051 	"Enable preference for 5G from INI")
1052 
1053 /*
1054  * <ini>
1055  * 5g_rssi_boost_threshold - A_band_boost_threshold above which 5G is favored.
1056  * @Min: -70
1057  * @Max: -55
1058  * @Default: -60
1059  * This ini is used to set threshold for 5GHz band preference.
1060  *
1061  * Related: 5g_rssi_boost_factor, 5g_max_rssi_boost
1062  * 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor, 5g_max_rssi_penalize
1063  *
1064  * Supported Feature: 5G band preference
1065  *
1066  * Usage: External
1067  *
1068  * </ini>
1069  */
1070 #define CFG_LFR_5G_RSSI_BOOST_THRESHOLD CFG_INI_INT( \
1071 	"5g_rssi_boost_threshold", \
1072 	-70, \
1073 	-55, \
1074 	-60, \
1075 	CFG_VALUE_OR_DEFAULT, \
1076 	"A_band_boost_threshold above which 5 GHz is favored")
1077 
1078 /*
1079  * <ini>
1080  * 5g_rssi_boost_factor - Factor by which 5GHz RSSI is boosted.
1081  * @Min: 0
1082  * @Max: 2
1083  * @Default: 1
1084  * This ini is used to set the 5Ghz boost factor.
1085  *
1086  * Related: 5g_rssi_boost_threshold, 5g_max_rssi_boost
1087  * 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor, 5g_max_rssi_penalize
1088  *
1089  * Supported Feature: 5G band preference
1090  *
1091  * Usage: External
1092  *
1093  * </ini>
1094  */
1095 #define CFG_LFR_5G_RSSI_BOOST_FACTOR CFG_INI_UINT( \
1096 	"5g_rssi_boost_factor", \
1097 	0, \
1098 	2, \
1099 	1, \
1100 	CFG_VALUE_OR_DEFAULT, \
1101 	"Factor by which 5GHz RSSI is boosted")
1102 
1103 /*
1104  * <ini>
1105  * 5g_max_rssi_boost - Maximum boost that can be applied to 5GHz RSSI.
1106  * @Min: 0
1107  * @Max: 20
1108  * @Default: 10
1109  * This ini is used to set maximum boost which can be given to a 5Ghz network.
1110  *
1111  * Related: 5g_rssi_boost_threshold, 5g_rssi_boost_factor
1112  * 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor, 5g_max_rssi_penalize
1113  *
1114  * Supported Feature: 5G band preference
1115  *
1116  * Usage: External
1117  *
1118  * </ini>
1119  */
1120 #define CFG_LFR_5G_MAX_RSSI_BOOST CFG_INI_UINT( \
1121 	"5g_max_rssi_boost", \
1122 	0, \
1123 	20, \
1124 	10, \
1125 	CFG_VALUE_OR_DEFAULT, \
1126 	"Maximum boost that can be applied to 5GHz RSSI")
1127 
1128 /*
1129  * <ini>
1130  * 5g_rssi_penalize_threshold - A_band_penalize_threshold above which
1131  * 5 GHz is not favored.
1132  * @Min: -80
1133  * @Max: -65
1134  * @Default: -70
1135  * This ini is used to set threshold for 5GHz band preference.
1136  *
1137  * Related: 5g_rssi_penalize_factor, 5g_max_rssi_penalize
1138  * 5g_rssi_boost_threshold, 5g_rssi_boost_factor, 5g_max_rssi_boost
1139  *
1140  * Supported Feature: 5G band preference
1141  *
1142  * Usage: External
1143  *
1144  * </ini>
1145  */
1146 #define CFG_LFR_5G_RSSI_PENALIZE_THRESHOLD CFG_INI_INT( \
1147 	"5g_rssi_penalize_threshold", \
1148 	-80, \
1149 	-65, \
1150 	-70, \
1151 	CFG_VALUE_OR_DEFAULT, \
1152 	"A_band_penalize_threshold above which 5 GHz is not favored")
1153 
1154 /*
1155  * <ini>
1156  * 5g_rssi_penalize_factor - Factor by which 5GHz RSSI is penalizeed.
1157  * @Min: 0
1158  * @Max: 2
1159  * @Default: 1
1160  * This ini is used to set the 5Ghz penalize factor.
1161  *
1162  * Related: 5g_rssi_penalize_threshold, 5g_max_rssi_penalize
1163  * 5g_rssi_boost_threshold, 5g_rssi_boost_factor, 5g_max_rssi_boost
1164  *
1165  * Supported Feature: 5G band preference
1166  *
1167  * Usage: External
1168  *
1169  * </ini>
1170  */
1171 #define CFG_LFR_5G_RSSI_PENALIZE_FACTOR CFG_INI_UINT( \
1172 	"5g_rssi_penalize_factor", \
1173 	0, \
1174 	2, \
1175 	1, \
1176 	CFG_VALUE_OR_DEFAULT, \
1177 	"Factor by which 5GHz RSSI is penalizeed")
1178 
1179 /*
1180  * <ini>
1181  * 5g_max_rssi_penalize - Maximum penalty that can be applied to 5GHz RSSI.
1182  * @Min: 0
1183  * @Max: 20
1184  * @Default: 10
1185  * This ini is used to set maximum penalty which can be given to a 5Ghz network.
1186  *
1187  * Related: 5g_rssi_penalize_threshold, 5g_rssi_penalize_factor
1188  * 5g_rssi_boost_threshold, 5g_rssi_boost_factor, 5g_max_rssi_boost
1189  *
1190  * Supported Feature: 5G band preference
1191  *
1192  * Usage: External
1193  *
1194  * </ini>
1195  */
1196 #define CFG_LFR_5G_MAX_RSSI_PENALIZE CFG_INI_UINT( \
1197 	"5g_max_rssi_penalize", \
1198 	0, \
1199 	20, \
1200 	10, \
1201 	CFG_VALUE_OR_DEFAULT, \
1202 	"Maximum penalty that can be applied to 5GHz RSSI")
1203 
1204 /*
1205  * <ini>
1206  * max_num_pre_auth - Configure max number of pre-auth
1207  * @Min: 0
1208  * @Max: 256
1209  * @Default: 64
1210  *
1211  * This ini is used to configure the data max number of pre-auth
1212  *
1213  * Usage: Internal
1214  *
1215  * </ini>
1216  */
1217 #define CFG_LFR_MAX_NUM_PRE_AUTH CFG_UINT( \
1218 	"max_num_pre_auth", \
1219 	0, \
1220 	256, \
1221 	64, \
1222 	CFG_VALUE_OR_DEFAULT, \
1223 	"")
1224 
1225 /*
1226  * <ini>
1227  * roam_preauth_retry_count
1228  *
1229  * @Min: 1
1230  * @Max: 10
1231  * @Default: 5
1232  *
1233  * The maximum number of software retries for preauth or
1234  * reassoc made before picking up the next candidate for
1235  * connection during roaming.
1236  *
1237  * Related: N/A
1238  *
1239  * Supported Features: Roaming
1240  *
1241  * Usage: Internal/External
1242  *
1243  * </ini>
1244  */
1245 #define CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT CFG_INI_INT( \
1246 			"roam_preauth_retry_count", \
1247 			1, \
1248 			10, \
1249 			5, \
1250 			CFG_VALUE_OR_DEFAULT, \
1251 			"The maximum number of software retries for preauth")
1252 
1253 /*
1254  * <ini>
1255  * roam_preauth_no_ack_timeout
1256  *
1257  * @Min: 5
1258  * @Max: 50
1259  * @Default: 5
1260  *
1261  * Time to wait (in ms) after sending an preauth or reassoc
1262  * request which didn't have an ack, before considering
1263  * it as a failure and making another software retry.
1264  *
1265  * Related: N/A
1266  *
1267  * Supported Features: Roaming
1268  *
1269  * Usage: Internal/External
1270  *
1271  * </ini>
1272  */
1273 #define CFG_LFR3_ROAM_PREAUTH_NO_ACK_TIMEOUT CFG_INI_INT( \
1274 			"roam_preauth_no_ack_timeout", \
1275 			5, \
1276 			50, \
1277 			5, \
1278 			CFG_VALUE_OR_DEFAULT, \
1279 			"Time to wait after sending an preauth or reassoc")
1280 
1281 /*
1282  * <ini>
1283  * FastRoamEnabled - Enable fast roaming
1284  * @Min: 0
1285  * @Max: 1
1286  * @Default: 1
1287  *
1288  * This ini is used to inform FW to enable fast roaming
1289  *
1290  * Related: None
1291  *
1292  * Supported Feature: Roaming
1293  *
1294  * Usage: External
1295  *
1296  * </ini>
1297  */
1298 #define CFG_LFR_FEATURE_ENABLED CFG_INI_BOOL( \
1299 	"FastRoamEnabled", \
1300 	1, \
1301 	"Enable fast roaming")
1302 
1303 /*
1304  * <ini>
1305  * MAWCEnabled - Enable/Disable Motion Aided Wireless Connectivity Global
1306  * @Min: 0 - Disabled
1307  * @Max: 1 - Enabled
1308  * @Default: 0
1309  *
1310  * This ini is used to controls the MAWC feature globally.
1311  * MAWC is Motion Aided Wireless Connectivity.
1312  *
1313  * Related: mawc_roam_enabled.
1314  *
1315  * Supported Feature: Roaming and PNO/NLO
1316  *
1317  * Usage: Internal/External
1318  *
1319  * </ini>
1320  */
1321 #define CFG_LFR_MAWC_FEATURE_ENABLED CFG_INI_BOOL( \
1322 	"MAWCEnabled", \
1323 	0, \
1324 	"Enable MAWC")
1325 
1326 /*
1327  * <ini>
1328  * FastTransitionEnabled - Enable fast transition in case of 11r and ese.
1329  * @Min: 0
1330  * @Max: 1
1331  * @Default: 1
1332  *
1333  * This ini is used to turn ON/OFF the whole neighbor roam, pre-auth, reassoc.
1334  * With this turned OFF 11r will completely not work. For 11r this flag has to
1335  * be ON. For ESE fastroam will not work.
1336  *
1337  * Related: None
1338  *
1339  * Supported Feature: Roaming
1340  *
1341  * Usage: External
1342  *
1343  * </ini>
1344  */
1345 #define CFG_LFR_FAST_TRANSITION_ENABLED CFG_INI_BOOL( \
1346 	"FastTransitionEnabled", \
1347 	1, \
1348 	"Enable fast transition")
1349 
1350 /*
1351  * <ini>
1352  * RoamRssiDiff - Enable roam based on rssi
1353  * @Min: 0
1354  * @Max: 100
1355  * @Default: 5
1356  *
1357  * This INI is used to decide whether to Roam or not based on RSSI. AP1 is the
1358  * currently associated AP and AP2 is chosen for roaming. The Roaming will
1359  * happen only if AP2 has better Signal Quality and it has a RSSI better than
1360  * AP2. RoamRssiDiff is the number of units (typically measured in dB) AP2
1361  * is better than AP1.
1362  *
1363  * Related: None
1364  *
1365  * Supported Feature: Roaming
1366  *
1367  * Usage: External
1368  *
1369  * </ini>
1370  */
1371 #define CFG_LFR_ROAM_RSSI_DIFF CFG_INI_UINT( \
1372 	"RoamRssiDiff", \
1373 	0, \
1374 	100, \
1375 	5, \
1376 	CFG_VALUE_OR_DEFAULT, \
1377 	"Enable roam based on rssi")
1378 
1379 /*
1380  * <ini>
1381  * RoamRssiDiff6GHz - Enable roam to 6 GHz AP based on rssi
1382  * @Min: 0
1383  * @Max: 100
1384  * @Default: 5
1385  *
1386  * This INI is used to decide whether to roam to 6 GHz AP or not based on RSSI.
1387  * AP1 is the currently associated AP(2.4 GHz / 5 GHz) and AP2(6 GHz) is chosen
1388  * for roaming. The Roaming will happen only if AP2 has better Signal Quality
1389  * and it has a RSSI better than AP1. RoamRssiDiff6GHz is the number of units
1390  * (typically measured in dB) AP2 is better than AP1.
1391  *
1392  * Related: None
1393  *
1394  * Supported Feature: Roaming
1395  *
1396  * Usage: External
1397  *
1398  * </ini>
1399  */
1400 #define CFG_LFR_ROAM_RSSI_DIFF_6GHZ CFG_INI_UINT( \
1401 	"RoamRssiDiff6GHz", \
1402 	0, \
1403 	100, \
1404 	5, \
1405 	CFG_VALUE_OR_DEFAULT, \
1406 	"Enable 6 GHz roam based on rssi")
1407 
1408 /*
1409  * <ini>
1410  * bg_rssi_threshold - To set RSSI Threshold for BG scan roaming
1411  * @Min: 0
1412  * @Max: 100
1413  * @Default: 5
1414  *
1415  * This INI is used to set the value of rssi threshold to trigger roaming
1416  * after background scan. To trigger roam after bg scan, value of rssi of
1417  * candidate AP should be higher by this threshold than the rssi of the
1418  * currently associated AP.
1419  *
1420  * Related: RoamRssiDiff
1421  *
1422  * Supported Feature: Roaming
1423  *
1424  * Usage: External
1425  *
1426  * </ini>
1427  */
1428 #define CFG_LFR_ROAM_BG_RSSI_TH CFG_INI_UINT( \
1429 	"bg_rssi_threshold", \
1430 	0, \
1431 	100, \
1432 	5, \
1433 	CFG_VALUE_OR_DEFAULT, \
1434 	"Enable roam based on rssi after BG scan")
1435 
1436 /*
1437  * <ini>
1438  * gWESModeEnabled - Enable WES mode
1439  * @Min: 0
1440  * @Max: 1
1441  * @Default: 0
1442  *
1443  * This ini is used to enable/disable Wireless Extended Security mode.
1444  *
1445  * Related: None
1446  *
1447  * Supported Feature: Roaming
1448  *
1449  * Usage: External
1450  *
1451  * </ini>
1452  */
1453 #define CFG_LFR_ENABLE_WES_MODE CFG_INI_BOOL( \
1454 	"gWESModeEnabled", \
1455 	0, \
1456 	"Enable WES mode")
1457 
1458 /*
1459  * <ini>
1460  * gRoamScanOffloadEnabled - Enable Roam Scan Offload
1461  * @Min: 0
1462  * @Max: 1
1463  * @Default: 1
1464  *
1465  * This INI is used to enable Roam Scan Offload in firmware
1466  *
1467  * Related: None
1468  *
1469  * Supported Feature: Roaming
1470  *
1471  * Usage: External
1472  *
1473  * </ini>
1474  */
1475 #define CFG_LFR_ROAM_SCAN_OFFLOAD_ENABLED CFG_INI_BOOL( \
1476 	"gRoamScanOffloadEnabled", \
1477 	1, \
1478 	"Enable Roam Scan Offload")
1479 
1480 /*
1481  * <ini>
1482  * gNeighborScanChannelList - Set channels to be scanned
1483  * by firmware for LFR scan
1484  * @Default: ""
1485  *
1486  * This ini is used to set the channels to be scanned
1487  * by firmware for LFR scan.
1488  *
1489  * Related: None
1490  *
1491  * Supported Feature: LFR Scan
1492  *
1493  * Usage: External
1494  *
1495  * </ini>
1496  */
1497 
1498 #define CFG_LFR_NEIGHBOR_SCAN_CHANNEL_LIST CFG_INI_STRING( \
1499 		"gNeighborScanChanList", \
1500 		0, \
1501 		CFG_VALID_CHANNEL_LIST_STRING_LEN, \
1502 		"", \
1503 		"Set channels to be scanned")
1504 
1505 /*
1506  * <ini>
1507  * gNeighborScanTimerPeriod - Set neighbor scan timer period
1508  * @Min: 3
1509  * @Max: 300
1510  * @Default: 100
1511  *
1512  * This ini is used to set the timer period in secs after
1513  * which neighbor scan is triggered.
1514  *
1515  * Related: None
1516  *
1517  * Supported Feature: LFR Scan
1518  *
1519  * Usage: External
1520  *
1521  * </ini>
1522  */
1523 #define CFG_LFR_NEIGHBOR_SCAN_TIMER_PERIOD CFG_INI_UINT( \
1524 	"gNeighborScanTimerPeriod", \
1525 	3, \
1526 	300, \
1527 	100, \
1528 	CFG_VALUE_OR_DEFAULT, \
1529 	"Neighbor scan timer period")
1530 
1531 /*
1532  * <ini>
1533  * gRoamRestTimeMin/RoamScan_HomeTime - Set min neighbor scan timer period
1534  * @Min: 3
1535  * @Max: 300
1536  * @Default: 50
1537  *
1538  * This is the min rest time after which firmware will check for traffic
1539  * and if there no traffic it will move to a new channel to scan
1540  * else it will stay on the home channel till gNeighborScanTimerPeriod time
1541  * and then will move to a new channel to scan.
1542  *
1543  * Related: None
1544  *
1545  * Supported Feature: LFR Scan
1546  *
1547  * Usage: External
1548  *
1549  * </ini>
1550  */
1551 #define CFG_LFR_NEIGHBOR_SCAN_MIN_TIMER_PERIOD CFG_INI_UINT( \
1552 	"gRoamRestTimeMin RoamScan_HomeTime", \
1553 	RoamScan_HomeTime_min, \
1554 	RoamScan_HomeTime_max, \
1555 	RoamScan_HomeTime_default, \
1556 	CFG_VALUE_OR_DEFAULT, \
1557 	"Min neighbor scan timer period")
1558 
1559 /*
1560  * <ini>
1561  * gNeighborLookupThreshold/RoamRSSI_Trigger - Set neighbor lookup rssi
1562  * threshold
1563  * @Min: -100
1564  * @Max: -50
1565  * @Default: -76
1566  *
1567  * This is used to control the RSSI threshold for neighbor lookup.
1568  *
1569  * Related: None
1570  *
1571  * Supported Feature: LFR Scan
1572  *
1573  * Usage: External
1574  *
1575  * </ini>
1576  */
1577 #define CFG_LFR_NEIGHBOR_LOOKUP_RSSI_THRESHOLD CFG_INI_INT( \
1578 	"gNeighborLookupThreshold RoamRSSI_Trigger", \
1579 	RoamRSSI_Trigger_min, \
1580 	RoamRSSI_Trigger_max, \
1581 	RoamRSSI_Trigger_default, \
1582 	CFG_VALUE_OR_DEFAULT, \
1583 	"Neighbor lookup rssi threshold")
1584 
1585 /*
1586  * <ini>
1587  * gOpportunisticThresholdDiff - Set oppurtunistic threshold diff
1588  * @Min: 0
1589  * @Max: 127
1590  * @Default: 0
1591  *
1592  * This ini is used to set opportunistic threshold diff.
1593  * This parameter is the RSSI diff above neighbor lookup
1594  * threshold, when opportunistic scan should be triggered.
1595  * MAX value is chosen so that this type of scan can be
1596  * always enabled by user.
1597  * MIN value will cause opportunistic scan to be triggered
1598  * in neighbor lookup RSSI range.
1599  *
1600  * Related: None
1601  *
1602  * Supported Feature: LFR Scan
1603  *
1604  * Usage: External
1605  *
1606  * </ini>
1607  */
1608 #define CFG_LFR_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF CFG_INI_UINT( \
1609 	"gOpportunisticThresholdDiff", \
1610 	0, \
1611 	127, \
1612 	0, \
1613 	CFG_VALUE_OR_DEFAULT, \
1614 	"Set oppurtunistic threshold diff")
1615 
1616 /*
1617  * <ini>
1618  * gRoamRescanRssiDiff/RoamScan_StepRSSI - Sets RSSI for Scan trigger in
1619  * firmware
1620  * @Min: 0
1621  * @Max: 100
1622  * @Default: 5
1623  *
1624  * This INI is the drop in RSSI value that will trigger a precautionary
1625  * scan by firmware. Max value is chosen in such a way that this type
1626  * of scan can be disabled by user.
1627  *
1628  * Related: None
1629  *
1630  * Supported Feature: Roaming
1631  *
1632  * Usage: External
1633  *
1634  * </ini>
1635  */
1636 #define CFG_LFR_ROAM_RESCAN_RSSI_DIFF CFG_INI_UINT( \
1637 	"gRoamRescanRssiDiff RoamScan_StepRSSI", \
1638 	RoamScan_StepRSSI_min, \
1639 	RoamScan_StepRSSI_max, \
1640 	RoamScan_StepRSSI_default, \
1641 	CFG_VALUE_OR_DEFAULT, \
1642 	"Sets RSSI for Scan trigger in firmware")
1643 
1644 /*
1645  * <ini>
1646  * gNeighborScanChannelMinTime - Set neighbor scan channel min time
1647  * @Min: 10
1648  * @Max: 40
1649  * @Default: 20
1650  *
1651  * This ini is used to set the minimum time in secs spent on each
1652  * channel in LFR scan inside firmware.
1653  *
1654  * Related: None
1655  *
1656  * Supported Feature: LFR Scan
1657  *
1658  * Usage: External
1659  *
1660  * </ini>
1661  */
1662 #define CFG_LFR_NEIGHBOR_SCAN_MIN_CHAN_TIME CFG_INI_UINT( \
1663 	"gNeighborScanChannelMinTime", \
1664 	10, \
1665 	40, \
1666 	20, \
1667 	CFG_VALUE_OR_DEFAULT, \
1668 	"Neighbor scan channel min time")
1669 
1670 /*
1671  * <ini>
1672  * gNeighborScanChannelMaxTime/RoamScan_ActiveCH_DwellTime - Set neighbor scan
1673  * channel max time
1674  * @Min: 3
1675  * @Max: 300
1676  * @Default: 40
1677  *
1678  * This ini is used to set the maximum time in secs spent on each
1679  * channel in LFR scan inside firmware.
1680  *
1681  * Related: None
1682  *
1683  * Supported Feature: LFR Scan
1684  *
1685  * Usage: External
1686  *
1687  * </ini>
1688  */
1689 #define CFG_LFR_NEIGHBOR_SCAN_MAX_CHAN_TIME CFG_INI_UINT( \
1690 	"gNeighborScanChannelMaxTime RoamScan_ActiveCH_DwellTime", \
1691 	RoamScan_ActiveCH_DwellTime_min, \
1692 	RoamScan_ActiveCH_DwellTime_max, \
1693 	RoamScan_ActiveCH_DwellTime_default, \
1694 	CFG_VALUE_OR_DEFAULT, \
1695 	"Neighbor scan channel max time")
1696 
1697 /*
1698  * <ini>
1699  * gNeighborScanRefreshPeriod - Set neighbor scan refresh period
1700  * @Min: 1000
1701  * @Max: 60000
1702  * @Default: 20000
1703  *
1704  * This ini is used by firmware to set scan refresh period
1705  * in msecs for lfr scan.
1706  *
1707  * Related: None
1708  *
1709  * Supported Feature: LFR Scan
1710  *
1711  * Usage: External
1712  *
1713  * </ini>
1714  */
1715 #define CFG_LFR_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD CFG_INI_UINT( \
1716 	"gNeighborScanRefreshPeriod", \
1717 	1000, \
1718 	60000, \
1719 	20000, \
1720 	CFG_VALUE_OR_DEFAULT, \
1721 	"Neighbor scan refresh period")
1722 
1723 /*
1724  * <ini>
1725  * gFullRoamScanPeriod - Set full roam scan refresh period
1726  * @Min: 0
1727  * @Max: 600
1728  * @Default: 0
1729  *
1730  * This ini is used by firmware to set full roam scan period in secs.
1731  * Full roam scan period is the minimum idle period in seconds between two
1732  * successive full channel roam scans. If this is configured as a non-zero,
1733  * full roam scan will be triggered for every configured interval.
1734  * If this configured as 0, full roam scan will not be triggered at all.
1735  *
1736  * Related: None
1737  *
1738  * Supported Feature: LFR Scan
1739  *
1740  * Usage: External
1741  *
1742  * </ini>
1743  */
1744 #define CFG_LFR_FULL_ROAM_SCAN_REFRESH_PERIOD CFG_INI_UINT( \
1745 	"gFullRoamScanPeriod", \
1746 	0, \
1747 	600, \
1748 	0, \
1749 	CFG_VALUE_OR_DEFAULT, \
1750 	"Full roam scan refresh period")
1751 
1752 /*
1753  * <ini>
1754  * gEmptyScanRefreshPeriod - Set empty scan refresh period
1755  * @Min: 0
1756  * @Max: 60000
1757  * @Default: 0
1758  *
1759  * This ini is used by firmware to set scan period in msecs
1760  * following empty scan results.
1761  *
1762  * Related: None
1763  *
1764  * Supported Feature: LFR Scan
1765  *
1766  * Usage: External
1767  *
1768  * </ini>
1769  */
1770 #define CFG_LFR_EMPTY_SCAN_REFRESH_PERIOD CFG_INI_UINT( \
1771 	"gEmptyScanRefreshPeriod", \
1772 	0, \
1773 	60000, \
1774 	0, \
1775 	CFG_VALUE_OR_DEFAULT, \
1776 	"Empty scan refresh period")
1777 
1778  /*
1779   * <ini>
1780   * RoamScan_FirstTimer - Set empty scan refresh period
1781   * @Min: 0
1782   * @Max: 20
1783   * @Default: 10
1784   *
1785   * This ini is used by firmware to set scan period in secs
1786   * following empty scan results.
1787   *
1788   * Related: None
1789   *
1790   * Supported Feature: LFR Scan
1791   *
1792   * Usage: External
1793   *
1794   * </ini>
1795   */
1796 #define CFG_ROAM_SCAN_FIRST_TIMER CFG_INI_UINT( \
1797 	"RoamScan_FirstTimer", \
1798 	0, \
1799 	20, \
1800 	10, \
1801 	CFG_VALUE_OR_DEFAULT, \
1802 	"Empty scan refresh period")
1803 
1804 /*
1805  * <ini>
1806  * gRoamBmissFirstBcnt - Beacon miss count to trigger 1st bmiss event
1807  * @Min: 5
1808  * @Max: 100
1809  * @Default: 10
1810  *
1811  * This ini used to control how many beacon miss will trigger first bmiss
1812  * event. First bmiss event will result in roaming scan.
1813  *
1814  * Related: None
1815  *
1816  * Usage: External
1817  *
1818  * </ini>
1819  */
1820 #define CFG_LFR_ROAM_BMISS_FIRST_BCNT CFG_INI_UINT( \
1821 	"gRoamBmissFirstBcnt", \
1822 	5, \
1823 	100, \
1824 	10, \
1825 	CFG_VALUE_OR_DEFAULT, \
1826 	"First beacon miss count")
1827 
1828 /*
1829  * <ini>
1830  * gRoamBmissFinalBcnt - Beacon miss count to trigger final bmiss event
1831  * @Min: 5
1832  * @Max: 100
1833  * @Default: 20
1834  *
1835  * This ini used to control how many beacon miss will trigger final bmiss
1836  * event. Final bmiss event will make roaming take place or cause the
1837  * indication of final bmiss event.
1838  *
1839  * Related: None
1840  *
1841  * Usage: External
1842  *
1843  * </ini>
1844  */
1845 #define CFG_LFR_ROAM_BMISS_FINAL_BCNT CFG_INI_UINT( \
1846 	"gRoamBmissFinalBcnt", \
1847 	5, \
1848 	100, \
1849 	20, \
1850 	CFG_VALUE_OR_DEFAULT, \
1851 	"Final beacon miss count")
1852 
1853 /*
1854  * <ini>
1855  * BeaconLoss_TimeoutOnWakeUp - Consecutive Beaconloss timeout on wakeup to
1856  * trigger timeout
1857  * @Min: 0
1858  * @Max: 20
1859  * @Default: 3
1860  *
1861  * This ini is used to control the beacon miss timeout when the system is awake.
1862  * On the timeout, BMISS event will be triggered by FW.
1863  * The units of this timeout is in seconds.
1864  *
1865  * Related: None
1866  *
1867  * Usage: External
1868  *
1869  * </ini>
1870  */
1871 
1872 /*
1873  * <ini>
1874  * BeaconLoss_TimeoutOnWakeUp - Consecutive Beaconloss timeout on wakeup to
1875  * trigger timeout
1876  * @Min: 0
1877  * @Max: 20
1878  * @Default: 6
1879  *
1880  * This ini is used to control the beacon miss timeout when the system is awake.
1881  * On the timeout, BMISS event will be triggered by FW.
1882  * The units of this timeout is in seconds.
1883  *
1884  * Related: None
1885  *
1886  * Usage: External
1887  *
1888  * </ini>
1889  */
1890 #define CFG_LFR_BEACONLOSS_TIMEOUT_ON_WAKEUP CFG_INI_UINT( \
1891 	"ConBeaconLoss_TimeoutOnWakeUp", \
1892 	CONBEACONLOSS_TIMEOUTONWAKEUP_MIN, \
1893 	CONBEACONLOSS_TIMEOUTONWAKEUP_MAX, \
1894 	CONBEACONLOSS_TIMEOUTONWAKEUP_DEFAULT, \
1895 	CFG_VALUE_OR_DEFAULT, \
1896 	"ConBeaconloss timeout on wakeup")
1897 
1898 /*
1899  * <ini>
1900  * BeaconLoss_TimeoutOnSleep - Consecutive Beaconloss timeout on sleep to
1901  * trigger timeout
1902  * @Min: 0
1903  * @Max: 20
1904  * @Default: 5
1905  *
1906  * This ini is used to control the beacon miss timeout
1907  * when the system is in sleep.
1908  * On the timeout, BMISS event will be triggered by FW.
1909  * The units of this timeout is in seconds.
1910  *
1911  * Related: None
1912  *
1913  * Usage: External
1914  *
1915  * </ini>
1916  */
1917 
1918 /*
1919  * <ini>
1920  * BeaconLoss_TimeoutOnSleep - Consecutive Beaconloss timeout on sleep to
1921  * trigger timeout
1922  * @Min: 0
1923  * @Max: 20
1924  * @Default: 10
1925  *
1926  * This ini is used to control the beacon miss timeout
1927  * when the system is in sleep.
1928  * On the timeout, BMISS event will be triggered by FW.
1929  * The units of this timeout is in seconds.
1930  *
1931  * Related: None
1932  *
1933  * Usage: External
1934  *
1935  * </ini>
1936  */
1937 #define CFG_LFR_BEACONLOSS_TIMEOUT_ON_SLEEP CFG_INI_UINT( \
1938 	"ConBeaconLoss_TimeoutOnSleep", \
1939 	CONBEACONLOSS_TIMEOUTONSLEEP_MIN, \
1940 	CONBEACONLOSS_TIMEOUTONSLEEP_MAX, \
1941 	CONBEACONLOSS_TIMEOUTONSLEEP_DEFAULT, \
1942 	CFG_VALUE_OR_DEFAULT, \
1943 	"ConBeaconloss timeout on sleep")
1944 
1945 /*
1946  * <ini>
1947  * gAllowDFSChannelRoam - Allow dfs channel in roam
1948  * @Min: 0
1949  * @Max: 2
1950  * @Default: 1
1951  *
1952  * This ini is used to set default dfs channel
1953  *
1954  * Related: None
1955  *
1956  * Supported Feature: STA
1957  *
1958  * Usage: Internal/External
1959  *
1960  * </ini>
1961  */
1962 #define CFG_LFR_ROAMING_DFS_CHANNEL CFG_INI_UINT( \
1963 	"gAllowDFSChannelRoam", \
1964 	0, \
1965 	2, \
1966 	1, \
1967 	CFG_VALUE_OR_DEFAULT, \
1968 	"Allow dfs channel in roam")
1969 
1970 /*
1971  * <ini>
1972  * gRoamScanHiRssiMaxCount - Sets 5GHz maximum scan count
1973  * @Min: 0
1974  * @Max: 10
1975  * @Default: 3
1976  *
1977  * This INI is used to set maximum scan count in 5GHz
1978  *
1979  * Related: None
1980  *
1981  * Supported Feature: Roaming
1982  *
1983  * Usage: External
1984  *
1985  * </ini>
1986  */
1987 #define CFG_LFR_ROAM_SCAN_HI_RSSI_MAXCOUNT CFG_INI_UINT( \
1988 	"gRoamScanHiRssiMaxCount", \
1989 	0, \
1990 	10, \
1991 	3, \
1992 	CFG_VALUE_OR_DEFAULT, \
1993 	"5GHz maximum scan count")
1994 
1995 /*
1996  * <ini>
1997  * gRoamScanHiRssiDelta - Sets RSSI Delta for scan trigger
1998  * @Min: 0
1999  * @Max: 40
2000  * @Default: 23
2001  *
2002  * This INI is used to set change in RSSI at which scan is triggered
2003  * in 5GHz.
2004  *
2005  * Related: None
2006  *
2007  * Supported Feature: Roaming
2008  *
2009  * Usage: External
2010  *
2011  * </ini>
2012  */
2013 #define CFG_LFR_ROAM_SCAN_HI_RSSI_DELTA CFG_INI_UINT( \
2014 	"gRoamScanHiRssiDelta", \
2015 	0, \
2016 	40, \
2017 	23, \
2018 	CFG_VALUE_OR_DEFAULT, \
2019 	"RSSI Delta for scan trigger")
2020 
2021 /*
2022  * <ini>
2023  * gRoamScanHiRssiDelay - Sets minimum delay between 5GHz scans
2024  * @Min: 5000
2025  * @Max: 0x7fffffff
2026  * @Default: 15000
2027  *
2028  * This INI is used to set the minimum delay between 5GHz scans.
2029  *
2030  * Related: None
2031  *
2032  * Supported Feature: Roaming
2033  *
2034  * Usage: External
2035  *
2036  * </ini>
2037  */
2038 #define CFG_LFR_ROAM_SCAN_HI_RSSI_DELAY CFG_INI_UINT( \
2039 	"gRoamScanHiRssiDelay", \
2040 	5000, \
2041 	0x7fffffff, \
2042 	15000, \
2043 	CFG_VALUE_OR_DEFAULT, \
2044 	"Minimum delay between 5GHz scans")
2045 
2046 /*
2047  * <ini>
2048  * gRoamScanHiRssiUpperBound - Sets upper bound after which 5GHz scan
2049  * @Min: -66
2050  * @Max: 0
2051  * @Default: -30
2052  *
2053  * This INI is used to set the RSSI upper bound above which the 5GHz scan
2054  * will not be performed.
2055  *
2056  * Related: None
2057  *
2058  * Supported Feature: Roaming
2059  *
2060  * Usage: External
2061  *
2062  * </ini>
2063  */
2064 #define CFG_LFR_ROAM_SCAN_HI_RSSI_UB CFG_INI_INT( \
2065 	"gRoamScanHiRssiUpperBound", \
2066 	-66, \
2067 	0, \
2068 	-30, \
2069 	CFG_VALUE_OR_DEFAULT, \
2070 	"Upper bound after which 5GHz scan")
2071 
2072 /*
2073  * <ini>
2074  * gRoamPrefer5GHz - Prefer roaming to 5GHz Bss
2075  * @Min: 0
2076  * @Max: 1
2077  * @Default: 1
2078  *
2079  * This ini is used to inform FW to prefer roaming to 5GHz BSS
2080  *
2081  * Related: None
2082  *
2083  * Supported Feature: Roaming
2084  *
2085  * Usage: External
2086  *
2087  * </ini>
2088  */
2089 #define CFG_LFR_ROAM_PREFER_5GHZ CFG_INI_BOOL( \
2090 	"gRoamPrefer5GHz", \
2091 	1, \
2092 	"Prefer roaming to 5GHz Bss")
2093 
2094 /*
2095  * <ini>
2096  * gRoamIntraBand - Prefer roaming within Band
2097  * @Min: 0
2098  * @Max: 1
2099  * @Default: 0
2100  *
2101  * This ini is used to inform FW to prefer roaming within band
2102  *
2103  * Related: None
2104  *
2105  * Supported Feature: Roaming
2106  *
2107  * Usage: External
2108  *
2109  * </ini>
2110  */
2111 #define CFG_LFR_ROAM_INTRA_BAND CFG_INI_BOOL( \
2112 	"gRoamIntraBand", \
2113 	0, \
2114 	"Prefer roaming within Band")
2115 
2116 /*
2117  * <ini>
2118  * gRoamScanNProbes - Sets the number of probes to be sent for firmware roaming
2119  * @Min: 1
2120  * @Max: 10
2121  * @Default: 2
2122  *
2123  * This INI is used to set the maximum number of probes the firmware can send
2124  * for firmware internal roaming cases.
2125  *
2126  * Related: None
2127  *
2128  * Supported Feature: Roaming
2129  *
2130  * Usage: External
2131  *
2132  * </ini>
2133  */
2134 #define CFG_LFR_ROAM_SCAN_N_PROBES CFG_INI_UINT( \
2135 	"gRoamScanNProbes", \
2136 	1, \
2137 	10, \
2138 	2, \
2139 	CFG_VALUE_OR_DEFAULT, \
2140 	"The number of probes to be sent for firmware roaming")
2141 
2142 /*
2143  * <ini>
2144  * gRoamScanHomeAwayTime/RoamScan_AwayTime - Sets the Home Away Time to firmware
2145  * @Min: 0
2146  * @Max: 300
2147  * @Default: 0
2148  *
2149  * Home Away Time should be at least equal to (gNeighborScanChannelMaxTime
2150  * + (2*RFS)), where RFS is the RF Switching time(3). It is twice RFS
2151  * to consider the time to go off channel and return to the home channel.
2152  *
2153  * Related: gNeighborScanChannelMaxTime
2154  *
2155  * Supported Feature: Roaming
2156  *
2157  * Usage: External
2158  *
2159  * </ini>
2160  */
2161 #define CFG_LFR_ROAM_SCAN_HOME_AWAY_TIME CFG_INI_UINT( \
2162 	"gRoamScanHomeAwayTime RoamScan_AwayTime", \
2163 	RoamScan_AwayTime_min, \
2164 	RoamScan_AwayTime_max, \
2165 	RoamScan_AwayTime_default, \
2166 	CFG_VALUE_OR_DEFAULT, \
2167 	"the home away time to firmware")
2168 
2169 /*
2170  * <ini>
2171  * gDelayBeforeVdevStop - wait time for tx complete before vdev stop
2172  * @Min: 2
2173  * @Max: 200
2174  * @Default: 20
2175  *
2176  * This INI is used to set wait time for tx complete before vdev stop.
2177  *
2178  * Related: None
2179  *
2180  * Usage: External
2181  *
2182  * </ini>
2183  */
2184 #define CFG_LFR_DELAY_BEFORE_VDEV_STOP CFG_INI_UINT( \
2185 	"gDelayBeforeVdevStop", \
2186 	2, \
2187 	200, \
2188 	20, \
2189 	CFG_VALUE_OR_DEFAULT, \
2190 	"wait time for tx complete before vdev stop")
2191 /*
2192  * <ini>
2193  * enable_bss_load_roam_trigger - enable/disable bss load based roam trigger
2194  * @Min: 0
2195  * @Max: 1
2196  * @Default: 0
2197  *
2198  * This ini when enabled, allows the firmware to roam when bss load outpaces
2199  * the configured bss load threshold. When this ini is disabled, firmware
2200  * doesn't consider bss load values to trigger roam.
2201  *
2202  * Related: None
2203  *
2204  * Supported Feature: Roaming
2205  *
2206  * Usage: External
2207  *
2208  * </ini>
2209  */
2210 #define CFG_ENABLE_BSS_LOAD_TRIGGERED_ROAM CFG_INI_BOOL( \
2211 			"enable_bss_load_roam_trigger", \
2212 			0, \
2213 			"enable bss load triggered roaming")
2214 
2215 /*
2216  * <ini>
2217  * bss_load_threshold/RoamCU_Trigger - bss load above which the STA should
2218  * trigger roaming
2219  * @Min: 0
2220  * @Max: 100
2221  * @Default: 70
2222  *
2223  * When the bss load value that is sampled exceeds this threshold, firmware
2224  * will trigger roaming if bss load trigger is enabled.
2225  *
2226  * Related: None
2227  *
2228  * Supported Feature: Roaming
2229  *
2230  * Usage: External
2231  *
2232  * </ini>
2233  */
2234 #define CFG_BSS_LOAD_THRESHOLD CFG_INI_UINT( \
2235 		"bss_load_threshold RoamCU_Trigger", \
2236 		RoamCU_Trigger_min, \
2237 		RoamCU_Trigger_max, \
2238 		RoamCU_Trigger_default, \
2239 		CFG_VALUE_OR_DEFAULT, \
2240 		"bss load threshold")
2241 
2242 /*
2243  * <ini>
2244  * bss_load_sample_time - Time in milliseconds for which the bss load values
2245  * obtained from the beacons is sampled.
2246  * @Min: 0
2247  * @Max: 0xffffffff
2248  * @Default: 10000
2249  *
2250  * Related: None
2251  *
2252  * Supported Feature: Roaming
2253  *
2254  * Usage: External
2255  *
2256  * </ini>
2257  */
2258 #define CFG_BSS_LOAD_SAMPLE_TIME CFG_INI_UINT( \
2259 			"bss_load_sample_time", \
2260 			0, \
2261 			0xffffffff, \
2262 			10000, \
2263 			CFG_VALUE_OR_DEFAULT, \
2264 			"bss load sampling time")
2265 
2266 /*
2267  * <ini>
2268  * RoamCU_MonitorTime - Time in seconds for which the bss load values
2269  * obtained from the beacons is sampled.
2270  * @Min: 0
2271  * @Max: 20
2272  * @Default: 10
2273  *
2274  * Related: None
2275  *
2276  * Supported Feature: Roaming
2277  *
2278  * Usage: External
2279  *
2280  * </ini>
2281  */
2282 #define CFG_ROAM_CU_MONITOR_TIME CFG_INI_UINT( \
2283 			"RoamCU_MonitorTime", \
2284 			0, \
2285 			20, \
2286 			10, \
2287 			CFG_VALUE_OR_DEFAULT, \
2288 			"bss load sampling time")
2289 
2290 /*
2291  * <ini>
2292  * bss_load_trigger_6g_rssi_threshold/RoamCU_6GRSSIRange -
2293  * Current AP minimum RSSI in dBm below
2294  * which roaming can be triggered if BSS load exceeds bss_load_threshold.
2295  * @Min: -120
2296  * @Max: 0
2297  * @Default: -70
2298  *
2299  * If connected AP is in 6Ghz, then consider bss load roam triggered only if
2300  * load % > bss_load_threshold && connected AP rssi is worse than
2301  * bss_load_trigger_6g_rssi_threshold
2302  *
2303  * Related: "bss_load_threshold"
2304  *
2305  * Supported Feature: Roaming
2306  *
2307  * Usage: Internal/External
2308  *
2309  * </ini>
2310  */
2311 
2312 /*
2313  * <ini>
2314  * bss_load_trigger_6g_rssi_threshold/RoamCU_6GRSSIRange -
2315  * Current AP minimum RSSI in dBm below
2316  * which roaming can be triggered if BSS load exceeds bss_load_threshold.
2317  * @Min: -70
2318  * @Max: -50
2319  * @Default: -70
2320  *
2321  * If connected AP is in 6Ghz, then consider bss load roam triggered only if
2322  * load % > bss_load_threshold && connected AP rssi is worse than
2323  * bss_load_trigger_6g_rssi_threshold
2324  *
2325  * Related: "bss_load_threshold"
2326  *
2327  * Supported Feature: Roaming
2328  *
2329  * Usage: Internal/External
2330  *
2331  * </ini>
2332  */
2333 #define CFG_BSS_LOAD_TRIG_6G_RSSI_THRES CFG_INI_INT( \
2334 	"bss_load_trigger_6g_rssi_threshold RoamCU_6GRSSIRange", \
2335 	ROAMCU_6GRSSIRANGE_MIN, \
2336 	ROAMCU_6GRSSIRANGE_MAX, \
2337 	ROAMCU_6GRSSIRANGE_DEFAULT, \
2338 	CFG_VALUE_OR_DEFAULT, \
2339 	"Minimum RSSI of current AP in 6GHz band for BSS load roam trigger")
2340 
2341 /*
2342  * <ini>
2343  * bss_load_trigger_5g_rssi_threshold/RoamCU_5GRSSIRange -
2344  * Current AP minimum RSSI in dBm below
2345  * which roaming can be triggered if BSS load exceeds bss_load_threshold.
2346  * @Min: -120
2347  * @Max: 0
2348  * @Default: -70
2349  *
2350  * If connected AP is in 5Ghz, then consider bss load roam triggered only if
2351  * load % > bss_load_threshold && connected AP rssi is worse than
2352  * bss_load_trigger_5g_rssi_threshold
2353  *
2354  * Related: "bss_load_threshold"
2355  *
2356  * Supported Feature: Roaming
2357  *
2358  * Usage: Internal/External
2359  *
2360  * </ini>
2361  */
2362 #define CFG_BSS_LOAD_TRIG_5G_RSSI_THRES CFG_INI_INT( \
2363 	"bss_load_trigger_5g_rssi_threshold RoamCU_5GRSSIRange", \
2364 	RoamCU_5GRSSIRange_min, \
2365 	RoamCU_5GRSSIRange_max, \
2366 	RoamCU_5GRSSIRange_default, \
2367 	CFG_VALUE_OR_DEFAULT, \
2368 	"Minimum RSSI of current AP in 5GHz band for BSS load roam trigger")
2369 
2370 /*
2371  * <ini>
2372  * bss_load_trigger_2g_rssi_threshold/RoamCU_24GRSSIRange -
2373  * Current AP minimum RSSI in dBm below
2374  * which roaming can be triggered if BSS load exceeds bss_load_threshold.
2375  * @Min: -120
2376  * @Max: 0
2377  * @Default: -60
2378  *
2379  * If connected AP is in 2Ghz, then consider bss load roam triggered only if
2380  * load % > bss_load_threshold && connected AP rssi is worse than
2381  * bss_load_trigger_2g_rssi_threshold.
2382  *
2383  * Related: "bss_load_threshold"
2384  *
2385  * Supported Feature: Roaming
2386  *
2387  * Usage: Internal/External
2388  *
2389  * </ini>
2390  */
2391 #define CFG_BSS_LOAD_TRIG_2G_RSSI_THRES CFG_INI_INT( \
2392 	"bss_load_trigger_2g_rssi_threshold RoamCU_24GRSSIRange", \
2393 	RoamCU_24GRSSIRange_min, \
2394 	RoamCU_24GRSSIRange_max, \
2395 	RoamCU_24GRSSIRange_default, \
2396 	CFG_VALUE_OR_DEFAULT, \
2397 	"Minimum RSSI of current AP in 2.4GHz band for BSS load roam trigger")
2398 
2399 /*
2400  * <ini>
2401  * ho_delay_for_rx - Delay hand-off (in msec) by this duration to receive
2402  * pending rx frames from current BSS
2403  * @Min: 0
2404  * @Max: 200
2405  * @Default: 0
2406  *
2407  * For LFR 3.0 roaming scenario, once roam candidate is found, firmware
2408  * waits for minimum this much duration to receive pending rx frames from
2409  * current BSS before switching to new channel for handoff to new AP.
2410  *
2411  * Related: None
2412  *
2413  * Supported Feature: Roaming
2414  *
2415  * Usage: External
2416  *
2417  * </ini>
2418  */
2419 #define CFG_LFR3_ROAM_HO_DELAY_FOR_RX CFG_INI_UINT( \
2420 	"ho_delay_for_rx", \
2421 	0, \
2422 	200, \
2423 	0, \
2424 	CFG_VALUE_OR_DEFAULT, \
2425 	"Delay Hand-off by this duration to receive")
2426 
2427 /*
2428  * <ini>
2429  * min_delay_btw_roam_scans - Min duration (in sec) allowed btw two
2430  * consecutive roam scans
2431  * @Min: 0
2432  * @Max: 60
2433  * @Default: 10
2434  *
2435  * Roam scan is not allowed if duration between two consecutive
2436  * roam scans is less than this time.
2437  *
2438  * Related: None
2439  *
2440  * Supported Feature: Roaming
2441  *
2442  * Usage: External
2443  *
2444  * </ini>
2445  */
2446 #define CFG_LFR_MIN_DELAY_BTW_ROAM_SCAN CFG_INI_UINT( \
2447 	"min_delay_btw_roam_scans", \
2448 	0, \
2449 	60, \
2450 	10, \
2451 	CFG_VALUE_OR_DEFAULT, \
2452 	"Min duration")
2453 
2454 /*
2455  * <ini>
2456  * roam_trigger_reason_bitmask - Contains roam_trigger_reasons
2457  * @Min: 0
2458  * @Max: 0xFFFFFFFF
2459  * @Default: 0x10DA
2460  *
2461  * Bitmask containing roam_trigger_reasons for which
2462  * min_delay_btw_roam_scans constraint should be applied.
2463  * Currently supported bit positions are as follows:
2464  * Bit 0 is reserved in the firmware.
2465  * WMI_ROAM_TRIGGER_REASON_PER - 1
2466  * WMI_ROAM_TRIGGER_REASON_BMISS - 2
2467  * WMI_ROAM_TRIGGER_REASON_LOW_RSSI - 3
2468  * WMI_ROAM_TRIGGER_REASON_HIGH_RSSI - 4
2469  * WMI_ROAM_TRIGGER_REASON_PERIODIC - 5
2470  * WMI_ROAM_TRIGGER_REASON_MAWC - 6
2471  * WMI_ROAM_TRIGGER_REASON_DENSE - 7
2472  * WMI_ROAM_TRIGGER_REASON_BACKGROUND - 8
2473  * WMI_ROAM_TRIGGER_REASON_FORCED - 9
2474  * WMI_ROAM_TRIGGER_REASON_BTM - 10
2475  * WMI_ROAM_TRIGGER_REASON_UNIT_TEST - 11
2476  * WMI_ROAM_TRIGGER_REASON_BSS_LOAD - 12
2477  * WMI_ROAM_TRIGGER_REASON_DEAUTH - 13
2478  * WMI_ROAM_TRIGGER_REASON_IDLE - 14
2479  * WMI_ROAM_TRIGGER_REASON_MAX - 15
2480  *
2481  * For Ex: 0xDA (PER, LOW_RSSI, HIGH_RSSI, MAWC, DENSE)
2482  *
2483  * Related: None
2484  *
2485  * Supported Feature: Roaming
2486  *
2487  * Usage: External
2488  *
2489  * </ini>
2490  */
2491 #define CFG_LFR_ROAM_SCAN_TRIGGER_REASON_BITMASK CFG_INI_UINT( \
2492 	"roam_trigger_reason_bitmask", \
2493 	0, \
2494 	0xFFFFFFFF, \
2495 	0x10DA, \
2496 	CFG_VALUE_OR_DEFAULT, \
2497 	"Contains roam_trigger_reasons")
2498 
2499 /*
2500  * <ini>
2501  * enable_ftopen - enable/disable FT open feature
2502  * @Min: 0
2503  * @Max: 1
2504  * @Default: 1
2505  *
2506  * This INI is used to enable/disable FT open feature
2507  *
2508  * Related: None
2509  *
2510  * Supported Feature: Roaming
2511  *
2512  * Usage: External
2513  *
2514  * </ini>
2515  */
2516 #define CFG_LFR_ROAM_FT_OPEN_ENABLE CFG_INI_BOOL( \
2517 	"enable_ftopen", \
2518 	1, \
2519 	"enable/disable FT open feature")
2520 
2521 /*
2522  * <ini>
2523  * roam_force_rssi_trigger - To force RSSI trigger
2524  * irrespective of channel list type
2525  * @Min: 0
2526  * @Max: 1
2527  * @Default: 1
2528  *
2529  * This ini is used to set roam scan mode
2530  * WMI_ROAM_SCAN_MODE_RSSI_CHANGE, irrespective of whether
2531  * channel list type is CHANNEL_LIST_STATIC or not
2532  *
2533  * Related: None
2534  *
2535  * Supported Feature: Roaming
2536  *
2537  * Usage: External
2538  *
2539  * </ini>
2540  */
2541 #define CFG_LFR_ROAM_FORCE_RSSI_TRIGGER CFG_INI_BOOL( \
2542 	"roam_force_rssi_trigger", \
2543 	1, \
2544 	"To force RSSI trigger")
2545 
2546 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
2547 /*
2548  * <ini>
2549  * gRoamOffloadEnabled - enable/disable roam offload feature
2550  * @Min: 0
2551  * @Max: 1
2552  * @Default: 1
2553  *
2554  * This INI is used to enable/disable roam offload feature
2555  *
2556  * Related: None
2557  *
2558  * Supported Feature: Roaming
2559  *
2560  * Usage: External
2561  *
2562  * </ini>
2563  */
2564 #define CFG_LFR3_ROAMING_OFFLOAD CFG_INI_BOOL( \
2565 	"gRoamOffloadEnabled", \
2566 	1, \
2567 	"enable roam offload")
2568 
2569 /*
2570  * <ini>
2571  * enable_self_bss_roam - enable/disable roaming to self bss
2572  * @Min: 0
2573  * @Max: 1
2574  * @Default: 1
2575  *
2576  * This INI is used to enable/disable roaming to already connected BSSID
2577  *
2578  * Related: None
2579  *
2580  * Supported Feature: Roaming
2581  *
2582  * Usage: Internal
2583  *
2584  * </ini>
2585  */
2586 #define CFG_LFR3_ENABLE_SELF_BSS_ROAM CFG_INI_BOOL( \
2587 	"enable_self_bss_roam", \
2588 	1, \
2589 	"enable self bss roam")
2590 
2591 /*
2592  * <ini>
2593  * enable_disconnect_roam_offload - Enable/Disable emergency roaming during
2594  * deauth/disassoc
2595  * @Min: 0 - Disabled
2596  * @Max: 1 - Enabled
2597  * @Default: 1
2598  *
2599  * When this ini is enabled firmware will trigger roam scan and roam to a new ap
2600  * if candidate is found and it will not send the deauth/disassoc frame to
2601  * the host driver.
2602  * If roaming fails after this deauth, then firmware will send
2603  * WMI_ROAM_REASON_DEAUTH event to the host. If roaming is successful, driver
2604  * follows the normal roam synch event path.
2605  *
2606  * Supported Feature: Roaming
2607  *
2608  * Usage: Internal/External
2609  *
2610  * </ini>
2611  */
2612 #define CFG_LFR_ENABLE_DISCONNECT_ROAM CFG_INI_BOOL( \
2613 	"enable_disconnect_roam_offload", \
2614 	true, \
2615 	"Enable/Disable roaming on deauth/disassoc from AP")
2616 
2617 /*
2618  * <ini>
2619  * enable_idle_roam - Enable/Disable idle roaming
2620  * @Min: 0 - Disabled
2621  * @Max: 1 - Enabled
2622  * @Default: 0
2623  *
2624  * When this ini is enabled firmware will trigger roam scan and roam to a new
2625  * ap if current connected AP rssi falls below the threshold. To consider the
2626  * connection as idle, the following conditions should be met if this ini
2627  * "enable_idle_roam" is enabled:
2628  * 1. User space sends "SET SUSPENDMODE" command with value 0.
2629  * 2. No TX/RX data for idle time configured via ini "idle_roam_inactive_time".
2630  * 3. Connected AP rssi change doesn't exceed a specific delta value.
2631  * (configured via ini idle_roam_rssi_delta)
2632  * 4. Connected AP rssi falls below minimum rssi (configured via ini
2633  * "idle_roam_min_rssi").
2634  *
2635  * Supported Feature: Roaming
2636  *
2637  * Usage: Internal/External
2638  *
2639  * </ini>
2640  */
2641 #define CFG_LFR_ENABLE_IDLE_ROAM CFG_INI_BOOL( \
2642 	"enable_idle_roam", \
2643 	false, \
2644 	"Enable/Disable idle roam")
2645 
2646 /*
2647  * <ini>
2648  * idle_roam_rssi_delta/RoamIdle_RSSIVariation - This threshold is the criteria
2649  * to decide whether DUT is idle or moving. If rssi delta is more than
2650  * configured threshold then its considered as not idle. RSSI delta is entered
2651  *in dBm. Idle roaming can be triggered if the connected AP rssi change exceeds
2652  * or falls below the rssi delta and if other criteria of ini "enable_idle_roam"
2653  * is met
2654  * @Min: 0
2655  * @Max: 50
2656  * @Default: 3
2657  *
2658  * Related: enable_idle_roam
2659  *
2660  * Supported Feature: Roaming
2661  *
2662  * Usage: Internal/External
2663  *
2664  * </ini>
2665  */
2666 #define CFG_LFR_IDLE_ROAM_RSSI_DELTA CFG_INI_UINT( \
2667 	"idle_roam_rssi_delta RoamIdle_RSSIVariation", \
2668 	RoamIdle_RSSIVariation_min, \
2669 	RoamIdle_RSSIVariation_max, \
2670 	RoamIdle_RSSIVariation_default, \
2671 	CFG_VALUE_OR_DEFAULT, \
2672 	"Configure RSSI delta to start idle roam")
2673 
2674 /*
2675  * <ini>
2676  * idle_roam_inactive_time - Time duration in milliseconds for which the
2677  * connection is idle.
2678  * @Min: 0
2679  * @Max: 0xFFFFFFFF
2680  * @Default: 10000
2681  *
2682  * This ini is used to configure the time in seconds for which the connection
2683  * candidate is idle and after which idle roam scan can be triggered if
2684  * other criteria of ini "enable_idle_roam" is met.
2685  *
2686  * Related: enable_idle_roam
2687  *
2688  * Supported Feature: Roaming
2689  *
2690  * Usage: Internal/External
2691  *
2692  * </ini>
2693  */
2694 #define CFG_LFR_IDLE_ROAM_INACTIVE_TIME CFG_INI_UINT( \
2695 	"idle_roam_inactive_time", \
2696 	0, \
2697 	0xFFFFFFFF, \
2698 	10000, \
2699 	CFG_VALUE_OR_DEFAULT, \
2700 	"Configure RSSI delta to start idle roam")
2701 
2702 /*
2703  * <ini>
2704  * RoamIdle_InactiveTime - Time duration in seconds for which the
2705  * connection is idle.
2706  * @Min: 0
2707  * @Max: 20
2708  * @Default: 10
2709  *
2710  * This ini is used to configure the time in seconds for which the connection
2711  * candidate is idle and after which idle roam scan can be triggered if
2712  * other criteria of ini "enable_idle_roam" is met.
2713  *
2714  * Related: enable_idle_roam
2715  *
2716  * Supported Feature: Roaming
2717  *
2718  * Usage: Internal/External
2719  *
2720  * </ini>
2721  */
2722 #define CFG_ROAM_IDLE_INACTIVE_TIME CFG_INI_UINT( \
2723 	"RoamIdle_InactiveTime", \
2724 	0, \
2725 	20, \
2726 	RoamIdle_InactiveTime_default, \
2727 	CFG_VALUE_OR_DEFAULT, \
2728 	"Configure RSSI delta to start idle roam")
2729 
2730 /*
2731  * <ini>
2732  * idle_data_packet_count/RoamIdle_InactivePacketCount - No of tx/rx packets
2733  * above which the connection is not idle.
2734  * @Min: 0
2735  * @Max: 0xFFFFFFFF
2736  * @Default: 10
2737  *
2738  * This ini is used to configure the acceptable number of tx/rx packets below
2739  * which the connection is idle. Ex: If idle_data_packet_count is 10
2740  * and if the tx/rx packet count is less than 10, the connection is
2741  * idle. If there are more than 10 packets, the connection is active one.
2742  *
2743  * Related: enable_idle_roam
2744  *
2745  * Supported Feature: Roaming
2746  *
2747  * Usage: Internal/External
2748  *
2749  * </ini>
2750  */
2751 #define CFG_LFR_IDLE_ROAM_PACKET_COUNT CFG_INI_UINT( \
2752 	"idle_data_packet_count RoamIdle_InactivePacketCount", \
2753 	RoamIdle_InactivePacketCount_min, \
2754 	RoamIdle_InactivePacketCount_max, \
2755 	RoamIdle_InactivePacketCount_default, \
2756 	CFG_VALUE_OR_DEFAULT, \
2757 	"Configure idle packet count")
2758 
2759 /*
2760  * <ini>
2761  * idle_roam_min_rssi/RoamIdle_MinRSSI - Minimum RSSI of connected AP, below
2762  * which idle roam scan can be triggered if other criteria of ini
2763  * "enable_idle_roam" is met.
2764  * @Min: -96
2765  * @Max: 0
2766  * @Default: -65
2767  *
2768  * Related: enable_idle_roam
2769  *
2770  * Supported Feature: Roaming
2771  *
2772  * Usage: Internal/External
2773  *
2774  * </ini>
2775  */
2776 #define CFG_LFR_IDLE_ROAM_MIN_RSSI CFG_INI_INT( \
2777 	"idle_roam_min_rssi RoamIdle_MinRSSI", \
2778 	RoamIdle_MinRSSI_min, \
2779 	RoamIdle_MinRSSI_max, \
2780 	RoamIdle_MinRSSI_default, \
2781 	CFG_VALUE_OR_DEFAULT, \
2782 	"Configure idle roam minimum RSSI")
2783 
2784 /*
2785  * <ini>
2786  * idle_roam_band/RoamIdle_TriggerBand - Band on which idle roam scan will be
2787  * enabled
2788  * @Min: 0
2789  * @Max: 2
2790  * @Default: 0
2791  *
2792  * Value 0 - Allow idle roam on both bands
2793  * Value 1 - Allow idle roam only on 2G band
2794  * Value 2 - Allow idle roam only on 5G band
2795  *
2796  * Related: enable_idle_roam
2797  *
2798  * Supported Feature: Roaming
2799  *
2800  * Usage: Internal/External
2801  *
2802  * </ini>
2803  */
2804 #define CFG_LFR_IDLE_ROAM_BAND CFG_INI_UINT( \
2805 	"idle_roam_band RoamIdle_TriggerBand", \
2806 	RoamIdle_TriggerBand_min, \
2807 	RoamIdle_TriggerBand_max, \
2808 	RoamIdle_TriggerBand_default, \
2809 	CFG_VALUE_OR_DEFAULT, \
2810 	"Band on which idle roam needs to be enabled")
2811 
2812 /*
2813  * <ini>
2814  * roam_triggers - Bitmap of roaming triggers. Setting this to
2815  * zero will disable roaming altogether for the STA interface.
2816  * ESS report element of beacon explores BSS information, for roaming station
2817  * uses it to consider next AP to roam. ROAM_TRIGGER_REASON_ESS_RSSI bit is
2818  * to enable/disable roam trigger for ESS RSSI reason. This bit of ini is also
2819  * used for WFA certification.
2820  * @Min: 0
2821  * @Max: 0xFFFFFFFF
2822  * @Default: 0x3FFFF
2823  *
2824  * ROAM_TRIGGER_REASON_PER         BIT 1
2825  * ROAM_TRIGGER_REASON_BMISS       BIT 2
2826  * ROAM_TRIGGER_REASON_LOW_RSSI    BIT 3
2827  * ROAM_TRIGGER_REASON_HIGH_RSSI   BIT 4
2828  * ROAM_TRIGGER_REASON_PERIODIC    BIT 5
2829  * ROAM_TRIGGER_REASON_MAWC        BIT 6
2830  * ROAM_TRIGGER_REASON_DENSE       BIT 7
2831  * ROAM_TRIGGER_REASON_BACKGROUND  BIT 8
2832  * ROAM_TRIGGER_REASON_FORCED      BIT 9
2833  * ROAM_TRIGGER_REASON_BTM         BIT 10
2834  * ROAM_TRIGGER_REASON_UNIT_TEST   BIT 11
2835  * ROAM_TRIGGER_REASON_BSS_LOAD    BIT 12
2836  * ROAM_TRIGGER_REASON_DEAUTH      BIT 13
2837  * ROAM_TRIGGER_REASON_IDLE        BIT 14
2838  * ROAM_TRIGGER_REASON_STA_KICKOUT BIT 15
2839  * ROAM_TRIGGER_REASON_ESS_RSSI    BIT 16
2840  * ROAM_TRIGGER_REASON_WTC_BTM     BIT 17
2841  * ROAM_TRIGGER_REASON_PMK_TIMEOUT BIT 18
2842  * ROAM_TRIGGER_REASON_BTC         BIT 19
2843  * ROAM_TRIGGER_REASON_MAX         BIT 20
2844  *
2845  * Related: none
2846  *
2847  * Supported Feature: Roaming
2848  *
2849  * Usage: External
2850  *
2851  * </ini>
2852  */
2853 #define CFG_ROAM_TRIGGER_BITMAP CFG_INI_UINT( \
2854 			"roam_triggers", \
2855 			0, \
2856 			0xFFFFFFFF, \
2857 			0x7FFFF, \
2858 			CFG_VALUE_OR_DEFAULT, \
2859 			"Bitmap of roaming triggers")
2860 
2861 /*
2862  * <ini>
2863  * sta_disable_roam - Disable Roam on sta interface
2864  * @Min: 0 - Roam Enabled on sta interface
2865  * @Max: 0xffffffff - Roam Disabled on sta interface irrespective
2866  * of other interface connections
2867  * @Default: 0x00
2868  *
2869  * Disable roaming on STA iface to avoid audio glitches on p2p and ndp if
2870  * those are in connected state. Each bit for "sta_disable_roam" INI represents
2871  * an interface for which sta roaming can be disabled.
2872  *
2873  * LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
2874  * LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)
2875  *
2876  * Related: None.
2877  *
2878  * Supported Feature: ROAM
2879  *
2880  * Usage: Internal
2881  *
2882  * </ini>
2883  */
2884 #define CFG_STA_DISABLE_ROAM CFG_INI_UINT( \
2885 		"sta_disable_roam", \
2886 		0, \
2887 		0xffffffff, \
2888 		0x00, \
2889 		CFG_VALUE_OR_DEFAULT, \
2890 		"disable roam on STA iface if one of the iface mentioned in default is in connected state")
2891 
2892 /*
2893  * <ini>
2894  * enable_dual_sta_roam_offload - Enable roaming offload on both interfaces
2895  * for STA + STA
2896  * @Min: 0 - Dual STA Roam offload Disabled
2897  * @Max: 1 - Dual STA Roam offload Enabled
2898  * @Default: 1
2899  *
2900  * Enabling this ini will:
2901  *  a) Enforce the STA + STA connection be DBS if the hw is capable.
2902  *  b) Enable Roam Scan Offload on both the STA vdev.
2903  *  c) Enable firmware to support sequential roaming on both STA vdev
2904  *     if the firmware is capable of dual sta roaming.
2905  *
2906  * Related: None.
2907  *
2908  * Supported Feature: ROAM
2909  *
2910  * Usage: External
2911  *
2912  * </ini>
2913  */
2914 #define CFG_ENABLE_DUAL_STA_ROAM_OFFLOAD CFG_INI_UINT( \
2915 		"enable_dual_sta_roam_offload", \
2916 		false, \
2917 		true, \
2918 		true, \
2919 		CFG_VALUE_OR_DEFAULT, \
2920 		"Enable roam on both STA vdev")
2921 
2922 #define ROAM_OFFLOAD_ALL \
2923 	CFG(CFG_LFR3_ROAMING_OFFLOAD) \
2924 	CFG(CFG_LFR3_ENABLE_SELF_BSS_ROAM) \
2925 	CFG(CFG_LFR_ENABLE_DISCONNECT_ROAM) \
2926 	CFG(CFG_LFR_ENABLE_IDLE_ROAM) \
2927 	CFG(CFG_LFR_IDLE_ROAM_RSSI_DELTA) \
2928 	CFG(CFG_LFR_IDLE_ROAM_INACTIVE_TIME) \
2929 	CFG(CFG_ROAM_IDLE_INACTIVE_TIME) \
2930 	CFG(CFG_LFR_IDLE_ROAM_PACKET_COUNT) \
2931 	CFG(CFG_LFR_IDLE_ROAM_MIN_RSSI) \
2932 	CFG(CFG_LFR_IDLE_ROAM_BAND) \
2933 	CFG(CFG_ROAM_TRIGGER_BITMAP) \
2934 	CFG(CFG_STA_DISABLE_ROAM) \
2935 	CFG(CFG_ENABLE_DUAL_STA_ROAM_OFFLOAD) \
2936 
2937 #else
2938 #define ROAM_OFFLOAD_ALL
2939 #endif
2940 
2941 #ifdef FEATURE_WLAN_ESE
2942 /*
2943  * <ini>
2944  * EseEnabled - Enable ESE feature
2945  * @Min: 0
2946  * @Max: 1
2947  * @Default: 0
2948  *
2949  * This ini is used to enable/disable ESE feature
2950  *
2951  * Related: None
2952  *
2953  * Supported Feature: Roaming
2954  *
2955  * Usage: External
2956  *
2957  * </ini>
2958  */
2959 #define CFG_LFR_ESE_FEATURE_ENABLED CFG_INI_BOOL( \
2960 	"EseEnabled", \
2961 	0, \
2962 	"Enable ESE")
2963 #define LFR_ESE_ALL CFG(CFG_LFR_ESE_FEATURE_ENABLED)
2964 #else
2965 #define LFR_ESE_ALL
2966 #endif
2967 
2968 #ifdef FEATURE_LFR_SUBNET_DETECTION
2969 /*
2970  * <ini>
2971  * gLFRSubnetDetectionEnable - Enable LFR3 subnet detection
2972  * @Min: 0
2973  * @Max: 1
2974  * @Default: 1
2975  *
2976  * Enable IP subnet detection during legacy fast roming version 3. Legacy fast
2977  * roaming could roam across IP subnets without host processors' knowledge.
2978  * This feature enables firmware to wake up the host processor if it
2979  * successfully determines change in the IP subnet. Change in IP subnet could
2980  * potentially cause disruption in IP connnectivity if IP address is not
2981  * refreshed.
2982  *
2983  * Related: None
2984  *
2985  * Supported Feature: Roaming
2986  *
2987  * Usage: External
2988  *
2989  * </ini>
2990  */
2991 #define CFG_LFR3_ENABLE_SUBNET_DETECTION CFG_INI_BOOL( \
2992 	"gLFRSubnetDetectionEnable", \
2993 	1, \
2994 	"Enable LFR3 subnet detection")
2995 
2996 #define LFR_SUBNET_DETECTION_ALL CFG(CFG_LFR3_ENABLE_SUBNET_DETECTION)
2997 #else
2998 #define LFR_SUBNET_DETECTION_ALL
2999 #endif
3000 
3001 #if defined(WLAN_SAE_SINGLE_PMK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
3002 /*
3003  * <ini>
3004  * sae_single_pmk_feature_enabled - Enable/disable sae single pmk feature.
3005  * @Min: 0
3006  * @Max: 1
3007  * @Default: 1
3008  *
3009  * This INI is to enable/disable SAE Roaming with same PMK/PMKID feature support
3010  *
3011  * Related: None.
3012  *
3013  * Supported Feature: Roaming
3014  *
3015  * Usage: Internal
3016  *
3017  * </ini>
3018  */
3019 #define CFG_SAE_SINGLE_PMK CFG_INI_BOOL( \
3020 		"sae_single_pmk_feature_enabled", \
3021 		true, \
3022 		"Enable/disable SAE Roaming with single PMK/PMKID")
3023 
3024 #define SAE_SINGLE_PMK_ALL CFG(CFG_SAE_SINGLE_PMK)
3025 #else
3026 #define SAE_SINGLE_PMK_ALL
3027 #endif
3028 
3029 #ifdef WLAN_ADAPTIVE_11R
3030 /*
3031  * <ini>
3032  * adaptive_11r - Enable/disable adaptive 11r feature.
3033  * @Min: 0
3034  * @Max: 1
3035  * @Default: 0
3036  *
3037  * Adaptive 11r feature enables the AP to support FT-AKM without
3038  * configuring the FT-AKM in the network. The AP will advertise non-FT akm
3039  * with a vendor specific IE having Adaptive 11r bit set to 1 in the IE data.
3040  * The AP also advertises the MDE in beacon/probe response.
3041  *
3042  * STA should check the adaptive 11r capability if the AP advertises MDE in
3043  * beacon/probe and adaptive 11r capability in vendor specific IE.  If adaptive
3044  * 11r capability is found, STA can advertise the FT equivalent of the non-FT
3045  * AKM and connect with 11r protocol.
3046  *
3047  * Related: None.
3048  *
3049  * Supported Feature: Fast BSS Transition
3050  *
3051  * Usage: External
3052  *
3053  * </ini>
3054  */
3055 #define CFG_ADAPTIVE_11R CFG_INI_BOOL( \
3056 		"enable_adaptive_11r", \
3057 		false, \
3058 		"Enable/disable adaptive 11r support")
3059 
3060 #define ADAPTIVE_11R_ALL CFG(CFG_ADAPTIVE_11R)
3061 #else
3062 #define ADAPTIVE_11R_ALL
3063 #endif
3064 
3065 /*
3066  * <ini>
3067  * roaming_scan_policy - To config roaming scan policy
3068  * @Min: 0
3069  * @Max: 1
3070  * @Default: 0
3071  *
3072  * This ini is used to configure roaming scan behavior from HOST
3073  * 0 : DBS scan
3074  * 1 : Non-DBS scan
3075  *
3076  * Related: None
3077  *
3078  * Supported Feature: Roaming
3079  *
3080  * Usage: External
3081  *
3082  * </ini>
3083  */
3084 #define CFG_ROAM_SCAN_SCAN_POLICY CFG_INI_BOOL( \
3085 		"roaming_scan_policy", \
3086 		0, \
3087 		"Config roam scan policy")
3088 
3089 /*
3090  * <ini>
3091  * enable_ft_im_roaming - FW needs to perform FT initial moiblity association
3092  * instead of FT roaming for deauth roam trigger
3093  * @Min: 0
3094  * @Max: 1
3095  * @Default: 1
3096  *
3097  * This ini is used to FT roaming for deauth roam trigger behavior from HOST
3098  * 0 - To disable FT-IM
3099  * 1 - To enable FT-IM
3100  *
3101  * Related: None
3102  *
3103  * Supported Feature: Roaming
3104  *
3105  * Usage: Internal
3106  *
3107  * </ini>
3108  */
3109 #define CFG_FT_IM_ROAMING CFG_INI_BOOL( \
3110 		"enable_ft_im_roaming", \
3111 		1, \
3112 		"FT roaming for deauth roam trigger")
3113 
3114 /*
3115  * <ini>
3116  * roam_scan_inactivity_time - Device inactivity monitoring time in
3117  * milliseconds for which the device is considered to be inactive with data
3118  * packets count is less than configured roam_inactive_data_count.
3119  *
3120  * @Min: 0
3121  * @Max: 0xFFFFFFFF
3122  * @Default: 0
3123  *
3124  * The below three ini values are used to control the roam scan after the
3125  * firmware gets empty roam scan results during periodic roam scans.
3126  * 1. roam_scan_inactivity_time
3127  * 2. roam_inactive_data_count
3128  * The first two ini "roam_scan_inactivity_time" and "roam_inactive_data_count"
3129  * is frames the criteria to detect if the DUT is inactive.
3130  *
3131  * Related: roam_inactive_data_count
3132  *
3133  * Supported Feature: Roaming
3134  *
3135  * Usage: External
3136  *
3137  * </ini>
3138  */
3139 #define CFG_ROAM_SCAN_INACTIVITY_TIME CFG_INI_UINT( \
3140 	"roam_scan_inactivity_time", \
3141 	0, \
3142 	0xFFFFFFFF, \
3143 	0, \
3144 	CFG_VALUE_OR_DEFAULT, \
3145 	"Device inactivity monitoring time")
3146 
3147  /*
3148   * <ini>
3149   * RoamScan_SecondTimer - Device inactivity monitoring time in
3150   * seconds for which the device is considered to be inactive with data
3151   * packets count is less than configured RoamScan_InactiveCount.
3152   *
3153   * @Min: 60
3154   * @Max: 300
3155   * @Default: 120
3156   *
3157   * The below three ini values are used to control the roam scan after the
3158   * firmware gets empty roam scan results during periodic roam scans.
3159   * 1. RoamScan_SecondTimer
3160   * 2. RoamScan_InactiveCount
3161   * 3. RoamScan_InactiveTimer
3162   * The first two ini "RoamScan_SecondTimer" and "RoamScan_InactiveCount"
3163   * is frames the criteria to detect if the DUT is inactive. If the device is
3164   * identified to be inactive based on the above two ini, then the value,
3165   * "RoamScan_InactiveTimer" will be used as periodic roam scan
3166   * duration.
3167   *
3168   * Related: RoamScan_InactiveCount
3169   *
3170   * Supported Feature: Roaming
3171   *
3172   * Usage: External
3173   *
3174   * </ini>
3175   */
3176 #define CFG_ROAM_SCAN_SECOND_TIMER CFG_INI_UINT( \
3177 	"RoamScan_SecondTimer", \
3178 	60, \
3179 	300, \
3180 	120, \
3181 	CFG_VALUE_OR_DEFAULT, \
3182 	"Device inactivity monitoring time")
3183 
3184 /*
3185  * <ini>
3186  * roam_inactive_data_count/RoamScan_InactiveCount - Maximum allowed data
3187  * packets count during roam_scan_inactivity_time.
3188  *
3189  * @Min: 0
3190  * @Max: 0xFFFFFFFF
3191  * @Default: 10
3192  *
3193  * The DUT is said to be inactive only if the data packets count
3194  * during this  roam_scan_inactivity_time is less than the configured
3195  * roam_inactive_data_count.
3196  *
3197  * Related: roam_scan_inactivity_time
3198  *
3199  * Supported Feature: Roaming
3200  *
3201  * Usage: External
3202  *
3203  * </ini>
3204  */
3205 #define CFG_ROAM_INACTIVE_COUNT CFG_INI_UINT( \
3206 	"roam_inactive_data_count RoamScan_InactiveCount", \
3207 	RoamScan_InactiveCount_min, \
3208 	RoamScan_InactiveCount_max, \
3209 	RoamScan_InactiveCount_default, \
3210 	CFG_VALUE_OR_DEFAULT, \
3211 	"Roam scan inactivity period data pkt count")
3212 
3213 /*
3214  * <ini>
3215  * RoamScan_InactiveTimer - Roam scan duration in sec after device is
3216  * out of inactivity state.
3217  *
3218  * @Min: 0
3219  * @Max: 20
3220  * @Default: 10
3221  *
3222  * If there is empty scan results during roam scan, firmware will move to
3223  * roam scan inactive state if roam_scan_inactivity and
3224  * roam_inactive_data_count criteria are met.
3225  * This ini is used to configure the roam scan duration in sec once the
3226  * inactivity is finished and roam scan can be started.
3227  *
3228  * Related: roam_scan_inactivity_time, roam_inactive_data_count
3229  *
3230  * Supported Feature: Roaming
3231  *
3232  * Usage: External
3233  *
3234  * </ini>
3235  */
3236 #define CFG_ROAM_SCAN_INACTIVE_TIMER CFG_INI_UINT( \
3237 	"RoamScan_InactiveTimer", \
3238 	0, \
3239 	20, \
3240 	10, \
3241 	CFG_VALUE_OR_DEFAULT, \
3242 	"Roam scan period post inactivity")
3243 
3244 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
3245 /*
3246  * <ini>
3247  * enable_roam_reason_vsie - Enable/Disable inclusion of Roam Reason
3248  * in Re(association) frame
3249  *
3250  * @Min: 0
3251  * @Max: 1
3252  * @Default: 0
3253  *
3254  * This ini is used to enable fw to include/exclude roam reason vsie in
3255  * Re(association)
3256  *
3257  * Related: None
3258  *
3259  * Supported Feature: Roaming
3260  *
3261  * Usage: internal
3262  *
3263  * </ini>
3264  */
3265 #define CFG_ENABLE_ROAM_REASON_VSIE CFG_INI_BOOL( \
3266 		"enable_roam_reason_vsie", \
3267 		0, \
3268 		"To Enable enable_roam_reason_vsie")
3269 #define ROAM_REASON_VSIE_ALL CFG(CFG_ENABLE_ROAM_REASON_VSIE)
3270 #else
3271 #define ROAM_REASON_VSIE_ALL
3272 #endif
3273 
3274 /*
3275  * <ini>
3276  * groam_info_stats_num - number of wlan driver cache roam information
3277  * @Min: 0
3278  * @Max: 32
3279  * @Default: 5
3280  *
3281  * This ini is used to set the cache number of enhanced roam
3282  * information, including roam trigger, scan information and
3283  * roam frame information.
3284  * If ini set to 0, enhanced roam feature not support
3285  *
3286  * Related: LFR
3287  *
3288  * Usage: External
3289  *
3290  * </ini>
3291  */
3292 #define CFG_LFR3_ROAM_INFO_STATS_NUM CFG_INI_UINT( \
3293 		"groam_info_stats_num", \
3294 		0, \
3295 		32, \
3296 		5, \
3297 		CFG_VALUE_OR_DEFAULT, \
3298 		"Roam information cache number in wlan driver")
3299 
3300 /*
3301  * <ini>
3302  * hs20_btm_offload_disable - To enable/disable BTM offload
3303  * @Min: 0
3304  * @Max: 1
3305  * @Default: 1
3306  *
3307  * This ini is used to enable/disable BTM offload for Hotspot 2.0.
3308  * Some solutions may not have Hotspot 2.0 certification
3309  * and there is no need to forward the BTM frame to wpa_supplicant,
3310  * in such solutions Let firmware handle the frame, in such cases by
3311  * enabling btm_offload so that it doesn't wakeup the host.
3312  * Firmware may roam to another AP upon BTM reception.
3313  *
3314  * Related: LFR
3315  *
3316  * Usage: External
3317  *
3318  * </ini>
3319  */
3320 #define CFG_HS_20_BTM_OFFLOAD_DISABLE CFG_INI_BOOL( \
3321 		"hs20_btm_offload_disable", \
3322 		true, \
3323 		"To Enable/disable BTM offload for hotspot 2.0")
3324 
3325 #define CFG_LFR_ALL \
3326 	CFG(CFG_LFR_MAWC_ROAM_ENABLED) \
3327 	CFG(CFG_LFR_MAWC_ROAM_TRAFFIC_THRESHOLD) \
3328 	CFG(CFG_LFR_MAWC_ROAM_AP_RSSI_THRESHOLD) \
3329 	CFG(CFG_LFR_MAWC_ROAM_RSSI_HIGH_ADJUST) \
3330 	CFG(CFG_LFR_MAWC_ROAM_RSSI_LOW_ADJUST) \
3331 	CFG(CFG_LFR_ROAM_RSSI_ABS_THRESHOLD) \
3332 	CFG(CFG_LFR_5G_RSSI_THRESHOLD_OFFSET) \
3333 	CFG(CFG_LFR_ENABLE_FAST_ROAM_IN_CONCURRENCY) \
3334 	CFG(CFG_LFR_EARLY_STOP_SCAN_ENABLE) \
3335 	CFG(CFG_LFR_EARLY_STOP_SCAN_MIN_THRESHOLD) \
3336 	CFG(CFG_LFR_EARLY_STOP_SCAN_MAX_THRESHOLD) \
3337 	CFG(CFG_LFR_ROAM_DENSE_TRAFFIC_THRESHOLD) \
3338 	CFG(CFG_LFR_ROAM_DENSE_RSSI_THRE_OFFSET) \
3339 	CFG(CFG_LFR_ROAM_DENSE_MIN_APS) \
3340 	CFG(CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD) \
3341 	CFG(CFG_LFR_ROAM_BG_SCAN_CLIENT_BITMAP) \
3342 	CFG(CFG_LFR_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G) \
3343 	CFG(CFG_ROAM_DATA_RSSI_THRESHOLD_TRIGGERS) \
3344 	CFG(CFG_ROAM_DATA_RSSI_THRESHOLD) \
3345 	CFG(CFG_RX_DATA_INACTIVITY_TIME) \
3346 	CFG(CFG_LFR_ADAPTIVE_ROAMSCAN_DWELL_MODE) \
3347 	CFG(CFG_LFR_PER_ROAM_ENABLE) \
3348 	CFG(CFG_LFR_PER_ROAM_CONFIG_HIGH_RATE_TH) \
3349 	CFG(CFG_LFR_PER_ROAM_CONFIG_LOW_RATE_TH) \
3350 	CFG(CFG_LFR_PER_ROAM_CONFIG_RATE_TH_PERCENT) \
3351 	CFG(CFG_LFR_PER_ROAM_REST_TIME) \
3352 	CFG(CFG_LFR_PER_ROAM_MONITOR_TIME) \
3353 	CFG(CFG_LFR_PER_ROAM_MIN_CANDIDATE_RSSI) \
3354 	CFG(CFG_LFR3_ROAM_DISALLOW_DURATION) \
3355 	CFG(CFG_LFR3_ROAM_RSSI_CHANNEL_PENALIZATION) \
3356 	CFG(CFG_LFR3_ROAM_NUM_DISALLOWED_APS) \
3357 	CFG(CFG_LFR_ENABLE_5G_BAND_PREF) \
3358 	CFG(CFG_LFR_5G_RSSI_BOOST_THRESHOLD) \
3359 	CFG(CFG_LFR_5G_RSSI_BOOST_FACTOR) \
3360 	CFG(CFG_LFR_5G_MAX_RSSI_BOOST) \
3361 	CFG(CFG_LFR_5G_RSSI_PENALIZE_THRESHOLD) \
3362 	CFG(CFG_LFR_5G_RSSI_PENALIZE_FACTOR) \
3363 	CFG(CFG_LFR_5G_MAX_RSSI_PENALIZE) \
3364 	CFG(CFG_LFR_MAX_NUM_PRE_AUTH) \
3365 	CFG(CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT) \
3366 	CFG(CFG_LFR3_ROAM_PREAUTH_NO_ACK_TIMEOUT) \
3367 	CFG(CFG_LFR_FEATURE_ENABLED) \
3368 	CFG(CFG_LFR_MAWC_FEATURE_ENABLED) \
3369 	CFG(CFG_LFR_FAST_TRANSITION_ENABLED) \
3370 	CFG(CFG_LFR_ROAM_RSSI_DIFF) \
3371 	CFG(CFG_LFR_ROAM_RSSI_DIFF_6GHZ) \
3372 	CFG(CFG_LFR_ROAM_BG_RSSI_TH) \
3373 	CFG(CFG_LFR_ENABLE_WES_MODE) \
3374 	CFG(CFG_LFR_ROAM_SCAN_OFFLOAD_ENABLED) \
3375 	CFG(CFG_LFR_NEIGHBOR_SCAN_CHANNEL_LIST) \
3376 	CFG(CFG_LFR_NEIGHBOR_SCAN_TIMER_PERIOD) \
3377 	CFG(CFG_LFR_NEIGHBOR_SCAN_MIN_TIMER_PERIOD) \
3378 	CFG(CFG_LFR_NEIGHBOR_LOOKUP_RSSI_THRESHOLD) \
3379 	CFG(CFG_LFR_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF) \
3380 	CFG(CFG_LFR_ROAM_RESCAN_RSSI_DIFF) \
3381 	CFG(CFG_LFR_NEIGHBOR_SCAN_MIN_CHAN_TIME) \
3382 	CFG(CFG_LFR_NEIGHBOR_SCAN_MAX_CHAN_TIME) \
3383 	CFG(CFG_LFR_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD) \
3384 	CFG(CFG_LFR_EMPTY_SCAN_REFRESH_PERIOD) \
3385 	CFG(CFG_ROAM_SCAN_FIRST_TIMER) \
3386 	CFG(CFG_LFR_ROAM_BMISS_FIRST_BCNT) \
3387 	CFG(CFG_LFR_ROAM_BMISS_FINAL_BCNT) \
3388 	CFG(CFG_LFR_ROAMING_DFS_CHANNEL) \
3389 	CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_MAXCOUNT) \
3390 	CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_DELTA) \
3391 	CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_DELAY) \
3392 	CFG(CFG_LFR_ROAM_SCAN_HI_RSSI_UB) \
3393 	CFG(CFG_LFR_ROAM_PREFER_5GHZ) \
3394 	CFG(CFG_LFR_ROAM_INTRA_BAND) \
3395 	CFG(CFG_LFR_ROAM_SCAN_N_PROBES) \
3396 	CFG(CFG_LFR_ROAM_SCAN_HOME_AWAY_TIME) \
3397 	CFG(CFG_LFR_DELAY_BEFORE_VDEV_STOP) \
3398 	CFG(CFG_ENABLE_BSS_LOAD_TRIGGERED_ROAM) \
3399 	CFG(CFG_BSS_LOAD_THRESHOLD) \
3400 	CFG(CFG_BSS_LOAD_SAMPLE_TIME) \
3401 	CFG(CFG_ROAM_CU_MONITOR_TIME) \
3402 	CFG(CFG_LFR3_ROAM_HO_DELAY_FOR_RX) \
3403 	CFG(CFG_LFR_MIN_DELAY_BTW_ROAM_SCAN) \
3404 	CFG(CFG_LFR_ROAM_SCAN_TRIGGER_REASON_BITMASK) \
3405 	CFG(CFG_LFR_ROAM_FT_OPEN_ENABLE) \
3406 	CFG(CFG_LFR_ROAM_FORCE_RSSI_TRIGGER) \
3407 	CFG(CFG_ROAM_SCAN_SCAN_POLICY) \
3408 	CFG(CFG_ROAM_SCAN_INACTIVITY_TIME) \
3409 	CFG(CFG_ROAM_SCAN_SECOND_TIMER) \
3410 	CFG(CFG_FT_IM_ROAMING) \
3411 	CFG(CFG_ROAM_INACTIVE_COUNT) \
3412 	CFG(CFG_ROAM_PASSIVE_MAX_CHANNEL_TIME) \
3413 	CFG(CFG_ROAM_SCAN_INACTIVE_TIMER) \
3414 	CFG(CFG_BSS_LOAD_TRIG_6G_RSSI_THRES) \
3415 	CFG(CFG_BSS_LOAD_TRIG_5G_RSSI_THRES) \
3416 	CFG(CFG_BSS_LOAD_TRIG_2G_RSSI_THRES) \
3417 	CFG(CFG_LFR_FULL_ROAM_SCAN_REFRESH_PERIOD) \
3418 	ADAPTIVE_11R_ALL \
3419 	ROAM_OFFLOAD_ALL \
3420 	LFR_ESE_ALL \
3421 	LFR_SUBNET_DETECTION_ALL \
3422 	SAE_SINGLE_PMK_ALL \
3423 	ROAM_REASON_VSIE_ALL \
3424 	CFG(CFG_LFR_BEACONLOSS_TIMEOUT_ON_WAKEUP) \
3425 	CFG(CFG_LFR_BEACONLOSS_TIMEOUT_ON_SLEEP) \
3426 	CFG(CFG_LFR3_ROAM_INFO_STATS_NUM) \
3427 	CFG(CFG_HS_20_BTM_OFFLOAD_DISABLE)
3428 
3429 #endif /* CFG_MLME_LFR_H__ */
3430