• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __WINBOND_LOCALPARA_H
2 #define __WINBOND_LOCALPARA_H
3 
4 //=============================================================
5 // LocalPara.h -
6 //=============================================================
7 
8 #include "mac_structures.h"
9 
10 //Define the local ability
11 
12 #define LOCAL_DEFAULT_BEACON_PERIOD			100		//ms
13 #define LOCAL_DEFAULT_ATIM_WINDOW			0
14 #define LOCAL_DEFAULT_ERP_CAPABILITY		0x0431	//0x0001:	ESS
15 													//0x0010:	Privacy
16 													//0x0020:	short preamble
17 													//0x0400:	short slot time
18 #define LOCAL_DEFAULT_LISTEN_INTERVAL		5
19 
20 //#define LOCAL_DEFAULT_24_CHANNEL_NUM		11		// channel 1..11
21 #define LOCAL_DEFAULT_24_CHANNEL_NUM		13		// channel 1..13
22 #define LOCAL_DEFAULT_5_CHANNEL_NUM			8		// channel 36..64
23 
24 #define LOCAL_USA_24_CHANNEL_NUM			11
25 #define LOCAL_USA_5_CHANNEL_NUM				12
26 #define LOCAL_EUROPE_24_CHANNEL_NUM			13
27 #define LOCAL_EUROPE_5_CHANNEL_NUM			19
28 #define LOCAL_JAPAN_24_CHANNEL_NUM			14
29 #define LOCAL_JAPAN_5_CHANNEL_NUM			11
30 #define LOCAL_UNKNOWN_24_CHANNEL_NUM		14
31 #define LOCAL_UNKNOWN_5_CHANNEL_NUM			34	//not include 165
32 
33 
34 #define psLOCAL			(&(adapter->sLocalPara))
35 
36 #define MODE_802_11_BG			0
37 #define MODE_802_11_A			1
38 #define MODE_802_11_ABG			2
39 #define MODE_802_11_BG_IBSS		3
40 #define MODE_802_11_B			4
41 #define MODE_AUTO				255
42 
43 #define BAND_TYPE_DSSS			0
44 #define BAND_TYPE_OFDM_24		1
45 #define BAND_TYPE_OFDM_5		2
46 
47 //refer Bitmap2RateValue table
48 #define LOCAL_ALL_SUPPORTED_RATES_BITMAP		0x130c1a66	//the bitmap value of all the H/W supported rates
49 															//1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48, 54
50 #define LOCAL_OFDM_SUPPORTED_RATES_BITMAP		0x130c1240	//the bitmap value of all the H/W supported rates
51 															//except to non-OFDM rates
52 															//6, 9, 12, 18, 24, 36, 48, 54
53 
54 #define LOCAL_11B_SUPPORTED_RATE_BITMAP			0x826
55 #define LOCAL_11B_BASIC_RATE_BITMAP				0x826
56 #define LOCAL_11B_OPERATION_RATE_BITMAP			0x826
57 #define LOCAL_11G_BASIC_RATE_BITMAP				0x826		//1, 2, 5.5, 11
58 #define LOCAL_11G_OPERATION_RATE_BITMAP			0x130c1240	//6, 9, 12, 18, 24, 36, 48, 54
59 #define LOCAL_11A_BASIC_RATE_BITMAP				0x01001040	//6, 12, 24
60 #define LOCAL_11A_OPERATION_RATE_BITMAP			0x120c0200	//9, 18, 36, 48, 54
61 
62 
63 
64 #define PWR_ACTIVE		0
65 #define PWR_SAVE		1
66 #define PWR_TX_IDLE_CYCLE			6
67 
68 //bPreambleMode and bSlotTimeMode
69 #define AUTO_MODE			0
70 #define LONG_MODE			1
71 
72 //Region definition
73 #define REGION_AUTO			0xff
74 #define REGION_UNKNOWN		0
75 #define REGION_EUROPE		1	//ETSI
76 #define REGION_JAPAN		2	//MKK
77 #define REGION_USA			3	//FCC
78 #define	REGION_FRANCE		4	//FRANCE
79 #define REGION_SPAIN		5	//SPAIN
80 #define REGION_ISRAEL		6	//ISRAEL
81 //#define REGION_CANADA		7	//IC
82 
83 #define MAX_BSS_DESCRIPT_ELEMENT		32
84 #define MAX_PMKID_CandidateList         16
85 
86 //High byte : Event number,  low byte : reason
87 //Event definition
88 //-- SME/MLME event
89 #define EVENT_RCV_DEAUTH					0x0100
90 #define EVENT_JOIN_FAIL						0x0200
91 #define EVENT_AUTH_FAIL						0x0300
92 #define EVENT_ASSOC_FAIL					0x0400
93 #define EVENT_LOST_SIGNAL					0x0500
94 #define EVENT_BSS_DESCRIPT_LACK				0x0600
95 #define EVENT_COUNTERMEASURE				0x0700
96 #define EVENT_JOIN_FILTER					0x0800
97 //-- TX/RX event
98 #define EVENT_RX_BUFF_UNAVAILABLE			0x4100
99 
100 #define EVENT_CONNECT						0x8100
101 #define EVENT_DISCONNECT					0x8200
102 #define EVENT_SCAN_REQ						0x8300
103 
104 //Reason of Event
105 #define EVENT_REASON_FILTER_BASIC_RATE		0x0001
106 #define EVENT_REASON_FILTER_PRIVACY			0x0002
107 #define EVENT_REASON_FILTER_AUTH_MODE		0x0003
108 #define EVENT_REASON_TIMEOUT				0x00ff
109 
110 // 20061108 WPS IE buffer
111 #define MAX_IE_APPEND_SIZE					256 + 4 // Due to [E id][Length][OUI][Data] may 257 bytes
112 
113 typedef struct _EVENTLOG
114 {
115 	u16		Count;			//Total count from start
116 	u16		index;			//Buffer index, 0 ~ 63
117 	u32		EventValue[64];	//BYTE 3~2 : count, BYTE 1 : Event, BYTE 0 : reason
118 } Event_Log, *pEvent_Log;
119 
120 typedef struct _ChanInfo
121 {
122 	u8		band;
123 	u8		ChanNo;
124 } ChanInfo, *pChanInfo;
125 
126 typedef struct _CHAN_LIST
127 {
128 	u16				Count;
129 	ChanInfo		Channel[50]; // 100B
130 } CHAN_LIST, *psCHAN_LIST;
131 
132 typedef struct _RadioOff
133 {
134 	u8			boHwRadioOff;
135 	u8			boSwRadioOff;
136 } RadioOff, *psRadioOff;
137 
138 //===========================================================================
139 typedef struct LOCAL_PARA
140 {
141 	u8			PermanentAddress[ MAC_ADDR_LENGTH + 2 ]; 	// read from EPROM, manufacture set for each NetCard
142     u8    		ThisMacAddress[ MAC_ADDR_LENGTH + 2 ];			// the driver will use actually.
143 
144 	u32			MTUsize;				// Ind to Uplayer, Max transmission unit size
145 
146 	u8			region_INF;	//region setting from INF
147 	u8			region;		//real region setting of the device
148 	u8			Reserved_1[2];
149 
150     //// power-save variables
151     u8  		  	iPowerSaveMode;     // 0 indicates it is on, 1 indicates it is off
152 	u8			ATIMmode;
153 	u8			ExcludeUnencrypted;
154 
155 	u16			CheckCountForPS;	//Unit ime count for the decision to enter PS mode
156 	u8			boHasTxActivity;	//tx activity has occurred
157 	u8			boMacPsValid;		//Power save mode obtained from H/W is valid or not
158 
159 	//// Rate
160 	u8			TxRateMode;				// Initial, input from Registry, may be updated by GUI
161 											//Tx Rate Mode: auto(DTO on), max, 1M, 2M, ..
162 	u8			CurrentTxRate;			// The current Tx rate
163 	u8			CurrentTxRateForMng;	// The current Tx rate for management frames
164 										// It will be decided before connection succeeds.
165 	u8			CurrentTxFallbackRate;
166 
167 	//for Rate handler
168 	u8			BRateSet[32];			//basic rate set
169 	u8			SRateSet[32];			//support rate set
170 
171 	u8			NumOfBRate;
172 	u8			NumOfSRate;
173 	u8			NumOfDsssRateInSRate;	//number of DSSS rates in supported rate set
174 	u8			reserved1;
175 
176 	u32			dwBasicRateBitmap;		//bit map of basic rates
177 	u32			dwSupportRateBitmap;	//bit map of all support rates including
178 										//basic and operational rates
179 
180 	////For SME/MLME handler
181 	u16			wOldSTAindex;			// valid when boHandover=TRUE, store old connected STA index
182 	u16			wConnectedSTAindex;		// Index of peerly connected AP or IBSS in
183 										// the descriptionset.
184     u16			Association_ID;     	// The Association ID in the (Re)Association
185             	                    	// Response frame.
186     u16			ListenInterval;     	// The listen interval when SME invoking MLME_
187             	                    	// (Re)Associate_Request().
188 
189 	RadioOff		RadioOffStatus;
190 	u8			Reserved0[2];
191 
192 	u8			boMsRadioOff;			// Ndis demands to be true when set Disassoc. OID and be false when set SSID OID.
193 	u8			boAntennaDiversity;		//TRUE/ON or FALSE/OFF
194 	u8			bAntennaNo;				//which antenna
195 	u8			bConnectFlag;			//the connect status flag for roaming task
196 
197 	u8			RoamStatus;
198 	u8			reserved7[3];
199 
200 	ChanInfo	CurrentChan;			//Current channel no. and channel band. It may be changed by scanning.
201 	u8			boHandover;				// Roaming, Hnadover to other AP.
202 	u8			boCCAbusy;
203 
204 	u16			CWMax;					// It may not be the real value that H/W used
205 	u8			CWMin;					// 255: set according to 802.11 spec.
206 	u8			reserved2;
207 
208 	//11G:
209 	u8			bMacOperationMode;		// operation in 802.11b or 802.11g
210 	u8			bSlotTimeMode;			//AUTO, s32
211 	u8			bPreambleMode;			//AUTO, s32
212 	u8			boNonERPpresent;
213 
214 	u8			boProtectMechanism;	// H/W will take the necessary action based on this variable
215 	u8			boShortPreamble;	// H/W will take the necessary action based on this variable
216 	u8			boShortSlotTime;	// H/W will take the necessary action based on this variable
217 	u8			reserved_3;
218 
219 	u32       	RSN_IE_Bitmap;		//added by WS
220 	u32      		RSN_OUI_Type;		//added by WS
221 
222 	//For the BSSID
223 	u8			HwBssid[MAC_ADDR_LENGTH + 2];
224 	u32			HwBssidValid;
225 
226 	//For scan list
227 	u8			BssListCount;							//Total count of valid descriptor indexes
228 	u8			boReceiveUncorrectInfo;	//important settings in beacon/probe resp. have been changed
229 	u8			NoOfJoinerInIbss;
230 	u8			reserved_4;
231 
232 	u8			BssListIndex[ (MAX_BSS_DESCRIPT_ELEMENT+3) & ~0x03 ];	//Store the valid descriptor indexes obtained from scannings
233 	u8			JoinerInIbss[ (MAX_BSS_DESCRIPT_ELEMENT+3) & ~0x03 ];	//save the BssDescriptor index in this
234 														//IBSS. The index 0 is local descriptor
235 														//(psLOCAL->wConnectedSTAindex).
236 														//If CONNECTED : NoOfJoinerInIbss >=2
237 														//		else   : NoOfJoinerInIbss <=1
238 
239 	//// General Statistics, count at Rx_handler or Tx_callback interrupt handler
240     u64 	GS_XMIT_OK;				// Good Frames Transmitted
241     u64 	GS_RCV_OK;				// Good Frames Received
242 	u32		GS_RCV_ERROR;			// Frames received with crc error
243 	u32		GS_XMIT_ERROR;			// Bad Frames Transmitted
244 	u32		GS_RCV_NO_BUFFER;		// Receive Buffer underrun
245 	u32		GS_XMIT_ONE_COLLISION;	// one collision
246 	u32		GS_XMIT_MORE_COLLISIONS;// more collisions
247 
248     //================================================================
249     // Statistics (no matter whether it had done successfully) -wkchen
250     //================================================================
251     u32		   	_NumRxMSDU;
252     u32	   		_NumTxMSDU;
253     u32	   		_dot11WEPExcludedCount;
254     u32	   		_dot11WEPUndecryptableCount;
255     u32	   		_dot11FrameDuplicateCount;
256 
257 	ChanInfo	IbssChanSetting;	// 2B. Start IBSS Channel setting by registry or WWU.
258 	u8		reserved_5[2];		//It may not be used after considering RF type,
259 									//region and modulation type.
260 
261 	CHAN_LIST	sSupportChanList;	// 86B. It will be obtained according to RF type and region
262 	u8		reserved_6[2];		//two variables are for wep key error detection added by ws 02/02/04
263 
264     u32	      bWepKeyError;
265     u32         bToSelfPacketReceived;
266     u32         WepKeyDetectTimerCount;
267 
268 	Event_Log	EventLog;
269 
270 	u16		SignalLostTh;
271 	u16		SignalRoamTh;
272 
273 	// 20061108 WPS IE Append
274 	u8		IE_Append_data[MAX_IE_APPEND_SIZE];
275 	u16		IE_Append_size;
276 	u16		reserved_7;
277 
278 } WB_LOCALDESCRIPT, *PWB_LOCALDESCRIPT;
279 
280 #endif
281