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