xref: /wlan-dirver/qca-wifi-host-cmn/umac/mlme/connection_mgr/dispatcher/inc/cfg_mlme_score_params.h (revision 45a38684b07295822dc8eba39e293408f203eec8)
1 /*
2  * Copyright (c) 2012-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_H
22 #define __CFG_MLME_SCORE_PARAMS_H
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