• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __WINBOND_SME_S_H
2 #define __WINBOND_SME_S_H
3 
4 #include <linux/types.h>
5 
6 #include "mac_structures.h"
7 #include "localpara.h"
8 
9 //
10 // SME_S.H -
11 // SME task global CONSTANTS, STRUCTURES, variables
12 //
13 
14 //////////////////////////////////////////////////////////////////////////
15 //define the msg type of SME module
16 // 0x00~0x1F : MSG from GUI dispatch
17 // 0x20~0x3F : MSG from MLME
18 // 0x40~0x5F : MSG from SCAN
19 // 0x60~0x6F : MSG from TX/RX
20 // 0x70~0x7F : MSG from ROAMING
21 // 0x80~0x8F : MSG from ISR
22 // 0x90		 : MSG TimeOut
23 
24 // from GUI
25 #define SMEMSG_SCAN_REQ					0x01
26 //#define SMEMSG_PASSIVE_SCAN_REQ			0x02
27 #define SMEMSG_JOIN_REQ					0x03
28 #define SMEMSG_START_IBSS				0x04
29 #define SMEMSG_DISCONNECT_REQ			0x05
30 #define SMEMSG_AUTHEN_REQ				0x06
31 #define SMEMSG_DEAUTHEN_REQ				0x07
32 #define SMEMSG_ASSOC_REQ				0x08
33 #define SMEMSG_REASSOC_REQ				0x09
34 #define SMEMSG_DISASSOC_REQ				0x0a
35 #define SMEMSG_POWERSAVE_REQ			0x0b
36 
37 
38 // from MLME
39 #define SMEMSG_AUTHEN_CFM				0x21
40 #define SMEMSG_AUTHEN_IND				0x22
41 #define SMEMSG_ASSOC_CFM				0x23
42 #define SMEMSG_DEAUTHEN_IND				0x24
43 #define SMEMSG_DISASSOC_IND				0x25
44 // from SCAN
45 #define SMEMSG_SCAN_CFM					0x41
46 #define SMEMSG_START_IBSS_CFM			0x42
47 // from MTO, function call to set SME parameters
48 
49 // 0x60~0x6F : MSG from TX/RX
50 //#define SMEMSG_IBSS_JOIN_UPDATE_BSSID	0x61
51 #define SMEMSG_COUNTERMEASURE_MICFAIL_TIMEOUT		0x62
52 #define SMEMSG_COUNTERMEASURE_BLOCK_TIMEOUT	0x63
53 // from ROAMING
54 #define SMEMSG_HANDOVER_JOIN_REQ		0x71
55 #define SMEMSG_END_ROAMING				0x72
56 #define SMEMSG_SCAN_JOIN_REQ			0x73
57 // from ISR
58 #define SMEMSG_TSF_SYNC_IND				0x81
59 // from TimeOut
60 #define SMEMSG_TIMEOUT					0x91
61 
62 
63 
64 #define MAX_PMKID_Accunt                16
65 //@added by ws 04/22/05
66 #define Cipher_Disabled                 0
67 #define Cipher_Wep                      1
68 #define Cipher_Tkip                     2
69 #define Cipher_Ccmp                     4
70 
71 
72 ///////////////////////////////////////////////////////////////////////////
73 //Constants
74 
75 ///////////////////////////////////////////////////////////////////////////
76 //Global data structures
77 
78 #define NUMOFWEPENTRIES     64
79 
80 typedef enum _WEPKeyMode
81 {
82     WEPKEY_DISABLED = 0,
83     WEPKEY_64       = 1,
84     WEPKEY_128      = 2
85 
86 } WEPKEYMODE, *pWEPKEYMODE;
87 
88 #ifdef _WPA2_
89 
90 typedef struct _BSSInfo
91 {
92   u8        PreAuthBssID[6];
93   PMKID        pmkid_value;
94 }BSSID_Info;
95 
96 typedef struct _PMKID_Table //added by ws 05/05/04
97 {
98    u32  Length;
99    u32  BSSIDInfoCount;
100    BSSID_Info BSSIDInfo[16];
101 
102 } PMKID_Table;
103 
104 #endif //end def _WPA2_
105 
106 #define MAX_BASIC_RATE_SET          15
107 #define MAX_OPT_RATE_SET            MAX_BASIC_RATE_SET
108 
109 
110 typedef struct _SME_PARAMETERS
111 {
112     u16				wState;
113 	u8				boDUTmode;
114 	u8				bDesiredPowerSave;
115 
116 	// SME timer and timeout value
117 	struct timer_list timer;
118 
119 	u8				boInTimerHandler;
120 	u8 				boAuthRetryActive;
121 	u8				reserved_0[2];
122 
123 	u32				AuthenRetryTimerVal;	// NOTE: Assoc don't fail timeout
124 	u32				JoinFailTimerVal;		// 10*Beacon-Interval
125 
126 	//Rates
127 	u8				BSSBasicRateSet[(MAX_BASIC_RATE_SET + 3) & ~0x03 ];    // BSS basic rate set
128 	u8				OperationalRateSet[(MAX_OPT_RATE_SET + 3) & ~0x03 ]; // Operational rate set
129 
130 	u8				NumOfBSSBasicRate;
131 	u8				NumOfOperationalRate;
132 	u8				reserved_1[2];
133 
134 	u32				BasicRateBitmap;
135 	u32				OpRateBitmap;
136 
137 	// System parameters Set by GUI
138 	//-------------------- start IBSS parameter ---------------------------//
139 	u32				boStartIBSS;			//Start IBSS toggle
140 
141 	u16				wBeaconPeriod;
142 	u16				wATIM_Window;
143 
144 	ChanInfo			IbssChan; // 2B	//channel setting when start IBSS
145 	u8				reserved_2[2];
146 
147     // Join related
148 	u16				wDesiredJoinBSS;		// BSS index which desire to join
149 	u8				boJoinReq;				//Join request toggle
150 	u8				bDesiredBSSType;		//for Join request
151 
152     u16				wCapabilityInfo;        // Used when invoking the MLME_Associate_request().
153 	u16				wNonERPcapabilityInfo;
154 
155     struct SSID_Element sDesiredSSID; // 34 B
156 	u8				reserved_3[2];
157 
158 	u8    			abDesiredBSSID[MAC_ADDR_LENGTH + 2];
159 
160 	u8				bJoinScanCount;			// the time of scan-join action need to do
161 	u8				bDesiredAuthMode;       // AUTH_OPEN_SYSTEM or AUTH_SHARED_KEY
162 	u8				reserved_4[2];
163 
164     // Encryption parameters
165 	u8     			_dot11PrivacyInvoked;
166     u8             	_dot11PrivacyOptionImplemented;
167 	u8				reserved_5[2];
168 
169     //@ ws added
170     u8				DesiredEncrypt;
171 	u8				encrypt_status;	//ENCRYPT_DISABLE, ENCRYPT_WEP, ENCRYPT_WEP_NOKEY, ENCRYPT_TKIP, ...
172 	u8				key_length;
173 	u8				pairwise_key_ok;
174 
175 	u8				group_key_ok;
176     u8				wpa_ok;             // indicate the control port of 802.1x is open or close
177 	u8				pairwise_key_type;
178 	u8				group_key_type;
179 
180     u32               _dot11WEPDefaultKeyID;
181 
182 	u8              	tx_mic_key[8];      // TODO: 0627 kevin-TKIP
183 	u8              	rx_mic_key[8];      // TODO: 0627 kevin-TKIP
184 	u8				group_tx_mic_key[8];
185 	u8				group_rx_mic_key[8];
186 
187 //	#ifdef _WPA_
188 	u8				AssocReqVarIE[200];
189 	u8				AssocRespVarIE[200];
190 
191 	u16				AssocReqVarLen;
192 	u16				AssocRespVarLen;
193 	u8				boReassoc;				//use assoc. or reassoc.
194 	u8				reserved_6[3];
195 	u16				AssocRespCapability;
196 	u16				AssocRespStatus;
197 //	#endif
198 
199 	#ifdef _WPA2_
200     u8               PmkIdTable[256];
201     u32               PmkidTableIndex;
202 	#endif //end def _WPA2_
203 
204 } SME_PARAMETERS, *PSME_PARAMETERS;
205 
206 #define psSME			(&(adapter->sSmePara))
207 
208 #define wSMEGetCurrentSTAState(adapter)		((u16)(adapter)->sSmePara.wState)
209 
210 
211 
212 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
213 //	SmeModule.h
214 //		Define the related definitions of SME module
215 //	history -- 01/14/03' created
216 //
217 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
218 
219 //Define the state of SME module
220 #define DISABLED						0
221 #define INIT_SCAN						1
222 #define SCAN_READY						2
223 #define START_IBSS						3
224 #define JOIN_PENDING					4
225 #define JOIN_CFM						5
226 #define AUTHENTICATE_PENDING			6
227 #define AUTHENTICATED					7
228 #define CONNECTED						8
229 //#define EAP_STARTING					9
230 //#define EAPOL_AUTHEN_PENDING			10
231 //#define SECURE_CONNECTED				11
232 
233 
234 // Static function
235 
236 #endif
237