xref: /wlan-driver/qcacld-3.0/components/dp/dispatcher/inc/wlan_dp_cfg.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
5*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
6*5113495bSYour Name  * above copyright notice and this permission notice appear in all
7*5113495bSYour Name  * copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
17*5113495bSYour Name  */
18*5113495bSYour Name 
19*5113495bSYour Name #ifndef WLAN_DP_CFG_H__
20*5113495bSYour Name #define WLAN_DP_CFG_H__
21*5113495bSYour Name 
22*5113495bSYour Name #define CFG_DP_RPS_RX_QUEUE_CPU_MAP_LIST_LEN 30
23*5113495bSYour Name 
24*5113495bSYour Name #ifdef CONFIG_DP_TRACE
25*5113495bSYour Name /* Max length of gDptraceConfig string. e.g.- "1, 6, 1, 62" */
26*5113495bSYour Name #define DP_TRACE_CONFIG_STRING_LENGTH		(20)
27*5113495bSYour Name 
28*5113495bSYour Name /* At max 4 DP Trace config parameters are allowed. Refer - gDptraceConfig */
29*5113495bSYour Name #define DP_TRACE_CONFIG_NUM_PARAMS		(4)
30*5113495bSYour Name 
31*5113495bSYour Name /*
32*5113495bSYour Name  * Default value of live mode in case it cannot be determined from cfg string
33*5113495bSYour Name  * gDptraceConfig
34*5113495bSYour Name  */
35*5113495bSYour Name #define DP_TRACE_CONFIG_DEFAULT_LIVE_MODE	(1)
36*5113495bSYour Name 
37*5113495bSYour Name /*
38*5113495bSYour Name  * Default value of thresh (packets/second) beyond which DP Trace is disabled.
39*5113495bSYour Name  * Use this default in case the value cannot be determined from cfg string
40*5113495bSYour Name  * gDptraceConfig
41*5113495bSYour Name  */
42*5113495bSYour Name #define DP_TRACE_CONFIG_DEFAULT_THRESH		(6)
43*5113495bSYour Name 
44*5113495bSYour Name /*
45*5113495bSYour Name  * Number of intervals of BW timer to wait before enabling/disabling DP Trace.
46*5113495bSYour Name  * Since throughput threshold to disable live logging for DP Trace is very low,
47*5113495bSYour Name  * we calculate throughput based on # packets received in a second.
48*5113495bSYour Name  * For example assuming bandwidth timer interval is 100ms, and if more than 6
49*5113495bSYour Name  * prints are received in 10 * 100 ms interval, we want to disable DP Trace
50*5113495bSYour Name  * live logging. DP_TRACE_CONFIG_DEFAULT_THRESH_TIME_LIMIT is the default
51*5113495bSYour Name  * value, to be used in case the real value cannot be derived from
52*5113495bSYour Name  * bw timer interval
53*5113495bSYour Name  */
54*5113495bSYour Name #define DP_TRACE_CONFIG_DEFAULT_THRESH_TIME_LIMIT (10)
55*5113495bSYour Name 
56*5113495bSYour Name /* Default proto bitmap in case its missing in gDptraceConfig string */
57*5113495bSYour Name #define DP_TRACE_CONFIG_DEFAULT_BITMAP \
58*5113495bSYour Name 			(QDF_NBUF_PKT_TRAC_TYPE_EAPOL |\
59*5113495bSYour Name 			QDF_NBUF_PKT_TRAC_TYPE_DHCP |\
60*5113495bSYour Name 			QDF_NBUF_PKT_TRAC_TYPE_MGMT_ACTION |\
61*5113495bSYour Name 			QDF_NBUF_PKT_TRAC_TYPE_ARP |\
62*5113495bSYour Name 			QDF_NBUF_PKT_TRAC_TYPE_ICMP |\
63*5113495bSYour Name 			QDF_NBUF_PKT_TRAC_TYPE_ICMPv6)\
64*5113495bSYour Name 
65*5113495bSYour Name /* Default verbosity, in case its missing in gDptraceConfig string*/
66*5113495bSYour Name #define DP_TRACE_CONFIG_DEFAULT_VERBOSTY QDF_DP_TRACE_VERBOSITY_LOW
67*5113495bSYour Name 
68*5113495bSYour Name #endif
69*5113495bSYour Name 
70*5113495bSYour Name #define CFG_ENABLE_RX_THREAD		BIT(0)
71*5113495bSYour Name #define CFG_ENABLE_RPS			BIT(1)
72*5113495bSYour Name #define CFG_ENABLE_NAPI			BIT(2)
73*5113495bSYour Name #define CFG_ENABLE_DYNAMIC_RPS		BIT(3)
74*5113495bSYour Name #define CFG_ENABLE_DP_RX_THREADS	BIT(4)
75*5113495bSYour Name #define CFG_RX_MODE_MAX (CFG_ENABLE_RX_THREAD | \
76*5113495bSYour Name 					  CFG_ENABLE_RPS | \
77*5113495bSYour Name 					  CFG_ENABLE_NAPI | \
78*5113495bSYour Name 					  CFG_ENABLE_DYNAMIC_RPS | \
79*5113495bSYour Name 					  CFG_ENABLE_DP_RX_THREADS)
80*5113495bSYour Name #ifdef MDM_PLATFORM
81*5113495bSYour Name #define CFG_RX_MODE_DEFAULT 0
82*5113495bSYour Name #elif defined(HELIUMPLUS)
83*5113495bSYour Name #define CFG_RX_MODE_DEFAULT CFG_ENABLE_NAPI
84*5113495bSYour Name #endif
85*5113495bSYour Name 
86*5113495bSYour Name #ifndef CFG_RX_MODE_DEFAULT
87*5113495bSYour Name #if defined(FEATURE_WLAN_DP_RX_THREADS)
88*5113495bSYour Name #define CFG_RX_MODE_DEFAULT (CFG_ENABLE_DP_RX_THREADS | CFG_ENABLE_NAPI)
89*5113495bSYour Name #else
90*5113495bSYour Name #define CFG_RX_MODE_DEFAULT (CFG_ENABLE_RX_THREAD | CFG_ENABLE_NAPI)
91*5113495bSYour Name #endif
92*5113495bSYour Name #endif
93*5113495bSYour Name 
94*5113495bSYour Name /* Max # of packets to be processed in 1 tx comp loop */
95*5113495bSYour Name #define CFG_DP_TX_COMP_LOOP_PKT_LIMIT_DEFAULT 64
96*5113495bSYour Name #define CFG_DP_TX_COMP_LOOP_PKT_LIMIT_MAX (1024 * 1024)
97*5113495bSYour Name 
98*5113495bSYour Name /*Max # of packets to be processed in 1 rx reap loop */
99*5113495bSYour Name #define CFG_DP_RX_REAP_LOOP_PKT_LIMIT_DEFAULT 64
100*5113495bSYour Name #define CFG_DP_RX_REAP_LOOP_PKT_LIMIT_MAX (1024 * 1024)
101*5113495bSYour Name 
102*5113495bSYour Name /* Max # of HP OOS (out of sync) updates */
103*5113495bSYour Name #define CFG_DP_RX_HP_OOS_UPDATE_LIMIT_DEFAULT 0
104*5113495bSYour Name #define CFG_DP_RX_HP_OOS_UPDATE_LIMIT_MAX 1024
105*5113495bSYour Name 
106*5113495bSYour Name /* Max Yield time duration for RX Softirq */
107*5113495bSYour Name #define CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS_DEFAULT (500 * 1000)
108*5113495bSYour Name #define CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS_MAX (10 * 1000 * 1000)
109*5113495bSYour Name 
110*5113495bSYour Name #ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
111*5113495bSYour Name /*
112*5113495bSYour Name  * <ini>
113*5113495bSYour Name  * gBusBandwidthSuperHighThreshold - bus bandwidth super high threshold
114*5113495bSYour Name  *
115*5113495bSYour Name  * @Min: 0
116*5113495bSYour Name  * @Max: 4294967295UL
117*5113495bSYour Name  * @Default: 22000
118*5113495bSYour Name  *
119*5113495bSYour Name  * This ini specifies the bus bandwidth super high threshold
120*5113495bSYour Name  *
121*5113495bSYour Name  * Usage: Internal
122*5113495bSYour Name  *
123*5113495bSYour Name  * </ini>
124*5113495bSYour Name  */
125*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_SUPER_HIGH_THRESHOLD \
126*5113495bSYour Name 		CFG_INI_UINT( \
127*5113495bSYour Name 		"gBusBandwidthSuperHighThreshold", \
128*5113495bSYour Name 		0, \
129*5113495bSYour Name 		4294967295UL, \
130*5113495bSYour Name 		22000, \
131*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
132*5113495bSYour Name 		"Bus bandwidth super high threshold")
133*5113495bSYour Name 
134*5113495bSYour Name /*
135*5113495bSYour Name  * <ini>
136*5113495bSYour Name  * gBusBandwidthUltraHighThreshold - bus bandwidth ultra high threshold
137*5113495bSYour Name  *
138*5113495bSYour Name  * @Min: 0
139*5113495bSYour Name  * @Max: 4294967295UL
140*5113495bSYour Name  * @Default: 12000
141*5113495bSYour Name  *
142*5113495bSYour Name  * This ini specifies the bus bandwidth very high threshold
143*5113495bSYour Name  *
144*5113495bSYour Name  * Usage: Internal
145*5113495bSYour Name  *
146*5113495bSYour Name  * </ini>
147*5113495bSYour Name  */
148*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_ULTRA_HIGH_THRESHOLD \
149*5113495bSYour Name 		CFG_INI_UINT( \
150*5113495bSYour Name 		"gBusBandwidthUltraHighThreshold", \
151*5113495bSYour Name 		0, \
152*5113495bSYour Name 		4294967295UL, \
153*5113495bSYour Name 		12000, \
154*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
155*5113495bSYour Name 		"Bus bandwidth ultra high threshold")
156*5113495bSYour Name 
157*5113495bSYour Name /*
158*5113495bSYour Name  * <ini>
159*5113495bSYour Name  * gBusBandwidthVeryHighThreshold - bus bandwidth very high threshold
160*5113495bSYour Name  *
161*5113495bSYour Name  * @Min: 0
162*5113495bSYour Name  * @Max: 4294967295UL
163*5113495bSYour Name  * @Default: 10000
164*5113495bSYour Name  *
165*5113495bSYour Name  * This ini specifies the bus bandwidth very high threshold
166*5113495bSYour Name  *
167*5113495bSYour Name  * Usage: Internal
168*5113495bSYour Name  *
169*5113495bSYour Name  * </ini>
170*5113495bSYour Name  */
171*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_VERY_HIGH_THRESHOLD \
172*5113495bSYour Name 		CFG_INI_UINT( \
173*5113495bSYour Name 		"gBusBandwidthVeryHighThreshold", \
174*5113495bSYour Name 		0, \
175*5113495bSYour Name 		4294967295UL, \
176*5113495bSYour Name 		10000, \
177*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
178*5113495bSYour Name 		"Bus bandwidth very high threshold")
179*5113495bSYour Name 
180*5113495bSYour Name /*
181*5113495bSYour Name  * <ini>
182*5113495bSYour Name  * gBusBandwidthMidHighThreshold - bus bandwidth high HE cases threshold
183*5113495bSYour Name  *
184*5113495bSYour Name  * @Min: 0
185*5113495bSYour Name  * @Max: 4294967295UL
186*5113495bSYour Name  * @Default: 0
187*5113495bSYour Name  *
188*5113495bSYour Name  * This ini specifies the bus bandwidth high HE cases threshold
189*5113495bSYour Name  *
190*5113495bSYour Name  * Usage: Internal
191*5113495bSYour Name  *
192*5113495bSYour Name  * </ini>
193*5113495bSYour Name  */
194*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_MID_HIGH_THRESHOLD \
195*5113495bSYour Name 		CFG_INI_UINT( \
196*5113495bSYour Name 		"gBusBandwidthMidHighThreshold", \
197*5113495bSYour Name 		0, \
198*5113495bSYour Name 		4294967295UL, \
199*5113495bSYour Name 		0, \
200*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
201*5113495bSYour Name 		"Bus bandwidth high threshold")
202*5113495bSYour Name 
203*5113495bSYour Name /*
204*5113495bSYour Name  * <ini>
205*5113495bSYour Name  * gBusBandwidthDBSThreshold - bus bandwidth for DBS mode threshold
206*5113495bSYour Name  *
207*5113495bSYour Name  * @Min: 0
208*5113495bSYour Name  * @Max: 4294967295UL
209*5113495bSYour Name  * @Default: 6000
210*5113495bSYour Name  *
211*5113495bSYour Name  * This ini specifies the bus bandwidth high threshold
212*5113495bSYour Name  *
213*5113495bSYour Name  * Usage: Internal
214*5113495bSYour Name  *
215*5113495bSYour Name  * </ini>
216*5113495bSYour Name  */
217*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_DBS_THRESHOLD \
218*5113495bSYour Name 		CFG_INI_UINT( \
219*5113495bSYour Name 		"gBusBandwidthDBSThreshold", \
220*5113495bSYour Name 		0, \
221*5113495bSYour Name 		4294967295UL, \
222*5113495bSYour Name 		6000, \
223*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
224*5113495bSYour Name 		"Bus bandwidth DBS mode threshold")
225*5113495bSYour Name /*
226*5113495bSYour Name  * <ini>
227*5113495bSYour Name  * gBusBandwidthHighThreshold - bus bandwidth high threshold
228*5113495bSYour Name  *
229*5113495bSYour Name  * @Min: 0
230*5113495bSYour Name  * @Max: 4294967295UL
231*5113495bSYour Name  * @Default: 2000
232*5113495bSYour Name  *
233*5113495bSYour Name  * This ini specifies the bus bandwidth high threshold
234*5113495bSYour Name  *
235*5113495bSYour Name  * Usage: Internal
236*5113495bSYour Name  *
237*5113495bSYour Name  * </ini>
238*5113495bSYour Name  */
239*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_HIGH_THRESHOLD \
240*5113495bSYour Name 		CFG_INI_UINT( \
241*5113495bSYour Name 		"gBusBandwidthHighThreshold", \
242*5113495bSYour Name 		0, \
243*5113495bSYour Name 		4294967295UL, \
244*5113495bSYour Name 		2000, \
245*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
246*5113495bSYour Name 		"Bus bandwidth high threshold")
247*5113495bSYour Name 
248*5113495bSYour Name /*
249*5113495bSYour Name  * <ini>
250*5113495bSYour Name  * gBusBandwidthMediumThreshold - bus bandwidth medium threshold
251*5113495bSYour Name  *
252*5113495bSYour Name  * @Min: 0
253*5113495bSYour Name  * @Max: 4294967295UL
254*5113495bSYour Name  * @Default: 500
255*5113495bSYour Name  *
256*5113495bSYour Name  * This ini specifies the bus bandwidth medium threshold
257*5113495bSYour Name  *
258*5113495bSYour Name  * Usage: Internal
259*5113495bSYour Name  *
260*5113495bSYour Name  * </ini>
261*5113495bSYour Name  */
262*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_MEDIUM_THRESHOLD \
263*5113495bSYour Name 		CFG_INI_UINT( \
264*5113495bSYour Name 		"gBusBandwidthMediumThreshold", \
265*5113495bSYour Name 		0, \
266*5113495bSYour Name 		4294967295UL, \
267*5113495bSYour Name 		500, \
268*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
269*5113495bSYour Name 		"Bus bandwidth medium threshold")
270*5113495bSYour Name 
271*5113495bSYour Name /*
272*5113495bSYour Name  * <ini>
273*5113495bSYour Name  * gBusBandwidthLowThreshold - bus bandwidth low threshold
274*5113495bSYour Name  *
275*5113495bSYour Name  * @Min: 0
276*5113495bSYour Name  * @Max: 4294967295UL
277*5113495bSYour Name  * @Default: 150
278*5113495bSYour Name  *
279*5113495bSYour Name  * This ini specifies the bus bandwidth low threshold
280*5113495bSYour Name  *
281*5113495bSYour Name  * Usage: Internal
282*5113495bSYour Name  *
283*5113495bSYour Name  * </ini>
284*5113495bSYour Name  */
285*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_LOW_THRESHOLD \
286*5113495bSYour Name 		CFG_INI_UINT( \
287*5113495bSYour Name 		"gBusBandwidthLowThreshold", \
288*5113495bSYour Name 		0, \
289*5113495bSYour Name 		4294967295UL, \
290*5113495bSYour Name 		150, \
291*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
292*5113495bSYour Name 		"Bus bandwidth low threshold")
293*5113495bSYour Name 
294*5113495bSYour Name /*
295*5113495bSYour Name  * <ini>
296*5113495bSYour Name  * gBusBandwidthComputeInterval - bus bandwidth compute interval
297*5113495bSYour Name  *
298*5113495bSYour Name  * @Min: 0
299*5113495bSYour Name  * @Max: 10000
300*5113495bSYour Name  * @Default: 100
301*5113495bSYour Name  *
302*5113495bSYour Name  * This ini specifies thebus bandwidth compute interval
303*5113495bSYour Name  *
304*5113495bSYour Name  * Usage: Internal
305*5113495bSYour Name  *
306*5113495bSYour Name  * </ini>
307*5113495bSYour Name  */
308*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH_COMPUTE_INTERVAL \
309*5113495bSYour Name 		CFG_INI_UINT( \
310*5113495bSYour Name 		"gBusBandwidthComputeInterval", \
311*5113495bSYour Name 		0, \
312*5113495bSYour Name 		10000, \
313*5113495bSYour Name 		100, \
314*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
315*5113495bSYour Name 		"Bus bandwidth compute interval")
316*5113495bSYour Name 
317*5113495bSYour Name /*
318*5113495bSYour Name  * <ini>
319*5113495bSYour Name  * gTcpLimitOutputEnable - Control to enable TCP limit output byte
320*5113495bSYour Name  * @Default: true
321*5113495bSYour Name  *
322*5113495bSYour Name  * This ini is used to enable dynamic configuration of TCP limit output bytes
323*5113495bSYour Name  * tcp_limit_output_bytes param. Enabling this will let driver post message to
324*5113495bSYour Name  * cnss-daemon, accordingly cnss-daemon will modify the tcp_limit_output_bytes.
325*5113495bSYour Name  *
326*5113495bSYour Name  * Supported Feature: Tcp limit output bytes
327*5113495bSYour Name  *
328*5113495bSYour Name  * Usage: Internal
329*5113495bSYour Name  *
330*5113495bSYour Name  * </ini>
331*5113495bSYour Name  */
332*5113495bSYour Name #define CFG_DP_ENABLE_TCP_LIMIT_OUTPUT \
333*5113495bSYour Name 		CFG_INI_BOOL( \
334*5113495bSYour Name 		"gTcpLimitOutputEnable", \
335*5113495bSYour Name 		true, \
336*5113495bSYour Name 		"Control to enable TCP limit output byte")
337*5113495bSYour Name 
338*5113495bSYour Name /*
339*5113495bSYour Name  * <ini>
340*5113495bSYour Name  * gTcpAdvWinScaleEnable - Control to enable  TCP adv window scaling
341*5113495bSYour Name  * @Default: true
342*5113495bSYour Name  *
343*5113495bSYour Name  * This ini is used to enable dynamic configuration of TCP adv window scaling
344*5113495bSYour Name  * system parameter.
345*5113495bSYour Name  *
346*5113495bSYour Name  * Supported Feature: Tcp Advance Window Scaling
347*5113495bSYour Name  *
348*5113495bSYour Name  * Usage: Internal
349*5113495bSYour Name  *
350*5113495bSYour Name  * </ini>
351*5113495bSYour Name  */
352*5113495bSYour Name #define CFG_DP_ENABLE_TCP_ADV_WIN_SCALE \
353*5113495bSYour Name 		CFG_INI_BOOL( \
354*5113495bSYour Name 		"gTcpAdvWinScaleEnable", \
355*5113495bSYour Name 		true, \
356*5113495bSYour Name 		"Control to enable  TCP adv window scaling")
357*5113495bSYour Name 
358*5113495bSYour Name /*
359*5113495bSYour Name  * <ini>
360*5113495bSYour Name  * gTcpDelAckEnable - Control to enable Dynamic Configuration of Tcp Delayed Ack
361*5113495bSYour Name  * @Default: true
362*5113495bSYour Name  *
363*5113495bSYour Name  * This ini is used to enable Dynamic Configuration of Tcp Delayed Ack
364*5113495bSYour Name  *
365*5113495bSYour Name  * Related: gTcpDelAckThresholdHigh, gTcpDelAckThresholdLow,
366*5113495bSYour Name  *          gTcpDelAckTimerCount
367*5113495bSYour Name  *
368*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack
369*5113495bSYour Name  *
370*5113495bSYour Name  * Usage: Internal
371*5113495bSYour Name  *
372*5113495bSYour Name  * </ini>
373*5113495bSYour Name  */
374*5113495bSYour Name #define CFG_DP_ENABLE_TCP_DELACK \
375*5113495bSYour Name 		CFG_INI_BOOL( \
376*5113495bSYour Name 		"gTcpDelAckEnable", \
377*5113495bSYour Name 		true, \
378*5113495bSYour Name 		"Control to enable Dynamic Config of Tcp Delayed Ack")
379*5113495bSYour Name 
380*5113495bSYour Name /*
381*5113495bSYour Name  * <ini>
382*5113495bSYour Name  * gTcpDelAckThresholdHigh - High Threshold inorder to trigger TCP Del Ack
383*5113495bSYour Name  *                                          indication
384*5113495bSYour Name  * @Min: 0
385*5113495bSYour Name  * @Max: 16000
386*5113495bSYour Name  * @Default: 500
387*5113495bSYour Name  *
388*5113495bSYour Name  * This ini is used to mention the High Threshold inorder to trigger TCP Del Ack
389*5113495bSYour Name  * indication i.e the threshold of packets received over a period of 100 ms.
390*5113495bSYour Name  * i.e to have a low RX throughput requirement
391*5113495bSYour Name  * Related: gTcpDelAckEnable, gTcpDelAckThresholdLow, gTcpDelAckTimerCount
392*5113495bSYour Name  *
393*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack
394*5113495bSYour Name  *
395*5113495bSYour Name  * Usage: Internal
396*5113495bSYour Name  *
397*5113495bSYour Name  * </ini>
398*5113495bSYour Name  */
399*5113495bSYour Name #define CFG_DP_TCP_DELACK_THRESHOLD_HIGH \
400*5113495bSYour Name 		CFG_INI_UINT( \
401*5113495bSYour Name 		"gTcpDelAckThresholdHigh", \
402*5113495bSYour Name 		0, \
403*5113495bSYour Name 		16000, \
404*5113495bSYour Name 		500, \
405*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
406*5113495bSYour Name 		"High Threshold inorder to trigger TCP Del Ack")
407*5113495bSYour Name 
408*5113495bSYour Name /*
409*5113495bSYour Name  * <ini>
410*5113495bSYour Name  * gTcpDelAckThresholdLow - Low Threshold inorder to trigger TCP Del Ack
411*5113495bSYour Name  *                                          indication
412*5113495bSYour Name  * @Min: 0
413*5113495bSYour Name  * @Max: 10000
414*5113495bSYour Name  * @Default: 1000
415*5113495bSYour Name  *
416*5113495bSYour Name  * This ini is used to mention the Low Threshold inorder to trigger TCP Del Ack
417*5113495bSYour Name  * indication i.e the threshold of packets received over a period of 100 ms.
418*5113495bSYour Name  * i.e to have a low RX throughput requirement
419*5113495bSYour Name  *
420*5113495bSYour Name  * Related: gTcpDelAckEnable, gTcpDelAckThresholdHigh, gTcpDelAckTimerCount
421*5113495bSYour Name  *
422*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack
423*5113495bSYour Name  *
424*5113495bSYour Name  * Usage: Internal
425*5113495bSYour Name  *
426*5113495bSYour Name  * </ini>
427*5113495bSYour Name  */
428*5113495bSYour Name #define CFG_DP_TCP_DELACK_THRESHOLD_LOW \
429*5113495bSYour Name 		CFG_INI_UINT( \
430*5113495bSYour Name 		"gTcpDelAckThresholdLow", \
431*5113495bSYour Name 		0, \
432*5113495bSYour Name 		10000, \
433*5113495bSYour Name 		1000, \
434*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
435*5113495bSYour Name 		"Low Threshold inorder to trigger TCP Del Ack")
436*5113495bSYour Name 
437*5113495bSYour Name /*
438*5113495bSYour Name  * <ini>
439*5113495bSYour Name  * gTcpDelAckTimerCount - Del Ack Timer Count inorder to trigger TCP Del Ack
440*5113495bSYour Name  *                                      indication
441*5113495bSYour Name  * @Min: 1
442*5113495bSYour Name  * @Max: 1000
443*5113495bSYour Name  * @Default: 30
444*5113495bSYour Name  *
445*5113495bSYour Name  * This ini is used to mention the Del Ack Timer Count inorder to
446*5113495bSYour Name  * trigger TCP Del Ack indication i.e number of 100 ms periods
447*5113495bSYour Name  *
448*5113495bSYour Name  * Related: gTcpDelAckEnable, gTcpDelAckThresholdHigh, gTcpDelAckThresholdLow
449*5113495bSYour Name  *
450*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack
451*5113495bSYour Name  *
452*5113495bSYour Name  * Usage: Internal
453*5113495bSYour Name  *
454*5113495bSYour Name  * </ini>
455*5113495bSYour Name  */
456*5113495bSYour Name #define CFG_DP_TCP_DELACK_TIMER_COUNT \
457*5113495bSYour Name 		CFG_INI_UINT( \
458*5113495bSYour Name 		"gTcpDelAckTimerCount", \
459*5113495bSYour Name 		1, \
460*5113495bSYour Name 		1000, \
461*5113495bSYour Name 		30, \
462*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
463*5113495bSYour Name 		"Del Ack Timer Count inorder to trigger TCP Del Ack")
464*5113495bSYour Name 
465*5113495bSYour Name /*
466*5113495bSYour Name  * <ini>
467*5113495bSYour Name  * gTcpTxHighTputThreshold - High Threshold inorder to trigger High
468*5113495bSYour Name  *                                          Tx Throughput requirement.
469*5113495bSYour Name  * @Min: 0
470*5113495bSYour Name  * @Max: 16000
471*5113495bSYour Name  * @Default: 500
472*5113495bSYour Name  *
473*5113495bSYour Name  * This ini specifies the threshold of packets transmitted
474*5113495bSYour Name  * over a period of 100 ms beyond which TCP can be considered to have a high
475*5113495bSYour Name  * TX throughput requirement. The driver uses this condition to tweak TCP TX
476*5113495bSYour Name  * specific parameters (via cnss-daemon)
477*5113495bSYour Name  *
478*5113495bSYour Name  * Supported Feature: To tweak TCP TX n/w parameters
479*5113495bSYour Name  *
480*5113495bSYour Name  * Usage: Internal
481*5113495bSYour Name  *
482*5113495bSYour Name  * </ini>
483*5113495bSYour Name  */
484*5113495bSYour Name #define CFG_DP_TCP_TX_HIGH_TPUT_THRESHOLD \
485*5113495bSYour Name 		CFG_INI_UINT( \
486*5113495bSYour Name 		"gTcpTxHighTputThreshold", \
487*5113495bSYour Name 		0, \
488*5113495bSYour Name 		16000, \
489*5113495bSYour Name 		500, \
490*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
491*5113495bSYour Name 		"High Threshold inorder to trigger High Tx Tp")
492*5113495bSYour Name 
493*5113495bSYour Name /*
494*5113495bSYour Name  * <ini>
495*5113495bSYour Name  * gBusLowTputCntThreshold - Threshold count to trigger low Tput
496*5113495bSYour Name  *			     GRO flush skip
497*5113495bSYour Name  * @Min: 0
498*5113495bSYour Name  * @Max: 200
499*5113495bSYour Name  * @Default: 10
500*5113495bSYour Name  *
501*5113495bSYour Name  * This ini is a threshold that if count of times for bus Tput level
502*5113495bSYour Name  * PLD_BUS_WIDTH_LOW in bus_bw_timer() >= this threshold, will enable skipping
503*5113495bSYour Name  * GRO flush, current default threshold is 10, then will delay GRO flush-skip
504*5113495bSYour Name  * 1 second for low Tput level.
505*5113495bSYour Name  *
506*5113495bSYour Name  * Supported Feature: GRO flush skip when low T-put
507*5113495bSYour Name  *
508*5113495bSYour Name  * Usage: Internal
509*5113495bSYour Name  *
510*5113495bSYour Name  * </ini>
511*5113495bSYour Name  */
512*5113495bSYour Name #define CFG_DP_BUS_LOW_BW_CNT_THRESHOLD \
513*5113495bSYour Name 		CFG_INI_UINT( \
514*5113495bSYour Name 		"gBusLowTputCntThreshold", \
515*5113495bSYour Name 		0, \
516*5113495bSYour Name 		200, \
517*5113495bSYour Name 		10, \
518*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
519*5113495bSYour Name 		"Threshold to trigger GRO flush skip for low T-put")
520*5113495bSYour Name 
521*5113495bSYour Name /*
522*5113495bSYour Name  * <ini>
523*5113495bSYour Name  * gHandleLatencyCriticalClients - Enable the handling of latency critical
524*5113495bSYour Name  *			     clients in bus bandwidth timer.
525*5113495bSYour Name  * @Default: false
526*5113495bSYour Name  *
527*5113495bSYour Name  * This ini enables the handling of latency critical clients, eg: 11g/a
528*5113495bSYour Name  * clients, when they are running their corresponding peak throughput.
529*5113495bSYour Name  *
530*5113495bSYour Name  * Supported Feature: Latency critical clients in host
531*5113495bSYour Name  *
532*5113495bSYour Name  * Usage: External
533*5113495bSYour Name  *
534*5113495bSYour Name  * </ini>
535*5113495bSYour Name  */
536*5113495bSYour Name #define CFG_DP_BUS_HANDLE_LATENCY_CRITICAL_CLIENTS \
537*5113495bSYour Name 		CFG_INI_BOOL( \
538*5113495bSYour Name 		"gHandleLatencyCriticalClients", \
539*5113495bSYour Name 		false, \
540*5113495bSYour Name 		"Control to enable latency critical clients")
541*5113495bSYour Name 
542*5113495bSYour Name #endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
543*5113495bSYour Name 
544*5113495bSYour Name #ifdef QCA_SUPPORT_TXRX_DRIVER_TCP_DEL_ACK
545*5113495bSYour Name /*
546*5113495bSYour Name  * <ini>
547*5113495bSYour Name  * gDriverDelAckHighThreshold - High Threshold inorder to trigger TCP
548*5113495bSYour Name  *                              delay ack feature in the host.
549*5113495bSYour Name  * @Min: 0
550*5113495bSYour Name  * @Max: 70000
551*5113495bSYour Name  * @Default: 300
552*5113495bSYour Name  *
553*5113495bSYour Name  * This ini specifies the threshold of RX packets transmitted
554*5113495bSYour Name  * over a period of 100 ms beyond which TCP delay ack can be enabled
555*5113495bSYour Name  * to improve TCP RX throughput requirement.
556*5113495bSYour Name  *
557*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack in the host
558*5113495bSYour Name  *
559*5113495bSYour Name  * Usage: Internal
560*5113495bSYour Name  *
561*5113495bSYour Name  * </ini>
562*5113495bSYour Name  */
563*5113495bSYour Name #define CFG_DP_DRIVER_TCP_DELACK_HIGH_THRESHOLD \
564*5113495bSYour Name 		CFG_INI_UINT( \
565*5113495bSYour Name 		"gDriverDelAckHighThreshold", \
566*5113495bSYour Name 		0, \
567*5113495bSYour Name 		70000, \
568*5113495bSYour Name 		300, \
569*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
570*5113495bSYour Name 		"TCP delack high threshold")
571*5113495bSYour Name 
572*5113495bSYour Name /*
573*5113495bSYour Name  * <ini>
574*5113495bSYour Name  * gDriverDelAckLowThreshold - Low Threshold inorder to disable TCP
575*5113495bSYour Name  *                             delay ack feature in the host.
576*5113495bSYour Name  * @Min: 0
577*5113495bSYour Name  * @Max: 70000
578*5113495bSYour Name  * @Default: 100
579*5113495bSYour Name  *
580*5113495bSYour Name  * This ini is used to mention the Low Threshold inorder to disable TCP Del
581*5113495bSYour Name  * Ack feature in the host.
582*5113495bSYour Name  *
583*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack in the host
584*5113495bSYour Name  *
585*5113495bSYour Name  * Usage: Internal
586*5113495bSYour Name  *
587*5113495bSYour Name  * </ini>
588*5113495bSYour Name  */
589*5113495bSYour Name #define CFG_DP_DRIVER_TCP_DELACK_LOW_THRESHOLD \
590*5113495bSYour Name 		CFG_INI_UINT( \
591*5113495bSYour Name 		"gDriverDelAckLowThreshold", \
592*5113495bSYour Name 		0, \
593*5113495bSYour Name 		70000, \
594*5113495bSYour Name 		100, \
595*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
596*5113495bSYour Name 		"TCP delack low threshold")
597*5113495bSYour Name 
598*5113495bSYour Name /*
599*5113495bSYour Name  * <ini>
600*5113495bSYour Name  * gDriverDelAckTimerValue - Timeout value (ms) to send out all TCP del
601*5113495bSYour Name  *                           ack frames
602*5113495bSYour Name  * @Min: 1
603*5113495bSYour Name  * @Max: 15
604*5113495bSYour Name  * @Default: 3
605*5113495bSYour Name  *
606*5113495bSYour Name  * This ini specifies the time out value to send out all pending TCP delay
607*5113495bSYour Name  * ACK frames.
608*5113495bSYour Name  *
609*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack in the host
610*5113495bSYour Name  *
611*5113495bSYour Name  * Usage: Internal
612*5113495bSYour Name  *
613*5113495bSYour Name  * </ini>
614*5113495bSYour Name  */
615*5113495bSYour Name #define CFG_DP_DRIVER_TCP_DELACK_TIMER_VALUE \
616*5113495bSYour Name 		CFG_INI_UINT( \
617*5113495bSYour Name 		"gDriverDelAckTimerValue", \
618*5113495bSYour Name 		1, \
619*5113495bSYour Name 		15, \
620*5113495bSYour Name 		3, \
621*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
622*5113495bSYour Name 		"Send out all TCP Del Acks if time out")
623*5113495bSYour Name 
624*5113495bSYour Name /*
625*5113495bSYour Name  * <ini>
626*5113495bSYour Name  * gDriverDelAckPktCount - The maximum number of TCP delay ack frames
627*5113495bSYour Name  * @Min: 0
628*5113495bSYour Name  * @Max: 50
629*5113495bSYour Name  * @Default: 20
630*5113495bSYour Name  *
631*5113495bSYour Name  * This ini specifies the maximum number of TCP delayed ack frames.
632*5113495bSYour Name  *
633*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack in the host
634*5113495bSYour Name  *
635*5113495bSYour Name  * Usage: Internal
636*5113495bSYour Name  *
637*5113495bSYour Name  * </ini>
638*5113495bSYour Name  */
639*5113495bSYour Name #define CFG_DP_DRIVER_TCP_DELACK_PKT_CNT \
640*5113495bSYour Name 		CFG_INI_UINT( \
641*5113495bSYour Name 		"gDriverDelAckPktCount", \
642*5113495bSYour Name 		0, \
643*5113495bSYour Name 		50, \
644*5113495bSYour Name 		20, \
645*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
646*5113495bSYour Name 		"No of TCP Del ACK count")
647*5113495bSYour Name 
648*5113495bSYour Name /*
649*5113495bSYour Name  * <ini>
650*5113495bSYour Name  * gDriverDelAckEnable - Control to enable Dynamic Configuration of Tcp
651*5113495bSYour Name  *                       Delayed Ack in the host.
652*5113495bSYour Name  * @Default: true
653*5113495bSYour Name  *
654*5113495bSYour Name  * This ini is used to enable Dynamic Configuration of Tcp Delayed Ack
655*5113495bSYour Name  * in the host.
656*5113495bSYour Name  *
657*5113495bSYour Name  * Related: gDriverDelAckHighThreshold, gDriverDelAckLowThreshold,
658*5113495bSYour Name  *          gDriverDelAckPktCount, gDriverDelAckTimerValue
659*5113495bSYour Name  *
660*5113495bSYour Name  * Supported Feature: Tcp Delayed Ack in the host
661*5113495bSYour Name  *
662*5113495bSYour Name  * Usage: Internal
663*5113495bSYour Name  *
664*5113495bSYour Name  * </ini>
665*5113495bSYour Name  */
666*5113495bSYour Name #define CFG_DP_DRIVER_TCP_DELACK_ENABLE \
667*5113495bSYour Name 		CFG_INI_BOOL( \
668*5113495bSYour Name 		"gDriverDelAckEnable", \
669*5113495bSYour Name 		true, \
670*5113495bSYour Name 		"Enable tcp del ack in the driver")
671*5113495bSYour Name #endif
672*5113495bSYour Name 
673*5113495bSYour Name /*
674*5113495bSYour Name  * <ini>
675*5113495bSYour Name  * RX_THREAD_CPU_AFFINITY_MASK - CPU mask to affine Rx_thread
676*5113495bSYour Name  *
677*5113495bSYour Name  * @Min: 0
678*5113495bSYour Name  * @Max: 0xFF
679*5113495bSYour Name  * @Default: 0x02
680*5113495bSYour Name  *
681*5113495bSYour Name  * This ini is used to set Rx_thread CPU affinity
682*5113495bSYour Name  *
683*5113495bSYour Name  * Supported Feature: Rx_thread
684*5113495bSYour Name  *
685*5113495bSYour Name  * Usage: Internal
686*5113495bSYour Name  *
687*5113495bSYour Name  * </ini>
688*5113495bSYour Name  */
689*5113495bSYour Name #ifdef RX_PERFORMANCE
690*5113495bSYour Name #define CFG_DP_RX_THREAD_CPU_MASK \
691*5113495bSYour Name 		CFG_INI_UINT( \
692*5113495bSYour Name 		"RX_THREAD_CPU_AFFINITY_MASK", \
693*5113495bSYour Name 		0, \
694*5113495bSYour Name 		0xFF, \
695*5113495bSYour Name 		0xFE, \
696*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
697*5113495bSYour Name 		"CPU mask to affine Rx_thread")
698*5113495bSYour Name #else
699*5113495bSYour Name #define CFG_DP_RX_THREAD_CPU_MASK \
700*5113495bSYour Name 		CFG_INI_UINT( \
701*5113495bSYour Name 		"RX_THREAD_CPU_AFFINITY_MASK", \
702*5113495bSYour Name 		0, \
703*5113495bSYour Name 		0xFF, \
704*5113495bSYour Name 		0, \
705*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
706*5113495bSYour Name 		"CPU mask to affine Rx_thread")
707*5113495bSYour Name #endif
708*5113495bSYour Name 
709*5113495bSYour Name /*
710*5113495bSYour Name  * <ini>
711*5113495bSYour Name  * RX_THREAD_UL_CPU_AFFINITY_MASK - CPU mask to affine Rx_thread
712*5113495bSYour Name  *
713*5113495bSYour Name  * @Min: 0
714*5113495bSYour Name  * @Max: 0xFF
715*5113495bSYour Name  * @Default: 0x0
716*5113495bSYour Name  *
717*5113495bSYour Name  * This ini is used to set Rx_thread CPU affinity for uplink traffic
718*5113495bSYour Name  *
719*5113495bSYour Name  * Supported Feature: Rx_thread
720*5113495bSYour Name  *
721*5113495bSYour Name  * Usage: Internal
722*5113495bSYour Name  *
723*5113495bSYour Name  * </ini>
724*5113495bSYour Name  */
725*5113495bSYour Name #define CFG_DP_RX_THREAD_UL_CPU_MASK \
726*5113495bSYour Name 		CFG_INI_UINT( \
727*5113495bSYour Name 		"RX_THREAD_UL_CPU_AFFINITY_MASK", \
728*5113495bSYour Name 		0, \
729*5113495bSYour Name 		0xFF, \
730*5113495bSYour Name 		0x0, \
731*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
732*5113495bSYour Name 		"CPU mask to affine Rx_thread for uplink traffic")
733*5113495bSYour Name 
734*5113495bSYour Name /*
735*5113495bSYour Name  * <ini>
736*5113495bSYour Name  * rpsRxQueueCpuMapList - RPS map for different RX queues
737*5113495bSYour Name  *
738*5113495bSYour Name  * @Default: e
739*5113495bSYour Name  *
740*5113495bSYour Name  * This ini is used to set RPS map for different RX queues.
741*5113495bSYour Name  *
742*5113495bSYour Name  * List of RPS CPU maps for different rx queues registered by WLAN driver
743*5113495bSYour Name  * Ref - Kernel/Documentation/networking/scaling.txt
744*5113495bSYour Name  * RPS CPU map for a particular RX queue, selects CPU(s) for bottom half
745*5113495bSYour Name  * processing of RX packets. For example, for a system with 4 CPUs,
746*5113495bSYour Name  * 0xe: Use CPU1 - CPU3 and donot use CPU0.
747*5113495bSYour Name  * 0x0: RPS is disabled, packets are processed on the interrupting CPU.
748*5113495bSYour Name .*
749*5113495bSYour Name  * WLAN driver registers NUM_TX_QUEUES queues for tx and rx each during
750*5113495bSYour Name  * alloc_netdev_mq. Hence, we need to have a cpu mask for each of the rx queues.
751*5113495bSYour Name  *
752*5113495bSYour Name  * For example, if the NUM_TX_QUEUES is 4, a sample WLAN ini entry may look like
753*5113495bSYour Name  * rpsRxQueueCpuMapList=a b c d
754*5113495bSYour Name  * For a 4 CPU system (CPU0 - CPU3), this implies:
755*5113495bSYour Name  * 0xa - (1010) use CPU1, CPU3 for rx queue 0
756*5113495bSYour Name  * 0xb - (1011) use CPU0, CPU1 and CPU3 for rx queue 1
757*5113495bSYour Name  * 0xc - (1100) use CPU2, CPU3 for rx queue 2
758*5113495bSYour Name  * 0xd - (1101) use CPU0, CPU2 and CPU3 for rx queue 3
759*5113495bSYour Name 
760*5113495bSYour Name  * In practice, we may want to avoid the cores which are heavily loaded.
761*5113495bSYour Name  *
762*5113495bSYour Name  * Default value of rpsRxQueueCpuMapList. Different platforms may have
763*5113495bSYour Name  * different configurations for NUM_TX_QUEUES and # of cpus, and will need to
764*5113495bSYour Name  * configure an appropriate value via ini file. Setting default value to 'e' to
765*5113495bSYour Name  * avoid use of CPU0 (since its heavily used by other system processes) by rx
766*5113495bSYour Name  * queue 0, which is currently being used for rx packet processing.
767*5113495bSYour Name  *
768*5113495bSYour Name  * Maximum length of string used to hold a list of cpu maps for various rx
769*5113495bSYour Name  * queues. Considering a 16 core system with 5 rx queues, a RPS CPU map
770*5113495bSYour Name  * list may look like -
771*5113495bSYour Name  * rpsRxQueueCpuMapList = ffff ffff ffff ffff ffff
772*5113495bSYour Name  * (all 5 rx queues can be processed on all 16 cores)
773*5113495bSYour Name  * max string len = 24 + 1(for '\0'). Considering 30 to be on safe side.
774*5113495bSYour Name  *
775*5113495bSYour Name  * Supported Feature: Rx_thread
776*5113495bSYour Name  *
777*5113495bSYour Name  * Usage: Internal
778*5113495bSYour Name  * </ini>
779*5113495bSYour Name  */
780*5113495bSYour Name #define CFG_DP_RPS_RX_QUEUE_CPU_MAP_LIST \
781*5113495bSYour Name 		CFG_INI_STRING( \
782*5113495bSYour Name 		"rpsRxQueueCpuMapList", \
783*5113495bSYour Name 		1, \
784*5113495bSYour Name 		30, \
785*5113495bSYour Name 		"e", \
786*5113495bSYour Name 		"specify RPS map for different RX queues")
787*5113495bSYour Name 
788*5113495bSYour Name /*
789*5113495bSYour Name  * <ini>
790*5113495bSYour Name  * gEnableTxOrphan- Enable/Disable orphaning of Tx packets
791*5113495bSYour Name  * @Default: false
792*5113495bSYour Name  *
793*5113495bSYour Name  * This ini is used to enable/disable orphaning of Tx packets.
794*5113495bSYour Name  *
795*5113495bSYour Name  * Related: None
796*5113495bSYour Name  *
797*5113495bSYour Name  * Usage: External
798*5113495bSYour Name  *
799*5113495bSYour Name  * </ini>
800*5113495bSYour Name  */
801*5113495bSYour Name #define CFG_DP_TX_ORPHAN_ENABLE \
802*5113495bSYour Name 		CFG_INI_BOOL( \
803*5113495bSYour Name 		"gEnableTxOrphan", \
804*5113495bSYour Name 		false, \
805*5113495bSYour Name 		"orphaning of Tx packets")
806*5113495bSYour Name 
807*5113495bSYour Name /*
808*5113495bSYour Name  * <ini>
809*5113495bSYour Name  * rx_mode - Control to decide rx mode for packet processing
810*5113495bSYour Name  *
811*5113495bSYour Name  * @Min: 0
812*5113495bSYour Name  * @Max: (CFG_ENABLE_RX_THREAD | CFG_ENABLE_RPS | CFG_ENABLE_NAPI | \
813*5113495bSYour Name  *	 CFG_ENABLE_DYNAMIC_RPS)
814*5113495bSYour Name  *
815*5113495bSYour Name  * Some possible configurations:
816*5113495bSYour Name  * rx_mode=0 - Uses tasklets for bottom half
817*5113495bSYour Name  * CFG_ENABLE_NAPI (rx_mode=4) - Uses NAPI for bottom half
818*5113495bSYour Name  * CFG_ENABLE_RX_THREAD | CFG_ENABLE_NAPI (rx_mode=5) - NAPI for bottom half,
819*5113495bSYour Name  * rx_thread for stack. Single threaded.
820*5113495bSYour Name  * CFG_ENABLE_DP_RX_THREAD | CFG_ENABLE_NAPI (rx_mode=10) - NAPI for bottom
821*5113495bSYour Name  * half, dp_rx_thread for stack processing. Supports multiple rx threads.
822*5113495bSYour Name  *
823*5113495bSYour Name  * Usage: Internal
824*5113495bSYour Name  *
825*5113495bSYour Name  * </ini>
826*5113495bSYour Name  */
827*5113495bSYour Name #define CFG_DP_RX_MODE \
828*5113495bSYour Name 		CFG_INI_UINT("rx_mode", \
829*5113495bSYour Name 		0, CFG_RX_MODE_MAX, CFG_RX_MODE_DEFAULT, \
830*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
831*5113495bSYour Name 		"Control to decide rx mode for packet processing")
832*5113495bSYour Name 
833*5113495bSYour Name /*
834*5113495bSYour Name  * <ini>
835*5113495bSYour Name  * tx_comp_loop_pkt_limit - Control to decide max # of packets to be processed
836*5113495bSYour Name  *			    in 1 tx comp loop
837*5113495bSYour Name  *
838*5113495bSYour Name  * @Min: 8
839*5113495bSYour Name  * @Max: CFG_DP_TX_COMP_LOOP_PKT_LIMIT_MAX
840*5113495bSYour Name  *
841*5113495bSYour Name  * Usage: Internal
842*5113495bSYour Name  *
843*5113495bSYour Name  * </ini>
844*5113495bSYour Name  */
845*5113495bSYour Name #define CFG_DP_TX_COMP_LOOP_PKT_LIMIT \
846*5113495bSYour Name 		CFG_INI_UINT("tx_comp_loop_pkt_limit", \
847*5113495bSYour Name 		1, CFG_DP_TX_COMP_LOOP_PKT_LIMIT_MAX, \
848*5113495bSYour Name 		CFG_DP_TX_COMP_LOOP_PKT_LIMIT_DEFAULT, \
849*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
850*5113495bSYour Name 		"Control to decide tx comp loop pkt limit")
851*5113495bSYour Name /*
852*5113495bSYour Name  * <ini>
853*5113495bSYour Name  * rx_reap_loop_pkt_limit - Control to decide max # of packets to be reaped
854*5113495bSYour Name  *			    in 1 dp_rx_process reap loop
855*5113495bSYour Name  *
856*5113495bSYour Name  * @Min: 8
857*5113495bSYour Name  * @Max: CFG_DP_RX_REAP_LOOP_PKT_LIMIT_MAX
858*5113495bSYour Name  *
859*5113495bSYour Name  * Usage: Internal
860*5113495bSYour Name  *
861*5113495bSYour Name  * </ini>
862*5113495bSYour Name  */
863*5113495bSYour Name #define CFG_DP_RX_REAP_LOOP_PKT_LIMIT \
864*5113495bSYour Name 		CFG_INI_UINT("rx_reap_loop_pkt_limit", \
865*5113495bSYour Name 		0, CFG_DP_RX_REAP_LOOP_PKT_LIMIT_MAX, \
866*5113495bSYour Name 		CFG_DP_RX_REAP_LOOP_PKT_LIMIT_DEFAULT, \
867*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
868*5113495bSYour Name 		"Control to decide rx reap loop packet limit")
869*5113495bSYour Name 
870*5113495bSYour Name /*
871*5113495bSYour Name  * <ini>
872*5113495bSYour Name  * rx_hp_oos_update_limit - Control to decide max # of HP OOS (out of sync)
873*5113495bSYour Name  *			    updates
874*5113495bSYour Name  *
875*5113495bSYour Name  * @Min: 0
876*5113495bSYour Name  * @Max: CFG_DP_RX_HP_OOS_UPDATE_LIMIT_MAX
877*5113495bSYour Name  *
878*5113495bSYour Name  * Usage: Internal
879*5113495bSYour Name  *
880*5113495bSYour Name  * </ini>
881*5113495bSYour Name  */
882*5113495bSYour Name #define CFG_DP_RX_HP_OOS_UPDATE_LIMIT \
883*5113495bSYour Name 		CFG_INI_UINT("rx_hp_oos_update_limit", \
884*5113495bSYour Name 		0, CFG_DP_RX_HP_OOS_UPDATE_LIMIT_MAX, \
885*5113495bSYour Name 		CFG_DP_RX_HP_OOS_UPDATE_LIMIT_DEFAULT, \
886*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
887*5113495bSYour Name 		"Control to decide HP OOS update limit")
888*5113495bSYour Name 
889*5113495bSYour Name /*
890*5113495bSYour Name  * <ini>
891*5113495bSYour Name  * rx_softirq_max_yield_duration_ns - Control to decide max duration for RX
892*5113495bSYour Name  *				      softirq
893*5113495bSYour Name  *
894*5113495bSYour Name  * @Min: 100 * 1000 , 100us
895*5113495bSYour Name  * @Max: CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS_MAX
896*5113495bSYour Name  *
897*5113495bSYour Name  * Usage: Internal
898*5113495bSYour Name  *
899*5113495bSYour Name  * </ini>
900*5113495bSYour Name  */
901*5113495bSYour Name #define CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS \
902*5113495bSYour Name 		CFG_INI_UINT("rx_softirq_max_yield_duration_ns", \
903*5113495bSYour Name 		100 * 1000, CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS_MAX, \
904*5113495bSYour Name 		CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS_DEFAULT, \
905*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
906*5113495bSYour Name 		"max yield time duration for RX Softirq")
907*5113495bSYour Name 
908*5113495bSYour Name /*
909*5113495bSYour Name  * <ini>
910*5113495bSYour Name  * enable_multicast_replay_filter - Enable filtering of replayed multicast
911*5113495bSYour Name  * packets
912*5113495bSYour Name  *
913*5113495bSYour Name  * In a typical infrastructure setup, it is quite normal to receive
914*5113495bSYour Name  * replayed multicast packets. These packets may cause more harm than
915*5113495bSYour Name  * help if not handled properly. Providing a configuration option
916*5113495bSYour Name  * to enable filtering of such packets
917*5113495bSYour Name  *
918*5113495bSYour Name  * </ini>
919*5113495bSYour Name  */
920*5113495bSYour Name #define CFG_DP_FILTER_MULTICAST_REPLAY \
921*5113495bSYour Name 	CFG_INI_BOOL("enable_multicast_replay_filter", \
922*5113495bSYour Name 	true, "Enable filtering of replayed multicast packets")
923*5113495bSYour Name 
924*5113495bSYour Name /*
925*5113495bSYour Name  * <ini>
926*5113495bSYour Name  * rx_wakelock_timeout - Amount of time to hold wakelock for RX unicast packets
927*5113495bSYour Name  * @Min: 0
928*5113495bSYour Name  * @Max: 100
929*5113495bSYour Name  * @Default: 50
930*5113495bSYour Name  *
931*5113495bSYour Name  * This ini item configures the amount of time, in milliseconds, that the driver
932*5113495bSYour Name  * should prevent system power collapse after receiving an RX unicast packet.
933*5113495bSYour Name  * A conigured value of 0 disables the RX Wakelock feature completely.
934*5113495bSYour Name  *
935*5113495bSYour Name  * Related: None.
936*5113495bSYour Name  *
937*5113495bSYour Name  * Supported Feature: RX Wakelock
938*5113495bSYour Name  *
939*5113495bSYour Name  * Usage: Internal/External
940*5113495bSYour Name  *
941*5113495bSYour Name  * </ini>
942*5113495bSYour Name  */
943*5113495bSYour Name #define CFG_DP_RX_WAKELOCK_TIMEOUT \
944*5113495bSYour Name 	CFG_INI_UINT("rx_wakelock_timeout", \
945*5113495bSYour Name 	0, 100, 50, CFG_VALUE_OR_DEFAULT, \
946*5113495bSYour Name 	"Amount of time to hold wakelock for RX unicast packets")
947*5113495bSYour Name 
948*5113495bSYour Name /*
949*5113495bSYour Name  * <ini>
950*5113495bSYour Name  * num_dp_rx_threads - Control to set the number of dp rx threads
951*5113495bSYour Name  *
952*5113495bSYour Name  * @Min: 1
953*5113495bSYour Name  * @Max: 4
954*5113495bSYour Name  * @Default: 1
955*5113495bSYour Name  *
956*5113495bSYour Name  * Usage: Internal
957*5113495bSYour Name  *
958*5113495bSYour Name  * </ini>
959*5113495bSYour Name  */
960*5113495bSYour Name #define CFG_DP_NUM_DP_RX_THREADS \
961*5113495bSYour Name 	CFG_INI_UINT("num_dp_rx_threads", \
962*5113495bSYour Name 	1, 4, 1, CFG_VALUE_OR_DEFAULT, \
963*5113495bSYour Name 	"Control to set the number of dp rx threads")
964*5113495bSYour Name 
965*5113495bSYour Name /*
966*5113495bSYour Name  * <ini>
967*5113495bSYour Name  * ce_service_max_rx_ind_flush - Maximum number of HTT messages
968*5113495bSYour Name  * to be processed per NAPI poll
969*5113495bSYour Name  *
970*5113495bSYour Name  * @Min: 1
971*5113495bSYour Name  * @Max: 32
972*5113495bSYour Name  * @Default: 1
973*5113495bSYour Name  *
974*5113495bSYour Name  * Usage: Internal
975*5113495bSYour Name  *
976*5113495bSYour Name  * </ini>
977*5113495bSYour Name  */
978*5113495bSYour Name #define CFG_DP_CE_SERVICE_MAX_RX_IND_FLUSH \
979*5113495bSYour Name 		CFG_INI_UINT("ce_service_max_rx_ind_flush", \
980*5113495bSYour Name 		1, 32, 1, \
981*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "Ctrl to set ce service max rx ind flsh")
982*5113495bSYour Name 
983*5113495bSYour Name /*
984*5113495bSYour Name  * <ini>
985*5113495bSYour Name  * ce_service_max_yield_time - Time in microseconds after which
986*5113495bSYour Name  * a NAPI poll must yield
987*5113495bSYour Name  *
988*5113495bSYour Name  * @Min: 500
989*5113495bSYour Name  * @Max: 10000
990*5113495bSYour Name  * @Default: 500
991*5113495bSYour Name  *
992*5113495bSYour Name  * Usage: Internal
993*5113495bSYour Name  *
994*5113495bSYour Name  * </ini>
995*5113495bSYour Name  */
996*5113495bSYour Name #define CFG_DP_CE_SERVICE_MAX_YIELD_TIME \
997*5113495bSYour Name 		CFG_INI_UINT("ce_service_max_yield_time", \
998*5113495bSYour Name 		500, 10000, 500, \
999*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "Ctrl to set ce service max yield time")
1000*5113495bSYour Name 
1001*5113495bSYour Name #ifdef WLAN_FEATURE_FASTPATH
1002*5113495bSYour Name #define CFG_DP_ENABLE_FASTPATH \
1003*5113495bSYour Name 		CFG_INI_BOOL("gEnableFastPath", \
1004*5113495bSYour Name 		false, "Ctrl to enable fastpath feature")
1005*5113495bSYour Name 
1006*5113495bSYour Name #define CFG_DP_ENABLE_FASTPATH_ALL \
1007*5113495bSYour Name 	CFG(CFG_DP_ENABLE_FASTPATH)
1008*5113495bSYour Name #else
1009*5113495bSYour Name #define CFG_DP_ENABLE_FASTPATH_ALL
1010*5113495bSYour Name #endif
1011*5113495bSYour Name 
1012*5113495bSYour Name #define CFG_DP_ENABLE_TCP_PARAM_UPDATE \
1013*5113495bSYour Name 		CFG_INI_BOOL("enable_tcp_param_update", \
1014*5113495bSYour Name 		false, "configure TCP param through Wi-Fi HAL")
1015*5113495bSYour Name /*
1016*5113495bSYour Name  * <ini>
1017*5113495bSYour Name  *
1018*5113495bSYour Name  * Enable/disable DPTRACE
1019*5113495bSYour Name  * Enabling this might have performance impact.
1020*5113495bSYour Name  *
1021*5113495bSYour Name  * Config DPTRACE
1022*5113495bSYour Name  * The sequence of params is important. If some param is missing, defaults are
1023*5113495bSYour Name  * considered.
1024*5113495bSYour Name  * Param 1: Enable/Disable DP Trace live mode (uint8_t)
1025*5113495bSYour Name  * Param 2: DP Trace live mode high bandwidth thresh.(uint8_t)
1026*5113495bSYour Name  *         (packets/second) beyond which DP Trace is disabled. Decimal Val.
1027*5113495bSYour Name  *          MGMT, DHCP, EAPOL, ARP pkts are not counted. ICMP and Data are.
1028*5113495bSYour Name  * Param 3: Default Verbosity (0-4)
1029*5113495bSYour Name  * Param 4: Proto Bitmap (uint8_t). Decimal Value.
1030*5113495bSYour Name  *          (decimal 62 = 0x3e)
1031*5113495bSYour Name  * e.g., to disable live mode, use the following param in the ini file.
1032*5113495bSYour Name  * gDptraceConfig = 0
1033*5113495bSYour Name  * e.g., to enable dptrace live mode and set the thresh as 6,
1034*5113495bSYour Name  * use the following param in the ini file.
1035*5113495bSYour Name  * gDptraceConfig = 1, 6
1036*5113495bSYour Name  *
1037*5113495bSYour Name  * </ini>
1038*5113495bSYour Name  */
1039*5113495bSYour Name #ifdef CONFIG_DP_TRACE
1040*5113495bSYour Name #define CFG_DP_ENABLE_DP_TRACE \
1041*5113495bSYour Name 			CFG_INI_BOOL("enable_dp_trace", \
1042*5113495bSYour Name 			true, "Ctrl to enable dp trace feature")
1043*5113495bSYour Name 
1044*5113495bSYour Name #define CFG_DP_DP_TRACE_CONFIG \
1045*5113495bSYour Name 		CFG_INI_STRING( \
1046*5113495bSYour Name 		"gDptraceConfig", \
1047*5113495bSYour Name 		1, \
1048*5113495bSYour Name 		20, \
1049*5113495bSYour Name 		"1, 6, 2, 126", \
1050*5113495bSYour Name 		"dp trace configuration string")
1051*5113495bSYour Name 
1052*5113495bSYour Name /*
1053*5113495bSYour Name  * <ini>
1054*5113495bSYour Name  * dp_proto_event_bitmap - Control for which protocol packet diag event should
1055*5113495bSYour Name  *  be sent to user space.
1056*5113495bSYour Name  * @Min: 0
1057*5113495bSYour Name  * @Max: 0x17
1058*5113495bSYour Name  * @Default: 0x6
1059*5113495bSYour Name  *
1060*5113495bSYour Name  * This ini is used to control for which protocol packet diag event should be
1061*5113495bSYour Name  * sent to user space.
1062*5113495bSYour Name  *
1063*5113495bSYour Name  * QDF_NBUF_PKT_TRAC_TYPE_DNS       0x01
1064*5113495bSYour Name  * QDF_NBUF_PKT_TRAC_TYPE_EAPOL     0x02
1065*5113495bSYour Name  * QDF_NBUF_PKT_TRAC_TYPE_DHCP      0x04
1066*5113495bSYour Name  * QDF_NBUF_PKT_TRAC_TYPE_ARP       0x10
1067*5113495bSYour Name  *
1068*5113495bSYour Name  * Related: None
1069*5113495bSYour Name  *
1070*5113495bSYour Name  * Supported Feature: STA, SAP
1071*5113495bSYour Name  *
1072*5113495bSYour Name  * Usage: Internal
1073*5113495bSYour Name  *
1074*5113495bSYour Name  * <ini>
1075*5113495bSYour Name  */
1076*5113495bSYour Name #define CFG_DP_PROTO_EVENT_BITMAP \
1077*5113495bSYour Name 		CFG_INI_UINT("dp_proto_event_bitmap", \
1078*5113495bSYour Name 		0, 0x17, 0x17, \
1079*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
1080*5113495bSYour Name 		"Control for which protocol type diag log should be sent")
1081*5113495bSYour Name 
1082*5113495bSYour Name #define CFG_DP_CONFIG_DP_TRACE_ALL \
1083*5113495bSYour Name 		CFG(CFG_DP_ENABLE_DP_TRACE) \
1084*5113495bSYour Name 		CFG(CFG_DP_DP_TRACE_CONFIG) \
1085*5113495bSYour Name 		CFG(CFG_DP_PROTO_EVENT_BITMAP)
1086*5113495bSYour Name #else
1087*5113495bSYour Name #define CFG_DP_CONFIG_DP_TRACE_ALL
1088*5113495bSYour Name #endif
1089*5113495bSYour Name 
1090*5113495bSYour Name #ifdef WLAN_NUD_TRACKING
1091*5113495bSYour Name /*
1092*5113495bSYour Name  * <ini>
1093*5113495bSYour Name  * gEnableNUDTracking - Will enable or disable NUD tracking within driver
1094*5113495bSYour Name  * @Min: 0
1095*5113495bSYour Name  * @Max: 3
1096*5113495bSYour Name  * @Default: 2
1097*5113495bSYour Name  *
1098*5113495bSYour Name  * This ini is used to specify the behaviour of the driver for NUD tracking.
1099*5113495bSYour Name  * If the ini value is:-
1100*5113495bSYour Name  * 0: Driver will not track the NUD failures, and ignore the same.
1101*5113495bSYour Name  * 1: Driver will track the NUD failures and if honoured will disconnect from
1102*5113495bSYour Name  * the connected BSSID.
1103*5113495bSYour Name  * 2: Driver will track the NUD failures and if honoured will roam away from
1104*5113495bSYour Name  * the connected BSSID to a new BSSID to retain the data connectivity.
1105*5113495bSYour Name  * 3: Driver will try to roam to a new AP but if roam fails, disconnect.
1106*5113495bSYour Name  * Related: None
1107*5113495bSYour Name  *
1108*5113495bSYour Name  * Supported Feature: STA
1109*5113495bSYour Name  *
1110*5113495bSYour Name  * Usage: External
1111*5113495bSYour Name  *
1112*5113495bSYour Name  * <ini>
1113*5113495bSYour Name  */
1114*5113495bSYour Name #define CFG_DP_ENABLE_NUD_TRACKING \
1115*5113495bSYour Name 		CFG_INI_UINT("gEnableNUDTracking", \
1116*5113495bSYour Name 		 0, \
1117*5113495bSYour Name 		 3, \
1118*5113495bSYour Name 		 2, \
1119*5113495bSYour Name 		 CFG_VALUE_OR_DEFAULT, "Driver NUD tracking behaviour")
1120*5113495bSYour Name 
1121*5113495bSYour Name #define CFG_DP_ENABLE_NUD_TRACKING_ALL \
1122*5113495bSYour Name 			CFG(CFG_DP_ENABLE_NUD_TRACKING)
1123*5113495bSYour Name #else
1124*5113495bSYour Name #define CFG_DP_ENABLE_NUD_TRACKING_ALL
1125*5113495bSYour Name #endif
1126*5113495bSYour Name 
1127*5113495bSYour Name #ifdef WLAN_SUPPORT_TXRX_HL_BUNDLE
1128*5113495bSYour Name 
1129*5113495bSYour Name #define CFG_DP_HL_BUNDLE_HIGH_TH \
1130*5113495bSYour Name 		CFG_INI_UINT( \
1131*5113495bSYour Name 		"tx_bundle_high_threashold", \
1132*5113495bSYour Name 		0, \
1133*5113495bSYour Name 		70000, \
1134*5113495bSYour Name 		4330, \
1135*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
1136*5113495bSYour Name 		"tx bundle high threashold")
1137*5113495bSYour Name 
1138*5113495bSYour Name #define CFG_DP_HL_BUNDLE_LOW_TH \
1139*5113495bSYour Name 		CFG_INI_UINT( \
1140*5113495bSYour Name 		"tx_bundle_low_threashold", \
1141*5113495bSYour Name 		0, \
1142*5113495bSYour Name 		70000, \
1143*5113495bSYour Name 		4000, \
1144*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
1145*5113495bSYour Name 		"tx bundle low threashold")
1146*5113495bSYour Name 
1147*5113495bSYour Name #define CFG_DP_HL_BUNDLE_TIMER_VALUE \
1148*5113495bSYour Name 		CFG_INI_UINT( \
1149*5113495bSYour Name 		"tx_bundle_timer_in_ms", \
1150*5113495bSYour Name 		10, \
1151*5113495bSYour Name 		10000, \
1152*5113495bSYour Name 		100, \
1153*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
1154*5113495bSYour Name 		"tx bundle timer value in ms")
1155*5113495bSYour Name 
1156*5113495bSYour Name #define CFG_DP_HL_BUNDLE_SIZE \
1157*5113495bSYour Name 		CFG_INI_UINT( \
1158*5113495bSYour Name 		"tx_bundle_size", \
1159*5113495bSYour Name 		0, \
1160*5113495bSYour Name 		64, \
1161*5113495bSYour Name 		16, \
1162*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
1163*5113495bSYour Name 		"tx bundle size")
1164*5113495bSYour Name 
1165*5113495bSYour Name #endif
1166*5113495bSYour Name 
1167*5113495bSYour Name #define WLAN_CFG_ICMP_REQ_TO_FW_MARK_ALL (-1)
1168*5113495bSYour Name #define WLAN_CFG_ICMP_REQ_TO_FW_MARK_INTERVAL 0
1169*5113495bSYour Name #define WLAN_CFG_ICMP_REQ_TO_FW_MARK_INTERVAL_MIN (-1)
1170*5113495bSYour Name #define WLAN_CFG_ICMP_REQ_TO_FW_MARK_INTERVAL_MAX 100000
1171*5113495bSYour Name 
1172*5113495bSYour Name /*
1173*5113495bSYour Name  * <ini>
1174*5113495bSYour Name  * icmp_req_to_fw_mark_interval - Interval to mark the ICMP Request packet
1175*5113495bSYour Name  *				  to be sent to FW.
1176*5113495bSYour Name  * @Min: -1
1177*5113495bSYour Name  * @Max:  100000
1178*5113495bSYour Name  * @Default: 0
1179*5113495bSYour Name  *
1180*5113495bSYour Name  * This ini is used to control DP Software to mark the ICMP request packets
1181*5113495bSYour Name  * to be sent to FW at certain interval (in milliseconds).
1182*5113495bSYour Name  * The value 0 is used to disable marking of ICMP requests to be sent to FW.
1183*5113495bSYour Name  * The value -1 is used to mark all the ICMP requests to be sent to FW.
1184*5113495bSYour Name  * Any value greater than zero indicates the time interval (in milliseconds)
1185*5113495bSYour Name  * at which ICMP requests are marked to be sent to FW.
1186*5113495bSYour Name  *
1187*5113495bSYour Name  * Supported modes: All modes
1188*5113495bSYour Name  *
1189*5113495bSYour Name  * Usage: External
1190*5113495bSYour Name  *
1191*5113495bSYour Name  * </ini>
1192*5113495bSYour Name  */
1193*5113495bSYour Name #define CFG_DP_ICMP_REQ_TO_FW_MARK_INTERVAL \
1194*5113495bSYour Name 	CFG_INI_INT("icmp_req_to_fw_mark_interval", \
1195*5113495bSYour Name 		    WLAN_CFG_ICMP_REQ_TO_FW_MARK_INTERVAL_MIN, \
1196*5113495bSYour Name 		    WLAN_CFG_ICMP_REQ_TO_FW_MARK_INTERVAL_MAX, \
1197*5113495bSYour Name 		    WLAN_CFG_ICMP_REQ_TO_FW_MARK_INTERVAL, \
1198*5113495bSYour Name 		    CFG_VALUE_OR_DEFAULT, \
1199*5113495bSYour Name 		    "Interval to mark ICMP Request packets to be sent to FW")
1200*5113495bSYour Name 
1201*5113495bSYour Name /*
1202*5113495bSYour Name  * <ini>
1203*5113495bSYour Name  * enable_direct_link_ut_cmd - Enable direct link unit testing
1204*5113495bSYour Name  * @Min: 0
1205*5113495bSYour Name  * @Max: 1
1206*5113495bSYour Name  * @Default: 0
1207*5113495bSYour Name  *
1208*5113495bSYour Name  * This ini is used to enable direct link unit test
1209*5113495bSYour Name  *
1210*5113495bSYour Name  * Supported feature: Direct link
1211*5113495bSYour Name  *
1212*5113495bSYour Name  * Usage: Internal
1213*5113495bSYour Name  *
1214*5113495bSYour Name  * </ini>
1215*5113495bSYour Name  */
1216*5113495bSYour Name #define CFG_ENABLE_DIRECT_LINK_UT_CMD \
1217*5113495bSYour Name 	CFG_INI_BOOL("enable_direct_link_ut_cmd", false, \
1218*5113495bSYour Name 		     "enable/disable direct link unit test")
1219*5113495bSYour Name 
1220*5113495bSYour Name /*
1221*5113495bSYour Name  * <ini>
1222*5113495bSYour Name  * dp_apply_mem_profile - Apply mem profile config
1223*5113495bSYour Name  * @Min: 0
1224*5113495bSYour Name  * @Max: 1
1225*5113495bSYour Name  * @Default: 0
1226*5113495bSYour Name  *
1227*5113495bSYour Name  * This ini is used to apply DP mem profile config
1228*5113495bSYour Name  *
1229*5113495bSYour Name  * Supported feature: All modes
1230*5113495bSYour Name  *
1231*5113495bSYour Name  * Usage: Internal
1232*5113495bSYour Name  *
1233*5113495bSYour Name  * </ini>
1234*5113495bSYour Name  */
1235*5113495bSYour Name #define CFG_DP_APPLY_MEM_PROFILE \
1236*5113495bSYour Name 	CFG_INI_BOOL("dp_apply_mem_profile", false, \
1237*5113495bSYour Name 		     "enable/disable dp mem profile")
1238*5113495bSYour Name 
1239*5113495bSYour Name #ifdef WLAN_SUPPORT_RX_FISA
1240*5113495bSYour Name /*
1241*5113495bSYour Name  * <ini>
1242*5113495bSYour Name  * dp_rx_fisa_enable - Control Rx datapath FISA
1243*5113495bSYour Name  * @Min: 0
1244*5113495bSYour Name  * @Max: 1
1245*5113495bSYour Name  * @Default: 1
1246*5113495bSYour Name  *
1247*5113495bSYour Name  * This ini is used to enable DP Rx FISA feature
1248*5113495bSYour Name  *
1249*5113495bSYour Name  * Related: dp_rx_flow_search_table_size
1250*5113495bSYour Name  *
1251*5113495bSYour Name  * Supported Feature: STA,P2P and SAP IPA disabled terminating
1252*5113495bSYour Name  *
1253*5113495bSYour Name  * Usage: Internal
1254*5113495bSYour Name  *
1255*5113495bSYour Name  * </ini>
1256*5113495bSYour Name  */
1257*5113495bSYour Name #define CFG_DP_RX_FISA_ENABLE \
1258*5113495bSYour Name 	CFG_INI_BOOL("dp_rx_fisa_enable", true, \
1259*5113495bSYour Name 		     "Enable/Disable DP Rx FISA")
1260*5113495bSYour Name 
1261*5113495bSYour Name /*
1262*5113495bSYour Name  * <ini>
1263*5113495bSYour Name  * dp_rx_fisa_lru_del_enable - Control Rx datapath FISA
1264*5113495bSYour Name  * @Min: 0
1265*5113495bSYour Name  * @Max: 1
1266*5113495bSYour Name  * @Default: 1
1267*5113495bSYour Name  *
1268*5113495bSYour Name  * This ini is used to enable DP Rx FISA lru deletion feature
1269*5113495bSYour Name  *
1270*5113495bSYour Name  * Related: dp_rx_fisa_enable
1271*5113495bSYour Name  *
1272*5113495bSYour Name  * Supported Feature: STA,P2P and SAP IPA disabled terminating
1273*5113495bSYour Name  *
1274*5113495bSYour Name  * Usage: Internal
1275*5113495bSYour Name  *
1276*5113495bSYour Name  * </ini>
1277*5113495bSYour Name  */
1278*5113495bSYour Name #define CFG_DP_RX_FISA_LRU_DEL_ENABLE \
1279*5113495bSYour Name 	CFG_INI_BOOL("dp_rx_fisa_lru_del_enable", true, \
1280*5113495bSYour Name 		     "Enable/Disable DP Rx FISA LRU deletion")
1281*5113495bSYour Name 
1282*5113495bSYour Name #define CFG_DP_FISA \
1283*5113495bSYour Name 	CFG(CFG_DP_RX_FISA_ENABLE) \
1284*5113495bSYour Name 	CFG(CFG_DP_RX_FISA_LRU_DEL_ENABLE)
1285*5113495bSYour Name #else
1286*5113495bSYour Name #define CFG_DP_FISA
1287*5113495bSYour Name #endif
1288*5113495bSYour Name 
1289*5113495bSYour Name /*TODO Flow control part to be moved to DP later*/
1290*5113495bSYour Name 
1291*5113495bSYour Name #ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
1292*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH \
1293*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_SUPER_HIGH_THRESHOLD) \
1294*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_ULTRA_HIGH_THRESHOLD) \
1295*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_VERY_HIGH_THRESHOLD) \
1296*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_MID_HIGH_THRESHOLD) \
1297*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_DBS_THRESHOLD) \
1298*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_HIGH_THRESHOLD) \
1299*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_MEDIUM_THRESHOLD) \
1300*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_LOW_THRESHOLD) \
1301*5113495bSYour Name 	CFG(CFG_DP_BUS_BANDWIDTH_COMPUTE_INTERVAL) \
1302*5113495bSYour Name 	CFG(CFG_DP_ENABLE_TCP_LIMIT_OUTPUT) \
1303*5113495bSYour Name 	CFG(CFG_DP_ENABLE_TCP_ADV_WIN_SCALE) \
1304*5113495bSYour Name 	CFG(CFG_DP_ENABLE_TCP_DELACK) \
1305*5113495bSYour Name 	CFG(CFG_DP_TCP_DELACK_THRESHOLD_HIGH) \
1306*5113495bSYour Name 	CFG(CFG_DP_TCP_DELACK_THRESHOLD_LOW) \
1307*5113495bSYour Name 	CFG(CFG_DP_TCP_DELACK_TIMER_COUNT) \
1308*5113495bSYour Name 	CFG(CFG_DP_TCP_TX_HIGH_TPUT_THRESHOLD) \
1309*5113495bSYour Name 	CFG(CFG_DP_BUS_LOW_BW_CNT_THRESHOLD) \
1310*5113495bSYour Name 	CFG(CFG_DP_BUS_HANDLE_LATENCY_CRITICAL_CLIENTS)
1311*5113495bSYour Name 
1312*5113495bSYour Name #else
1313*5113495bSYour Name #define CFG_DP_BUS_BANDWIDTH
1314*5113495bSYour Name #endif
1315*5113495bSYour Name 
1316*5113495bSYour Name #ifdef QCA_SUPPORT_TXRX_DRIVER_TCP_DEL_ACK
1317*5113495bSYour Name #define CFG_DP_DRIVER_TCP_DELACK \
1318*5113495bSYour Name 	CFG(CFG_DP_DRIVER_TCP_DELACK_HIGH_THRESHOLD) \
1319*5113495bSYour Name 	CFG(CFG_DP_DRIVER_TCP_DELACK_LOW_THRESHOLD) \
1320*5113495bSYour Name 	CFG(CFG_DP_DRIVER_TCP_DELACK_TIMER_VALUE) \
1321*5113495bSYour Name 	CFG(CFG_DP_DRIVER_TCP_DELACK_PKT_CNT) \
1322*5113495bSYour Name 	CFG(CFG_DP_DRIVER_TCP_DELACK_ENABLE)
1323*5113495bSYour Name #else
1324*5113495bSYour Name #define CFG_DP_DRIVER_TCP_DELACK
1325*5113495bSYour Name #endif
1326*5113495bSYour Name 
1327*5113495bSYour Name #ifdef WLAN_SUPPORT_TXRX_HL_BUNDLE
1328*5113495bSYour Name #define CFG_DP_HL_BUNDLE \
1329*5113495bSYour Name 	CFG(CFG_DP_HL_BUNDLE_HIGH_TH) \
1330*5113495bSYour Name 	CFG(CFG_DP_HL_BUNDLE_LOW_TH) \
1331*5113495bSYour Name 	CFG(CFG_DP_HL_BUNDLE_TIMER_VALUE) \
1332*5113495bSYour Name 	CFG(CFG_DP_HL_BUNDLE_SIZE)
1333*5113495bSYour Name #else
1334*5113495bSYour Name #define CFG_DP_HL_BUNDLE
1335*5113495bSYour Name #endif
1336*5113495bSYour Name 
1337*5113495bSYour Name #define CFG_DP_ALL \
1338*5113495bSYour Name 	CFG(CFG_DP_RX_THREAD_CPU_MASK) \
1339*5113495bSYour Name 	CFG(CFG_DP_RX_THREAD_UL_CPU_MASK) \
1340*5113495bSYour Name 	CFG(CFG_DP_RPS_RX_QUEUE_CPU_MAP_LIST) \
1341*5113495bSYour Name 	CFG(CFG_DP_TX_ORPHAN_ENABLE) \
1342*5113495bSYour Name 	CFG(CFG_DP_RX_MODE) \
1343*5113495bSYour Name 	CFG(CFG_DP_TX_COMP_LOOP_PKT_LIMIT)\
1344*5113495bSYour Name 	CFG(CFG_DP_RX_REAP_LOOP_PKT_LIMIT)\
1345*5113495bSYour Name 	CFG(CFG_DP_RX_HP_OOS_UPDATE_LIMIT)\
1346*5113495bSYour Name 	CFG(CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS)\
1347*5113495bSYour Name 	CFG(CFG_DP_CE_SERVICE_MAX_RX_IND_FLUSH) \
1348*5113495bSYour Name 	CFG(CFG_DP_CE_SERVICE_MAX_YIELD_TIME) \
1349*5113495bSYour Name 	CFG(CFG_DP_ENABLE_TCP_PARAM_UPDATE) \
1350*5113495bSYour Name 	CFG(CFG_DP_FILTER_MULTICAST_REPLAY) \
1351*5113495bSYour Name 	CFG(CFG_DP_RX_WAKELOCK_TIMEOUT) \
1352*5113495bSYour Name 	CFG(CFG_DP_NUM_DP_RX_THREADS) \
1353*5113495bSYour Name 	CFG(CFG_DP_ICMP_REQ_TO_FW_MARK_INTERVAL) \
1354*5113495bSYour Name 	CFG(CFG_ENABLE_DIRECT_LINK_UT_CMD) \
1355*5113495bSYour Name 	CFG(CFG_DP_APPLY_MEM_PROFILE) \
1356*5113495bSYour Name 	CFG_DP_ENABLE_FASTPATH_ALL \
1357*5113495bSYour Name 	CFG_DP_BUS_BANDWIDTH \
1358*5113495bSYour Name 	CFG_DP_DRIVER_TCP_DELACK \
1359*5113495bSYour Name 	CFG_DP_ENABLE_NUD_TRACKING_ALL \
1360*5113495bSYour Name 	CFG_DP_CONFIG_DP_TRACE_ALL \
1361*5113495bSYour Name 	CFG_DP_HL_BUNDLE \
1362*5113495bSYour Name 	CFG_DP_FISA
1363*5113495bSYour Name 
1364*5113495bSYour Name #endif /* WLAN_DP_CFG_H__ */
1365