• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * osDot11.h
3  *
4  * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  *  * Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  *  * Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in
15  *    the documentation and/or other materials provided with the
16  *    distribution.
17  *  * Neither the name Texas Instruments nor the names of its
18  *    contributors may be used to endorse or promote products derived
19  *    from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 
35 /*--------------------------------------------------------------------------*/
36 /* Module:		osDot11.h */
37 /**/
38 /* Purpose:		*/
39 /**/
40 /*--------------------------------------------------------------------------*/
41 #ifndef __OSDOT11_H__
42 #define __OSDOT11_H__
43 
44 #include "tidef.h"
45 #include "tiQosTypes.h"
46 
47 
48 #define	OS_STATUS_MEDIA_SPECIFIC_INDICATION	((NDIS_STATUS)0x40010012L)
49 
50 #define OS_802_11_REQUEST_REAUTH					0x01
51 #define OS_802_11_REQUEST_KEYUPDATE					0x02
52 #define OS_802_11_REQUEST_PAIRWISE_ERROR			0x06
53 #define OS_802_11_REQUEST_GROUP_ERROR				0x0E
54 
55 #define OS_802_11_SSID_FIRST_VALID_CHAR             32
56 
57 #define OS_802_11_SSID_JUNK(str,len)                   \
58         ((len) > 2 &&                                  \
59          (unsigned char)(str)[0] < OS_802_11_SSID_FIRST_VALID_CHAR && \
60          (unsigned char)(str)[1] < OS_802_11_SSID_FIRST_VALID_CHAR && \
61          (unsigned char)(str)[2] < OS_802_11_SSID_FIRST_VALID_CHAR)
62 
63 
64 /**/
65 /*  Per-packet information for Ieee8021QInfo.*/
66 /**/
67 typedef struct _OS_PACKET_8021Q_INFO
68 {
69     union
70     {
71         struct
72         {
73             TI_UINT32      UserPriority:3;         /* 802.1p priority */
74             TI_UINT32      CanonicalFormatId:1;    /* always 0*/
75             TI_UINT32      VlanId:12;              /* VLAN Identification*/
76             TI_UINT32      Reserved:16;            /* set to 0*/
77         }   TagHeader;
78 
79         void*  Value;
80     }u;
81 } OS_PACKET_8021Q_INFO, *POS_PACKET_8021Q_INFO;
82 
83 
84 typedef TI_UINT64 OS_802_11_KEY_RSC;
85 
86 typedef struct _OS_802_11_SSID
87 {
88     TI_UINT32 SsidLength;
89     TI_UINT8  Ssid[32];
90 } OS_802_11_SSID, *POS_802_11_SSID;
91 
92 typedef enum _OS_802_11_NETWORK_TYPE
93 {
94   os802_11FH,
95   os802_11DS,
96   os802_11OFDM5,
97   os802_11OFDM24,
98   os802_11Automode,
99   os802_11NetworkTypeMax
100 } OS_802_11_NETWORK_TYPE;
101 
102 typedef struct _OS_802_11_NETWORK_TYPE_LIST
103 {
104   TI_UINT32                  NumberOfItems;
105   OS_802_11_NETWORK_TYPE NetworkType [1];
106 } OS_802_11_NETWORK_TYPE_LIST, *POS_802_11_NETWORK_TYPE_LIST;
107 
108 typedef enum _OS_802_11_POWER_MODE
109 {
110   /*Continuous access mode (CAM). */
111   /*When the power mode is set to CAM, the device is always on. */
112   os802_11PowerModeCAM,
113 
114   /*Specifies maximum (MAX) power saving. A power mode of MAX */
115   /*results in the greatest power savings for the 802.11 NIC radio. */
116   os802_11PowerModeMAX_PSP,
117 
118   /*Specifies fast power-saving mode. This power mode provides */
119   /*the best combination of network performance and power usage. */
120   os802_11PowerModeFast_PSP,
121   os802_11PowerModeMax
122 } OS_802_11_POWER_MODE;
123 
124 /*specified in milliwatts (mW).*/
125 typedef TI_UINT32 OS_802_11_TX_POWER_LEVEL;
126 /*Normal value from -10 and -200*/
127 typedef TI_INT32 OS_802_11_RSSI;
128 
129 /*Length */
130 
131 /*  Specifies the length of the OS_802_11_CONFIGURATION_FH structure in bytes. */
132 /*HopPattern*/
133 /*  Specifies the hop pattern used to determine the hop sequence. */
134 /*  As defined by the 802.11 standard, the layer management entity (LME) of */
135 /*  the physical layer uses a hop pattern to determine the hop sequence. */
136 /*HopSet*/
137 /*  Specifies a set of patterns. The LME of the physical layer uses these */
138 /*  patterns to determine the hop sequence. */
139 /*DwellTime*/
140 /*  Specifies the maximum period of time during which the transmitter */
141 /*  should remain fixed on a channel. This interval is described in Kµsec (1024 µsec). */
142 typedef struct _OS_802_11_CONFIGURATION_FH
143 {
144     TI_UINT32  Length;
145     TI_UINT32  HopPattern;
146     TI_UINT32  HopSet;
147     TI_UINT32  DwellTime;
148 } OS_802_11_CONFIGURATION_FH, *POS_802_11_CONFIGURATION_FH;
149 
150 /*Length */
151 
152 /*  Specifies the length of the NDIS_802_11_CONFIGURATION structure in bytes. */
153 /*BeaconPeriod */
154 /*  Specifies the interval between beacon message transmissions. */
155 /*  This value is specified in Kµsec (1024 µsec). */
156 /*ATIMWindow */
157 /*  Specifies the announcement traffic information message (ATIM) window in */
158 /*  Kµsec (1024 µsec). The ATIM window is a short time period immediately */
159 /*  after the transmission of each beacon in an IBSS configuration. */
160 /*  During the ATIM window, any station can indicate the need to transfer data */
161 /*  to another station during the following data-transmission window. */
162 /*DSConfig */
163 /*  Specifies the frequency of the selected channel in kHz. */
164 /*FHConfig */
165 /*  Specifies the frequency hopping configuration in an OS_802_11_CONFIGURATION_FH structure. */
166 typedef struct _OS_802_11_CONFIGURATION
167 {
168     TI_UINT32 Length;
169     TI_UINT32 BeaconPeriod;
170     TI_UINT32 ATIMWindow;
171   union
172   {
173         TI_UINT32 DSConfig;
174         TI_UINT32 channel;
175   } Union;
176   OS_802_11_CONFIGURATION_FH FHConfig;
177 } OS_802_11_CONFIGURATION, *POS_802_11_CONFIGURATION;
178 
179 /*Ndis802_11IBSS */
180 /*  Specifies the independent basic service set (IBSS) mode. */
181 /*  This mode is also known as ad hoc mode. */
182 /*Ndis802_11Infrastructure */
183 /*  Specifies the infrastructure mode. */
184 /*Ndis802_11AutoUnknown */
185 /*  Specifies an automatic mode. In this mode, the 802.11 NIC can switch */
186 /*  between ad hoc and infrastructure modes as required. */
187 /*Ndis802_11HighSpeedIBSS*/
188 /*  Specifies proprietary ad hoc mode that works only PBCC.*/
189 typedef enum _OS_802_11_NETWORK_MODE
190 {
191   os802_11IBSS,
192   os802_11Infrastructure,
193   os802_11AutoUnknown,
194   os802_11HighSpeedIBSS,
195   os802_11InfrastructureMax
196 } OS_802_11_NETWORK_MODE, OS_802_11_NETWORK_INFRASTRUCTURE,*POS_802_11_NETWORK_INFRASTRUCTURE;
197 
198 /**/
199 /*The rates array contains a set of eight octets. */
200 /*Each octet contains a desired data rate in units of .5 Mbps.*/
201 /**/
202 typedef TI_UINT8 OS_802_11_RATES[8];
203 
204 typedef TI_UINT8 OS_802_11_RATES_EX[16];
205 
206 typedef TI_UINT8 OS_802_11_N_RATES[32];
207 
208 typedef struct _OS_802_11_FIXED_IEs
209 {
210 	TI_UINT8  TimeStamp[8];
211 	TI_UINT16 BeaconInterval;
212 	TI_UINT16 Capabilities;
213 } OS_802_11_FIXED_IEs, *POS_802_11_FIXED_IEs;
214 
215 typedef struct _OS_802_11_VARIABLE_IEs
216 {
217 	TI_UINT8 ElementID;
218 	TI_UINT8 Length;	/* Number of bytes in data field*/
219 	TI_UINT8 data[1];
220 }  OS_802_11_VARIABLE_IEs, *POS_802_11_VARIABLE_IEs;
221 
222 typedef struct _OS_802_11_BSSID
223 {
224   TI_UINT32 Length;
225   TMacAddr                  MacAddress;
226   TI_UINT16					Capabilities;
227   OS_802_11_SSID            Ssid;
228   TI_UINT32                 Privacy;
229   OS_802_11_RSSI            Rssi;
230   OS_802_11_NETWORK_TYPE    NetworkTypeInUse;
231   OS_802_11_CONFIGURATION   Configuration;
232   OS_802_11_NETWORK_MODE    InfrastructureMode;
233   OS_802_11_RATES           SupportedRates;
234 }  OS_802_11_BSSID, *POS_802_11_BSSID;
235 
236 typedef struct _OS_802_11_BSSID_LIST
237 {
238     TI_UINT32          NumberOfItems;
239   OS_802_11_BSSID  Bssid[1];
240 }  OS_802_11_BSSID_LIST, *POS_802_11_BSSID_LIST;
241 
242 
243 typedef struct _OS_802_11_BSSID_EX
244 {
245   TI_UINT32					Length;
246   TMacAddr		            MacAddress;
247   TI_UINT16					Capabilities;
248   OS_802_11_SSID            Ssid;
249   TI_UINT32                 Privacy;
250   OS_802_11_RSSI            Rssi;
251   OS_802_11_NETWORK_TYPE    NetworkTypeInUse;
252   OS_802_11_CONFIGURATION   Configuration;
253   OS_802_11_NETWORK_MODE    InfrastructureMode;
254   OS_802_11_RATES_EX        SupportedRates;
255   TI_UINT32                 IELength;
256   TI_UINT8                  IEs[1];
257 } OS_802_11_BSSID_EX, *POS_802_11_BSSID_EX, OS_WLAN_BSSID_EX, *POS_WLAN_BSSID_EX;
258 
259 typedef struct _OS_802_11_BSSID_LIST_EX
260 {
261   TI_UINT32                 NumberOfItems;
262   OS_802_11_BSSID_EX        Bssid[1];
263 }  OS_802_11_BSSID_LIST_EX, *POS_802_11_BSSID_LIST_EX;
264 
265 
266 typedef TI_UINT32 OS_802_11_FRAGMENTATION_THRESHOLD;
267 typedef TI_UINT32 OS_802_11_RTS_THRESHOLD;
268 typedef TI_UINT32 OS_802_11_ANTENNA;
269 
270 
271 /*Length */
272 /*  Specifies the length of the NDIS_802_11_WEP structure in bytes. */
273 /*KeyIndex */
274 /*  Specifies which key to add or remove. The global keys are represented */
275 /*  by values of zero to n. When the most significant bit is set to 1, */
276 /*  it indicates the key used to transmit to the access point. */
277 /*KeyLength */
278 /*  Specifies the length of the KeyMaterial character array in bytes. */
279 /*KeyMaterial */
280 /*  Specifies an arraythat identifies the WEP key. The length of this array is */
281 /*  variable and depends upon the value of the KeyLength member. */
282 
283 typedef TI_UINT32 OS_802_11_KEY_INDEX;
284 typedef struct _OS_802_11_WEP
285 {
286     TI_UINT32 Length;
287     TI_UINT32 KeyIndex;
288     TI_UINT32 KeyLength;
289     TI_UINT8  KeyMaterial [32];
290 } OS_802_11_WEP, *POS_802_11_WEP;
291 
292 /* Key mapping keys require a BSSID*/
293 /*typedef tiUINT64 OS_802_11_KEY_RSC;*/
294 
295 typedef struct _OS_802_11_KEY
296 {
297     TI_UINT32                  Length;             /* Length of this structure*/
298     TI_UINT32                  KeyIndex;
299     TI_UINT32                  KeyLength;          /* length of key in bytes*/
300     TMacAddr                   BSSID;
301     OS_802_11_KEY_RSC          KeyRSC;
302     TI_UINT8                   KeyMaterial[32];     /* variable length depending on above field*/
303 }  OS_802_11_KEY, *POS_802_11_KEY;
304 
305 typedef struct _OS_802_11_REMOVE_KEY
306 {
307     TI_UINT32                  Length;             /* Length of this structure*/
308     TI_UINT32                  KeyIndex;
309     TMacAddr                   BSSID;
310 } OS_802_11_REMOVE_KEY, *POS_802_11_REMOVE_KEY;
311 
312 #define OS_802_11_AI_REQFI_CAPABILITIES     1
313 #define OS_802_11_AI_REQFI_LISTENINTERVAL   2
314 #define OS_802_11_AI_REQFI_CURRENTAPADDRESS 4
315 
316 
317 #define OS_802_11_AI_RESFI_CAPABILITIES     1
318 #define OS_802_11_AI_RESFI_STATUSCODE       2
319 #define OS_802_11_AI_RESFI_ASSOCIATIONID    4
320 
321 typedef struct _OS_802_11_AI_REQFI
322 {
323 	TI_UINT16 Capabilities;
324 	TI_UINT16 ListenInterval;
325 	TMacAddr  CurrentAPAddress;
326 #ifndef _WINDOWS
327     TI_UINT16 reserved; /* added for packing */
328 #endif
329 } OS_802_11_AI_REQFI;
330 
331 typedef struct _OS_802_11_AI_RESFI
332 {
333 	TI_UINT16 Capabilities;
334 	TI_UINT16 StatusCode;
335 	TI_UINT16 AssociationId;
336 #ifndef _WINDOWS
337     TI_UINT16 reserved; /* added for packing */
338 #endif
339 } OS_802_11_AI_RESFI;
340 
341 typedef struct _OS_802_11_ASSOCIATION_INFORMATION
342 {
343     TI_UINT32 Length;
344     TI_UINT16 AvailableRequestFixedIEs;
345     OS_802_11_AI_REQFI RequestFixedIEs;
346     TI_UINT32 RequestIELength;
347     TI_UINT32 OffsetRequestIEs;
348     TI_UINT16 AvailableResponseFixedIEs;
349     OS_802_11_AI_RESFI ResponseFixedIEs;
350     TI_UINT32 ResponseIELength;
351     TI_UINT32 OffsetResponseIEs;
352 
353 }  OS_802_11_ASSOCIATION_INFORMATION, *POS_802_11_ASSOCIATION_INFORMATION;
354 
355 
356 /* supported EAP types*/
357 typedef enum _OS_802_11_EAP_TYPES
358 {
359     OS_EAP_TYPE_NONE                = -1,
360 	OS_EAP_TYPE_MD5_CHALLENGE		= 4,
361 	OS_EAP_TYPE_GENERIC_TOKEN_CARD	= 6,
362 	OS_EAP_TYPE_TLS					= 13,
363 	OS_EAP_TYPE_LEAP				= 17,
364 	OS_EAP_TYPE_TTLS				= 21,
365 	OS_EAP_TYPE_PEAP				= 25,
366 	OS_EAP_TYPE_MS_CHAP_V2			= 26,
367     OS_EAP_TYPE_FAST                = 43
368 } OS_802_11_EAP_TYPES;
369 
370 /* encryption type*/
371 typedef enum _OS_802_11_ENCRYPTION_TYPES
372 {
373 	OS_ENCRYPTION_TYPE_NONE = 0,
374 	OS_ENCRYPTION_TYPE_WEP,
375 	OS_ENCRYPTION_TYPE_TKIP,
376 	OS_ENCRYPTION_TYPE_AES
377 } OS_802_11_ENCRYPTION_TYPES;
378 
379 /* Key type*/
380 typedef enum _OS_802_11_KEY_TYPES
381 {
382     OS_KEY_TYPE_STATIC = 0,
383     OS_KEY_TYPE_DYNAMIC
384 } OS_802_11_KEY_TYPES;
385 
386 /* ELP mode*/
387 typedef enum _OS_802_11_ELP_MODES
388 {
389 	OS_ELP_MODE_DISABLE,
390 	OS_ELP_MODE_SYNC,
391     OS_ELP_MODE_NON_SYNC
392 } OS_802_11_ELP_MODES;
393 
394 /* Roaming mode*/
395 typedef enum _OS_802_11_ROAMING_MODES
396 {
397 	OS_ROAMING_MODE_DISABLE,
398 	OS_ROAMING_MODE_ENABLE
399 } OS_802_11_ROAMING_MODES;
400 
401 typedef enum _OS_802_11_POWER_PROFILE
402 {
403     OS_POWER_MODE_AUTO,
404     OS_POWER_MODE_ACTIVE,
405     OS_POWER_MODE_SHORT_DOZE,
406     OS_POWER_MODE_LONG_DOZE
407 } OS_802_11_POWER_PROFILE;
408 
409 typedef enum _OS_802_11_POWER_LEVELS
410 {
411     OS_POWER_LEVEL_ELP,
412     OS_POWER_LEVEL_PD,
413     OS_POWER_LEVEL_AWAKE
414 } OS_802_11_POWER_LEVELS;
415 
416 
417 typedef enum _OS_802_11_BEACON_FILTER_MODE
418 {
419     OS_BEACON_FILTER_MODE_INACTIVE,
420     OS_BEACON_FILTER_MODE_ACTIVE
421 } OS_802_11_BEACON_FILTER_MODE;
422 
423 
424 typedef enum _OS_802_11_SCAN_TYPES
425 {
426     OS_SCAN_TYPE_PASSIVE,
427     OS_SCAN_TYPE_BROADCAST,
428     OS_SCAN_TYPE_UNICAST
429 } OS_802_11_SCAN_TYPES;
430 
431 typedef enum _OS_802_11_VOICE_DELIVERY_PROTOCOL
432 {
433     OS_VOICE_DELIVERY_PROTOCOL_DISABLED,
434     OS_VOICE_DELIVERY_PROTOCOL_PS_POLL
435 } OS_802_11_VOICE_DELIVERY_PROTOCOL;
436 
437 typedef struct _OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS
438 {
439     TI_UINT32 uHighThreshold;
440 	TI_UINT32 uLowThreshold;
441     TI_UINT32 TestInterval;
442 } OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS;
443 
444 typedef struct{
445 	TI_UINT32 uHighOrLowThresholdFlag;                /* high or low */
446 	TI_UINT32 uAboveOrBelowFlag;       /* direction of crossing */
447 } OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_CROSS_INDICATION_PARAMS;
448 
449 typedef TI_UINT8   OS_802_11_PMKID_VALUE[16];
450 
451 typedef struct _OS_BSSIDInfo
452 {
453     TMacAddr   BSSID;
454     OS_802_11_PMKID_VALUE   PMKID;
455 }  OS_BSSIDInfo, *POS_BSSIDInfo;
456 
457 typedef struct _OS_802_11_PMKID
458 {
459     TI_UINT32        Length;
460     TI_UINT32        BSSIDInfoCount;
461     OS_BSSIDInfo    osBSSIDInfo[1];
462 }  OS_802_11_PMKID, *POS_802_11_PMKID;
463 
464 typedef enum _OS_802_11_WEP_STATUS
465 {
466   os802_11WEPEnabled = 0,
467   os802_11Encryption1Enabled = os802_11WEPEnabled,
468   os802_11WEPDisabled,
469   os802_11EncryptionDisabled = os802_11WEPDisabled,
470   os802_11WEPKeyAbsent,
471   os802_11Encryption1KeyAbsent = os802_11WEPKeyAbsent,
472   os802_11WEPNotSupported,
473   os802_11EncryptionNotSupported = os802_11WEPNotSupported,
474   os802_11Encryption2Enabled,
475   os802_11Encryption2KeyAbsent,
476   os802_11Encryption3Enabled,
477   os802_11Encryption3KeyAbsent
478 } OS_802_11_WEP_STATUS, OS_802_11_ENCRYPTION_STATUS;
479 
480 /*os802_11AuthModeOpen */
481 /*  Specifies 802.11 open authentication mode. There are no checks when accepting */
482 /*  clients in this mode. */
483 /*os802_11AuthModeShared */
484 /*  Specifies 802.11 shared authentication that uses a pre-shared wired equivalent */
485 /*  privacy (WEP) key. */
486 /*os802_11AuthModeAutoSwitch */
487 /*  Specifies auto-switch mode. When using auto-switch mode, the NIC tries 802.11 shared */
488 /*  authentication mode first. If shared mode fails, the NIC attempts to use 802.11 open */
489 /*  authentication mode. */
490 
491 typedef enum _OS_802_11_AUTHENTICATION_MODE
492 {
493     os802_11AuthModeOpen,
494     os802_11AuthModeShared,
495     os802_11AuthModeAutoSwitch,
496     os802_11AuthModeWPA,
497     os802_11AuthModeWPAPSK,
498     os802_11AuthModeWPANone,
499     os802_11AuthModeWPA2,
500     os802_11AuthModeWPA2PSK,
501     os802_11AuthModeMax
502 } OS_802_11_AUTHENTICATION_MODE;
503 
504 
505 /*os802_11PrivFilterAcceptAll */
506 /*  Specifies an open mode. In this mode, the NIC accepts any packet if the packet */
507 /*  is not encrypted or if the NIC successfully decrypts it. */
508 /*os802_11PrivFilter8021xWEP */
509 /*  Specifies a filtering mode. In the 802.1X filtering mode, 802.1X packets are */
510 /*  accepted even if they are not encrypted. However, the NIC accepts nothing else */
511 /*  unless it is encrypted using WEP. */
512 typedef enum _OS_802_11_PRIVACY_FILTER
513 {
514   os802_11PrivFilterAcceptAll,
515   os802_11PrivFilter8021xWEP
516 } OS_802_11_PRIVACY_FILTER;
517 
518 typedef enum _OS_802_11_RELOAD_DEFAULTS
519 {
520   os802_11ReloadWEPKeys
521 } OS_802_11_RELOAD_DEFAULTS, *POS_802_11_RELOAD_DEFAULTS;
522 
523 typedef enum _OS_802_11_STATUS_TYPE
524 {
525     os802_11StatusType_Authentication,
526     os802_11StatusType_PMKID_CandidateList = 2,
527     os802_11StatusTypeMax       /* not a real type, defined as an upper bound */
528 } OS_802_11_STATUS_TYPE, *POS_802_11_STATUS_TYPE;
529 
530 typedef struct _OS_802_11_STATUS_INDICATION
531 {
532     OS_802_11_STATUS_TYPE StatusType;
533 } OS_802_11_STATUS_INDICATION, *POS_802_11_STATUS_INDICATION;
534 
535 
536 typedef struct _OS_802_11_AUTHENTICATION_REQUEST
537 {
538     TI_UINT32           	Length;             /* Length of this structure*/
539     TMacAddr 	            BSSID;
540 	TI_UINT32				Flags;
541 }  OS_802_11_AUTHENTICATION_REQUEST, *POS_802_11_AUTHENTICATION_REQUEST;
542 
543 typedef enum
544 {
545 	OS_DISASSOC_STATUS_UNSPECIFIED      		=   0,
546 	OS_DISASSOC_STATUS_AUTH_REJECT				=   1,
547 	OS_DISASSOC_STATUS_ASSOC_REJECT				=   2,
548 	OS_DISASSOC_STATUS_SECURITY_FAILURE 		=   3,
549 	OS_DISASSOC_STATUS_AP_DEAUTHENTICATE		=   4,
550 	OS_DISASSOC_STATUS_AP_DISASSOCIATE			=   5,
551 	OS_DISASSOC_STATUS_ROAMING_TRIGGER			=   6
552 
553 }	OS_802_11_DISASSOCIATE_REASON_E;
554 
555 typedef struct
556 {
557 	OS_802_11_DISASSOCIATE_REASON_E  eDisAssocType;
558 	TI_UINT32						 uStatusCode;
559 } OS_802_11_DISASSOCIATE_REASON_T;
560 
561 
562 
563 #define OS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLE   0x01
564 
565 typedef struct _OS_802_11_PMKID_CANDIDATE
566 {
567     TMacAddr               BSSID;
568     TI_UINT32              Flags;
569 }  OS_802_11_PMKID_CANDIDATE, *POS_802_11_PMKID_CANDIDATE;
570 
571 typedef struct _OS_802_11_PMKID_CANDIDATELIST
572 {
573     TI_UINT32                   Version;       /* Version of the structure*/
574     TI_UINT32                   NumCandidates; /* No. of pmkid candidates*/
575     OS_802_11_PMKID_CANDIDATE  CandidateList[1];
576 }  OS_802_11_PMKID_CANDIDATELIST, *POS_802_11_PMKID_CANDIDATELIST;
577 
578 
579 typedef TI_UINT8 OS_802_11_MAC_PMKID_VALUE[16];
580 
581 typedef struct _OS_802_11_BSSIDInfo
582 {
583     TMacAddr 	               BSSID;
584     OS_802_11_MAC_PMKID_VALUE  PMKID;
585 }  OS_802_11_BSSIDInfo, *POS_802_11_BSSIDInfo;
586 
587 
588 typedef struct _OS_802_11_AUTH_ENCRYPTION
589 {
590     OS_802_11_AUTHENTICATION_MODE AuthModeSupported;
591     OS_802_11_ENCRYPTION_STATUS   EncryptionStatusSupported;
592 } OS_802_11_AUTH_ENCRYPTION, *POS_802_11_AUTH_ENCRYPTION;
593 
594 
595 typedef struct _OS_802_11_CAPABILITY
596 {
597     TI_UINT32 Length;
598     TI_UINT32 Version;
599     TI_UINT32 NoOfPmKIDs;
600     TI_UINT32 NoOfAuthEncryptPairsSupported;
601     OS_802_11_AUTH_ENCRYPTION AuthEncryptionSupported[1];
602 
603 } OS_802_11_CAPABILITY, *POS_802_11_CAPABILITY;
604 
605 #define OID_CAPABILITY_VERSION 2
606 
607 
608 
609 typedef enum _OS_802_11_REG_DOMAIN
610 {
611   os802_11_Domain_FCC = 0x10,
612   os802_11_Domain_IC = 0x20,
613   os802_11_Domain_ETSI = 0x30,
614   os802_11_Domain_Spain = 0x31,
615   os802_11_Domain_France = 0x32,
616   os802_11_Domain_MKK = 0x40,
617   os802_11_Domain_MKK1 = 0x41,
618   os802_11_Domain_US	= 0x50,
619   os802_11_Domain_WB	= 0x51,
620   os802_11_Domain_EXWB	= 0x52
621 } OS_802_11_REG_DOMAIN;
622 
623 
624 
625 #define OID_TI_VERSION							0xFF080001
626 
627 
628 /* propritary OIDs used by FUNK supplicant for WPA Mixed mode support*/
629 /* WPA2 MIxed mode OIDs */
630 #define CGUID_FSW_802_11_AVAILABLE_OPTIONS      {0x1a905534, 0xe71f, 0x46d1, {0xa2, 0xcb, 0xa5, 0x57, 0x01, 0x76, 0x38, 0xfd}}
631 #define CGUID_FSW_802_11_OPTIONS 				{0xdc7a51b7, 0x2236, 0x467d, {0xb1, 0x55, 0x03, 0x50, 0x42, 0x04, 0xcf, 0x30}}
632 
633 #define OID_FSW_802_11_AVAILABLE_OPTIONS        0xFF010237
634 #define OID_FSW_802_11_OPTIONS                  0xFF010238
635 
636 
637 
638 /**/
639 /* IEEE 802.11 OIDs*/
640 /**/
641 #define OID_802_11_BSSID                        0x0D010101
642 #define OID_802_11_SSID                         0x0D010102
643 #define OID_802_11_INFRASTRUCTURE_MODE          0x0D010108
644 #define OID_802_11_ADD_WEP                      0x0D010113
645 #define OID_802_11_REMOVE_WEP                   0x0D010114
646 #define OID_802_11_DISASSOCIATE                 0x0D010115
647 #define OID_802_11_AUTHENTICATION_MODE          0x0D010118
648 #define OID_802_11_PRIVACY_FILTER               0x0D010119
649 #define OID_802_11_BSSID_LIST_SCAN              0x0D01011A
650 #define OID_802_11_WEP_STATUS                   0x0D01011B
651 #define OID_802_11_RELOAD_DEFAULTS              0x0D01011C
652 #define OID_802_11_ADD_KEY                      0x0D01011D
653 #define OID_802_11_REMOVE_KEY                   0x0D01011E
654 #define OID_802_11_ASSOCIATION_INFORMATION      0x0D01011F
655 #define OID_802_11_NETWORK_TYPES_SUPPORTED      0x0D010203
656 #define OID_802_11_NETWORK_TYPE_IN_USE          0x0D010204
657 #define OID_802_11_TX_POWER_LEVEL               0x0D010205
658 #define OID_802_11_RSSI                         0x0D010206
659 #define OID_802_11_RSSI_TRIGGER                 0x0D010207
660 #define OID_802_11_FRAGMENTATION_THRESHOLD      0x0D010209
661 #define OID_802_11_RTS_THRESHOLD                0x0D01020A
662 #define OID_802_11_NUMBER_OF_ANTENNAS           0x0D01020B
663 #define OID_802_11_RX_ANTENNA_SELECTED          0x0D01020C
664 #define OID_802_11_TX_ANTENNA_SELECTED          0x0D01020D
665 #define OID_802_11_SUPPORTED_RATES              0x0D01020E
666 #define OID_802_11_DESIRED_RATES                0x0D010210
667 #define OID_802_11_CONFIGURATION                0x0D010211
668 #define OID_802_11_STATISTICS                   0x0D020212
669 #define OID_802_11_POWER_MODE                   0x0D010216
670 #define OID_802_11_BSSID_LIST                   0x0D010217
671 
672 
673 #ifndef _USER_MODE
674 	#include "osdot11nousermode.h"
675 #endif
676 
677 
678 
679 
680 /* AnyWPA mode flags used in propritary FUNK suplicant OIDs*/
681 
682 #define     OS_802_11_OPTION_ENABLE_PROMOTE_MODE        0x00000001 /*bit 0*/
683 #define     OS_802_11_OPTION_ENABLE_PROMOTE_CIPHER      0x00000002 /*bit 1*/
684 #define		OS_802_11_OPTION_DISABLE_PROMOTE_MODE		0
685 #define     OS_802_11_OPTION_ENABLE_ALL                 0x00000003
686 
687 #endif
688