wlan_dp_cfg.h 31 KB

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