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