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