2 * Custom OID/ioctl definitions for
3 * Broadcom 802.11abg Networking Device Driver
5 * Definitions subject to change without notice.
7 * Copyright (C) 1999-2010, Broadcom Corporation
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:
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.
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.
27 * $Id: wlioctl.h,v 1.601.4.15.2.14.2.62.4.1 2010/11/17 03:09:28 Exp $
35 #include <proto/ethernet.h>
36 #include <proto/bcmeth.h>
37 #include <proto/bcmevent.h>
38 #include <proto/802.11.h>
43 #define ACTION_FRAME_SIZE 1040
45 typedef struct wl_action_frame {
49 uint8 data[ACTION_FRAME_SIZE];
52 #define WL_WIFI_ACTION_FRAME_SIZE sizeof(struct wl_action_frame)
55 #define BWL_DEFAULT_PACKING
56 #include <packed_section_start.h>
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
68 typedef struct ssid_info
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
91 #define WL_BSS_INFO_VERSION 108
94 typedef struct wl_bss_info {
97 struct ether_addr BSSID;
115 uint32 reserved32[1];
118 uint8 basic_mcs[MCSSET_LEN];
126 typedef struct wlc_ssid {
132 #define WL_BSSTYPE_INFRA 1
133 #define WL_BSSTYPE_INDEP 0
134 #define WL_BSSTYPE_ANY 2
137 #define WL_SCANFLAGS_PASSIVE 0x01
138 #define WL_SCANFLAGS_PROHIBITED 0x04
140 typedef struct wl_scan_params {
142 struct ether_addr bssid;
150 uint16 channel_list[1];
153 #define WL_SCAN_PARAMS_FIXED_SIZE 64
156 #define WL_SCAN_PARAMS_COUNT_MASK 0x0000ffff
157 #define WL_SCAN_PARAMS_NSSID_SHIFT 16
159 #define WL_SCAN_ACTION_START 1
160 #define WL_SCAN_ACTION_CONTINUE 2
161 #define WL_SCAN_ACTION_ABORT 3
163 #define ISCAN_REQ_VERSION 1
166 typedef struct wl_iscan_params {
169 uint16 scan_duration;
170 wl_scan_params_t params;
173 #define WL_ISCAN_PARAMS_FIXED_SIZE (OFFSETOF(wl_iscan_params_t, params) + sizeof(wlc_ssid_t))
175 typedef struct wl_scan_results {
179 wl_bss_info_t bss_info[1];
182 #define WL_SCAN_RESULTS_FIXED_SIZE 12
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
191 #define ESCAN_REQ_VERSION 1
193 typedef struct wl_escan_params {
197 wl_scan_params_t params;
200 #define WL_ESCAN_PARAMS_FIXED_SIZE (OFFSETOF(wl_escan_params_t, params) + sizeof(wlc_ssid_t))
202 typedef struct wl_escan_result {
207 wl_bss_info_t bss_info[1];
210 #define WL_ESCAN_RESULTS_FIXED_SIZE (sizeof(wl_escan_result_t) - sizeof(wl_bss_info_t))
213 typedef struct wl_iscan_results {
215 wl_scan_results_t results;
216 } wl_iscan_results_t;
218 #define WL_ISCAN_RESULTS_FIXED_SIZE \
219 (WL_SCAN_RESULTS_FIXED_SIZE + OFFSETOF(wl_iscan_results_t, results))
221 #define WL_NUMRATES 16
222 typedef struct wl_rateset {
224 uint8 rates[WL_NUMRATES];
228 typedef struct wl_uint32_list {
236 typedef struct wl_assoc_params {
237 struct ether_addr bssid;
240 chanspec_t chanspec_list[1];
242 #define WL_ASSOC_PARAMS_FIXED_SIZE (sizeof(wl_assoc_params_t) - sizeof(chanspec_t))
245 typedef wl_assoc_params_t wl_reassoc_params_t;
246 #define WL_REASSOC_PARAMS_FIXED_SIZE WL_ASSOC_PARAMS_FIXED_SIZE
249 typedef struct wl_join_params {
251 wl_assoc_params_t params;
253 #define WL_JOIN_PARAMS_FIXED_SIZE (sizeof(wl_join_params_t) - sizeof(chanspec_t))
255 #define WLC_CNTRY_BUF_SZ 4
258 typedef enum sup_auth_status {
260 WLC_SUP_DISCONNECTED = 0,
263 WLC_SUP_AUTHENTICATING,
264 WLC_SUP_AUTHENTICATED,
268 WLC_SUP_LAST_BASIC_STATE,
271 WLC_SUP_KEYXCHANGE_WAIT_M1 = WLC_SUP_AUTHENTICATED,
273 WLC_SUP_KEYXCHANGE_PREP_M2 = WLC_SUP_KEYXCHANGE,
275 WLC_SUP_KEYXCHANGE_WAIT_M3 = WLC_SUP_LAST_BASIC_STATE,
277 WLC_SUP_KEYXCHANGE_PREP_M4,
278 WLC_SUP_KEYXCHANGE_WAIT_G1,
279 WLC_SUP_KEYXCHANGE_PREP_G2
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
293 #define WSEC_GEN_MIC_ERROR 0x0001
294 #define WSEC_GEN_REPLAY 0x0002
295 #define WSEC_GEN_ICV_ERROR 0x0004
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)
303 typedef struct wl_wsec_key {
306 uint8 data[DOT11_MAX_KEY_SIZE];
320 struct ether_addr ea;
323 #define WSEC_MIN_PSK_LEN 8
324 #define WSEC_MAX_PSK_LEN 64
327 #define WSEC_PASSPHRASE (1<<0)
333 uint8 key[WSEC_MAX_PSK_LEN];
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
345 #define WPA_AUTH_DISABLED 0x0000
346 #define WPA_AUTH_NONE 0x0001
347 #define WPA_AUTH_UNSPECIFIED 0x0002
348 #define WPA_AUTH_PSK 0x0004
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
356 #define WPA_AUTH_PFN_ANY 0xffffffff
361 typedef struct _pmkid {
362 struct ether_addr BSSID;
363 uint8 PMKID[WPA2_PMKID_LEN];
366 typedef struct _pmkid_list {
371 typedef struct _pmkid_cand {
372 struct ether_addr BSSID;
376 typedef struct _pmkid_cand_list {
378 pmkid_cand_t pmkid_cand[1];
386 struct ether_addr ea;
391 typedef struct channel_info {
400 struct ether_addr ea[1];
404 typedef struct get_pktcnt {
409 uint rx_ocast_good_pkt;
413 typedef struct wl_ioctl {
424 #define WLC_IOCTL_MAGIC 0x14e46c77
427 #define WLC_IOCTL_VERSION 1
429 #define WLC_IOCTL_MAXLEN 8192
430 #define WLC_IOCTL_SMLEN 256
431 #define WLC_IOCTL_MEDLEN 1536
435 #define WLC_GET_MAGIC 0
436 #define WLC_GET_VERSION 1
439 #define WLC_GET_LOOP 4
440 #define WLC_SET_LOOP 5
442 #define WLC_GET_MSGLEVEL 7
443 #define WLC_SET_MSGLEVEL 8
444 #define WLC_GET_PROMISC 9
445 #define WLC_SET_PROMISC 10
447 #define WLC_GET_RATE 12
449 #define WLC_GET_INSTANCE 14
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
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
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
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
496 #define WLC_GET_TXANT 61
497 #define WLC_SET_TXANT 62
498 #define WLC_GET_ANTDIV 63
499 #define WLC_SET_ANTDIV 64
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
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
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
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
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
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
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
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
670 #define WLC_GET_KEY_PRIMARY 235
671 #define WLC_SET_KEY_PRIMARY 236
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
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
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
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)
752 #define WL_TXPWR_OVERRIDE (1U<<31)
754 #define WL_PHY_PAVARS_LEN 6
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
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
777 #define WL_DIAGERR_MEMORY_TIMEOUT 11
778 #define WL_DIAGERR_MEMORY_BADPATTERN 12
781 #define WLC_BAND_AUTO 0
782 #define WLC_BAND_5G 1
783 #define WLC_BAND_2G 2
784 #define WLC_BAND_ALL 3
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
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
802 #define WLC_MACMODE_DISABLED 0
803 #define WLC_MACMODE_DENY 1
804 #define WLC_MACMODE_ALLOW 2
807 #define GMODE_LEGACY_B 0
810 #define GMODE_B_DEFERRED 3
811 #define GMODE_PERFORMANCE 4
816 #define WLC_PLCP_AUTO -1
817 #define WLC_PLCP_SHORT 0
818 #define WLC_PLCP_LONG 1
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
828 #define WLC_PROTECTION_CTL_OFF 0
829 #define WLC_PROTECTION_CTL_LOCAL 1
830 #define WLC_PROTECTION_CTL_OVERLAP 2
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
839 #define WLC_N_PREAMBLE_MIXEDMODE 0
840 #define WLC_N_PREAMBLE_GF 1
843 #define WLC_N_BW_20ALL 0
844 #define WLC_N_BW_40ALL 1
845 #define WLC_N_BW_20IN2G_40IN5G 2
848 #define WLC_N_TXRX_CHAIN0 0
849 #define WLC_N_TXRX_CHAIN1 1
852 #define WLC_N_SGI_20 0x01
853 #define WLC_N_SGI_40 0x02
860 #define LISTEN_INTERVAL 20
862 #define INTERFERE_NONE 0
864 #define WLAN_MANUAL 2
866 #define AUTO_ACTIVE (1 << 7)
868 typedef struct wl_aci_args {
869 int enter_aci_thresh;
873 uint16 nphy_adcpwr_enter_thresh;
874 uint16 nphy_adcpwr_exit_thresh;
875 uint16 nphy_repeat_ctr;
876 uint16 nphy_num_samples;
877 uint16 nphy_undetect_window_sz;
878 uint16 nphy_b_energy_lo_aci;
879 uint16 nphy_b_energy_md_aci;
880 uint16 nphy_b_energy_hi_aci;
883 #define WL_ACI_ARGS_LEGACY_LENGTH 16
887 #define WL_ERROR_VAL 0x00000001
888 #define WL_TRACE_VAL 0x00000002
889 #define WL_PRHDRS_VAL 0x00000004
890 #define WL_PRPKT_VAL 0x00000008
891 #define WL_INFORM_VAL 0x00000010
892 #define WL_TMP_VAL 0x00000020
893 #define WL_OID_VAL 0x00000040
894 #define WL_RATE_VAL 0x00000080
895 #define WL_ASSOC_VAL 0x00000100
896 #define WL_PRUSR_VAL 0x00000200
897 #define WL_PS_VAL 0x00000400
898 #define WL_TXPWR_VAL 0x00000800
899 #define WL_PORT_VAL 0x00001000
900 #define WL_DUAL_VAL 0x00002000
901 #define WL_WSEC_VAL 0x00004000
902 #define WL_WSEC_DUMP_VAL 0x00008000
903 #define WL_LOG_VAL 0x00010000
904 #define WL_NRSSI_VAL 0x00020000
905 #define WL_LOFT_VAL 0x00040000
906 #define WL_REGULATORY_VAL 0x00080000
907 #define WL_PHYCAL_VAL 0x00100000
908 #define WL_RADAR_VAL 0x00200000
909 #define WL_MPC_VAL 0x00400000
910 #define WL_APSTA_VAL 0x00800000
911 #define WL_DFS_VAL 0x01000000
912 #define WL_BA_VAL 0x02000000
913 #define WL_MBSS_VAL 0x04000000
914 #define WL_CAC_VAL 0x08000000
915 #define WL_AMSDU_VAL 0x10000000
916 #define WL_AMPDU_VAL 0x20000000
917 #define WL_FFPLD_VAL 0x40000000
920 #define WL_DPT_VAL 0x00000001
921 #define WL_SCAN_VAL 0x00000002
922 #define WL_WOWL_VAL 0x00000004
923 #define WL_COEX_VAL 0x00000008
924 #define WL_RTDC_VAL 0x00000010
925 #define WL_BTA_VAL 0x00000040
928 #define WL_LED_NUMGPIO 16
933 #define WL_LED_ACTIVITY 2
934 #define WL_LED_RADIO 3
935 #define WL_LED_ARADIO 4
936 #define WL_LED_BRADIO 5
937 #define WL_LED_BGMODE 6
941 #define WL_LED_ASSOC 10
942 #define WL_LED_INACTIVE 11
943 #define WL_LED_ASSOCACT 12
944 #define WL_LED_NUMBEHAVIOR 13
947 #define WL_LED_BEH_MASK 0x7f
948 #define WL_LED_AL_MASK 0x80
951 #define WL_NUMCHANNELS 64
952 #define WL_NUMCHANSPECS 100
955 #define WL_WDS_WPA_ROLE_AUTH 0
956 #define WL_WDS_WPA_ROLE_SUP 1
957 #define WL_WDS_WPA_ROLE_AUTO 255
960 #define WL_EVENTING_MASK_LEN 16
963 #define VNDR_IE_CMD_LEN 4
966 #define VNDR_IE_BEACON_FLAG 0x1
967 #define VNDR_IE_PRBRSP_FLAG 0x2
968 #define VNDR_IE_ASSOCRSP_FLAG 0x4
969 #define VNDR_IE_AUTHRSP_FLAG 0x8
970 #define VNDR_IE_PRBREQ_FLAG 0x10
971 #define VNDR_IE_ASSOCREQ_FLAG 0x20
972 #define VNDR_IE_CUSTOM_FLAG 0x100
974 #define VNDR_IE_INFO_HDR_LEN (sizeof(uint32))
978 vndr_ie_t vndr_ie_data;
983 vndr_ie_info_t vndr_ie_list[1];
987 char cmd[VNDR_IE_CMD_LEN];
988 vndr_ie_buf_t vndr_ie_buffer;
994 #define WL_JOIN_PREF_RSSI 1
995 #define WL_JOIN_PREF_WPA 2
996 #define WL_JOIN_PREF_BAND 3
999 #define WLJP_BAND_ASSOC_PREF 255
1002 #define WL_WPA_ACP_MCS_ANY "\x00\x00\x00\x00"
1011 #define WL_CNT_T_VERSION 5
1012 #define WL_CNT_EXT_T_VERSION 1
1057 uint32 rxuflo[NFIFO];
1059 uint32 d11cnt_txrts_off;
1060 uint32 d11cnt_rxcrc_off;
1061 uint32 d11cnt_txnocts_off;
1070 uint32 pkt_callback_reg_fail;
1082 uint32 rxfrmtoolong;
1083 uint32 rxfrmtooshrt;
1089 uint32 rxdfrmucastmbss;
1090 uint32 rxmfrmucastmbss;
1103 uint32 rxbeaconmbss;
1104 uint32 rxdfrmucastobss;
1105 uint32 rxbeaconobss;
1114 uint32 rxcgprsqovfl;
1121 uint32 txglitch_nack;
1141 uint32 tkipmicfaill;
1159 uint32 prq_entries_handled;
1160 uint32 prq_undirected_entries;
1161 uint32 prq_bad_entries;
1162 uint32 atim_suppress_count;
1163 uint32 bcn_template_not_ready;
1164 uint32 bcn_template_not_ready_done;
1165 uint32 late_tbtt_dpc;
1190 uint32 pktengrxducast;
1191 uint32 pktengrxdmcast;
1199 uint32 rxampdu_stbc;
1212 uint32 txfrmsnt_20Mlo;
1213 uint32 txfrmsnt_20Mup;
1214 uint32 txfrmsnt_40M;
1219 #define WL_RXDIV_STATS_T_VERSION 1
1227 #define WL_DELTA_STATS_T_VERSION 1
1267 #define WL_WME_CNT_VERSION 1
1272 } wl_traffic_stats_t;
1278 wl_traffic_stats_t tx[AC_COUNT];
1279 wl_traffic_stats_t tx_failed[AC_COUNT];
1280 wl_traffic_stats_t rx[AC_COUNT];
1281 wl_traffic_stats_t rx_failed[AC_COUNT];
1283 wl_traffic_stats_t forward[AC_COUNT];
1285 wl_traffic_stats_t tx_expired[AC_COUNT];
1291 #define WLC_ROAM_TRIGGER_DEFAULT 0
1292 #define WLC_ROAM_TRIGGER_BANDWIDTH 1
1293 #define WLC_ROAM_TRIGGER_DISTANCE 2
1294 #define WLC_ROAM_TRIGGER_MAX_VALUE 2
1307 #define SORT_CRITERIA_BIT 0
1308 #define AUTO_NET_SWITCH_BIT 1
1309 #define ENABLE_BKGRD_SCAN_BIT 2
1310 #define IMMEDIATE_SCAN_BIT 3
1311 #define AUTO_CONNECT_BIT 4
1313 #define SORT_CRITERIA_MASK 0x01
1314 #define AUTO_NET_SWITCH_MASK 0x02
1315 #define ENABLE_BKGRD_SCAN_MASK 0x04
1316 #define IMMEDIATE_SCAN_MASK 0x08
1317 #define AUTO_CONNECT_MASK 0x10
1319 #define PFN_VERSION 1
1321 #define MAX_PFN_LIST_COUNT 16
1324 typedef struct wl_pfn_param {
1327 int32 lost_network_timeout;
1332 typedef struct wl_pfn {
1339 #ifdef WLPFN_AUTO_CONNECT
1341 wl_wsec_key_t sec_key;
1342 wsec_pmk_t wpa_sec_key;
1348 #define TOE_TX_CSUM_OL 0x00000001
1349 #define TOE_RX_CSUM_OL 0x00000002
1352 #define TOE_ERRTEST_TX_CSUM 0x00000001
1353 #define TOE_ERRTEST_RX_CSUM 0x00000002
1354 #define TOE_ERRTEST_RX_CSUM2 0x00000004
1356 struct toe_ol_stats_t {
1364 uint32 tx_icmp_fill;
1373 uint32 rx_icmp_good;
1377 uint32 tx_tcp_errinj;
1378 uint32 tx_udp_errinj;
1379 uint32 tx_icmp_errinj;
1382 uint32 rx_tcp_errinj;
1383 uint32 rx_udp_errinj;
1384 uint32 rx_icmp_errinj;
1388 #define ARP_OL_AGENT 0x00000001
1389 #define ARP_OL_SNOOP 0x00000002
1390 #define ARP_OL_HOST_AUTO_REPLY 0x00000004
1391 #define ARP_OL_PEER_AUTO_REPLY 0x00000008
1394 #define ARP_ERRTEST_REPLY_PEER 0x1
1395 #define ARP_ERRTEST_REPLY_HOST 0x2
1397 #define ARP_MULTIHOMING_MAX 8
1400 struct arp_ol_stats_t {
1401 uint32 host_ip_entries;
1402 uint32 host_ip_overflow;
1404 uint32 arp_table_entries;
1405 uint32 arp_table_overflow;
1407 uint32 host_request;
1409 uint32 host_service;
1411 uint32 peer_request;
1412 uint32 peer_request_drop;
1414 uint32 peer_reply_drop;
1415 uint32 peer_service;
1422 typedef struct wl_keep_alive_pkt {
1426 } wl_keep_alive_pkt_t;
1428 #define WL_KEEP_ALIVE_FIXED_LEN OFFSETOF(wl_keep_alive_pkt_t, data)
1434 typedef enum wl_pkt_filter_type {
1435 WL_PKT_FILTER_TYPE_PATTERN_MATCH
1436 } wl_pkt_filter_type_t;
1438 #define WL_PKT_FILTER_TYPE wl_pkt_filter_type_t
1441 typedef struct wl_pkt_filter_pattern {
1444 uint8 mask_and_pattern[1];
1445 } wl_pkt_filter_pattern_t;
1448 typedef struct wl_pkt_filter {
1451 uint32 negate_match;
1453 wl_pkt_filter_pattern_t pattern;
1457 #define WL_PKT_FILTER_FIXED_LEN OFFSETOF(wl_pkt_filter_t, u)
1458 #define WL_PKT_FILTER_PATTERN_FIXED_LEN OFFSETOF(wl_pkt_filter_pattern_t, mask_and_pattern)
1461 typedef struct wl_pkt_filter_enable {
1464 } wl_pkt_filter_enable_t;
1467 typedef struct wl_pkt_filter_list {
1469 wl_pkt_filter_t filter[1];
1470 } wl_pkt_filter_list_t;
1472 #define WL_PKT_FILTER_LIST_FIXED_LEN OFFSETOF(wl_pkt_filter_list_t, filter)
1475 typedef struct wl_pkt_filter_stats {
1476 uint32 num_pkts_matched;
1477 uint32 num_pkts_forwarded;
1478 uint32 num_pkts_discarded;
1479 } wl_pkt_filter_stats_t;
1482 typedef struct wl_seq_cmd_ioctl {
1485 } wl_seq_cmd_ioctl_t;
1487 #define WL_SEQ_CMD_ALIGN_BYTES 4
1490 #define WL_SEQ_CMDS_GET_IOCTL_FILTER(cmd) \
1491 (((cmd) == WLC_GET_MAGIC) || \
1492 ((cmd) == WLC_GET_VERSION) || \
1493 ((cmd) == WLC_GET_AP) || \
1494 ((cmd) == WLC_GET_INSTANCE))
1498 #define WL_PKTENG_PER_TX_START 0x01
1499 #define WL_PKTENG_PER_TX_STOP 0x02
1500 #define WL_PKTENG_PER_RX_START 0x04
1501 #define WL_PKTENG_PER_RX_WITH_ACK_START 0x05
1502 #define WL_PKTENG_PER_TX_WITH_ACK_START 0x06
1503 #define WL_PKTENG_PER_RX_STOP 0x08
1504 #define WL_PKTENG_PER_MASK 0xff
1506 #define WL_PKTENG_SYNCHRONOUS 0x100
1508 typedef struct wl_pkteng {
1514 struct ether_addr dest;
1515 struct ether_addr src;
1518 #define NUM_80211b_RATES 4
1519 #define NUM_80211ag_RATES 8
1520 #define NUM_80211n_RATES 32
1521 #define NUM_80211_RATES (NUM_80211b_RATES+NUM_80211ag_RATES+NUM_80211n_RATES)
1522 typedef struct wl_pkteng_stats {
1526 uint16 rxpktcnt[NUM_80211_RATES+1];
1527 } wl_pkteng_stats_t;
1529 #define WL_WOWL_MAGIC (1 << 0)
1530 #define WL_WOWL_NET (1 << 1)
1531 #define WL_WOWL_DIS (1 << 2)
1532 #define WL_WOWL_RETR (1 << 3)
1533 #define WL_WOWL_BCN (1 << 4)
1534 #define WL_WOWL_TST (1 << 5)
1535 #define WL_WOWL_BCAST (1 << 15)
1537 #define MAGIC_PKT_MINLEN 102
1546 } wl_wowl_pattern_t;
1550 wl_wowl_pattern_t pattern[1];
1551 } wl_wowl_pattern_list_t;
1555 uint16 ucode_wakeind;
1556 } wl_wowl_wakeind_t;
1559 typedef struct wl_txrate_class {
1563 } wl_txrate_class_t;
1568 #define WLC_OBSS_SCAN_PASSIVE_DWELL_DEFAULT 100
1569 #define WLC_OBSS_SCAN_PASSIVE_DWELL_MIN 5
1570 #define WLC_OBSS_SCAN_PASSIVE_DWELL_MAX 1000
1571 #define WLC_OBSS_SCAN_ACTIVE_DWELL_DEFAULT 20
1572 #define WLC_OBSS_SCAN_ACTIVE_DWELL_MIN 10
1573 #define WLC_OBSS_SCAN_ACTIVE_DWELL_MAX 1000
1574 #define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_DEFAULT 300
1575 #define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_MIN 10
1576 #define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_MAX 900
1577 #define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_DEFAULT 5
1578 #define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_MIN 5
1579 #define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_MAX 100
1580 #define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_DEFAULT 200
1581 #define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_MIN 200
1582 #define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_MAX 10000
1583 #define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_DEFAULT 20
1584 #define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_MIN 20
1585 #define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_MAX 10000
1586 #define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_DEFAULT 25
1587 #define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_MIN 0
1588 #define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_MAX 100
1591 typedef struct wl_obss_scan_arg {
1592 int16 passive_dwell;
1594 int16 bss_widthscan_interval;
1595 int16 passive_total;
1597 int16 chanwidth_transition_delay;
1598 int16 activity_threshold;
1599 } wl_obss_scan_arg_t;
1600 #define WL_OBSS_SCAN_PARAM_LEN sizeof(wl_obss_scan_arg_t)
1601 #define WL_MIN_NUM_OBSS_SCAN_ARG 7
1603 #define WL_COEX_INFO_MASK 0x07
1604 #define WL_COEX_INFO_REQ 0x01
1605 #define WL_COEX_40MHZ_INTOLERANT 0x02
1606 #define WL_COEX_WIDTH20 0x04
1608 typedef struct wl_action_obss_coex_req {
1612 } wl_action_obss_coex_req_t;
1615 #define MAX_RSSI_LEVELS 8
1618 typedef struct wl_rssi_event {
1620 uint32 rate_limit_msec;
1622 uint8 num_rssi_levels;
1624 int8 rssi_levels[MAX_RSSI_LEVELS];
1629 #define WLFEATURE_DISABLE_11N 0x00000001
1630 #define WLFEATURE_DISABLE_11N_STBC_TX 0x00000002
1631 #define WLFEATURE_DISABLE_11N_STBC_RX 0x00000004
1632 #define WLFEATURE_DISABLE_11N_SGI_TX 0x00000008
1633 #define WLFEATURE_DISABLE_11N_SGI_RX 0x00000010
1634 #define WLFEATURE_DISABLE_11N_AMPDU_TX 0x00000020
1635 #define WLFEATURE_DISABLE_11N_AMPDU_RX 0x00000040
1636 #define WLFEATURE_DISABLE_11N_GF 0x00000080
1640 #include <packed_section_end.h>
1643 #include <packed_section_start.h>
1646 typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_hdr {
1647 struct ether_addr staAddr;
1649 } BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_hdr_t;
1651 typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_data {
1652 sta_prbreq_wps_ie_hdr_t hdr;
1654 } BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_data_t;
1656 typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_list {
1658 uint8 ieDataList[1];
1659 } BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_list_t;
1662 #include <packed_section_end.h>