1 /* 2 * Custom OID/ioctl definitions for 3 * Broadcom 802.11abg Networking Device Driver 4 * 5 * Definitions subject to change without notice. 6 * 7 * Copyright (C) 1999-2010, Broadcom Corporation 8 * 9 * Unless you and Broadcom execute a separate written software license 10 * agreement governing use of this software, this software is licensed to you 11 * under the terms of the GNU General Public License version 2 (the "GPL"), 12 * available at http://www.broadcom.com/licenses/GPLv2.php, with the 13 * following added to such license: 14 * 15 * As a special exception, the copyright holders of this software give you 16 * permission to link this software with independent modules, and to copy and 17 * distribute the resulting executable under terms of your choice, provided that 18 * you also meet, for each linked independent module, the terms and conditions of 19 * the license of that module. An independent module is a module which is not 20 * derived from this software. The special exception does not apply to any 21 * modifications of the software. 22 * 23 * Notwithstanding the above, under no circumstances may you combine this 24 * software in any way with any other Broadcom software provided under a license 25 * other than the GPL, without Broadcom's express prior written consent. 26 * 27 * $Id: wlioctl.h,v 1.601.4.15.2.14.2.62 2010/08/19 01:20:12 Exp $ 28 */ 29 30 31 #ifndef _wlioctl_h_ 32 #define _wlioctl_h_ 33 34 #include <typedefs.h> 35 #include <proto/ethernet.h> 36 #include <proto/bcmeth.h> 37 #include <proto/bcmevent.h> 38 #include <proto/802.11.h> 39 #include <bcmwifi.h> 40 41 42 43 #define ACTION_FRAME_SIZE 1040 44 45 typedef struct wl_action_frame { 46 struct ether_addr da; 47 uint16 len; 48 uint32 packetId; 49 uint8 data[ACTION_FRAME_SIZE]; 50 } wl_action_frame_t; 51 52 #define WL_WIFI_ACTION_FRAME_SIZE sizeof(struct wl_action_frame) 53 54 55 #define BWL_DEFAULT_PACKING 56 #include <packed_section_start.h> 57 58 #define RWL_ACTION_WIFI_CATEGORY 127 59 #define RWL_WIFI_OUI_BYTE1 0x90 60 #define RWL_WIFI_OUI_BYTE2 0x4C 61 #define RWL_WIFI_OUI_BYTE3 0x0F 62 #define RWL_WIFI_ACTION_FRAME_SIZE sizeof(struct dot11_action_wifi_vendor_specific) 63 #define RWL_WIFI_DEFAULT 0x00 64 #define RWL_WIFI_FIND_MY_PEER 0x09 65 #define RWL_WIFI_FOUND_PEER 0x0A 66 #define RWL_ACTION_WIFI_FRAG_TYPE 0x55 67 68 typedef struct ssid_info 69 { 70 uint8 ssid_len; 71 uint8 ssid[32]; 72 } ssid_info_t; 73 74 typedef struct cnt_rx 75 { 76 uint32 cnt_rxundec; 77 uint32 cnt_rxframe; 78 } cnt_rx_t; 79 80 81 82 #define RWL_REF_MAC_ADDRESS_OFFSET 17 83 #define RWL_DUT_MAC_ADDRESS_OFFSET 23 84 #define RWL_WIFI_CLIENT_CHANNEL_OFFSET 50 85 #define RWL_WIFI_SERVER_CHANNEL_OFFSET 51 86 87 88 89 90 91 #define WL_BSS_INFO_VERSION 108 92 93 94 typedef struct wl_bss_info { 95 uint32 version; 96 uint32 length; 97 struct ether_addr BSSID; 98 uint16 beacon_period; 99 uint16 capability; 100 uint8 SSID_len; 101 uint8 SSID[32]; 102 struct { 103 uint count; 104 uint8 rates[16]; 105 } rateset; 106 chanspec_t chanspec; 107 uint16 atim_window; 108 uint8 dtim_period; 109 int16 RSSI; 110 int8 phy_noise; 111 112 uint8 n_cap; 113 uint32 nbss_cap; 114 uint8 ctl_ch; 115 uint32 reserved32[1]; 116 uint8 flags; 117 uint8 reserved[3]; 118 uint8 basic_mcs[MCSSET_LEN]; 119 120 uint16 ie_offset; 121 uint32 ie_length; 122 123 124 } wl_bss_info_t; 125 126 typedef struct wlc_ssid { 127 uint32 SSID_len; 128 uchar SSID[32]; 129 } wlc_ssid_t; 130 131 132 #define WL_BSSTYPE_INFRA 1 133 #define WL_BSSTYPE_INDEP 0 134 #define WL_BSSTYPE_ANY 2 135 136 137 #define WL_SCANFLAGS_PASSIVE 0x01 138 #define WL_SCANFLAGS_PROHIBITED 0x04 139 140 typedef struct wl_scan_params { 141 wlc_ssid_t ssid; 142 struct ether_addr bssid; 143 int8 bss_type; 144 int8 scan_type; 145 int32 nprobes; 146 int32 active_time; 147 int32 passive_time; 148 int32 home_time; 149 int32 channel_num; 150 uint16 channel_list[1]; 151 } wl_scan_params_t; 152 153 #define WL_SCAN_PARAMS_FIXED_SIZE 64 154 155 156 #define WL_SCAN_PARAMS_COUNT_MASK 0x0000ffff 157 #define WL_SCAN_PARAMS_NSSID_SHIFT 16 158 159 #define WL_SCAN_ACTION_START 1 160 #define WL_SCAN_ACTION_CONTINUE 2 161 #define WL_SCAN_ACTION_ABORT 3 162 163 #define ISCAN_REQ_VERSION 1 164 165 166 typedef struct wl_iscan_params { 167 uint32 version; 168 uint16 action; 169 uint16 scan_duration; 170 wl_scan_params_t params; 171 } wl_iscan_params_t; 172 173 #define WL_ISCAN_PARAMS_FIXED_SIZE (OFFSETOF(wl_iscan_params_t, params) + sizeof(wlc_ssid_t)) 174 175 typedef struct wl_scan_results { 176 uint32 buflen; 177 uint32 version; 178 uint32 count; 179 wl_bss_info_t bss_info[1]; 180 } wl_scan_results_t; 181 182 #define WL_SCAN_RESULTS_FIXED_SIZE 12 183 184 185 #define WL_SCAN_RESULTS_SUCCESS 0 186 #define WL_SCAN_RESULTS_PARTIAL 1 187 #define WL_SCAN_RESULTS_PENDING 2 188 #define WL_SCAN_RESULTS_ABORTED 3 189 #define WL_SCAN_RESULTS_NO_MEM 4 190 191 #define ESCAN_REQ_VERSION 1 192 193 typedef struct wl_escan_params { 194 uint32 version; 195 uint16 action; 196 uint16 sync_id; 197 wl_scan_params_t params; 198 } wl_escan_params_t; 199 200 #define WL_ESCAN_PARAMS_FIXED_SIZE (OFFSETOF(wl_escan_params_t, params) + sizeof(wlc_ssid_t)) 201 202 typedef struct wl_escan_result { 203 uint32 buflen; 204 uint32 version; 205 uint16 sync_id; 206 uint16 bss_count; 207 wl_bss_info_t bss_info[1]; 208 } wl_escan_result_t; 209 210 #define WL_ESCAN_RESULTS_FIXED_SIZE (sizeof(wl_escan_result_t) - sizeof(wl_bss_info_t)) 211 212 213 typedef struct wl_iscan_results { 214 uint32 status; 215 wl_scan_results_t results; 216 } wl_iscan_results_t; 217 218 #define WL_ISCAN_RESULTS_FIXED_SIZE \ 219 (WL_SCAN_RESULTS_FIXED_SIZE + OFFSETOF(wl_iscan_results_t, results)) 220 221 #define WL_NUMRATES 16 222 typedef struct wl_rateset { 223 uint32 count; 224 uint8 rates[WL_NUMRATES]; 225 } wl_rateset_t; 226 227 228 typedef struct wl_uint32_list { 229 230 uint32 count; 231 232 uint32 element[1]; 233 } wl_uint32_list_t; 234 235 236 typedef struct wl_assoc_params { 237 struct ether_addr bssid; 238 uint16 bssid_cnt; 239 int32 chanspec_num; 240 chanspec_t chanspec_list[1]; 241 } wl_assoc_params_t; 242 #define WL_ASSOC_PARAMS_FIXED_SIZE (sizeof(wl_assoc_params_t) - sizeof(chanspec_t)) 243 244 245 typedef wl_assoc_params_t wl_reassoc_params_t; 246 #define WL_REASSOC_PARAMS_FIXED_SIZE WL_ASSOC_PARAMS_FIXED_SIZE 247 248 249 typedef struct wl_join_params { 250 wlc_ssid_t ssid; 251 wl_assoc_params_t params; 252 } wl_join_params_t; 253 #define WL_JOIN_PARAMS_FIXED_SIZE (sizeof(wl_join_params_t) - sizeof(chanspec_t)) 254 255 #define WLC_CNTRY_BUF_SZ 4 256 257 258 typedef enum sup_auth_status { 259 260 WLC_SUP_DISCONNECTED = 0, 261 WLC_SUP_CONNECTING, 262 WLC_SUP_IDREQUIRED, 263 WLC_SUP_AUTHENTICATING, 264 WLC_SUP_AUTHENTICATED, 265 WLC_SUP_KEYXCHANGE, 266 WLC_SUP_KEYED, 267 WLC_SUP_TIMEOUT, 268 WLC_SUP_LAST_BASIC_STATE, 269 270 271 WLC_SUP_KEYXCHANGE_WAIT_M1 = WLC_SUP_AUTHENTICATED, 272 273 WLC_SUP_KEYXCHANGE_PREP_M2 = WLC_SUP_KEYXCHANGE, 274 275 WLC_SUP_KEYXCHANGE_WAIT_M3 = WLC_SUP_LAST_BASIC_STATE, 276 277 WLC_SUP_KEYXCHANGE_PREP_M4, 278 WLC_SUP_KEYXCHANGE_WAIT_G1, 279 WLC_SUP_KEYXCHANGE_PREP_G2 280 } sup_auth_status_t; 281 282 283 #define CRYPTO_ALGO_OFF 0 284 #define CRYPTO_ALGO_WEP1 1 285 #define CRYPTO_ALGO_TKIP 2 286 #define CRYPTO_ALGO_WEP128 3 287 #define CRYPTO_ALGO_AES_CCM 4 288 #define CRYPTO_ALGO_AES_OCB_MSDU 5 289 #define CRYPTO_ALGO_AES_OCB_MPDU 6 290 #define CRYPTO_ALGO_NALG 7 291 #define CRYPTO_ALGO_SMS4 11 292 293 #define WSEC_GEN_MIC_ERROR 0x0001 294 #define WSEC_GEN_REPLAY 0x0002 295 #define WSEC_GEN_ICV_ERROR 0x0004 296 297 #define WL_SOFT_KEY (1 << 0) 298 #define WL_PRIMARY_KEY (1 << 1) 299 #define WL_KF_RES_4 (1 << 4) 300 #define WL_KF_RES_5 (1 << 5) 301 #define WL_IBSS_PEER_GROUP_KEY (1 << 6) 302 303 typedef struct wl_wsec_key { 304 uint32 index; 305 uint32 len; 306 uint8 data[DOT11_MAX_KEY_SIZE]; 307 uint32 pad_1[18]; 308 uint32 algo; 309 uint32 flags; 310 uint32 pad_2[2]; 311 int pad_3; 312 int iv_initialized; 313 int pad_4; 314 315 struct { 316 uint32 hi; 317 uint16 lo; 318 } rxiv; 319 uint32 pad_5[2]; 320 struct ether_addr ea; 321 } wl_wsec_key_t; 322 323 #define WSEC_MIN_PSK_LEN 8 324 #define WSEC_MAX_PSK_LEN 64 325 326 327 #define WSEC_PASSPHRASE (1<<0) 328 329 330 typedef struct { 331 ushort key_len; 332 ushort flags; 333 uint8 key[WSEC_MAX_PSK_LEN]; 334 } wsec_pmk_t; 335 336 337 #define WEP_ENABLED 0x0001 338 #define TKIP_ENABLED 0x0002 339 #define AES_ENABLED 0x0004 340 #define WSEC_SWFLAG 0x0008 341 #define SES_OW_ENABLED 0x0040 342 #define SMS4_ENABLED 0x0100 343 344 345 #define WPA_AUTH_DISABLED 0x0000 346 #define WPA_AUTH_NONE 0x0001 347 #define WPA_AUTH_UNSPECIFIED 0x0002 348 #define WPA_AUTH_PSK 0x0004 349 350 #define WPA2_AUTH_UNSPECIFIED 0x0040 351 #define WPA2_AUTH_PSK 0x0080 352 #define BRCM_AUTH_PSK 0x0100 353 #define BRCM_AUTH_DPT 0x0200 354 #define WPA_AUTH_WAPI 0x0400 355 356 #define WPA_AUTH_PFN_ANY 0xffffffff 357 358 359 #define MAXPMKID 16 360 361 typedef struct _pmkid { 362 struct ether_addr BSSID; 363 uint8 PMKID[WPA2_PMKID_LEN]; 364 } pmkid_t; 365 366 typedef struct _pmkid_list { 367 uint32 npmkid; 368 pmkid_t pmkid[1]; 369 } pmkid_list_t; 370 371 typedef struct _pmkid_cand { 372 struct ether_addr BSSID; 373 uint8 preauth; 374 } pmkid_cand_t; 375 376 typedef struct _pmkid_cand_list { 377 uint32 npmkid_cand; 378 pmkid_cand_t pmkid_cand[1]; 379 } pmkid_cand_list_t; 380 381 382 383 384 typedef struct { 385 uint32 val; 386 struct ether_addr ea; 387 } scb_val_t; 388 389 390 391 typedef struct channel_info { 392 int hw_channel; 393 int target_channel; 394 int scan_channel; 395 } channel_info_t; 396 397 398 struct maclist { 399 uint count; 400 struct ether_addr ea[1]; 401 }; 402 403 404 typedef struct get_pktcnt { 405 uint rx_good_pkt; 406 uint rx_bad_pkt; 407 uint tx_good_pkt; 408 uint tx_bad_pkt; 409 uint rx_ocast_good_pkt; 410 } get_pktcnt_t; 411 412 413 typedef struct wl_ioctl { 414 uint cmd; 415 void *buf; 416 uint len; 417 uint8 set; 418 uint used; 419 uint needed; 420 } wl_ioctl_t; 421 422 423 424 #define WLC_IOCTL_MAGIC 0x14e46c77 425 426 427 #define WLC_IOCTL_VERSION 1 428 429 #define WLC_IOCTL_MAXLEN 8192 430 #define WLC_IOCTL_SMLEN 256 431 #define WLC_IOCTL_MEDLEN 1536 432 433 434 435 #define WLC_GET_MAGIC 0 436 #define WLC_GET_VERSION 1 437 #define WLC_UP 2 438 #define WLC_DOWN 3 439 #define WLC_GET_LOOP 4 440 #define WLC_SET_LOOP 5 441 #define WLC_DUMP 6 442 #define WLC_GET_MSGLEVEL 7 443 #define WLC_SET_MSGLEVEL 8 444 #define WLC_GET_PROMISC 9 445 #define WLC_SET_PROMISC 10 446 447 #define WLC_GET_RATE 12 448 449 #define WLC_GET_INSTANCE 14 450 451 452 453 454 #define WLC_GET_INFRA 19 455 #define WLC_SET_INFRA 20 456 #define WLC_GET_AUTH 21 457 #define WLC_SET_AUTH 22 458 #define WLC_GET_BSSID 23 459 #define WLC_SET_BSSID 24 460 #define WLC_GET_SSID 25 461 #define WLC_SET_SSID 26 462 #define WLC_RESTART 27 463 464 #define WLC_GET_CHANNEL 29 465 #define WLC_SET_CHANNEL 30 466 #define WLC_GET_SRL 31 467 #define WLC_SET_SRL 32 468 #define WLC_GET_LRL 33 469 #define WLC_SET_LRL 34 470 #define WLC_GET_PLCPHDR 35 471 #define WLC_SET_PLCPHDR 36 472 #define WLC_GET_RADIO 37 473 #define WLC_SET_RADIO 38 474 #define WLC_GET_PHYTYPE 39 475 #define WLC_DUMP_RATE 40 476 #define WLC_SET_RATE_PARAMS 41 477 478 479 #define WLC_GET_KEY 44 480 #define WLC_SET_KEY 45 481 #define WLC_GET_REGULATORY 46 482 #define WLC_SET_REGULATORY 47 483 #define WLC_GET_PASSIVE_SCAN 48 484 #define WLC_SET_PASSIVE_SCAN 49 485 #define WLC_SCAN 50 486 #define WLC_SCAN_RESULTS 51 487 #define WLC_DISASSOC 52 488 #define WLC_REASSOC 53 489 #define WLC_GET_ROAM_TRIGGER 54 490 #define WLC_SET_ROAM_TRIGGER 55 491 #define WLC_GET_ROAM_DELTA 56 492 #define WLC_SET_ROAM_DELTA 57 493 #define WLC_GET_ROAM_SCAN_PERIOD 58 494 #define WLC_SET_ROAM_SCAN_PERIOD 59 495 #define WLC_EVM 60 496 #define WLC_GET_TXANT 61 497 #define WLC_SET_TXANT 62 498 #define WLC_GET_ANTDIV 63 499 #define WLC_SET_ANTDIV 64 500 501 502 #define WLC_GET_CLOSED 67 503 #define WLC_SET_CLOSED 68 504 #define WLC_GET_MACLIST 69 505 #define WLC_SET_MACLIST 70 506 #define WLC_GET_RATESET 71 507 #define WLC_SET_RATESET 72 508 509 #define WLC_LONGTRAIN 74 510 #define WLC_GET_BCNPRD 75 511 #define WLC_SET_BCNPRD 76 512 #define WLC_GET_DTIMPRD 77 513 #define WLC_SET_DTIMPRD 78 514 #define WLC_GET_SROM 79 515 #define WLC_SET_SROM 80 516 #define WLC_GET_WEP_RESTRICT 81 517 #define WLC_SET_WEP_RESTRICT 82 518 #define WLC_GET_COUNTRY 83 519 #define WLC_SET_COUNTRY 84 520 #define WLC_GET_PM 85 521 #define WLC_SET_PM 86 522 #define WLC_GET_WAKE 87 523 #define WLC_SET_WAKE 88 524 525 #define WLC_GET_FORCELINK 90 526 #define WLC_SET_FORCELINK 91 527 #define WLC_FREQ_ACCURACY 92 528 #define WLC_CARRIER_SUPPRESS 93 529 #define WLC_GET_PHYREG 94 530 #define WLC_SET_PHYREG 95 531 #define WLC_GET_RADIOREG 96 532 #define WLC_SET_RADIOREG 97 533 #define WLC_GET_REVINFO 98 534 #define WLC_GET_UCANTDIV 99 535 #define WLC_SET_UCANTDIV 100 536 #define WLC_R_REG 101 537 #define WLC_W_REG 102 538 539 540 #define WLC_GET_MACMODE 105 541 #define WLC_SET_MACMODE 106 542 #define WLC_GET_MONITOR 107 543 #define WLC_SET_MONITOR 108 544 #define WLC_GET_GMODE 109 545 #define WLC_SET_GMODE 110 546 #define WLC_GET_LEGACY_ERP 111 547 #define WLC_SET_LEGACY_ERP 112 548 #define WLC_GET_RX_ANT 113 549 #define WLC_GET_CURR_RATESET 114 550 #define WLC_GET_SCANSUPPRESS 115 551 #define WLC_SET_SCANSUPPRESS 116 552 #define WLC_GET_AP 117 553 #define WLC_SET_AP 118 554 #define WLC_GET_EAP_RESTRICT 119 555 #define WLC_SET_EAP_RESTRICT 120 556 #define WLC_SCB_AUTHORIZE 121 557 #define WLC_SCB_DEAUTHORIZE 122 558 #define WLC_GET_WDSLIST 123 559 #define WLC_SET_WDSLIST 124 560 #define WLC_GET_ATIM 125 561 #define WLC_SET_ATIM 126 562 #define WLC_GET_RSSI 127 563 #define WLC_GET_PHYANTDIV 128 564 #define WLC_SET_PHYANTDIV 129 565 #define WLC_AP_RX_ONLY 130 566 #define WLC_GET_TX_PATH_PWR 131 567 #define WLC_SET_TX_PATH_PWR 132 568 #define WLC_GET_WSEC 133 569 #define WLC_SET_WSEC 134 570 #define WLC_GET_PHY_NOISE 135 571 #define WLC_GET_BSS_INFO 136 572 #define WLC_GET_PKTCNTS 137 573 #define WLC_GET_LAZYWDS 138 574 #define WLC_SET_LAZYWDS 139 575 #define WLC_GET_BANDLIST 140 576 #define WLC_GET_BAND 141 577 #define WLC_SET_BAND 142 578 #define WLC_SCB_DEAUTHENTICATE 143 579 #define WLC_GET_SHORTSLOT 144 580 #define WLC_GET_SHORTSLOT_OVERRIDE 145 581 #define WLC_SET_SHORTSLOT_OVERRIDE 146 582 #define WLC_GET_SHORTSLOT_RESTRICT 147 583 #define WLC_SET_SHORTSLOT_RESTRICT 148 584 #define WLC_GET_GMODE_PROTECTION 149 585 #define WLC_GET_GMODE_PROTECTION_OVERRIDE 150 586 #define WLC_SET_GMODE_PROTECTION_OVERRIDE 151 587 #define WLC_UPGRADE 152 588 589 590 #define WLC_GET_IGNORE_BCNS 155 591 #define WLC_SET_IGNORE_BCNS 156 592 #define WLC_GET_SCB_TIMEOUT 157 593 #define WLC_SET_SCB_TIMEOUT 158 594 #define WLC_GET_ASSOCLIST 159 595 #define WLC_GET_CLK 160 596 #define WLC_SET_CLK 161 597 #define WLC_GET_UP 162 598 #define WLC_OUT 163 599 #define WLC_GET_WPA_AUTH 164 600 #define WLC_SET_WPA_AUTH 165 601 #define WLC_GET_UCFLAGS 166 602 #define WLC_SET_UCFLAGS 167 603 #define WLC_GET_PWRIDX 168 604 #define WLC_SET_PWRIDX 169 605 #define WLC_GET_TSSI 170 606 #define WLC_GET_SUP_RATESET_OVERRIDE 171 607 #define WLC_SET_SUP_RATESET_OVERRIDE 172 608 609 610 611 612 613 #define WLC_GET_PROTECTION_CONTROL 178 614 #define WLC_SET_PROTECTION_CONTROL 179 615 #define WLC_GET_PHYLIST 180 616 #define WLC_ENCRYPT_STRENGTH 181 617 #define WLC_DECRYPT_STATUS 182 618 #define WLC_GET_KEY_SEQ 183 619 #define WLC_GET_SCAN_CHANNEL_TIME 184 620 #define WLC_SET_SCAN_CHANNEL_TIME 185 621 #define WLC_GET_SCAN_UNASSOC_TIME 186 622 #define WLC_SET_SCAN_UNASSOC_TIME 187 623 #define WLC_GET_SCAN_HOME_TIME 188 624 #define WLC_SET_SCAN_HOME_TIME 189 625 #define WLC_GET_SCAN_NPROBES 190 626 #define WLC_SET_SCAN_NPROBES 191 627 #define WLC_GET_PRB_RESP_TIMEOUT 192 628 #define WLC_SET_PRB_RESP_TIMEOUT 193 629 #define WLC_GET_ATTEN 194 630 #define WLC_SET_ATTEN 195 631 #define WLC_GET_SHMEM 196 632 #define WLC_SET_SHMEM 197 633 634 635 #define WLC_SET_WSEC_TEST 200 636 #define WLC_SCB_DEAUTHENTICATE_FOR_REASON 201 637 #define WLC_TKIP_COUNTERMEASURES 202 638 #define WLC_GET_PIOMODE 203 639 #define WLC_SET_PIOMODE 204 640 #define WLC_SET_ASSOC_PREFER 205 641 #define WLC_GET_ASSOC_PREFER 206 642 #define WLC_SET_ROAM_PREFER 207 643 #define WLC_GET_ROAM_PREFER 208 644 #define WLC_SET_LED 209 645 #define WLC_GET_LED 210 646 #define WLC_GET_INTERFERENCE_MODE 211 647 #define WLC_SET_INTERFERENCE_MODE 212 648 #define WLC_GET_CHANNEL_QA 213 649 #define WLC_START_CHANNEL_QA 214 650 #define WLC_GET_CHANNEL_SEL 215 651 #define WLC_START_CHANNEL_SEL 216 652 #define WLC_GET_VALID_CHANNELS 217 653 #define WLC_GET_FAKEFRAG 218 654 #define WLC_SET_FAKEFRAG 219 655 #define WLC_GET_PWROUT_PERCENTAGE 220 656 #define WLC_SET_PWROUT_PERCENTAGE 221 657 #define WLC_SET_BAD_FRAME_PREEMPT 222 658 #define WLC_GET_BAD_FRAME_PREEMPT 223 659 #define WLC_SET_LEAP_LIST 224 660 #define WLC_GET_LEAP_LIST 225 661 #define WLC_GET_CWMIN 226 662 #define WLC_SET_CWMIN 227 663 #define WLC_GET_CWMAX 228 664 #define WLC_SET_CWMAX 229 665 #define WLC_GET_WET 230 666 #define WLC_SET_WET 231 667 #define WLC_GET_PUB 232 668 669 670 #define WLC_GET_KEY_PRIMARY 235 671 #define WLC_SET_KEY_PRIMARY 236 672 673 #define WLC_GET_ACI_ARGS 238 674 #define WLC_SET_ACI_ARGS 239 675 #define WLC_UNSET_CALLBACK 240 676 #define WLC_SET_CALLBACK 241 677 #define WLC_GET_RADAR 242 678 #define WLC_SET_RADAR 243 679 #define WLC_SET_SPECT_MANAGMENT 244 680 #define WLC_GET_SPECT_MANAGMENT 245 681 #define WLC_WDS_GET_REMOTE_HWADDR 246 682 #define WLC_WDS_GET_WPA_SUP 247 683 #define WLC_SET_CS_SCAN_TIMER 248 684 #define WLC_GET_CS_SCAN_TIMER 249 685 #define WLC_MEASURE_REQUEST 250 686 #define WLC_INIT 251 687 #define WLC_SEND_QUIET 252 688 #define WLC_KEEPALIVE 253 689 #define WLC_SEND_PWR_CONSTRAINT 254 690 #define WLC_UPGRADE_STATUS 255 691 #define WLC_CURRENT_PWR 256 692 #define WLC_GET_SCAN_PASSIVE_TIME 257 693 #define WLC_SET_SCAN_PASSIVE_TIME 258 694 #define WLC_LEGACY_LINK_BEHAVIOR 259 695 #define WLC_GET_CHANNELS_IN_COUNTRY 260 696 #define WLC_GET_COUNTRY_LIST 261 697 #define WLC_GET_VAR 262 698 #define WLC_SET_VAR 263 699 #define WLC_NVRAM_GET 264 700 #define WLC_NVRAM_SET 265 701 #define WLC_NVRAM_DUMP 266 702 #define WLC_REBOOT 267 703 #define WLC_SET_WSEC_PMK 268 704 #define WLC_GET_AUTH_MODE 269 705 #define WLC_SET_AUTH_MODE 270 706 #define WLC_GET_WAKEENTRY 271 707 #define WLC_SET_WAKEENTRY 272 708 #define WLC_NDCONFIG_ITEM 273 709 #define WLC_NVOTPW 274 710 #define WLC_OTPW 275 711 #define WLC_IOV_BLOCK_GET 276 712 #define WLC_IOV_MODULES_GET 277 713 #define WLC_SOFT_RESET 278 714 #define WLC_GET_ALLOW_MODE 279 715 #define WLC_SET_ALLOW_MODE 280 716 #define WLC_GET_DESIRED_BSSID 281 717 #define WLC_SET_DESIRED_BSSID 282 718 #define WLC_DISASSOC_MYAP 283 719 #define WLC_GET_NBANDS 284 720 #define WLC_GET_BANDSTATES 285 721 #define WLC_GET_WLC_BSS_INFO 286 722 #define WLC_GET_ASSOC_INFO 287 723 #define WLC_GET_OID_PHY 288 724 #define WLC_SET_OID_PHY 289 725 #define WLC_SET_ASSOC_TIME 290 726 #define WLC_GET_DESIRED_SSID 291 727 #define WLC_GET_CHANSPEC 292 728 #define WLC_GET_ASSOC_STATE 293 729 #define WLC_SET_PHY_STATE 294 730 #define WLC_GET_SCAN_PENDING 295 731 #define WLC_GET_SCANREQ_PENDING 296 732 #define WLC_GET_PREV_ROAM_REASON 297 733 #define WLC_SET_PREV_ROAM_REASON 298 734 #define WLC_GET_BANDSTATES_PI 299 735 #define WLC_GET_PHY_STATE 300 736 #define WLC_GET_BSS_WPA_RSN 301 737 #define WLC_GET_BSS_WPA2_RSN 302 738 #define WLC_GET_BSS_BCN_TS 303 739 #define WLC_GET_INT_DISASSOC 304 740 #define WLC_SET_NUM_PEERS 305 741 #define WLC_GET_NUM_BSS 306 742 #define WLC_LAST 307 743 744 745 746 #define WL_RADIO_SW_DISABLE (1<<0) 747 #define WL_RADIO_HW_DISABLE (1<<1) 748 #define WL_RADIO_MPC_DISABLE (1<<2) 749 #define WL_RADIO_COUNTRY_DISABLE (1<<3) 750 751 752 #define WL_TXPWR_OVERRIDE (1U<<31) 753 754 #define WL_PHY_PAVARS_LEN 6 755 756 757 #define WL_DIAG_INTERRUPT 1 758 #define WL_DIAG_LOOPBACK 2 759 #define WL_DIAG_MEMORY 3 760 #define WL_DIAG_LED 4 761 #define WL_DIAG_REG 5 762 #define WL_DIAG_SROM 6 763 #define WL_DIAG_DMA 7 764 765 #define WL_DIAGERR_SUCCESS 0 766 #define WL_DIAGERR_FAIL_TO_RUN 1 767 #define WL_DIAGERR_NOT_SUPPORTED 2 768 #define WL_DIAGERR_INTERRUPT_FAIL 3 769 #define WL_DIAGERR_LOOPBACK_FAIL 4 770 #define WL_DIAGERR_SROM_FAIL 5 771 #define WL_DIAGERR_SROM_BADCRC 6 772 #define WL_DIAGERR_REG_FAIL 7 773 #define WL_DIAGERR_MEMORY_FAIL 8 774 #define WL_DIAGERR_NOMEM 9 775 #define WL_DIAGERR_DMA_FAIL 10 776 777 #define WL_DIAGERR_MEMORY_TIMEOUT 11 778 #define WL_DIAGERR_MEMORY_BADPATTERN 12 779 780 781 #define WLC_BAND_AUTO 0 782 #define WLC_BAND_5G 1 783 #define WLC_BAND_2G 2 784 #define WLC_BAND_ALL 3 785 786 787 #define WL_CHAN_FREQ_RANGE_2G 0 788 #define WL_CHAN_FREQ_RANGE_5GL 1 789 #define WL_CHAN_FREQ_RANGE_5GM 2 790 #define WL_CHAN_FREQ_RANGE_5GH 3 791 792 793 #define WLC_PHY_TYPE_A 0 794 #define WLC_PHY_TYPE_B 1 795 #define WLC_PHY_TYPE_G 2 796 #define WLC_PHY_TYPE_N 4 797 #define WLC_PHY_TYPE_LP 5 798 #define WLC_PHY_TYPE_SSN 6 799 #define WLC_PHY_TYPE_NULL 0xf 800 801 802 #define WLC_MACMODE_DISABLED 0 803 #define WLC_MACMODE_DENY 1 804 #define WLC_MACMODE_ALLOW 2 805 806 807 #define GMODE_LEGACY_B 0 808 #define GMODE_AUTO 1 809 #define GMODE_ONLY 2 810 #define GMODE_B_DEFERRED 3 811 #define GMODE_PERFORMANCE 4 812 #define GMODE_LRS 5 813 #define GMODE_MAX 6 814 815 816 #define WLC_PLCP_AUTO -1 817 #define WLC_PLCP_SHORT 0 818 #define WLC_PLCP_LONG 1 819 820 821 #define WLC_PROTECTION_AUTO -1 822 #define WLC_PROTECTION_OFF 0 823 #define WLC_PROTECTION_ON 1 824 #define WLC_PROTECTION_MMHDR_ONLY 2 825 #define WLC_PROTECTION_CTS_ONLY 3 826 827 828 #define WLC_PROTECTION_CTL_OFF 0 829 #define WLC_PROTECTION_CTL_LOCAL 1 830 #define WLC_PROTECTION_CTL_OVERLAP 2 831 832 833 #define WLC_N_PROTECTION_OFF 0 834 #define WLC_N_PROTECTION_OPTIONAL 1 835 #define WLC_N_PROTECTION_20IN40 2 836 #define WLC_N_PROTECTION_MIXEDMODE 3 837 838 839 #define WLC_N_PREAMBLE_MIXEDMODE 0 840 #define WLC_N_PREAMBLE_GF 1 841 842 843 #define WLC_N_BW_20ALL 0 844 #define WLC_N_BW_40ALL 1 845 #define WLC_N_BW_20IN2G_40IN5G 2 846 847 848 #define WLC_N_TXRX_CHAIN0 0 849 #define WLC_N_TXRX_CHAIN1 1 850 851 852 #define WLC_N_SGI_20 0x01 853 #define WLC_N_SGI_40 0x02 854 855 856 #define PM_OFF 0 857 #define PM_MAX 1 858 #define PM_FAST 2 859 860 861 #define INTERFERE_NONE 0 862 #define NON_WLAN 1 863 #define WLAN_MANUAL 2 864 #define WLAN_AUTO 3 865 #define AUTO_ACTIVE (1 << 7) 866 867 typedef struct wl_aci_args { 868 int enter_aci_thresh; 869 int exit_aci_thresh; 870 int usec_spin; 871 int glitch_delay; 872 uint16 nphy_adcpwr_enter_thresh; 873 uint16 nphy_adcpwr_exit_thresh; 874 uint16 nphy_repeat_ctr; 875 uint16 nphy_num_samples; 876 uint16 nphy_undetect_window_sz; 877 uint16 nphy_b_energy_lo_aci; 878 uint16 nphy_b_energy_md_aci; 879 uint16 nphy_b_energy_hi_aci; 880 } wl_aci_args_t; 881 882 #define WL_ACI_ARGS_LEGACY_LENGTH 16 883 884 885 886 #define WL_ERROR_VAL 0x00000001 887 #define WL_TRACE_VAL 0x00000002 888 #define WL_PRHDRS_VAL 0x00000004 889 #define WL_PRPKT_VAL 0x00000008 890 #define WL_INFORM_VAL 0x00000010 891 #define WL_TMP_VAL 0x00000020 892 #define WL_OID_VAL 0x00000040 893 #define WL_RATE_VAL 0x00000080 894 #define WL_ASSOC_VAL 0x00000100 895 #define WL_PRUSR_VAL 0x00000200 896 #define WL_PS_VAL 0x00000400 897 #define WL_TXPWR_VAL 0x00000800 898 #define WL_PORT_VAL 0x00001000 899 #define WL_DUAL_VAL 0x00002000 900 #define WL_WSEC_VAL 0x00004000 901 #define WL_WSEC_DUMP_VAL 0x00008000 902 #define WL_LOG_VAL 0x00010000 903 #define WL_NRSSI_VAL 0x00020000 904 #define WL_LOFT_VAL 0x00040000 905 #define WL_REGULATORY_VAL 0x00080000 906 #define WL_PHYCAL_VAL 0x00100000 907 #define WL_RADAR_VAL 0x00200000 908 #define WL_MPC_VAL 0x00400000 909 #define WL_APSTA_VAL 0x00800000 910 #define WL_DFS_VAL 0x01000000 911 #define WL_BA_VAL 0x02000000 912 #define WL_MBSS_VAL 0x04000000 913 #define WL_CAC_VAL 0x08000000 914 #define WL_AMSDU_VAL 0x10000000 915 #define WL_AMPDU_VAL 0x20000000 916 #define WL_FFPLD_VAL 0x40000000 917 918 919 #define WL_DPT_VAL 0x00000001 920 #define WL_SCAN_VAL 0x00000002 921 #define WL_WOWL_VAL 0x00000004 922 #define WL_COEX_VAL 0x00000008 923 #define WL_RTDC_VAL 0x00000010 924 #define WL_BTA_VAL 0x00000040 925 926 927 #define WL_LED_NUMGPIO 16 928 929 930 #define WL_LED_OFF 0 931 #define WL_LED_ON 1 932 #define WL_LED_ACTIVITY 2 933 #define WL_LED_RADIO 3 934 #define WL_LED_ARADIO 4 935 #define WL_LED_BRADIO 5 936 #define WL_LED_BGMODE 6 937 #define WL_LED_WI1 7 938 #define WL_LED_WI2 8 939 #define WL_LED_WI3 9 940 #define WL_LED_ASSOC 10 941 #define WL_LED_INACTIVE 11 942 #define WL_LED_ASSOCACT 12 943 #define WL_LED_NUMBEHAVIOR 13 944 945 946 #define WL_LED_BEH_MASK 0x7f 947 #define WL_LED_AL_MASK 0x80 948 949 950 #define WL_NUMCHANNELS 64 951 #define WL_NUMCHANSPECS 100 952 953 954 #define WL_WDS_WPA_ROLE_AUTH 0 955 #define WL_WDS_WPA_ROLE_SUP 1 956 #define WL_WDS_WPA_ROLE_AUTO 255 957 958 959 #define WL_EVENTING_MASK_LEN 16 960 961 962 #define VNDR_IE_CMD_LEN 4 963 964 965 #define VNDR_IE_BEACON_FLAG 0x1 966 #define VNDR_IE_PRBRSP_FLAG 0x2 967 #define VNDR_IE_ASSOCRSP_FLAG 0x4 968 #define VNDR_IE_AUTHRSP_FLAG 0x8 969 #define VNDR_IE_PRBREQ_FLAG 0x10 970 #define VNDR_IE_ASSOCREQ_FLAG 0x20 971 #define VNDR_IE_CUSTOM_FLAG 0x100 972 973 #define VNDR_IE_INFO_HDR_LEN (sizeof(uint32)) 974 975 typedef struct { 976 uint32 pktflag; 977 vndr_ie_t vndr_ie_data; 978 } vndr_ie_info_t; 979 980 typedef struct { 981 int iecount; 982 vndr_ie_info_t vndr_ie_list[1]; 983 } vndr_ie_buf_t; 984 985 typedef struct { 986 char cmd[VNDR_IE_CMD_LEN]; 987 vndr_ie_buf_t vndr_ie_buffer; 988 } vndr_ie_setbuf_t; 989 990 991 992 993 #define WL_JOIN_PREF_RSSI 1 994 #define WL_JOIN_PREF_WPA 2 995 #define WL_JOIN_PREF_BAND 3 996 997 998 #define WLJP_BAND_ASSOC_PREF 255 999 1000 1001 #define WL_WPA_ACP_MCS_ANY "\x00\x00\x00\x00" 1002 1003 struct tsinfo_arg { 1004 uint8 octets[3]; 1005 }; 1006 1007 1008 #define NFIFO 6 1009 1010 #define WL_CNT_T_VERSION 5 1011 #define WL_CNT_EXT_T_VERSION 1 1012 1013 typedef struct { 1014 uint16 version; 1015 uint16 length; 1016 1017 1018 uint32 txframe; 1019 uint32 txbyte; 1020 uint32 txretrans; 1021 uint32 txerror; 1022 uint32 txctl; 1023 uint32 txprshort; 1024 uint32 txserr; 1025 uint32 txnobuf; 1026 uint32 txnoassoc; 1027 uint32 txrunt; 1028 uint32 txchit; 1029 uint32 txcmiss; 1030 1031 1032 uint32 txuflo; 1033 uint32 txphyerr; 1034 uint32 txphycrs; 1035 1036 1037 uint32 rxframe; 1038 uint32 rxbyte; 1039 uint32 rxerror; 1040 uint32 rxctl; 1041 uint32 rxnobuf; 1042 uint32 rxnondata; 1043 uint32 rxbadds; 1044 uint32 rxbadcm; 1045 uint32 rxfragerr; 1046 uint32 rxrunt; 1047 uint32 rxgiant; 1048 uint32 rxnoscb; 1049 uint32 rxbadproto; 1050 uint32 rxbadsrcmac; 1051 uint32 rxbadda; 1052 uint32 rxfilter; 1053 1054 1055 uint32 rxoflo; 1056 uint32 rxuflo[NFIFO]; 1057 1058 uint32 d11cnt_txrts_off; 1059 uint32 d11cnt_rxcrc_off; 1060 uint32 d11cnt_txnocts_off; 1061 1062 1063 uint32 dmade; 1064 uint32 dmada; 1065 uint32 dmape; 1066 uint32 reset; 1067 uint32 tbtt; 1068 uint32 txdmawar; 1069 uint32 pkt_callback_reg_fail; 1070 1071 1072 uint32 txallfrm; 1073 uint32 txrtsfrm; 1074 uint32 txctsfrm; 1075 uint32 txackfrm; 1076 uint32 txdnlfrm; 1077 uint32 txbcnfrm; 1078 uint32 txfunfl[8]; 1079 uint32 txtplunfl; 1080 uint32 txphyerror; 1081 uint32 rxfrmtoolong; 1082 uint32 rxfrmtooshrt; 1083 uint32 rxinvmachdr; 1084 uint32 rxbadfcs; 1085 uint32 rxbadplcp; 1086 uint32 rxcrsglitch; 1087 uint32 rxstrt; 1088 uint32 rxdfrmucastmbss; 1089 uint32 rxmfrmucastmbss; 1090 uint32 rxcfrmucast; 1091 uint32 rxrtsucast; 1092 uint32 rxctsucast; 1093 uint32 rxackucast; 1094 uint32 rxdfrmocast; 1095 uint32 rxmfrmocast; 1096 uint32 rxcfrmocast; 1097 uint32 rxrtsocast; 1098 uint32 rxctsocast; 1099 uint32 rxdfrmmcast; 1100 uint32 rxmfrmmcast; 1101 uint32 rxcfrmmcast; 1102 uint32 rxbeaconmbss; 1103 uint32 rxdfrmucastobss; 1104 uint32 rxbeaconobss; 1105 uint32 rxrsptmout; 1106 uint32 bcntxcancl; 1107 uint32 rxf0ovfl; 1108 uint32 rxf1ovfl; 1109 uint32 rxf2ovfl; 1110 uint32 txsfovfl; 1111 uint32 pmqovfl; 1112 uint32 rxcgprqfrm; 1113 uint32 rxcgprsqovfl; 1114 uint32 txcgprsfail; 1115 uint32 txcgprssuc; 1116 uint32 prs_timeout; 1117 uint32 rxnack; 1118 uint32 frmscons; 1119 uint32 txnack; 1120 uint32 txglitch_nack; 1121 uint32 txburst; 1122 1123 1124 uint32 txfrag; 1125 uint32 txmulti; 1126 uint32 txfail; 1127 uint32 txretry; 1128 uint32 txretrie; 1129 uint32 rxdup; 1130 uint32 txrts; 1131 uint32 txnocts; 1132 uint32 txnoack; 1133 uint32 rxfrag; 1134 uint32 rxmulti; 1135 uint32 rxcrc; 1136 uint32 txfrmsnt; 1137 uint32 rxundec; 1138 1139 1140 uint32 tkipmicfaill; 1141 uint32 tkipcntrmsr; 1142 uint32 tkipreplay; 1143 uint32 ccmpfmterr; 1144 uint32 ccmpreplay; 1145 uint32 ccmpundec; 1146 uint32 fourwayfail; 1147 uint32 wepundec; 1148 uint32 wepicverr; 1149 uint32 decsuccess; 1150 uint32 tkipicverr; 1151 uint32 wepexcluded; 1152 1153 uint32 txchanrej; 1154 uint32 psmwds; 1155 uint32 phywatchdog; 1156 1157 1158 uint32 prq_entries_handled; 1159 uint32 prq_undirected_entries; 1160 uint32 prq_bad_entries; 1161 uint32 atim_suppress_count; 1162 uint32 bcn_template_not_ready; 1163 uint32 bcn_template_not_ready_done; 1164 uint32 late_tbtt_dpc; 1165 1166 1167 uint32 rx1mbps; 1168 uint32 rx2mbps; 1169 uint32 rx5mbps5; 1170 uint32 rx6mbps; 1171 uint32 rx9mbps; 1172 uint32 rx11mbps; 1173 uint32 rx12mbps; 1174 uint32 rx18mbps; 1175 uint32 rx24mbps; 1176 uint32 rx36mbps; 1177 uint32 rx48mbps; 1178 uint32 rx54mbps; 1179 uint32 rx108mbps; 1180 uint32 rx162mbps; 1181 uint32 rx216mbps; 1182 uint32 rx270mbps; 1183 uint32 rx324mbps; 1184 uint32 rx378mbps; 1185 uint32 rx432mbps; 1186 uint32 rx486mbps; 1187 uint32 rx540mbps; 1188 1189 uint32 pktengrxducast; 1190 uint32 pktengrxdmcast; 1191 } wl_cnt_t; 1192 1193 typedef struct { 1194 uint16 version; 1195 uint16 length; 1196 1197 uint32 rxampdu_sgi; 1198 uint32 rxampdu_stbc; 1199 uint32 rxmpdu_sgi; 1200 uint32 rxmpdu_stbc; 1201 uint32 rxmcs0_40M; 1202 uint32 rxmcs1_40M; 1203 uint32 rxmcs2_40M; 1204 uint32 rxmcs3_40M; 1205 uint32 rxmcs4_40M; 1206 uint32 rxmcs5_40M; 1207 uint32 rxmcs6_40M; 1208 uint32 rxmcs7_40M; 1209 uint32 rxmcs32_40M; 1210 1211 uint32 txfrmsnt_20Mlo; 1212 uint32 txfrmsnt_20Mup; 1213 uint32 txfrmsnt_40M; 1214 1215 uint32 rx_20ul; 1216 } wl_cnt_ext_t; 1217 1218 #define WL_RXDIV_STATS_T_VERSION 1 1219 typedef struct { 1220 uint16 version; 1221 uint16 length; 1222 1223 uint32 rxant[4]; 1224 } wl_rxdiv_stats_t; 1225 1226 #define WL_DELTA_STATS_T_VERSION 1 1227 1228 typedef struct { 1229 uint16 version; 1230 uint16 length; 1231 1232 1233 uint32 txframe; 1234 uint32 txbyte; 1235 uint32 txretrans; 1236 uint32 txfail; 1237 1238 1239 uint32 rxframe; 1240 uint32 rxbyte; 1241 1242 1243 uint32 rx1mbps; 1244 uint32 rx2mbps; 1245 uint32 rx5mbps5; 1246 uint32 rx6mbps; 1247 uint32 rx9mbps; 1248 uint32 rx11mbps; 1249 uint32 rx12mbps; 1250 uint32 rx18mbps; 1251 uint32 rx24mbps; 1252 uint32 rx36mbps; 1253 uint32 rx48mbps; 1254 uint32 rx54mbps; 1255 uint32 rx108mbps; 1256 uint32 rx162mbps; 1257 uint32 rx216mbps; 1258 uint32 rx270mbps; 1259 uint32 rx324mbps; 1260 uint32 rx378mbps; 1261 uint32 rx432mbps; 1262 uint32 rx486mbps; 1263 uint32 rx540mbps; 1264 } wl_delta_stats_t; 1265 1266 #define WL_WME_CNT_VERSION 1 1267 1268 typedef struct { 1269 uint32 packets; 1270 uint32 bytes; 1271 } wl_traffic_stats_t; 1272 1273 typedef struct { 1274 uint16 version; 1275 uint16 length; 1276 1277 wl_traffic_stats_t tx[AC_COUNT]; 1278 wl_traffic_stats_t tx_failed[AC_COUNT]; 1279 wl_traffic_stats_t rx[AC_COUNT]; 1280 wl_traffic_stats_t rx_failed[AC_COUNT]; 1281 1282 wl_traffic_stats_t forward[AC_COUNT]; 1283 1284 wl_traffic_stats_t tx_expired[AC_COUNT]; 1285 1286 } wl_wme_cnt_t; 1287 1288 1289 1290 #define WLC_ROAM_TRIGGER_DEFAULT 0 1291 #define WLC_ROAM_TRIGGER_BANDWIDTH 1 1292 #define WLC_ROAM_TRIGGER_DISTANCE 2 1293 #define WLC_ROAM_TRIGGER_MAX_VALUE 2 1294 1295 1296 enum { 1297 PFN_LIST_ORDER, 1298 PFN_RSSI 1299 }; 1300 1301 enum { 1302 DISABLE, 1303 ENABLE 1304 }; 1305 1306 #define SORT_CRITERIA_BIT 0 1307 #define AUTO_NET_SWITCH_BIT 1 1308 #define ENABLE_BKGRD_SCAN_BIT 2 1309 #define IMMEDIATE_SCAN_BIT 3 1310 #define AUTO_CONNECT_BIT 4 1311 1312 #define SORT_CRITERIA_MASK 0x01 1313 #define AUTO_NET_SWITCH_MASK 0x02 1314 #define ENABLE_BKGRD_SCAN_MASK 0x04 1315 #define IMMEDIATE_SCAN_MASK 0x08 1316 #define AUTO_CONNECT_MASK 0x10 1317 1318 #define PFN_VERSION 1 1319 1320 #define MAX_PFN_LIST_COUNT 16 1321 1322 1323 typedef struct wl_pfn_param { 1324 int32 version; 1325 int32 scan_freq; 1326 int32 lost_network_timeout; 1327 int16 flags; 1328 int16 rssi_margin; 1329 } wl_pfn_param_t; 1330 1331 typedef struct wl_pfn { 1332 wlc_ssid_t ssid; 1333 int32 bss_type; 1334 int32 infra; 1335 int32 auth; 1336 uint32 wpa_auth; 1337 int32 wsec; 1338 #ifdef WLPFN_AUTO_CONNECT 1339 union { 1340 wl_wsec_key_t sec_key; 1341 wsec_pmk_t wpa_sec_key; 1342 } pfn_security; 1343 #endif 1344 } wl_pfn_t; 1345 1346 1347 #define TOE_TX_CSUM_OL 0x00000001 1348 #define TOE_RX_CSUM_OL 0x00000002 1349 1350 1351 #define TOE_ERRTEST_TX_CSUM 0x00000001 1352 #define TOE_ERRTEST_RX_CSUM 0x00000002 1353 #define TOE_ERRTEST_RX_CSUM2 0x00000004 1354 1355 struct toe_ol_stats_t { 1356 1357 uint32 tx_summed; 1358 1359 1360 uint32 tx_iph_fill; 1361 uint32 tx_tcp_fill; 1362 uint32 tx_udp_fill; 1363 uint32 tx_icmp_fill; 1364 1365 1366 uint32 rx_iph_good; 1367 uint32 rx_iph_bad; 1368 uint32 rx_tcp_good; 1369 uint32 rx_tcp_bad; 1370 uint32 rx_udp_good; 1371 uint32 rx_udp_bad; 1372 uint32 rx_icmp_good; 1373 uint32 rx_icmp_bad; 1374 1375 1376 uint32 tx_tcp_errinj; 1377 uint32 tx_udp_errinj; 1378 uint32 tx_icmp_errinj; 1379 1380 1381 uint32 rx_tcp_errinj; 1382 uint32 rx_udp_errinj; 1383 uint32 rx_icmp_errinj; 1384 }; 1385 1386 1387 #define ARP_OL_AGENT 0x00000001 1388 #define ARP_OL_SNOOP 0x00000002 1389 #define ARP_OL_HOST_AUTO_REPLY 0x00000004 1390 #define ARP_OL_PEER_AUTO_REPLY 0x00000008 1391 1392 1393 #define ARP_ERRTEST_REPLY_PEER 0x1 1394 #define ARP_ERRTEST_REPLY_HOST 0x2 1395 1396 #define ARP_MULTIHOMING_MAX 8 1397 1398 1399 struct arp_ol_stats_t { 1400 uint32 host_ip_entries; 1401 uint32 host_ip_overflow; 1402 1403 uint32 arp_table_entries; 1404 uint32 arp_table_overflow; 1405 1406 uint32 host_request; 1407 uint32 host_reply; 1408 uint32 host_service; 1409 1410 uint32 peer_request; 1411 uint32 peer_request_drop; 1412 uint32 peer_reply; 1413 uint32 peer_reply_drop; 1414 uint32 peer_service; 1415 }; 1416 1417 1418 1419 1420 1421 typedef struct wl_keep_alive_pkt { 1422 uint32 period_msec; 1423 uint16 len_bytes; 1424 uint8 data[1]; 1425 } wl_keep_alive_pkt_t; 1426 1427 #define WL_KEEP_ALIVE_FIXED_LEN OFFSETOF(wl_keep_alive_pkt_t, data) 1428 1429 1430 1431 1432 1433 typedef enum wl_pkt_filter_type { 1434 WL_PKT_FILTER_TYPE_PATTERN_MATCH 1435 } wl_pkt_filter_type_t; 1436 1437 #define WL_PKT_FILTER_TYPE wl_pkt_filter_type_t 1438 1439 1440 typedef struct wl_pkt_filter_pattern { 1441 uint32 offset; 1442 uint32 size_bytes; 1443 uint8 mask_and_pattern[1]; 1444 } wl_pkt_filter_pattern_t; 1445 1446 1447 typedef struct wl_pkt_filter { 1448 uint32 id; 1449 uint32 type; 1450 uint32 negate_match; 1451 union { 1452 wl_pkt_filter_pattern_t pattern; 1453 } u; 1454 } wl_pkt_filter_t; 1455 1456 #define WL_PKT_FILTER_FIXED_LEN OFFSETOF(wl_pkt_filter_t, u) 1457 #define WL_PKT_FILTER_PATTERN_FIXED_LEN OFFSETOF(wl_pkt_filter_pattern_t, mask_and_pattern) 1458 1459 1460 typedef struct wl_pkt_filter_enable { 1461 uint32 id; 1462 uint32 enable; 1463 } wl_pkt_filter_enable_t; 1464 1465 1466 typedef struct wl_pkt_filter_list { 1467 uint32 num; 1468 wl_pkt_filter_t filter[1]; 1469 } wl_pkt_filter_list_t; 1470 1471 #define WL_PKT_FILTER_LIST_FIXED_LEN OFFSETOF(wl_pkt_filter_list_t, filter) 1472 1473 1474 typedef struct wl_pkt_filter_stats { 1475 uint32 num_pkts_matched; 1476 uint32 num_pkts_forwarded; 1477 uint32 num_pkts_discarded; 1478 } wl_pkt_filter_stats_t; 1479 1480 1481 typedef struct wl_seq_cmd_ioctl { 1482 uint32 cmd; 1483 uint32 len; 1484 } wl_seq_cmd_ioctl_t; 1485 1486 #define WL_SEQ_CMD_ALIGN_BYTES 4 1487 1488 1489 #define WL_SEQ_CMDS_GET_IOCTL_FILTER(cmd) \ 1490 (((cmd) == WLC_GET_MAGIC) || \ 1491 ((cmd) == WLC_GET_VERSION) || \ 1492 ((cmd) == WLC_GET_AP) || \ 1493 ((cmd) == WLC_GET_INSTANCE)) 1494 1495 1496 1497 #define WL_PKTENG_PER_TX_START 0x01 1498 #define WL_PKTENG_PER_TX_STOP 0x02 1499 #define WL_PKTENG_PER_RX_START 0x04 1500 #define WL_PKTENG_PER_RX_WITH_ACK_START 0x05 1501 #define WL_PKTENG_PER_TX_WITH_ACK_START 0x06 1502 #define WL_PKTENG_PER_RX_STOP 0x08 1503 #define WL_PKTENG_PER_MASK 0xff 1504 1505 #define WL_PKTENG_SYNCHRONOUS 0x100 1506 1507 typedef struct wl_pkteng { 1508 uint32 flags; 1509 uint32 delay; 1510 uint32 nframes; 1511 uint32 length; 1512 uint8 seqno; 1513 struct ether_addr dest; 1514 struct ether_addr src; 1515 } wl_pkteng_t; 1516 1517 #define NUM_80211b_RATES 4 1518 #define NUM_80211ag_RATES 8 1519 #define NUM_80211n_RATES 32 1520 #define NUM_80211_RATES (NUM_80211b_RATES+NUM_80211ag_RATES+NUM_80211n_RATES) 1521 typedef struct wl_pkteng_stats { 1522 uint32 lostfrmcnt; 1523 int32 rssi; 1524 int32 snr; 1525 uint16 rxpktcnt[NUM_80211_RATES+1]; 1526 } wl_pkteng_stats_t; 1527 1528 #define WL_WOWL_MAGIC (1 << 0) 1529 #define WL_WOWL_NET (1 << 1) 1530 #define WL_WOWL_DIS (1 << 2) 1531 #define WL_WOWL_RETR (1 << 3) 1532 #define WL_WOWL_BCN (1 << 4) 1533 #define WL_WOWL_TST (1 << 5) 1534 #define WL_WOWL_BCAST (1 << 15) 1535 1536 #define MAGIC_PKT_MINLEN 102 1537 1538 typedef struct { 1539 uint masksize; 1540 uint offset; 1541 uint patternoffset; 1542 uint patternsize; 1543 1544 1545 } wl_wowl_pattern_t; 1546 1547 typedef struct { 1548 uint count; 1549 wl_wowl_pattern_t pattern[1]; 1550 } wl_wowl_pattern_list_t; 1551 1552 typedef struct { 1553 uint8 pci_wakeind; 1554 uint16 ucode_wakeind; 1555 } wl_wowl_wakeind_t; 1556 1557 1558 typedef struct wl_txrate_class { 1559 uint8 init_rate; 1560 uint8 min_rate; 1561 uint8 max_rate; 1562 } wl_txrate_class_t; 1563 1564 1565 1566 1567 #define WLC_OBSS_SCAN_PASSIVE_DWELL_DEFAULT 100 1568 #define WLC_OBSS_SCAN_PASSIVE_DWELL_MIN 5 1569 #define WLC_OBSS_SCAN_PASSIVE_DWELL_MAX 1000 1570 #define WLC_OBSS_SCAN_ACTIVE_DWELL_DEFAULT 20 1571 #define WLC_OBSS_SCAN_ACTIVE_DWELL_MIN 10 1572 #define WLC_OBSS_SCAN_ACTIVE_DWELL_MAX 1000 1573 #define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_DEFAULT 300 1574 #define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_MIN 10 1575 #define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_MAX 900 1576 #define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_DEFAULT 5 1577 #define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_MIN 5 1578 #define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_MAX 100 1579 #define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_DEFAULT 200 1580 #define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_MIN 200 1581 #define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_MAX 10000 1582 #define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_DEFAULT 20 1583 #define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_MIN 20 1584 #define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_MAX 10000 1585 #define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_DEFAULT 25 1586 #define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_MIN 0 1587 #define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_MAX 100 1588 1589 1590 typedef struct wl_obss_scan_arg { 1591 int16 passive_dwell; 1592 int16 active_dwell; 1593 int16 bss_widthscan_interval; 1594 int16 passive_total; 1595 int16 active_total; 1596 int16 chanwidth_transition_delay; 1597 int16 activity_threshold; 1598 } wl_obss_scan_arg_t; 1599 #define WL_OBSS_SCAN_PARAM_LEN sizeof(wl_obss_scan_arg_t) 1600 #define WL_MIN_NUM_OBSS_SCAN_ARG 7 1601 1602 #define WL_COEX_INFO_MASK 0x07 1603 #define WL_COEX_INFO_REQ 0x01 1604 #define WL_COEX_40MHZ_INTOLERANT 0x02 1605 #define WL_COEX_WIDTH20 0x04 1606 1607 typedef struct wl_action_obss_coex_req { 1608 uint8 info; 1609 uint8 num; 1610 uint8 ch_list[1]; 1611 } wl_action_obss_coex_req_t; 1612 1613 1614 #define MAX_RSSI_LEVELS 8 1615 1616 1617 typedef struct wl_rssi_event { 1618 1619 uint32 rate_limit_msec; 1620 1621 uint8 num_rssi_levels; 1622 1623 int8 rssi_levels[MAX_RSSI_LEVELS]; 1624 } wl_rssi_event_t; 1625 1626 1627 1628 #define WLFEATURE_DISABLE_11N 0x00000001 1629 #define WLFEATURE_DISABLE_11N_STBC_TX 0x00000002 1630 #define WLFEATURE_DISABLE_11N_STBC_RX 0x00000004 1631 #define WLFEATURE_DISABLE_11N_SGI_TX 0x00000008 1632 #define WLFEATURE_DISABLE_11N_SGI_RX 0x00000010 1633 #define WLFEATURE_DISABLE_11N_AMPDU_TX 0x00000020 1634 #define WLFEATURE_DISABLE_11N_AMPDU_RX 0x00000040 1635 #define WLFEATURE_DISABLE_11N_GF 0x00000080 1636 1637 1638 1639 #include <packed_section_end.h> 1640 1641 1642 #include <packed_section_start.h> 1643 1644 1645 typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_hdr { 1646 struct ether_addr staAddr; 1647 uint16 ieLen; 1648 } BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_hdr_t; 1649 1650 typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_data { 1651 sta_prbreq_wps_ie_hdr_t hdr; 1652 uint8 ieData[1]; 1653 } BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_data_t; 1654 1655 typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_list { 1656 uint32 totLen; 1657 uint8 ieDataList[1]; 1658 } BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_list_t; 1659 1660 1661 #include <packed_section_end.h> 1662 1663 #endif 1664