• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2 **+-----------------------------------------------------------------------+**
3 **|                                                                       |**
4 **| Copyright(c) 1998 - 2008 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 #ifndef __TIWLNIF_H__
37 #define __TIWLNIF_H__
38 
39 #include "osDot11.h"
40 #ifndef TIWLNAPI_EXPORTS
41 #include "osTIType.h"
42 #endif
43 
44 #define REGDOMAIN_TABLE_SIZE 16
45 
46 #define MAX_NUM_OF_TX_QUEUES  4
47 
48 
49 typedef enum _tiwlnOSVersion
50 {
51     tiwlnIsWin95   = 1,
52     tiwlnIsWin98   = 2,
53     tiwlnIsWinNT   = 3,
54     tiwlnIsWin98SE = 4,
55     tiwlnIsWinME   = 5,
56     tiwlnIsWin2K   = 6,
57     tiwlnIsWinXP   = 7
58 } TIWLN_OS_VERSION;
59 
60 typedef enum _TIWLN_PRIVACY_MODE
61 {
62     TIWLN_PRIVACY_NONE = 0,
63     TIWLN_PRIVACY_WEP,
64     TIWLN_PRIVACY_ZCU,
65     TIWLN_PRIVACY_EXC
66 }TIWLN_PRIVACY_MODE;
67 
68 PACKED_STRUCT( _dbgBufferHdr ,
69 
70     tiCHAR*        pBuff;
71     tiUINT32*       puIndex;
72     tiUINT32        uSize;
73 );
74 typedef _dbgBufferHdr DBG_BUFFER_HDR;
75 
76 PACKED_STRUCT( _TIWLN_REG_RW ,
77 
78     tiUINT32 regSize;
79     tiUINT32 regAddr;
80     tiUINT32 regValue;
81 );
82 typedef _TIWLN_REG_RW TIWLN_REG_RW;
83 
84 PACKED_STRUCT( _ACX_VERSION_DEF ,
85 
86     tiUINT8 major;
87     tiUINT8 minor;
88     tiUINT8 bugfix;
89     tiUINT8 subld;
90     tiUINT8 build;
91 );
92 typedef _ACX_VERSION_DEF acxVersionDef, *pacxVersionDef;
93 
94 PACKED_STRUCT( _TIWLN_VERSION ,
95 
96     acxVersionDef AppVersion;
97     acxVersionDef DrvVersion;
98     acxVersionDef FWVersion;
99     acxVersionDef HWVersion;
100     tiUINT32      osNdisVersion;   /* for OS Windows - Ndis, for Linux - WirelessExt ver.*/
101 );
102 typedef _TIWLN_VERSION TIWLN_VERSION, *PTIWLN_VERSION;
103 
104 PACKED_STRUCT( _TIWLN_VERSION_EX ,
105 
106     acxVersionDef AppVersion;
107     acxVersionDef DrvVersion;
108     acxVersionDef FWVersion;
109     acxVersionDef HWVersion;
110     tiUINT32      osNdisVersion;       /* for OS Windows - Ndis, for Linux - WirelessExt ver.*/
111     tiUINT32      extVerSign;            /* Extended version signature*/
112     acxVersionDef NVVersion;
113 );
114 typedef _TIWLN_VERSION_EX TIWLN_VERSION_EX, *PTIWLN_VERSION_EX;
115 
116 typedef enum _TIWLN_RATES
117 {
118     TIWLN_RATE_1          = 0x0A,
119     TIWLN_RATE_2          = 0x14,
120     TIWLN_RATE_5_5        = 0x37,
121     TIWLN_RATE_5_5_PBCC   = 0xB7,
122     TIWLN_RATE_11         = 0x6E,
123     TIWLN_RATE_11_PBCC    = 0xEE,
124     TIWLN_RATE_22_PBCC    = 0xDC
125 } TIWLN_RATES;
126 
127 typedef enum _TIWLN_DOT11_STATUS
128 {
129     eDot11Idle           = 0,
130     eDot11Scaning        = 1,
131     eDot11Connecting     = 2,
132     eDot11Associated     = 3,
133     eDot11Disassociated  = 4,
134     eDot11RadioDisabled  = 5,
135     eDot11Error          = 1000,
136 } TIWLN_DOT11_STATUS;
137 
138 typedef enum _TIWLN_SECURITY_STATE  /* Values are compatible with 802.1x'S IMSTATE*/
139 {
140     eSecurityStateHalted = 0,           /* Security state machine halted*/
141     eSecurityStateStarting,         /* state machine is starting*/
142     eSecurityStateInitializing,     /* state machine is initializing*/
143     eSecurityStateDisabled,         /* state machine is disabled*/
144     eSecurityStateNotAuthenticated, /* Not authenticated state*/
145     eSecurityStateAuthenticating,       /* Authentication request is sent*/
146     eSecurityStateAuthenticated     /* Authenticated state*/
147 } TIWLN_SECURITY_STATE;
148 
149 PACKED_STRUCT( _OS_802_11_DRIVER_CAPABILITIES ,
150 
151     tiUINT8 EXCVersion;
152 );
153 typedef _OS_802_11_DRIVER_CAPABILITIES OS_802_11_DRIVER_CAPABILITIES;
154 
155 
156 /* SME SM definitions - Need to update this whenever the SME SM states change */
157 /* Table is used for "translating" SME SM states into more "simple" states reported by the TI_GetDriverState API call */
158 typedef enum
159 {
160     SM_STATE_IDLE                           = 0,
161     SM_STATE_SCANNING                       = 1,
162     SM_STATE_SELECTING                      = 2,
163     SM_STATE_CONNECTING                     = 3,
164     SM_STATE_CONNECTED                      = 4,
165     SM_STATE_QUIET_SCAN                     = 5,
166     SM_STATE_INTER_SCAN_TIMEOUT             = 6,
167     SM_STATE_ROAMING_QUIET_SCAN             = 7,
168     SM_STATE_RADIO_STAND_BY                 = 8,
169     SM_STATE_MEASUREMENT                    = 9,
170     SM_STATE_POWER_MNGR_PENDS_QUIET_SCAN    = 10
171 } stateDrvSme_e;
172 
173 typedef enum
174 {
175     DRIVER_STATE_IDLE                    = 0,
176     DRIVER_STATE_SCANNING                = 1,
177     DRIVER_STATE_SELECTING               = 2,
178     DRIVER_STATE_CONNECTING              = 3,
179     DRIVER_STATE_CONNECTED               = 4,
180     DRIVER_STATE_DISCONNECTED            = 5,
181 } driverState_e;
182 
183 PACKED_STRUCT( _TIWLAN_CONFIG_SCAN_PARAMS ,
184 
185     UINT32    uMaxChanScanTime;
186     UINT32    uMinChanScanTime;
187     UINT32    uEarlyTerminationMode;
188     UINT32    uETMaxNumOfAPframes;
189     UINT32    uScanInterval;
190     UINT32    uNumOfProbeReq;
191 );
192 typedef _TIWLAN_CONFIG_SCAN_PARAMS TIWLAN_CONFIG_SCAN_PARAMS;
193 
194 
195 /* The Tx path delay histogram ranges in msec. */
196 typedef enum
197 {
198     TX_DELAY_RANGE_MIN        = 0,
199 
200     TX_DELAY_RANGE_0_TO_1     = 0,
201     TX_DELAY_RANGE_1_TO_10    = 1,
202     TX_DELAY_RANGE_10_TO_20   = 2,
203     TX_DELAY_RANGE_20_TO_40   = 3,
204     TX_DELAY_RANGE_40_TO_60   = 4,
205     TX_DELAY_RANGE_60_TO_80   = 5,
206     TX_DELAY_RANGE_80_TO_100  = 6,
207     TX_DELAY_RANGE_100_TO_200 = 7,
208     TX_DELAY_RANGE_ABOVE_200  = 8,
209 
210     TX_DELAY_RANGE_MAX        = 8,
211     TX_DELAY_RANGES_NUM       = 9,
212 } TxDelayRanges_e;
213 
214 #define TX_RETRY_HISTOGRAM_SIZE 16
215 
216 PACKED_STRUCT( txDataCounters_t ,
217 
218     UINT32      XmitOk;                 /* the number of frames that were transferred to TNET without errors */
219     UINT32      DirectedBytesXmit;      /* the number of bytes in directed packets that are transmitted without errors */
220     UINT32      DirectedFramesXmit;     /* the number of directed packets that are transmitted without errors */
221     UINT32      MulticastBytesXmit;     /* the number of bytes in multicast/functional packets that are transmitted without errors.*/
222     UINT32      MulticastFramesXmit;    /* the number of multicast/functional packets that are transmitted without errors.*/
223     UINT32      BroadcastBytesXmit;     /* the number of bytes in broadcast packets that are transmitted without */
224     UINT32      BroadcastFramesXmit;    /* the number of broadcast packets that are transmitted without errors */
225 
226     UINT32      RetryHistogram[ TX_RETRY_HISTOGRAM_SIZE ];
227                                         /* Histogram counting the number of packets xfered with any retry number */
228     UINT32      RetryFailCounter;       /* Number of packets that failed transmission due to retry number exceeded */
229     UINT32      TxTimeoutCounter;       /* Number of packets that failed transmission due to lifetime expiry */
230     UINT32      NoLinkCounter;          /* Number of packets that failed transmission due to link failure */
231     UINT32      OtherFailCounter;       /* Number of packets that failed transmission due to other reasons */
232     UINT32      MaxConsecutiveRetryFail;/* Maximum consecutive packets that failed transmission due to retry limit exceeded */
233 
234     /*  TX path delay statistics  */
235     UINT32      txDelayHistogram[TX_DELAY_RANGES_NUM];/* Histogram of Tx path delay (host + MAC). */
236     UINT32      NumPackets;             /* For average calculation - Total packets counted. */
237     UINT32      SumTotalDelayMs;        /* For average calculation - the sum of packets total delay. */
238     UINT32      SumFWDelayUs;           /* For average calculation - The sum of packets FW delay. */
239     UINT32      SumMacDelayUs;          /* For average calculation - the sum of packets MAC delay. */
240 );
241 
242 typedef struct
243 {
244     txDataCounters_t  txCounters[ MAX_NUM_OF_TX_QUEUES ];
245 } TIWLN_TX_STATISTICS;
246 
247 PACKED_STRUCT( TIWLN_COUNTERS ,
248 
249     UINT32  RecvOk;              /* num of frames that the NIC receives without errors*/
250     UINT32  RecvError;           /* num of frames that a NIC receives but does not indicate to the protocols due to errors*/
251     UINT32  RecvNoBuffer;        /* num of frames that the NIC cannot receive due to lack of NIC receive buffer space     */
252     UINT32  DirectedBytesRecv;   /* num of bytes in directed packets that are received without errors                     */
253     UINT32  DirectedFramesRecv;  /* num of directed packets that are received without errors                              */
254     UINT32  MulticastBytesRecv;  /* num of bytes in multicast/functional packets that are received without errors         */
255     UINT32  MulticastFramesRecv; /* num of multicast/functional packets that are received without errors                  */
256     UINT32  BroadcastBytesRecv;  /* num of bytes in broadcast packets that are received without errors.                   */
257     UINT32  BroadcastFramesRecv; /* num of broadcast packets that are received without errors.                            */
258 
259     UINT32  FragmentsRecv;
260     UINT32  FrameDuplicates;
261     UINT32  FcsErrors;
262 
263     UINT32  BeaconsXmit;
264     UINT32  BeaconsRecv;
265     UINT32  AssocRejects;
266     UINT32  AssocTimeouts;
267     UINT32  AuthRejects;
268     UINT32  AuthTimeouts;
269 );
270 
271 PACKED_STRUCT( _TIWLN_STATISTICS ,
272 
273     /**/
274     /* config info*/
275     /**/
276     tiUINT32                        dot11CurrentTxRate;
277     tiUINT32                        dot11CurrentChannel;
278     OS_802_11_MAC_ADDRESS           currentMACAddress;
279     OS_802_11_SSID                  dot11DesiredSSID;
280     OS_802_11_NETWORK_MODE          dot11BSSType;
281     OS_802_11_AUTHENTICATION_MODE   AuthenticationMode;
282     tiBOOL                          bShortPreambleUsed;
283     tiUINT32                        RTSThreshold;
284     tiUINT32                        FragmentationThreshold;
285     tiBOOL                          bDefaultWEPKeyDefined;
286     OS_802_11_WEP_STATUS            WEPStatus;
287     tiUINT32                        TxAntenna;
288     tiUINT32                        RxAntenna;
289     tiUINT32                        TxPowerDbm;
290     tiUINT32                        PowerMode;
291     tiINT32                         RxLevel;
292 
293     /**/
294     /* status & AP info*/
295     /**/
296     TIWLN_DOT11_STATUS  dot11State;
297     OS_802_11_BSSID     targetAP;
298 
299     /**/
300     /* network layer statistics (except Tx statistics which are handled sparately)*/
301     /**/
302     TIWLN_COUNTERS tiCounters;
303 
304     /**/
305     /* other statistics*/
306     /**/
307     tiUINT32  dwSecuritySuit;           /* Security suit bitmask (see defines)*/
308     tiUINT32  dwSecurityState;          /* 802.1x security protocol state*/
309     tiUINT32  dwSecurityAuthStatus;     /* Security suit authentication status*/
310     tiUINT32  dwFeatureSuit;            /* Additional features suit bitmask (see defines)*/
311 
312 );
313 typedef _TIWLN_STATISTICS TIWLN_STATISTICS;
314 
315 /* Statistics security suit bitmasks*/
316 #define TIWLN_STAT_SECURITY_RESERVE_1   0x0001
317 #define TIWLN_STAT_SECURITY_SSN  0x0002
318 
319 /* Features suit bitmasks*/
320 #define TIWLN_FEATURE_4XENABLED  0x0001
321 #define TIWLN_FEATURE_4XACTIVE   0x0002
322 
323 PACKED_STRUCT( _TIWLN_REGDOMAINS ,
324 
325     tiUINT8 Length;
326     tiUINT8 Table[REGDOMAIN_TABLE_SIZE];
327 );
328 typedef _TIWLN_REGDOMAINS TIWLN_REGDOMAINS;
329 
330 PACKED_STRUCT( _TIWLN_MEDIUM_USAGE ,
331 
332     tiUINT32            MediumUsage;
333     tiUINT32            Period;
334 );
335 typedef _TIWLN_MEDIUM_USAGE TIWLN_MEDIUM_USAGE;
336 
337 typedef struct _RADIO_RX_QUALITY
338 {
339     tiINT32             Snr;
340     tiINT32             Rssi;
341 }TIWLN_RADIO_RX_QUALITY;
342 
343 #define MAX_NUM_DATA_FILTERS                4
344 
345 PACKED_STRUCT( _TIWLAN_DATA_FILTER_STATISTICS ,
346 
347     tiUINT32            UnmatchedPacketsCount;
348     tiUINT32            MatchedPacketsCount[MAX_NUM_DATA_FILTERS];
349 );
350 typedef _TIWLAN_DATA_FILTER_STATISTICS TIWLAN_DATA_FILTER_STATISTICS;
351 
352 #define MAX_DATA_FILTER_MASK_LENGTH         8
353 #define MAX_DATA_FILTER_PATTERN_LENGTH      64
354 
355 PACKED_STRUCT ( _TIWLAN_DATA_FILTER_REQUEST ,
356 
357     tiUINT8             Offset;
358     tiUINT8             MaskLength;
359     tiUINT8             Mask[MAX_DATA_FILTER_MASK_LENGTH];
360     tiUINT8             PatternLength;
361     tiUINT8             Pattern[MAX_DATA_FILTER_PATTERN_LENGTH];
362 );
363 typedef _TIWLAN_DATA_FILTER_REQUEST TIWLAN_DATA_FILTER_REQUEST;
364 
365 
366 #define MAX_NUM_PROFILES 4
367 
368 PACKED_STRUCT( _TIWLN_PROFILE ,
369 
370     tiBOOL                          bPresent;
371     OS_802_11_SSID                  dot11DesiredSSID;
372     OS_802_11_NETWORK_MODE          dot11BSSType;
373     OS_802_11_AUTHENTICATION_MODE   AuthenticationMode;
374     OS_802_11_WEP                   WepDefaultKey[4];
375     tiUINT32                        WepDefaultKeyID;
376     tiBOOL                          bWepDefaultKeySet;
377     OS_802_11_WEP_STATUS            WEPStatus;
378 
379     /**/
380     /* Which one should be included???*/
381     /**/
382     tiUINT32                        dot11TxRate;
383     tiUINT32                        dot11Channel;
384     tiBOOL                          bShortPreambleUsed;
385     tiBOOL                          bHighSpeed;
386     tiUINT32                        RTSThreshold;
387     tiUINT32                        FragmentationThreshold;
388 
389     tiUINT32                        TxAntenna;
390     tiUINT32                        RxAntenna;
391     tiUINT32                        TxPowerDbm;
392     tiUINT32                        PowerMode;
393 );
394 typedef _TIWLN_PROFILE TIWLN_PROFILE, *PTIWLN_PROFILE;
395 
396 
397 /* SHA1 hash (of certificate)*/
398 typedef struct _TI_SHA1_HASH
399 {
400     tiUINT8 aHash[20];
401 } TI_SHA1_HASH;
402 
403 PACKED_STRUCT( _TIWLAN_ANT_DIVERSITY ,
404 
405     tiUINT8   enableRxDiversity;
406     tiUINT8   rxSelectedAntenna;
407     tiUINT8   enableTxDiversity;
408     tiUINT8   txSelectedAntenna;
409     tiUINT8   rxTxSharedAnts;
410 );
411 typedef _TIWLAN_ANT_DIVERSITY TIWLAN_ANT_DIVERSITY, *PTIWLAN_ANT_DIVERSITY;
412 
413 #define TI_NUM_OF_SUB_BANDS 5
414 #define TI_NUM_OF_POWER_LEVEL 4
415 
416 typedef struct
417 {
418 	tiUINT8 uTxPower[TI_NUM_OF_SUB_BANDS][TI_NUM_OF_POWER_LEVEL]; /* Maximun Dbm in Dbm/10 units */
419 } TIWLAN_POWER_LEVEL_TABLE;
420 
421 #endif /* __TIWLNIF_H__*/
422