1 /* 2 * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 /** 21 * DOC: This file contains centralized definitions of action oui configuration. 22 */ 23 #ifndef __WLAN_ACTION_OUI_CFG_H__ 24 #define __WLAN_ACTION_OUI_CFG_H__ 25 /* 26 * Start of action oui inis 27 * 28 * To enable action oui feature, set gEnableActionOUI 29 * 30 * Each action oui is expected in the following format: 31 * <Extension 1> <Extension 2> ..... <Extension 10> (maximum 10) 32 * 33 * whereas, each Extension is separated by space and have the following format: 34 * <Token1> <Token2> <Token3> <Token4> <Token5> <Token6> <Token7> <Token8> 35 * where each Token is a string of hexa-decimal digits and 36 * following are the details about each token 37 * 38 * Token1 = OUI 39 * Token2 = Data_Length 40 * Token3 = Data 41 * Token4 = Data_Mask 42 * Token5 = Info_Presence_Bit 43 * Token6 = MAC_Address 44 * Token7 = Mac_Address Mask 45 * Token8 = Capability 46 * 47 * <OUI> is mandatory and it can be either 3 or 5 bytes means 6 or 10 48 * hexa-decimal characters 49 * If the OUI and Data checks needs to be ignored, the oui FFFFFF 50 * needs to be provided as OUI and bit 0 of Info_Presence_Bit should 51 * be set to 0. 52 * 53 * <Data_Length> is mandatory field and should give length of 54 * the <Data> if present else zero 55 * 56 * Presence of <Data> is controlled by <Data_Length>, if <Data_Length> is 0, 57 * then <Data> is not expected else Data of the size Data Length bytes are 58 * expected which means the length of Data string is 2 * Data Length, 59 * since every byte constitutes two hexa-decimal characters. 60 * 61 * <Data_Mask> is mandatory if <Data> is present and length of the 62 * Data mask string depends on the <Data Length> 63 * If <Data Length> is 06, then length of Data Mask string is 64 * 2 characters (represents 1 byte) 65 * data_mask_length = ((Data_Length - (Data_Length % 8)) / 8) + 66 * ((Data_Length % 8) ? 1 : 0) 67 * and <Data_Mask> has to be constructed from left to right. 68 * 69 * Presence of <Mac_Address> and <Capability> is 70 * controlled by <Info_Presence_Bit> which is mandatory 71 * <Info_Presence_Bit> will give the information for 72 * OUI – bit 0 Should be set to 1 73 * Setting to 0 will ignore OUI and data check 74 * Mac Address present – bit 1 75 * NSS – bit 2 76 * HT check – bit 3 77 * VHT check – bit 4 78 * Band info – bit 5 79 * reserved – bit 6 (should always be zero) 80 * reserved – bit 7 (should always be zero) 81 * and should be constructed from right to left (b7b6b5b4b3b2b1b0) 82 * 83 * <Mac_Address_Mask> for <Mac_Address> should be constructed from left to right 84 * 85 * <Capability> is 1 byte long and it contains the below info 86 * NSS – 4 bits starting from LSB (b0 – b3) 87 * HT enabled – bit 4 88 * VHT enabled – bit 5 89 * 2G band – bit 6 90 * 5G band – bit 7 91 * and should be constructed from right to left (b7b6b5b4b3b2b1b0) 92 * <Capability> is present if at least one of the bit is set 93 * from b2 - b6 in <Info_Presence_Bit> 94 * 95 * Example 1: 96 * 97 * OUI is 00-10-18, data length is 05 (hex form), data is 02-11-04-5C-DE and 98 * need to consider first 3 bytes and last byte of data for comparison 99 * mac-addr EE-1A-59-FE-FD-AF is present and first 3 bytes and last byte of 100 * mac address should be considered for comparison 101 * capability is not present 102 * then action OUI for gActionOUIITOExtension is as follows: 103 * 104 * gActionOUIITOExtension=001018 05 0211045CDE E8 03 EE1A59FEFDAF E4 105 * 106 * data mask calculation in above example: 107 * Data[0] = 02 ---- d0 = 1 108 * Data[1] = 11 ---- d1 = 1 109 * Data[2] = 04 ---- d2 = 1 110 * Data[3] = 5C ---- d3 = 0 111 * Data[4] = DE ---- d4 = 1 112 * data_mask = d0d1d2d3d4 + append with zeros to complete 8-bit = 11101000 = E8 113 * 114 * mac mask calculation in above example: 115 * mac_addr[0] = EE ---- m0 = 1 116 * mac_addr[1] = 1A ---- m1 = 1 117 * mac_addr[2] = 59 ---- m2 = 1 118 * mac_addr[3] = FE ---- m3 = 0 119 * mac_addr[4] = FD ---- m4 = 0 120 * mac_addr[5] = AF ---- m5 = 1 121 * mac_mask = m0m1m2m3m4m5 + append with zeros to complete 8-bit = 11100100 = E4 122 * 123 * Example 2: 124 * 125 * OUI is 00-10-18, data length is 00 and no Mac Address and capability 126 * 127 * gActionOUIITOExtension=001018 00 01 128 * 129 */ 130 131 /* 132 * <ini> 133 * gEnableActionOUI - Enable/Disable action oui feature 134 * @Min: 0 (disable) 135 * @Max: 1 (enable) 136 * @Default: 1 (enable) 137 * 138 * This ini is used to enable the action oui feature to control 139 * mode of connection, connected AP's in-activity time, Tx rate etc., 140 * 141 * Related: If gEnableActionOUI is set, then at least one of the following inis 142 * must be set with the proper action oui extensions: 143 * gActionOUIConnect1x1, gActionOUIITOExtension, gActionOUICCKM1X1 144 * 145 * Supported Feature: action ouis 146 * 147 * Usage: External 148 * 149 * </ini> 150 */ 151 #define CFG_ENABLE_ACTION_OUI CFG_INI_BOOL( \ 152 "gEnableActionOUI", \ 153 1, \ 154 "Enable/Disable action oui feature") 155 156 /* 157 * <ini> 158 * gActionOUIConnect1x1 - Used to specify action OUIs for 1x1 connection 159 * @Default: 000C43 00 25 C2 001018 06 02FFF02C0000 BC 25 42 001018 06 02FF040C0000 BC 25 42 00037F 00 35 6C 001018 06 02FF009C0000 BC 25 48 160 * Note: User should strictly add new action OUIs at the end of this 161 * default value. 162 * 163 * Default OUIs: (All values in Hex) 164 * OUI 1 : 000C43 165 * OUI data Len : 00 166 * Info Mask : 25 - Check for NSS and Band 167 * Capabilities: C2 - NSS == 2 && Band == 2G || Band == 5G 168 * OUI 2 : 001018 169 * OUI data Len : 06 170 * OUI Data : 02FFF02C0000 171 * OUI data Mask: BC - 10111100 172 * Info Mask : 25 - Check for NSS and Band 173 * Capabilities: 42 - NSS == 2 && Band == 2G 174 * OUI 3 : 001018 175 * OUI data Len : 06 176 * OUI Data : 02FF040C0000 177 * OUI data Mask: BC - 10111100 178 * Info Mask : 25 - Check for NSS and Band 179 * Capabilities: 42 - NSS == 2 && Band == 2G 180 * OUI 4 : 00037F 181 * OUI data Len : 00 182 * Info Mask : 35 - Check for NSS, VHT Caps and Band 183 * Capabilities: 6C - (NSS == 3 or 4) && VHT Caps Preset && Band == 2G 184 * OUI 5 : 001018 185 * OUI data Len : 06 186 * OUI Data : 02FF009C0000 187 * OUI data Mask: BC - 10111100 188 * Info Mask : 25 - Check for NSS and Band 189 * Capabilities: 48 - NSS == 4 && Band == 2G 190 * 191 * This ini is used to specify the AP OUIs with which only 1x1 connection 192 * is allowed. 193 * 194 * Related: None 195 * 196 * Supported Feature: Action OUIs 197 * 198 * Usage: External 199 * 200 * </ini> 201 */ 202 #define CFG_ACTION_OUI_CONNECT_1X1 CFG_INI_STRING( \ 203 "gActionOUIConnect1x1", \ 204 0, \ 205 ACTION_OUI_MAX_STR_LEN, \ 206 "000C43 00 25 C2 001018 06 02FFF02C0000 BC 25 42 001018 06 02FF040C0000 BC 25 42 00037F 00 35 6C 001018 06 02FF009C0000 BC 25 48", \ 207 "Used to specify action OUIs for 1x1 connection") 208 209 /* 210 * <ini> 211 * gActionOUIITOExtension - Used to extend in-activity time for specified APs 212 * @Default: 00037F 06 01010000FF7F FC 01 000AEB 02 0100 C0 01 000B86 03 010408 E0 01 213 * Note: User should strictly add new action OUIs at the end of this 214 * default value. 215 * 216 * Default OUIs: (All values in Hex) 217 * OUI 1: 00037F 218 * OUI data Len: 06 219 * OUI Data: 01010000FF7F 220 * OUI data Mask: FC - 11111100 221 * Info Mask : 01 - only OUI present in Info mask 222 * 223 * OUI 2: 000AEB 224 * OUI data Len: 02 225 * OUI Data: 0100 226 * OUI data Mask: C0 - 11000000 227 * Info Mask : 01 - only OUI present in Info mask 228 * 229 * OUI 3: 000B86 230 * OUI data Len: 03 231 * OUI Data: 010408 232 * OUI data Mask: E0 - 11100000 233 * Info Mask : 01 - only OUI present in Info mask 234 * 235 * This ini is used to specify AP OUIs using which station's in-activity time 236 * can be extended with the respective APs 237 * 238 * Related: None 239 * 240 * Supported Feature: Action OUIs 241 * 242 * Usage: External 243 * 244 * </ini> 245 */ 246 #define CFG_ACTION_OUI_ITO_EXTENSION CFG_INI_STRING( \ 247 "gActionOUIITOExtension", \ 248 0, \ 249 ACTION_OUI_MAX_STR_LEN, \ 250 "00037F 06 01010000FF7F FC 01 000AEB 02 0100 C0 01 000B86 03 010408 E0 01", \ 251 "Used to extend in-activity time for specified APs") 252 253 /* 254 * <ini> 255 * gActionOUICCKM1X1 - Used to specify action OUIs to control station's TX rates 256 * 257 * This ini is used to specify AP OUIs for which station's CCKM TX rates 258 * should be 1x1 only. 259 * 260 * Related: None 261 * 262 * Supported Feature: Action OUIs 263 * 264 * Usage: External 265 * 266 * </ini> 267 */ 268 #define CFG_ACTION_OUI_CCKM_1X1 CFG_INI_STRING( \ 269 "gActionOUICCKM1X1", \ 270 0, \ 271 ACTION_OUI_MAX_STR_LEN, \ 272 "", \ 273 "Used to specify action OUIs to control station's TX rates") 274 275 /* 276 * <ini> 277 * gActionOUIITOAlternate - Used to specify action OUIs to have alternate ITO in 278 * weak RSSI state 279 * 280 * This ini is used to specify AP OUIs for which the stations will have 281 * alternate ITOs for the case when the RSSI is weak. 282 * 283 * Related: None 284 * 285 * Supported Feature: Action OUIs 286 * 287 * Usage: External 288 * 289 * </ini> 290 */ 291 #define CFG_ACTION_OUI_ITO_ALTERNATE CFG_INI_STRING( \ 292 "gActionOUIITOAlternate", \ 293 0, \ 294 ACTION_OUI_MAX_STR_LEN, \ 295 "001018 06 0202001c0000 FC 01", \ 296 "Used to specify action OUIs to have alternate ITO") 297 298 /* 299 * <ini> 300 * gActionOUISwitchTo11nMode - Used to specify action OUIs for switching to 11n 301 * 302 * This ini is used to specify which AP for which the connection has to be 303 * made in 2x2 mode with HT capabilities only and not VHT. 304 * 305 * Default OUIs: (All values in Hex) 306 * OUI 1 : 00904C 307 * OUI data Len : 03 308 * OUI Data : 0418BF 309 * OUI data Mask: E0 - 11100000 310 * Info Mask : 21 - Check for Band 311 * Capabilities: 40 - Band == 2G 312 * 313 * Related: None 314 * 315 * Supported Feature: Action OUIs 316 * 317 * Usage: External 318 * 319 * </ini> 320 */ 321 #define CFG_ACTION_OUI_SWITCH_TO_11N_MODE CFG_INI_STRING( \ 322 "gActionOUISwitchTo11nMode", \ 323 0, \ 324 ACTION_OUI_MAX_STR_LEN, \ 325 "00904C 05 0418BF0CB2 F8 21 40", \ 326 "Used to specify action OUIs for switching to 11n") 327 328 /* 329 * <ini> 330 * gActionOUIConnect1x1with1TxRxChain - Used to specify action OUIs for 331 * 1x1 connection with one Tx/Rx Chain 332 * @Default: 333 * Note: User should strictly add new action OUIs at the end of this 334 * default value. 335 * 336 * Default OUIs: (All values in Hex) 337 * OUI 1 : 001018 338 * OUI data Len : 06 339 * OUI Data : 02FFF0040000 340 * OUI data Mask: BC - 10111100 341 * Info Mask : 21 - Check for Band 342 * Capabilities: 40 - Band == 2G 343 * 344 * OUI 2 : 001018 345 * OUI data Len : 06 346 * OUI Data : 02FFF0050000 347 * OUI data Mask: BC - 10111100 348 * Info Mask : 21 - Check for Band 349 * Capabilities: 40 - Band == 2G 350 * 351 * OUI 3 : 001018 352 * OUI data Len : 06 353 * OUI Data : 02FFF4050000 354 * OUI data Mask: BC - 10111100 355 * Info Mask : 21 - Check for Band 356 * Capabilities: 40 - Band == 2G 357 * 358 * This ini is used to specify the AP OUIs with which only 1x1 connection 359 * with one Tx/Rx Chain is allowed. 360 * 361 * Related: gEnableActionOUI 362 * 363 * Supported Feature: Action OUIs 364 * 365 * Usage: External 366 * 367 * </ini> 368 */ 369 #define CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN CFG_INI_STRING( \ 370 "gActionOUIConnect1x1with1TxRxChain", \ 371 0, \ 372 ACTION_OUI_MAX_STR_LEN, \ 373 "001018 06 02FFF0040000 BC 21 40 001018 06 02FFF0050000 BC 21 40 001018 06 02FFF4050000 BC 21 40", \ 374 "Used to specify action OUIs for 1x1 connection with one Tx/Rx Chain") 375 376 /* 377 * <ini> 378 * gActionOUIDisableAggressiveTX - Used to specify action OUIs to disable 379 * Aggressive TX feature when operating in softap. 380 * 381 * @Default: 382 * Note: User should strictly add new action OUIs at the end of this 383 * default value. 384 * 385 * Default OUIs: 386 * 387 * OUI 1 : FFFFFF 388 * OUI data Len : 00 389 * OUI Data: No data 390 * OUI data Mask: No data mask 391 * Info Mask: 2A - Check for mac-addr, HT capability and Band 392 * Mac-addr: F8:59:71:00:00:00 - first 3 bytes 393 * Mac-mask: E0 - Match only first 3 bytes of peer mac-addr 394 * Capabilities: 50 – HT should be enabled, and band should be 2.4GHz 395 * 396 * OUI 2 : FFFFFF 397 * OUI data Len : 00 398 * OUI Data: No data 399 * OUI data Mask: No data mask 400 * Info Mask: 2A - Check for mac-addr, HT capability and Band 401 * Mac-addr: 14:AB:C5:00:00:00 - first 3 bytes 402 * Mac-mask: E0 - Match only first 3 bytes of peer mac-addr 403 * Capabilities: 50 – HT should be enabled, and band should be 2.4GHz 404 * 405 * When operating in Softap mode, this ini is used to specify 406 * STA (peer) OUIs/mac-addr for which aggressive tx is disabled after 407 * association is successful. 408 * 409 * Related: gEnableActionOUI 410 * 411 * Supported Feature: Action OUIs 412 * 413 * Usage: External 414 * 415 * </ini> 416 */ 417 #define CFG_ACTION_OUI_DISABLE_AGGRESSIVE_TX CFG_INI_STRING( \ 418 "gActionOUIDisableAggressiveTX", \ 419 0, \ 420 ACTION_OUI_MAX_STR_LEN, \ 421 "FFFFFF 00 2A F85971000000 E0 50 FFFFFF 00 2A 14ABC5000000 E0 50", \ 422 "Used to specify action OUIs to disable aggressive TX") 423 424 /* 425 * <ini> 426 * gActionOUIDisableAggressiveEDCA - Used to specify action OUIs to control 427 * EDCA configuration when join the candidate AP 428 * 429 * @Default: NULL 430 * Note: User should strictly add new action OUIs at the end of this 431 * default value. 432 * 433 * This ini is used to specify AP OUIs. The station's EDCA should follow the 434 * APs' when connecting to those AP, even if the gEnableEdcaParams is set. 435 * For example, it follows the AP's EDCA whose OUI is 0050F2 with the 436 * following setting: 437 * gActionOUIDisableAggressiveEDCA=0050F2 00 01 438 * Explain: 0050F2: OUI 439 * 00: data length is 0 440 * 01: info mask, only OUI present in Info mask 441 * Refer to gEnableActionOUI for more detail about the format. 442 * 443 * Related: gEnableEdcaParams, gEnableActionOUI 444 * 445 * Supported Feature: Action OUIs 446 * 447 * Usage: External 448 * 449 * </ini> 450 */ 451 #define CFG_ACTION_OUI_DISABLE_AGGRESSIVE_EDCA CFG_INI_STRING( \ 452 "gActionOUIDisableAggressiveEDCA", \ 453 0, \ 454 ACTION_OUI_MAX_STR_LEN, \ 455 "", \ 456 "Used to specify action OUIs to control edca configuration") 457 458 /* 459 * <ini> 460 * gActionOUIExtendWowITO - Used to extend ITO(Inactivity Time-Out) value under 461 * WoWLAN mode for specified APs. 462 * 463 * @Default: NULL 464 * 465 * Some APs sometimes don't honor Qos null frames under WoWLAN mode if 466 * station's ITO is too small. This ini is used to specify AP OUIs which 467 * exhibit this behavior. When connected to such an AP, the station's ITO 468 * value will be extended when in WoWLAN mode. 469 * For example, it extends the ITO value(under WoWLAN mode) when connected 470 * to AP whose OUI is 001018 and vendor specific data is 0201009C0000 with 471 * the following setting: 472 * gActionOUIExtendWowITO=001018 06 0201009C0000 FC 01 473 * OUI: 001018 474 * OUI data Len : 06 475 * OUI Data : 0201009C0000 476 * OUI data Mask: FC - 11111100 477 * Info Mask : 01 - only OUI present in Info mask 478 * Refer to gEnableActionOUI for more detail about the format. 479 * 480 * Related: gEnableActionOUI 481 * 482 * Supported Feature: Action OUIs 483 * 484 * Usage: External 485 * 486 * </ini> 487 */ 488 #define CFG_ACTION_OUI_EXTEND_WOW_ITO CFG_INI_STRING( \ 489 "gActionOUIExtendWowITO", \ 490 0, \ 491 ACTION_OUI_MAX_STR_LEN, \ 492 "", \ 493 "Used to extend inactivity time out under WoWLAN mode for specified APs") 494 495 /* 496 * <ini> 497 * gActionOUIReconnAssocTimeout - Used to specify action OUIs to 498 * reconnect to same BSSID when wait for association response timeout 499 * 500 * This ini is used to specify AP OUIs. Some of AP doesn't response our 501 * first association request, but it would response our second association 502 * request. Add such OUI configuration INI to apply reconnect logic when 503 * association timeout happends with such AP. 504 * For default: 505 * gActionOUIReconnAssocTimeout=00E04C 00 01 506 * Explain: 00E04C: OUI 507 * 00: data length is 0 508 * 01: info mask, only OUI present in Info mask 509 * Note: User should strictly add new action OUIs at the end of this 510 * default value. 511 * Refer to gEnableActionOUI for more detail about the format. 512 * 513 * Related: gEnableActionOUI 514 * 515 * Supported Feature: Action OUIs 516 * 517 * Usage: External 518 * 519 * </ini> 520 */ 521 #define CFG_ACTION_OUI_RECONN_ASSOCTIMEOUT CFG_INI_STRING( \ 522 "gActionOUIReconnAssocTimeout", \ 523 0, \ 524 ACTION_OUI_MAX_STR_LEN, \ 525 "00E04C 00 01", \ 526 "Used to specify action OUIs to reconnect when assoc timeout") 527 528 /* 529 * <ini> 530 * gActionOUIDisableTWT - Used to specify action OUIs to control TWT param 531 * while joining the candidate AP 532 * 533 * This ini is used to specify AP OUIs. Some APs advertise TWT but do not 534 * follow through when the STA reaches out to them. Thus, TWT will be 535 * disabled when we receive OUIs of those APs. 536 * Note: User should strictly add new action OUIs at the end of this 537 * default value. 538 * 539 * Default OUIs: (All values in Hex) 540 * OUI 1: 001018 541 * OUI data Len: 00 542 * Info Mask : 01 - only OUI present in Info mask 543 * 544 * OUI 2: 000986 545 * OUI data Len: 00 546 * Info Mask : 01 - only OUI present in Info mask 547 * 548 * OUI 3: 000ce7 549 * OUI data Len: 00 550 * Info Mask : 01 - only OUI present in Info mask 551 * 552 * OUI 4: 00e0fc 553 * OUI data Len: 00 554 * Info Mask : 01 - only OUI present in Info mask 555 * 556 * Refer to gEnableActionOUI for more detail about the format. 557 * 558 * Related: gEnableActionOUI 559 * 560 * Supported Feature: Action OUIs 561 * 562 * Usage: External 563 * 564 * </ini> 565 */ 566 #define CFG_ACTION_OUI_DISABLE_TWT CFG_INI_STRING( \ 567 "gActionOUIDisableTWT", \ 568 0, \ 569 ACTION_OUI_MAX_STR_LEN, \ 570 "001018 00 01 000986 00 01 000ce7 00 01 00e0fc 00 01", \ 571 "Used to specify action OUIs to control TWT configuration") 572 573 /* 574 * <ini> 575 * gActionOUITakeAllBandInfo - Used to specify action OUIs to check 576 * whether country ie need take all band channel information. 577 * 578 * This ini is used to specify STA association request OUIs. Some STA 579 * need AP country ie take all band channel information when do BSS 580 * transition across band. Thus, AP will take all band channel info 581 * when we receive association request with this OUIs. 582 * Note: User should strictly add new action OUIs at the end of this 583 * default value. 584 * 585 * Default OUIs: (All values in Hex) 586 * OUI 1: 0017f2 587 * OUI data Len: 01 588 * OUI Data : 0a 589 * OUI data Mask: 80 - 10000000 590 * Info Mask : 01 - only OUI present in Info mask 591 * 592 * Refer to gEnableActionOUI for more detail about the format. 593 * 594 * Related: gEnableActionOUI 595 * 596 * Supported Feature: Action OUIs 597 * 598 * Usage: External 599 * 600 * </ini> 601 */ 602 #define CFG_ACTION_OUI_TAKE_ALL_BAND_INFO CFG_INI_STRING( \ 603 "gActionOUITakeAllBandInfo", \ 604 0, \ 605 ACTION_OUI_MAX_STR_LEN, \ 606 "0017f2 01 0a 80 01", \ 607 "Used to specify action OUIs to control country ie") 608 609 /* 610 * <ini> 611 * g11be_oui_allow_list - Used to specify 802.11be allowed ap oui list 612 * 613 * This ini is used to specify AP OUIs for which station can connect 614 * in 802.11be mode with the 802.11be AP. 615 * If no OUI set, then allow STA to connect to All 802.11be AP in 802.11be 616 * mode. 617 * If INI is set to "ffffff 00 01", then STA is not allowed to connect to 618 * any AP in 802.11be mode. 619 * 620 * Related: None 621 * 622 * Supported Feature: Action OUIs 623 * 624 * Usage: External 625 * 626 * </ini> 627 */ 628 #define CFG_ACTION_OUI_11BE_ALLOW_LIST CFG_INI_STRING( \ 629 "g11be_oui_allow_list", \ 630 0, \ 631 ACTION_OUI_MAX_STR_LEN, \ 632 "", \ 633 "Used to specify 11be allowed ap oui list") 634 635 /* 636 * <ini> 637 * gActionOUIDisableDynamicQosNullTxRate - Used to turn off FW's dynamic qos 638 * null tx rate feature if specific vendor OUI received in beacon 639 * 640 * Some APs sometimes don't honor Qos null frames with some specific rate. 641 * This ini will disable dynamic qos null tx rate feature for specified APs. 642 * 643 * Default OUIs: (All values in Hex) 644 * OUI 1: 00e04c 645 * OUI data Len: 03 646 * OUI Data : 020160 647 * OUI data Mask: E0 - 11100000 648 * Info Mask : 01 - only OUI present in Info mask 649 * 650 * OUI 2: 001018 651 * OUI data Len : 06 652 * OUI Data : 02FF009C0000 653 * OUI data Mask: BC - 10111100 654 * Info Mask : 01 - only OUI present in Info mask 655 * Refer to gEnableActionOUI for more detail about the format. 656 * 657 * Related: gEnableActionOUI 658 * 659 * Supported Feature: Action OUIs 660 * 661 * Usage: External 662 * 663 * </ini> 664 */ 665 #define CFG_ACTION_OUI_DISABLE_DYNAMIC_QOS_NULL_TX_RATE CFG_INI_STRING( \ 666 "gActionOUIDisableDynamicQosNullTxRate", \ 667 0, \ 668 ACTION_OUI_MAX_STR_LEN, \ 669 "00e04c 03 020160 E0 01 001018 06 02FF009c0000 BC 01", \ 670 "Used to turn off FW's dynamic qos null tx rate for specified APs") 671 672 /* 673 * <ini> 674 * gActionOUIAuthAssoc6Mbps2GHz - Used to send auth/assoc req with 6 Mbps rate 675 * on 2.4 GHz for specified AP 676 * 677 * Some AP sometimes doesn't honor auth/assoc with CCK rate. 678 * This ini will provide 6 Mbps rate for auth/assoc in 2.4 GHz. 679 * 680 * Example OUIs: (All values in Hex) 681 * OUI 1: 000c43 682 * OUI data Len: 04 683 * OUI Data : 03000000 684 * OUI data Mask: F0 - 11110000 685 * Info Mask : 01 - only OUI present in Info mask 686 * 687 * Refer to gEnableActionOUI for more detail about the format. 688 * 689 * Related: gEnableActionOUI 690 * 691 * Supported Feature: Action OUIs 692 * 693 * Usage: External 694 * 695 * </ini> 696 */ 697 #define CFG_ACTION_OUI_AUTH_ASSOC_6MBPS_2GHZ CFG_INI_STRING( \ 698 "gActionOUIAuthAssoc6Mbps2GHz", \ 699 0, \ 700 ACTION_OUI_MAX_STR_LEN, \ 701 "", \ 702 "send auth/assoc req with 6 Mbps rate on 2.4 GHz for specified APs") 703 704 /* 705 * <ini> 706 * CFG_ACTION_OUI_DISABLE_BFORMEE - Used to disable SU/MU beamformee 707 * capability for specified AP with some conditions 708 * 709 * Example OUIs: (All values in Hex) 710 * OUI 1: 000c43 711 * OUI data Len: 04 712 * OUI Data : 03000000 713 * OUI data Mask: F0 - 11110000 714 * Info Mask : 01 - only OUI present in Info mask 715 * 716 * Refer to gEnableActionOUI for more detail about the format. 717 * 718 * Related: gEnableActionOUI 719 * 720 * Supported Feature: Action OUIs 721 * 722 * Usage: External 723 * 724 * </ini> 725 */ 726 #define CFG_ACTION_OUI_DISABLE_BFORMEE CFG_INI_STRING( \ 727 "gActionOUIDisableBFORMEE", \ 728 0, \ 729 ACTION_OUI_MAX_STR_LEN, \ 730 "", \ 731 "disable SU/MU beamformee capability for specified AP") 732 733 /* 734 * <ini> 735 * gActionOUIEnableCTS2SelfWithQoSNull - Used to enable CTS2SELF with QoS null 736 * frame for specified APs 737 * 738 * Sample OUIs: (All values in Hex) 739 * OUI 1: 000c43 740 * OUI data Len: 04 741 * OUI Data : 03000000 742 * OUI data Mask: F0 - 11110000 743 * Info Mask : 01 - only OUI present in Info mask 744 * 745 * gActionOUIEnableCTS2SelfWithQoSNull=000c43 04 03000000 F0 01 746 * 747 * Refer to gEnableActionOUI for more detail about the format. 748 * 749 * Related: gEnableActionOUI 750 * 751 * Supported Feature: Action OUIs 752 * 753 * Usage: External 754 * 755 * </ini> 756 */ 757 #define CFG_ACTION_OUI_ENABLE_CTS2SELF_WITH_QOS_NULL CFG_INI_STRING( \ 758 "gActionOUIEnableCTS2SelfWithQoSNull", \ 759 0, \ 760 ACTION_OUI_MAX_STR_LEN, \ 761 "", \ 762 "Used to enable CTS2SELF with QoS null frame for specified APs") 763 764 /* 765 * <ini> 766 * g_action_oui_enable_cts_2_self - Used to enable CTS2SELF for specified APs 767 * 768 * Default OUIs: (All values in Hex) 769 * OUI 1: 000C43 770 * OUI data Len: 04 771 * OUI Data : 07000000 772 * OUI data Mask: F0 - 11110000 773 * Info Mask : 21 - 0010 0001 Check for OUI and Band 774 * Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz 775 * 776 * OUI 2 : 000C43 777 * OUI data Len : 04 778 * OUI Data : 03000000 779 * OUI data Mask: F0 - 11110000 780 * Info Mask : 21 - 0010 0001 Check for OUI and Band 781 * Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz 782 * 783 * g_action_oui_enable_cts_2_self=000C43 04 07000000 F0 21 C0 000C43 04 03000000 F0 21 C0 784 * 785 * Refer to gEnableActionOUI for more detail about the format. 786 * 787 * Related: gEnableActionOUI 788 * 789 * Supported Feature: Action OUIs 790 * 791 * Usage: External 792 * 793 * </ini> 794 */ 795 #define CFG_ACTION_OUI_ENABLE_CTS2SELF CFG_INI_STRING( \ 796 "g_action_oui_enable_cts_2_self", \ 797 0, \ 798 ACTION_OUI_MAX_STR_LEN, \ 799 "000C43 04 07000000 F0 21 C0 000C43 04 03000000 F0 21 C0", \ 800 "Used to enable CTS2SELF frame for specified APs") 801 802 /* 803 * <ini> 804 * gActionOUISendSMPSFrameWithOMN - Used to send SMPS frame along with OMN 805 * for specified APs 806 * 807 * Sample OUIs: (All values in Hex) 808 * OUI 1: 000ce7 809 * OUI data Len: 04 810 * OUI Data : 88000000 811 * OUI data Mask: F0 - 11110000 812 * Info Mask : 01 - only OUI present in Info mask 813 * 814 * gActionOUISendSMPSFrameWithOMN=000ce7 04 88000000 F0 01 815 * 816 * Refer to gEnableActionOUI for more detail about the format. 817 * 818 * Related: gEnableActionOUI 819 * 820 * Supported Feature: Action OUIs 821 * 822 * Usage: External 823 * 824 * </ini> 825 */ 826 #define CFG_ACTION_OUI_SEND_SMPS_FRAME_WITH_OMN CFG_INI_STRING( \ 827 "gActionOUISendSMPSFrameWithOMN", \ 828 0, \ 829 ACTION_OUI_MAX_STR_LEN, \ 830 "", \ 831 "Used to send SMPS frame along with OMN for specified APs") 832 833 /* 834 * <ini> 835 * gActionOUIRestrictMaxMLOLinks - Used to downgrade 3 link to 2 link ML 836 * connection for specific AP build version. 837 * 838 * Sample OUIs: (All values in Hex) 839 * OUI 3 : 8CFDF0 840 * OUI data Len : 13 841 * OUI Data : 040000494c510302097201cb17000009110000 842 * OUI data Mask: FFFFE0 - 1111 1111 1111 1111 1110 0000 843 * Info Mask : 01 - only OUI present in Info mask 844 * 845 * gActionOUIRestrictMaxMLOLinks=8CFDF0 13 040000494c510c00203000cb17000009110000 FFFFE0 01 846 * Refer to gEnableActionOUI for more detail about the format. 847 * 848 * Related: gEnableActionOUI 849 * 850 * Supported Feature: Action OUIs 851 * 852 * Usage: External 853 * 854 * </ini> 855 */ 856 #define CFG_ACTION_OUI_RESTRICT_MAX_MLO_LINKS CFG_INI_STRING( \ 857 "gActionOUIRestrictMaxMLOLinks", \ 858 0, \ 859 ACTION_OUI_MAX_STR_LEN, \ 860 "8CFDF0 13 040000494c510302097201cb17000009110000 FFFFE0 01", \ 861 "To restrict matching OUI APs to two link connection at max") 862 863 /* 864 * <ini> 865 * CFG_ACTION_OUI_LIMIT_BW - Used to limit BW for specified AP 866 * 867 * Example OUIs: (All values in Hex) 868 * OUI 1: 00904c 869 * OUI data Len: 04 870 * OUI Data : 0201009C 871 * OUI data Mask: F0 - 11110000 872 * Info Mask : 01 - only OUI present in Info mask 873 * 874 * Refer to gEnableActionOUI for more detail about the format. 875 * 876 * Related: gEnableActionOUI 877 * 878 * Supported Feature: Action OUIs 879 * 880 * Usage: External 881 * 882 * </ini> 883 */ 884 #define CFG_ACTION_OUI_LIMIT_BW CFG_INI_STRING( \ 885 "gActionOUILimitBW", \ 886 0, \ 887 ACTION_OUI_MAX_STR_LEN, \ 888 "", \ 889 "Limit BW for specified AP") 890 891 #define CFG_ACTION_OUI \ 892 CFG(CFG_ACTION_OUI_CCKM_1X1) \ 893 CFG(CFG_ACTION_OUI_CONNECT_1X1) \ 894 CFG(CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN) \ 895 CFG(CFG_ACTION_OUI_ITO_ALTERNATE) \ 896 CFG(CFG_ACTION_OUI_ITO_EXTENSION) \ 897 CFG(CFG_ACTION_OUI_DISABLE_AGGRESSIVE_TX) \ 898 CFG(CFG_ACTION_OUI_DISABLE_AGGRESSIVE_EDCA) \ 899 CFG(CFG_ACTION_OUI_EXTEND_WOW_ITO) \ 900 CFG(CFG_ACTION_OUI_SWITCH_TO_11N_MODE) \ 901 CFG(CFG_ACTION_OUI_RECONN_ASSOCTIMEOUT) \ 902 CFG(CFG_ACTION_OUI_DISABLE_TWT) \ 903 CFG(CFG_ACTION_OUI_TAKE_ALL_BAND_INFO) \ 904 CFG(CFG_ACTION_OUI_11BE_ALLOW_LIST) \ 905 CFG(CFG_ACTION_OUI_DISABLE_DYNAMIC_QOS_NULL_TX_RATE) \ 906 CFG(CFG_ACTION_OUI_ENABLE_CTS2SELF) \ 907 CFG(CFG_ACTION_OUI_ENABLE_CTS2SELF_WITH_QOS_NULL) \ 908 CFG(CFG_ACTION_OUI_RESTRICT_MAX_MLO_LINKS) \ 909 CFG(CFG_ACTION_OUI_SEND_SMPS_FRAME_WITH_OMN) \ 910 CFG(CFG_ACTION_OUI_AUTH_ASSOC_6MBPS_2GHZ) \ 911 CFG(CFG_ACTION_OUI_DISABLE_BFORMEE) \ 912 CFG(CFG_ACTION_OUI_LIMIT_BW) \ 913 CFG(CFG_ENABLE_ACTION_OUI) 914 #endif 915