diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-22 10:38:37 -0500 |
commit | fcc9d2e5a6c89d22b8b773a64fb4ad21ac318446 (patch) | |
tree | a57612d1888735a2ec7972891b68c1ac5ec8faea /drivers/net/wireless/bcmdhd/include/wlioctl.h | |
parent | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (diff) |
Diffstat (limited to 'drivers/net/wireless/bcmdhd/include/wlioctl.h')
-rw-r--r-- | drivers/net/wireless/bcmdhd/include/wlioctl.h | 2757 |
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 | |||
48 | typedef 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 | |||
57 | typedef 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 | |||
66 | typedef struct ssid_info | ||
67 | { | ||
68 | uint8 ssid_len; | ||
69 | uint8 ssid[32]; | ||
70 | } ssid_info_t; | ||
71 | |||
72 | typedef 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 | |||
92 | typedef 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 | |||
127 | typedef 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 | |||
160 | typedef 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 | |||
171 | typedef struct wl_bss_config { | ||
172 | uint32 atim_window; | ||
173 | uint32 beacon_period; | ||
174 | uint32 chanspec; | ||
175 | } wl_bss_config_t; | ||
176 | |||
177 | |||
178 | typedef 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 | ||
194 | typedef 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 | |||
221 | typedef 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 | |||
231 | typedef 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 | ||
259 | typedef 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 | |||
267 | typedef 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 | |||
276 | typedef 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 | |||
287 | typedef 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 | |||
296 | typedef 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 | ||
303 | typedef struct wl_rateset { | ||
304 | uint32 count; | ||
305 | uint8 rates[WL_NUMRATES]; | ||
306 | } wl_rateset_t; | ||
307 | |||
308 | typedef struct wl_rateset_args { | ||
309 | uint32 count; | ||
310 | uint8 rates[WL_NUMRATES]; | ||
311 | uint8 mcs[MCSSET_LEN]; | ||
312 | } wl_rateset_args_t; | ||
313 | |||
314 | |||
315 | typedef struct wl_uint32_list { | ||
316 | |||
317 | uint32 count; | ||
318 | |||
319 | uint32 element[1]; | ||
320 | } wl_uint32_list_t; | ||
321 | |||
322 | |||
323 | typedef 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 | |||
332 | typedef wl_assoc_params_t wl_reassoc_params_t; | ||
333 | #define WL_REASSOC_PARAMS_FIXED_SIZE WL_ASSOC_PARAMS_FIXED_SIZE | ||
334 | |||
335 | |||
336 | typedef wl_assoc_params_t wl_join_assoc_params_t; | ||
337 | #define WL_JOIN_ASSOC_PARAMS_FIXED_SIZE WL_ASSOC_PARAMS_FIXED_SIZE | ||
338 | |||
339 | |||
340 | typedef 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 | |||
347 | typedef 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 | |||
356 | typedef 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 | |||
363 | typedef 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 | |||
400 | typedef 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 | |||
429 | typedef struct { | ||
430 | uint32 duration; | ||
431 | uint32 congest_ibss; | ||
432 | |||
433 | uint32 congest_obss; | ||
434 | uint32 interference; | ||
435 | uint32 timestamp; | ||
436 | } cca_congest_t; | ||
437 | |||
438 | typedef 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 | |||
446 | typedef 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 | |||
452 | typedef 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 | |||
460 | typedef 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 | |||
479 | typedef 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 | |||
489 | typedef 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 | |||
498 | typedef 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 | ||
512 | typedef 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 | |||
517 | typedef 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 | |||
525 | typedef 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 | |||
570 | typedef 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 | |||
597 | typedef 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 | |||
627 | typedef struct _pmkid { | ||
628 | struct ether_addr BSSID; | ||
629 | uint8 PMKID[WPA2_PMKID_LEN]; | ||
630 | } pmkid_t; | ||
631 | |||
632 | typedef struct _pmkid_list { | ||
633 | uint32 npmkid; | ||
634 | pmkid_t pmkid[1]; | ||
635 | } pmkid_list_t; | ||
636 | |||
637 | typedef struct _pmkid_cand { | ||
638 | struct ether_addr BSSID; | ||
639 | uint8 preauth; | ||
640 | } pmkid_cand_t; | ||
641 | |||
642 | typedef struct _pmkid_cand_list { | ||
643 | uint32 npmkid_cand; | ||
644 | pmkid_cand_t pmkid_cand[1]; | ||
645 | } pmkid_cand_list_t; | ||
646 | |||
647 | typedef 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 | |||
660 | typedef 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 | |||
708 | typedef struct { | ||
709 | uint32 val; | ||
710 | struct ether_addr ea; | ||
711 | } scb_val_t; | ||
712 | |||
713 | |||
714 | typedef struct { | ||
715 | uint32 code; | ||
716 | scb_val_t ioctl_args; | ||
717 | } authops_t; | ||
718 | |||
719 | |||
720 | typedef struct channel_info { | ||
721 | int hw_channel; | ||
722 | int target_channel; | ||
723 | int scan_channel; | ||
724 | } channel_info_t; | ||
725 | |||
726 | |||
727 | struct maclist { | ||
728 | uint count; | ||
729 | struct ether_addr ea[1]; | ||
730 | }; | ||
731 | |||
732 | |||
733 | typedef 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 | |||
750 | typedef 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 | |||
765 | typedef 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 | ||
787 | typedef struct wl_instance_info { | ||
788 | uint instance; | ||
789 | char brand[WL_BRAND_MAX]; | ||
790 | } wl_instance_info_t; | ||
791 | |||
792 | |||
793 | typedef 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 | ||
804 | typedef 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 | |||
1196 | typedef 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 | ||
1226 | typedef 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 | |||
1236 | typedef 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 | |||
1376 | typedef 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 | ||
1412 | typedef 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 | |||
1440 | typedef 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 | |||
1557 | struct tsinfo_arg { | ||
1558 | uint8 octets[3]; | ||
1559 | }; | ||
1560 | |||
1561 | #define NFIFO 6 | ||
1562 | |||
1563 | #define WL_CNT_T_VERSION 6 | ||
1564 | |||
1565 | typedef 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 | |||
1774 | typedef struct { | ||
1775 | uint32 packets; | ||
1776 | uint32 bytes; | ||
1777 | } wl_traffic_stats_t; | ||
1778 | |||
1779 | typedef 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 | |||
1794 | struct wl_msglevel2 { | ||
1795 | uint32 low; | ||
1796 | uint32 high; | ||
1797 | }; | ||
1798 | |||
1799 | typedef 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 | |||
1821 | enum { | ||
1822 | PFN_LIST_ORDER, | ||
1823 | PFN_RSSI | ||
1824 | }; | ||
1825 | |||
1826 | enum { | ||
1827 | DISABLE, | ||
1828 | ENABLE | ||
1829 | }; | ||
1830 | |||
1831 | enum { | ||
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 | |||
1869 | typedef 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 | |||
1876 | typedef 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 | |||
1882 | typedef 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 | |||
1890 | typedef 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 | |||
1903 | typedef 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 | |||
1911 | typedef 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 | |||
1920 | typedef 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 | |||
1943 | struct 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 | |||
1987 | struct 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 | |||
2008 | typedef 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 | |||
2019 | typedef 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 | |||
2026 | typedef 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 | |||
2033 | typedef 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 | |||
2046 | typedef struct wl_pkt_filter_enable { | ||
2047 | uint32 id; | ||
2048 | uint32 enable; | ||
2049 | } wl_pkt_filter_enable_t; | ||
2050 | |||
2051 | |||
2052 | typedef 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 | |||
2060 | typedef 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 | |||
2067 | typedef 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 | |||
2093 | typedef 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) | ||
2107 | typedef 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 | |||
2128 | typedef struct { | ||
2129 | uint masksize; | ||
2130 | uint offset; | ||
2131 | uint patternoffset; | ||
2132 | uint patternsize; | ||
2133 | ulong id; | ||
2134 | |||
2135 | |||
2136 | } wl_wowl_pattern_t; | ||
2137 | |||
2138 | typedef struct { | ||
2139 | uint count; | ||
2140 | wl_wowl_pattern_t pattern[1]; | ||
2141 | } wl_wowl_pattern_list_t; | ||
2142 | |||
2143 | typedef struct { | ||
2144 | uint8 pci_wakeind; | ||
2145 | uint16 ucode_wakeind; | ||
2146 | } wl_wowl_wakeind_t; | ||
2147 | |||
2148 | |||
2149 | typedef 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 | |||
2181 | typedef 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 | |||
2204 | typedef 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 | |||
2210 | typedef 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 | |||
2244 | typedef 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 | |||
2252 | typedef 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 | |||
2263 | typedef struct wlc_extlog_req { | ||
2264 | uint32 from_last; | ||
2265 | uint32 num; | ||
2266 | } wlc_extlog_req_t; | ||
2267 | |||
2268 | typedef 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 | |||
2275 | typedef 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 | |||
2285 | typedef 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 | ||
2320 | typedef 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 | |||
2360 | typedef 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 | |||
2365 | typedef 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 | |||
2370 | typedef 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 | |||
2377 | typedef 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 | |||
2382 | typedef 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 | |||
2387 | typedef 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 | ||
2394 | typedef 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 | |||
2411 | typedef struct assert_record { | ||
2412 | uint32 time; | ||
2413 | uint8 seq_num; | ||
2414 | char str[MAX_ASSRTSTR_LEN]; | ||
2415 | } assert_record_t; | ||
2416 | |||
2417 | typedef 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 | |||
2446 | typedef 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 | |||
2455 | typedef 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 | |||
2465 | typedef struct wl_smfs_elem { | ||
2466 | uint32 count; | ||
2467 | uint16 code; | ||
2468 | } wl_smfs_elem_t; | ||
2469 | |||
2470 | typedef 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 | |||
2483 | enum { | ||
2484 | SMFS_CODETYPE_SC, | ||
2485 | SMFS_CODETYPE_RC | ||
2486 | }; | ||
2487 | |||
2488 | |||
2489 | #define SMFS_CODE_MALFORMED 0xFFFE | ||
2490 | #define SMFS_CODE_IGNORED 0xFFFD | ||
2491 | |||
2492 | typedef 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 | |||
2507 | typedef 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 | |||
2538 | typedef 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 | |||
2555 | typedef 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 | |||
2567 | typedef struct wl_p2p_scan { | ||
2568 | uint8 type; | ||
2569 | uint8 reserved[3]; | ||
2570 | |||
2571 | } wl_p2p_scan_t; | ||
2572 | |||
2573 | |||
2574 | typedef 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 | |||
2587 | typedef struct wl_p2p_ifq { | ||
2588 | uint bsscfgidx; | ||
2589 | char ifname[BCM_MSG_IFNAME_MAX]; | ||
2590 | } wl_p2p_ifq_t; | ||
2591 | |||
2592 | |||
2593 | typedef struct wl_p2p_ops { | ||
2594 | uint8 ops; | ||
2595 | uint8 ctw; | ||
2596 | } wl_p2p_ops_t; | ||
2597 | |||
2598 | |||
2599 | typedef 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 | |||
2610 | typedef 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 | |||
2676 | struct 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 | |||
2686 | typedef struct wl_lq wl_lq_t; | ||
2687 | typedef struct wl_lq wl_lq_stats_t; | ||
2688 | |||
2689 | typedef struct { | ||
2690 | struct ether_addr ea; | ||
2691 | uint8 ac_cat; | ||
2692 | uint8 num_pkts; | ||
2693 | } wl_mac_ratehisto_cmd_t; | ||
2694 | |||
2695 | |||
2696 | typedef 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 | |||
2721 | enum { | ||
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 | |||
2737 | typedef 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 | |||
2748 | enum { | ||
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 | ||