aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/bcmdhd/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/bcmdhd/include/wlioctl.h
parent8dea78da5cee153b8af9c07a2745f6c55057fe12 (diff)
Added missing tegra files.HEADmaster
Diffstat (limited to 'drivers/net/wireless/bcmdhd/include/wlioctl.h')
-rw-r--r--drivers/net/wireless/bcmdhd/include/wlioctl.h2757
1 files changed, 2757 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcmdhd/include/wlioctl.h b/drivers/net/wireless/bcmdhd/include/wlioctl.h
new file mode 100644
index 00000000000..9357552c919
--- /dev/null
+++ b/drivers/net/wireless/bcmdhd/include/wlioctl.h
@@ -0,0 +1,2757 @@
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-2011, 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.767.2.38 2011-02-01 23:04:28 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#include <bcmcdc.h>
42
43#ifndef INTF_NAME_SIZ
44#define INTF_NAME_SIZ 16
45#endif
46
47
48typedef struct remote_ioctl {
49 cdc_ioctl_t msg;
50 uint data_len;
51 char intf_name[INTF_NAME_SIZ];
52} rem_ioctl_t;
53#define REMOTE_SIZE sizeof(rem_ioctl_t)
54
55#define ACTION_FRAME_SIZE 1040
56
57typedef struct wl_action_frame {
58 struct ether_addr da;
59 uint16 len;
60 uint32 packetId;
61 uint8 data[ACTION_FRAME_SIZE];
62} wl_action_frame_t;
63
64#define WL_WIFI_ACTION_FRAME_SIZE sizeof(struct wl_action_frame)
65
66typedef struct ssid_info
67{
68 uint8 ssid_len;
69 uint8 ssid[32];
70} ssid_info_t;
71
72typedef struct wl_af_params {
73 uint32 channel;
74 int32 dwell_time;
75 struct ether_addr BSSID;
76 wl_action_frame_t action_frame;
77} wl_af_params_t;
78
79#define WL_WIFI_AF_PARAMS_SIZE sizeof(struct wl_af_params)
80
81
82#define BWL_DEFAULT_PACKING
83#include <packed_section_start.h>
84
85
86
87
88
89#define LEGACY2_WL_BSS_INFO_VERSION 108
90
91
92typedef struct wl_bss_info_108 {
93 uint32 version;
94 uint32 length;
95 struct ether_addr BSSID;
96 uint16 beacon_period;
97 uint16 capability;
98 uint8 SSID_len;
99 uint8 SSID[32];
100 struct {
101 uint count;
102 uint8 rates[16];
103 } rateset;
104 chanspec_t chanspec;
105 uint16 atim_window;
106 uint8 dtim_period;
107 int16 RSSI;
108 int8 phy_noise;
109
110 uint8 n_cap;
111 uint32 nbss_cap;
112 uint8 ctl_ch;
113 uint32 reserved32[1];
114 uint8 flags;
115 uint8 reserved[3];
116 uint8 basic_mcs[MCSSET_LEN];
117
118 uint16 ie_offset;
119 uint32 ie_length;
120
121
122} wl_bss_info_108_t;
123
124#define WL_BSS_INFO_VERSION 109
125
126
127typedef struct wl_bss_info {
128 uint32 version;
129 uint32 length;
130 struct ether_addr BSSID;
131 uint16 beacon_period;
132 uint16 capability;
133 uint8 SSID_len;
134 uint8 SSID[32];
135 struct {
136 uint count;
137 uint8 rates[16];
138 } rateset;
139 chanspec_t chanspec;
140 uint16 atim_window;
141 uint8 dtim_period;
142 int16 RSSI;
143 int8 phy_noise;
144
145 uint8 n_cap;
146 uint32 nbss_cap;
147 uint8 ctl_ch;
148 uint32 reserved32[1];
149 uint8 flags;
150 uint8 reserved[3];
151 uint8 basic_mcs[MCSSET_LEN];
152
153 uint16 ie_offset;
154 uint32 ie_length;
155 int16 SNR;
156
157
158} wl_bss_info_t;
159
160typedef struct wl_bsscfg {
161 uint32 wsec;
162 uint32 WPA_auth;
163 uint32 wsec_index;
164 uint32 associated;
165 uint32 BSS;
166 uint32 phytest_on;
167 struct ether_addr prev_BSSID;
168 struct ether_addr BSSID;
169} wl_bsscfg_t;
170
171typedef struct wl_bss_config {
172 uint32 atim_window;
173 uint32 beacon_period;
174 uint32 chanspec;
175} wl_bss_config_t;
176
177
178typedef struct wlc_ssid {
179 uint32 SSID_len;
180 uchar SSID[32];
181} wlc_ssid_t;
182
183
184#define WL_BSSTYPE_INFRA 1
185#define WL_BSSTYPE_INDEP 0
186#define WL_BSSTYPE_ANY 2
187
188
189#define WL_SCANFLAGS_PASSIVE 0x01
190#define WL_SCANFLAGS_RESERVED 0x02
191#define WL_SCANFLAGS_PROHIBITED 0x04
192
193#define WL_SCAN_PARAMS_SSID_MAX 10
194typedef struct wl_scan_params {
195 wlc_ssid_t ssid;
196 struct ether_addr bssid;
197 int8 bss_type;
198 uint8 scan_type;
199 int32 nprobes;
200 int32 active_time;
201 int32 passive_time;
202 int32 home_time;
203 int32 channel_num;
204 uint16 channel_list[1];
205} wl_scan_params_t;
206
207
208#define WL_SCAN_PARAMS_FIXED_SIZE 64
209
210
211#define WL_SCAN_PARAMS_COUNT_MASK 0x0000ffff
212#define WL_SCAN_PARAMS_NSSID_SHIFT 16
213
214#define WL_SCAN_ACTION_START 1
215#define WL_SCAN_ACTION_CONTINUE 2
216#define WL_SCAN_ACTION_ABORT 3
217
218#define ISCAN_REQ_VERSION 1
219
220
221typedef struct wl_iscan_params {
222 uint32 version;
223 uint16 action;
224 uint16 scan_duration;
225 wl_scan_params_t params;
226} wl_iscan_params_t;
227
228
229#define WL_ISCAN_PARAMS_FIXED_SIZE (OFFSETOF(wl_iscan_params_t, params) + sizeof(wlc_ssid_t))
230
231typedef struct wl_scan_results {
232 uint32 buflen;
233 uint32 version;
234 uint32 count;
235 wl_bss_info_t bss_info[1];
236} wl_scan_results_t;
237
238
239#define WL_SCAN_RESULTS_FIXED_SIZE (sizeof(wl_scan_results_t) - sizeof(wl_bss_info_t))
240
241
242#define WL_SCAN_RESULTS_SUCCESS 0
243#define WL_SCAN_RESULTS_PARTIAL 1
244#define WL_SCAN_RESULTS_PENDING 2
245#define WL_SCAN_RESULTS_ABORTED 3
246#define WL_SCAN_RESULTS_NO_MEM 4
247
248
249#define DNGL_RXCTXT_SIZE 45
250
251#if defined(SIMPLE_ISCAN)
252#define ISCAN_RETRY_CNT 5
253#define ISCAN_STATE_IDLE 0
254#define ISCAN_STATE_SCANING 1
255#define ISCAN_STATE_PENDING 2
256
257
258#define WLC_IW_ISCAN_MAXLEN 2048
259typedef struct iscan_buf {
260 struct iscan_buf * next;
261 char iscan_buf[WLC_IW_ISCAN_MAXLEN];
262} iscan_buf_t;
263#endif
264
265#define ESCAN_REQ_VERSION 1
266
267typedef struct wl_escan_params {
268 uint32 version;
269 uint16 action;
270 uint16 sync_id;
271 wl_scan_params_t params;
272} wl_escan_params_t;
273
274#define WL_ESCAN_PARAMS_FIXED_SIZE (OFFSETOF(wl_escan_params_t, params) + sizeof(wlc_ssid_t))
275
276typedef struct wl_escan_result {
277 uint32 buflen;
278 uint32 version;
279 uint16 sync_id;
280 uint16 bss_count;
281 wl_bss_info_t bss_info[1];
282} wl_escan_result_t;
283
284#define WL_ESCAN_RESULTS_FIXED_SIZE (sizeof(wl_escan_result_t) - sizeof(wl_bss_info_t))
285
286
287typedef struct wl_iscan_results {
288 uint32 status;
289 wl_scan_results_t results;
290} wl_iscan_results_t;
291
292
293#define WL_ISCAN_RESULTS_FIXED_SIZE \
294 (WL_SCAN_RESULTS_FIXED_SIZE + OFFSETOF(wl_iscan_results_t, results))
295
296typedef struct wl_probe_params {
297 wlc_ssid_t ssid;
298 struct ether_addr bssid;
299 struct ether_addr mac;
300} wl_probe_params_t;
301
302#define WL_NUMRATES 16
303typedef struct wl_rateset {
304 uint32 count;
305 uint8 rates[WL_NUMRATES];
306} wl_rateset_t;
307
308typedef struct wl_rateset_args {
309 uint32 count;
310 uint8 rates[WL_NUMRATES];
311 uint8 mcs[MCSSET_LEN];
312} wl_rateset_args_t;
313
314
315typedef struct wl_uint32_list {
316
317 uint32 count;
318
319 uint32 element[1];
320} wl_uint32_list_t;
321
322
323typedef struct wl_assoc_params {
324 struct ether_addr bssid;
325 uint16 bssid_cnt;
326 int32 chanspec_num;
327 chanspec_t chanspec_list[1];
328} wl_assoc_params_t;
329#define WL_ASSOC_PARAMS_FIXED_SIZE (sizeof(wl_assoc_params_t) - sizeof(chanspec_t))
330
331
332typedef wl_assoc_params_t wl_reassoc_params_t;
333#define WL_REASSOC_PARAMS_FIXED_SIZE WL_ASSOC_PARAMS_FIXED_SIZE
334
335
336typedef wl_assoc_params_t wl_join_assoc_params_t;
337#define WL_JOIN_ASSOC_PARAMS_FIXED_SIZE WL_ASSOC_PARAMS_FIXED_SIZE
338
339
340typedef struct wl_join_params {
341 wlc_ssid_t ssid;
342 wl_assoc_params_t params;
343} wl_join_params_t;
344#define WL_JOIN_PARAMS_FIXED_SIZE (sizeof(wl_join_params_t) - sizeof(chanspec_t))
345
346
347typedef struct wl_join_scan_params {
348 uint8 scan_type;
349 int32 nprobes;
350 int32 active_time;
351 int32 passive_time;
352 int32 home_time;
353} wl_join_scan_params_t;
354
355
356typedef struct wl_extjoin_params {
357 wlc_ssid_t ssid;
358 wl_join_scan_params_t scan;
359 wl_join_assoc_params_t assoc;
360} wl_extjoin_params_t;
361#define WL_EXTJOIN_PARAMS_FIXED_SIZE (sizeof(wl_extjoin_params_t) - sizeof(chanspec_t))
362
363typedef struct {
364 uint32 num;
365 chanspec_t list[1];
366} chanspec_list_t;
367
368
369#define NRATE_MCS_INUSE 0x00000080
370#define NRATE_RATE_MASK 0x0000007f
371#define NRATE_STF_MASK 0x0000ff00
372#define NRATE_STF_SHIFT 8
373#define NRATE_OVERRIDE 0x80000000
374#define NRATE_OVERRIDE_MCS_ONLY 0x40000000
375#define NRATE_SGI_MASK 0x00800000
376#define NRATE_SGI_SHIFT 23
377#define NRATE_LDPC_CODING 0x00400000
378#define NRATE_LDPC_SHIFT 22
379
380#define NRATE_STF_SISO 0
381#define NRATE_STF_CDD 1
382#define NRATE_STF_STBC 2
383#define NRATE_STF_SDM 3
384
385#define ANTENNA_NUM_1 1
386#define ANTENNA_NUM_2 2
387#define ANTENNA_NUM_3 3
388#define ANTENNA_NUM_4 4
389
390#define ANT_SELCFG_AUTO 0x80
391#define ANT_SELCFG_MASK 0x33
392#define ANT_SELCFG_MAX 4
393#define ANT_SELCFG_TX_UNICAST 0
394#define ANT_SELCFG_RX_UNICAST 1
395#define ANT_SELCFG_TX_DEF 2
396#define ANT_SELCFG_RX_DEF 3
397
398#define MAX_STREAMS_SUPPORTED 4
399
400typedef struct {
401 uint8 ant_config[ANT_SELCFG_MAX];
402 uint8 num_antcfg;
403} wlc_antselcfg_t;
404
405#define HIGHEST_SINGLE_STREAM_MCS 7
406
407#define MAX_CCA_CHANNELS 38
408#define MAX_CCA_SECS 60
409
410#define IBSS_MED 15
411#define IBSS_HI 25
412#define OBSS_MED 12
413#define OBSS_HI 25
414#define INTERFER_MED 5
415#define INTERFER_HI 10
416
417#define CCA_FLAG_2G_ONLY 0x01
418#define CCA_FLAG_5G_ONLY 0x02
419#define CCA_FLAG_IGNORE_DURATION 0x04
420#define CCA_FLAGS_PREFER_1_6_11 0x10
421#define CCA_FLAG_IGNORE_INTERFER 0x20
422
423#define CCA_ERRNO_BAND 1
424#define CCA_ERRNO_DURATION 2
425#define CCA_ERRNO_PREF_CHAN 3
426#define CCA_ERRNO_INTERFER 4
427#define CCA_ERRNO_TOO_FEW 5
428
429typedef struct {
430 uint32 duration;
431 uint32 congest_ibss;
432
433 uint32 congest_obss;
434 uint32 interference;
435 uint32 timestamp;
436} cca_congest_t;
437
438typedef struct {
439 chanspec_t chanspec;
440 uint8 num_secs;
441 cca_congest_t secs[1];
442} cca_congest_channel_req_t;
443
444#define WLC_CNTRY_BUF_SZ 4
445
446typedef struct wl_country {
447 char country_abbrev[WLC_CNTRY_BUF_SZ];
448 int32 rev;
449 char ccode[WLC_CNTRY_BUF_SZ];
450} wl_country_t;
451
452typedef struct wl_channels_in_country {
453 uint32 buflen;
454 uint32 band;
455 char country_abbrev[WLC_CNTRY_BUF_SZ];
456 uint32 count;
457 uint32 channel[1];
458} wl_channels_in_country_t;
459
460typedef struct wl_country_list {
461 uint32 buflen;
462 uint32 band_set;
463 uint32 band;
464 uint32 count;
465 char country_abbrev[1];
466} wl_country_list_t;
467
468#define WL_NUM_RPI_BINS 8
469#define WL_RM_TYPE_BASIC 1
470#define WL_RM_TYPE_CCA 2
471#define WL_RM_TYPE_RPI 3
472
473#define WL_RM_FLAG_PARALLEL (1<<0)
474
475#define WL_RM_FLAG_LATE (1<<1)
476#define WL_RM_FLAG_INCAPABLE (1<<2)
477#define WL_RM_FLAG_REFUSED (1<<3)
478
479typedef struct wl_rm_req_elt {
480 int8 type;
481 int8 flags;
482 chanspec_t chanspec;
483 uint32 token;
484 uint32 tsf_h;
485 uint32 tsf_l;
486 uint32 dur;
487} wl_rm_req_elt_t;
488
489typedef struct wl_rm_req {
490 uint32 token;
491 uint32 count;
492 void *cb;
493 void *cb_arg;
494 wl_rm_req_elt_t req[1];
495} wl_rm_req_t;
496#define WL_RM_REQ_FIXED_LEN OFFSETOF(wl_rm_req_t, req)
497
498typedef struct wl_rm_rep_elt {
499 int8 type;
500 int8 flags;
501 chanspec_t chanspec;
502 uint32 token;
503 uint32 tsf_h;
504 uint32 tsf_l;
505 uint32 dur;
506 uint32 len;
507 uint8 data[1];
508} wl_rm_rep_elt_t;
509#define WL_RM_REP_ELT_FIXED_LEN 24
510
511#define WL_RPI_REP_BIN_NUM 8
512typedef struct wl_rm_rpi_rep {
513 uint8 rpi[WL_RPI_REP_BIN_NUM];
514 int8 rpi_max[WL_RPI_REP_BIN_NUM];
515} wl_rm_rpi_rep_t;
516
517typedef struct wl_rm_rep {
518 uint32 token;
519 uint32 len;
520 wl_rm_rep_elt_t rep[1];
521} wl_rm_rep_t;
522#define WL_RM_REP_FIXED_LEN 8
523
524
525typedef enum sup_auth_status {
526
527 WLC_SUP_DISCONNECTED = 0,
528 WLC_SUP_CONNECTING,
529 WLC_SUP_IDREQUIRED,
530 WLC_SUP_AUTHENTICATING,
531 WLC_SUP_AUTHENTICATED,
532 WLC_SUP_KEYXCHANGE,
533 WLC_SUP_KEYED,
534 WLC_SUP_TIMEOUT,
535 WLC_SUP_LAST_BASIC_STATE,
536
537
538
539 WLC_SUP_KEYXCHANGE_WAIT_M1 = WLC_SUP_AUTHENTICATED,
540
541 WLC_SUP_KEYXCHANGE_PREP_M2 = WLC_SUP_KEYXCHANGE,
542
543 WLC_SUP_KEYXCHANGE_WAIT_M3 = WLC_SUP_LAST_BASIC_STATE,
544 WLC_SUP_KEYXCHANGE_PREP_M4,
545 WLC_SUP_KEYXCHANGE_WAIT_G1,
546 WLC_SUP_KEYXCHANGE_PREP_G2
547} sup_auth_status_t;
548
549
550#define CRYPTO_ALGO_OFF 0
551#define CRYPTO_ALGO_WEP1 1
552#define CRYPTO_ALGO_TKIP 2
553#define CRYPTO_ALGO_WEP128 3
554#define CRYPTO_ALGO_AES_CCM 4
555#define CRYPTO_ALGO_AES_OCB_MSDU 5
556#define CRYPTO_ALGO_AES_OCB_MPDU 6
557#define CRYPTO_ALGO_NALG 7
558#define CRYPTO_ALGO_PMK 12
559
560#define WSEC_GEN_MIC_ERROR 0x0001
561#define WSEC_GEN_REPLAY 0x0002
562#define WSEC_GEN_ICV_ERROR 0x0004
563
564#define WL_SOFT_KEY (1 << 0)
565#define WL_PRIMARY_KEY (1 << 1)
566#define WL_KF_RES_4 (1 << 4)
567#define WL_KF_RES_5 (1 << 5)
568#define WL_IBSS_PEER_GROUP_KEY (1 << 6)
569
570typedef struct wl_wsec_key {
571 uint32 index;
572 uint32 len;
573 uint8 data[DOT11_MAX_KEY_SIZE];
574 uint32 pad_1[18];
575 uint32 algo;
576 uint32 flags;
577 uint32 pad_2[2];
578 int pad_3;
579 int iv_initialized;
580 int pad_4;
581
582 struct {
583 uint32 hi;
584 uint16 lo;
585 } rxiv;
586 uint32 pad_5[2];
587 struct ether_addr ea;
588} wl_wsec_key_t;
589
590#define WSEC_MIN_PSK_LEN 8
591#define WSEC_MAX_PSK_LEN 64
592
593
594#define WSEC_PASSPHRASE (1<<0)
595
596
597typedef struct {
598 ushort key_len;
599 ushort flags;
600 uint8 key[WSEC_MAX_PSK_LEN];
601} wsec_pmk_t;
602
603
604#define WEP_ENABLED 0x0001
605#define TKIP_ENABLED 0x0002
606#define AES_ENABLED 0x0004
607#define WSEC_SWFLAG 0x0008
608#define SES_OW_ENABLED 0x0040
609
610
611#define WPA_AUTH_DISABLED 0x0000
612#define WPA_AUTH_NONE 0x0001
613#define WPA_AUTH_UNSPECIFIED 0x0002
614#define WPA_AUTH_PSK 0x0004
615
616#define WPA2_AUTH_UNSPECIFIED 0x0040
617#define WPA2_AUTH_PSK 0x0080
618#define BRCM_AUTH_PSK 0x0100
619#define BRCM_AUTH_DPT 0x0200
620#define WPA2_AUTH_MFP 0x1000
621#define WPA2_AUTH_TPK 0x2000
622#define WPA2_AUTH_FT 0x4000
623
624
625#define MAXPMKID 16
626
627typedef struct _pmkid {
628 struct ether_addr BSSID;
629 uint8 PMKID[WPA2_PMKID_LEN];
630} pmkid_t;
631
632typedef struct _pmkid_list {
633 uint32 npmkid;
634 pmkid_t pmkid[1];
635} pmkid_list_t;
636
637typedef struct _pmkid_cand {
638 struct ether_addr BSSID;
639 uint8 preauth;
640} pmkid_cand_t;
641
642typedef struct _pmkid_cand_list {
643 uint32 npmkid_cand;
644 pmkid_cand_t pmkid_cand[1];
645} pmkid_cand_list_t;
646
647typedef struct wl_assoc_info {
648 uint32 req_len;
649 uint32 resp_len;
650 uint32 flags;
651 struct dot11_assoc_req req;
652 struct ether_addr reassoc_bssid;
653 struct dot11_assoc_resp resp;
654} wl_assoc_info_t;
655
656
657#define WLC_ASSOC_REQ_IS_REASSOC 0x01
658
659
660typedef struct {
661 uint16 ver;
662 uint16 len;
663 uint16 cap;
664 uint32 flags;
665 uint32 idle;
666 struct ether_addr ea;
667 wl_rateset_t rateset;
668 uint32 in;
669 uint32 listen_interval_inms;
670 uint32 tx_pkts;
671 uint32 tx_failures;
672 uint32 rx_ucast_pkts;
673 uint32 rx_mcast_pkts;
674 uint32 tx_rate;
675 uint32 rx_rate;
676 uint32 rx_decrypt_succeeds;
677 uint32 rx_decrypt_failures;
678} sta_info_t;
679
680#define WL_OLD_STAINFO_SIZE OFFSETOF(sta_info_t, tx_pkts)
681
682#define WL_STA_VER 3
683
684
685#define WL_STA_BRCM 0x1
686#define WL_STA_WME 0x2
687#define WL_STA_ABCAP 0x4
688#define WL_STA_AUTHE 0x8
689#define WL_STA_ASSOC 0x10
690#define WL_STA_AUTHO 0x20
691#define WL_STA_WDS 0x40
692#define WL_STA_WDS_LINKUP 0x80
693#define WL_STA_PS 0x100
694#define WL_STA_APSD_BE 0x200
695#define WL_STA_APSD_BK 0x400
696#define WL_STA_APSD_VI 0x800
697#define WL_STA_APSD_VO 0x1000
698#define WL_STA_N_CAP 0x2000
699#define WL_STA_SCBSTATS 0x4000
700
701#define WL_WDS_LINKUP WL_STA_WDS_LINKUP
702
703
704#define WLC_TXFILTER_OVERRIDE_DISABLED 0
705#define WLC_TXFILTER_OVERRIDE_ENABLED 1
706
707
708typedef struct {
709 uint32 val;
710 struct ether_addr ea;
711} scb_val_t;
712
713
714typedef struct {
715 uint32 code;
716 scb_val_t ioctl_args;
717} authops_t;
718
719
720typedef struct channel_info {
721 int hw_channel;
722 int target_channel;
723 int scan_channel;
724} channel_info_t;
725
726
727struct maclist {
728 uint count;
729 struct ether_addr ea[1];
730};
731
732
733typedef struct get_pktcnt {
734 uint rx_good_pkt;
735 uint rx_bad_pkt;
736 uint tx_good_pkt;
737 uint tx_bad_pkt;
738 uint rx_ocast_good_pkt;
739} get_pktcnt_t;
740
741#define WL_IOCTL_ACTION_GET 0x0
742#define WL_IOCTL_ACTION_SET 0x1
743#define WL_IOCTL_ACTION_OVL_IDX_MASK 0x1e
744#define WL_IOCTL_ACTION_OVL_RSV 0x20
745#define WL_IOCTL_ACTION_OVL 0x40
746#define WL_IOCTL_ACTION_MASK 0x7e
747#define WL_IOCTL_ACTION_OVL_SHIFT 1
748
749
750typedef struct wl_ioctl {
751 uint cmd;
752 void *buf;
753 uint len;
754 uint8 set;
755 uint used;
756 uint needed;
757} wl_ioctl_t;
758
759
760#define ioctl_subtype set
761#define ioctl_pid used
762#define ioctl_status needed
763
764
765typedef struct wlc_rev_info {
766 uint vendorid;
767 uint deviceid;
768 uint radiorev;
769 uint chiprev;
770 uint corerev;
771 uint boardid;
772 uint boardvendor;
773 uint boardrev;
774 uint driverrev;
775 uint ucoderev;
776 uint bus;
777 uint chipnum;
778 uint phytype;
779 uint phyrev;
780 uint anarev;
781 uint chippkg;
782} wlc_rev_info_t;
783
784#define WL_REV_INFO_LEGACY_LENGTH 48
785
786#define WL_BRAND_MAX 10
787typedef struct wl_instance_info {
788 uint instance;
789 char brand[WL_BRAND_MAX];
790} wl_instance_info_t;
791
792
793typedef struct wl_txfifo_sz {
794 uint16 magic;
795 uint16 fifo;
796 uint16 size;
797} wl_txfifo_sz_t;
798
799#define WL_TXFIFO_SZ_MAGIC 0xa5a5
800
801
802
803#define WLC_IOV_NAME_LEN 30
804typedef struct wlc_iov_trx_s {
805 uint8 module;
806 uint8 type;
807 char name[WLC_IOV_NAME_LEN];
808} wlc_iov_trx_t;
809
810
811#define WLC_IOCTL_MAGIC 0x14e46c77
812
813
814#define WLC_IOCTL_VERSION 1
815
816#define WLC_IOCTL_MAXLEN 8192
817#define WLC_IOCTL_SMLEN 256
818#define WLC_IOCTL_MEDLEN 1536
819#ifdef WLC_HIGH_ONLY
820#define WLC_SAMPLECOLLECT_MAXLEN 1024
821#else
822#define WLC_SAMPLECOLLECT_MAXLEN 10240
823#endif
824
825
826#define WLC_GET_MAGIC 0
827#define WLC_GET_VERSION 1
828#define WLC_UP 2
829#define WLC_DOWN 3
830#define WLC_GET_LOOP 4
831#define WLC_SET_LOOP 5
832#define WLC_DUMP 6
833#define WLC_GET_MSGLEVEL 7
834#define WLC_SET_MSGLEVEL 8
835#define WLC_GET_PROMISC 9
836#define WLC_SET_PROMISC 10
837#define WLC_OVERLAY_IOCTL 11
838#define WLC_GET_RATE 12
839
840#define WLC_GET_INSTANCE 14
841
842
843
844
845#define WLC_GET_INFRA 19
846#define WLC_SET_INFRA 20
847#define WLC_GET_AUTH 21
848#define WLC_SET_AUTH 22
849#define WLC_GET_BSSID 23
850#define WLC_SET_BSSID 24
851#define WLC_GET_SSID 25
852#define WLC_SET_SSID 26
853#define WLC_RESTART 27
854
855#define WLC_GET_CHANNEL 29
856#define WLC_SET_CHANNEL 30
857#define WLC_GET_SRL 31
858#define WLC_SET_SRL 32
859#define WLC_GET_LRL 33
860#define WLC_SET_LRL 34
861#define WLC_GET_PLCPHDR 35
862#define WLC_SET_PLCPHDR 36
863#define WLC_GET_RADIO 37
864#define WLC_SET_RADIO 38
865#define WLC_GET_PHYTYPE 39
866#define WLC_DUMP_RATE 40
867#define WLC_SET_RATE_PARAMS 41
868#define WLC_GET_FIXRATE 42
869#define WLC_SET_FIXRATE 43
870
871
872#define WLC_GET_KEY 44
873#define WLC_SET_KEY 45
874#define WLC_GET_REGULATORY 46
875#define WLC_SET_REGULATORY 47
876#define WLC_GET_PASSIVE_SCAN 48
877#define WLC_SET_PASSIVE_SCAN 49
878#define WLC_SCAN 50
879#define WLC_SCAN_RESULTS 51
880#define WLC_DISASSOC 52
881#define WLC_REASSOC 53
882#define WLC_GET_ROAM_TRIGGER 54
883#define WLC_SET_ROAM_TRIGGER 55
884#define WLC_GET_ROAM_DELTA 56
885#define WLC_SET_ROAM_DELTA 57
886#define WLC_GET_ROAM_SCAN_PERIOD 58
887#define WLC_SET_ROAM_SCAN_PERIOD 59
888#define WLC_EVM 60
889#define WLC_GET_TXANT 61
890#define WLC_SET_TXANT 62
891#define WLC_GET_ANTDIV 63
892#define WLC_SET_ANTDIV 64
893
894
895#define WLC_GET_CLOSED 67
896#define WLC_SET_CLOSED 68
897#define WLC_GET_MACLIST 69
898#define WLC_SET_MACLIST 70
899#define WLC_GET_RATESET 71
900#define WLC_SET_RATESET 72
901
902#define WLC_LONGTRAIN 74
903#define WLC_GET_BCNPRD 75
904#define WLC_SET_BCNPRD 76
905#define WLC_GET_DTIMPRD 77
906#define WLC_SET_DTIMPRD 78
907#define WLC_GET_SROM 79
908#define WLC_SET_SROM 80
909#define WLC_GET_WEP_RESTRICT 81
910#define WLC_SET_WEP_RESTRICT 82
911#define WLC_GET_COUNTRY 83
912#define WLC_SET_COUNTRY 84
913#define WLC_GET_PM 85
914#define WLC_SET_PM 86
915#define WLC_GET_WAKE 87
916#define WLC_SET_WAKE 88
917
918#define WLC_GET_FORCELINK 90
919#define WLC_SET_FORCELINK 91
920#define WLC_FREQ_ACCURACY 92
921#define WLC_CARRIER_SUPPRESS 93
922#define WLC_GET_PHYREG 94
923#define WLC_SET_PHYREG 95
924#define WLC_GET_RADIOREG 96
925#define WLC_SET_RADIOREG 97
926#define WLC_GET_REVINFO 98
927#define WLC_GET_UCANTDIV 99
928#define WLC_SET_UCANTDIV 100
929#define WLC_R_REG 101
930#define WLC_W_REG 102
931
932
933#define WLC_GET_MACMODE 105
934#define WLC_SET_MACMODE 106
935#define WLC_GET_MONITOR 107
936#define WLC_SET_MONITOR 108
937#define WLC_GET_GMODE 109
938#define WLC_SET_GMODE 110
939#define WLC_GET_LEGACY_ERP 111
940#define WLC_SET_LEGACY_ERP 112
941#define WLC_GET_RX_ANT 113
942#define WLC_GET_CURR_RATESET 114
943#define WLC_GET_SCANSUPPRESS 115
944#define WLC_SET_SCANSUPPRESS 116
945#define WLC_GET_AP 117
946#define WLC_SET_AP 118
947#define WLC_GET_EAP_RESTRICT 119
948#define WLC_SET_EAP_RESTRICT 120
949#define WLC_SCB_AUTHORIZE 121
950#define WLC_SCB_DEAUTHORIZE 122
951#define WLC_GET_WDSLIST 123
952#define WLC_SET_WDSLIST 124
953#define WLC_GET_ATIM 125
954#define WLC_SET_ATIM 126
955#define WLC_GET_RSSI 127
956#define WLC_GET_PHYANTDIV 128
957#define WLC_SET_PHYANTDIV 129
958#define WLC_AP_RX_ONLY 130
959#define WLC_GET_TX_PATH_PWR 131
960#define WLC_SET_TX_PATH_PWR 132
961#define WLC_GET_WSEC 133
962#define WLC_SET_WSEC 134
963#define WLC_GET_PHY_NOISE 135
964#define WLC_GET_BSS_INFO 136
965#define WLC_GET_PKTCNTS 137
966#define WLC_GET_LAZYWDS 138
967#define WLC_SET_LAZYWDS 139
968#define WLC_GET_BANDLIST 140
969#define WLC_GET_BAND 141
970#define WLC_SET_BAND 142
971#define WLC_SCB_DEAUTHENTICATE 143
972#define WLC_GET_SHORTSLOT 144
973#define WLC_GET_SHORTSLOT_OVERRIDE 145
974#define WLC_SET_SHORTSLOT_OVERRIDE 146
975#define WLC_GET_SHORTSLOT_RESTRICT 147
976#define WLC_SET_SHORTSLOT_RESTRICT 148
977#define WLC_GET_GMODE_PROTECTION 149
978#define WLC_GET_GMODE_PROTECTION_OVERRIDE 150
979#define WLC_SET_GMODE_PROTECTION_OVERRIDE 151
980#define WLC_UPGRADE 152
981
982
983#define WLC_GET_IGNORE_BCNS 155
984#define WLC_SET_IGNORE_BCNS 156
985#define WLC_GET_SCB_TIMEOUT 157
986#define WLC_SET_SCB_TIMEOUT 158
987#define WLC_GET_ASSOCLIST 159
988#define WLC_GET_CLK 160
989#define WLC_SET_CLK 161
990#define WLC_GET_UP 162
991#define WLC_OUT 163
992#define WLC_GET_WPA_AUTH 164
993#define WLC_SET_WPA_AUTH 165
994#define WLC_GET_UCFLAGS 166
995#define WLC_SET_UCFLAGS 167
996#define WLC_GET_PWRIDX 168
997#define WLC_SET_PWRIDX 169
998#define WLC_GET_TSSI 170
999#define WLC_GET_SUP_RATESET_OVERRIDE 171
1000#define WLC_SET_SUP_RATESET_OVERRIDE 172
1001
1002
1003
1004
1005
1006#define WLC_GET_PROTECTION_CONTROL 178
1007#define WLC_SET_PROTECTION_CONTROL 179
1008#define WLC_GET_PHYLIST 180
1009#define WLC_ENCRYPT_STRENGTH 181
1010#define WLC_DECRYPT_STATUS 182
1011#define WLC_GET_KEY_SEQ 183
1012#define WLC_GET_SCAN_CHANNEL_TIME 184
1013#define WLC_SET_SCAN_CHANNEL_TIME 185
1014#define WLC_GET_SCAN_UNASSOC_TIME 186
1015#define WLC_SET_SCAN_UNASSOC_TIME 187
1016#define WLC_GET_SCAN_HOME_TIME 188
1017#define WLC_SET_SCAN_HOME_TIME 189
1018#define WLC_GET_SCAN_NPROBES 190
1019#define WLC_SET_SCAN_NPROBES 191
1020#define WLC_GET_PRB_RESP_TIMEOUT 192
1021#define WLC_SET_PRB_RESP_TIMEOUT 193
1022#define WLC_GET_ATTEN 194
1023#define WLC_SET_ATTEN 195
1024#define WLC_GET_SHMEM 196
1025#define WLC_SET_SHMEM 197
1026
1027
1028#define WLC_SET_WSEC_TEST 200
1029#define WLC_SCB_DEAUTHENTICATE_FOR_REASON 201
1030#define WLC_TKIP_COUNTERMEASURES 202
1031#define WLC_GET_PIOMODE 203
1032#define WLC_SET_PIOMODE 204
1033#define WLC_SET_ASSOC_PREFER 205
1034#define WLC_GET_ASSOC_PREFER 206
1035#define WLC_SET_ROAM_PREFER 207
1036#define WLC_GET_ROAM_PREFER 208
1037#define WLC_SET_LED 209
1038#define WLC_GET_LED 210
1039#define WLC_GET_INTERFERENCE_MODE 211
1040#define WLC_SET_INTERFERENCE_MODE 212
1041#define WLC_GET_CHANNEL_QA 213
1042#define WLC_START_CHANNEL_QA 214
1043#define WLC_GET_CHANNEL_SEL 215
1044#define WLC_START_CHANNEL_SEL 216
1045#define WLC_GET_VALID_CHANNELS 217
1046#define WLC_GET_FAKEFRAG 218
1047#define WLC_SET_FAKEFRAG 219
1048#define WLC_GET_PWROUT_PERCENTAGE 220
1049#define WLC_SET_PWROUT_PERCENTAGE 221
1050#define WLC_SET_BAD_FRAME_PREEMPT 222
1051#define WLC_GET_BAD_FRAME_PREEMPT 223
1052#define WLC_SET_LEAP_LIST 224
1053#define WLC_GET_LEAP_LIST 225
1054#define WLC_GET_CWMIN 226
1055#define WLC_SET_CWMIN 227
1056#define WLC_GET_CWMAX 228
1057#define WLC_SET_CWMAX 229
1058#define WLC_GET_WET 230
1059#define WLC_SET_WET 231
1060#define WLC_GET_PUB 232
1061
1062
1063#define WLC_GET_KEY_PRIMARY 235
1064#define WLC_SET_KEY_PRIMARY 236
1065
1066#define WLC_GET_ACI_ARGS 238
1067#define WLC_SET_ACI_ARGS 239
1068#define WLC_UNSET_CALLBACK 240
1069#define WLC_SET_CALLBACK 241
1070#define WLC_GET_RADAR 242
1071#define WLC_SET_RADAR 243
1072#define WLC_SET_SPECT_MANAGMENT 244
1073#define WLC_GET_SPECT_MANAGMENT 245
1074#define WLC_WDS_GET_REMOTE_HWADDR 246
1075#define WLC_WDS_GET_WPA_SUP 247
1076#define WLC_SET_CS_SCAN_TIMER 248
1077#define WLC_GET_CS_SCAN_TIMER 249
1078#define WLC_MEASURE_REQUEST 250
1079#define WLC_INIT 251
1080#define WLC_SEND_QUIET 252
1081#define WLC_KEEPALIVE 253
1082#define WLC_SEND_PWR_CONSTRAINT 254
1083#define WLC_UPGRADE_STATUS 255
1084#define WLC_CURRENT_PWR 256
1085#define WLC_GET_SCAN_PASSIVE_TIME 257
1086#define WLC_SET_SCAN_PASSIVE_TIME 258
1087#define WLC_LEGACY_LINK_BEHAVIOR 259
1088#define WLC_GET_CHANNELS_IN_COUNTRY 260
1089#define WLC_GET_COUNTRY_LIST 261
1090#define WLC_GET_VAR 262
1091#define WLC_SET_VAR 263
1092#define WLC_NVRAM_GET 264
1093#define WLC_NVRAM_SET 265
1094#define WLC_NVRAM_DUMP 266
1095#define WLC_REBOOT 267
1096#define WLC_SET_WSEC_PMK 268
1097#define WLC_GET_AUTH_MODE 269
1098#define WLC_SET_AUTH_MODE 270
1099#define WLC_GET_WAKEENTRY 271
1100#define WLC_SET_WAKEENTRY 272
1101#define WLC_NDCONFIG_ITEM 273
1102#define WLC_NVOTPW 274
1103#define WLC_OTPW 275
1104#define WLC_IOV_BLOCK_GET 276
1105#define WLC_IOV_MODULES_GET 277
1106#define WLC_SOFT_RESET 278
1107#define WLC_GET_ALLOW_MODE 279
1108#define WLC_SET_ALLOW_MODE 280
1109#define WLC_GET_DESIRED_BSSID 281
1110#define WLC_SET_DESIRED_BSSID 282
1111#define WLC_DISASSOC_MYAP 283
1112#define WLC_GET_NBANDS 284
1113#define WLC_GET_BANDSTATES 285
1114#define WLC_GET_WLC_BSS_INFO 286
1115#define WLC_GET_ASSOC_INFO 287
1116#define WLC_GET_OID_PHY 288
1117#define WLC_SET_OID_PHY 289
1118#define WLC_SET_ASSOC_TIME 290
1119#define WLC_GET_DESIRED_SSID 291
1120#define WLC_GET_CHANSPEC 292
1121#define WLC_GET_ASSOC_STATE 293
1122#define WLC_SET_PHY_STATE 294
1123#define WLC_GET_SCAN_PENDING 295
1124#define WLC_GET_SCANREQ_PENDING 296
1125#define WLC_GET_PREV_ROAM_REASON 297
1126#define WLC_SET_PREV_ROAM_REASON 298
1127#define WLC_GET_BANDSTATES_PI 299
1128#define WLC_GET_PHY_STATE 300
1129#define WLC_GET_BSS_WPA_RSN 301
1130#define WLC_GET_BSS_WPA2_RSN 302
1131#define WLC_GET_BSS_BCN_TS 303
1132#define WLC_GET_INT_DISASSOC 304
1133#define WLC_SET_NUM_PEERS 305
1134#define WLC_GET_NUM_BSS 306
1135#define WLC_NPHY_SAMPLE_COLLECT 307
1136#define WLC_UM_PRIV 308
1137#define WLC_GET_CMD 309
1138
1139#define WLC_SET_INTERFERENCE_OVERRIDE_MODE 311
1140#define WLC_GET_INTERFERENCE_OVERRIDE_MODE 312
1141#define WLC_GET_WAI_RESTRICT 313
1142#define WLC_SET_WAI_RESTRICT 314
1143#define WLC_SET_WAI_REKEY 315
1144#define WLC_SET_PEAKRATE 316
1145#define WLC_GET_PEAKRATE 317
1146#define WLC_LAST 318
1147
1148#ifndef EPICTRL_COOKIE
1149#define EPICTRL_COOKIE 0xABADCEDE
1150#endif
1151
1152
1153#define CMN_IOCTL_OFF 0x180
1154
1155
1156
1157
1158#define WL_OID_BASE 0xFFE41420
1159
1160
1161#define OID_WL_GETINSTANCE (WL_OID_BASE + WLC_GET_INSTANCE)
1162#define OID_WL_GET_FORCELINK (WL_OID_BASE + WLC_GET_FORCELINK)
1163#define OID_WL_SET_FORCELINK (WL_OID_BASE + WLC_SET_FORCELINK)
1164#define OID_WL_ENCRYPT_STRENGTH (WL_OID_BASE + WLC_ENCRYPT_STRENGTH)
1165#define OID_WL_DECRYPT_STATUS (WL_OID_BASE + WLC_DECRYPT_STATUS)
1166#define OID_LEGACY_LINK_BEHAVIOR (WL_OID_BASE + WLC_LEGACY_LINK_BEHAVIOR)
1167#define OID_WL_NDCONFIG_ITEM (WL_OID_BASE + WLC_NDCONFIG_ITEM)
1168
1169
1170#define OID_STA_CHANSPEC (WL_OID_BASE + WLC_GET_CHANSPEC)
1171#define OID_STA_NBANDS (WL_OID_BASE + WLC_GET_NBANDS)
1172#define OID_STA_GET_PHY (WL_OID_BASE + WLC_GET_OID_PHY)
1173#define OID_STA_SET_PHY (WL_OID_BASE + WLC_SET_OID_PHY)
1174#define OID_STA_ASSOC_TIME (WL_OID_BASE + WLC_SET_ASSOC_TIME)
1175#define OID_STA_DESIRED_SSID (WL_OID_BASE + WLC_GET_DESIRED_SSID)
1176#define OID_STA_SET_PHY_STATE (WL_OID_BASE + WLC_SET_PHY_STATE)
1177#define OID_STA_SCAN_PENDING (WL_OID_BASE + WLC_GET_SCAN_PENDING)
1178#define OID_STA_SCANREQ_PENDING (WL_OID_BASE + WLC_GET_SCANREQ_PENDING)
1179#define OID_STA_GET_ROAM_REASON (WL_OID_BASE + WLC_GET_PREV_ROAM_REASON)
1180#define OID_STA_SET_ROAM_REASON (WL_OID_BASE + WLC_SET_PREV_ROAM_REASON)
1181#define OID_STA_GET_PHY_STATE (WL_OID_BASE + WLC_GET_PHY_STATE)
1182#define OID_STA_INT_DISASSOC (WL_OID_BASE + WLC_GET_INT_DISASSOC)
1183#define OID_STA_SET_NUM_PEERS (WL_OID_BASE + WLC_SET_NUM_PEERS)
1184#define OID_STA_GET_NUM_BSS (WL_OID_BASE + WLC_GET_NUM_BSS)
1185
1186#define WL_DECRYPT_STATUS_SUCCESS 1
1187#define WL_DECRYPT_STATUS_FAILURE 2
1188#define WL_DECRYPT_STATUS_UNKNOWN 3
1189
1190
1191#define WLC_UPGRADE_SUCCESS 0
1192#define WLC_UPGRADE_PENDING 1
1193
1194#ifdef CONFIG_USBRNDIS_RETAIL
1195
1196typedef struct {
1197 char *name;
1198 void *param;
1199} ndconfig_item_t;
1200#endif
1201
1202
1203
1204#define WL_AUTH_OPEN_SYSTEM 0
1205#define WL_AUTH_SHARED_KEY 1
1206#define WL_AUTH_OPEN_SHARED 2
1207
1208
1209#define WL_RADIO_SW_DISABLE (1<<0)
1210#define WL_RADIO_HW_DISABLE (1<<1)
1211#define WL_RADIO_MPC_DISABLE (1<<2)
1212#define WL_RADIO_COUNTRY_DISABLE (1<<3)
1213
1214#define WL_SPURAVOID_OFF 0
1215#define WL_SPURAVOID_ON1 1
1216#define WL_SPURAVOID_ON2 2
1217
1218
1219#define WL_TXPWR_OVERRIDE (1U<<31)
1220#define WL_TXPWR_NEG (1U<<30)
1221
1222#define WL_PHY_PAVARS_LEN 6
1223
1224#define WL_PHY_PAVARS2_NUM 3
1225#define WL_PHY_PAVAR_VER 1
1226typedef struct wl_pavars2 {
1227 uint16 ver;
1228 uint16 len;
1229 uint16 inuse;
1230 uint16 phy_type;
1231 uint16 bandrange;
1232 uint16 chain;
1233 uint16 inpa[WL_PHY_PAVARS2_NUM];
1234} wl_pavars2_t;
1235
1236typedef struct wl_po {
1237 uint16 phy_type;
1238 uint16 band;
1239 uint16 cckpo;
1240 uint32 ofdmpo;
1241 uint16 mcspo[8];
1242} wl_po_t;
1243
1244
1245#define WLC_TXPWR_MAX (127)
1246
1247
1248#define WL_DIAG_INTERRUPT 1
1249#define WL_DIAG_LOOPBACK 2
1250#define WL_DIAG_MEMORY 3
1251#define WL_DIAG_LED 4
1252#define WL_DIAG_REG 5
1253#define WL_DIAG_SROM 6
1254#define WL_DIAG_DMA 7
1255
1256#define WL_DIAGERR_SUCCESS 0
1257#define WL_DIAGERR_FAIL_TO_RUN 1
1258#define WL_DIAGERR_NOT_SUPPORTED 2
1259#define WL_DIAGERR_INTERRUPT_FAIL 3
1260#define WL_DIAGERR_LOOPBACK_FAIL 4
1261#define WL_DIAGERR_SROM_FAIL 5
1262#define WL_DIAGERR_SROM_BADCRC 6
1263#define WL_DIAGERR_REG_FAIL 7
1264#define WL_DIAGERR_MEMORY_FAIL 8
1265#define WL_DIAGERR_NOMEM 9
1266#define WL_DIAGERR_DMA_FAIL 10
1267
1268#define WL_DIAGERR_MEMORY_TIMEOUT 11
1269#define WL_DIAGERR_MEMORY_BADPATTERN 12
1270
1271
1272#define WLC_BAND_AUTO 0
1273#define WLC_BAND_5G 1
1274#define WLC_BAND_2G 2
1275#define WLC_BAND_ALL 3
1276
1277
1278#define WL_CHAN_FREQ_RANGE_2G 0
1279#define WL_CHAN_FREQ_RANGE_5GL 1
1280#define WL_CHAN_FREQ_RANGE_5GM 2
1281#define WL_CHAN_FREQ_RANGE_5GH 3
1282
1283#define WL_CHAN_FREQ_RANGE_5GLL_VER2 4
1284#define WL_CHAN_FREQ_RANGE_5GLH_VER2 5
1285#define WL_CHAN_FREQ_RANGE_5GML_VER2 6
1286#define WL_CHAN_FREQ_RANGE_5GMH_VER2 7
1287#define WL_CHAN_FREQ_RANGE_5GH_VER2 8
1288
1289#define WL_CHAN_FREQ_RANGE_5GLL_5BAND 4
1290#define WL_CHAN_FREQ_RANGE_5GLH_5BAND 5
1291#define WL_CHAN_FREQ_RANGE_5GML_5BAND 6
1292#define WL_CHAN_FREQ_RANGE_5GMH_5BAND 7
1293#define WL_CHAN_FREQ_RANGE_5GH_5BAND 8
1294
1295
1296#define WLC_PHY_TYPE_A 0
1297#define WLC_PHY_TYPE_B 1
1298#define WLC_PHY_TYPE_G 2
1299#define WLC_PHY_TYPE_N 4
1300#define WLC_PHY_TYPE_LP 5
1301#define WLC_PHY_TYPE_SSN 6
1302#define WLC_PHY_TYPE_HT 7
1303#define WLC_PHY_TYPE_LCN 8
1304#define WLC_PHY_TYPE_NULL 0xf
1305
1306
1307#define WLC_MACMODE_DISABLED 0
1308#define WLC_MACMODE_DENY 1
1309#define WLC_MACMODE_ALLOW 2
1310
1311
1312#define GMODE_LEGACY_B 0
1313#define GMODE_AUTO 1
1314#define GMODE_ONLY 2
1315#define GMODE_B_DEFERRED 3
1316#define GMODE_PERFORMANCE 4
1317#define GMODE_LRS 5
1318#define GMODE_MAX 6
1319
1320
1321#define WLC_PLCP_AUTO -1
1322#define WLC_PLCP_SHORT 0
1323#define WLC_PLCP_LONG 1
1324
1325
1326#define WLC_PROTECTION_AUTO -1
1327#define WLC_PROTECTION_OFF 0
1328#define WLC_PROTECTION_ON 1
1329#define WLC_PROTECTION_MMHDR_ONLY 2
1330#define WLC_PROTECTION_CTS_ONLY 3
1331
1332
1333#define WLC_PROTECTION_CTL_OFF 0
1334#define WLC_PROTECTION_CTL_LOCAL 1
1335#define WLC_PROTECTION_CTL_OVERLAP 2
1336
1337
1338#define WLC_N_PROTECTION_OFF 0
1339#define WLC_N_PROTECTION_OPTIONAL 1
1340#define WLC_N_PROTECTION_20IN40 2
1341#define WLC_N_PROTECTION_MIXEDMODE 3
1342
1343
1344#define WLC_N_PREAMBLE_MIXEDMODE 0
1345#define WLC_N_PREAMBLE_GF 1
1346#define WLC_N_PREAMBLE_GF_BRCM 2
1347
1348
1349#define WLC_N_BW_20ALL 0
1350#define WLC_N_BW_40ALL 1
1351#define WLC_N_BW_20IN2G_40IN5G 2
1352
1353
1354#define WLC_N_TXRX_CHAIN0 0
1355#define WLC_N_TXRX_CHAIN1 1
1356
1357
1358#define WLC_N_SGI_20 0x01
1359#define WLC_N_SGI_40 0x02
1360
1361
1362#define PM_OFF 0
1363#define PM_MAX 1
1364#define PM_FAST 2
1365
1366#define LISTEN_INTERVAL 10
1367
1368#define INTERFERE_OVRRIDE_OFF -1
1369#define INTERFERE_NONE 0
1370#define NON_WLAN 1
1371#define WLAN_MANUAL 2
1372#define WLAN_AUTO 3
1373#define WLAN_AUTO_W_NOISE 4
1374#define AUTO_ACTIVE (1 << 7)
1375
1376typedef struct wl_aci_args {
1377 int enter_aci_thresh;
1378 int exit_aci_thresh;
1379 int usec_spin;
1380 int glitch_delay;
1381 uint16 nphy_adcpwr_enter_thresh;
1382 uint16 nphy_adcpwr_exit_thresh;
1383 uint16 nphy_repeat_ctr;
1384 uint16 nphy_num_samples;
1385 uint16 nphy_undetect_window_sz;
1386 uint16 nphy_b_energy_lo_aci;
1387 uint16 nphy_b_energy_md_aci;
1388 uint16 nphy_b_energy_hi_aci;
1389 uint16 nphy_noise_noassoc_glitch_th_up;
1390 uint16 nphy_noise_noassoc_glitch_th_dn;
1391 uint16 nphy_noise_assoc_glitch_th_up;
1392 uint16 nphy_noise_assoc_glitch_th_dn;
1393 uint16 nphy_noise_assoc_aci_glitch_th_up;
1394 uint16 nphy_noise_assoc_aci_glitch_th_dn;
1395 uint16 nphy_noise_assoc_enter_th;
1396 uint16 nphy_noise_noassoc_enter_th;
1397 uint16 nphy_noise_assoc_rx_glitch_badplcp_enter_th;
1398 uint16 nphy_noise_noassoc_crsidx_incr;
1399 uint16 nphy_noise_assoc_crsidx_incr;
1400 uint16 nphy_noise_crsidx_decr;
1401} wl_aci_args_t;
1402
1403#define TRIGGER_NOW 0
1404#define TRIGGER_CRS 0x01
1405#define TRIGGER_CRSDEASSERT 0x02
1406#define TRIGGER_GOODFCS 0x04
1407#define TRIGGER_BADFCS 0x08
1408#define TRIGGER_BADPLCP 0x10
1409#define TRIGGER_CRSGLITCH 0x20
1410#define WL_ACI_ARGS_LEGACY_LENGTH 16
1411#define WL_SAMPLECOLLECT_T_VERSION 1
1412typedef struct wl_samplecollect_args {
1413
1414 uint8 coll_us;
1415 int cores;
1416
1417 uint16 version;
1418 uint16 length;
1419 uint8 trigger;
1420 uint16 timeout;
1421 uint16 mode;
1422 uint32 pre_dur;
1423 uint32 post_dur;
1424 uint8 gpio_sel;
1425 bool downsamp;
1426 bool be_deaf;
1427 bool agc;
1428 bool filter;
1429} wl_samplecollect_args_t;
1430
1431#define WL_SAMPLEDATA_HEADER_TYPE 1
1432#define WL_SAMPLEDATA_HEADER_SIZE 80
1433#define WL_SAMPLEDATA_TYPE 2
1434#define WL_SAMPLEDATA_SEQ 0xff
1435#define WL_SAMPLEDATA_MORE_DATA 0x100
1436#define WL_SAMPLEDATA_T_VERSION 1
1437
1438#define WL_SAMPLEDATA_T_VERSION_SPEC_AN 2
1439
1440typedef struct wl_sampledata {
1441 uint16 version;
1442 uint16 size;
1443 uint16 tag;
1444 uint16 length;
1445 uint32 flag;
1446} wl_sampledata_t;
1447
1448
1449
1450#define WL_ERROR_VAL 0x00000001
1451#define WL_TRACE_VAL 0x00000002
1452#define WL_PRHDRS_VAL 0x00000004
1453#define WL_PRPKT_VAL 0x00000008
1454#define WL_INFORM_VAL 0x00000010
1455#define WL_TMP_VAL 0x00000020
1456#define WL_OID_VAL 0x00000040
1457#define WL_RATE_VAL 0x00000080
1458#define WL_ASSOC_VAL 0x00000100
1459#define WL_PRUSR_VAL 0x00000200
1460#define WL_PS_VAL 0x00000400
1461#define WL_TXPWR_VAL 0x00000800
1462#define WL_PORT_VAL 0x00001000
1463#define WL_DUAL_VAL 0x00002000
1464#define WL_WSEC_VAL 0x00004000
1465#define WL_WSEC_DUMP_VAL 0x00008000
1466#define WL_LOG_VAL 0x00010000
1467#define WL_NRSSI_VAL 0x00020000
1468#define WL_LOFT_VAL 0x00040000
1469#define WL_REGULATORY_VAL 0x00080000
1470#define WL_PHYCAL_VAL 0x00100000
1471#define WL_RADAR_VAL 0x00200000
1472#define WL_MPC_VAL 0x00400000
1473#define WL_APSTA_VAL 0x00800000
1474#define WL_DFS_VAL 0x01000000
1475#define WL_BA_VAL 0x02000000
1476#define WL_ACI_VAL 0x04000000
1477#define WL_MBSS_VAL 0x04000000
1478#define WL_CAC_VAL 0x08000000
1479#define WL_AMSDU_VAL 0x10000000
1480#define WL_AMPDU_VAL 0x20000000
1481#define WL_FFPLD_VAL 0x40000000
1482
1483
1484#define WL_DPT_VAL 0x00000001
1485#define WL_SCAN_VAL 0x00000002
1486#define WL_WOWL_VAL 0x00000004
1487#define WL_COEX_VAL 0x00000008
1488#define WL_RTDC_VAL 0x00000010
1489#define WL_PROTO_VAL 0x00000020
1490#define WL_BTA_VAL 0x00000040
1491#define WL_CHANINT_VAL 0x00000080
1492#define WL_THERMAL_VAL 0x00000100
1493#define WL_P2P_VAL 0x00000200
1494#define WL_TXRX_VAL 0x00000400
1495#define WL_MCHAN_VAL 0x00000800
1496
1497
1498#define WL_LED_NUMGPIO 16
1499
1500
1501#define WL_LED_OFF 0
1502#define WL_LED_ON 1
1503#define WL_LED_ACTIVITY 2
1504#define WL_LED_RADIO 3
1505#define WL_LED_ARADIO 4
1506#define WL_LED_BRADIO 5
1507#define WL_LED_BGMODE 6
1508#define WL_LED_WI1 7
1509#define WL_LED_WI2 8
1510#define WL_LED_WI3 9
1511#define WL_LED_ASSOC 10
1512#define WL_LED_INACTIVE 11
1513#define WL_LED_ASSOCACT 12
1514#define WL_LED_WI4 13
1515#define WL_LED_WI5 14
1516#define WL_LED_BLINKSLOW 15
1517#define WL_LED_BLINKMED 16
1518#define WL_LED_BLINKFAST 17
1519#define WL_LED_BLINKCUSTOM 18
1520#define WL_LED_BLINKPERIODIC 19
1521#define WL_LED_ASSOC_WITH_SEC 20
1522
1523#define WL_LED_START_OFF 21
1524#define WL_LED_NUMBEHAVIOR 22
1525
1526
1527#define WL_LED_BEH_MASK 0x7f
1528#define WL_LED_AL_MASK 0x80
1529
1530
1531#define WL_NUMCHANNELS 64
1532#define WL_NUMCHANSPECS 100
1533
1534
1535#define WL_WDS_WPA_ROLE_AUTH 0
1536#define WL_WDS_WPA_ROLE_SUP 1
1537#define WL_WDS_WPA_ROLE_AUTO 255
1538
1539
1540#define WL_EVENTING_MASK_LEN 16
1541
1542
1543
1544
1545#define WL_JOIN_PREF_RSSI 1
1546#define WL_JOIN_PREF_WPA 2
1547#define WL_JOIN_PREF_BAND 3
1548#define WL_JOIN_PREF_RSSI_DELTA 4
1549#define WL_JOIN_PREF_TRANS_PREF 5
1550
1551
1552#define WLJP_BAND_ASSOC_PREF 255
1553
1554
1555#define WL_WPA_ACP_MCS_ANY "\x00\x00\x00\x00"
1556
1557struct tsinfo_arg {
1558 uint8 octets[3];
1559};
1560
1561#define NFIFO 6
1562
1563#define WL_CNT_T_VERSION 6
1564
1565typedef struct {
1566 uint16 version;
1567 uint16 length;
1568
1569
1570 uint32 txframe;
1571 uint32 txbyte;
1572 uint32 txretrans;
1573 uint32 txerror;
1574 uint32 txctl;
1575 uint32 txprshort;
1576 uint32 txserr;
1577 uint32 txnobuf;
1578 uint32 txnoassoc;
1579 uint32 txrunt;
1580 uint32 txchit;
1581 uint32 txcmiss;
1582
1583
1584 uint32 txuflo;
1585 uint32 txphyerr;
1586 uint32 txphycrs;
1587
1588
1589 uint32 rxframe;
1590 uint32 rxbyte;
1591 uint32 rxerror;
1592 uint32 rxctl;
1593 uint32 rxnobuf;
1594 uint32 rxnondata;
1595 uint32 rxbadds;
1596 uint32 rxbadcm;
1597 uint32 rxfragerr;
1598 uint32 rxrunt;
1599 uint32 rxgiant;
1600 uint32 rxnoscb;
1601 uint32 rxbadproto;
1602 uint32 rxbadsrcmac;
1603 uint32 rxbadda;
1604 uint32 rxfilter;
1605
1606
1607 uint32 rxoflo;
1608 uint32 rxuflo[NFIFO];
1609
1610 uint32 d11cnt_txrts_off;
1611 uint32 d11cnt_rxcrc_off;
1612 uint32 d11cnt_txnocts_off;
1613
1614
1615 uint32 dmade;
1616 uint32 dmada;
1617 uint32 dmape;
1618 uint32 reset;
1619 uint32 tbtt;
1620 uint32 txdmawar;
1621 uint32 pkt_callback_reg_fail;
1622
1623
1624 uint32 txallfrm;
1625 uint32 txrtsfrm;
1626 uint32 txctsfrm;
1627 uint32 txackfrm;
1628 uint32 txdnlfrm;
1629 uint32 txbcnfrm;
1630 uint32 txfunfl[8];
1631 uint32 txtplunfl;
1632 uint32 txphyerror;
1633 uint32 rxfrmtoolong;
1634 uint32 rxfrmtooshrt;
1635 uint32 rxinvmachdr;
1636 uint32 rxbadfcs;
1637 uint32 rxbadplcp;
1638 uint32 rxcrsglitch;
1639 uint32 rxstrt;
1640 uint32 rxdfrmucastmbss;
1641 uint32 rxmfrmucastmbss;
1642 uint32 rxcfrmucast;
1643 uint32 rxrtsucast;
1644 uint32 rxctsucast;
1645 uint32 rxackucast;
1646 uint32 rxdfrmocast;
1647 uint32 rxmfrmocast;
1648 uint32 rxcfrmocast;
1649 uint32 rxrtsocast;
1650 uint32 rxctsocast;
1651 uint32 rxdfrmmcast;
1652 uint32 rxmfrmmcast;
1653 uint32 rxcfrmmcast;
1654 uint32 rxbeaconmbss;
1655 uint32 rxdfrmucastobss;
1656 uint32 rxbeaconobss;
1657 uint32 rxrsptmout;
1658 uint32 bcntxcancl;
1659 uint32 rxf0ovfl;
1660 uint32 rxf1ovfl;
1661 uint32 rxf2ovfl;
1662 uint32 txsfovfl;
1663 uint32 pmqovfl;
1664 uint32 rxcgprqfrm;
1665 uint32 rxcgprsqovfl;
1666 uint32 txcgprsfail;
1667 uint32 txcgprssuc;
1668 uint32 prs_timeout;
1669 uint32 rxnack;
1670 uint32 frmscons;
1671 uint32 txnack;
1672 uint32 txglitch_nack;
1673 uint32 txburst;
1674
1675
1676 uint32 txfrag;
1677 uint32 txmulti;
1678 uint32 txfail;
1679 uint32 txretry;
1680 uint32 txretrie;
1681 uint32 rxdup;
1682 uint32 txrts;
1683 uint32 txnocts;
1684 uint32 txnoack;
1685 uint32 rxfrag;
1686 uint32 rxmulti;
1687 uint32 rxcrc;
1688 uint32 txfrmsnt;
1689 uint32 rxundec;
1690
1691
1692 uint32 tkipmicfaill;
1693 uint32 tkipcntrmsr;
1694 uint32 tkipreplay;
1695 uint32 ccmpfmterr;
1696 uint32 ccmpreplay;
1697 uint32 ccmpundec;
1698 uint32 fourwayfail;
1699 uint32 wepundec;
1700 uint32 wepicverr;
1701 uint32 decsuccess;
1702 uint32 tkipicverr;
1703 uint32 wepexcluded;
1704
1705 uint32 rxundec_mcst;
1706
1707
1708 uint32 tkipmicfaill_mcst;
1709 uint32 tkipcntrmsr_mcst;
1710 uint32 tkipreplay_mcst;
1711 uint32 ccmpfmterr_mcst;
1712 uint32 ccmpreplay_mcst;
1713 uint32 ccmpundec_mcst;
1714 uint32 fourwayfail_mcst;
1715 uint32 wepundec_mcst;
1716 uint32 wepicverr_mcst;
1717 uint32 decsuccess_mcst;
1718 uint32 tkipicverr_mcst;
1719 uint32 wepexcluded_mcst;
1720
1721 uint32 txchanrej;
1722 uint32 txexptime;
1723 uint32 psmwds;
1724 uint32 phywatchdog;
1725
1726
1727 uint32 prq_entries_handled;
1728 uint32 prq_undirected_entries;
1729 uint32 prq_bad_entries;
1730 uint32 atim_suppress_count;
1731 uint32 bcn_template_not_ready;
1732 uint32 bcn_template_not_ready_done;
1733 uint32 late_tbtt_dpc;
1734
1735
1736 uint32 rx1mbps;
1737 uint32 rx2mbps;
1738 uint32 rx5mbps5;
1739 uint32 rx6mbps;
1740 uint32 rx9mbps;
1741 uint32 rx11mbps;
1742 uint32 rx12mbps;
1743 uint32 rx18mbps;
1744 uint32 rx24mbps;
1745 uint32 rx36mbps;
1746 uint32 rx48mbps;
1747 uint32 rx54mbps;
1748 uint32 rx108mbps;
1749 uint32 rx162mbps;
1750 uint32 rx216mbps;
1751 uint32 rx270mbps;
1752 uint32 rx324mbps;
1753 uint32 rx378mbps;
1754 uint32 rx432mbps;
1755 uint32 rx486mbps;
1756 uint32 rx540mbps;
1757
1758
1759 uint32 pktengrxducast;
1760 uint32 pktengrxdmcast;
1761
1762 uint32 rfdisable;
1763 uint32 bphy_rxcrsglitch;
1764
1765 uint32 txmpdu_sgi;
1766 uint32 rxmpdu_sgi;
1767 uint32 txmpdu_stbc;
1768 uint32 rxmpdu_stbc;
1769} wl_cnt_t;
1770
1771
1772#define WL_WME_CNT_VERSION 1
1773
1774typedef struct {
1775 uint32 packets;
1776 uint32 bytes;
1777} wl_traffic_stats_t;
1778
1779typedef struct {
1780 uint16 version;
1781 uint16 length;
1782
1783 wl_traffic_stats_t tx[AC_COUNT];
1784 wl_traffic_stats_t tx_failed[AC_COUNT];
1785 wl_traffic_stats_t rx[AC_COUNT];
1786 wl_traffic_stats_t rx_failed[AC_COUNT];
1787
1788 wl_traffic_stats_t forward[AC_COUNT];
1789
1790 wl_traffic_stats_t tx_expired[AC_COUNT];
1791
1792} wl_wme_cnt_t;
1793
1794struct wl_msglevel2 {
1795 uint32 low;
1796 uint32 high;
1797};
1798
1799typedef struct wl_mkeep_alive_pkt {
1800 uint16 version;
1801 uint16 length;
1802 uint32 period_msec;
1803 uint16 len_bytes;
1804 uint8 keep_alive_id;
1805 uint8 data[1];
1806} wl_mkeep_alive_pkt_t;
1807
1808#define WL_MKEEP_ALIVE_VERSION 1
1809#define WL_MKEEP_ALIVE_FIXED_LEN OFFSETOF(wl_mkeep_alive_pkt_t, data)
1810#define WL_MKEEP_ALIVE_PRECISION 500
1811
1812#define WLC_ROAM_TRIGGER_DEFAULT 0
1813#define WLC_ROAM_TRIGGER_BANDWIDTH 1
1814#define WLC_ROAM_TRIGGER_DISTANCE 2
1815#define WLC_ROAM_TRIGGER_AUTO 3
1816#define WLC_ROAM_TRIGGER_MAX_VALUE 3
1817
1818
1819#define WPA_AUTH_PFN_ANY 0xffffffff
1820
1821enum {
1822 PFN_LIST_ORDER,
1823 PFN_RSSI
1824};
1825
1826enum {
1827 DISABLE,
1828 ENABLE
1829};
1830
1831enum {
1832 OFF_ADAPT,
1833 SMART_ADAPT,
1834 STRICT_ADAPT,
1835 SLOW_ADAPT
1836};
1837
1838#define SORT_CRITERIA_BIT 0
1839#define AUTO_NET_SWITCH_BIT 1
1840#define ENABLE_BKGRD_SCAN_BIT 2
1841#define IMMEDIATE_SCAN_BIT 3
1842#define AUTO_CONNECT_BIT 4
1843#define ENABLE_BD_SCAN_BIT 5
1844#define ENABLE_ADAPTSCAN_BIT 6
1845#define IMMEDIATE_EVENT_BIT 8
1846
1847#define SORT_CRITERIA_MASK 0x0001
1848#define AUTO_NET_SWITCH_MASK 0x0002
1849#define ENABLE_BKGRD_SCAN_MASK 0x0004
1850#define IMMEDIATE_SCAN_MASK 0x0008
1851#define AUTO_CONNECT_MASK 0x0010
1852#define ENABLE_BD_SCAN_MASK 0x0020
1853#define ENABLE_ADAPTSCAN_MASK 0x00c0
1854#define IMMEDIATE_EVENT_MASK 0x0100
1855
1856#define PFN_VERSION 2
1857#define PFN_SCANRESULT_VERSION 1
1858#define MAX_PFN_LIST_COUNT 16
1859
1860#define PFN_COMPLETE 1
1861#define PFN_INCOMPLETE 0
1862
1863#define DEFAULT_BESTN 2
1864#define DEFAULT_MSCAN 0
1865#define DEFAULT_REPEAT 10
1866#define DEFAULT_EXP 2
1867
1868
1869typedef struct wl_pfn_subnet_info {
1870 struct ether_addr BSSID;
1871 uint8 channel;
1872 uint8 SSID_len;
1873 uint8 SSID[32];
1874} wl_pfn_subnet_info_t;
1875
1876typedef struct wl_pfn_net_info {
1877 wl_pfn_subnet_info_t pfnsubnet;
1878 int16 RSSI;
1879 uint16 timestamp;
1880} wl_pfn_net_info_t;
1881
1882typedef struct wl_pfn_scanresults {
1883 uint32 version;
1884 uint32 status;
1885 uint32 count;
1886 wl_pfn_net_info_t netinfo[1];
1887} wl_pfn_scanresults_t;
1888
1889
1890typedef struct wl_pfn_param {
1891 int32 version;
1892 int32 scan_freq;
1893 int32 lost_network_timeout;
1894 int16 flags;
1895 int16 rssi_margin;
1896 uint8 bestn;
1897 uint8 mscan;
1898 uint8 repeat;
1899 uint8 exp;
1900 int32 slow_freq;
1901} wl_pfn_param_t;
1902
1903typedef struct wl_pfn_bssid {
1904 struct ether_addr macaddr;
1905
1906 uint16 flags;
1907} wl_pfn_bssid_t;
1908#define WL_PFN_SUPPRESSFOUND_MASK 0x08
1909#define WL_PFN_SUPPRESSLOST_MASK 0x10
1910
1911typedef struct wl_pfn_cfg {
1912 uint32 reporttype;
1913 int32 channel_num;
1914 uint16 channel_list[WL_NUMCHANNELS];
1915} wl_pfn_cfg_t;
1916#define WL_PFN_REPORT_ALLNET 0
1917#define WL_PFN_REPORT_SSIDNET 1
1918#define WL_PFN_REPORT_BSSIDNET 2
1919
1920typedef struct wl_pfn {
1921 wlc_ssid_t ssid;
1922 int32 flags;
1923 int32 infra;
1924 int32 auth;
1925 int32 wpa_auth;
1926 int32 wsec;
1927} wl_pfn_t;
1928#define WL_PFN_HIDDEN_BIT 2
1929#define PNO_SCAN_MAX_FW 508*1000
1930#define PNO_SCAN_MAX_FW_SEC PNO_SCAN_MAX_FW/1000
1931#define PNO_SCAN_MIN_FW_SEC 10
1932#define WL_PFN_HIDDEN_MASK 0x4
1933
1934
1935#define TOE_TX_CSUM_OL 0x00000001
1936#define TOE_RX_CSUM_OL 0x00000002
1937
1938
1939#define TOE_ERRTEST_TX_CSUM 0x00000001
1940#define TOE_ERRTEST_RX_CSUM 0x00000002
1941#define TOE_ERRTEST_RX_CSUM2 0x00000004
1942
1943struct toe_ol_stats_t {
1944
1945 uint32 tx_summed;
1946
1947
1948 uint32 tx_iph_fill;
1949 uint32 tx_tcp_fill;
1950 uint32 tx_udp_fill;
1951 uint32 tx_icmp_fill;
1952
1953
1954 uint32 rx_iph_good;
1955 uint32 rx_iph_bad;
1956 uint32 rx_tcp_good;
1957 uint32 rx_tcp_bad;
1958 uint32 rx_udp_good;
1959 uint32 rx_udp_bad;
1960 uint32 rx_icmp_good;
1961 uint32 rx_icmp_bad;
1962
1963
1964 uint32 tx_tcp_errinj;
1965 uint32 tx_udp_errinj;
1966 uint32 tx_icmp_errinj;
1967
1968
1969 uint32 rx_tcp_errinj;
1970 uint32 rx_udp_errinj;
1971 uint32 rx_icmp_errinj;
1972};
1973
1974
1975#define ARP_OL_AGENT 0x00000001
1976#define ARP_OL_SNOOP 0x00000002
1977#define ARP_OL_HOST_AUTO_REPLY 0x00000004
1978#define ARP_OL_PEER_AUTO_REPLY 0x00000008
1979
1980
1981#define ARP_ERRTEST_REPLY_PEER 0x1
1982#define ARP_ERRTEST_REPLY_HOST 0x2
1983
1984#define ARP_MULTIHOMING_MAX 8
1985
1986
1987struct arp_ol_stats_t {
1988 uint32 host_ip_entries;
1989 uint32 host_ip_overflow;
1990
1991 uint32 arp_table_entries;
1992 uint32 arp_table_overflow;
1993
1994 uint32 host_request;
1995 uint32 host_reply;
1996 uint32 host_service;
1997
1998 uint32 peer_request;
1999 uint32 peer_request_drop;
2000 uint32 peer_reply;
2001 uint32 peer_reply_drop;
2002 uint32 peer_service;
2003};
2004
2005
2006
2007
2008typedef struct wl_keep_alive_pkt {
2009 uint32 period_msec;
2010 uint16 len_bytes;
2011 uint8 data[1];
2012} wl_keep_alive_pkt_t;
2013
2014#define WL_KEEP_ALIVE_FIXED_LEN OFFSETOF(wl_keep_alive_pkt_t, data)
2015
2016
2017
2018
2019typedef enum wl_pkt_filter_type {
2020 WL_PKT_FILTER_TYPE_PATTERN_MATCH
2021} wl_pkt_filter_type_t;
2022
2023#define WL_PKT_FILTER_TYPE wl_pkt_filter_type_t
2024
2025
2026typedef struct wl_pkt_filter_pattern {
2027 uint32 offset;
2028 uint32 size_bytes;
2029 uint8 mask_and_pattern[1];
2030} wl_pkt_filter_pattern_t;
2031
2032
2033typedef struct wl_pkt_filter {
2034 uint32 id;
2035 uint32 type;
2036 uint32 negate_match;
2037 union {
2038 wl_pkt_filter_pattern_t pattern;
2039 } u;
2040} wl_pkt_filter_t;
2041
2042#define WL_PKT_FILTER_FIXED_LEN OFFSETOF(wl_pkt_filter_t, u)
2043#define WL_PKT_FILTER_PATTERN_FIXED_LEN OFFSETOF(wl_pkt_filter_pattern_t, mask_and_pattern)
2044
2045
2046typedef struct wl_pkt_filter_enable {
2047 uint32 id;
2048 uint32 enable;
2049} wl_pkt_filter_enable_t;
2050
2051
2052typedef struct wl_pkt_filter_list {
2053 uint32 num;
2054 wl_pkt_filter_t filter[1];
2055} wl_pkt_filter_list_t;
2056
2057#define WL_PKT_FILTER_LIST_FIXED_LEN OFFSETOF(wl_pkt_filter_list_t, filter)
2058
2059
2060typedef struct wl_pkt_filter_stats {
2061 uint32 num_pkts_matched;
2062 uint32 num_pkts_forwarded;
2063 uint32 num_pkts_discarded;
2064} wl_pkt_filter_stats_t;
2065
2066
2067typedef struct wl_seq_cmd_ioctl {
2068 uint32 cmd;
2069 uint32 len;
2070} wl_seq_cmd_ioctl_t;
2071
2072#define WL_SEQ_CMD_ALIGN_BYTES 4
2073
2074
2075#define WL_SEQ_CMDS_GET_IOCTL_FILTER(cmd) \
2076 (((cmd) == WLC_GET_MAGIC) || \
2077 ((cmd) == WLC_GET_VERSION) || \
2078 ((cmd) == WLC_GET_AP) || \
2079 ((cmd) == WLC_GET_INSTANCE))
2080
2081
2082
2083#define WL_PKTENG_PER_TX_START 0x01
2084#define WL_PKTENG_PER_TX_STOP 0x02
2085#define WL_PKTENG_PER_RX_START 0x04
2086#define WL_PKTENG_PER_RX_WITH_ACK_START 0x05
2087#define WL_PKTENG_PER_TX_WITH_ACK_START 0x06
2088#define WL_PKTENG_PER_RX_STOP 0x08
2089#define WL_PKTENG_PER_MASK 0xff
2090
2091#define WL_PKTENG_SYNCHRONOUS 0x100
2092
2093typedef struct wl_pkteng {
2094 uint32 flags;
2095 uint32 delay;
2096 uint32 nframes;
2097 uint32 length;
2098 uint8 seqno;
2099 struct ether_addr dest;
2100 struct ether_addr src;
2101} wl_pkteng_t;
2102
2103#define NUM_80211b_RATES 4
2104#define NUM_80211ag_RATES 8
2105#define NUM_80211n_RATES 32
2106#define NUM_80211_RATES (NUM_80211b_RATES+NUM_80211ag_RATES+NUM_80211n_RATES)
2107typedef struct wl_pkteng_stats {
2108 uint32 lostfrmcnt;
2109 int32 rssi;
2110 int32 snr;
2111 uint16 rxpktcnt[NUM_80211_RATES+1];
2112} wl_pkteng_stats_t;
2113
2114
2115#define WL_WOWL_MAGIC (1 << 0)
2116#define WL_WOWL_NET (1 << 1)
2117#define WL_WOWL_DIS (1 << 2)
2118#define WL_WOWL_RETR (1 << 3)
2119#define WL_WOWL_BCN (1 << 4)
2120#define WL_WOWL_TST (1 << 5)
2121#define WL_WOWL_M1 (1 << 6)
2122#define WL_WOWL_EAPID (1 << 7)
2123#define WL_WOWL_KEYROT (1 << 14)
2124#define WL_WOWL_BCAST (1 << 15)
2125
2126#define MAGIC_PKT_MINLEN 102
2127
2128typedef struct {
2129 uint masksize;
2130 uint offset;
2131 uint patternoffset;
2132 uint patternsize;
2133 ulong id;
2134
2135
2136} wl_wowl_pattern_t;
2137
2138typedef struct {
2139 uint count;
2140 wl_wowl_pattern_t pattern[1];
2141} wl_wowl_pattern_list_t;
2142
2143typedef struct {
2144 uint8 pci_wakeind;
2145 uint16 ucode_wakeind;
2146} wl_wowl_wakeind_t;
2147
2148
2149typedef struct wl_txrate_class {
2150 uint8 init_rate;
2151 uint8 min_rate;
2152 uint8 max_rate;
2153} wl_txrate_class_t;
2154
2155
2156
2157
2158#define WLC_OBSS_SCAN_PASSIVE_DWELL_DEFAULT 20
2159#define WLC_OBSS_SCAN_PASSIVE_DWELL_MIN 5
2160#define WLC_OBSS_SCAN_PASSIVE_DWELL_MAX 1000
2161#define WLC_OBSS_SCAN_ACTIVE_DWELL_DEFAULT 10
2162#define WLC_OBSS_SCAN_ACTIVE_DWELL_MIN 10
2163#define WLC_OBSS_SCAN_ACTIVE_DWELL_MAX 1000
2164#define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_DEFAULT 300
2165#define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_MIN 10
2166#define WLC_OBSS_SCAN_WIDTHSCAN_INTERVAL_MAX 900
2167#define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_DEFAULT 5
2168#define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_MIN 5
2169#define WLC_OBSS_SCAN_CHANWIDTH_TRANSITION_DLY_MAX 100
2170#define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_DEFAULT 200
2171#define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_MIN 200
2172#define WLC_OBSS_SCAN_PASSIVE_TOTAL_PER_CHANNEL_MAX 10000
2173#define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_DEFAULT 20
2174#define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_MIN 20
2175#define WLC_OBSS_SCAN_ACTIVE_TOTAL_PER_CHANNEL_MAX 10000
2176#define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_DEFAULT 25
2177#define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_MIN 0
2178#define WLC_OBSS_SCAN_ACTIVITY_THRESHOLD_MAX 100
2179
2180
2181typedef struct wl_obss_scan_arg {
2182 int16 passive_dwell;
2183 int16 active_dwell;
2184 int16 bss_widthscan_interval;
2185 int16 passive_total;
2186 int16 active_total;
2187 int16 chanwidth_transition_delay;
2188 int16 activity_threshold;
2189} wl_obss_scan_arg_t;
2190
2191#define WL_OBSS_SCAN_PARAM_LEN sizeof(wl_obss_scan_arg_t)
2192#define WL_MIN_NUM_OBSS_SCAN_ARG 7
2193
2194#define WL_COEX_INFO_MASK 0x07
2195#define WL_COEX_INFO_REQ 0x01
2196#define WL_COEX_40MHZ_INTOLERANT 0x02
2197#define WL_COEX_WIDTH20 0x04
2198
2199#define WLC_RSSI_INVALID 0
2200
2201#define MAX_RSSI_LEVELS 8
2202
2203
2204typedef struct wl_rssi_event {
2205 uint32 rate_limit_msec;
2206 uint8 num_rssi_levels;
2207 int8 rssi_levels[MAX_RSSI_LEVELS];
2208} wl_rssi_event_t;
2209
2210typedef struct wl_action_obss_coex_req {
2211 uint8 info;
2212 uint8 num;
2213 uint8 ch_list[1];
2214} wl_action_obss_coex_req_t;
2215
2216
2217#define EXTLOG_CUR_VER 0x0100
2218
2219#define MAX_ARGSTR_LEN 18
2220
2221
2222#define LOG_MODULE_COMMON 0x0001
2223#define LOG_MODULE_ASSOC 0x0002
2224#define LOG_MODULE_EVENT 0x0004
2225#define LOG_MODULE_MAX 3
2226
2227
2228#define WL_LOG_LEVEL_DISABLE 0
2229#define WL_LOG_LEVEL_ERR 1
2230#define WL_LOG_LEVEL_WARN 2
2231#define WL_LOG_LEVEL_INFO 3
2232#define WL_LOG_LEVEL_MAX WL_LOG_LEVEL_INFO
2233
2234
2235#define LOG_FLAG_EVENT 1
2236
2237
2238#define LOG_ARGTYPE_NULL 0
2239#define LOG_ARGTYPE_STR 1
2240#define LOG_ARGTYPE_INT 2
2241#define LOG_ARGTYPE_INT_STR 3
2242#define LOG_ARGTYPE_STR_INT 4
2243
2244typedef struct wlc_extlog_cfg {
2245 int max_number;
2246 uint16 module;
2247 uint8 level;
2248 uint8 flag;
2249 uint16 version;
2250} wlc_extlog_cfg_t;
2251
2252typedef struct log_record {
2253 uint32 time;
2254 uint16 module;
2255 uint16 id;
2256 uint8 level;
2257 uint8 sub_unit;
2258 uint8 seq_num;
2259 int32 arg;
2260 char str[MAX_ARGSTR_LEN];
2261} log_record_t;
2262
2263typedef struct wlc_extlog_req {
2264 uint32 from_last;
2265 uint32 num;
2266} wlc_extlog_req_t;
2267
2268typedef struct wlc_extlog_results {
2269 uint16 version;
2270 uint16 record_len;
2271 uint32 num;
2272 log_record_t logs[1];
2273} wlc_extlog_results_t;
2274
2275typedef struct log_idstr {
2276 uint16 id;
2277 uint16 flag;
2278 uint8 arg_type;
2279 const char *fmt_str;
2280} log_idstr_t;
2281
2282#define FMTSTRF_USER 1
2283
2284
2285typedef enum {
2286 FMTSTR_DRIVER_UP_ID = 0,
2287 FMTSTR_DRIVER_DOWN_ID = 1,
2288 FMTSTR_SUSPEND_MAC_FAIL_ID = 2,
2289 FMTSTR_NO_PROGRESS_ID = 3,
2290 FMTSTR_RFDISABLE_ID = 4,
2291 FMTSTR_REG_PRINT_ID = 5,
2292 FMTSTR_EXPTIME_ID = 6,
2293 FMTSTR_JOIN_START_ID = 7,
2294 FMTSTR_JOIN_COMPLETE_ID = 8,
2295 FMTSTR_NO_NETWORKS_ID = 9,
2296 FMTSTR_SECURITY_MISMATCH_ID = 10,
2297 FMTSTR_RATE_MISMATCH_ID = 11,
2298 FMTSTR_AP_PRUNED_ID = 12,
2299 FMTSTR_KEY_INSERTED_ID = 13,
2300 FMTSTR_DEAUTH_ID = 14,
2301 FMTSTR_DISASSOC_ID = 15,
2302 FMTSTR_LINK_UP_ID = 16,
2303 FMTSTR_LINK_DOWN_ID = 17,
2304 FMTSTR_RADIO_HW_OFF_ID = 18,
2305 FMTSTR_RADIO_HW_ON_ID = 19,
2306 FMTSTR_EVENT_DESC_ID = 20,
2307 FMTSTR_PNP_SET_POWER_ID = 21,
2308 FMTSTR_RADIO_SW_OFF_ID = 22,
2309 FMTSTR_RADIO_SW_ON_ID = 23,
2310 FMTSTR_PWD_MISMATCH_ID = 24,
2311 FMTSTR_FATAL_ERROR_ID = 25,
2312 FMTSTR_AUTH_FAIL_ID = 26,
2313 FMTSTR_ASSOC_FAIL_ID = 27,
2314 FMTSTR_IBSS_FAIL_ID = 28,
2315 FMTSTR_EXTAP_FAIL_ID = 29,
2316 FMTSTR_MAX_ID
2317} log_fmtstr_id_t;
2318
2319#ifdef DONGLEOVERLAYS
2320typedef struct {
2321 uint32 flags_idx;
2322 uint32 offset;
2323 uint32 len;
2324
2325} wl_ioctl_overlay_t;
2326
2327#define OVERLAY_IDX_MASK 0x000000ff
2328#define OVERLAY_IDX_SHIFT 0
2329#define OVERLAY_FLAGS_MASK 0xffffff00
2330#define OVERLAY_FLAGS_SHIFT 8
2331
2332#define OVERLAY_FLAG_POSTLOAD 0x100
2333
2334#define OVERLAY_FLAG_DEFER_DL 0x200
2335
2336#define OVERLAY_FLAG_PRESLEEP 0x400
2337
2338#define OVERLAY_DOWNLOAD_CHUNKSIZE 1024
2339#endif
2340
2341
2342#include <packed_section_end.h>
2343
2344
2345#include <packed_section_start.h>
2346
2347#define VNDR_IE_CMD_LEN 4
2348
2349
2350#define VNDR_IE_BEACON_FLAG 0x1
2351#define VNDR_IE_PRBRSP_FLAG 0x2
2352#define VNDR_IE_ASSOCRSP_FLAG 0x4
2353#define VNDR_IE_AUTHRSP_FLAG 0x8
2354#define VNDR_IE_PRBREQ_FLAG 0x10
2355#define VNDR_IE_ASSOCREQ_FLAG 0x20
2356#define VNDR_IE_CUSTOM_FLAG 0x100
2357
2358#define VNDR_IE_INFO_HDR_LEN (sizeof(uint32))
2359
2360typedef BWL_PRE_PACKED_STRUCT struct {
2361 uint32 pktflag;
2362 vndr_ie_t vndr_ie_data;
2363} BWL_POST_PACKED_STRUCT vndr_ie_info_t;
2364
2365typedef BWL_PRE_PACKED_STRUCT struct {
2366 int iecount;
2367 vndr_ie_info_t vndr_ie_list[1];
2368} BWL_POST_PACKED_STRUCT vndr_ie_buf_t;
2369
2370typedef BWL_PRE_PACKED_STRUCT struct {
2371 char cmd[VNDR_IE_CMD_LEN];
2372 vndr_ie_buf_t vndr_ie_buffer;
2373} BWL_POST_PACKED_STRUCT vndr_ie_setbuf_t;
2374
2375
2376
2377typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_hdr {
2378 struct ether_addr staAddr;
2379 uint16 ieLen;
2380} BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_hdr_t;
2381
2382typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_data {
2383 sta_prbreq_wps_ie_hdr_t hdr;
2384 uint8 ieData[1];
2385} BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_data_t;
2386
2387typedef BWL_PRE_PACKED_STRUCT struct sta_prbreq_wps_ie_list {
2388 uint32 totLen;
2389 uint8 ieDataList[1];
2390} BWL_POST_PACKED_STRUCT sta_prbreq_wps_ie_list_t;
2391
2392
2393#ifdef WLMEDIA_TXFAILEVENT
2394typedef BWL_PRE_PACKED_STRUCT struct {
2395 char dest[ETHER_ADDR_LEN];
2396 uint8 prio;
2397 uint8 flags;
2398 uint32 tsf_l;
2399 uint32 tsf_h;
2400 uint16 rates;
2401 uint16 txstatus;
2402} BWL_POST_PACKED_STRUCT txfailinfo_t;
2403#endif
2404
2405#include <packed_section_end.h>
2406
2407
2408#define ASSERTLOG_CUR_VER 0x0100
2409#define MAX_ASSRTSTR_LEN 64
2410
2411typedef struct assert_record {
2412 uint32 time;
2413 uint8 seq_num;
2414 char str[MAX_ASSRTSTR_LEN];
2415} assert_record_t;
2416
2417typedef struct assertlog_results {
2418 uint16 version;
2419 uint16 record_len;
2420 uint32 num;
2421 assert_record_t logs[1];
2422} assertlog_results_t;
2423
2424#define LOGRRC_FIX_LEN 8
2425#define IOBUF_ALLOWED_NUM_OF_LOGREC(type, len) ((len - LOGRRC_FIX_LEN)/sizeof(type))
2426
2427
2428
2429
2430
2431#define CHANIM_DISABLE 0
2432#define CHANIM_DETECT 1
2433#define CHANIM_ACT 2
2434#define CHANIM_MODE_MAX 2
2435
2436
2437#define APCS_IOCTL 1
2438#define APCS_CHANIM 2
2439#define APCS_CSTIMER 3
2440#define APCS_BTA 4
2441
2442
2443#define CHANIM_ACS_RECORD 10
2444
2445
2446typedef struct {
2447 bool valid;
2448 uint8 trigger;
2449 chanspec_t selected_chspc;
2450 uint32 glitch_cnt;
2451 uint8 ccastats;
2452 uint timestamp;
2453} chanim_acs_record_t;
2454
2455typedef struct {
2456 chanim_acs_record_t acs_record[CHANIM_ACS_RECORD];
2457 uint8 count;
2458 uint timestamp;
2459} wl_acs_record_t;
2460
2461
2462
2463#define SMFS_VERSION 1
2464
2465typedef struct wl_smfs_elem {
2466 uint32 count;
2467 uint16 code;
2468} wl_smfs_elem_t;
2469
2470typedef struct wl_smf_stats {
2471 uint32 version;
2472 uint16 length;
2473 uint8 type;
2474 uint8 codetype;
2475 uint32 ignored_cnt;
2476 uint32 malformed_cnt;
2477 uint32 count_total;
2478 wl_smfs_elem_t elem[1];
2479} wl_smf_stats_t;
2480
2481#define WL_SMFSTATS_FIXED_LEN OFFSETOF(wl_smf_stats_t, elem);
2482
2483enum {
2484 SMFS_CODETYPE_SC,
2485 SMFS_CODETYPE_RC
2486};
2487
2488
2489#define SMFS_CODE_MALFORMED 0xFFFE
2490#define SMFS_CODE_IGNORED 0xFFFD
2491
2492typedef enum smfs_type {
2493 SMFS_TYPE_AUTH,
2494 SMFS_TYPE_ASSOC,
2495 SMFS_TYPE_REASSOC,
2496 SMFS_TYPE_DISASSOC_TX,
2497 SMFS_TYPE_DISASSOC_RX,
2498 SMFS_TYPE_DEAUTH_TX,
2499 SMFS_TYPE_DEAUTH_RX,
2500 SMFS_TYPE_MAX
2501} smfs_type_t;
2502
2503#ifdef PHYMON
2504
2505#define PHYMON_VERSION 1
2506
2507typedef struct wl_phycal_core_state {
2508
2509 int16 tx_iqlocal_a;
2510 int16 tx_iqlocal_b;
2511 int8 tx_iqlocal_ci;
2512 int8 tx_iqlocal_cq;
2513 int8 tx_iqlocal_di;
2514 int8 tx_iqlocal_dq;
2515 int8 tx_iqlocal_ei;
2516 int8 tx_iqlocal_eq;
2517 int8 tx_iqlocal_fi;
2518 int8 tx_iqlocal_fq;
2519
2520
2521 int16 rx_iqcal_a;
2522 int16 rx_iqcal_b;
2523
2524 uint8 tx_iqlocal_pwridx;
2525 uint32 papd_epsilon_table[64];
2526 int16 papd_epsilon_offset;
2527 uint8 curr_tx_pwrindex;
2528 int8 idle_tssi;
2529 int8 est_tx_pwr;
2530 int8 est_rx_pwr;
2531 uint16 rx_gaininfo;
2532 uint16 init_gaincode;
2533 int8 estirr_tx;
2534 int8 estirr_rx;
2535
2536} wl_phycal_core_state_t;
2537
2538typedef struct wl_phycal_state {
2539 int version;
2540 int8 num_phy_cores;
2541 int8 curr_temperature;
2542 chanspec_t chspec;
2543 bool aci_state;
2544 uint16 crsminpower;
2545 uint16 crsminpowerl;
2546 uint16 crsminpoweru;
2547 wl_phycal_core_state_t phycal_core[1];
2548} wl_phycal_state_t;
2549
2550#define WL_PHYCAL_STAT_FIXED_LEN OFFSETOF(wl_phycal_state_t, phycal_core)
2551#endif
2552
2553#ifdef WLP2P
2554
2555typedef struct wl_p2p_disc_st {
2556 uint8 state;
2557 chanspec_t chspec;
2558 uint16 dwell;
2559} wl_p2p_disc_st_t;
2560
2561
2562#define WL_P2P_DISC_ST_SCAN 0
2563#define WL_P2P_DISC_ST_LISTEN 1
2564#define WL_P2P_DISC_ST_SEARCH 2
2565
2566
2567typedef struct wl_p2p_scan {
2568 uint8 type;
2569 uint8 reserved[3];
2570
2571} wl_p2p_scan_t;
2572
2573
2574typedef struct wl_p2p_if {
2575 struct ether_addr addr;
2576 uint8 type;
2577 chanspec_t chspec;
2578} wl_p2p_if_t;
2579
2580
2581#define WL_P2P_IF_CLIENT 0
2582#define WL_P2P_IF_GO 1
2583#define WL_P2P_IF_DYNBCN_GO 2
2584#define WL_P2P_IF_DEV 3
2585
2586
2587typedef struct wl_p2p_ifq {
2588 uint bsscfgidx;
2589 char ifname[BCM_MSG_IFNAME_MAX];
2590} wl_p2p_ifq_t;
2591
2592
2593typedef struct wl_p2p_ops {
2594 uint8 ops;
2595 uint8 ctw;
2596} wl_p2p_ops_t;
2597
2598
2599typedef struct wl_p2p_sched_desc {
2600 uint32 start;
2601 uint32 interval;
2602 uint32 duration;
2603 uint32 count;
2604} wl_p2p_sched_desc_t;
2605
2606
2607#define WL_P2P_SCHED_RSVD 0
2608#define WL_P2P_SCHED_REPEAT 255
2609
2610typedef struct wl_p2p_sched {
2611 uint8 type;
2612 uint8 action;
2613 uint8 option;
2614 wl_p2p_sched_desc_t desc[1];
2615} wl_p2p_sched_t;
2616#define WL_P2P_SCHED_FIXED_LEN 3
2617
2618
2619#define WL_P2P_SCHED_TYPE_ABS 0
2620#define WL_P2P_SCHED_TYPE_REQ_ABS 1
2621
2622
2623#define WL_P2P_SCHED_ACTION_NONE 0
2624#define WL_P2P_SCHED_ACTION_DOZE 1
2625
2626#define WL_P2P_SCHED_ACTION_GOOFF 2
2627
2628#define WL_P2P_SCHED_ACTION_RESET 255
2629
2630
2631#define WL_P2P_SCHED_OPTION_NORMAL 0
2632#define WL_P2P_SCHED_OPTION_BCNPCT 1
2633
2634#define WL_P2P_SCHED_OPTION_TSFOFS 2
2635
2636
2637#define WL_P2P_FEAT_GO_CSA (1 << 0)
2638#define WL_P2P_FEAT_GO_NOLEGACY (1 << 1)
2639#define WL_P2P_FEAT_RESTRICT_DEV_RESP (1 << 2)
2640#endif
2641
2642
2643#define BCM_ACTION_RFAWARE 0x77
2644#define BCM_ACTION_RFAWARE_DCS 0x01
2645
2646
2647
2648#define WL_11N_2x2 1
2649#define WL_11N_3x3 3
2650#define WL_11N_4x4 4
2651
2652
2653#define WLFEATURE_DISABLE_11N 0x00000001
2654#define WLFEATURE_DISABLE_11N_STBC_TX 0x00000002
2655#define WLFEATURE_DISABLE_11N_STBC_RX 0x00000004
2656#define WLFEATURE_DISABLE_11N_SGI_TX 0x00000008
2657#define WLFEATURE_DISABLE_11N_SGI_RX 0x00000010
2658#define WLFEATURE_DISABLE_11N_AMPDU_TX 0x00000020
2659#define WLFEATURE_DISABLE_11N_AMPDU_RX 0x00000040
2660#define WLFEATURE_DISABLE_11N_GF 0x00000080
2661
2662
2663#define LQ_IDX_LAST 3
2664#define MCS_INDEX_SIZE 33
2665
2666#define LQ_IDX_MIN 0
2667#define LQ_IDX_MAX 1
2668#define LQ_IDX_AVG 2
2669#define LQ_IDX_SUM 2
2670#define LQ_IDX_LAST 3
2671#define LQ_STOP_MONITOR 0
2672#define LQ_START_MONITOR 1
2673
2674#define LINKQUAL_V1 0x01
2675
2676struct wl_lq {
2677 int32 enable;
2678 int32 rssi[LQ_IDX_LAST];
2679 int32 rssicnt;
2680 int32 snr[LQ_IDX_LAST];
2681 uint32 nsamples;
2682 uint8 isvalid;
2683 uint8 version;
2684};
2685
2686typedef struct wl_lq wl_lq_t;
2687typedef struct wl_lq wl_lq_stats_t;
2688
2689typedef struct {
2690 struct ether_addr ea;
2691 uint8 ac_cat;
2692 uint8 num_pkts;
2693} wl_mac_ratehisto_cmd_t;
2694
2695
2696typedef struct {
2697 uint32 rate[WLC_MAXRATE + 1];
2698 uint32 mcs_index[MCS_INDEX_SIZE];
2699 uint32 tsf_timer[2][2];
2700} wl_mac_ratehisto_res_t;
2701
2702#ifdef PROP_TXSTATUS
2703
2704
2705#define WLFC_FLAGS_RSSI_SIGNALS 1
2706
2707
2708#define WLFC_FLAGS_XONXOFF_SIGNALS 2
2709
2710
2711#define WLFC_FLAGS_CREDIT_STATUS_SIGNALS 4
2712
2713#define WLFC_FLAGS_HOST_PROPTXSTATUS_ACTIVE 8
2714#define WLFC_FLAGS_PSQ_GENERATIONFSM_ENABLE 16
2715#define WLFC_FLAGS_PSQ_ZERO_BUFFER_ENABLE 32
2716#endif
2717
2718#define BTA_STATE_LOG_SZ 64
2719
2720
2721enum {
2722 HCIReset = 1,
2723 HCIReadLocalAMPInfo,
2724 HCIReadLocalAMPASSOC,
2725 HCIWriteRemoteAMPASSOC,
2726 HCICreatePhysicalLink,
2727 HCIAcceptPhysicalLinkRequest,
2728 HCIDisconnectPhysicalLink,
2729 HCICreateLogicalLink,
2730 HCIAcceptLogicalLink,
2731 HCIDisconnectLogicalLink,
2732 HCILogicalLinkCancel,
2733 HCIAmpStateChange,
2734 HCIWriteLogicalLinkAcceptTimeout
2735};
2736
2737typedef struct flush_txfifo {
2738 uint32 txfifobmp;
2739 uint32 hwtxfifoflush;
2740 struct ether_addr ea;
2741} flush_txfifo_t;
2742
2743#define CHANNEL_5G_LOW_START 36
2744#define CHANNEL_5G_MID_START 52
2745#define CHANNEL_5G_HIGH_START 100
2746#define CHANNEL_5G_UPPER_START 149
2747
2748enum {
2749 SPATIAL_MODE_2G_IDX = 0,
2750 SPATIAL_MODE_5G_LOW_IDX,
2751 SPATIAL_MODE_5G_MID_IDX,
2752 SPATIAL_MODE_5G_HIGH_IDX,
2753 SPATIAL_MODE_5G_UPPER_IDX,
2754 SPATIAL_MODE_MAX_IDX
2755};
2756
2757#endif