xref: /wlan-driver/qca-wifi-host-cmn/umac/dcs/dispatcher/inc/cfg_dcs.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 /**
18  * DOC: This file contains centralized definitions of DCS component
19  */
20 #ifndef __CONFIG_DCS_H
21 #define __CONFIG_DCS_H
22 
23 #include "cfg_define.h"
24 
25 /*
26  * <ini>
27  * gEnableDcs - Enable/Disable DCS
28  * @Min: 0
29  * @Max: 3
30  * @Default: 0
31  *
32  * This ini is used to enable/disable DCS. Configurations are as follows:
33  * 0 - Disable DCS.
34  * 1 - Enable DCS for CW interference mitigation(CW_IM).
35  * 2 - Enable DCS for WLAN interference mitigation(WLAN_IM).
36  * 3 - Enable both DCS for CW_IM and DCS for WLAN_IM.
37  *
38  * Related: None
39  *
40  * Supported Feature: DCS
41  *
42  * Usage: External
43  *
44  * </ini>
45  */
46 #define CFG_DCS_ENABLE CFG_INI_UINT(\
47 		"gEnableDcs",\
48 		0, 3, 0,\
49 		CFG_VALUE_OR_DEFAULT, "Enable DCS")
50 
51 /*
52  * <ini>
53  * dcs_debug - Configure dcs debug trace level for debug purpose
54  * @Min: 0
55  * @Max: 2
56  * @Default: 0
57  *
58  * This ini is used to configure dcs debug trace level for debug purpose
59  *
60  *
61  * Related: None
62  *
63  * Usage: External
64  *
65  * </ini>
66  */
67 #define CFG_DCS_DEBUG CFG_INI_UINT(\
68 		"dcs_debug",\
69 		0, 2, 0,\
70 		CFG_VALUE_OR_DEFAULT,\
71 		"dcs debug trace level")
72 
73 /*
74  * <ini>
75  * dcs_coch_intfr_threshold - Configure co-channel interference threshold
76  * @Min: 0
77  * @Max: 0xFFFFFFFF
78  * @Default: 30
79  *
80  * This ini is used to configure co-channel interference threshold
81  *
82  *
83  * Related: None
84  *
85  * Usage: External
86  *
87  * </ini>
88  */
89 #define CFG_DCS_COCH_INTFR_THRESHOLD CFG_INI_UINT(\
90 		"dcs_coch_intfr_threshold",\
91 		0, 0xFFFFFFFF, 30,\
92 		CFG_VALUE_OR_DEFAULT,\
93 		"dcs co-channel interference threshold level")
94 
95 /*
96  * <ini>
97  * dcs_tx_err_threshold - Configure transmission failure rate threshold
98  * @Min: 0
99  * @Max: 0xFFFFFFFF
100  * @Default: 30
101  *
102  * This ini is used to configure transmission failure rate threshold
103  *
104  *
105  * Related: None
106  *
107  * Usage: External
108  *
109  * </ini>
110  */
111 #define CFG_DCS_TX_ERR_THRESHOLD CFG_INI_UINT(\
112 		"dcs_tx_err_threshold",\
113 		0, 0xFFFFFFFF, 30,\
114 		CFG_VALUE_OR_DEFAULT,\
115 		"dcs transmission failure rate threshold")
116 
117 /*
118  * <ini>
119  * dcs_phy_err_penalty - Configure channel time wasted due to each Phy
120  * error(phy error penalty)
121  * @Min: 0
122  * @Max: 0xFFFFFFFF
123  * @Default: 500
124  *
125  * This ini is used to configure phy error penalty
126  *
127  *
128  * Related: None
129  *
130  * Usage: External
131  *
132  * </ini>
133  */
134 #define CFG_DCS_PHY_ERR_PENALTY CFG_INI_UINT(\
135 		"dcs_phy_err_penalty",\
136 		0, 0xFFFFFFFF, 500,\
137 		CFG_VALUE_OR_DEFAULT,\
138 		"dcs phy error penalty")
139 
140 /*
141  * <ini>
142  * dcs_phy_err_threshold - Configure phy err threshold
143  * @Min: 0
144  * @Max: 0xFFFFFFFF
145  * @Default: 300
146  *
147  * This ini is used to configure phy error threshold
148  *
149  *
150  * Related: None
151  *
152  * Usage: External
153  *
154  * </ini>
155  */
156 #define CFG_DCS_PHY_ERR_THRESHOLD CFG_INI_UINT(\
157 		"dcs_phy_err_threshold",\
158 		0, 0xFFFFFFFF, 300,\
159 		CFG_VALUE_OR_DEFAULT,\
160 		"dcs phy error threshold")
161 
162 /*
163  * <ini>
164  * dcs_user_max_cu - Configure tx channel utilization due to AP's tx and rx
165  * @Min: 0
166  * @Max: 0xFFFFFFFF
167  * @Default: 50
168  *
169  * This ini is used to configure tx channel utilization due to AP's tx and rx
170  *
171  *
172  * Related: None
173  *
174  * Usage: External
175  *
176  * </ini>
177  */
178 #define CFG_DCS_USER_MAX_CU CFG_INI_UINT(\
179 		"user_max_cu",\
180 		0, 0xFFFFFFFF, 50,\
181 		CFG_VALUE_OR_DEFAULT,\
182 		"dcs tx channel utilization")
183 
184 /*
185  * <ini>
186  * dcs_radar_err_threshold - Configure radar error threshold
187  * @Min: 0
188  * @Max: 0xFFFFFFFF
189  * @Default: 1000
190  *
191  * This ini is used to configure radar error threshold
192  *
193  *
194  * Related: None
195  *
196  * Usage: External
197  *
198  * </ini>
199  */
200 #define CFG_DCS_RADAR_ERR_THRESHOLD CFG_INI_UINT(\
201 		"dcs_radar_err_threshold",\
202 		0, 0xFFFFFFFF, 1000,\
203 		CFG_VALUE_OR_DEFAULT,\
204 		"dcs radar error threshold")
205 
206 /*
207  * <ini>
208  * dcs_intfr_detection_threshold - Configure interference detection threshold
209  * @Min: 0
210  * @Max: 0xFFFFFFFF
211  * @Default: 6
212  *
213  * This ini is used to configure interference detection threshold
214  *
215  *
216  * Related: None
217  *
218  * Usage: External
219  *
220  * </ini>
221  */
222 #define CFG_DCS_INTFR_DETECTION_THRESHOLD CFG_INI_UINT(\
223 		"dcs_intfr_detection_threshold",\
224 		0, 0xFFFFFFFF, 6,\
225 		CFG_VALUE_OR_DEFAULT,\
226 		"dcs interference detection threshold")
227 
228 /*
229  * <ini>
230  * dcs_intfr_detection_window - Configure interference sampling window
231  * @Min: 0
232  * @Max: 0xFFFFFFFF
233  * @Default: 10
234  *
235  * This ini is used to configure interference sampling window
236  *
237  *
238  * Related: None
239  *
240  * Usage: External
241  *
242  * </ini>
243  */
244 #define CFG_DCS_INTFR_DETECTION_WINDOW CFG_INI_UINT(\
245 		"dcs_intfr_detection_window",\
246 		0, 0xFFFFFFFF, 10,\
247 		CFG_VALUE_OR_DEFAULT,\
248 		"dcs interference sampling window")
249 
250 /*
251  * <ini>
252  * dcs_disable_threshold_per_5mins - In five minutes, if dcs happen
253  * more than threshold, then disable dcs for some time
254  * @Min: 0
255  * @Max: 10
256  * @Default: 3
257  *
258  * This ini is used to dcs happen times threshold in five minutes
259  *
260  *
261  * Related: None
262  *
263  * Usage: External
264  *
265  * </ini>
266  */
267 #define CFG_DCS_DISABLE_THRESHOLD_PER_5MINS CFG_INI_UINT(\
268 		"dcs_disable_thresh_per_5mins",\
269 		0, 10, 3,\
270 		CFG_VALUE_OR_DEFAULT,\
271 		"dcs happen times threshold in five minutes")
272 
273 /*
274  * <ini>
275  * dcs_restart_delay - When dcs happen more than threshold in five minutes,
276  * then start to disable dcs for some minutes, then enable dcs again.
277  * @Min: 0
278  * @Max: 0xFFFFFFFF
279  * @Default: 30
280  *
281  * This ini is used to configure dcs disable time length in minute unit
282  *
283  *
284  * Related: None
285  *
286  * Usage: External
287  *
288  * </ini>
289  */
290 #define CFG_DCS_RESTART_DELAY CFG_INI_UINT(\
291 		"dcs_restart_delay",\
292 		0, 0xFFFFFFFF, 30,\
293 		CFG_VALUE_OR_DEFAULT, "dcs restart delay")
294 
295 /*
296  * <ini>
297  * dcs_disable_algorithm - Some feature like SON only need dcs stats,
298  * then disable dcs algorithm for SON.
299  * @Min: 0
300  * @Max: 1
301  * @Default: 0
302  *
303  * This ini is used to disable dcs algorithm
304  *
305  *
306  * Related: None
307  *
308  * Usage: External
309  *
310  * </ini>
311  */
312 #define CFG_DCS_DISABLE_ALGORITHM CFG_INI_BOOL(\
313 		"dcs_disable_algorithm", false,\
314 		"dcs disable algorithm")
315 
316 #define CFG_DCS_ALL \
317 	CFG(CFG_DCS_ENABLE) \
318 	CFG(CFG_DCS_DEBUG) \
319 	CFG(CFG_DCS_COCH_INTFR_THRESHOLD) \
320 	CFG(CFG_DCS_TX_ERR_THRESHOLD) \
321 	CFG(CFG_DCS_PHY_ERR_PENALTY) \
322 	CFG(CFG_DCS_PHY_ERR_THRESHOLD) \
323 	CFG(CFG_DCS_USER_MAX_CU) \
324 	CFG(CFG_DCS_RADAR_ERR_THRESHOLD) \
325 	CFG(CFG_DCS_INTFR_DETECTION_THRESHOLD) \
326 	CFG(CFG_DCS_INTFR_DETECTION_WINDOW) \
327 	CFG(CFG_DCS_DISABLE_THRESHOLD_PER_5MINS) \
328 	CFG(CFG_DCS_RESTART_DELAY) \
329 	CFG(CFG_DCS_DISABLE_ALGORITHM)
330 
331 #endif /* __CONFIG_DCS_H */
332