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/**/
67typedef 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
84typedef TI_UINT64 OS_802_11_KEY_RSC;
85
86typedef 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
92typedef 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
102typedef 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
108typedef 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).*/
125typedef TI_UINT32 OS_802_11_TX_POWER_LEVEL;
126/*Normal value from -10 and -200*/
127typedef 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). */
142typedef 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. */
166typedef 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.*/
189typedef 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/**/
202typedef TI_UINT8 OS_802_11_RATES[8];
203
204typedef TI_UINT8 OS_802_11_RATES_EX[16];
205
206typedef TI_UINT8 OS_802_11_N_RATES[32];
207
208typedef 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
215typedef 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
222typedef 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
236typedef 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
243typedef 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
259typedef 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
266typedef TI_UINT32 OS_802_11_FRAGMENTATION_THRESHOLD;
267typedef TI_UINT32 OS_802_11_RTS_THRESHOLD;
268typedef 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
283typedef TI_UINT32 OS_802_11_KEY_INDEX;
284typedef 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
295typedef 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
305typedef 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
321typedef 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
331typedef 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
341typedef 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*/
357typedef 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*/
371typedef 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*/
380typedef 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*/
387typedef 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*/
395typedef enum _OS_802_11_ROAMING_MODES
396{
397	OS_ROAMING_MODE_DISABLE,
398	OS_ROAMING_MODE_ENABLE
399} OS_802_11_ROAMING_MODES;
400
401typedef 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
409typedef 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
417typedef 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
424typedef 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
431typedef 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
437typedef 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
444typedef 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
449typedef TI_UINT8   OS_802_11_PMKID_VALUE[16];
450
451typedef struct _OS_BSSIDInfo
452{
453    TMacAddr   BSSID;
454    OS_802_11_PMKID_VALUE   PMKID;
455}  OS_BSSIDInfo, *POS_BSSIDInfo;
456
457typedef 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
464typedef 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
491typedef 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. */
512typedef enum _OS_802_11_PRIVACY_FILTER
513{
514  os802_11PrivFilterAcceptAll,
515  os802_11PrivFilter8021xWEP
516} OS_802_11_PRIVACY_FILTER;
517
518typedef enum _OS_802_11_RELOAD_DEFAULTS
519{
520  os802_11ReloadWEPKeys
521} OS_802_11_RELOAD_DEFAULTS, *POS_802_11_RELOAD_DEFAULTS;
522
523typedef 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
530typedef 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
536typedef 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
543typedef 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
555typedef 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
565typedef 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
571typedef 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
579typedef TI_UINT8 OS_802_11_MAC_PMKID_VALUE[16];
580
581typedef 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
588typedef 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
595typedef 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
609typedef 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