OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / hardware / ti / wlan / wl1271 / stad / Export_Inc / bssTypes.h
1 /*
2  * bssTypes.h
3  *
4  * Copyright(c) 1998 - 2009 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 /** \file bssTypes.h
35  *  \brief This file include public type definitions for Driver-wide BSS information
36  *  \
37  *  \date 05-April-2005
38  */
39
40 #ifndef __BSS_TYPES_API_H__
41 #define __BSS_TYPES_API_H__
42
43 #include "TWDriver.h"
44 /*
45  ***********************************************************************
46  *      Constant definitions.
47  ***********************************************************************
48  */
49 #define MAX_NUM_OF_NEIGHBOR_APS     30
50 #define MAX_SIZE_OF_BSS_TRACK_LIST  16
51
52
53 /*
54  ***********************************************************************
55  *      Enumeration definitions.
56  ***********************************************************************
57  */
58  /** \enum resultFrameType_e
59  * \brief Type of result frame
60  * 
61  * \par Description
62  * Enumerates the different types for a result frame
63  * 
64  * \sa TMib
65  */
66 typedef enum
67 {
68 /*      0       */      SCAN_RFT_BEACON,                /**< Result frame is a beacon */
69 /*      1       */      SCAN_RFT_PROBE_RESPONSE         /**< Result frame is a probe response */
70
71 } resultFrameType_e;
72
73 /*
74  ***********************************************************************
75  *      Structure definitions.
76  ***********************************************************************
77  */
78 /** \struct bssEntry_t
79  * \brief       BSS entry
80  * 
81  * \par Description
82  * This structure contains a single BSS entry. 
83  * E.g. it holds one AP of the BSS list. 
84  * 
85  * \sa  bssList_t       
86  */ 
87 typedef struct
88 {
89         /* values in beacon with fixed length */
90     TMacAddr               BSSID;                  /**< BSSID of this entry */
91     TI_UINT64              lastRxTSF;              /**< TSF of last received frame */
92     TI_UINT16              beaconInterval;         /**< Beacon interval of this AP */
93     TI_UINT16              capabilities;           /**< capabilities of this AP */
94
95         /* IE's in beacon */
96     TI_UINT8               DTIMPeriod;             /**< DTIm period (in beacon interval quantas */
97         resultFrameType_e          resultType;             /**< The type of frame in pBuffer */
98     TI_UINT16              bufferLength;           /**< length of rest of beacon (or probe response) buffer */
99     TI_UINT8*              pBuffer;                /**< rest of beacon (or probe response) buffer */
100
101         /* Information from other sources */
102     ERadioBand             band;                   /**< band on which the AP transmits */
103     TI_UINT8               channel;                /**< channel on which the AP transmits */
104     TI_UINT8               rxRate;                 /**< Rate at which last frame was received */
105     TI_UINT32              lastRxHostTimestamp;    /**< 
106                                                                                                         * the host timestamp (in milliseconds) at which last frame 
107                                                                                                         * was received
108                                                                                                         */
109     TI_INT8                RSSI;                   /**< average RSSI */
110     TI_INT8                lastRSSI;               /** last given RSSI */
111         TI_BOOL                bNeighborAP;            /**< Indicates whether this is a neighbor AP */
112 } bssEntry_t;
113
114 /** \struct bssList_t
115  * \brief BSS List
116  * 
117  * \par Description
118  * This structure holds the BSS list. E.g. it holds the AP ESS. 
119  * This list is filled by the scan manager and is used by the 
120  * Roaming Manager to select the best AP to roam to.
121  * 
122  * \sa  bssEntry_t
123  */ 
124 typedef struct
125 {
126         TI_UINT8                           numOfEntries;                               /**< Number of entries in the BSS list */
127         bssEntry_t             BSSList[ MAX_SIZE_OF_BSS_TRACK_LIST ];      /**< Pointer to the first entry in the BSS list */
128 } bssList_t;
129
130 /** \struct neighborAP_t
131  * \brief       Neighbor AP 
132  * 
133  * \par Description
134  * This structure contains information on one Neighbor AP.      \n 
135  * A Neighbor AP is set by the Roaming Manager for the Scan Manager, 
136  * and the Scan Manager discovers and tracks the AP. 
137  * Neighbor APs have higher priority in the discovery process than the 
138  * Channel List configured in the Scan Policy
139  * 
140  * \sa  neighborAPList_t
141  */ 
142 typedef struct
143 {
144         TMacAddr                    BSSID;                          /**< The BSSID (MAC address) of this Neighbor AP */
145         TI_UINT8                                channel;                        /**< Neighbor AP channel (on which the AP transmits) */
146         ERadioBand                          band;                           /**< Neighbor AP band (2.4/5 GHz) (the band used by the AP) */
147 } neighborAP_t;
148
149 /** \struct neighborAPList_t
150  * \brief       list of Neighbor APs
151  * 
152  * \par Description
153  * This structure holds a list of all neighbor APs
154  * 
155  * \sa  neighborAP_t
156  */ 
157 typedef struct
158 {
159         TI_UINT8                                numOfEntries;                           /**< Number of entries in Neighbor AP list */
160         neighborAP_t            APListPtr[ MAX_NUM_OF_NEIGHBOR_APS ];   /**< Pointer to Neighbor AP list */
161 } neighborAPList_t;
162
163
164 #endif