1 /* 2 * Copyright (c) 2020, The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 /** 18 * DOC: This file contains MLME SCORING related CFG/INI Items. 19 */ 20 21 #ifndef __CFG_MLME_SCORE_PARAMS 22 #define __CFG_MLME_SCORE_PARAMS 23 24 /* 25 * <ini> 26 * rssi_weightage - RSSI Weightage to calculate best candidate 27 * @Min: 0 28 * @Max: 100 29 * @Default: 20 30 * 31 * This ini is used to increase/decrease RSSI weightage in best candidate 32 * selection. AP with better RSSI will get more weightage. 33 * 34 * Related: None 35 * 36 * Supported Feature: STA Candidate selection 37 * 38 * Usage: External 39 * 40 * </ini> 41 */ 42 #define CFG_SCORING_RSSI_WEIGHTAGE CFG_INI_UINT( \ 43 "rssi_weightage", \ 44 0, \ 45 100, \ 46 20, \ 47 CFG_VALUE_OR_DEFAULT, \ 48 "RSSI Weightage") 49 50 /* 51 * <ini> 52 * ht_caps_weightage - HT caps weightage to calculate best candidate 53 * @Min: 0 54 * @Max: 100 55 * @Default: 2 56 * 57 * This ini is used to increase/decrease HT caps weightage in best candidate 58 * selection. If AP supports HT caps, AP will get additional Weightage with 59 * this param. Weightage will be given only if dot11mode is HT capable. 60 * 61 * Related: None 62 * 63 * Supported Feature: STA Candidate selection 64 * 65 * Usage: External 66 * 67 * </ini> 68 */ 69 #define CFG_SCORING_HT_CAPS_WEIGHTAGE CFG_INI_UINT( \ 70 "ht_caps_weightage", \ 71 0, \ 72 100, \ 73 2, \ 74 CFG_VALUE_OR_DEFAULT, \ 75 "HT Caps Weightage") 76 77 /* 78 * <ini> 79 * vht_caps_weightage - VHT caps Weightage to calculate best candidate 80 * @Min: 0 81 * @Max: 100 82 * @Default: 1 83 * 84 * This ini is used to increase/decrease VHT caps weightage in best candidate 85 * selection. If AP supports VHT caps, AP will get additional weightage with 86 * this param. Weightage will be given only if dot11mode is VHT capable. 87 * 88 * Related: None 89 * 90 * Supported Feature: STA Candidate selection 91 * 92 * Usage: External 93 * 94 * </ini> 95 */ 96 #define CFG_SCORING_VHT_CAPS_WEIGHTAGE CFG_INI_UINT( \ 97 "vht_caps_weightage", \ 98 0, \ 99 100, \ 100 1, \ 101 CFG_VALUE_OR_DEFAULT, \ 102 "HT Caps Weightage") 103 104 /* 105 * <ini> 106 * he_caps_weightage - HE caps Weightage to calculate best candidate 107 * @Min: 0 108 * @Max: 100 109 * @Default: 2 110 * 111 * This ini is used to increase/decrease HE caps weightage in best candidate 112 * selection. If AP supports HE caps, AP will get additional weightage with 113 * this param. Weightage will be given only if dot11mode is HE capable. 114 * 115 * Related: None 116 * 117 * Supported Feature: STA Candidate selection 118 * 119 * Usage: External 120 * 121 * </ini> 122 */ 123 #define CFG_SCORING_HE_CAPS_WEIGHTAGE CFG_INI_UINT( \ 124 "he_caps_weightage", \ 125 0, \ 126 100, \ 127 2, \ 128 CFG_VALUE_OR_DEFAULT, \ 129 "HE Caps Weightage") 130 131 /* 132 * <ini> 133 * chan_width_weightage - Channel Width Weightage to calculate best candidate 134 * @Min: 0 135 * @Max: 100 136 * @Default: 12 137 * 138 * This ini is used to increase/decrease Channel Width weightage in best 139 * candidate selection. AP with Higher channel width will get higher weightage 140 * 141 * Related: bandwidth_weight_per_index 142 * 143 * Supported Feature: STA Candidate selection 144 * 145 * Usage: External 146 * 147 * </ini> 148 */ 149 #define CFG_SCORING_CHAN_WIDTH_WEIGHTAGE CFG_INI_UINT( \ 150 "chan_width_weightage", \ 151 0, \ 152 100, \ 153 12, \ 154 CFG_VALUE_OR_DEFAULT, \ 155 "Channel width weightage") 156 157 /* 158 * <ini> 159 * chan_band_weightage - Channel Band perferance to 5GHZ to 160 * calculate best candidate 161 * @Min: 0 162 * @Max: 100 163 * @Default: 2 164 * 165 * This ini is used to increase/decrease Channel Band Preference weightage 166 * in best candidate selection. 5GHZ AP get this additional boost compare to 167 * 2GHZ AP before rssi_pref_5g_rssi_thresh and 2.4Ghz get weightage after 168 * rssi_pref_5g_rssi_thresh. 169 * 170 * Related: rssi_pref_5g_rssi_thresh, band_weight_per_index 171 * 172 * Supported Feature: STA Candidate selection 173 * 174 * Usage: External 175 * 176 * </ini> 177 */ 178 #define CFG_SCORING_CHAN_BAND_WEIGHTAGE CFG_INI_UINT( \ 179 "chan_band_weightage", \ 180 0, \ 181 100, \ 182 2, \ 183 CFG_VALUE_OR_DEFAULT, \ 184 "Channel Band Weightage") 185 186 /* 187 * <ini> 188 * nss_weightage - NSS Weightage to calculate best candidate 189 * @Min: 0 190 * @Max: 100 191 * @Default: 16 192 * 193 * This ini is used to increase/decrease NSS weightage in best candidate 194 * selection. If there are two AP, one AP supports 2x2 and another one supports 195 * 1x1 and station supports 2X2, first A will get this additional weightage 196 * depending on self-capability. 197 * 198 * Related: nss_weight_per_index 199 * 200 * Supported Feature: STA Candidate selection 201 * 202 * Usage: External 203 * 204 * </ini> 205 */ 206 #define CFG_SCORING_NSS_WEIGHTAGE CFG_INI_UINT( \ 207 "nss_weightage", \ 208 0, \ 209 100, \ 210 16, \ 211 CFG_VALUE_OR_DEFAULT, \ 212 "NSS Weightage") 213 /* 214 * <ini> 215 * beamforming_cap_weightage - Beam Forming Weightage to 216 * calculate best candidate 217 * @Min: 0 218 * @Max: 100 219 * @Default: 2 220 * 221 * This ini is used to increase/decrease Beam forming Weightage if some AP 222 * support Beam forming or not. If AP supports Beam forming, that AP will get 223 * additional boost of this weightage. 224 * 225 * Related: None 226 * 227 * Supported Feature: STA Candidate selection 228 * 229 * Usage: External 230 * 231 * </ini> 232 */ 233 #define CFG_SCORING_BEAMFORM_CAP_WEIGHTAGE CFG_INI_UINT( \ 234 "beamforming_cap_weightage", \ 235 0, \ 236 100, \ 237 2, \ 238 CFG_VALUE_OR_DEFAULT, \ 239 "Beamforming Cap Weightage") 240 241 /* 242 * <ini> 243 * pcl_weightage - PCL Weightage to calculate best candidate 244 * @Min: 0 245 * @Max: 100 246 * @Default: 10 247 * 248 * This ini is used to increase/decrease PCL weightage in best candidate 249 * selection. If some APs are in PCL list, those AP will get addition 250 * weightage. 251 * 252 * Related: None 253 * 254 * Supported Feature: STA Candidate selection 255 * 256 * Usage: External 257 * 258 * </ini> 259 */ 260 #define CFG_SCORING_PCL_WEIGHTAGE CFG_INI_UINT( \ 261 "pcl_weightage", \ 262 0, \ 263 100, \ 264 10, \ 265 CFG_VALUE_OR_DEFAULT, \ 266 "PCL Weightage") 267 268 /* 269 * <ini> 270 * channel_congestion_weightage - channel Congestion Weightage to 271 * calculate best candidate 272 * @Min: 0 273 * @Max: 100 274 * @Default: 25 275 * 276 * This ini is used to increase/decrease channel congestion weightage in 277 * candidate selection. Congestion is measured with the help of ESP/QBSS load. 278 * 279 * Related: num_esp_qbss_slots 280 * 281 * Supported Feature: STA Candidate selection 282 * 283 * Usage: External 284 * 285 * </ini> 286 */ 287 #define CFG_SCORING_CHAN_CONGESTION_WEIGHTAGE CFG_INI_UINT( \ 288 "channel_congestion_weightage", \ 289 0, \ 290 100, \ 291 25, \ 292 CFG_VALUE_OR_DEFAULT, \ 293 "Channel Congestion Weightage") 294 295 /* 296 * <ini> 297 * oce_wan_weightage - OCE WAN DL capacity Weightage to calculate best candidate 298 * @Min: 0 299 * @Max: 100 300 * @Default: 2 301 * 302 * This ini is used to increase/decrease OCE WAN caps weightage in best 303 * candidate selection. If AP have OCE WAN information, give weightage depending 304 * on the downaload available capacity. 305 * 306 * Related: num_oce_wan_slots 307 * 308 * Supported Feature: STA Candidate selection 309 * 310 * Usage: External 311 * 312 * </ini> 313 */ 314 #define CFG_SCORING_OCE_WAN_WEIGHTAGE CFG_INI_UINT( \ 315 "oce_wan_weightage", \ 316 0, \ 317 100, \ 318 2, \ 319 CFG_VALUE_OR_DEFAULT, \ 320 "OCE WAN Weightage") 321 322 /* 323 * <ini> 324 * oce_ap_tx_pwr_weightage - update scoring param based on ap tx power 325 * @Min: 0 326 * @Max: 10 327 * @Default: 5 328 * 329 * This ini is used to store calculate weightage based on ap tx power. 330 * 331 * Related: None 332 * 333 * Supported Feature: STA 334 * 335 * Usage: External 336 * 337 * </ini> 338 */ 339 #define CFG_OCE_AP_TX_PWR_WEIGHTAGE CFG_INI_UINT( \ 340 "oce_ap_tx_pwr_weightage", \ 341 0, \ 342 10, \ 343 5, \ 344 CFG_VALUE_OR_DEFAULT,\ 345 "AP weigtage for OCE ap tx power") 346 347 /* 348 * <ini> 349 * oce_subnet_id_weightage - update scoring param based on subnet id 350 * @Min: 0 351 * @Max: 10 352 * @Default: 3 353 * 354 * This ini is used to calculate subnet id weightage in roam score. 355 * If the MBO-OCE ie has "IP subnet indication attribute", then host 356 * considers 50% of the "oce_subnet_id_weightage" value to calculate 357 * roam score for the initial connection and 100% of the 358 * "oce_subnet_id_weightage" value to calculate roam score for roaming 359 * case. 360 * "oce_ap_tx_pwr_weightage" adds a small amount of percentage advantage 361 * in roam score while selection of an AP candidate within the same subnet 362 * ID. If "oce_ap_tx_pwr_weightage" value is 0(min), roam score doesn't 363 * include percentage weightage for subnet id and if "oce_ap_tx_pwr_weightage" 364 * value is 10(max), then the weightage given because of same subnet ID is 365 * more in roam score. This ini is also used for WFA certification. 366 * 367 * Related: None 368 * 369 * Supported Feature: STA 370 * 371 * Usage: External 372 * 373 * </ini> 374 */ 375 #define CFG_OCE_SUBNET_ID_WEIGHTAGE CFG_INI_UINT( \ 376 "oce_subnet_id_weightage", \ 377 0, \ 378 10, \ 379 3, \ 380 CFG_VALUE_OR_DEFAULT,\ 381 "AP weigtage for OCE subnet id") 382 383 /* 384 * <ini> 385 * best_rssi_threshold - Best Rssi for score calculation 386 * @Min: 0 387 * @Max: 96 388 * @Default: 55 389 * 390 * This ini tells limit for best RSSI. RSSI better than this limit are 391 * considered as best RSSI. The best RSSI is given full rssi_weightage. 392 * 393 * Related: rssi_weightage 394 * 395 * Supported Feature: STA Candidate selection 396 * 397 * Usage: External 398 * 399 * </ini> 400 */ 401 #define CFG_SCORING_BEST_RSSI_THRESHOLD CFG_INI_UINT( \ 402 "best_rssi_threshold", \ 403 0, \ 404 96, \ 405 55, \ 406 CFG_VALUE_OR_DEFAULT, \ 407 "Best RSSI threshold") 408 409 /* 410 * <ini> 411 * good_rssi_threshold - Good Rssi for score calculation 412 * @Min: 0 413 * @Max: 96 414 * @Default: 70 415 * 416 * This ini tells limit for good RSSI. RSSI better than this limit and less 417 * than best_rssi_threshold is considered as good RSSI. 418 * 419 * Related: rssi_weightage, best_rssi_threshold 420 * 421 * Supported Feature: STA Candidate selection 422 * 423 * Usage: External 424 * 425 * </ini> 426 */ 427 #define CFG_SCORING_GOOD_RSSI_THRESHOLD CFG_INI_UINT( \ 428 "good_rssi_threshold", \ 429 0, \ 430 96, \ 431 70, \ 432 CFG_VALUE_OR_DEFAULT, \ 433 "Good RSSI threshold") 434 435 /* 436 * <ini> 437 * bad_rssi_threshold - Bad Rssi for score calculation 438 * @Min: 0 439 * @Max: 96 440 * @Default: 80 441 * 442 * This ini tells limit for Bad RSSI. RSSI greater then bad_rssi_threshold 443 * is considered as bad RSSI. 444 * 445 * Related: rssi_weightage, good_rssi_threshold 446 * 447 * Supported Feature: STA Candidate selection 448 * 449 * Usage: External 450 * 451 * </ini> 452 */ 453 #define CFG_SCORING_BAD_RSSI_THRESHOLD CFG_INI_UINT( \ 454 "bad_rssi_threshold", \ 455 0, \ 456 96, \ 457 80, \ 458 CFG_VALUE_OR_DEFAULT, \ 459 "Bad RSSI threshold") 460 461 /* 462 * <ini> 463 * good_rssi_pcnt - Percent Score to Good RSSI out of total RSSI score. 464 * @Min: 0 465 * @Max: 100 466 * @Default: 80 467 * 468 * This ini tells about how much percent should be given to good RSSI(RSSI 469 * between best_rssi_threshold and good_rssi_threshold) out of RSSI weightage. 470 * 471 * Related: rssi_weightage, best_rssi_threshold, good_rssi_threshold 472 * 473 * Supported Feature: STA Candidate selection 474 * 475 * Usage: External 476 * 477 * </ini> 478 */ 479 #define CFG_SCORING_GOOD_RSSI_PERCENT CFG_INI_UINT( \ 480 "good_rssi_pcnt", \ 481 0, \ 482 100, \ 483 80, \ 484 CFG_VALUE_OR_DEFAULT, \ 485 "Good RSSI Percent") 486 487 /* 488 * <ini> 489 * bad_rssi_pcnt - Percent Score to BAD RSSI out of total RSSI score. 490 * @Min: 0 491 * @Max: 100 492 * @Default: 25 493 * 494 * This ini tells about how much percent should be given to bad RSSI (RSSI 495 * between good_rssi_threshold and bad_rssi_threshold) out of RSSI weightage. 496 * 497 * Related: rssi_weightage, good_rssi_threshold, bad_rssi_threshold 498 * 499 * Supported Feature: STA Candidate selection 500 * 501 * Usage: External 502 * 503 * </ini> 504 */ 505 #define CFG_SCORING_BAD_RSSI_PERCENT CFG_INI_UINT( \ 506 "bad_rssi_pcnt", \ 507 0, \ 508 100, \ 509 25, \ 510 CFG_VALUE_OR_DEFAULT, \ 511 "Bad RSSI Percent") 512 513 /* 514 * <ini> 515 * good_rssi_bucket_size - Bucket size between best and good RSSI to score. 516 * @Min: 1 517 * @Max: 10 518 * @Default: 5 519 * 520 * This ini tells about bucket size for scoring between best and good RSSI. 521 * Below Best RSSI, 100% score will be given. Between best and good RSSI, RSSI 522 * is divided in buckets and score will be assigned bucket wise starting from 523 * good_rssi_pcnt. 524 * 525 * Related: rssi_weightage, good_rssi_pcnt 526 * 527 * Supported Feature: STA Candidate selection 528 * 529 * Usage: External 530 * 531 * </ini> 532 */ 533 #define CFG_SCORING_GOOD_RSSI_BUCKET_SIZE CFG_INI_UINT( \ 534 "good_rssi_bucket_size", \ 535 1, \ 536 10, \ 537 5, \ 538 CFG_VALUE_OR_DEFAULT, \ 539 "Good RSSI Bucket Size") 540 541 /* 542 * <ini> 543 * bad_rssi_bucket_size - Bucket size between good and bad RSSI to score. 544 * @Min: 1 545 * @Max: 10 546 * @Default: 5 547 * 548 * This ini tells about bucket size for scoring between good and bad RSSI. 549 * Between good and bad RSSI, RSSI is divided in buckets and score will be 550 * assigned bucket wise starting from bad_rssi_pcnt. 551 * 552 * Related: rssi_weightage, bad_rssi_pcnt 553 * 554 * Supported Feature: STA Candidate selection 555 * 556 * Usage: External 557 * 558 * </ini> 559 */ 560 #define CFG_SCORING_BAD_RSSI_BUCKET_SIZE CFG_INI_UINT( \ 561 "bad_rssi_bucket_size", \ 562 1, \ 563 10, \ 564 5, \ 565 CFG_VALUE_OR_DEFAULT, \ 566 "Bad RSSI Bucket Size") 567 568 /* 569 * <ini> 570 * rssi_pref_5g_rssi_thresh - A RSSI threshold above which 5 GHz is not favored 571 * @Min: 0 572 * @Max: 96 573 * @Default: 76 574 * 575 * 5G AP are given chan_band_weightage. This ini tells about RSSI threshold 576 * above which 5GHZ is not favored. 577 * 578 * Related: chan_band_weightage 579 * 580 * Supported Feature: STA Candidate selection 581 * 582 * Usage: External 583 * 584 * </ini> 585 */ 586 #define CFG_SCORING_RSSI_PREF_5G_THRESHOLD CFG_INI_UINT( \ 587 "rssi_pref_5g_rssi_thresh", \ 588 0, \ 589 96, \ 590 76, \ 591 CFG_VALUE_OR_DEFAULT, \ 592 "RSSI Pref 5G Threshold") 593 594 /* 595 * <ini> 596 * bandwidth_weight_per_index - percentage as per bandwidth 597 * @Min: 0x00000000 598 * @Max: 0x64646464 599 * @Default: 0x6432190C 600 * 601 * This INI give percentage value of chan_width_weightage to be used as per 602 * peer bandwidth. Self BW is also considered while calculating score. Eg if 603 * self BW is 20 MHZ 10% will be given for all AP irrespective of the AP 604 * capability. 605 * 606 * Indexes are defined in this way. 607 * 0 Index (BITS 0-7): 20 MHz - Def 12% 608 * 1 Index (BITS 8-15): 40 MHz - Def 25% 609 * 2 Index (BITS 16-23): 80 MHz - Def 50% 610 * 3 Index (BITS 24-31): 160 MHz - Def 100% 611 * These percentage values are stored in HEX. For any index max value, can be 64 612 * 613 * Related: chan_width_weightage 614 * 615 * Supported Feature: STA Candidate selection 616 * 617 * Usage: External 618 * 619 * </ini> 620 */ 621 #define CFG_SCORING_BW_WEIGHT_PER_IDX CFG_INI_UINT( \ 622 "bandwidth_weight_per_index", \ 623 0x00000000, \ 624 0x64646464, \ 625 0x6432190C, \ 626 CFG_VALUE_OR_DEFAULT, \ 627 "Bandwidth weight per index") 628 629 /* 630 * <ini> 631 * nss_weight_per_index - percentage as per NSS 632 * @Min: 0x00000000 633 * @Max: 0x64646464 634 * @Default: 0x6432190C 635 * 636 * This INI give percentage value of nss_weightage to be used as per peer NSS. 637 * Self NSS capability is also considered. Eg if self NSS is 1x1 10% will be 638 * given for all AP irrespective of the AP capability. 639 * 640 * Indexes are defined in this way. 641 * 0 Index (BITS 0-7): 1X1- Def 12% 642 * 1 Index (BITS 8-15): 2X2- Def 25% 643 * 2 Index (BITS 16-23): 3X3- Def 50% 644 * 3 Index (BITS 24-31): 4X4- Def 100% 645 * These percentage values are stored in HEX. For any index max value, can be 64 646 * 647 * Related: nss_weightage 648 * 649 * Supported Feature: STA Candidate selection 650 * 651 * Usage: External 652 * 653 * </ini> 654 */ 655 #define CFG_SCORING_NSS_WEIGHT_PER_IDX CFG_INI_UINT( \ 656 "nss_weight_per_index", \ 657 0x00000000, \ 658 0x64646464, \ 659 0x6432190C, \ 660 CFG_VALUE_OR_DEFAULT, \ 661 "NSS weight per index") 662 663 /* 664 * <ini> 665 * band_weight_per_index - percentage as per band 666 * @Min: 0x00000000 667 * @Max: 0x64646464 668 * @Default: 0x0000644B 669 * 670 * This INI give percentage value of chan_band_weightage to be used as per band. 671 * If RSSI is greater than rssi_pref_5g_rssi_thresh preference is given for 5Ghz 672 * else, it's given for 2.4Ghz. 673 * 674 * Indexes are defined in this way. 675 * 0 Index (BITS 0-7): 2.4GHz - Def 10% 676 * 1 Index (BITS 8-15): 5GHz - Def 20% 677 * 2 Index (BITS 16-23): 6Ghz - Def - 100% 678 * 3 Index (BITS 24-31): Reserved 679 * These percentage values are stored in HEX. For any index max value, can be 64 680 * 681 * Related: chan_band_weightage, rssi_pref_5g_rssi_thresh 682 * 683 * Supported Feature: STA Candidate selection 684 * 685 * Usage: External 686 * 687 * </ini> 688 */ 689 #define CFG_SCORING_BAND_WEIGHT_PER_IDX CFG_INI_UINT( \ 690 "band_weight_per_index", \ 691 0x00000000, \ 692 0x64646464, \ 693 0x00644B32, \ 694 CFG_VALUE_OR_DEFAULT, \ 695 "Band weight per index") 696 697 /* 698 * <ini> 699 * num_esp_qbss_slots - number of slots in which the esp/qbss load will 700 * be divided 701 * 702 * @Min: 1 703 * @Max: 15 704 * @Default: 8 705 * 706 * Number of slots in which the esp/qbss load will be divided. Max 15. index 0 707 * is used for 'not_present. Num_slot will equally divide 100. e.g, if 708 * num_slot = 4 slot 1 = 0-25% load, slot 2 = 26-50% load, slot 3 = 51-75% load, 709 * slot 4 = 76-100% load. Remaining unused index can be 0. 710 * Following is load percentage, score percentage and score of num_slot = 8, 711 * weight=25. 712 * 0-12% 13-25% 26-38% 39-50% 51-63 %64-75% 76-88% 87-100% Not Present 713 * 100% 90% 80% 70% 50% 25% 10% 5% 50% 714 * 2500 2250 2000 1750 1250 625 250 125 1250 715 * 716 * Usage: External 717 * 718 * </ini> 719 */ 720 #define CFG_SCORING_NUM_ESP_QBSS_SLOTS CFG_INI_UINT( \ 721 "num_esp_qbss_slots", \ 722 1, \ 723 15, \ 724 8, \ 725 CFG_VALUE_OR_DEFAULT, \ 726 "Num ESP QPSS Slots") 727 728 /* 729 * <ini> 730 * esp_qbss_score_idx3_to_0 - percentage for esp/qbss load for slots 0-3 731 * @Min: 0x00000000 732 * @Max: 0x64646464 733 * @Default: 0x505A6432 734 * 735 * This INI give percentage value of channel_congestion_weightage to be used as 736 * index in which the load value falls. Index 0 is for percentage when ESP/QBSS 737 * is not present. 738 * 739 * Indexes are defined in this way. 740 * 0 Index (BITS 0-7): when ESP/QBSS is not present 741 * 1 Index (BITS 8-15): SLOT_1 742 * 2 Index (BITS 16-23): SLOT_2 743 * 3 Index (BITS 24-31): SLOT_3 744 * These percentage values are stored in HEX. For any index max value, can be 64 745 * 746 * Related: channel_congestion_weightage, num_esp_qbss_slots 747 * 748 * Supported Feature: STA Candidate selection 749 * 750 * Usage: External 751 * 752 * </ini> 753 */ 754 #define CFG_SCORING_ESP_QBSS_SCORE_IDX_3_TO_0 CFG_INI_UINT( \ 755 "esp_qbss_score_idx3_to_0", \ 756 0x00000000, \ 757 0x64646464, \ 758 0x505A6432, \ 759 CFG_VALUE_OR_DEFAULT, \ 760 "ESP QPSS Score Index 3 to 0") 761 762 /* 763 * <ini> 764 * esp_qbss_score_idx7_to_4 - percentage for esp/qbss load for slots 4-7 765 * @Min: 0x00000000 766 * @Max: 0x64646464 767 * @Default: 0x0A193246 768 * 769 * This INI give percentage value of channel_congestion_weightage to be used as 770 * index in which the load value falls. Used only if num_esp_qbss_slots is 771 * greater than 3. 772 * 773 * Indexes are defined in this way. 774 * 0 Index (BITS 0-7): SLOT_4 775 * 1 Index (BITS 8-15): SLOT_5 776 * 2 Index (BITS 16-23): SLOT_6 777 * 3 Index (BITS 24-31): SLOT_7 778 * These percentage values are stored in HEX. For any index max value, can be 64 779 * 780 * Related: channel_congestion_weightage, num_esp_qbss_slots 781 * 782 * Supported Feature: STA Candidate selection 783 * 784 * Usage: External 785 * 786 * </ini> 787 */ 788 #define CFG_SCORING_ESP_QBSS_SCORE_IDX_7_TO_4 CFG_INI_UINT( \ 789 "esp_qbss_score_idx7_to_4", \ 790 0x00000000, \ 791 0x64646464, \ 792 0x0A193246, \ 793 CFG_VALUE_OR_DEFAULT, \ 794 "ESP QPSS Score Index 7 to 4") 795 796 /* 797 * <ini> 798 * esp_qbss_score_idx11_to_8 - percentage for esp/qbss load for slots 8-11 799 * @Min: 0x00000000 800 * @Max: 0x64646464 801 * @Default: 0x00000005 802 * 803 * This INI give percentage value of channel_congestion_weightage to be used as 804 * index in which the load value falls. Used only if num_esp_qbss_slots is 805 * greater than 7. 806 * 807 * Indexes are defined in this way. 808 * 0 Index (BITS 0-7): SLOT_8 809 * 1 Index (BITS 8-15): SLOT_9 810 * 2 Index (BITS 16-23): SLOT_10 811 * 3 Index (BITS 24-31): SLOT_11 812 * These percentage values are stored in HEX. For any index max value, can be 64 813 * 814 * Related: channel_congestion_weightage, num_esp_qbss_slots 815 * 816 * Supported Feature: STA Candidate selection 817 * 818 * Usage: External 819 * 820 * </ini> 821 */ 822 #define CFG_SCORING_ESP_QBSS_SCORE_IDX_11_TO_8 CFG_INI_UINT( \ 823 "esp_qbss_score_idx11_to_8", \ 824 0x00000000, \ 825 0x64646464, \ 826 0x00000005, \ 827 CFG_VALUE_OR_DEFAULT, \ 828 "ESP QPSS Score Index 11 to 8") 829 830 /* 831 * <ini> 832 * esp_qbss_score_idx15_to_12 - percentage for esp/qbss load for slots 12-15 833 * @Min: 0x00000000 834 * @Max: 0x64646464 835 * @Default: 0x00000000 836 * 837 * This INI give percentage value of channel_congestion_weightage to be used as 838 * index in which the load value falls. Used only if num_esp_qbss_slots is 839 * greater than 11. 840 * 841 * Indexes are defined in this way. 842 * 0 Index (BITS 0-7): SLOT_12 843 * 1 Index (BITS 8-15): SLOT_13 844 * 2 Index (BITS 16-23): SLOT_14 845 * 3 Index (BITS 24-31): SLOT_15 846 * These percentage values are stored in HEX. For any index max value, can be 64 847 * 848 * Related: channel_congestion_weightage, num_esp_qbss_slots 849 * 850 * Supported Feature: STA Candidate selection 851 * 852 * Usage: External 853 * 854 * </ini> 855 */ 856 #define CFG_SCORING_ESP_QBSS_SCORE_IDX_15_TO_12 CFG_INI_UINT( \ 857 "esp_qbss_score_idx15_to_12", \ 858 0x00000000, \ 859 0x64646464, \ 860 0x00000000, \ 861 CFG_VALUE_OR_DEFAULT, \ 862 "ESP QPSS Score Index 15 to 12") 863 864 /* 865 * <ini> 866 * num_oce_wan_slots - number of slots in which the oce wan metrics will 867 * be divided 868 * 869 * @Min: 1 870 * @Max: 15 871 * @Default: 8 872 * 873 * Number of slots in which the oce wan metrics will be divided. Max 15. index 0 874 * is used for not_present. Num_slot will equally divide 100. e.g, if 875 * num_slot = 4 slot 1 = 0-3 DL CAP, slot 2 = 4-7 DL CAP, slot 3 = 8-11 DL CAP, 876 * slot 4 = 12-15 DL CAP. Remaining unused index can be 0. 877 * 878 * Related: oce_wan_weightage 879 * 880 * Usage: External 881 * 882 * </ini> 883 */ 884 #define CFG_SCORING_NUM_OCE_WAN_SLOTS CFG_INI_UINT( \ 885 "num_oce_wan_slots", \ 886 1, \ 887 15, \ 888 15, \ 889 CFG_VALUE_OR_DEFAULT, \ 890 "Num OCE WAN Slots") 891 892 /* 893 * <ini> 894 * oce_wan_score_idx3_to_0 - percentage for OCE WAN metrics score for slots 0-3 895 * @Min: 0x00000000 896 * @Max: 0x64646464 897 * @Default: 0x00000032 898 * 899 * This INI give percentage value of OCE WAN metrics DL CAP, to be used as 900 * index in which the DL CAP value falls. Index 0 is for percentage when 901 * OCE WAN metrics DL CAP is not present. 902 * 903 * Indexes are defined in this way. 904 * 0 Index (BITS 0-7): when OCE WAN metrics DL CAP is not present 905 * 1 Index (BITS 8-15): SLOT_1 906 * 2 Index (BITS 16-23): SLOT_2 907 * 3 Index (BITS 24-31): SLOT_3 908 * These percentage values are stored in HEX. For any index max value, can be 64 909 * 910 * Related: num_oce_wan_slots, oce_wan_weightage 911 * 912 * Supported Feature: STA Candidate selection 913 * 914 * Usage: External 915 * 916 * </ini> 917 */ 918 #define CFG_SCORING_OCE_WAN_SCORE_IDX_3_TO_0 CFG_INI_UINT( \ 919 "oce_wan_score_idx3_to_0", \ 920 0x00000000, \ 921 0x64646464, \ 922 0x00000032, \ 923 CFG_VALUE_OR_DEFAULT, \ 924 "OCE WAN Score Index 3 to 0") 925 926 /* 927 * <ini> 928 * oce_wan_score_idx7_to_4 - percentage for OCE WAN metrics score for slots 4-7 929 * @Min: 0x00000000 930 * @Max: 0x64646464 931 * @Default: 0x00000000 932 * 933 * This INI give percentage value of OCE WAN metrics DL CAP, to be used as 934 * index in which the DL CAP value falls. Used only if num_oce_wan_slots is 935 * greater than 3. 936 * 937 * Indexes are defined in this way. 938 * 0 Index (BITS 0-7): SLOT_4 939 * 1 Index (BITS 8-15): SLOT_5 940 * 2 Index (BITS 16-23): SLOT_6 941 * 3 Index (BITS 24-31): SLOT_7 942 * These percentage values are stored in HEX. For any index max value, can be 64 943 * 944 * Related: num_oce_wan_slots, oce_wan_weightage 945 * 946 * Supported Feature: STA Candidate selection 947 * 948 * Usage: External 949 * 950 * </ini> 951 */ 952 #define CFG_SCORING_OCE_WAN_SCORE_IDX_7_TO_4 CFG_INI_UINT( \ 953 "oce_wan_score_idx7_to_4", \ 954 0x00000000, \ 955 0x64646464, \ 956 0x00000000, \ 957 CFG_VALUE_OR_DEFAULT, \ 958 "OCE WAN Score Index 7 to 4") 959 960 /* 961 * <ini> 962 * oce_wan_score_idx11_to_8 - percentage for OCE WAN metrics score for slot 8-11 963 * @Min: 0x00000000 964 * @Max: 0x64646464 965 * @Default: 0x06030000 966 * 967 * This INI give percentage value of OCE WAN metrics DL CAP, to be used as 968 * index in which the DL CAP value falls. Used only if num_oce_wan_slots is 969 * greater than 7. 970 * 971 * Indexes are defined in this way. 972 * 0 Index (BITS 0-7): SLOT_8 973 * 1 Index (BITS 8-15): SLOT_9 974 * 2 Index (BITS 16-23): SLOT_10 975 * 3 Index (BITS 24-31): SLOT_11 976 * These percentage values are stored in HEX. For any index max value, can be 64 977 * 978 * Related: num_oce_wan_slots, oce_wan_weightage 979 * 980 * Supported Feature: STA Candidate selection 981 * 982 * Usage: External 983 * 984 * </ini> 985 */ 986 #define CFG_SCORING_OCE_WAN_SCORE_IDX_11_TO_8 CFG_INI_UINT( \ 987 "oce_wan_score_idx11_to_8", \ 988 0x00000000, \ 989 0x64646464, \ 990 0x06030000, \ 991 CFG_VALUE_OR_DEFAULT, \ 992 "OCE WAN Score Index 11 to 8") 993 994 /* 995 * <ini> 996 * oce_wan_score_idx15_to_12 - % for OCE WAN metrics score for slot 12-15 997 * @Min: 0x00000000 998 * @Max: 0x64646464 999 * @Default: 0x6432190C 1000 * 1001 * This INI give percentage value of OCE WAN metrics DL CAP, to be used as 1002 * index in which the DL CAP value falls. Used only if num_oce_wan_slots is 1003 * greater than 11. 1004 * 1005 * Indexes are defined in this way. 1006 * 0 Index (BITS 0-7): SLOT_12 1007 * 1 Index (BITS 8-15): SLOT_13 1008 * 2 Index (BITS 16-23): SLOT_14 1009 * 3 Index (BITS 24-31): SLOT_15 1010 * These percentage values are stored in HEX. For any index max value, can be 64 1011 * 1012 * Related: num_oce_wan_slots, oce_wan_weightage 1013 * 1014 * Supported Feature: STA Candidate selection 1015 * 1016 * Usage: External 1017 * 1018 * </ini> 1019 */ 1020 #define CFG_SCORING_OCE_WAN_SCORE_IDX_15_TO_12 CFG_INI_UINT( \ 1021 "oce_wan_score_idx15_to_12", \ 1022 0x00000000, \ 1023 0x64646464, \ 1024 0x6432190C, \ 1025 CFG_VALUE_OR_DEFAULT, \ 1026 "OCE WAN Score Index 15 to 12") 1027 1028 /* 1029 * <ini> 1030 * is_bssid_hint_priority - Set priority for connection with bssid_hint 1031 * BSSID. 1032 * @Min: 0 1033 * @Max: 1 1034 * @Default: 1 1035 * 1036 * This ini is used to give priority to BSS for connection which comes 1037 * as part of bssid_hint 1038 * 1039 * Related: None 1040 * 1041 * Supported Feature: STA 1042 * 1043 * Usage: External 1044 * 1045 * </ini> 1046 */ 1047 #define CFG_IS_BSSID_HINT_PRIORITY CFG_INI_UINT(\ 1048 "is_bssid_hint_priority",\ 1049 0, 1, 0,\ 1050 CFG_VALUE_OR_DEFAULT, \ 1051 "Set priority for connection with bssid_hint") 1052 1053 #define CFG_MLME_SCORE_ALL \ 1054 CFG(CFG_SCORING_RSSI_WEIGHTAGE) \ 1055 CFG(CFG_SCORING_HT_CAPS_WEIGHTAGE) \ 1056 CFG(CFG_SCORING_VHT_CAPS_WEIGHTAGE) \ 1057 CFG(CFG_SCORING_HE_CAPS_WEIGHTAGE) \ 1058 CFG(CFG_SCORING_CHAN_WIDTH_WEIGHTAGE) \ 1059 CFG(CFG_SCORING_CHAN_BAND_WEIGHTAGE) \ 1060 CFG(CFG_SCORING_NSS_WEIGHTAGE) \ 1061 CFG(CFG_SCORING_BEAMFORM_CAP_WEIGHTAGE) \ 1062 CFG(CFG_SCORING_PCL_WEIGHTAGE) \ 1063 CFG(CFG_SCORING_CHAN_CONGESTION_WEIGHTAGE) \ 1064 CFG(CFG_SCORING_OCE_WAN_WEIGHTAGE) \ 1065 CFG(CFG_OCE_AP_TX_PWR_WEIGHTAGE) \ 1066 CFG(CFG_OCE_SUBNET_ID_WEIGHTAGE) \ 1067 CFG(CFG_SCORING_BEST_RSSI_THRESHOLD) \ 1068 CFG(CFG_SCORING_GOOD_RSSI_THRESHOLD) \ 1069 CFG(CFG_SCORING_BAD_RSSI_THRESHOLD) \ 1070 CFG(CFG_SCORING_GOOD_RSSI_PERCENT) \ 1071 CFG(CFG_SCORING_BAD_RSSI_PERCENT) \ 1072 CFG(CFG_SCORING_GOOD_RSSI_BUCKET_SIZE) \ 1073 CFG(CFG_SCORING_BAD_RSSI_BUCKET_SIZE) \ 1074 CFG(CFG_SCORING_RSSI_PREF_5G_THRESHOLD) \ 1075 CFG(CFG_SCORING_BW_WEIGHT_PER_IDX) \ 1076 CFG(CFG_SCORING_NSS_WEIGHT_PER_IDX) \ 1077 CFG(CFG_SCORING_BAND_WEIGHT_PER_IDX) \ 1078 CFG(CFG_SCORING_NUM_ESP_QBSS_SLOTS) \ 1079 CFG(CFG_SCORING_ESP_QBSS_SCORE_IDX_3_TO_0) \ 1080 CFG(CFG_SCORING_ESP_QBSS_SCORE_IDX_7_TO_4) \ 1081 CFG(CFG_SCORING_ESP_QBSS_SCORE_IDX_11_TO_8) \ 1082 CFG(CFG_SCORING_ESP_QBSS_SCORE_IDX_15_TO_12) \ 1083 CFG(CFG_SCORING_NUM_OCE_WAN_SLOTS) \ 1084 CFG(CFG_SCORING_OCE_WAN_SCORE_IDX_3_TO_0) \ 1085 CFG(CFG_SCORING_OCE_WAN_SCORE_IDX_7_TO_4) \ 1086 CFG(CFG_SCORING_OCE_WAN_SCORE_IDX_11_TO_8) \ 1087 CFG(CFG_SCORING_OCE_WAN_SCORE_IDX_15_TO_12) \ 1088 CFG(CFG_IS_BSSID_HINT_PRIORITY) 1089 1090 #endif /* __CFG_MLME_SCORE_PARAMS_H */ 1091