wlan_dp_cfg.h 31 KB

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