utils/osDot11.h
changeset 0 10c42ec6c05f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utils/osDot11.h	Tue Jun 29 12:34:26 2010 +0100
@@ -0,0 +1,690 @@
+/*
+ * osDot11.h
+ *
+ * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.      
+ * All rights reserved.      
+ * 
+ * This program and the accompanying materials are made available under the 
+ * terms of the Eclipse Public License v1.0 or BSD License which accompanies
+ * this distribution. The Eclipse Public License is available at
+ * http://www.eclipse.org/legal/epl-v10.html and the BSD License is as below.                                   
+ *                                                                       
+ * Redistribution and use in source and binary forms, with or without    
+ * modification, are permitted provided that the following conditions    
+ * are met:                                                              
+ *                                                                       
+ *  * Redistributions of source code must retain the above copyright     
+ *    notice, this list of conditions and the following disclaimer.      
+ *  * Redistributions in binary form must reproduce the above copyright  
+ *    notice, this list of conditions and the following disclaimer in    
+ *    the documentation and/or other materials provided with the         
+ *    distribution.                                                      
+ *  * Neither the name Texas Instruments nor the names of its            
+ *    contributors may be used to endorse or promote products derived    
+ *    from this software without specific prior written permission.      
+ *                                                                       
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+/*--------------------------------------------------------------------------*/
+/* Module:		osDot11.h */
+/**/
+/* Purpose:		*/
+/**/
+/*--------------------------------------------------------------------------*/
+#ifndef __OSDOT11_H__
+#define __OSDOT11_H__
+
+#include "tidef.h"
+#include "tiQosTypes.h"
+
+
+#define	OS_STATUS_MEDIA_SPECIFIC_INDICATION	((NDIS_STATUS)0x40010012L)
+
+#define OS_802_11_REQUEST_REAUTH					0x01
+#define OS_802_11_REQUEST_KEYUPDATE					0x02
+#define OS_802_11_REQUEST_PAIRWISE_ERROR			0x06
+#define OS_802_11_REQUEST_GROUP_ERROR				0x0E
+
+#define OS_802_11_SSID_FIRST_VALID_CHAR             32
+
+#define OS_802_11_SSID_JUNK(str,len)                   \
+        ((len) > 2 &&                                  \
+         (str)[0] < OS_802_11_SSID_FIRST_VALID_CHAR && \
+         (str)[1] < OS_802_11_SSID_FIRST_VALID_CHAR && \
+         (str)[2] < OS_802_11_SSID_FIRST_VALID_CHAR)
+
+
+/**/
+/*  Per-packet information for Ieee8021QInfo.*/
+/**/
+typedef struct _OS_PACKET_8021Q_INFO
+{
+    union
+    {
+        struct
+        {
+            TI_UINT32      UserPriority:3;         /* 802.1p priority */
+            TI_UINT32      CanonicalFormatId:1;    /* always 0*/
+            TI_UINT32      VlanId:12;              /* VLAN Identification*/
+            TI_UINT32      Reserved:16;            /* set to 0*/
+        }   TagHeader;
+
+        void*  Value;
+    }u;
+} OS_PACKET_8021Q_INFO, *POS_PACKET_8021Q_INFO;
+
+
+typedef TI_UINT64 OS_802_11_KEY_RSC;
+
+typedef struct _OS_802_11_SSID 
+{
+    TI_UINT32 SsidLength;
+    TI_UINT8  Ssid[32];
+} OS_802_11_SSID, *POS_802_11_SSID;
+
+typedef enum _OS_802_11_NETWORK_TYPE
+{
+  os802_11FH,
+  os802_11DS,
+  os802_11OFDM5,
+  os802_11OFDM24,
+  os802_11Automode,
+  os802_11NetworkTypeMax
+} OS_802_11_NETWORK_TYPE;
+
+typedef struct _OS_802_11_NETWORK_TYPE_LIST 
+{
+  TI_UINT32                  NumberOfItems;
+  OS_802_11_NETWORK_TYPE NetworkType [1];
+} OS_802_11_NETWORK_TYPE_LIST, *POS_802_11_NETWORK_TYPE_LIST;
+
+typedef enum _OS_802_11_POWER_MODE
+{
+  /*Continuous access mode (CAM). */
+  /*When the power mode is set to CAM, the device is always on. */
+  os802_11PowerModeCAM, 
+
+  /*Specifies maximum (MAX) power saving. A power mode of MAX */
+  /*results in the greatest power savings for the 802.11 NIC radio. */
+  os802_11PowerModeMAX_PSP,
+
+  /*Specifies fast power-saving mode. This power mode provides */
+  /*the best combination of network performance and power usage. */
+  os802_11PowerModeFast_PSP,
+  os802_11PowerModeMax
+} OS_802_11_POWER_MODE;
+
+/*specified in milliwatts (mW).*/
+typedef TI_UINT32 OS_802_11_TX_POWER_LEVEL;
+/*Normal value from -10 and -200*/
+typedef TI_INT32 OS_802_11_RSSI; 
+
+/*Length */
+
+/*  Specifies the length of the OS_802_11_CONFIGURATION_FH structure in bytes. */
+/*HopPattern*/
+/*  Specifies the hop pattern used to determine the hop sequence. */
+/*  As defined by the 802.11 standard, the layer management entity (LME) of */
+/*  the physical layer uses a hop pattern to determine the hop sequence. */
+/*HopSet*/
+/*  Specifies a set of patterns. The LME of the physical layer uses these */
+/*  patterns to determine the hop sequence. */
+/*DwellTime*/
+/*  Specifies the maximum period of time during which the transmitter */
+/*  should remain fixed on a channel. This interval is described in Kµsec (1024 µsec). */
+typedef struct _OS_802_11_CONFIGURATION_FH 
+{
+    TI_UINT32  Length; 
+    TI_UINT32  HopPattern;
+    TI_UINT32  HopSet; 
+    TI_UINT32  DwellTime;
+} OS_802_11_CONFIGURATION_FH, *POS_802_11_CONFIGURATION_FH;
+
+/*Length */
+
+/*  Specifies the length of the NDIS_802_11_CONFIGURATION structure in bytes. */
+/*BeaconPeriod */
+/*  Specifies the interval between beacon message transmissions. */
+/*  This value is specified in Kµsec (1024 µsec). */
+/*ATIMWindow */
+/*  Specifies the announcement traffic information message (ATIM) window in */
+/*  Kµsec (1024 µsec). The ATIM window is a short time period immediately */
+/*  after the transmission of each beacon in an IBSS configuration. */
+/*  During the ATIM window, any station can indicate the need to transfer data */
+/*  to another station during the following data-transmission window. */
+/*DSConfig */
+/*  Specifies the frequency of the selected channel in kHz. */
+/*FHConfig */
+/*  Specifies the frequency hopping configuration in an OS_802_11_CONFIGURATION_FH structure. */
+typedef struct _OS_802_11_CONFIGURATION 
+{
+    TI_UINT32 Length;
+    TI_UINT32 BeaconPeriod;
+    TI_UINT32 ATIMWindow;
+  union 
+  {
+        TI_UINT32 DSConfig;
+        TI_UINT32 channel;
+  } Union;
+  OS_802_11_CONFIGURATION_FH FHConfig;
+} OS_802_11_CONFIGURATION, *POS_802_11_CONFIGURATION;
+
+/*Ndis802_11IBSS */
+/*  Specifies the independent basic service set (IBSS) mode. */
+/*  This mode is also known as ad hoc mode. */
+/*Ndis802_11Infrastructure */
+/*  Specifies the infrastructure mode. */
+/*Ndis802_11AutoUnknown */
+/*  Specifies an automatic mode. In this mode, the 802.11 NIC can switch */
+/*  between ad hoc and infrastructure modes as required. */
+/*Ndis802_11HighSpeedIBSS*/
+/*  Specifies proprietary ad hoc mode that works only PBCC.*/
+typedef enum _OS_802_11_NETWORK_MODE
+{
+  os802_11IBSS,
+  os802_11Infrastructure,
+  os802_11AutoUnknown,
+  os802_11HighSpeedIBSS,
+  os802_11InfrastructureMax
+} OS_802_11_NETWORK_MODE, OS_802_11_NETWORK_INFRASTRUCTURE,*POS_802_11_NETWORK_INFRASTRUCTURE;
+
+/**/
+/*The rates array contains a set of eight octets. */
+/*Each octet contains a desired data rate in units of .5 Mbps.*/
+/**/
+typedef TI_UINT8 OS_802_11_RATES[8];
+
+typedef TI_UINT8 OS_802_11_RATES_EX[16];
+
+typedef struct _OS_802_11_FIXED_IEs 
+{
+	TI_UINT8  TimeStamp[8]; 
+	TI_UINT16 BeaconInterval;
+	TI_UINT16 Capabilities; 
+} OS_802_11_FIXED_IEs, *POS_802_11_FIXED_IEs;
+
+typedef struct _OS_802_11_VARIABLE_IEs 
+{
+	TI_UINT8 ElementID;
+	TI_UINT8 Length;	/* Number of bytes in data field*/
+	TI_UINT8 data[1];
+}  OS_802_11_VARIABLE_IEs, *POS_802_11_VARIABLE_IEs;
+
+typedef struct _OS_802_11_BSSID
+{
+  TI_UINT32 Length;
+  TMacAddr                  MacAddress;
+  TI_UINT16					Capabilities; 
+  OS_802_11_SSID            Ssid;
+  TI_UINT32                 Privacy;
+  OS_802_11_RSSI            Rssi;
+  OS_802_11_NETWORK_TYPE    NetworkTypeInUse;
+  OS_802_11_CONFIGURATION   Configuration;
+  OS_802_11_NETWORK_MODE    InfrastructureMode;
+  OS_802_11_RATES           SupportedRates;
+}  OS_802_11_BSSID, *POS_802_11_BSSID;
+
+typedef struct _OS_802_11_BSSID_LIST
+{
+    TI_UINT32          NumberOfItems;
+  OS_802_11_BSSID  Bssid[1];
+}  OS_802_11_BSSID_LIST, *POS_802_11_BSSID_LIST;
+
+
+typedef struct _OS_802_11_BSSID_EX
+{
+  TI_UINT32					Length;
+  TMacAddr		            MacAddress;
+  TI_UINT16					Capabilities; 
+  OS_802_11_SSID            Ssid;
+  TI_UINT32                 Privacy;
+  OS_802_11_RSSI            Rssi;
+  OS_802_11_NETWORK_TYPE    NetworkTypeInUse;
+  OS_802_11_CONFIGURATION   Configuration;
+  OS_802_11_NETWORK_MODE    InfrastructureMode;
+  OS_802_11_RATES_EX        SupportedRates;
+  TI_UINT32                 IELength;
+  TI_UINT8                  IEs[1];
+} OS_802_11_BSSID_EX, *POS_802_11_BSSID_EX, OS_WLAN_BSSID_EX, *POS_WLAN_BSSID_EX;
+
+typedef struct _OS_802_11_BSSID_LIST_EX
+{
+  TI_UINT32                 NumberOfItems;
+  OS_802_11_BSSID_EX        Bssid[1];
+}  OS_802_11_BSSID_LIST_EX, *POS_802_11_BSSID_LIST_EX;
+
+
+typedef TI_UINT32 OS_802_11_FRAGMENTATION_THRESHOLD;
+typedef TI_UINT32 OS_802_11_RTS_THRESHOLD;
+typedef TI_UINT32 OS_802_11_ANTENNA;
+
+
+/*Length */
+/*  Specifies the length of the NDIS_802_11_WEP structure in bytes. */
+/*KeyIndex */
+/*  Specifies which key to add or remove. The global keys are represented */
+/*  by values of zero to n. When the most significant bit is set to 1, */
+/*  it indicates the key used to transmit to the access point. */
+/*KeyLength */
+/*  Specifies the length of the KeyMaterial character array in bytes. */
+/*KeyMaterial */
+/*  Specifies an arraythat identifies the WEP key. The length of this array is */
+/*  variable and depends upon the value of the KeyLength member. */
+
+typedef TI_UINT32 OS_802_11_KEY_INDEX;
+typedef struct _OS_802_11_WEP 
+{
+    TI_UINT32 Length;
+    TI_UINT32 KeyIndex; 
+    TI_UINT32 KeyLength;
+    TI_UINT8  KeyMaterial [32]; 
+} OS_802_11_WEP, *POS_802_11_WEP;
+
+/* Key mapping keys require a BSSID*/
+/*typedef tiUINT64 OS_802_11_KEY_RSC;*/
+
+typedef struct _OS_802_11_KEY
+{
+    TI_UINT32                  Length;             /* Length of this structure*/
+    TI_UINT32                  KeyIndex;
+    TI_UINT32                  KeyLength;          /* length of key in bytes*/
+    TMacAddr                   BSSID;
+    OS_802_11_KEY_RSC          KeyRSC;
+    TI_UINT8                   KeyMaterial[32];     /* variable length depending on above field*/
+}  OS_802_11_KEY, *POS_802_11_KEY;
+
+typedef struct _OS_802_11_REMOVE_KEY
+{
+    TI_UINT32                  Length;             /* Length of this structure*/
+    TI_UINT32                  KeyIndex;
+    TMacAddr                   BSSID;
+} OS_802_11_REMOVE_KEY, *POS_802_11_REMOVE_KEY;
+
+#define OS_802_11_AI_REQFI_CAPABILITIES     1
+#define OS_802_11_AI_REQFI_LISTENINTERVAL   2
+#define OS_802_11_AI_REQFI_CURRENTAPADDRESS 4
+
+
+#define OS_802_11_AI_RESFI_CAPABILITIES     1
+#define OS_802_11_AI_RESFI_STATUSCODE       2
+#define OS_802_11_AI_RESFI_ASSOCIATIONID    4
+
+typedef struct _OS_802_11_AI_REQFI
+{
+	TI_UINT16 Capabilities;
+	TI_UINT16 ListenInterval;
+	TMacAddr  CurrentAPAddress;
+    TI_UINT16 reserved; /* added for packing */
+
+} OS_802_11_AI_REQFI;
+
+typedef struct _OS_802_11_AI_RESFI
+{
+	TI_UINT16 Capabilities;
+	TI_UINT16 StatusCode;
+	TI_UINT16 AssociationId;
+#ifndef _WINDOWS
+    TI_UINT16 reserved; /* added for packing */
+#endif
+} OS_802_11_AI_RESFI;
+
+typedef struct _OS_802_11_ASSOCIATION_INFORMATION
+{
+    TI_UINT32 Length;
+    TI_UINT16 AvailableRequestFixedIEs;
+    OS_802_11_AI_REQFI RequestFixedIEs;
+    TI_UINT32 RequestIELength;
+    TI_UINT32 OffsetRequestIEs;
+    TI_UINT16 AvailableResponseFixedIEs;
+    OS_802_11_AI_RESFI ResponseFixedIEs;
+    TI_UINT32 ResponseIELength;
+    TI_UINT32 OffsetResponseIEs;
+
+}  OS_802_11_ASSOCIATION_INFORMATION, *POS_802_11_ASSOCIATION_INFORMATION;
+
+
+/* supported EAP types*/
+typedef enum _OS_802_11_EAP_TYPES
+{
+    OS_EAP_TYPE_NONE                = -1,
+	OS_EAP_TYPE_MD5_CHALLENGE		= 4,
+	OS_EAP_TYPE_GENERIC_TOKEN_CARD	= 6,
+	OS_EAP_TYPE_TLS					= 13,
+	OS_EAP_TYPE_LEAP				= 17,
+	OS_EAP_TYPE_TTLS				= 21,
+	OS_EAP_TYPE_PEAP				= 25,
+	OS_EAP_TYPE_MS_CHAP_V2			= 26,
+    OS_EAP_TYPE_FAST                = 43
+} OS_802_11_EAP_TYPES;
+
+/* encryption type*/
+typedef enum _OS_802_11_ENCRYPTION_TYPES
+{
+	OS_ENCRYPTION_TYPE_NONE = 0,
+	OS_ENCRYPTION_TYPE_WEP,
+	OS_ENCRYPTION_TYPE_TKIP,
+	OS_ENCRYPTION_TYPE_AES 
+} OS_802_11_ENCRYPTION_TYPES;
+
+/* Key type*/
+typedef enum _OS_802_11_KEY_TYPES
+{
+    OS_KEY_TYPE_STATIC = 0,
+    OS_KEY_TYPE_DYNAMIC
+} OS_802_11_KEY_TYPES;
+
+/* ELP mode*/
+typedef enum _OS_802_11_ELP_MODES
+{
+	OS_ELP_MODE_DISABLE,
+	OS_ELP_MODE_SYNC,
+    OS_ELP_MODE_NON_SYNC
+} OS_802_11_ELP_MODES;
+
+/* Roaming mode*/
+typedef enum _OS_802_11_ROAMING_MODES
+{
+	OS_ROAMING_MODE_DISABLE,
+	OS_ROAMING_MODE_ENABLE
+} OS_802_11_ROAMING_MODES;
+
+typedef enum _OS_802_11_POWER_PROFILE
+{
+    OS_POWER_MODE_AUTO,
+    OS_POWER_MODE_ACTIVE,
+    OS_POWER_MODE_SHORT_DOZE,
+    OS_POWER_MODE_LONG_DOZE
+} OS_802_11_POWER_PROFILE;
+
+typedef enum _OS_802_11_POWER_LEVELS
+{
+    OS_POWER_LEVEL_ELP,
+    OS_POWER_LEVEL_PD,
+    OS_POWER_LEVEL_AWAKE
+} OS_802_11_POWER_LEVELS;
+
+
+typedef enum _OS_802_11_BEACON_FILTER_MODE
+{
+    OS_BEACON_FILTER_MODE_INACTIVE,
+    OS_BEACON_FILTER_MODE_ACTIVE
+} OS_802_11_BEACON_FILTER_MODE;
+
+
+typedef enum _OS_802_11_SCAN_TYPES
+{
+    OS_SCAN_TYPE_PASSIVE,
+    OS_SCAN_TYPE_BROADCAST,
+    OS_SCAN_TYPE_UNICAST
+} OS_802_11_SCAN_TYPES;
+
+typedef enum _OS_802_11_VOICE_DELIVERY_PROTOCOL
+{
+    OS_VOICE_DELIVERY_PROTOCOL_DISABLED,
+    OS_VOICE_DELIVERY_PROTOCOL_PS_POLL   
+} OS_802_11_VOICE_DELIVERY_PROTOCOL;
+
+typedef struct _OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS
+{
+    TI_UINT32 uHighThreshold;
+	TI_UINT32 uLowThreshold;
+    TI_UINT32 TestInterval;
+} OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS;
+
+typedef struct{
+	TI_UINT32 uHighOrLowThresholdFlag;                /* high or low */
+	TI_UINT32 uAboveOrBelowFlag;       /* direction of crossing */
+} OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_CROSS_INDICATION_PARAMS;
+
+typedef TI_UINT8   OS_802_11_PMKID_VALUE[16];
+
+typedef struct _OS_BSSIDInfo
+{
+    TMacAddr   BSSID;
+    OS_802_11_PMKID_VALUE   PMKID;
+}  OS_BSSIDInfo, *POS_BSSIDInfo;
+
+typedef struct _OS_802_11_PMKID
+{
+    TI_UINT32        Length;
+    TI_UINT32        BSSIDInfoCount;
+    OS_BSSIDInfo    osBSSIDInfo[1];
+}  OS_802_11_PMKID, *POS_802_11_PMKID;
+
+typedef enum _OS_802_11_WEP_STATUS 
+{
+  os802_11WEPEnabled = 0,
+  os802_11Encryption1Enabled = os802_11WEPEnabled,
+  os802_11WEPDisabled,
+  os802_11EncryptionDisabled = os802_11WEPDisabled,
+  os802_11WEPKeyAbsent,
+  os802_11Encryption1KeyAbsent = os802_11WEPKeyAbsent,
+  os802_11WEPNotSupported,
+  os802_11EncryptionNotSupported = os802_11WEPNotSupported,
+  os802_11Encryption2Enabled,
+  os802_11Encryption2KeyAbsent,
+  os802_11Encryption3Enabled,
+  os802_11Encryption3KeyAbsent
+} OS_802_11_WEP_STATUS, OS_802_11_ENCRYPTION_STATUS;
+
+/*os802_11AuthModeOpen */
+/*  Specifies 802.11 open authentication mode. There are no checks when accepting */
+/*  clients in this mode. */
+/*os802_11AuthModeShared */
+/*  Specifies 802.11 shared authentication that uses a pre-shared wired equivalent */
+/*  privacy (WEP) key. */
+/*os802_11AuthModeAutoSwitch */
+/*  Specifies auto-switch mode. When using auto-switch mode, the NIC tries 802.11 shared */
+/*  authentication mode first. If shared mode fails, the NIC attempts to use 802.11 open */
+/*  authentication mode. */
+
+typedef enum _OS_802_11_AUTHENTICATION_MODE 
+{
+    os802_11AuthModeOpen,
+    os802_11AuthModeShared,
+    os802_11AuthModeAutoSwitch,
+    os802_11AuthModeWPA,
+    os802_11AuthModeWPAPSK,
+    os802_11AuthModeWPANone,
+    os802_11AuthModeWPA2,
+    os802_11AuthModeWPA2PSK,
+    os802_11AuthModeMax
+} OS_802_11_AUTHENTICATION_MODE;
+
+
+/*os802_11PrivFilterAcceptAll */
+/*  Specifies an open mode. In this mode, the NIC accepts any packet if the packet */
+/*  is not encrypted or if the NIC successfully decrypts it. */
+/*os802_11PrivFilter8021xWEP */
+/*  Specifies a filtering mode. In the 802.1X filtering mode, 802.1X packets are */
+/*  accepted even if they are not encrypted. However, the NIC accepts nothing else */
+/*  unless it is encrypted using WEP. */
+typedef enum _OS_802_11_PRIVACY_FILTER 
+{
+  os802_11PrivFilterAcceptAll, 
+  os802_11PrivFilter8021xWEP 
+} OS_802_11_PRIVACY_FILTER;
+
+typedef enum _OS_802_11_RELOAD_DEFAULTS
+{
+  os802_11ReloadWEPKeys
+} OS_802_11_RELOAD_DEFAULTS, *POS_802_11_RELOAD_DEFAULTS;
+
+typedef enum _OS_802_11_STATUS_TYPE
+{
+    os802_11StatusType_Authentication,
+    os802_11StatusType_PMKID_CandidateList = 2,
+    os802_11StatusTypeMax       /* not a real type, defined as an upper bound */
+} OS_802_11_STATUS_TYPE, *POS_802_11_STATUS_TYPE;
+
+typedef struct _OS_802_11_STATUS_INDICATION
+{
+    OS_802_11_STATUS_TYPE StatusType;
+} OS_802_11_STATUS_INDICATION, *POS_802_11_STATUS_INDICATION;
+
+
+typedef struct _OS_802_11_AUTHENTICATION_REQUEST
+{
+    TI_UINT32           	Length;             /* Length of this structure*/
+    TMacAddr 	            BSSID;
+	TI_UINT32				Flags;
+}  OS_802_11_AUTHENTICATION_REQUEST, *POS_802_11_AUTHENTICATION_REQUEST;
+
+typedef enum
+{
+	OS_DISASSOC_STATUS_UNSPECIFIED      		=   0,  
+	OS_DISASSOC_STATUS_AUTH_REJECT				=   1,
+	OS_DISASSOC_STATUS_ASSOC_REJECT				=   2,
+	OS_DISASSOC_STATUS_SECURITY_FAILURE 		=   3,
+	OS_DISASSOC_STATUS_AP_DEAUTHENTICATE		=   4,
+	OS_DISASSOC_STATUS_AP_DISASSOCIATE			=   5,
+	OS_DISASSOC_STATUS_ROAMING_TRIGGER			=   6
+
+}	OS_802_11_DISASSOCIATE_REASON_E;
+
+typedef struct
+{
+	OS_802_11_DISASSOCIATE_REASON_E  eDisAssocType;
+	TI_UINT32						 uStatusCode;
+} OS_802_11_DISASSOCIATE_REASON_T;
+
+
+
+#define OS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLE   0x01
+
+typedef struct _OS_802_11_PMKID_CANDIDATE 
+{
+    TMacAddr               BSSID;
+    TI_UINT32              Flags;
+}  OS_802_11_PMKID_CANDIDATE, *POS_802_11_PMKID_CANDIDATE;
+
+typedef struct _OS_802_11_PMKID_CANDIDATELIST
+{
+    TI_UINT32                   Version;       /* Version of the structure*/
+    TI_UINT32                   NumCandidates; /* No. of pmkid candidates*/
+    OS_802_11_PMKID_CANDIDATE  CandidateList[1];
+}  OS_802_11_PMKID_CANDIDATELIST, *POS_802_11_PMKID_CANDIDATELIST;
+
+
+typedef TI_UINT8 OS_802_11_MAC_PMKID_VALUE[16];
+
+typedef struct _OS_802_11_BSSIDInfo
+{
+    TMacAddr 	               BSSID;
+    OS_802_11_MAC_PMKID_VALUE  PMKID;
+}  OS_802_11_BSSIDInfo, *POS_802_11_BSSIDInfo;
+
+
+typedef struct _OS_802_11_AUTH_ENCRYPTION
+{
+    OS_802_11_AUTHENTICATION_MODE AuthModeSupported;
+    OS_802_11_ENCRYPTION_STATUS   EncryptionStatusSupported;
+} OS_802_11_AUTH_ENCRYPTION, *POS_802_11_AUTH_ENCRYPTION;
+
+
+typedef struct _OS_802_11_CAPABILITY
+{
+    TI_UINT32 Length;
+    TI_UINT32 Version;
+    TI_UINT32 NoOfPmKIDs;
+    TI_UINT32 NoOfAuthEncryptPairsSupported;
+    OS_802_11_AUTH_ENCRYPTION AuthEncryptionSupported[1];
+
+} OS_802_11_CAPABILITY, *POS_802_11_CAPABILITY;
+
+#define OID_CAPABILITY_VERSION 2
+
+
+
+typedef enum _OS_802_11_REG_DOMAIN
+{
+  os802_11_Domain_FCC = 0x10,
+  os802_11_Domain_IC = 0x20,
+  os802_11_Domain_ETSI = 0x30,
+  os802_11_Domain_Spain = 0x31,
+  os802_11_Domain_France = 0x32,
+  os802_11_Domain_MKK = 0x40,
+  os802_11_Domain_MKK1 = 0x41,
+  os802_11_Domain_US	= 0x50,		
+  os802_11_Domain_WB	= 0x51,
+  os802_11_Domain_EXWB	= 0x52
+} OS_802_11_REG_DOMAIN;
+
+
+
+#define OID_TI_VERSION							0xFF080001
+
+
+/* propritary OIDs used by FUNK supplicant for WPA Mixed mode support*/
+/* WPA2 MIxed mode OIDs */
+#define CGUID_FSW_802_11_AVAILABLE_OPTIONS      {0x1a905534, 0xe71f, 0x46d1, {0xa2, 0xcb, 0xa5, 0x57, 0x01, 0x76, 0x38, 0xfd}}
+#define CGUID_FSW_802_11_OPTIONS 				{0xdc7a51b7, 0x2236, 0x467d, {0xb1, 0x55, 0x03, 0x50, 0x42, 0x04, 0xcf, 0x30}}
+
+#define OID_FSW_802_11_AVAILABLE_OPTIONS        0xFF010237
+#define OID_FSW_802_11_OPTIONS                  0xFF010238
+
+
+
+/**/
+/* IEEE 802.11 OIDs*/
+/**/
+#define OID_802_11_BSSID                        0x0D010101
+#define OID_802_11_SSID                         0x0D010102
+#define OID_802_11_INFRASTRUCTURE_MODE          0x0D010108
+#define OID_802_11_ADD_WEP                      0x0D010113
+#define OID_802_11_REMOVE_WEP                   0x0D010114
+#define OID_802_11_DISASSOCIATE                 0x0D010115
+#define OID_802_11_AUTHENTICATION_MODE          0x0D010118
+#define OID_802_11_PRIVACY_FILTER               0x0D010119
+#define OID_802_11_BSSID_LIST_SCAN              0x0D01011A
+#define OID_802_11_WEP_STATUS                   0x0D01011B
+#define OID_802_11_RELOAD_DEFAULTS              0x0D01011C
+#define OID_802_11_ADD_KEY                      0x0D01011D
+#define OID_802_11_REMOVE_KEY                   0x0D01011E
+#define OID_802_11_ASSOCIATION_INFORMATION      0x0D01011F
+#define OID_802_11_NETWORK_TYPES_SUPPORTED      0x0D010203
+#define OID_802_11_NETWORK_TYPE_IN_USE          0x0D010204
+#define OID_802_11_TX_POWER_LEVEL               0x0D010205
+#define OID_802_11_RSSI                         0x0D010206
+#define OID_802_11_RSSI_TRIGGER                 0x0D010207
+#define OID_802_11_FRAGMENTATION_THRESHOLD      0x0D010209
+#define OID_802_11_RTS_THRESHOLD                0x0D01020A
+#define OID_802_11_NUMBER_OF_ANTENNAS           0x0D01020B
+#define OID_802_11_RX_ANTENNA_SELECTED          0x0D01020C
+#define OID_802_11_TX_ANTENNA_SELECTED          0x0D01020D
+#define OID_802_11_SUPPORTED_RATES              0x0D01020E
+#define OID_802_11_DESIRED_RATES                0x0D010210
+#define OID_802_11_CONFIGURATION                0x0D010211
+#define OID_802_11_STATISTICS                   0x0D020212
+#define OID_802_11_POWER_MODE                   0x0D010216
+#define OID_802_11_BSSID_LIST                   0x0D010217
+
+
+#ifndef _USER_MODE
+	#include "osdot11nousermode.h"
+#endif
+
+
+
+
+/* AnyWPA mode flags used in propritary FUNK suplicant OIDs*/
+
+#define     OS_802_11_OPTION_ENABLE_PROMOTE_MODE        0x00000001 /*bit 0*/
+#define     OS_802_11_OPTION_ENABLE_PROMOTE_CIPHER      0x00000002 /*bit 1*/
+#define		OS_802_11_OPTION_DISABLE_PROMOTE_MODE		0
+#define     OS_802_11_OPTION_ENABLE_ALL                 0x00000003 
+
+#endif
+