blob: acb902394a2f1d111860fc961c9acc7a40bb5343 [file] [log] [blame]
Dundi Raviteja8e338282018-09-25 17:16:04 +05301/*
Alan Chene3ef9a92020-01-08 17:30:03 -08002 * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
Dundi Raviteja8e338282018-09-25 17:16:04 +05303 *
4 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
19/**
20 * DOC: This file contains centralized definitions of converged configuration.
21 */
22
23#ifndef __HDD_CONFIG_H
24#define __HDD_CONFIG_H
25
Ashish Kumar Dhanotiyad2fef2c2020-01-07 20:38:57 +053026#include "hdd_sar_safety_config.h"
27
Vignesh Viswanathan5a3c8be2018-11-28 12:30:50 +053028#if defined(CONFIG_HL_SUPPORT)
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +053029#include "wlan_tgt_def_config_hl.h"
Vignesh Viswanathan5a3c8be2018-11-28 12:30:50 +053030#else
31#include "wlan_tgt_def_config.h"
32#endif
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +053033
Wu Gaobc6eaa12018-11-30 14:17:45 +080034#define CFG_QDF_TRACE_ENABLE_DEFAULT (0xffff)
Sourav Mohapatra58841062018-11-19 16:33:27 +053035#include <wlan_action_oui_public_struct.h>
Wu Gaobc6eaa12018-11-30 14:17:45 +080036
Dundi Raviteja8e338282018-09-25 17:16:04 +053037/**
38 * enum hdd_wext_control - knob for wireless extensions
39 * @hdd_wext_disabled - interface is completely disabled. An access
40 * control error log will be generated for each attempted use.
41 * @hdd_wext_deprecated - interface is available but should not be
42 * used. An access control warning log will be generated for each
43 * use.
44 * @hdd_wext_enabled - interface is available without restriction. No
45 * access control logs will be generated.
46 *
47 * enum hdd_wext_control is used to enable coarse grained control on
48 * wireless extensions ioctls. This control is used by configuration
49 * item private_wext_control.
50 *
51 */
52enum hdd_wext_control {
53 hdd_wext_disabled = 0,
54 hdd_wext_deprecated = 1,
55 hdd_wext_enabled = 2,
56};
57
58/*
59 * <ini>
60 * private_wext_control - Private wireless extensions control
61 * @Min: 0
62 * @Max: 2
63 * @Default: 1
64 *
65 * Values are per enum hdd_wext_control.
66 * This ini is used to control access to private wireless extensions
67 * ioctls SIOCIWFIRSTPRIV (0x8BE0) thru SIOCIWLASTPRIV (0x8BFF). The
68 * functionality provided by some of these ioctls has been superceeded
69 * by cfg80211 (either standard commands or vendor commands), but many
70 * of the private ioctls do not have a cfg80211-based equivalent, so
71 * by default support for these ioctls is deprecated.
72 *
73 * Related: None
74 *
75 * Supported Feature: All
76 *
77 * Usage: Internal/External
78 *
79 * </ini>
80 */
81#define CFG_PRIVATE_WEXT_CONTROL CFG_INI_UINT( \
82 "private_wext_control", \
83 hdd_wext_disabled, \
84 hdd_wext_enabled, \
85 hdd_wext_deprecated, \
86 CFG_VALUE_OR_DEFAULT, \
87 "Private WEXT Control")
88
gaurank kathpalia43c52622019-02-11 12:30:05 +053089enum hdd_dot11_mode {
90 eHDD_DOT11_MODE_AUTO = 0, /* covers all things we support */
91 eHDD_DOT11_MODE_abg, /* 11a/b/g only, no HT, no proprietary */
92 eHDD_DOT11_MODE_11b,
93 eHDD_DOT11_MODE_11g,
94 eHDD_DOT11_MODE_11n,
95 eHDD_DOT11_MODE_11g_ONLY,
96 eHDD_DOT11_MODE_11n_ONLY,
97 eHDD_DOT11_MODE_11b_ONLY,
98 eHDD_DOT11_MODE_11ac_ONLY,
99 eHDD_DOT11_MODE_11ac,
100 eHDD_DOT11_MODE_11a,
101 eHDD_DOT11_MODE_11ax_ONLY,
102 eHDD_DOT11_MODE_11ax,
103};
104
105/*
106 * <ini>
107 * gDot11Mode - Phymode of vdev
108 * @Min: 0 (auto)
109 * @Max: 12 (11ax)
110 * @Default: 12 (11ax)
111 *
112 * This ini is used to set Phy Mode (auto, b, g, n, etc/) Valid values are
113 * 0-12, with 0 = Auto, 12 = 11ax.
114 *
115 * Related: None.
116 *
117 * Supported Feature: SAP
118 *
119 * Usage: Internal/External
120 *
121 * </ini>
122 */
123 #define CFG_HDD_DOT11_MODE CFG_INI_UINT( \
124 "gDot11Mode", \
125 eHDD_DOT11_MODE_AUTO, \
126 eHDD_DOT11_MODE_11ax, \
127 eHDD_DOT11_MODE_11ax, \
128 CFG_VALUE_OR_DEFAULT, \
129 "dot11 mode")
130
Dundi Raviteja8e338282018-09-25 17:16:04 +0530131/*
132 * <ini>
133 * gInterfaceChangeWait - Interface change wait
Rajeev Kumar7b7bb3f2018-12-20 12:09:54 -0800134 * @Min: 0,
Dundi Raviteja8e338282018-09-25 17:16:04 +0530135 * @Max: 500000
136 * @Default: 10000
137 *
138 * Timer waiting for interface up from the upper layer. If
139 * this timer expires all the cds modules shall be closed.
140 * Time Units: ms
141 *
Rajeev Kumar7b7bb3f2018-12-20 12:09:54 -0800142 * Value 0 can be used to disable idle module stop.
143 *
Dundi Raviteja8e338282018-09-25 17:16:04 +0530144 * Related: None
145 *
146 * Supported Feature: All
147 *
148 * </ini>
149 */
150#define CFG_INTERFACE_CHANGE_WAIT CFG_INI_UINT( \
151 "gInterfaceChangeWait", \
Rajeev Kumar7b7bb3f2018-12-20 12:09:54 -0800152 0, \
Dundi Raviteja8e338282018-09-25 17:16:04 +0530153 500000, \
154 10000, \
155 CFG_VALUE_OR_DEFAULT, \
156 "Interface change wait")
157
158#ifdef QCA_WIFI_NAPIER_EMULATION
159#define CFG_TIMER_MULTIPLIER_DEFAULT 100
160#else
161#define CFG_TIMER_MULTIPLIER_DEFAULT 1
162#endif
163
164/*
165 * <ini>
166 * gTimerMultiplier - Scale QDF timers by this value
167 * @Min: 1
168 * @Max: 0xFFFFFFFF
169 * @Default: 1 (100 for emulation)
170 *
171 * To assist in debugging emulation setups, scale QDF timers by this factor.
172 *
173 * @E.g.
174 * # QDF timers expire in real time
175 * gTimerMultiplier=1
176 * # QDF timers expire after 100 times real time
177 * gTimerMultiplier=100
178 *
179 * Related: None
180 *
181 * Usage: Internal
182 *
183 * </ini>
184 */
185#define CFG_TIMER_MULTIPLIER CFG_INI_UINT( \
186 "gTimerMultiplier", \
187 1, \
188 0xFFFFFFFF, \
189 CFG_TIMER_MULTIPLIER_DEFAULT, \
190 CFG_VALUE_OR_DEFAULT, \
191 "Timer Multiplier")
192
Sourav Mohapatraf6fefb82019-10-22 14:36:41 +0530193#define CFG_BUG_ON_REINIT_FAILURE_DEFAULT 0
Dundi Raviteja8e338282018-09-25 17:16:04 +0530194/*
195 * <ini>
196 * g_bug_on_reinit_failure - Enable/Disable bug on reinit
197 * @Min: 0
198 * @Max: 1
199 * @Default: 1
200 *
201 * This ini is used to debug ssr reinit failure issues by raising vos bug so
202 * dumps can be collected.
203 * g_bug_on_reinit_failure = 0 wlan driver will only recover after driver
204 * unload and load
205 * g_bug_on_reinit_failure = 1 raise vos bug to collect dumps
206 *
207 * Related: gEnableSSR
208 *
209 * Supported Feature: SSR
210 *
211 * Usage: External
212 *
213 * </ini>
214 */
215#define CFG_BUG_ON_REINIT_FAILURE CFG_INI_BOOL( \
216 "g_bug_on_reinit_failure", \
217 CFG_BUG_ON_REINIT_FAILURE_DEFAULT, \
218 "BUG on reinit failure")
219
220/*
221 * <ini>
222 * gEnableDumpCollect - It will use for collect the dumps
223 * @Min: 0
224 * @Max: 1
225 * @Default: 1
226 *
227 * This ini is used to set collect default dump
228 *
229 * Related: None
230 *
231 * Supported Feature: STA
232 *
233 * Usage: Internal/External
234 *
235 * </ini>
236 */
237#define CFG_ENABLE_RAMDUMP_COLLECTION CFG_INI_BOOL( \
238 "gEnableDumpCollect", \
239 1, \
240 "Enable dump collect")
241
242#if defined(MDM_PLATFORM) && !defined(FEATURE_MULTICAST_HOST_FW_MSGS)
243#define CFG_MULTICAST_HOST_FW_MSGS_DEFAULT 0
244#else
245#define CFG_MULTICAST_HOST_FW_MSGS_DEFAULT 1
246#endif
247
248/*
249 * <ini>
250 * gMulticastHostFwMsgs - Multicast host FW messages
251 * @Min: 0
252 * @Max: 1
253 * @Default: 0 for MDM platform and 1 for other
254 *
255 * </ini>
256 */
257#define CFG_MULTICAST_HOST_FW_MSGS CFG_INI_UINT( \
258 "gMulticastHostFwMsgs", \
259 0, \
260 1, \
261 CFG_MULTICAST_HOST_FW_MSGS_DEFAULT, \
262 CFG_VALUE_OR_DEFAULT, \
263 "Multicast host FW msgs")
264
265#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
266/*
267 * <ini>
268 * wlanLoggingEnable - Wlan logging enable
269 * @Min: 0
270 * @Max: 1
271 * @Default: 1
272 *
273 * </ini>
274 */
275#define CFG_WLAN_LOGGING_SUPPORT CFG_INI_BOOL( \
276 "wlanLoggingEnable", \
277 1, \
278 "Wlan logging enable")
279
280/*
281 * <ini>
Hangtian Zhuc7642602019-09-11 17:47:43 +0800282 * host_log_custom_nl_proto - Host log netlink protocol
283 * @Min: 0
284 * @Max: 32
285 * @Default: 2
286 *
287 * This ini is used to set host log netlink protocol. The default
288 * value is 2 (NETLINK_USERSOCK), customer should avoid selecting the
289 * netlink protocol that already used on their platform by other
290 * applications or services. By choosing the non-default value(2),
291 * Customer need to change the netlink protocol of application receive
292 * tool(cnss_diag) accordingly. Available values could be:
293 *
294 * host_log_custom_nl_proto = 0 - NETLINK_ROUTE, Routing/device hook
295 * host_log_custom_nl_proto = 1 - NETLINK_UNUSED, Unused number
296 * host_log_custom_nl_proto = 2 - NETLINK_USERSOCK, Reserved for user
297 * mode socket protocols
298 * host_log_custom_nl_proto = 3 - NETLINK_FIREWALL, Unused number,
299 * formerly ip_queue
300 * host_log_custom_nl_proto = 4 - NETLINK_SOCK_DIAG, socket monitoring
301 * host_log_custom_nl_proto = 5 - NETLINK_NFLOG, netfilter/iptables ULOG
302 * host_log_custom_nl_proto = 6 - NETLINK_XFRM, ipsec
303 * host_log_custom_nl_proto = 7 - NETLINK_SELINUX, SELinux event
304 * notifications
305 * host_log_custom_nl_proto = 8 - NETLINK_ISCSI, Open-iSCSI
306 * host_log_custom_nl_proto = 9 - NETLINK_AUDIT, auditing
307 * host_log_custom_nl_proto = 10 - NETLINK_FIB_LOOKUP
308 * host_log_custom_nl_proto = 11 - NETLINK_CONNECTOR
309 * host_log_custom_nl_proto = 12 - NETLINK_NETFILTER, netfilter subsystem
310 * host_log_custom_nl_proto = 13 - NETLINK_IP6_FW
311 * host_log_custom_nl_proto = 14 - NETLINK_DNRTMSG, DECnet routing messages
312 * host_log_custom_nl_proto = 15 - NETLINK_KOBJECT_UEVENT, Kernel
313 * messages to userspace
314 * host_log_custom_nl_proto = 16 - NETLINK_GENERIC, leave room for
315 * NETLINK_DM (DM Events)
316 * host_log_custom_nl_proto = 18 - NETLINK_SCSITRANSPORT, SCSI Transports
317 * host_log_custom_nl_proto = 19 - NETLINK_ECRYPTFS
318 * host_log_custom_nl_proto = 20 - NETLINK_RDMA
319 * host_log_custom_nl_proto = 21 - NETLINK_CRYPTO, Crypto layer
320 * host_log_custom_nl_proto = 22 - NETLINK_SMC, SMC monitoring
321 *
322 * The max value is: MAX_LINKS which is 32
323 *
324 * Related: None
325 *
326 * Supported Feature: STA
327 *
328 * Usage: Internal/External
329 *
330 * </ini>
331 */
332#define CFG_HOST_LOG_CUSTOM_NETLINK_PROTO CFG_INI_UINT( \
333 "host_log_custom_nl_proto", \
334 0, \
335 32, \
336 2, \
337 CFG_VALUE_OR_DEFAULT, \
338 "host log custom netlink protocol")
339
340/*
341 * <ini>
Dundi Raviteja8e338282018-09-25 17:16:04 +0530342 * wlanLoggingToConsole - Wlan logging to console
343 * @Min: 0
344 * @Max: 1
345 * @Default: 1
346 *
347 * </ini>
348 */
349#define CFG_WLAN_LOGGING_CONSOLE_SUPPORT CFG_INI_BOOL( \
350 "wlanLoggingToConsole", \
351 1, \
352 "Wlan logging to console")
353
354#define CFG_WLAN_LOGGING_SUPPORT_ALL \
355 CFG(CFG_WLAN_LOGGING_SUPPORT) \
Hangtian Zhuc7642602019-09-11 17:47:43 +0800356 CFG(CFG_WLAN_LOGGING_CONSOLE_SUPPORT) \
357 CFG(CFG_HOST_LOG_CUSTOM_NETLINK_PROTO)
Dundi Raviteja8e338282018-09-25 17:16:04 +0530358#else
359#define CFG_WLAN_LOGGING_SUPPORT_ALL
360#endif
361
362#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
363/*
364 * <ini>
wadesong5cea9122018-11-12 18:05:39 +0800365 * gWlanAutoShutdown - Wlan auto shutdown timer value
Dundi Raviteja8e338282018-09-25 17:16:04 +0530366 * @Min: 0
367 * @Max: 86400
368 * @Default: 0
369 *
wadesong5cea9122018-11-12 18:05:39 +0800370 * This ini specifies the seconds of WLAN inactivity firmware has to wait
371 * before indicating WLAN idle event to driver. Upon receiving firmware's
372 * WLAN idle indication, driver may indicate similar event to upper layer
373 * daemons(SCM, or any other components working to achieve the same purpose),
374 * who may choose what to do next, e.g. whether to unload driver module or not.
375 * 0 indicates no auto shutdown will take place.
376 *
Dundi Raviteja8e338282018-09-25 17:16:04 +0530377 * </ini>
378 */
379#define CFG_WLAN_AUTO_SHUTDOWN CFG_INI_UINT( \
380 "gWlanAutoShutdown", \
381 0, \
382 86400, \
383 0, \
384 CFG_VALUE_OR_DEFAULT, \
385 "Wlan auto shutdown")
386#define CFG_WLAN_AUTO_SHUTDOWN_ALL \
387 CFG(CFG_WLAN_AUTO_SHUTDOWN)
388#else
389#define CFG_WLAN_AUTO_SHUTDOWN_ALL
390#endif
391
392/*
393 * <ini>
394 * gEnablefwprint - Enable FW uart print
395 * @Min: 0
396 * @Max: 1
397 * @Default: 0
398 *
399 * </ini>
400 */
401#define CFG_ENABLE_FW_UART_PRINT CFG_INI_BOOL( \
402 "gEnablefwprint", \
403 0, \
404 "Enable FW uart print")
405
406/*
407 * <ini>
408 * gEnablefwlog - Enable FW log
409 * @Min: 0
410 * @Max: 2
411 * @Default: 1
412 *
413 * </ini>
414 */
415#define CFG_ENABLE_FW_LOG CFG_INI_UINT( \
416 "gEnablefwlog", \
417 0, \
418 2, \
419 1, \
420 CFG_VALUE_OR_DEFAULT, \
421 "Enable FW log")
422
423#ifndef REMOVE_PKT_LOG
424
425#ifdef FEATURE_PKTLOG
426#define CFG_ENABLE_PACKET_LOG_DEFAULT 1
427#else
428#define CFG_ENABLE_PACKET_LOG_DEFAULT 0
429#endif
430
431/*
432 * <ini>
433 * gEnablePacketLog - Enale packet log
434 * @Min: 0
435 * @Max: 1
wadesong37779152018-11-15 13:08:15 +0800436 * @Default: 1 if packet log code is enabled, 0 otherwise
437 *
438 * This option enables/disables packet log collecting.
Dundi Raviteja8e338282018-09-25 17:16:04 +0530439 *
440 * </ini>
441 */
442#define CFG_ENABLE_PACKET_LOG CFG_INI_BOOL( \
443 "gEnablePacketLog", \
444 CFG_ENABLE_PACKET_LOG_DEFAULT, \
445 "Enable packet log")
446
447#define CFG_ENABLE_PACKET_LOG_ALL \
448 CFG(CFG_ENABLE_PACKET_LOG)
449#else
450#define CFG_ENABLE_PACKET_LOG_ALL
451#endif
452
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530453#ifdef FEATURE_RUNTIME_PM
Manikandan Mohan18aa38c2020-01-15 13:50:17 -0800454
455/**
456 * enum hdd_runtime_pm_cfg - Runtime PM (RTPM) configuration options
457 * @hdd_runtime_pm_disabled: RTPM and CxPC aware RTPM disabled
458 * @hdd_runtime_pm_static: RTPM enabled, but CxPC aware RTPM disabled
459 * @hdd_runtime_pm_dynamic: RTPM and CxPC aware RTPM enabled
460 */
461enum hdd_runtime_pm_cfg {
462 hdd_runtime_pm_disabled = 0,
463 hdd_runtime_pm_static = 1,
464 hdd_runtime_pm_dynamic = 2,
465};
466
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530467/*
468 * <ini>
469 * gRuntimePM - enable runtime suspend
470 * @Min: 0
Alan Chene3ef9a92020-01-08 17:30:03 -0800471 * @Max: 2
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530472 * @Default: 0
473 *
Alan Chene3ef9a92020-01-08 17:30:03 -0800474 * This ini is used to enable runtime PM
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530475 *
Alan Chene3ef9a92020-01-08 17:30:03 -0800476 * 0: RTPM disabled, so CxPC aware RTPM will be disabled as well
477 * 1: RTPM enabled, but CxPC aware RTPM disabled
478 * 2: RTPM enabled and CxPC aware RTPM enabled as well
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530479 * Related: None
480 *
481 * Supported Feature: Power Save
482 *
483 * Usage: External
484 *
485 * </ini>
486 */
Alan Chene3ef9a92020-01-08 17:30:03 -0800487#define CFG_ENABLE_RUNTIME_PM CFG_INI_UINT( \
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530488 "gRuntimePM", \
489 0, \
Alan Chene3ef9a92020-01-08 17:30:03 -0800490 2, \
491 0, \
492 CFG_VALUE_OR_DEFAULT, \
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530493 "This ini is used to enable runtime_suspend")
494#define CFG_ENABLE_RUNTIME_PM_ALL \
495 CFG(CFG_ENABLE_RUNTIME_PM)
496#else
497#define CFG_ENABLE_RUNTIME_PM_ALL
498#endif
499
500/*
501 * <ini>
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530502 * gInformBssRssiRaw - Report rssi in cfg80211_inform_bss_frame
503 * @Min: 0
504 * @Max: 1
505 * @Default: 1
506 *
507 * Option to report rssi in cfg80211_inform_bss_frame()
508 *
509 * Related: None
510 *
511 * Supported Feature: N/A
512 *
513 * Usage: External
514 *
515 * </ini>
516 */
517#define CFG_INFORM_BSS_RSSI_RAW CFG_INI_BOOL( \
518 "gInformBssRssiRaw", \
519 1, \
520 "Option to report rssi in cfg80211_inform_bss_frame")
521
522#ifdef FEATURE_WLAN_DYNAMIC_CVM
523/*
524 * <ini>
525 * gConfigVCmodeBitmap - Bitmap for operating voltage corner mode
526 * @Min: 0x00000000
527 * @Max: 0x0fffffff
528 * @Default: 0x0000000a
529 * This ini is used to set operating voltage corner mode for differenet
530 * phymode and bw configurations. Every 2 bits till BIT27 are dedicated
531 * for a specific configuration. Bit values decide the type of voltage
532 * corner mode. All the details below -
533 *
534 * Configure operating voltage corner mode based on phymode and bw.
535 * bit 0-1 - operating voltage corner mode for 11a/b.
536 * bit 2-3 - operating voltage corner mode for 11g.
537 * bit 4-5 - operating voltage corner mode for 11n, 20MHz, 1x1.
538 * bit 6-7 - operating voltage corner mode for 11n, 20MHz, 2x2.
539 * bit 8-9 - operating voltage corner mode for 11n, 40MHz, 1x1.
540 * bit 10-11 - operating voltage corner mode for 11n, 40MHz, 2x2.
541 * bit 12-13 - operating voltage corner mode for 11ac, 20MHz, 1x1.
542 * bit 14-15 - operating voltage corner mode for 11ac, 20MHz, 2x2.
543 * bit 16-17 - operating voltage corner mode for 11ac, 40MHz, 1x1.
544 * bit 18-19 - operating voltage corner mode for 11ac, 40MHz, 2x2.
545 * bit 20-21 - operating voltage corner mode for 11ac, 80MHz, 1x1.
546 * bit 22-23 - operating voltage corner mode for 11ac, 80MHz, 2x2.
547 * bit 24-25 - operating voltage corner mode for 11ac, 160MHz, 1x1.
548 * bit 26-27 - operating voltage corner mode for 11ac, 160MHz, 2x2.
549 * ---------------------------------------------
550 * 00 - Static voltage corner SVS
551 * 01 - static voltage corner LOW SVS
552 * 10 - Dynamic voltage corner selection based on TPUT
553 * 11 - Dynamic voltage corner selection based on TPUT and Tx Flush counters
554
555 * Related: None
556 *
557 * Supported Feature: None
558 *
559 * Usage: External
560 *
561 * </ini>
562 */
563#define CFG_VC_MODE_BITMAP CFG_INI_INT( \
564 "gConfigVCmode", \
565 0x00000000, \
566 0x0fffffff, \
567 0x00000005, \
568 CFG_VALUE_OR_DEFAULT, \
569 "Bitmap for operating voltage corner mode")
570
571#define CFG_VC_MODE_BITMAP_ALL CFG(CFG_VC_MODE_BITMAP)
572#else
573#define CFG_VC_MODE_BITMAP_ALL
574#endif
575
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530576/*
577 * <ini>
sheenam monga67ecb072019-09-20 11:25:23 +0530578 * def_sta_operating_freq - Default STA operating Freq
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530579 * @Min: 0
sheenam monga67ecb072019-09-20 11:25:23 +0530580 * @Max: 2484
581 * @Default: 2412
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530582 *
sheenam monga67ecb072019-09-20 11:25:23 +0530583 * This ini is used to specify the default operating frequency of a STA during
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530584 * initialization.
585 *
586 * Related: None
587 *
588 * Supported Feature: STA
589 *
590 * Usage: External
591 *
Wu Gao814ce702019-02-20 16:39:53 +0800592 * </ini>
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530593 */
sheenam monga67ecb072019-09-20 11:25:23 +0530594#define CFG_OPERATING_FREQUENCY CFG_INI_UINT( \
595 "def_sta_operating_freq", \
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530596 0, \
sheenam monga67ecb072019-09-20 11:25:23 +0530597 2484, \
598 2412, \
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530599 CFG_VALUE_OR_DEFAULT, \
sheenam monga67ecb072019-09-20 11:25:23 +0530600 "Default STA Operating Frequency")
gaurank kathpalia566c81b2019-02-20 14:31:45 +0530601#ifdef DHCP_SERVER_OFFLOAD
602#define IPADDR_NUM_ENTRIES (4)
603#define IPADDR_STRING_LENGTH (16)
604#define CFG_DHCP_SERVER_IP_DEFAULT ""
605
606/*
607 * struct wlan_mlme_chainmask - All chainmask related cfg items
608 * @dhcpServerIP: Dhcp server IP address
609 * @is_dhcp_server_ip_valid: is dhcp server valid
610 */
611struct dhcp_server {
612 uint8_t dhcp_server_ip[IPADDR_NUM_ENTRIES];
613 bool is_dhcp_server_ip_valid;
614}
615
616/*
617 * <ini>
618 * gDHCPServerIP - Dhcp server Ip name
619 * @Default:
620 *
621 * This ini is used to give the DHCP IP server name
622 */
623#define CFG_DHCP_SERVER_IP_NAME \
624 CFG_INI_STRING("gDHCPServerIP", \
625 0, IPADDR_STRING_LENGTH, CFG_DHCP_SERVER_IP_DEFAULT, "DHCP Server IP")
626#endif /* DHCP_SERVER_OFFLOAD */
627
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530628/*
629 * <ini>
630 * gNumVdevs - max number of VDEVs supported
631 *
632 * @Min: 0x1
633 * @Max: 0x4
634 * @Default: CFG_TGT_NUM_VDEV
635 *
636 * Usage: External
637 *
638 * </ini>
639 */
640#define CFG_NUM_VDEV_ENABLE CFG_INI_UINT( \
641 "gNumVdevs", \
642 1, \
643 4, \
644 CFG_TGT_NUM_VDEV, \
645 CFG_VALUE_OR_DEFAULT, \
646 "Number of VDEVs")
647
648#define CFG_CONCURRENT_IFACE_MAX_LEN 16
649/*
650 * <ini>
651 * gEnableConcurrentSTA - This will control the creation of concurrent STA
652 * interface
653 * @Default: NULL
654 *
655 * This ini is used for providing control to create a concurrent STA session
656 * along with the creation of wlan0 and p2p0. The name of the interface is
657 * specified as the parameter
658 *
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530659 * Usage: Internal
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530660 *
661 * </ini>
662 */
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +0530663
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +0530664#define CFG_ENABLE_CONCURRENT_STA CFG_INI_STRING( \
665 "gEnableConcurrentSTA", \
666 0, \
667 CFG_CONCURRENT_IFACE_MAX_LEN, \
668 "", \
669 "Enable Concurrent STA")
670
671#define CFG_DBS_SCAN_PARAM_LENGTH 42
672/*
673 * <ini>
674 * gdbs_scan_selection - DBS Scan Selection.
675 * @Default: ""
676 *
677 * This ini is used to enable DBS scan selection.
678 * Example
679 * @Value: "5,2,2,16,2,2"
680 * 1st argument is module_id, 2nd argument is number of DBS scan,
681 * 3rd argument is number of non-DBS scan,
682 * and other arguments follows.
683 * 5,2,2,16,2,2 means:
684 * 5 is module id, 2 is num of DBS scan, 2 is num of non-DBS scan.
685 * 16 is module id, 2 is num of DBS scan, 2 is num of non-DBS scan.
686 *
687 * Related: None.
688 *
689 * Supported Feature: DBS Scan
690 *
691 * Usage: Internal/External
692 *
693 * </ini>
694 */
695#define CFG_DBS_SCAN_SELECTION CFG_INI_STRING( \
696 "gdbs_scan_selection", \
697 0, \
698 CFG_DBS_SCAN_PARAM_LENGTH, \
699 "", \
700 "DBS Scan Selection")
701
Sourav Mohapatra58841062018-11-19 16:33:27 +0530702/*
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530703 * </ini>
704 * enable_mac_provision - Enable/disable MAC address provisioning feature
705 * @Min: 0
706 * @Max: 1
707 * @Default: 0
Sourav Mohapatra58841062018-11-19 16:33:27 +0530708 *
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530709 * This ini is used to enable/disable MAC address provisioning feature
Sourav Mohapatra58841062018-11-19 16:33:27 +0530710 *
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530711 * Supported Feature: STA/SAP/P2P
Sourav Mohapatra58841062018-11-19 16:33:27 +0530712 *
713 * Usage: External
714 *
715 * </ini>
716 */
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530717#define CFG_ENABLE_MAC_PROVISION CFG_INI_BOOL( \
718 "enable_mac_provision", \
719 0, \
720 "enable/disable MAC address provisioning feature")
Sourav Mohapatra58841062018-11-19 16:33:27 +0530721
722/*
723 * <ini>
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530724 * provisioned_intf_pool - It is bit mask value of Interfaces
725 * @Min: 0
726 * @Max: 0xffffffff
727 * @Default: 0xffffffff
Sourav Mohapatra58841062018-11-19 16:33:27 +0530728 *
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530729 * This ini will contain the bitmask of all the interfaces
730 * which can use addresses from provisioned list. Using enum QDF_OPMODE
731 * for deciding the bit positions corresponding to each interface.
732 * Bit 0 : QDF_STA_MODE
733 * Bit 1 : QDF_SAP_MODE
734 * Bit 2 : QDF_P2P_CLIENT_MODE
735 * Bit 3 : QDF_P2P_GO_MODE
736 * Bit 4 : QDF_FTM_MODE
737 * Bit 5 : QDF_IBSS_MODE
738 * Bit 6 : QDF_MONITOR_MODE
739 * Bit 7 : QDF_P2P_DEVICE_MODE
740 * Bit 8 : QDF_OCB_MODE
741 * Bit 9 : QDF_EPPING_MODE
742 * Bit 10 : QDF_QVIT_MODE
743 * Bit 11 : QDF_NDI_MODE
744 * Bit 12 : QDF_MAX_NO_OF_MODE
745 * For example :
746 * If Bit 0 represents STA
747 * Bit 1 represents SAP
748 * Bit 2 represents P2PGO
749 * If only STA and SAP can use addresses from provisioned list then the value
750 * of ini should be 3 (00000011) as first and second bit should be set.
751 * If only STA and P2PGO can use addresses from provisioned list then the value
752 * of ini should be 5 (00000101) as first and third bit should be set.
753 * Similarly, for only SAP and P2PGO ini should be 6 (00000110)
Sourav Mohapatra58841062018-11-19 16:33:27 +0530754 *
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530755 * Supported Feature: STA/SAP/P2P
Sourav Mohapatra58841062018-11-19 16:33:27 +0530756 *
757 * Usage: External
758 *
759 * </ini>
760 */
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530761#define CFG_PROVISION_INTERFACE_POOL CFG_INI_UINT( \
762 "provisioned_intf_pool", \
763 0, \
764 0xffffffff, \
765 0xffffffff, \
766 CFG_VALUE_OR_DEFAULT, \
767 "It is bit mask value of Interfaces")
Sourav Mohapatra58841062018-11-19 16:33:27 +0530768
769/*
770 * <ini>
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530771 * deriveded_intf_pool - It is bit mask value of Interfaces
772 * @Min: 0
773 * @Max: 0xffffffff
774 * @Default: 0xffffffff
Sourav Mohapatra58841062018-11-19 16:33:27 +0530775 *
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530776 * This ini will contain the bitmask of all the interfaces
777 * which can use addresses from derived list
Sourav Mohapatra58841062018-11-19 16:33:27 +0530778 *
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530779 *
780 * Supported Feature: STA/SAP/P2P
Sourav Mohapatra58841062018-11-19 16:33:27 +0530781 *
782 * Usage: External
783 *
784 * </ini>
785 */
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +0530786#define CFG_DERIVED_INTERFACE_POOL CFG_INI_UINT( \
787 "derived_intf_pool", \
788 0, \
789 0xffffffff, \
790 0xffffffff, \
791 CFG_VALUE_OR_DEFAULT, \
792 "It is bit mask value of Interfaces")
Sourav Mohapatra58841062018-11-19 16:33:27 +0530793
794/*
795 * Start of action oui inis
796 *
797 * To enable action oui feature, set gEnableActionOUI
798 *
799 * Each action oui is expected in the following format:
800 * <Extension 1> <Extension 2> ..... <Extension 10> (maximum 10)
801 *
802 * whereas, each Extension is separated by space and have the following format:
803 * <Token1> <Token2> <Token3> <Token4> <Token5> <Token6> <Token7> <Token8>
804 * where each Token is a string of hexa-decimal digits and
805 * following are the details about each token
806 *
807 * Token1 = OUI
808 * Token2 = Data_Length
809 * Token3 = Data
810 * Token4 = Data_Mask
811 * Token5 = Info_Presence_Bit
812 * Token6 = MAC_Address
813 * Token7 = Mac_Address Mask
814 * Token8 = Capability
815 *
816 * <OUI> is mandatory and it can be either 3 or 5 bytes means 6 or 10
817 * hexa-decimal characters
818 * If the OUI and Data checks needs to be ignored, the oui FFFFFF
819 * needs to be provided as OUI and bit 0 of Info_Presence_Bit should
820 * be set to 0.
821 *
822 * <Data_Length> is mandatory field and should give length of
823 * the <Data> if present else zero
824 *
825 * Presence of <Data> is controlled by <Data_Length>, if <Data_Length> is 0,
826 * then <Data> is not expected else Data of the size Data Length bytes are
827 * expected which means the length of Data string is 2 * Data Length,
828 * since every byte constitutes two hexa-decimal characters.
829 *
830 * <Data_Mask> is mandatory if <Data> is present and length of the
831 * Data mask string depends on the <Data Length>
832 * If <Data Length> is 06, then length of Data Mask string is
833 * 2 characters (represents 1 byte)
834 * data_mask_length = ((Data_Length - (Data_Length % 8)) / 8) +
835 * ((Data_Length % 8) ? 1 : 0)
836 * and <Data_Mask> has to be constructed from left to right.
837 *
838 * Presence of <Mac_Address> and <Capability> is
839 * controlled by <Info_Presence_Bit> which is mandatory
840 * <Info_Presence_Bit> will give the information for
841 * OUI – bit 0 Should be set to 1
842 * Setting to 0 will ignore OUI and data check
843 * Mac Address present – bit 1
844 * NSS – bit 2
845 * HT check – bit 3
846 * VHT check – bit 4
847 * Band info – bit 5
848 * reserved – bit 6 (should always be zero)
849 * reserved – bit 7 (should always be zero)
850 * and should be constructed from right to left (b7b6b5b4b3b2b1b0)
851 *
852 * <Mac_Address_Mask> for <Mac_Address> should be constructed from left to right
853 *
854 * <Capability> is 1 byte long and it contains the below info
855 * NSS – 4 bits starting from LSB (b0 – b3)
856 * HT enabled – bit 4
857 * VHT enabled – bit 5
858 * 2G band – bit 6
859 * 5G band – bit 7
860 * and should be constructed from right to left (b7b6b5b4b3b2b1b0)
861 * <Capability> is present if atleast one of the bit is set
862 * from b2 - b6 in <Info_Presence_Bit>
863 *
864 * Example 1:
865 *
866 * OUI is 00-10-18, data length is 05 (hex form), data is 02-11-04-5C-DE and
867 * need to consider first 3 bytes and last byte of data for comparision
868 * mac-addr EE-1A-59-FE-FD-AF is present and first 3 bytes and last byte of
869 * mac address should be considered for comparision
870 * capability is not present
871 * then action OUI for gActionOUIITOExtension is as follows:
872 *
873 * gActionOUIITOExtension=001018 05 0211045CDE E8 03 EE1A59FEFDAF E4
874 *
875 * data mask calculation in above example:
876 * Data[0] = 02 ---- d0 = 1
877 * Data[1] = 11 ---- d1 = 1
878 * Data[2] = 04 ---- d2 = 1
879 * Data[3] = 5C ---- d3 = 0
880 * Data[4] = DE ---- d4 = 1
881 * data_mask = d0d1d2d3d4 + append with zeros to complete 8-bit = 11101000 = E8
882 *
883 * mac mask calculation in above example:
884 * mac_addr[0] = EE ---- m0 = 1
885 * mac_addr[1] = 1A ---- m1 = 1
886 * mac_addr[2] = 59 ---- m2 = 1
887 * mac_addr[3] = FE ---- m3 = 0
888 * mac_addr[4] = FD ---- m4 = 0
889 * mac_addr[5] = AF ---- m5 = 1
890 * mac_mask = m0m1m2m3m4m5 + append with zeros to complete 8-bit = 11100100 = E4
891 *
892 * Example 2:
893 *
894 * OUI is 00-10-18, data length is 00 and no Mac Address and capability
895 *
896 * gActionOUIITOExtension=001018 00 01
897 *
898 */
899
Sourav Mohapatra58841062018-11-19 16:33:27 +0530900/*
901 * <ini>
902 * gEnableActionOUI - Enable/Disable action oui feature
903 * @Min: 0 (disable)
904 * @Max: 1 (enable)
905 * @Default: 1 (enable)
906 *
907 * This ini is used to enable the action oui feature to control
908 * mode of connection, connected AP's in-activity time, Tx rate etc.,
909 *
910 * Related: If gEnableActionOUI is set, then at least one of the following inis
911 * must be set with the proper action oui extensions:
912 * gActionOUIConnect1x1, gActionOUIITOExtension, gActionOUICCKM1X1
913 *
914 * Supported Feature: action ouis
915 *
916 * Usage: External
917 *
918 * </ini>
919 */
920#define CFG_ENABLE_ACTION_OUI CFG_INI_BOOL( \
921 "gEnableActionOUI", \
922 1, \
923 "Enable/Disable action oui feature")
924
925/*
926 * <ini>
927 * gActionOUIConnect1x1 - Used to specify action OUIs for 1x1 connection
Abhishek Ambureee81f8b2019-11-08 20:55:02 +0530928 * @Default: 000C43 00 25 C2 001018 06 02FFF02C0000 BC 25 42 001018 06 02FF040C0000 BC 25 42 00037F 00 35 6C 001018 06 02FF009C0000 BC 25 48
Sourav Mohapatra58841062018-11-19 16:33:27 +0530929 * Note: User should strictly add new action OUIs at the end of this
930 * default value.
931 *
932 * Default OUIs: (All values in Hex)
933 * OUI 1 : 000C43
934 * OUI data Len : 00
935 * Info Mask : 25 - Check for NSS and Band
Abhishek Ambureee81f8b2019-11-08 20:55:02 +0530936 * Capabilities: C2 - NSS == 2 && Band == 2G || Band == 5G
Sourav Mohapatra58841062018-11-19 16:33:27 +0530937 * OUI 2 : 001018
938 * OUI data Len : 06
939 * OUI Data : 02FFF02C0000
940 * OUI data Mask: BC - 10111100
941 * Info Mask : 25 - Check for NSS and Band
942 * Capabilities: 42 - NSS == 2 && Band == 2G
943 * OUI 3 : 001018
944 * OUI data Len : 06
945 * OUI Data : 02FF040C0000
946 * OUI data Mask: BC - 10111100
947 * Info Mask : 25 - Check for NSS and Band
948 * Capabilities: 42 - NSS == 2 && Band == 2G
949 * OUI 4 : 00037F
950 * OUI data Len : 00
951 * Info Mask : 35 - Check for NSS, VHT Caps and Band
952 * Capabilities: 6C - (NSS == 3 or 4) && VHT Caps Preset && Band == 2G
Rajeev Kumar Sirasanagandla01d49ef2019-05-14 18:43:38 +0530953 * OUI 5 : 001018
954 * OUI data Len : 06
955 * OUI Data : 02FF009C0000
956 * OUI data Mask: BC - 10111100
957 * Info Mask : 25 - Check for NSS and Band
958 * Capabilities: 48 - NSS == 4 && Band == 2G
Sourav Mohapatra58841062018-11-19 16:33:27 +0530959 *
960 * This ini is used to specify the AP OUIs with which only 1x1 connection
961 * is allowed.
962 *
963 * Related: None
964 *
965 * Supported Feature: Action OUIs
966 *
967 * Usage: External
968 *
969 * </ini>
970 */
971#define CFG_ACTION_OUI_CONNECT_1X1 CFG_INI_STRING( \
972 "gActionOUIConnect1x1", \
973 0, \
974 ACTION_OUI_MAX_STR_LEN, \
Abhishek Ambureee81f8b2019-11-08 20:55:02 +0530975 "000C43 00 25 C2 001018 06 02FFF02C0000 BC 25 42 001018 06 02FF040C0000 BC 25 42 00037F 00 35 6C 001018 06 02FF009C0000 BC 25 48", \
Sourav Mohapatra58841062018-11-19 16:33:27 +0530976 "Used to specify action OUIs for 1x1 connection")
977
978/*
979 * <ini>
980 * gActionOUIITOExtension - Used to extend in-activity time for specified APs
981 * @Default: 00037F 06 01010000FF7F FC 01 000AEB 02 0100 C0 01 000B86 03 010408 E0 01
982 * Note: User should strictly add new action OUIs at the end of this
983 * default value.
984 *
985 * Default OUIs: (All values in Hex)
986 * OUI 1: 00037F
987 * OUI data Len: 06
988 * OUI Data: 01010000FF7F
989 * OUI data Mask: FC - 11111100
990 * Info Mask : 01 - only OUI present in Info mask
991 *
992 * OUI 2: 000AEB
993 * OUI data Len: 02
994 * OUI Data: 0100
995 * OUI data Mask: C0 - 11000000
996 * Info Mask : 01 - only OUI present in Info mask
997 *
998 * OUI 3: 000B86
999 * OUI data Len: 03
1000 * OUI Data: 010408
1001 * OUI data Mask: E0 - 11100000
1002 * Info Mask : 01 - only OUI present in Info mask
1003 *
1004 * This ini is used to specify AP OUIs using which station's in-activity time
1005 * can be extended with the respective APs
1006 *
1007 * Related: None
1008 *
1009 * Supported Feature: Action OUIs
1010 *
1011 * Usage: External
1012 *
1013 * </ini>
1014 */
1015#define CFG_ACTION_OUI_ITO_EXTENSION CFG_INI_STRING( \
1016 "gActionOUIITOExtension", \
1017 0, \
1018 ACTION_OUI_MAX_STR_LEN, \
1019 "00037F 06 01010000FF7F FC 01 000AEB 02 0100 C0 01 000B86 03 010408 E0 01", \
1020 "Used to extend in-activity time for specified APs")
1021
1022/*
1023 * <ini>
1024 * gActionOUICCKM1X1 - Used to specify action OUIs to control station's TX rates
1025 *
1026 * This ini is used to specify AP OUIs for which station's CCKM TX rates
1027 * should be 1x1 only.
1028 *
1029 * Related: None
1030 *
1031 * Supported Feature: Action OUIs
1032 *
1033 * Usage: External
1034 *
1035 * </ini>
1036 */
1037#define CFG_ACTION_OUI_CCKM_1X1 CFG_INI_STRING( \
1038 "gActionOUICCKM1X1", \
1039 0, \
1040 ACTION_OUI_MAX_STR_LEN, \
1041 "", \
1042 "Used to specify action OUIs to control station's TX rates")
1043
1044/*
1045 * <ini>
1046 * gActionOUIITOAlternate - Used to specify action OUIs to have alternate ITO in
1047 * weak RSSI state
1048 *
1049 * This ini is used to specify AP OUIs for which the stations will have
1050 * alternate ITOs for the case when the RSSI is weak.
1051 *
1052 * Related: None
1053 *
1054 * Supported Feature: Action OUIs
1055 *
1056 * Usage: External
1057 *
1058 * </ini>
1059 */
1060#define CFG_ACTION_OUI_ITO_ALTERNATE CFG_INI_STRING( \
1061 "gActionOUIITOAlternate", \
1062 0, \
1063 ACTION_OUI_MAX_STR_LEN, \
1064 "001018 06 0202001c0000 FC 01", \
1065 "Used to specify action OUIs to have alternate ITO")
1066
1067/*
1068 * <ini>
1069 * gActionOUISwitchTo11nMode - Used to specify action OUIs for switching to 11n
1070 *
1071 * This ini is used to specify which AP for which the connection has to be
1072 * made in 2x2 mode with HT capabilities only and not VHT.
1073 *
1074 * Default OUIs: (All values in Hex)
1075 * OUI 1 : 00904C
1076 * OUI data Len : 03
1077 * OUI Data : 0418BF
1078 * OUI data Mask: E0 - 11100000
1079 * Info Mask : 21 - Check for Band
1080 * Capabilities: 40 - Band == 2G
1081 *
1082 * Related: None
1083 *
1084 * Supported Feature: Action OUIs
1085 *
1086 * Usage: External
1087 *
1088 * </ini>
1089 */
1090#define CFG_ACTION_OUI_SWITCH_TO_11N_MODE CFG_INI_STRING( \
1091 "gActionOUISwitchTo11nMode", \
1092 0, \
1093 ACTION_OUI_MAX_STR_LEN, \
Yeshwanth Sriram Guntukaa5af4492019-05-28 13:57:56 +05301094 "00904C 05 0418BF0CB2 F8 21 40", \
Sourav Mohapatra58841062018-11-19 16:33:27 +05301095 "Used to specify action OUIs for switching to 11n")
1096
1097/*
1098 * <ini>
1099 * gActionOUIConnect1x1with1TxRxChain - Used to specify action OUIs for
1100 * 1x1 connection with one Tx/Rx Chain
1101 * @Default:
1102 * Note: User should strictly add new action OUIs at the end of this
1103 * default value.
1104 *
1105 * Default OUIs: (All values in Hex)
1106 * OUI 1 : 001018
1107 * OUI data Len : 06
1108 * OUI Data : 02FFF0040000
1109 * OUI data Mask: BC - 10111100
1110 * Info Mask : 21 - Check for Band
1111 * Capabilities: 40 - Band == 2G
1112 *
1113 * OUI 2 : 001018
1114 * OUI data Len : 06
1115 * OUI Data : 02FFF0050000
1116 * OUI data Mask: BC - 10111100
1117 * Info Mask : 21 - Check for Band
1118 * Capabilities: 40 - Band == 2G
1119 *
1120 * OUI 3 : 001018
1121 * OUI data Len : 06
1122 * OUI Data : 02FFF4050000
1123 * OUI data Mask: BC - 10111100
1124 * Info Mask : 21 - Check for Band
1125 * Capabilities: 40 - Band == 2G
1126 *
1127 * This ini is used to specify the AP OUIs with which only 1x1 connection
1128 * with one Tx/Rx Chain is allowed.
1129 *
1130 * Related: gEnableActionOUI
1131 *
1132 * Supported Feature: Action OUIs
1133 *
1134 * Usage: External
1135 *
1136 * </ini>
1137 */
1138#define CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN CFG_INI_STRING( \
1139 "gActionOUIConnect1x1with1TxRxChain", \
1140 0, \
1141 ACTION_OUI_MAX_STR_LEN, \
1142 "001018 06 02FFF0040000 BC 21 40 001018 06 02FFF0050000 BC 21 40 001018 06 02FFF4050000 BC 21 40", \
1143 "Used to specify action OUIs for 1x1 connection with one Tx/Rx Chain")
1144
Rajeev Kumar Sirasanagandlad7987f12018-12-08 23:24:04 +05301145/*
1146 * <ini>
1147 * gActionOUIDisableAggressiveTX - Used to specify action OUIs to disable
1148 * Aggressive TX feature when operating in softap.
1149 *
1150 * @Default:
1151 * Note: User should strictly add new action OUIs at the end of this
1152 * default value.
1153 *
1154 * Default OUIs:
1155 *
1156 * OUI 1 : FFFFFF
1157 * OUI data Len : 00
1158 * OUI Data: No data
1159 * OUI data Mask: No data mask
1160 * Info Mask: 2A - Check for mac-addr, HT capability and Band
1161 * Mac-addr: F8:59:71:00:00:00 - first 3 bytes
1162 * Mac-mask: E0 - Match only first 3 bytes of peer mac-addr
1163 * Capabilities: 50 – HT should be enabled, and band should be 2.4GHz
1164 *
1165 * OUI 2 : FFFFFF
1166 * OUI data Len : 00
1167 * OUI Data: No data
1168 * OUI data Mask: No data mask
1169 * Info Mask: 2A - Check for mac-addr, HT capability and Band
1170 * Mac-addr: 14:AB:C5:00:00:00 - first 3 bytes
1171 * Mac-mask: E0 - Match only first 3 bytes of peer mac-addr
1172 * Capabilities: 50 – HT should be enabled, and band should be 2.4GHz
1173 *
1174 * When operating in Softap mode, this ini is used to specify
1175 * STA (peer) OUIs/mac-addr for which aggressive tx is disabled after
1176 * association is successful.
1177 *
1178 * Related: gEnableActionOUI
1179 *
1180 * Supported Feature: Action OUIs
1181 *
1182 * Usage: External
1183 *
1184 * </ini>
1185 */
1186#define CFG_ACTION_OUI_DISABLE_AGGRESSIVE_TX CFG_INI_STRING( \
1187 "gActionOUIDisableAggressiveTX", \
1188 0, \
1189 ACTION_OUI_MAX_STR_LEN, \
1190 "FFFFFF 00 2A F85971000000 E0 50 FFFFFF 00 2A 14ABC5000000 E0 50", \
1191 "Used to specify action OUIs to disable aggressive TX")
1192
Paul Zhangd34b5752019-10-09 11:22:32 +08001193/*
1194 * <ini>
1195 * gActionOUIDisableAggressiveEDCA - Used to specify action OUIs to control
1196 * EDCA configuration when join the candidate AP
1197 *
1198 * @Default: NULL
1199 * Note: User should strictly add new action OUIs at the end of this
1200 * default value.
1201 *
1202 * This ini is used to specify AP OUIs. The station's EDCA should follow the
1203 * APs' when connecting to those AP, even if the gEnableEdcaParams is set.
1204 * For example, it follows the AP's EDCA whose OUI is 0050F2 with the
1205 * following setting:
1206 * gActionOUIDisableAggressiveEDCA=0050F2 00 01
1207 * Explain: 0050F2: OUI
1208 * 00: data length is 0
1209 * 01: info mask, only OUI present in Info mask
1210 * Refer to gEnableActionOUI for more detail about the format.
1211 *
1212 * Related: gEnableEdcaParams, gEnableActionOUI
1213 *
1214 * Supported Feature: Action OUIs
1215 *
1216 * Usage: External
1217 *
1218 * </ini>
1219 */
1220#define CFG_ACTION_OUI_DISABLE_AGGRESSIVE_EDCA CFG_INI_STRING( \
1221 "gActionOUIDisableAggressiveEDCA", \
1222 0, \
1223 ACTION_OUI_MAX_STR_LEN, \
1224 "", \
1225 "Used to specify action OUIs to control edca configuration")
1226
1227/* End of action oui inis */
1228
Sandeep Puligilla43b6d1a2018-12-03 09:16:13 -08001229#ifdef ENABLE_MTRACE_LOG
1230/*
1231 * <ini>
1232 * enable_mtrace - Enable Mtrace.
1233 * @Default: 0
1234 *
1235 * This ini is used to enable MTRACE logging
1236 *
1237 * Related: None.
1238 *
1239 * Supported Feature: MTRACE
1240 *
1241 * Usage: Internal/External
1242 *
1243 * </ini>
1244 */
1245#define CFG_ENABLE_MTRACE CFG_INI_BOOL( \
1246 "enable_mtrace", \
1247 false, \
1248 "Enable MTRACE")
1249#define CFG_ENABLE_MTRACE_ALL CFG(CFG_ENABLE_MTRACE)
1250#else
1251#define CFG_ENABLE_MTRACE_ALL
1252#endif
Sourav Mohapatra58841062018-11-19 16:33:27 +05301253
Sourav Mohapatra9e014cf2018-12-11 09:39:33 +05301254/*
Sandeep Puligillaefeb4a92019-01-08 00:06:51 -08001255 * <ini>
Sandeep Puligilladc6d68a2019-01-04 16:57:12 -08001256 * gAdvertiseConcurrentOperation - Iface combination advertising
1257 * @Min: 0
1258 * @Max: 1
1259 * @Default: 1
1260 *
1261 * This ini is used to control whether driver should indicate to kernel
1262 * wiphy layer the combination of all its interfaces' supportability.
1263 *
1264 * Related: None
1265 *
1266 * Supported Feature: STA
1267 *
1268 * Usage: Internal/External
1269 *
1270 * </ini>
1271 */
1272#define CFG_ADVERTISE_CONCURRENT_OPERATION CFG_INI_BOOL( \
1273 "gAdvertiseConcurrentOperation", \
1274 1, \
1275 "Iface combination advertising")
1276
Sandeep Puligillaefeb4a92019-01-08 00:06:51 -08001277/*
1278 * <ini>
1279 * gEnableUnitTestFramework - Enable/Disable unit test framework
1280 * @Min: 0
1281 * @Max: 1
1282 * @Default: 0
1283 *
1284 * Related: None
1285 *
1286 * Supported Feature: unit test framework
1287 *
1288 * Usage: Internal (only for dev and test team)
1289 *
1290 * </ini>
1291 */
1292#define CFG_ENABLE_UNIT_TEST_FRAMEWORK CFG_INI_BOOL( \
1293 "gEnableUnitTestFramework", \
1294 0, \
1295 "Enable/Disable unit test framework")
1296
Ashish Kumar Dhanotiyad63d6862019-03-14 18:54:10 +05301297/*
1298 * <ini>
1299 * gDisableChannel - Used to disable channels specified
1300 *
1301 * @Min: 0
1302 * @Max: 1
1303 * Default: 0
1304 *
1305 * This ini is used to disable the channels given in the command
1306 * SET_DISABLE_CHANNEL_LIST and to restore the channels when the
1307 * command is given with channel list as 0
1308 * Usage: External
1309 *
1310 * </ini>
1311 */
1312#define CFG_ENABLE_DISABLE_CHANNEL CFG_INI_BOOL( \
1313 "gDisableChannel", \
1314 0, \
1315 "Enable/Disable to disable channels specified")
1316
Ashish Kumar Dhanotiya95498182019-04-29 13:59:20 +05301317/*
1318 * <ini>
Ashish Kumar Dhanotiya3257cee2019-12-13 20:30:03 +05301319 * gEnableSARV1toSARV2 - Used to Enable/Disable SAR version conversion
Ashish Kumar Dhanotiya95498182019-04-29 13:59:20 +05301320 *
Ashish Kumar Dhanotiya3257cee2019-12-13 20:30:03 +05301321 * @Min: 0
1322 * @Max: 1
1323 * Default: 0
Ashish Kumar Dhanotiya95498182019-04-29 13:59:20 +05301324 *
Ashish Kumar Dhanotiya3257cee2019-12-13 20:30:03 +05301325 * If user space is using SARV1 and FW is using SARV2 in BDF in that case
1326 * this ini is used to enable conversion from user specified SARV1 command
1327 * to FW expected SARV2 command.
1328 * If value of this ini is set to 0, SAR version 1 will
1329 * not be converted to SARV2 and command will be rejected.
1330 * If value of this ini is set to 1 SAR version 1 will be converted to
1331 * SARV2 based on FW capability
Ashish Kumar Dhanotiya95498182019-04-29 13:59:20 +05301332 * Usage: External
1333 *
1334 * </ini>
1335 */
Ashish Kumar Dhanotiya3257cee2019-12-13 20:30:03 +05301336#define CFG_SAR_CONVERSION CFG_INI_BOOL( \
1337 "gEnableSARV1toSARV2", \
1338 0, \
1339 "Enable/Disable conversion from SARV1 to SARV2")
Ashish Kumar Dhanotiya95498182019-04-29 13:59:20 +05301340
Rajeev Kumar3a7c3402019-05-02 16:02:20 -07001341/*
1342 * <ini>
1343 * gDisableWow - Used to disable wow feature
1344 *
1345 * @Min: 0
1346 * @Max: 1
1347 * Default: 0
1348 *
1349 * This ini is used to disable wow feature for all modes
1350 * that means hlos platform suspend(cfg80211 suspend) will
1351 * be rejected by wifi kernel driver.
1352 *
1353 * Usage: External
1354 *
1355 * </ini>
1356 */
1357#define CFG_WOW_DISABLE CFG_INI_UINT( \
1358 "gDisableWow", \
1359 0, \
1360 1, \
1361 0, \
1362 CFG_VALUE_OR_DEFAULT, \
1363 "Disable wow feature")
1364
Bapiraju Alladbb5cc12020-02-03 17:19:44 +05301365#ifdef WLAN_FEATURE_PERIODIC_STA_STATS
1366/*
1367 * <ini>
1368 * periodic_stats_timer_interval - Print selective stats on this specified
1369 * interval
1370 *
1371 * @Min: 0
1372 * @Max: 10000
1373 * Default: 3000
1374 *
1375 * This ini is used to specify interval in milliseconds for periodic stats
1376 * timer. This timer will print selective stats after expiration of each
1377 * interval. STA starts this periodic timer after initial connection or after
1378 * roaming is successful. This will be restarted for every
1379 * periodic_stats_timer_interval till the periodic_stats_timer_duration expires.
1380 *
1381 * Supported Feature: STA
1382 *
1383 * Usage: Internal
1384 *
1385 * </ini>
1386 */
1387#define CFG_PERIODIC_STATS_TIMER_INTERVAL CFG_INI_UINT( \
1388 "periodic_stats_timer_interval", \
1389 0, \
1390 10000, \
1391 3000, \
1392 CFG_VALUE_OR_DEFAULT, \
1393 "Periodic stats timer interval")
1394
1395/*
1396 * <ini>
1397 * periodic_stats_timer_duration - Used as duration for which periodic timer
1398 * should run
1399 *
1400 * @Min: 0
1401 * @Max: 60000
1402 * Default: 30000
1403 *
1404 * This ini is used as duration in milliseconds for which periodic stats timer
1405 * should run. This periodic timer will print selective stats for every
1406 * periodic_stats_timer_interval until this duration is reached.
1407 *
1408 * Supported Feature: STA
1409 *
1410 * Usage: Internal
1411 *
1412 * </ini>
1413 */
1414#define CFG_PERIODIC_STATS_TIMER_DURATION CFG_INI_UINT( \
1415 "periodic_stats_timer_duration", \
1416 0, \
1417 60000, \
1418 30000, \
1419 CFG_VALUE_OR_DEFAULT, \
1420 "Periodic stats timer duration")
1421
1422#define CFG_WLAN_STA_PERIODIC_STATS \
1423 CFG(CFG_PERIODIC_STATS_TIMER_DURATION) \
1424 CFG(CFG_PERIODIC_STATS_TIMER_INTERVAL)
1425#else
1426#define CFG_WLAN_STA_PERIODIC_STATS
1427#endif /* WLAN_FEATURE_PERIODIC_STA_STATS */
1428
Wu Gao8dd9f502019-04-26 15:04:28 +08001429/**
1430 * enum host_log_level - Debug verbose level imposed by user
1431 * @HOST_LOG_LEVEL_NONE: no trace will be logged.
1432 * @HOST_LOG_LEVEL_FATAL: fatal error will be logged
1433 * @HOST_LOG_LEVEL_ERROR: error(include level less than error) will be logged
1434 * @HOST_LOG_LEVEL_WARN: warning(include level less than warning) will be logged
1435 * @HOST_LOG_LEVEL_INFO: inform(include level less than inform) will be logged
1436 * @HOST_LOG_LEVEL_DEBUG: debug(include level less than debug) will be logged
1437 * @HOST_LOG_LEVEL_TRACE: trace(include level less than trace) will be logged
1438 * @HOST_LOG_LEVEL_MAX: Max host log level
1439 */
1440enum host_log_level {
1441 HOST_LOG_LEVEL_NONE = 0,
1442 HOST_LOG_LEVEL_FATAL,
1443 HOST_LOG_LEVEL_ERROR,
1444 HOST_LOG_LEVEL_WARN,
1445 HOST_LOG_LEVEL_INFO,
1446 HOST_LOG_LEVEL_DEBUG,
1447 HOST_LOG_LEVEL_TRACE,
1448 HOST_LOG_LEVEL_MAX,
1449};
1450
1451/*
1452 * <ini>
1453 * gHostModuleLoglevel - modulized host debug log level
1454 * @Min: N/A
1455 * @Max: N/A
1456 * @Default: N/A
1457 *
1458 * This ini is used to set modulized host debug log level.
1459 * WLAN host module log level input string format looks like below:
1460 * gHostModuleLoglevel="<host Module ID>,<Log Level>,..."
1461 * For example:
1462 * gHostModuleLoglevel=51,1,52,2,53,3,54,4,55,5,56,6
1463 * The above input string means:
1464 * For WLAN host module ID 51 enable log level HOST_LOG_LEVEL_FATAL
1465 * For WLAN host module ID 52 enable log level HOST_LOG_LEVEL_ERROR
1466 * For WLAN host module ID 53 enable log level HOST_LOG_LEVEL_WARN
1467 * For WLAN host module ID 54 enable log level HOST_LOG_LEVEL_INFO
1468 * For WLAN host module ID 55 enable log level HOST_LOG_LEVEL_DEBUG
1469 * For WLAN host module ID 55 enable log level HOST_LOG_LEVEL_TRACE
1470 * For valid values of module ids check enum QDF_MODULE_ID and
1471 * for valid values of log levels check below.
1472 * HOST_LOG_LEVEL_NONE = 0, No trace will be logged
1473 * HOST_LOG_LEVEL_FATAL = 1, fatal error log
1474 * HOST_LOG_LEVEL_ERROR = 2, error(include level less than error) log
1475 * HOST_LOG_LEVEL_WARN = 3, warning(include level less than warning) log
1476 * HOST_LOG_LEVEL_INFO = 4, inform(include level less than inform) log
1477 * HOST_LOG_LEVEL_DEBUG = 5, debug(include level less than debug) log
1478 * HOST_LOG_LEVEL_TRACE = 6, trace(include level less than trace) log
1479 *
1480 * Related: None
1481 *
1482 * Supported Feature: Debugging
1483 *
1484 * Usage: Internal
1485 *
1486 * </ini>
1487 */
1488
1489#define HOST_MODULE_LOG_LEVEL_STRING_MAX_LENGTH (QDF_MODULE_ID_MAX * 6)
1490#define CFG_ENABLE_HOST_MODULE_LOG_LEVEL CFG_INI_STRING( \
1491 "gHostModuleLoglevel", \
1492 0, \
1493 HOST_MODULE_LOG_LEVEL_STRING_MAX_LENGTH, \
1494 "", \
1495 "Set modulized host debug log level")
1496
Yeshwanth Sriram Guntuka22ed8002019-05-07 15:08:09 +05301497/*
1498 * <ini>
1499 * gActionOUIForceMaxNss - Used to specify action OUIs for Max NSS connection
1500 * @Default:
1501 * Note: User should strictly add new action OUIs at the end of this
1502 * default value.
1503 *
1504 * Default OUIs: (All values in Hex)
1505 * OUI 1 :001018
1506 * OUI data Len : 06
1507 * OUI Data : 0201009c0000
1508 * OUI data Mask: FC
1509 * Info Mask : 01 - only OUI present in Info mask
1510 * OUI 2 :001018
1511 * OUI data Len : 06
1512 * OUI Data : 0201001c0000
1513 * OUI data Mask: FC
1514 * Info Mask : 01 - only OUI present in Info mask
Yeshwanth Sriram Guntuka9d7b25a2019-06-11 14:31:56 +05301515 * OUI 3 :001018
1516 * OUI data Len : 06
1517 * OUI Data : 0200009c0000
1518 * OUI data Mask: FC
1519 * Info Mask : 01 - only OUI present in Info mask
Yeshwanth Sriram Guntuka22ed8002019-05-07 15:08:09 +05301520 *
1521 * This ini is used to specify the AP OUIs with which max capability is
1522 * sent in association request even though AP advertises 1x1 capability.
1523 *
1524 * Related: None
1525 *
1526 * Supported Feature: Action OUIs
1527 *
1528 * Usage: External
1529 *
1530 * </ini>
1531 */
1532#define CFG_ACTION_OUI_FORCE_MAX_NSS CFG_INI_STRING( \
1533 "gActionOUIForceMaxNss", \
1534 0, \
1535 ACTION_OUI_MAX_STR_LEN, \
Yeshwanth Sriram Guntuka9d7b25a2019-06-11 14:31:56 +05301536 "001018 06 0201009c0000 FC 01 001018 06 0201001c0000 FC 01 001018 06 0200009c0000 FC 01", \
Yeshwanth Sriram Guntuka22ed8002019-05-07 15:08:09 +05301537 "Used to specify action OUIs for forcing max NSS connection")
1538
Dundi Raviteja8e338282018-09-25 17:16:04 +05301539#define CFG_HDD_ALL \
1540 CFG_ENABLE_PACKET_LOG_ALL \
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +05301541 CFG_ENABLE_RUNTIME_PM_ALL \
1542 CFG_VC_MODE_BITMAP_ALL \
Dundi Raviteja8e338282018-09-25 17:16:04 +05301543 CFG_WLAN_AUTO_SHUTDOWN_ALL \
1544 CFG_WLAN_LOGGING_SUPPORT_ALL \
Bapiraju Alladbb5cc12020-02-03 17:19:44 +05301545 CFG_WLAN_STA_PERIODIC_STATS \
Sourav Mohapatra58841062018-11-19 16:33:27 +05301546 CFG(CFG_ACTION_OUI_CCKM_1X1) \
1547 CFG(CFG_ACTION_OUI_CONNECT_1X1) \
1548 CFG(CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN) \
1549 CFG(CFG_ACTION_OUI_ITO_ALTERNATE) \
1550 CFG(CFG_ACTION_OUI_ITO_EXTENSION) \
Rajeev Kumar Sirasanagandlad7987f12018-12-08 23:24:04 +05301551 CFG(CFG_ACTION_OUI_DISABLE_AGGRESSIVE_TX) \
Yeshwanth Sriram Guntuka22ed8002019-05-07 15:08:09 +05301552 CFG(CFG_ACTION_OUI_FORCE_MAX_NSS) \
Paul Zhangd34b5752019-10-09 11:22:32 +08001553 CFG(CFG_ACTION_OUI_DISABLE_AGGRESSIVE_EDCA) \
Sourav Mohapatra58841062018-11-19 16:33:27 +05301554 CFG(CFG_ACTION_OUI_SWITCH_TO_11N_MODE) \
Sandeep Puligilladc6d68a2019-01-04 16:57:12 -08001555 CFG(CFG_ADVERTISE_CONCURRENT_OPERATION) \
Dundi Raviteja8e338282018-09-25 17:16:04 +05301556 CFG(CFG_BUG_ON_REINIT_FAILURE) \
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +05301557 CFG(CFG_DBS_SCAN_SELECTION) \
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +05301558 CFG(CFG_DERIVED_INTERFACE_POOL) \
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +05301559 CFG(CFG_ENABLE_CONCURRENT_STA) \
Sourav Mohapatra58841062018-11-19 16:33:27 +05301560 CFG(CFG_ENABLE_ACTION_OUI) \
Dundi Raviteja8e338282018-09-25 17:16:04 +05301561 CFG(CFG_ENABLE_FW_LOG) \
1562 CFG(CFG_ENABLE_FW_UART_PRINT) \
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +05301563 CFG(CFG_ENABLE_MAC_PROVISION) \
Sandeep Puligilla43b6d1a2018-12-03 09:16:13 -08001564 CFG_ENABLE_MTRACE_ALL \
Sourav Mohapatra58841062018-11-19 16:33:27 +05301565 CFG(CFG_ENABLE_RAMDUMP_COLLECTION) \
Sandeep Puligillaefeb4a92019-01-08 00:06:51 -08001566 CFG(CFG_ENABLE_UNIT_TEST_FRAMEWORK) \
Dundi Raviteja8e338282018-09-25 17:16:04 +05301567 CFG(CFG_INTERFACE_CHANGE_WAIT) \
Sourav Mohapatra0dfe5552018-11-16 11:29:54 +05301568 CFG(CFG_INFORM_BSS_RSSI_RAW) \
Dundi Raviteja8e338282018-09-25 17:16:04 +05301569 CFG(CFG_MULTICAST_HOST_FW_MSGS) \
Vignesh Viswanathana0358ff2018-11-27 09:53:07 +05301570 CFG(CFG_NUM_VDEV_ENABLE) \
sheenam monga67ecb072019-09-20 11:25:23 +05301571 CFG(CFG_OPERATING_FREQUENCY) \
Dundi Raviteja8e338282018-09-25 17:16:04 +05301572 CFG(CFG_PRIVATE_WEXT_CONTROL) \
Ashish Kumar Dhanotiya7a11e272018-11-28 13:16:55 +05301573 CFG(CFG_PROVISION_INTERFACE_POOL) \
gaurank kathpalia43c52622019-02-11 12:30:05 +05301574 CFG(CFG_TIMER_MULTIPLIER) \
Ashish Kumar Dhanotiyad63d6862019-03-14 18:54:10 +05301575 CFG(CFG_HDD_DOT11_MODE) \
Ashish Kumar Dhanotiya95498182019-04-29 13:59:20 +05301576 CFG(CFG_ENABLE_DISABLE_CHANNEL) \
Ashish Kumar Dhanotiya3257cee2019-12-13 20:30:03 +05301577 CFG(CFG_SAR_CONVERSION) \
Wu Gao8dd9f502019-04-26 15:04:28 +08001578 CFG(CFG_WOW_DISABLE) \
Ashish Kumar Dhanotiyad2fef2c2020-01-07 20:38:57 +05301579 CFG(CFG_ENABLE_HOST_MODULE_LOG_LEVEL) \
1580 SAR_SAFETY_FEATURE_ALL
Dundi Raviteja8e338282018-09-25 17:16:04 +05301581#endif