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