1 /*
2  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2022-2023 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 #ifndef __CFG_POLICY_MGR
21 #define __CFG_POLICY_MGR
22 #include "qdf_types.h"
23 
24 /*
25  * <ini>
26  * gWlanMccToSccSwitchMode - Control SAP channel.
27  * @Min: 0
28  * @Max: 6
29  * @Default: 0
30  *
31  * This ini is used to override SAP channel.
32  * If gWlanMccToSccSwitchMode = 0: disabled.
33  * If gWlanMccToSccSwitchMode = 1: deprecated, overwritten to 3 in driver
34  * If gWlanMccToSccSwitchMode = 2: deprecated, overwritten to 3 in driver
35  * If gWlanMccToSccSwitchMode = 3: Force switch without SAP restart.
36  * If gWlanMccToSccSwitchMode = 4: Switch using
37  *                                 fav channel(s)without SAP restart.
38  * If gWlanMccToSccSwitchMode = 5: Force switch without SAP restart.MCC allowed
39  *                                 in exceptional cases.
40  * If gWlanMccToSccSwitchMode = 6: Force Switch without SAP restart only in
41  *                                 user preferred band.
42  * Related: None.
43  *
44  * Supported Feature: Concurrency
45  *
46  * Usage: External
47  *
48  * </ini>
49  */
50 #define CFG_MCC_TO_SCC_SWITCH CFG_INI_UINT(\
51 					"gWlanMccToSccSwitchMode", \
52 					QDF_MCC_TO_SCC_SWITCH_DISABLE, \
53 					QDF_MCC_TO_SCC_SWITCH_MAX - 1, \
54 					QDF_MCC_TO_SCC_SWITCH_DISABLE, \
55 					CFG_VALUE_OR_DEFAULT, \
56 					"Provides MCC to SCC switch mode")
57 /*
58  * <ini>
59  * gSystemPref - Configure wlan system preference for PCL.
60  * @Min: 0
61  * @Max: 2
62  * @Default: 0
63  *
64  * This ini is used to configure wlan system preference option to help
65  * policy manager decide on Preferred Channel List for a new connection.
66  * For possible values refer to enum hdd_conc_priority_mode
67  *
68  * Related: None.
69  *
70  * Supported Feature: DBS
71  *
72  * Usage: External
73  *
74  * </ini>
75  */
76 #define CFG_CONC_SYS_PREF CFG_INI_UINT(\
77 					"gSystemPref", 0, 2, 0, \
78 					CFG_VALUE_OR_DEFAULT, \
79 					"System preference to predict PCL")
80 /*
81  * <ini>
82  * gMaxConcurrentActiveSessions - Maximum number of concurrent connections.
83  * @Min: 1
84  * @Max: 4
85  * @Default: 3
86  *
87  * This ini is used to configure the maximum number of concurrent connections.
88  *
89  * Related: None.
90  *
91  * Supported Feature: Concurrency
92  *
93  * Usage: External
94  *
95  * </ini>
96  */
97 #define CFG_MAX_CONC_CXNS CFG_INI_UINT(\
98 					"gMaxConcurrentActiveSessions", \
99 					1, 4, 3, \
100 					CFG_VALUE_OR_DEFAULT, \
101 					"Config max num allowed connections")
102 
103 #define POLICY_MGR_CH_SELECT_POLICY_DEF         0x00000003
104 
105 /*
106  * <ini>
107  * channel_select_logic_conc - Set channel selection logic
108  * for different concurrency combinations to DBS or inter band
109  * MCC. Default is DBS for STA+STA and STA+P2P.
110  * @Min: 0x00000000
111  * @Max: 0xFFFFFFFF
112  * @Default: 0x00000000
113  *
114  * 0 - inter-band MCC
115  * 1 - DBS
116  *
117  * BIT 0: STA+STA
118  * BIT 1: STA+P2P
119  * BIT 2-31: Reserved
120  *
121  * Supported Feature: STA+STA, STA+P2P
122  *
123  * Usage: External
124  *
125  * </ini>
126  */
127 #define CFG_CHNL_SELECT_LOGIC_CONC CFG_INI_UINT(\
128 					"channel_select_logic_conc",\
129 					0x00000000, \
130 					0xFFFFFFFF, \
131 					POLICY_MGR_CH_SELECT_POLICY_DEF, \
132 					CFG_VALUE_OR_DEFAULT, \
133 					"Set channel selection policy for various concurrency")
134 /*
135  * <ini>
136  * dbs_selection_policy - Configure dbs selection policy.
137  * @Min: 0
138  * @Max: 3
139  * @Default: 0
140  *
141  *  set band preference or Vdev preference.
142  *      bit[0] = 0: 5G 2x2 preferred to select 2x2 5G + 1x1 2G DBS mode.
143  *      bit[0] = 1: 2G 2x2 preferred to select 2x2 2G + 1x1 5G DBS mode.
144  *      bit[1] = 1: vdev priority enabled. The INI "vdev_priority_list" will
145  * specify the vdev priority.
146  *      bit[1] = 0: vdev priority disabled.
147  * This INI only take effect for Genoa dual DBS hw.
148  *
149  * Supported Feature: DBS
150  *
151  * Usage: External
152  *
153  * </ini>
154  */
155 #define CFG_DBS_SELECTION_PLCY CFG_INI_UINT(\
156 					    "dbs_selection_policy", \
157 					    0, 3, 0, \
158 					    CFG_VALUE_OR_DEFAULT, \
159 					    "Configure dbs selection policy")
160 /*
161  * <ini>
162  * vdev_priority_list - Configure vdev priority list.
163  * @Min: 0
164  * @Max: 0x4444
165  * @Default: 0x4321
166  *
167  * @vdev_priority_list: vdev priority list
168  *      bit[0-3]: pri_id (policy_mgr_pri_id) of highest priority
169  *      bit[4-7]: pri_id (policy_mgr_pri_id) of second priority
170  *      bit[8-11]: pri_id (policy_mgr_pri_id) of third priority
171  *      bit[12-15]: pri_id (policy_mgr_pri_id) of fourth priority
172  *      example: 0x4321 - CLI < GO < SAP < STA
173  *      vdev priority id mapping:
174  *        PM_STA_PRI_ID = 1,
175  *        PM_SAP_PRI_ID = 2,
176  *        PM_P2P_GO_PRI_ID = 3,
177  *        PM_P2P_CLI_PRI_ID = 4,
178  * When the previous INI "dbs_selection_policy" bit[1]=1, which means
179  * the vdev 2x2 prioritization enabled. Then this INI will be used to
180  * specify the vdev type priority list. For example :
181  * dbs_selection_policy=0x2
182  * vdev_priority_list=0x4312
183  * means: default preference 2x2 band is 5G, vdev 2x2 prioritization enabled.
184  * And the priority list is CLI < GO < STA < SAP
185  *
186  * This INI only take effect for Genoa dual DBS hw.
187  *
188  * Supported Feature: DBS
189  *
190  * Usage: External
191  *
192  * </ini>
193  */
194 #define CFG_VDEV_CUSTOM_PRIORITY_LIST CFG_INI_UINT(\
195 					"vdev_priority_list", \
196 					0, 0x4444, 0x4321, \
197 					CFG_VALUE_OR_DEFAULT, \
198 					"Configure vdev priority list")
199 /*
200  * <ini>
201  * gEnableCustomConcRule1 - Enable custom concurrency rule1.
202  * @Min: 0
203  * @Max: 1
204  * @Default: 0
205  *
206  * This ini is used to enable/disable custom concurrency rule1.
207  * If SAP comes up first and STA comes up later then SAP needs to follow STA's
208  * channel.
209  *
210  * Related: None.
211  *
212  * Supported Feature: Concurrency
213  *
214  * Usage: External
215  *
216  * </ini>
217  */
218 #define CFG_ENABLE_CONC_RULE1 CFG_INI_UINT(\
219 					"gEnableCustomConcRule1", \
220 					0, 1, 0, \
221 					CFG_VALUE_OR_DEFAULT, \
222 					"Enable custom concurrency rule 1")
223 /*
224  * <ini>
225  * gEnableCustomConcRule2 - Enable custom concurrency rule2.
226  * @Min: 0
227  * @Max: 1
228  * @Default: 0
229  *
230  * This ini is used to enable/disable custom concurrency rule2.
231  * If P2PGO comes up first and STA comes up later then P2PGO need to follow
232  * STA's channel in 5Ghz. In following if condition we are just adding sanity
233  * check to make sure that by this time P2PGO's channel is same as STA's
234  * channel.
235  *
236  * Related: None.
237  *
238  * Supported Feature: Concurrency
239  *
240  * Usage: External
241  *
242  * </ini>
243  */
244 #define CFG_ENABLE_CONC_RULE2 CFG_INI_UINT(\
245 					"gEnableCustomConcRule2", \
246 					0, 1, 0, \
247 					CFG_VALUE_OR_DEFAULT, \
248 					"Enable custom concurrency rule 2")
249 /*
250  * <ini>
251  * gEnableMCCAdaptiveScheduler - MCC Adaptive Scheduler feature.
252  * @Min: 0
253  * @Max: 1
254  * @Default: 1
255  *
256  * This ini is used to enable/disable MCC Adaptive Scheduler feature.
257  *
258  * Related: None.
259  *
260  * Supported Feature: Concurrency
261  *
262  * Usage: External
263  *
264  * </ini>
265  */
266 #define CFG_ENABLE_MCC_ADAPTIVE_SCH_ENABLED_NAME CFG_INI_BOOL(\
267 					"gEnableMCCAdaptiveScheduler", \
268 					true, \
269 					"Enable/Disable MCC Adaptive Scheduler")
270 
271 /*
272  * <ini>
273  * gEnableStaConnectionIn5Ghz - To enable/disable STA connection in 5G
274  * @Min: 0
275  * @Max: 1
276  * @Default: 1
277  *
278  * This ini is used to enable/disable STA connection in 5G band
279  *
280  * Related: STA
281  *
282  * Supported Feature: Concurrency
283  *
284  * Usage: External
285  *
286  * </ini>
287  */
288 #define CFG_ENABLE_STA_CONNECTION_IN_5GHZ CFG_INI_UINT(\
289 					"gEnableStaConnectionIn5Ghz", \
290 					0, 1, 1, \
291 					CFG_VALUE_OR_DEFAULT, \
292 					"Enable/Disable STA connection in 5G")
293 
294 /*
295  * <ini>
296  * gAllowMCCGODiffBI - Allow GO in MCC mode to accept different beacon interval
297  * than STA's.
298  * @Min: 0
299  * @Max: 4
300  * @Default: 4
301  *
302  * This ini is used to allow GO in MCC mode to accept different beacon interval
303  * than STA's.
304  * Added for Wi-Fi Cert. 5.1.12
305  * If gAllowMCCGODiffBI = 1
306  *	Set to 1 for WFA certification. GO Beacon interval is not changed.
307  *	MCC GO doesn't work well in optimized way. In worst scenario, it may
308  *	invite STA disconnection.
309  * If gAllowMCCGODiffBI = 2
310  *	If set to 2 workaround 1 disassoc all the clients and update beacon
311  *	Interval.
312  * If gAllowMCCGODiffBI = 3
313  *	If set to 3 tear down the P2P link in auto/Non-autonomous -GO case.
314  * If gAllowMCCGODiffBI = 4
315  *	If set to 4 don't disconnect the P2P client in autonomous/Non-auto-
316  *	nomous -GO case update the BI dynamically
317  *
318  * Related: None.
319  *
320  * Supported Feature: Concurrency
321  *
322  * Usage: External
323  *
324  * </ini>
325  */
326 #define CFG_ALLOW_MCC_GO_DIFF_BI \
327 CFG_INI_UINT("gAllowMCCGODiffBI", 0, 4, 4, CFG_VALUE_OR_DEFAULT, \
328 	     "Allow GO in MCC mode to accept different BI than STA's")
329 
330 /*
331  *
332  * <ini>
333  * gDualMacFeatureDisable - Disable Dual MAC feature.
334  * @Min: 0
335  * @Max: 6
336  * @Default: 6
337  *
338  * This ini is used to enable/disable dual MAC feature.
339  * 0 - enable DBS
340  * 1 - disable DBS
341  * 2 - disable DBS for connection but keep DBS for scan
342  * 3 - disable DBS for connection but keep DBS scan with async
343  * scan policy disabled
344  * 4 - enable DBS for connection as well as for scan with async
345  * scan policy disabled
346  * 5 - enable DBS for connection but disable DBS for scan.
347  * 6 - enable DBS for connection but disable simultaneous scan
348  * from upper layer (DBS scan remains enabled in FW).
349  *
350  * Note: INI item value should match 'enum dbs_support'
351  *
352  * Related: None.
353  *
354  * Supported Feature: DBS
355  *
356  * Usage: External
357  *
358  * </ini>
359  */
360 #define CFG_DUAL_MAC_FEATURE_DISABLE \
361 CFG_INI_UINT("gDualMacFeatureDisable", 0, 6, 6, CFG_VALUE_OR_DEFAULT, \
362 	     "This INI is used to enable/disable Dual MAC feature")
363 
364 /*
365  *
366  * <ini>
367  * enable_sbs - Enable/Disable SBS.
368  * @Min: 0
369  * @Max: 1
370  * @Default: 1
371  *
372  * This ini is used to enable/disable SBS feature.
373  * 0 - disable SBS
374  * 1 - enable SBS
375  *
376  *
377  * Related: None.
378  *
379  * Supported Feature: SBS
380  *
381  * Usage: External
382  *
383  * </ini>
384  */
385 #define CFG_ENABLE_SBS CFG_INI_BOOL(\
386 					"enable_sbs", \
387 					true, \
388 					"Enable/Disable SBS")
389 
390 /*
391  * <ini>
392  * g_sta_sap_scc_on_dfs_chan - Allow STA+SAP SCC on DFS channel with master
393  * mode support disabled.
394  * @Min: 0
395  * @Max: 2
396  * @Default: 2
397  *
398  * This ini is used to allow STA+SAP SCC on DFS channel with master mode
399  * support disabled, the value is defined by enum PM_AP_DFS_MASTER_MODE.
400  * 0 - Disallow STA+SAP SCC on DFS channel
401  * 1 - Allow STA+SAP SCC on DFS channel with master mode disabled
402  *       This needs gEnableDFSMasterCap enabled to allow SAP SCC with
403  *       STA on DFS but dfs master mode disabled. Single SAP is not allowed
404  *       on DFS.
405  * 2 - enhance "1" with below requirement
406  *	 a. Allow single SAP (GO) start on DFS channel.
407  *	 b. Allow CAC process on DFS channel in single SAP (GO) mode
408  *	 c. Allow DFS radar event process in single SAP (GO) mode
409  *	 d. Disallow CAC and radar event process in SAP (GO) + STA mode.
410  *	 The value 2 of this ini requires master mode to be enabled so it is
411  *	 mandatory to enable the dfs master mode ini gEnableDFSMasterCap
412  *	 along with it.
413  *
414  * Related: None.
415  *
416  * Supported Feature: Non-DBS, DBS
417  *
418  * Usage: External
419  *
420  * </ini>
421  */
422 
423 #define CFG_STA_SAP_SCC_ON_DFS_CHAN \
424 CFG_INI_UINT("g_sta_sap_scc_on_dfs_chan", 0, 2, 2, CFG_VALUE_OR_DEFAULT, \
425 	     "Allow STA+SAP SCC on DFS channel with master mode disable")
426 
427 /*
428  * <ini>
429  * sta_sap_scc_on_indoor_chan - Allow STA+SAP SCC on indoor channel
430  * when STA is connected on indoor channel.
431  * @Min: false
432  * @Max: true
433  * @Default: false
434  *
435  * This ini is used to allow STA+SAP SCC on indoor channel
436  * 0 - Disallow STA+SAP SCC on Indoor only channel
437  * 1 - Allow STA+SAP SCC on DFS channel. SAP will move to indoor channel
438  * once STA is connected on indoor only channel.
439  * When gindoor_channel_support=1, this ini will not be considered and
440  * SAP can come up on indoor channel.
441  *
442  * Related: gindoor_channel_support.
443  *
444  * Supported Feature: Non-DBS, DBS
445  *
446  * Usage: External
447  *
448  * </ini>
449  */
450 #define CFG_STA_SAP_SCC_ON_INDOOR_CHAN CFG_INI_BOOL(\
451 			"sta_sap_scc_on_indoor_chan", \
452 			false, \
453 			"Allow STA+SAP SCC on indoor channel")
454 
455 /*
456  * <ini>
457  * gForce1x1Exception - force 1x1 when connecting to certain peer
458  * @Min: 0
459  * @Max: 2
460  * @Default: 2
461  *
462  * This INI when enabled will force 1x1 connection with certain peer.
463  * The implementation for this ini would be as follows:-
464  * Value 0: Even if the AP is present in OUI, 1x1 will not be forced
465  * Value 1: If antenna sharing supported, then only do 1x1.
466  * Value 2: If AP present in OUI, force 1x1 connection.
467 
468  *
469  * Related: None
470  *
471  * Supported Feature: connection
472  *
473  * Usage: External
474  *
475  * </ini>
476  */
477 
478 #define CFG_FORCE_1X1_FEATURE \
479 CFG_INI_UINT("gForce1x1Exception", 0, 2, 1, CFG_VALUE_OR_DEFAULT, \
480 	     "force 1x1 when connecting to certain peer")
481 
482 /*
483  * <ini>
484  * gEnableSAPManadatoryChanList - Enable SAP Mandatory channel list
485  * Options.
486  * @Min: 0
487  * @Max: 1
488  * @Default: 0
489  *
490  * This ini is used to enable/disable the SAP manadatory chan list
491  * 0 - Disable SAP mandatory chan list
492  * 1 - Enable SAP mandatory chan list
493  *
494  * Supported Feature: SAP
495  *
496  *
497  * Usage: External
498  *
499  * </ini>
500  */
501 
502 #define CFG_ENABLE_SAP_MANDATORY_CHAN_LIST \
503 CFG_INI_UINT("gEnableSAPManadatoryChanList", 0, 1, 0, CFG_VALUE_OR_DEFAULT, \
504 	     "Enable SAP Mandatory channel list")
505 
506 /*
507  * <ini>
508  * g_nan_sap_scc_on_lte_coex_chan - Allow NAN+SAP SCC on LTE coex channel
509  * @Min: 0
510  * @Max: 1
511  * @Default: 1
512  *
513  * This ini is used to allow NAN+SAP SCC on LTE coex channel
514  * 0 - Disallow NAN+SAP SCC on LTE coex channel
515  * 1 - Allow NAN+SAP SCC on LTE coex channel
516  *
517  * Related: Depends on gWlanMccToSccSwitchMode config.
518  *
519  * Supported Feature: Non-DBS, DBS
520  *
521  * Usage: External
522  *
523  * </ini>
524  */
525 #define CFG_NAN_SAP_SCC_ON_LTE_COEX_CHAN \
526 CFG_INI_BOOL("g_nan_sap_scc_on_lte_coex_chan", 1, \
527 	     "Allow NAN+SAP SCC on LTE coex channel")
528 
529 /*
530  * <ini>
531  * g_sta_sap_scc_on_lte_coex_chan - Allow STA+SAP SCC on LTE coex channel
532  * @Min: 0
533  * @Max: 1
534  * @Default: 1
535  *
536  * This ini is used to allow STA+SAP SCC on LTE coex channel
537  * 0 - Disallow STA+SAP SCC on LTE coex channel
538  * 1 - Allow STA+SAP SCC on LTE coex channel
539  *
540  * Related: None.
541  *
542  * Supported Feature: Non-DBS, DBS
543  *
544  * Usage: External
545  *
546  * </ini>
547  */
548 #define CFG_STA_SAP_SCC_ON_LTE_COEX_CHAN \
549 CFG_INI_UINT("g_sta_sap_scc_on_lte_coex_chan", 0, 1, 1, CFG_VALUE_OR_DEFAULT, \
550 	     "Allow STA+SAP SCC on LTE coex channel")
551 
552 /*
553  * <ini>
554  * g_mark_sap_indoor_as_disable - Enable/Disable Indoor channel
555  * @Min: 0
556  * @Max: 1
557  * @Default: 0
558  *
559  * This ini is used to mark the Indoor channel as
560  * disable when SAP start and revert it on SAP stop,
561  * so SAP will not turn on indoor channel and
562  * sta will not scan/associate and roam on indoor
563  * channels.
564  *
565  * Related: If g_mark_sap_indoor_as_disable set, turn the
566  * indoor channels to disable and update Wiphy & fw.
567  *
568  * Supported Feature: SAP/STA
569  *
570  * Usage: External
571  *
572  * </ini>
573  */
574 
575 #define CFG_MARK_INDOOR_AS_DISABLE_FEATURE \
576 CFG_INI_UINT("g_mark_sap_indoor_as_disable", 0, 1, 0, CFG_VALUE_OR_DEFAULT, \
577 	     "Enable/Disable Indoor channel")
578 
579 /*
580  * <ini>
581  * g_enable_go_force_scc - Enable/Disable force SCC on P2P GO
582  * @Min: 0
583  * @Max: 2
584  * @Default: 0
585  *
586  * This ini and along with "gWlanMccToSccSwitchMode" is used to enable
587  * force SCC on P2P GO interface.
588  *
589  * GO_FORCE_SCC_DISABLED (value 0): GO force scc disabled and GO can come up
590  * in MCC mode
591  * GO_FORCE_SCC_STRICT (value 1): New GO will be forced to form on existing
592  * GO/STA/GC channel in start bss itself.
593  * GO_FORCE_SCC_LIBERAL (value 2): After SET KEY is done, do force SCC for the
594  * first GO to move to new GO channel.
595  *
596  * Supported Feature: P2P GO
597  *
598  * Usage: External
599  *
600  * </ini>
601  */
602 
603 #define CFG_P2P_GO_ENABLE_FORCE_SCC \
604 CFG_INI_UINT("g_enable_go_force_scc", 0, 2, 0, CFG_VALUE_OR_DEFAULT, \
605 	     "Enable/Disable P2P GO force SCC")
606 
607 /*
608  * <ini>
609  * g_pcl_band_priority - Set 5G/6G Channel order
610  * Options.
611  * @Min: 0
612  * @Max: 1
613  * @Default: 0
614  *
615  * This ini is used to set preference between 5G and 6G channels during
616  * PCL population.
617  * 0 - Prefer 5G channels, 5G channels will be placed before the 6G channels
618  *	in PCL.
619  * 1 - Prefer 6G channels, 6G channels will be placed before the 5G channels
620  *	in PCL.
621  *
622  * Supported Feature: STA, SAP
623  *
624  *
625  * Usage: External
626  *
627  * </ini>
628  */
629 
630 #define CFG_PCL_BAND_PRIORITY \
631 CFG_INI_UINT("g_pcl_band_priority", 0, 1, 0, CFG_VALUE_OR_DEFAULT, \
632 	     "Set 5G and 6G Channel order")
633 
634 /*
635  * <ini>
636  * g_multi_sap_allowed_on_same_band - Allow multi sap started on same band
637  * @Min: 0
638  * @Max: 1
639  * @Default: 1
640  *
641  * This ini is used to allow multi sap started on same band or not.
642  * 0 - Disallow multi sap started on same band
643  * 1 - Allow multi sap started on same band
644  *
645  * Supported Feature: SAP
646  *
647  * Usage: External
648  *
649  * </ini>
650  */
651 #define CFG_MULTI_SAP_ALLOWED_ON_SAME_BAND \
652 CFG_INI_BOOL("g_multi_sap_allowed_on_same_band", 1, \
653 	     "Allow multi SAP started on same band")
654 
655 #ifdef WLAN_FEATURE_SR
656 /*
657  * <ini>
658  * g_enable_sr_in_same_mac_conc - Enable/Disable SR in same MAC concurrency
659  * @Min: 0
660  * @Max: 1
661  * @Default: 1
662  *
663  * This ini is used to enable/disable SR in same MAC concurrency scenarios.
664  * 0 - disable SR in same mac concurrency
665  * 1 - enable SR in same mac concurrency
666  *
667  * Ex- If 1st connection STA operating on MAC0 has enabled Spatial Reuse
668  * already. Then if user tries to bring-up 2nd connection SAP on MAC0
669  * (STA + SAP (SCC)).
670  * Now if this INI is not set to 1, then Spatial Reuse gets disabled for
671  * all the interfaces running on MAC0. Once 2nd connection or concurrency
672  * interface is disabled, Spatial Reuse gets enabled again.
673  *
674  * Related: None.
675  *
676  * Supported Feature: Spatial Reuse
677  *
678  * Usage: External
679  *
680  * </ini>
681  */
682 #define CFG_ENABLE_SR_IN_SAME_MAC_CONC \
683 CFG_INI_BOOL("g_enable_sr_in_same_mac_conc", 1, \
684 	     "Enable/Disable SR in Same MAC concurrency")
685 
686 #define CFG_SPATIAL_REUSE CFG(CFG_ENABLE_SR_IN_SAME_MAC_CONC)
687 #else
688 #define CFG_SPATIAL_REUSE
689 #endif
690 
691 /*
692  * <ini>
693  * g_use_original_bw_for_sap_restart - Set sap default BW when do restart
694  * @Min: 0
695  * @Max: 1
696  * @Default: 0
697  *
698  * This ini is used to set sap default BW when do restart.
699  * 0 - Use maximum BW as default BW
700  * 1 - Use sap original BW as default BW
701  *
702  * Supported Feature: SAP
703  *
704  * Usage: External
705  *
706  * </ini>
707  */
708 #define CFG_SAP_DEFAULT_BW_FOR_RESTART \
709 CFG_INI_BOOL("g_use_original_bw_for_sap_restart", 0, \
710 	     "Use SAP original bandwidth when do restart")
711 
712 /*
713  * <ini>
714  * g_move_sap_go_1st_on_dfs_sta_csa - Move SAP / GO first to enforce scc
715  * @Min: 0
716  * @Max: 1
717  * @Default: 0
718  *
719  * This ini moves SAP / GO first to enforce scc in STA+SAP (GO) DFS SCC
720  * 0 - Keep default MCC to SCC enforcement movement
721  * 1 - Move SAP / GO first before STA's movement to non-DFS channel
722  *
723  * In STA+SAP / GO concurrency, SCC is enforced by moving SAP / GO
724  * to STA's operating channel. STA side, if there is a CSA
725  * then SCC will be enforced only after STA moves to new channel.
726  *
727  * In usecase of STA + GO SCC on DFS channel, CSA is sent with no-TX
728  * and STA's movement will only happen once CSA count becomes 0.
729  * This will block data transmission till then, which will have bad
730  * user experience in case of XR where, it needs to have periodic data
731  * transmission in every 1 second with GO interface.
732  *
733  * To resolve this, it is better to move GO / SAP first to allow 1
734  * second periodic transmissions. And once the STA moves to new channel,
735  * existing logic will be triggered to enforce SCC.
736  *
737  * This INI is added to change the behavior only in this specific case.
738  * If this INI is set, then move SAP / GO first upon receiving very first
739  * CSA from AP to a non-DFS channel. Current MCC to SCC rules will be applied
740  * once STA moves to new channel after CSA count becomes 0.
741  *
742  * Dependency: g_sta_sap_scc_on_dfs_chan, g_enable_go_force_scc
743  *
744  * Supported Feature: SAP / P2P-GO
745  *
746  * Usage: External
747  *
748  * </ini>
749  */
750 #define CFG_MOVE_SAP_GO_1ST_ON_DFS_STA_CSA \
751 CFG_INI_BOOL("g_move_sap_go_1st_on_dfs_sta_csa", 0, \
752 	     "Move SAP / GO first to enforce scc on dfs sta csa")
753 
754 #define CFG_POLICY_MGR_ALL \
755 		CFG(CFG_MCC_TO_SCC_SWITCH) \
756 		CFG(CFG_CONC_SYS_PREF) \
757 		CFG(CFG_MAX_CONC_CXNS) \
758 		CFG(CFG_DBS_SELECTION_PLCY) \
759 		CFG(CFG_VDEV_CUSTOM_PRIORITY_LIST) \
760 		CFG(CFG_CHNL_SELECT_LOGIC_CONC) \
761 		CFG(CFG_ENABLE_CONC_RULE1) \
762 		CFG(CFG_ENABLE_CONC_RULE2) \
763 		CFG(CFG_ENABLE_MCC_ADAPTIVE_SCH_ENABLED_NAME)\
764 		CFG(CFG_ENABLE_STA_CONNECTION_IN_5GHZ)\
765 		CFG(CFG_DUAL_MAC_FEATURE_DISABLE)\
766 		CFG(CFG_ENABLE_SBS)\
767 		CFG(CFG_STA_SAP_SCC_ON_DFS_CHAN)\
768 		CFG(CFG_STA_SAP_SCC_ON_INDOOR_CHAN)\
769 		CFG(CFG_FORCE_1X1_FEATURE)\
770 		CFG(CFG_ENABLE_SAP_MANDATORY_CHAN_LIST)\
771 		CFG(CFG_STA_SAP_SCC_ON_LTE_COEX_CHAN)\
772 		CFG(CFG_NAN_SAP_SCC_ON_LTE_COEX_CHAN) \
773 		CFG(CFG_MARK_INDOOR_AS_DISABLE_FEATURE)\
774 		CFG(CFG_ALLOW_MCC_GO_DIFF_BI) \
775 		CFG(CFG_P2P_GO_ENABLE_FORCE_SCC) \
776 		CFG(CFG_PCL_BAND_PRIORITY) \
777 		CFG(CFG_MULTI_SAP_ALLOWED_ON_SAME_BAND) \
778 		CFG_SPATIAL_REUSE \
779 		CFG(CFG_SAP_DEFAULT_BW_FOR_RESTART) \
780 		CFG(CFG_MOVE_SAP_GO_1ST_ON_DFS_STA_CSA)
781 #endif
782