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