1 /*
2  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
3  * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 /**
19  * DOC: This file contains umac mlme related CFG/INI Items.
20  */
21 
22 #ifndef __CFG_CMN_MLME_H
23 #define __CFG_CMN_MLME_H
24 
25 /*
26  * <ini>
27  * max_chan_switch_ie_enable - Flag to enable max chan switch IE support
28  * @Min: false
29  * @Max: true
30  * @Default: false
31  *
32  * For non_ap platform, this flag will be enabled at later point and for ap
33  * platform this flag will be disabled
34  *
35  * Related: None
36  *
37  * Supported Feature: Max channel switch IE
38  *
39  * Usage: External
40  *
41  * </ini>
42  */
43 #define CFG_MLME_MAX_CHAN_SWITCH_IE_ENABLE \
44 	CFG_INI_BOOL("max_chan_switch_ie_enable", \
45 	PLATFORM_VALUE(false, false), \
46 	"To enable max channel switch IE")
47 
48 /*
49  * <ini>
50  * mlme_11be_target_capab - Flag to check the target capability for 11be
51  * @Min: false
52  * @Max: true
53  * @Default: false
54  *
55  * This flag helps in confirming whether 11be is supported by the target.
56  *
57  * Related: None
58  *
59  * Supported Feature: 11be
60  *
61  * Usage: Internal
62  *
63  * </ini>
64  */
65 #define CFG_MLME_11BE_TARGET_CAPAB CFG_UINT( \
66 	"mlme_11be_target_capab",\
67 	0, \
68 	1, \
69 	1, \
70 	CFG_VALUE_OR_DEFAULT, \
71 	"11be is supported by target")
72 
73 #ifdef WLAN_FEATURE_11BE
74 /*
75  * <ini>
76  * non_mlo_11be_ap_operation_enable - Flag to enable non MLO 802.11be AP
77  * operation
78  * @Min: false
79  * @Max: true
80  * @Default: false
81  *
82  * The 802.11be standard does not allow non-MLO 11be AP operation. For
83  * development purposes, add an INI flag to enable/disable non-MLO 802.11be AP
84  * operation. This INI will be disabled by default.
85  *
86  * Related: None
87  *
88  * Supported Feature: 802.11be protocol
89  *
90  * Usage: Internal
91  *
92  * </ini>
93  */
94 #define CFG_MLME_NON_MLO_11BE_AP_OPERATION_ENABLE \
95 	CFG_INI_BOOL("non_mlo_11be_ap_operation_enable", \
96 		     false, \
97 		     "Enable non MLO 11be AP operation")
98 
99 #define CFG_MLME_11BE_ALL \
100 	CFG(CFG_MLME_NON_MLO_11BE_AP_OPERATION_ENABLE)
101 #else
102 #define CFG_MLME_11BE_ALL
103 #endif /* WLAN_FEATURE_11BE */
104 
105 /*
106  * <ini>
107  * mlme_mlo_reconfig_reassoc_enable- Flag for non-AP MLD re-association
108  * upon detecting ML Reconfig AP addition
109  * @Min: false
110  * @Max: true
111  * @Default: false
112  *
113  * This flag when set to true enables re-association by non-AP MLD when
114  * the non-AP MLD detects that the AP MLD it is associated with has
115  * added a new AP using ML Reconfiguration.
116  *
117  * Related: None
118  *
119  * Supported Feature: 11be MLO Reconfig
120  *
121  * Usage: Internal
122  *
123  * </ini>
124  */
125 #define CFG_MLME_MLO_RECONFIG_REASSOC_ENABLE CFG_INI_UINT( \
126 	"mlme_mlo_reconfig_reassoc_enable",\
127 	0, 1, 0, \
128 	CFG_VALUE_OR_DEFAULT, \
129 	"MLO reconfig reassoc is supported by target")
130 
131 #define CFG_CMN_MLME_ALL \
132 	CFG(CFG_MLME_MAX_CHAN_SWITCH_IE_ENABLE) \
133 	CFG(CFG_MLME_11BE_TARGET_CAPAB) \
134 	CFG(CFG_MLME_MLO_RECONFIG_REASSOC_ENABLE) \
135 	CFG_MLME_11BE_ALL
136 
137 #endif /* __CFG_CMN_MLME_H */
138