xref: /wlan-driver/qcacld-3.0/components/mlme/dispatcher/inc/cfg_mlme_feature_flag.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name /**
21*5113495bSYour Name  * DOC: This file contains centralized definitions of converged configuration.
22*5113495bSYour Name  */
23*5113495bSYour Name 
24*5113495bSYour Name #ifndef __CFG_MLME_FEATURE_FLAG_H
25*5113495bSYour Name #define __CFG_MLME_FEATURE_FLAG_H
26*5113495bSYour Name 
27*5113495bSYour Name #define CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY CFG_BOOL( \
28*5113495bSYour Name 		"accept_short_slot_assoc", \
29*5113495bSYour Name 		0, \
30*5113495bSYour Name 		"Accept short slot assoc only")
31*5113495bSYour Name 
32*5113495bSYour Name #define CFG_HCF_ENABLED CFG_BOOL( \
33*5113495bSYour Name 		"enable_hcf", \
34*5113495bSYour Name 		0, \
35*5113495bSYour Name 		"HCF enabled")
36*5113495bSYour Name 
37*5113495bSYour Name #define CFG_RSN_ENABLED CFG_BOOL( \
38*5113495bSYour Name 		"enable_rsn", \
39*5113495bSYour Name 		0, \
40*5113495bSYour Name 		"RSN enabled")
41*5113495bSYour Name 
42*5113495bSYour Name #define CFG_11G_SHORT_PREAMBLE_ENABLED CFG_BOOL( \
43*5113495bSYour Name 		"enable_short_preamble_11g", \
44*5113495bSYour Name 		0, \
45*5113495bSYour Name 		"Short Preamble Enable")
46*5113495bSYour Name 
47*5113495bSYour Name #define CFG_11G_SHORT_SLOT_TIME_ENABLED CFG_BOOL( \
48*5113495bSYour Name 		"enable_short_slot_time_11g", \
49*5113495bSYour Name 		1, \
50*5113495bSYour Name 		"Short Slot time enable")
51*5113495bSYour Name 
52*5113495bSYour Name #define CFG_CHANNEL_BONDING_MODE CFG_UINT( \
53*5113495bSYour Name 		"channel_bonding_mode", \
54*5113495bSYour Name 		0, \
55*5113495bSYour Name 		10, \
56*5113495bSYour Name 		0, \
57*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
58*5113495bSYour Name 		"channel bonding mode")
59*5113495bSYour Name 
60*5113495bSYour Name #define CFG_BLOCK_ACK_ENABLED CFG_UINT( \
61*5113495bSYour Name 		"enable_block_ack", \
62*5113495bSYour Name 		0, \
63*5113495bSYour Name 		3, \
64*5113495bSYour Name 		0, \
65*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
66*5113495bSYour Name 		"enable block Ack")
67*5113495bSYour Name /*
68*5113495bSYour Name  * <ini>
69*5113495bSYour Name  * gEnableAMPDUPS - Enable the AMPDUPS
70*5113495bSYour Name  * @Min: 0
71*5113495bSYour Name  * @Max: 1
72*5113495bSYour Name  * @Default: 0
73*5113495bSYour Name  *
74*5113495bSYour Name  * This ini is used to set default AMPDUPS
75*5113495bSYour Name  *
76*5113495bSYour Name  * Related: None
77*5113495bSYour Name  *
78*5113495bSYour Name  * Supported Feature: STA
79*5113495bSYour Name  *
80*5113495bSYour Name  * Usage: External
81*5113495bSYour Name  *
82*5113495bSYour Name  * </ini>
83*5113495bSYour Name  */
84*5113495bSYour Name 
85*5113495bSYour Name #define CFG_ENABLE_AMPDUPS CFG_INI_BOOL( \
86*5113495bSYour Name 				"gEnableAMPDUPS", \
87*5113495bSYour Name 				0, \
88*5113495bSYour Name 				"Enable AMPDU")
89*5113495bSYour Name 
90*5113495bSYour Name /*
91*5113495bSYour Name  * <ini>
92*5113495bSYour Name  * gFWMccRtsCtsProtection - RTS-CTS protection in MCC.
93*5113495bSYour Name  * @Min: 0
94*5113495bSYour Name  * @Max: 1
95*5113495bSYour Name  * @Default: 0
96*5113495bSYour Name  *
97*5113495bSYour Name  * This ini is used to enable/disable use of long duration RTS-CTS protection
98*5113495bSYour Name  * when SAP goes off channel in MCC mode.
99*5113495bSYour Name  *
100*5113495bSYour Name  * Related: None.
101*5113495bSYour Name  *
102*5113495bSYour Name  * Supported Feature: Concurrency
103*5113495bSYour Name  *
104*5113495bSYour Name  * Usage: External
105*5113495bSYour Name  *
106*5113495bSYour Name  * </ini>
107*5113495bSYour Name  */
108*5113495bSYour Name #define CFG_FW_MCC_RTS_CTS_PROT CFG_INI_UINT( \
109*5113495bSYour Name 		"gFWMccRtsCtsProtection", \
110*5113495bSYour Name 		0, 1, 0, \
111*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
112*5113495bSYour Name 		"RTS-CTS protection in MCC")
113*5113495bSYour Name 
114*5113495bSYour Name /*
115*5113495bSYour Name  * <ini>
116*5113495bSYour Name  * gFWMccBCastProbeResponse - Broadcast Probe Response in MCC.
117*5113495bSYour Name  * @Min: 0
118*5113495bSYour Name  * @Max: 1
119*5113495bSYour Name  * @Default: 0
120*5113495bSYour Name  *
121*5113495bSYour Name  * This ini is used to enable/disable use of broadcast probe response to
122*5113495bSYour Name  * increase the detectability of SAP in MCC mode.
123*5113495bSYour Name  *
124*5113495bSYour Name  * Related: None.
125*5113495bSYour Name  *
126*5113495bSYour Name  * Supported Feature: Concurrency
127*5113495bSYour Name  *
128*5113495bSYour Name  * Usage: External
129*5113495bSYour Name  *
130*5113495bSYour Name  * </ini>
131*5113495bSYour Name  */
132*5113495bSYour Name 
133*5113495bSYour Name #define CFG_FW_MCC_BCAST_PROB_RESP CFG_INI_UINT( \
134*5113495bSYour Name 		"gFWMccBCastProbeResponse", \
135*5113495bSYour Name 		0, 1, 0, \
136*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
137*5113495bSYour Name 		"Broadcast Probe Response in MCC")
138*5113495bSYour Name 
139*5113495bSYour Name /*
140*5113495bSYour Name  * <ini>
141*5113495bSYour Name  * gEnableMCCMode - Enable/Disable MCC feature.
142*5113495bSYour Name  * @Min: 0
143*5113495bSYour Name  * @Max: 1
144*5113495bSYour Name  * @Default: 1
145*5113495bSYour Name  *
146*5113495bSYour Name  * This ini is used to enable/disable MCC feature.
147*5113495bSYour Name  *
148*5113495bSYour Name  * Related: None.
149*5113495bSYour Name  *
150*5113495bSYour Name  * Supported Feature: Concurrency
151*5113495bSYour Name  *
152*5113495bSYour Name  * Usage: External
153*5113495bSYour Name  *
154*5113495bSYour Name  * </ini>
155*5113495bSYour Name  */
156*5113495bSYour Name #define CFG_MCC_FEATURE CFG_INI_UINT( \
157*5113495bSYour Name 		"gEnableMCCMode", \
158*5113495bSYour Name 		0, 1, 1, \
159*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
160*5113495bSYour Name 		"Enable/Disable MCC feature.")
161*5113495bSYour Name 
162*5113495bSYour Name /*
163*5113495bSYour Name  * <ini>
164*5113495bSYour Name  * gChannelBondingMode24GHz - Configures Channel Bonding in 24 GHz
165*5113495bSYour Name  * @Min: 0
166*5113495bSYour Name  * @Max: 10
167*5113495bSYour Name  * @Default: 1
168*5113495bSYour Name  *
169*5113495bSYour Name  * This ini is used to set default channel bonding mode 24GHZ
170*5113495bSYour Name  *
171*5113495bSYour Name  * 0 - 20MHz IF bandwidth centered on IF carrier
172*5113495bSYour Name  * 1 - 40MHz IF bandwidth with lower 20MHz supporting the primary channel
173*5113495bSYour Name  * 2 - reserved
174*5113495bSYour Name  * 3 - 40MHz IF bandwidth with higher 20MHz supporting the primary channel
175*5113495bSYour Name  * 4 - 20/40MHZ offset LOW 40/80MHZ offset CENTERED
176*5113495bSYour Name  * 5 - 20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
177*5113495bSYour Name  * 6 - 20/40MHZ offset HIGH 40/80MHZ offset CENTERED
178*5113495bSYour Name  * 7 - 20/40MHZ offset LOW 40/80MHZ offset LOW
179*5113495bSYour Name  * 8 - 20/40MHZ offset HIGH 40/80MHZ offset LOW
180*5113495bSYour Name  * 9 - 20/40MHZ offset LOW 40/80MHZ offset HIGH
181*5113495bSYour Name  * 10 - 20/40MHZ offset-HIGH 40/80MHZ offset HIGH
182*5113495bSYour Name  *
183*5113495bSYour Name  * Related: None
184*5113495bSYour Name  *
185*5113495bSYour Name  * Supported Feature: STA
186*5113495bSYour Name  *
187*5113495bSYour Name  * Usage: External
188*5113495bSYour Name  *
189*5113495bSYour Name  * </ini>
190*5113495bSYour Name  */
191*5113495bSYour Name #define CFG_CHANNEL_BONDING_MODE_24GHZ CFG_INI_UINT( \
192*5113495bSYour Name 	"gChannelBondingMode24GHz", \
193*5113495bSYour Name 	0, \
194*5113495bSYour Name 	10, \
195*5113495bSYour Name 	1, \
196*5113495bSYour Name 	CFG_VALUE_OR_DEFAULT, \
197*5113495bSYour Name 	"Configures Channel Bonding in 24 GHz")
198*5113495bSYour Name 
199*5113495bSYour Name /*
200*5113495bSYour Name  * <ini>
201*5113495bSYour Name  * gChannelBondingMode5GHz - Configures Channel Bonding in 5 GHz
202*5113495bSYour Name  * @Min: 0
203*5113495bSYour Name  * @Max: 10
204*5113495bSYour Name  * @Default: 1
205*5113495bSYour Name  *
206*5113495bSYour Name  * This ini is used to set default channel bonding mode 5GHZ
207*5113495bSYour Name  *
208*5113495bSYour Name  * Values of 0 - 10 have the same meanings as for gChannelBondingMode24GHz.
209*5113495bSYour Name  *
210*5113495bSYour Name  * Related: None
211*5113495bSYour Name  *
212*5113495bSYour Name  * Supported Feature: STA
213*5113495bSYour Name  *
214*5113495bSYour Name  * Usage: External
215*5113495bSYour Name  *
216*5113495bSYour Name  * </ini>
217*5113495bSYour Name  */
218*5113495bSYour Name #define CFG_CHANNEL_BONDING_MODE_5GHZ CFG_INI_UINT( \
219*5113495bSYour Name 	"gChannelBondingMode5GHz", \
220*5113495bSYour Name 	0, \
221*5113495bSYour Name 	10, \
222*5113495bSYour Name 	1, \
223*5113495bSYour Name 	CFG_VALUE_OR_DEFAULT, \
224*5113495bSYour Name 	"Configures Channel Bonding in 5 GHz")
225*5113495bSYour Name 
226*5113495bSYour Name /*
227*5113495bSYour Name  * <ini>
228*5113495bSYour Name  * update_cw_allowed - process set channel width or not
229*5113495bSYour Name  * @Min: 0
230*5113495bSYour Name  * @Max: 1
231*5113495bSYour Name  * @Default: 1
232*5113495bSYour Name  *
233*5113495bSYour Name  * This ini is used to check whether driver allowed to process set channel
234*5113495bSYour Name  * width request from upper layer or not.
235*5113495bSYour Name  *
236*5113495bSYour Name  * Related: None
237*5113495bSYour Name  *
238*5113495bSYour Name  * Supported Feature: STA
239*5113495bSYour Name  *
240*5113495bSYour Name  * Usage: External
241*5113495bSYour Name  *
242*5113495bSYour Name  * </ini>
243*5113495bSYour Name  */
244*5113495bSYour Name #define CFG_ALLOW_UPDATE_CHANNEL_WIDTH CFG_INI_BOOL( \
245*5113495bSYour Name 					"update_cw_allowed", \
246*5113495bSYour Name 					1, \
247*5113495bSYour Name 					"is update chan width allowed")
248*5113495bSYour Name 
249*5113495bSYour Name #define CFG_FEATURE_FLAG_ALL \
250*5113495bSYour Name 	CFG(CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY) \
251*5113495bSYour Name 	CFG(CFG_HCF_ENABLED) \
252*5113495bSYour Name 	CFG(CFG_RSN_ENABLED) \
253*5113495bSYour Name 	CFG(CFG_FW_MCC_RTS_CTS_PROT) \
254*5113495bSYour Name 	CFG(CFG_FW_MCC_BCAST_PROB_RESP) \
255*5113495bSYour Name 	CFG(CFG_MCC_FEATURE) \
256*5113495bSYour Name 	CFG(CFG_11G_SHORT_PREAMBLE_ENABLED) \
257*5113495bSYour Name 	CFG(CFG_11G_SHORT_SLOT_TIME_ENABLED) \
258*5113495bSYour Name 	CFG(CFG_CHANNEL_BONDING_MODE) \
259*5113495bSYour Name 	CFG(CFG_BLOCK_ACK_ENABLED) \
260*5113495bSYour Name 	CFG(CFG_ENABLE_AMPDUPS) \
261*5113495bSYour Name 	CFG(CFG_CHANNEL_BONDING_MODE_24GHZ) \
262*5113495bSYour Name 	CFG(CFG_CHANNEL_BONDING_MODE_5GHZ) \
263*5113495bSYour Name 	CFG(CFG_ALLOW_UPDATE_CHANNEL_WIDTH)
264*5113495bSYour Name 
265*5113495bSYour Name #endif /* __CFG_MLME_FEATURE_FLAG_H */
266*5113495bSYour Name 
267