• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3  * All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  *
20  * File: 80211mgr.h
21  *
22  * Purpose: 802.11 management frames pre-defines.
23  *
24  *
25  * Author: Lyndon Chen
26  *
27  * Date: May 8, 2002
28  *
29  */
30 
31 #ifndef __80211MGR_H__
32 #define __80211MGR_H__
33 
34 #include <linux/types.h>
35 #include "linux/ieee80211.h"
36 
37 #include "ttype.h"
38 #include "80211hdr.h"
39 
40 #define WLAN_MIN_ARRAY          1
41 
42 /* Information Element ID value */
43 #define WLAN_EID_FH_PARMS       2
44 #define WLAN_EID_DS_PARMS       3
45 #define WLAN_EID_CF_PARMS       4
46 #define WLAN_EID_IBSS_PARMS     6
47 #define WLAN_EID_TPC_REQ        34
48 #define WLAN_EID_TPC_REP        35
49 #define WLAN_EID_SUPP_CH        36
50 #define WLAN_EID_CH_SWITCH      37
51 #define WLAN_EID_MEASURE_REQ    38
52 #define WLAN_EID_MEASURE_REP    39
53 #define WLAN_EID_QUIET          40
54 #define WLAN_EID_IBSS_DFS       41
55 #define WLAN_EID_ERP            42
56 /* reference 802.11i 7.3.2 table 20 */
57 #define WLAN_EID_EXTSUPP_RATES  50
58 /* reference WiFi WPA spec. */
59 #define WLAN_EID_RSN_WPA        221
60 
61 #define WLAN_EID_ERP_NONERP_PRESENT             0x01
62 #define WLAN_EID_ERP_USE_PROTECTION             0x02
63 #define WLAN_EID_ERP_BARKER_MODE                0x04
64 
65 /* Reason Codes */
66 #define WLAN_MGMT_REASON_RSVD                       0
67 #define WLAN_MGMT_REASON_UNSPEC                     1
68 #define WLAN_MGMT_REASON_PRIOR_AUTH_INVALID         2
69 #define WLAN_MGMT_REASON_DEAUTH_LEAVING             3
70 #define WLAN_MGMT_REASON_DISASSOC_INACTIVE          4
71 #define WLAN_MGMT_REASON_DISASSOC_AP_BUSY           5
72 #define WLAN_MGMT_REASON_CLASS2_NONAUTH             6
73 #define WLAN_MGMT_REASON_CLASS3_NONASSOC            7
74 #define WLAN_MGMT_REASON_DISASSOC_STA_HASLEFT       8
75 #define WLAN_MGMT_REASON_CANT_ASSOC_NONAUTH         9
76 #define WLAN_MGMT_REASON_DISASSOC_PWR_CAP_UNACCEPT      10
77 #define WLAN_MGMT_REASON_DISASSOC_SUPP_CH_UNACCEPT      11
78 #define WLAN_MGMT_REASON_INVALID_IE                 13
79 #define WLAN_MGMT_REASON_MIC_FAILURE                14
80 #define WLAN_MGMT_REASON_4WAY_HANDSHAKE_TIMEOUT     15
81 #define WLAN_MGMT_REASON_GRPKEY_UPDATE_TIMEOUT      16
82 #define WLAN_MGMT_REASON_4WAY_INFO_DIFFERENT        17
83 #define WLAN_MGMT_REASON_MULTCAST_CIPHER_INVALID    18
84 #define WLAN_MGMT_REASON_UNCAST_CIPHER_INVALID      19
85 #define WLAN_MGMT_REASON_AKMP_INVALID               20
86 #define WLAN_MGMT_REASON_RSNE_UNSUPPORTED           21
87 #define WLAN_MGMT_REASON_RSNE_CAP_INVALID           22
88 #define WLAN_MGMT_REASON_80211X_AUTH_FAILED         23
89 
90 /* Status Codes */
91 #define WLAN_MGMT_STATUS_SUCCESS                        0
92 #define WLAN_MGMT_STATUS_UNSPEC_FAILURE                 1
93 #define WLAN_MGMT_STATUS_CAPS_UNSUPPORTED               10
94 #define WLAN_MGMT_STATUS_REASSOC_NO_ASSOC               11
95 #define WLAN_MGMT_STATUS_ASSOC_DENIED_UNSPEC            12
96 #define WLAN_MGMT_STATUS_UNSUPPORTED_AUTHALG            13
97 #define WLAN_MGMT_STATUS_RX_AUTH_NOSEQ                  14
98 #define WLAN_MGMT_STATUS_CHALLENGE_FAIL                 15
99 #define WLAN_MGMT_STATUS_AUTH_TIMEOUT                   16
100 #define WLAN_MGMT_STATUS_ASSOC_DENIED_BUSY              17
101 #define WLAN_MGMT_STATUS_ASSOC_DENIED_RATES             18
102 #define WLAN_MGMT_STATUS_ASSOC_DENIED_SHORTPREAMBLE     19
103 #define WLAN_MGMT_STATUS_ASSOC_DENIED_PBCC              20
104 #define WLAN_MGMT_STATUS_ASSOC_DENIED_AGILITY           21
105 
106 /* reference 802.11h 7.3.1.9 */
107 #define WLAN_MGMT_STATUS_ASSOC_REJECT_BCS_SPECTRUM_MNG  22
108 #define WLAN_MGMT_STATUS_ASSOC_REJECT_BCS_PWR_CAP       23
109 #define WLAN_MGMT_STATUS_ASSOC_REJECT_BCS_SUPP_CH       24
110 /* reference 802.11g 7.3.1.9 */
111 #define WLAN_MGMT_STATUS_SHORTSLOTTIME_UNSUPPORTED      25
112 #define WLAN_MGMT_STATUS_DSSSOFDM_UNSUPPORTED           26
113 /* reference 802.11i 3.7.1.9 table 19 */
114 #define WLAN_MGMT_STATUS_INVALID_IE                     40
115 #define WLAN_MGMT_STATUS_GROUP_CIPHER_INVALID           41
116 #define WLAN_MGMT_STATUS_PAIRWISE_CIPHER_INVALID        42
117 #define WLAN_MGMT_STATUS_AKMP_INVALID                   43
118 #define WLAN_MGMT_STATUS_UNSUPPORT_RSN_IE_VER           44
119 #define WLAN_MGMT_STATUS_INVALID_RSN_IE_CAP             45
120 #define WLAN_MGMT_STATUS_CIPHER_REJECT                  46
121 
122 /* Auth Algorithm */
123 #define WLAN_AUTH_ALG_OPENSYSTEM                0
124 #define WLAN_AUTH_ALG_SHAREDKEY                 1
125 
126 /* Management Frame Field Offsets */
127 /* Note: Not all fields are listed because of variable lengths. */
128 /* Note: These offsets are from the start of the frame data */
129 
130 #define WLAN_BEACON_OFF_TS                  0
131 #define WLAN_BEACON_OFF_BCN_INT             8
132 #define WLAN_BEACON_OFF_CAPINFO             10
133 #define WLAN_BEACON_OFF_SSID                12
134 
135 #define WLAN_DISASSOC_OFF_REASON            0
136 
137 #define WLAN_ASSOCREQ_OFF_CAP_INFO          0
138 #define WLAN_ASSOCREQ_OFF_LISTEN_INT        2
139 #define WLAN_ASSOCREQ_OFF_SSID              4
140 
141 #define WLAN_ASSOCRESP_OFF_CAP_INFO         0
142 #define WLAN_ASSOCRESP_OFF_STATUS           2
143 #define WLAN_ASSOCRESP_OFF_AID              4
144 #define WLAN_ASSOCRESP_OFF_SUPP_RATES       6
145 
146 #define WLAN_REASSOCREQ_OFF_CAP_INFO        0
147 #define WLAN_REASSOCREQ_OFF_LISTEN_INT      2
148 #define WLAN_REASSOCREQ_OFF_CURR_AP         4
149 #define WLAN_REASSOCREQ_OFF_SSID            10
150 
151 #define WLAN_REASSOCRESP_OFF_CAP_INFO       0
152 #define WLAN_REASSOCRESP_OFF_STATUS         2
153 #define WLAN_REASSOCRESP_OFF_AID            4
154 #define WLAN_REASSOCRESP_OFF_SUPP_RATES     6
155 
156 #define WLAN_PROBEREQ_OFF_SSID              0
157 
158 #define WLAN_PROBERESP_OFF_TS               0
159 #define WLAN_PROBERESP_OFF_BCN_INT          8
160 #define WLAN_PROBERESP_OFF_CAP_INFO         10
161 #define WLAN_PROBERESP_OFF_SSID             12
162 
163 #define WLAN_AUTHEN_OFF_AUTH_ALG            0
164 #define WLAN_AUTHEN_OFF_AUTH_SEQ            2
165 #define WLAN_AUTHEN_OFF_STATUS              4
166 #define WLAN_AUTHEN_OFF_CHALLENGE           6
167 
168 #define WLAN_DEAUTHEN_OFF_REASON            0
169 
170 /* Cipher Suite Selectors defined in 802.11i */
171 #define WLAN_11i_CSS_USE_GROUP              0
172 #define WLAN_11i_CSS_WEP40                  1
173 #define WLAN_11i_CSS_TKIP                   2
174 #define WLAN_11i_CSS_CCMP                   4
175 #define WLAN_11i_CSS_WEP104                 5
176 #define WLAN_11i_CSS_UNKNOWN                255
177 
178 /* Authentication and Key Management Suite Selectors defined in 802.11i */
179 #define WLAN_11i_AKMSS_802_1X               1
180 #define WLAN_11i_AKMSS_PSK                  2
181 #define WLAN_11i_AKMSS_UNKNOWN              255
182 
183 /* Measurement type definitions reference ieee 802.11h Table 20b */
184 #define MEASURE_TYPE_BASIC      0
185 #define MEASURE_TYPE_CCA        1
186 #define MEASURE_TYPE_RPI        2
187 
188 /* Measurement request mode definitions reference ieee 802.11h Figure 46h */
189 #define MEASURE_MODE_ENABLE     0x02
190 #define MEASURE_MODE_REQ        0x04
191 #define MEASURE_MODE_REP        0x08
192 
193 /* Measurement report mode definitions reference ieee 802.11h Figure 46m */
194 #define MEASURE_MODE_LATE       0x01
195 #define MEASURE_MODE_INCAPABLE  0x02
196 #define MEASURE_MODE_REFUSED    0x04
197 
198 /* Information Element Types */
199 
200 #pragma pack(1)
201 typedef struct tagWLAN_IE {
202 	unsigned char byElementID;
203 	unsigned char len;
204 } __attribute__ ((__packed__))
205 WLAN_IE, *PWLAN_IE;
206 
207 /* Service Set Identity (SSID) */
208 #pragma pack(1)
209 typedef struct tagWLAN_IE_SSID {
210 	unsigned char byElementID;
211 	unsigned char len;
212 	unsigned char abySSID[1];
213 } __attribute__ ((__packed__))
214 WLAN_IE_SSID, *PWLAN_IE_SSID;
215 
216 /* Supported Rates */
217 #pragma pack(1)
218 typedef struct tagWLAN_IE_SUPP_RATES {
219 	unsigned char byElementID;
220 	unsigned char len;
221 	unsigned char abyRates[1];
222 } __attribute__ ((__packed__))
223 WLAN_IE_SUPP_RATES,  *PWLAN_IE_SUPP_RATES;
224 
225 /* FH Parameter Set */
226 #pragma pack(1)
227 typedef struct _WLAN_IE_FH_PARMS {
228 	unsigned char byElementID;
229 	unsigned char len;
230 	unsigned short wDwellTime;
231 	unsigned char byHopSet;
232 	unsigned char byHopPattern;
233 	unsigned char byHopIndex;
234 } WLAN_IE_FH_PARMS,  *PWLAN_IE_FH_PARMS;
235 
236 /* DS Parameter Set */
237 #pragma pack(1)
238 typedef struct tagWLAN_IE_DS_PARMS {
239 	unsigned char byElementID;
240 	unsigned char len;
241 	unsigned char byCurrChannel;
242 } __attribute__ ((__packed__))
243 WLAN_IE_DS_PARMS,  *PWLAN_IE_DS_PARMS;
244 
245 /* CF Parameter Set */
246 #pragma pack(1)
247 typedef struct tagWLAN_IE_CF_PARMS {
248 	unsigned char byElementID;
249 	unsigned char len;
250 	unsigned char byCFPCount;
251 	unsigned char byCFPPeriod;
252 	unsigned short wCFPMaxDuration;
253 	unsigned short wCFPDurRemaining;
254 } __attribute__ ((__packed__))
255 WLAN_IE_CF_PARMS,  *PWLAN_IE_CF_PARMS;
256 
257 /* TIM */
258 #pragma pack(1)
259 typedef struct tagWLAN_IE_TIM {
260 	unsigned char byElementID;
261 	unsigned char len;
262 	unsigned char byDTIMCount;
263 	unsigned char byDTIMPeriod;
264 	unsigned char byBitMapCtl;
265 	unsigned char byVirtBitMap[1];
266 } __attribute__ ((__packed__))
267 WLAN_IE_TIM,  *PWLAN_IE_TIM;
268 
269 /* IBSS Parameter Set */
270 #pragma pack(1)
271 typedef struct tagWLAN_IE_IBSS_PARMS {
272 	unsigned char byElementID;
273 	unsigned char len;
274 	unsigned short wATIMWindow;
275 } __attribute__ ((__packed__))
276 WLAN_IE_IBSS_PARMS, *PWLAN_IE_IBSS_PARMS;
277 
278 /* Challenge Text */
279 #pragma pack(1)
280 typedef struct tagWLAN_IE_CHALLENGE {
281 	unsigned char byElementID;
282 	unsigned char len;
283 	unsigned char abyChallenge[1];
284 } __attribute__ ((__packed__))
285 WLAN_IE_CHALLENGE,  *PWLAN_IE_CHALLENGE;
286 
287 #pragma pack(1)
288 typedef struct tagWLAN_IE_RSN_EXT {
289 	unsigned char byElementID;
290 	unsigned char len;
291 	unsigned char abyOUI[4];
292 	unsigned short wVersion;
293 	unsigned char abyMulticast[4];
294 	unsigned short wPKCount;
295 	struct {
296 		unsigned char abyOUI[4];
297 	} PKSList[1]; /* the rest is variable so need to */
298 	/* overlay ieauth structure */
299 } WLAN_IE_RSN_EXT, *PWLAN_IE_RSN_EXT;
300 
301 #pragma pack(1)
302 typedef struct tagWLAN_IE_RSN_AUTH {
303 	unsigned short wAuthCount;
304 	struct {
305 		unsigned char abyOUI[4];
306 	} AuthKSList[1];
307 } WLAN_IE_RSN_AUTH, *PWLAN_IE_RSN_AUTH;
308 
309 /* RSN Identity */
310 #pragma pack(1)
311 typedef struct tagWLAN_IE_RSN {
312 	unsigned char byElementID;
313 	unsigned char len;
314 	unsigned short wVersion;
315 	unsigned char abyRSN[WLAN_MIN_ARRAY];
316 } WLAN_IE_RSN, *PWLAN_IE_RSN;
317 
318 /* ERP */
319 #pragma pack(1)
320 typedef struct tagWLAN_IE_ERP {
321 	unsigned char byElementID;
322 	unsigned char len;
323 	unsigned char byContext;
324 } __attribute__ ((__packed__))
325 WLAN_IE_ERP,  *PWLAN_IE_ERP;
326 
327 #pragma pack(1)
328 typedef struct _MEASEURE_REQ {
329 	unsigned char byChannel;
330 	unsigned char abyStartTime[8];
331 	unsigned char abyDuration[2];
332 } MEASEURE_REQ, *PMEASEURE_REQ,
333 	MEASEURE_REQ_BASIC, *PMEASEURE_REQ_BASIC,
334 	MEASEURE_REQ_CCA, *PMEASEURE_REQ_CCA,
335 	MEASEURE_REQ_RPI, *PMEASEURE_REQ_RPI;
336 
337 typedef struct _MEASEURE_REP_BASIC {
338 	unsigned char byChannel;
339 	unsigned char abyStartTime[8];
340 	unsigned char abyDuration[2];
341 	unsigned char byMap;
342 } MEASEURE_REP_BASIC, *PMEASEURE_REP_BASIC;
343 
344 typedef struct _MEASEURE_REP_CCA {
345 	unsigned char byChannel;
346 	unsigned char abyStartTime[8];
347 	unsigned char abyDuration[2];
348 	unsigned char byCCABusyFraction;
349 } MEASEURE_REP_CCA, *PMEASEURE_REP_CCA;
350 
351 typedef struct _MEASEURE_REP_RPI {
352 	unsigned char byChannel;
353 	unsigned char abyStartTime[8];
354 	unsigned char abyDuration[2];
355 	unsigned char abyRPIdensity[8];
356 } MEASEURE_REP_RPI, *PMEASEURE_REP_RPI;
357 
358 typedef union _MEASEURE_REP {
359 	MEASEURE_REP_BASIC  sBasic;
360 	MEASEURE_REP_CCA    sCCA;
361 	MEASEURE_REP_RPI    sRPI;
362 } MEASEURE_REP, *PMEASEURE_REP;
363 
364 typedef struct _WLAN_IE_MEASURE_REQ {
365 	unsigned char byElementID;
366 	unsigned char len;
367 	unsigned char byToken;
368 	unsigned char byMode;
369 	unsigned char byType;
370 	MEASEURE_REQ        sReq;
371 } WLAN_IE_MEASURE_REQ, *PWLAN_IE_MEASURE_REQ;
372 
373 typedef struct _WLAN_IE_MEASURE_REP {
374 	unsigned char byElementID;
375 	unsigned char len;
376 	unsigned char byToken;
377 	unsigned char byMode;
378 	unsigned char byType;
379 	MEASEURE_REP        sRep;
380 } WLAN_IE_MEASURE_REP, *PWLAN_IE_MEASURE_REP;
381 
382 typedef struct _WLAN_IE_CH_SW {
383 	unsigned char byElementID;
384 	unsigned char len;
385 	unsigned char byMode;
386 	unsigned char byChannel;
387 	unsigned char byCount;
388 } WLAN_IE_CH_SW, *PWLAN_IE_CH_SW;
389 
390 typedef struct _WLAN_IE_QUIET {
391 	unsigned char byElementID;
392 	unsigned char len;
393 	unsigned char byQuietCount;
394 	unsigned char byQuietPeriod;
395 	unsigned char abyQuietDuration[2];
396 	unsigned char abyQuietOffset[2];
397 } WLAN_IE_QUIET, *PWLAN_IE_QUIET;
398 
399 typedef struct _WLAN_IE_COUNTRY {
400 	unsigned char byElementID;
401 	unsigned char len;
402 	unsigned char abyCountryString[3];
403 	unsigned char abyCountryInfo[3];
404 } WLAN_IE_COUNTRY, *PWLAN_IE_COUNTRY;
405 
406 typedef struct _WLAN_IE_PW_CONST {
407 	unsigned char byElementID;
408 	unsigned char len;
409 	unsigned char byPower;
410 } WLAN_IE_PW_CONST, *PWLAN_IE_PW_CONST;
411 
412 typedef struct _WLAN_IE_PW_CAP {
413 	unsigned char byElementID;
414 	unsigned char len;
415 	unsigned char byMinPower;
416 	unsigned char byMaxPower;
417 } WLAN_IE_PW_CAP, *PWLAN_IE_PW_CAP;
418 
419 typedef struct _WLAN_IE_SUPP_CH {
420 	unsigned char byElementID;
421 	unsigned char len;
422 	unsigned char abyChannelTuple[2];
423 } WLAN_IE_SUPP_CH, *PWLAN_IE_SUPP_CH;
424 
425 typedef struct _WLAN_IE_TPC_REQ {
426 	unsigned char byElementID;
427 	unsigned char len;
428 } WLAN_IE_TPC_REQ, *PWLAN_IE_TPC_REQ;
429 
430 typedef struct _WLAN_IE_TPC_REP {
431 	unsigned char byElementID;
432 	unsigned char len;
433 	unsigned char byTxPower;
434 	unsigned char byLinkMargin;
435 } WLAN_IE_TPC_REP, *PWLAN_IE_TPC_REP;
436 
437 typedef struct _WLAN_IE_IBSS_DFS {
438 	unsigned char byElementID;
439 	unsigned char len;
440 	unsigned char abyDFSOwner[6];
441 	unsigned char byDFSRecovery;
442 	unsigned char abyChannelMap[2];
443 } WLAN_IE_IBSS_DFS, *PWLAN_IE_IBSS_DFS;
444 
445 #pragma pack()
446 
447 /* Frame Types */
448 /* prototype structure, all mgmt frame types will start with these members */
449 typedef struct tagWLAN_FR_MGMT {
450 	unsigned int	uType;
451 	unsigned int	len;
452 	unsigned char *pBuf;
453 	PUWLAN_80211HDR       pHdr;
454 } WLAN_FR_MGMT,  *PWLAN_FR_MGMT;
455 
456 /* Beacon frame */
457 typedef struct tagWLAN_FR_BEACON {
458 	unsigned int	uType;
459 	unsigned int	len;
460 	unsigned char *pBuf;
461 	PUWLAN_80211HDR         pHdr;
462 	__le64 *pqwTimestamp;
463 	unsigned short *pwBeaconInterval;
464 	unsigned short *pwCapInfo;
465 	PWLAN_IE_SSID           pSSID;
466 	PWLAN_IE_SUPP_RATES     pSuppRates;
467 	PWLAN_IE_DS_PARMS       pDSParms;
468 	PWLAN_IE_CF_PARMS       pCFParms;
469 	PWLAN_IE_TIM            pTIM;
470 	PWLAN_IE_IBSS_PARMS     pIBSSParms;
471 	PWLAN_IE_RSN            pRSN;
472 	PWLAN_IE_RSN_EXT        pRSNWPA;
473 	PWLAN_IE_ERP            pERP;
474 	PWLAN_IE_SUPP_RATES     pExtSuppRates;
475 	PWLAN_IE_COUNTRY        pIE_Country;
476 	PWLAN_IE_PW_CONST       pIE_PowerConstraint;
477 	PWLAN_IE_CH_SW          pIE_CHSW;
478 	PWLAN_IE_IBSS_DFS       pIE_IBSSDFS;
479 	PWLAN_IE_QUIET          pIE_Quiet;
480 } WLAN_FR_BEACON, *PWLAN_FR_BEACON;
481 
482 /* IBSS ATIM frame */
483 typedef struct tagWLAN_FR_IBSSATIM {
484 	unsigned int	uType;
485 	unsigned int	len;
486 	unsigned char *pBuf;
487 	PUWLAN_80211HDR         pHdr;
488 } WLAN_FR_IBSSATIM, *PWLAN_FR_IBSSATIM;
489 
490 /* Disassociation */
491 typedef struct tagWLAN_FR_DISASSOC {
492 	unsigned int	uType;
493 	unsigned int	len;
494 	unsigned char *pBuf;
495 	PUWLAN_80211HDR         pHdr;
496 	unsigned short *pwReason;
497 } WLAN_FR_DISASSOC, *PWLAN_FR_DISASSOC;
498 
499 /* Association Request */
500 typedef struct tagWLAN_FR_ASSOCREQ {
501 	unsigned int	uType;
502 	unsigned int	len;
503 	unsigned char *pBuf;
504 	PUWLAN_80211HDR         pHdr;
505 	unsigned short *pwCapInfo;
506 	unsigned short *pwListenInterval;
507 	PWLAN_IE_SSID           pSSID;
508 	PWLAN_IE_SUPP_RATES     pSuppRates;
509 	PWLAN_IE_RSN            pRSN;
510 	PWLAN_IE_RSN_EXT        pRSNWPA;
511 	PWLAN_IE_SUPP_RATES     pExtSuppRates;
512 	PWLAN_IE_PW_CAP         pCurrPowerCap;
513 	PWLAN_IE_SUPP_CH        pCurrSuppCh;
514 } WLAN_FR_ASSOCREQ, *PWLAN_FR_ASSOCREQ;
515 
516 /* Association Response */
517 typedef struct tagWLAN_FR_ASSOCRESP {
518 	unsigned int	uType;
519 	unsigned int	len;
520 	unsigned char *pBuf;
521 	PUWLAN_80211HDR         pHdr;
522 	unsigned short *pwCapInfo;
523 	unsigned short *pwStatus;
524 	unsigned short *pwAid;
525 	PWLAN_IE_SUPP_RATES     pSuppRates;
526 	PWLAN_IE_SUPP_RATES     pExtSuppRates;
527 } WLAN_FR_ASSOCRESP, *PWLAN_FR_ASSOCRESP;
528 
529 /* Reassociation Request */
530 typedef struct tagWLAN_FR_REASSOCREQ {
531 	unsigned int	uType;
532 	unsigned int	len;
533 	unsigned char *pBuf;
534 	PUWLAN_80211HDR         pHdr;
535 	unsigned short *pwCapInfo;
536 	unsigned short *pwListenInterval;
537 	PIEEE_ADDR              pAddrCurrAP;
538 	PWLAN_IE_SSID           pSSID;
539 	PWLAN_IE_SUPP_RATES     pSuppRates;
540 	PWLAN_IE_RSN            pRSN;
541 	PWLAN_IE_RSN_EXT        pRSNWPA;
542 	PWLAN_IE_SUPP_RATES     pExtSuppRates;
543 } WLAN_FR_REASSOCREQ, *PWLAN_FR_REASSOCREQ;
544 
545 /* Reassociation Response */
546 typedef struct tagWLAN_FR_REASSOCRESP {
547 	unsigned int	uType;
548 	unsigned int	len;
549 	unsigned char *pBuf;
550 	PUWLAN_80211HDR         pHdr;
551 	unsigned short *pwCapInfo;
552 	unsigned short *pwStatus;
553 	unsigned short *pwAid;
554 	PWLAN_IE_SUPP_RATES     pSuppRates;
555 	PWLAN_IE_SUPP_RATES     pExtSuppRates;
556 } WLAN_FR_REASSOCRESP, *PWLAN_FR_REASSOCRESP;
557 
558 /* Probe Request */
559 typedef struct tagWLAN_FR_PROBEREQ {
560 	unsigned int	uType;
561 	unsigned int	len;
562 	unsigned char *pBuf;
563 	PUWLAN_80211HDR         pHdr;
564 	PWLAN_IE_SSID           pSSID;
565 	PWLAN_IE_SUPP_RATES     pSuppRates;
566 	PWLAN_IE_SUPP_RATES     pExtSuppRates;
567 } WLAN_FR_PROBEREQ, *PWLAN_FR_PROBEREQ;
568 
569 /* Probe Response */
570 typedef struct tagWLAN_FR_PROBERESP {
571 	unsigned int	uType;
572 	unsigned int	len;
573 	unsigned char *pBuf;
574 	PUWLAN_80211HDR         pHdr;
575 	__le64 *pqwTimestamp;
576 	unsigned short *pwBeaconInterval;
577 	unsigned short *pwCapInfo;
578 	PWLAN_IE_SSID           pSSID;
579 	PWLAN_IE_SUPP_RATES     pSuppRates;
580 	PWLAN_IE_DS_PARMS       pDSParms;
581 	PWLAN_IE_CF_PARMS       pCFParms;
582 	PWLAN_IE_IBSS_PARMS     pIBSSParms;
583 	PWLAN_IE_RSN            pRSN;
584 	PWLAN_IE_RSN_EXT        pRSNWPA;
585 	PWLAN_IE_ERP            pERP;
586 	PWLAN_IE_SUPP_RATES     pExtSuppRates;
587 	PWLAN_IE_COUNTRY        pIE_Country;
588 	PWLAN_IE_PW_CONST       pIE_PowerConstraint;
589 	PWLAN_IE_CH_SW          pIE_CHSW;
590 	PWLAN_IE_IBSS_DFS       pIE_IBSSDFS;
591 	PWLAN_IE_QUIET          pIE_Quiet;
592 } WLAN_FR_PROBERESP, *PWLAN_FR_PROBERESP;
593 
594 /* Authentication */
595 typedef struct tagWLAN_FR_AUTHEN {
596 	unsigned int	uType;
597 	unsigned int	len;
598 	unsigned char *pBuf;
599 	PUWLAN_80211HDR         pHdr;
600 	unsigned short *pwAuthAlgorithm;
601 	unsigned short *pwAuthSequence;
602 	unsigned short *pwStatus;
603 	PWLAN_IE_CHALLENGE      pChallenge;
604 } WLAN_FR_AUTHEN, *PWLAN_FR_AUTHEN;
605 
606 /* Deauthenication */
607 typedef struct tagWLAN_FR_DEAUTHEN {
608 	unsigned int	uType;
609 	unsigned int	len;
610 	unsigned char *pBuf;
611 	PUWLAN_80211HDR         pHdr;
612 	unsigned short *pwReason;
613 } WLAN_FR_DEAUTHEN, *PWLAN_FR_DEAUTHEN;
614 
615 void
616 vMgrEncodeBeacon(
617 	PWLAN_FR_BEACON  pFrame
618 );
619 
620 void
621 vMgrDecodeBeacon(
622 	PWLAN_FR_BEACON  pFrame
623 );
624 
625 void
626 vMgrEncodeIBSSATIM(
627 	PWLAN_FR_IBSSATIM   pFrame
628 );
629 
630 void
631 vMgrDecodeIBSSATIM(
632 	PWLAN_FR_IBSSATIM   pFrame
633 );
634 
635 void
636 vMgrEncodeDisassociation(
637 	PWLAN_FR_DISASSOC  pFrame
638 );
639 
640 void
641 vMgrDecodeDisassociation(
642 	PWLAN_FR_DISASSOC  pFrame
643 );
644 
645 void
646 vMgrEncodeAssocRequest(
647 	PWLAN_FR_ASSOCREQ  pFrame
648 );
649 
650 void
651 vMgrDecodeAssocRequest(
652 	PWLAN_FR_ASSOCREQ  pFrame
653 );
654 
655 void
656 vMgrEncodeAssocResponse(
657 	PWLAN_FR_ASSOCRESP  pFrame
658 );
659 
660 void
661 vMgrDecodeAssocResponse(
662 	PWLAN_FR_ASSOCRESP  pFrame
663 );
664 
665 void
666 vMgrEncodeReassocRequest(
667 	PWLAN_FR_REASSOCREQ  pFrame
668 );
669 
670 void
671 vMgrDecodeReassocRequest(
672 	PWLAN_FR_REASSOCREQ  pFrame
673 );
674 
675 void
676 vMgrEncodeProbeRequest(
677 	PWLAN_FR_PROBEREQ  pFrame
678 );
679 
680 void
681 vMgrDecodeProbeRequest(
682 	PWLAN_FR_PROBEREQ  pFrame
683 );
684 
685 void
686 vMgrEncodeProbeResponse(
687 	PWLAN_FR_PROBERESP  pFrame
688 );
689 
690 void
691 vMgrDecodeProbeResponse(
692 	PWLAN_FR_PROBERESP  pFrame
693 );
694 
695 void
696 vMgrEncodeAuthen(
697 	PWLAN_FR_AUTHEN  pFrame
698 );
699 
700 void
701 vMgrDecodeAuthen(
702 	PWLAN_FR_AUTHEN  pFrame
703 );
704 
705 void
706 vMgrEncodeDeauthen(
707 	PWLAN_FR_DEAUTHEN  pFrame
708 );
709 
710 void
711 vMgrDecodeDeauthen(
712 	PWLAN_FR_DEAUTHEN  pFrame
713 );
714 
715 void
716 vMgrEncodeReassocResponse(
717 	PWLAN_FR_REASSOCRESP  pFrame
718 );
719 
720 void
721 vMgrDecodeReassocResponse(
722 	PWLAN_FR_REASSOCRESP  pFrame
723 );
724 
725 #endif/* __80211MGR_H__ */
726