• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * CmdBldDb.h
3  *
4  * Copyright(c) 1998 - 2010 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 /** \file  CmdBldDb.h
36  *  \brief Command builder database
37  *
38  *  \see   CmdBld.h
39  */
40 
41 #ifndef CMDBLDDB_H
42 #define CMDBLDDB_H
43 
44 
45 #include "TWDriverInternal.h"
46 #include "public_infoele.h"
47 
48 
49 /*
50  * Dot11 params
51  * ------------
52  */
53 typedef struct
54 {
55     TI_UINT16                  RtsThreshold;
56     TI_UINT8                   CtsToSelf;
57     TRxTimeOut                 rxTimeOut;
58     TI_UINT16                  FragmentThreshold;
59     TI_UINT8                   ListenInterval;
60     TI_UINT16                  Capabilities;
61     TI_UINT32                  MaxTxMsduLifetime;
62     TI_UINT32                  MaxRxMsduLifetime;
63     TI_UINT8                   calibrationChannel2_4;
64     TI_UINT8                   calibrationChannel5_0;
65     TI_UINT16                  Aid;
66     TI_UINT8                   CurrAntenna;
67     TI_UINT8                   TxAntenna;
68     TI_UINT8                   RxAntenna;
69     TI_UINT8                   Hw_TxAntenna;
70     TI_UINT8                   Hw_RxAntenna;
71     TI_UINT16                  CwMin;
72     TI_UINT8                   RateFallback;
73     TI_UINT32                  RxConfigOption;
74     TI_UINT32                  RxFilterOption;
75     TI_BOOL                    WiFiWmmPS;
76 
77     /* Data interrupts pacing */
78     TI_UINT16                  TxCompletePacingThreshold;
79     TI_UINT16                  TxCompletePacingTimeout;
80     TI_UINT16                  RxIntrPacingThreshold;
81     TI_UINT16                  RxIntrPacingTimeout;
82 
83     /* ARP IP Addr table */
84     TI_UINT32                  arp_IP_ver;
85     EArpFilterType             arpFilterType;
86     TIpAddr                    arp_IP_addr;
87 
88     /* Mac addresses filter */
89     TI_UINT8                   isMacAddrFilteringnabled;
90     TI_UINT8                   numGroupAddrs;
91     TMacAddr                   aGroupAddr[MAX_MULTICAST_GROUP_ADDRS];
92 
93     TI_UINT32                  FeatureOptions;
94     TI_UINT32                  FeatureDataFlowOptions;
95     TI_UINT8                   SlotTime;
96     TI_UINT8                   preamble;
97     TI_UINT8                   RadioBand;
98     TI_UINT8                   MacClock;
99     TI_UINT8                   ArmClock;
100     TI_UINT8                   CurrPowerSaveState;
101     ESoftGeminiEnableModes     SoftGeminiEnable;
102     TSoftGeminiParams          SoftGeminiParams;
103     TFmCoexParams              tFmCoexParams;
104     TI_UINT8                   maxSitesFragCollect;
105     TI_UINT8                   hwAccessMethod;
106     TI_UINT32                  nullTemplateSize;
107     TI_UINT32                  disconnTemplateSize;
108     TI_UINT32                  beaconTemplateSize;
109     TI_UINT32                  probeRequestTemplateSize;
110     TI_UINT32                  probeResponseTemplateSize;
111     TI_UINT32                  PsPollTemplateSize;
112     TI_UINT32                  qosNullDataTemplateSize;
113     TI_UINT32                  ArpRspTemplateSize;
114     TI_BOOL                    ch14TelecCca;
115     TI_UINT8                   PacketDetectionThreshold;
116     TI_UINT8                   FcsErrThrsh;
117     TI_UINT8                   UseDeviceErrorInterrupt;
118     TI_BOOL                    RetryPreemption;
119     /* This flag indicate if to discards all broadcast frames */
120     TI_BOOL                    RxDisableBroadcast;
121     /* Indicate if the station is joined */
122     TI_BOOL                    bJoin;
123     /* Indicate if the station is connected */
124     TI_BOOL                    bStaConnected;
125     TI_UINT8                   AntDiversity;
126     /* Parameters for roaming triggers configuration */
127     TRroamingTriggerParams     roamTriggers;
128     /* Power control param */
129     EPowerPolicy               minPowerLevel;
130     TBcnBrcOptions             BcnBrcOptions;
131     TBeaconFilterIeTable       beaconFilterIETable;
132     TBeaconFilterInitParams    beaconFilterParams;
133 
134     /*Beacon Early Termination (Bet)*/
135     TI_UINT8                   BetEnable;
136     TI_UINT8                   MaximumConsecutiveET;
137     TI_UINT8                   ConsecutivePsPollDeliveryFailureThreshold;
138 
139     /* RSSI/SNR triggers */
140     RssiSnrTriggerCfg_t        tRssiSnrTrigger[NUM_OF_RSSI_SNR_TRIGGERS];
141     RssiSnrAverageWeights_t    tRssiSnrWeights;
142 
143     TI_UINT32                  uSlicedScanTimeOut;
144 
145     /* HT capabilities */
146     TTwdHtCapabilities         tTwdHtCapabilities;
147 
148     /* PM Config params */
149     TI_UINT32                  uHostClkSettlingTime;
150     TI_UINT8                   uHostFastWakeupSupport;
151 
152     TI_UINT8                   TxPowerDbm;
153 
154     /* CoexActivity Table */
155     THalCoexActivityTable      tWlanParamsCoexActivityTable;
156 
157     /* DCO Itrim params */
158     TI_BOOL                    dcoItrimEnabled;
159     TI_UINT32                  dcoItrimModerationTimeoutUsec;
160 
161 } TWlanParams;
162 
163 
164 /*
165  * BssInfo params
166  * --------------
167  */
168 typedef struct
169 {
170     TI_UINT8                   ReqBssType;
171     TI_UINT8                   BssType;
172     TI_UINT16                  BeaconInterval;
173     TI_UINT8                   DtimInterval;
174     TI_UINT8                   RadioChannel;
175     TI_UINT8                   BssId[MAC_ADDR_LEN];
176     TSsid                      tSsid;
177     /* Policy for recovery */
178     TTxRatePolicy              TxRateClassParams;
179     TI_UINT32                  BasicRateSet;
180     /* The ctrl field in the Join-Command (see StartJoinRequest_t) */
181     TI_UINT8                   Ctrl;
182     /* ATIM window of IBSS*/
183     /* Note that when ATIM window is zero the*/
184     /* initiated IBSS does not support powersave*/
185     TI_UINT16                  ATimWindow;
186     /* Specifies the PLCP preamble type used*/
187     /* 0 for long preamble*/
188     /* 1 for short preamble*/
189     TI_UINT8                   DefaultPreamble;
190 
191     /*
192      * HT setting
193      */
194     /* capabilities */
195     TI_BOOL   bHtCap;
196     TI_UINT32 uHtCapabilites;
197     TMacAddr  tMacAddress;
198     TI_UINT8  uAmpduMaxLeng;
199     TI_UINT8  uAmpduMinSpac;
200     /* Information */
201     TI_BOOL   bHtInf;
202     TI_UINT8  uRifsMode;
203     TI_UINT8  uHtProtection;
204     TI_UINT8  uGfProtection;
205     TI_UINT8  uHtTxBurstLimit;
206     TI_UINT8  uDualCtsProtection;
207     /* BA session */
208     TI_BOOL                               bBaInitiator[MAX_NUM_OF_802_1d_TAGS];
209     TAxcBaSessionInitiatorResponderPolicy tBaSessionInitiatorPolicy[MAX_NUM_OF_802_1d_TAGS];
210     TI_BOOL                               bBaResponder[MAX_NUM_OF_802_1d_TAGS];
211     TAxcBaSessionInitiatorResponderPolicy tBaSessionResponderPolicy[MAX_NUM_OF_802_1d_TAGS];
212 
213 } TBssInfoParams;
214 
215 
216 /*
217  * General counters
218  * ----------------
219  */
220 typedef struct
221 {
222     TI_UINT32                  FcsErrCnt;
223 
224 } TGenCounters;
225 
226 
227 /*
228  * queuesParam_T - Queue params for Quality Of Service
229  * ------------------------------------------
230  */
231 typedef struct
232 {
233     TQueueTrafficParams        queues[MAX_NUM_OF_AC];
234     TI_BOOL                    isQueueConfigured[MAX_NUM_OF_AC];
235 
236 } TQueuesParams;
237 
238 
239 typedef struct
240 {
241     TAcQosParams               ac[MAX_NUM_OF_AC];
242     TI_BOOL                    isAcConfigured[MAX_NUM_OF_AC];
243 	TI_BOOL					   isBurstModeEnabled;
244 } TAcConfParams;
245 
246 
247 typedef struct
248 {
249     TPsRxStreaming             tid[MAX_NUM_OF_802_1d_TAGS];
250 
251 } TPsRxStreamingParams;
252 
253 
254 /*
255  * Templates params
256  * ----------------
257  */
258 typedef struct
259 {
260     TTemplateParams            Beacon;
261     TTemplateParams            ProbeReq24;
262     TTemplateParams            ProbeReq50;
263     TTemplateParams            ProbeResp;
264     TTemplateParams            NullData;
265     TTemplateParams            PsPoll;
266     TTemplateParams            QosNullData;
267     TTemplateParams            KeepAlive[ KLV_MAX_TMPL_NUM ];
268     TTemplateParams            Disconn;
269     TTemplateParams            ArpRsp;
270 
271 } TTemplateListParams;
272 
273 typedef struct
274 {
275     TI_UINT8                   enaDisFlag;
276     TKeepAliveParams           keepAliveParams[ KLV_MAX_TMPL_NUM ];
277 } TKeepAliveList;
278 
279 /* Security keys structure for reconfigure phase */
280 typedef struct
281 {
282     TI_BOOL                    bReconfHwEncEnable;
283     TI_BOOL                    bHwEncDecrEnableValid;
284     TI_UINT8                   uReconfDefaultKeyId;
285     TI_BOOL                    bDefaultKeyIdValid;
286     TSecurityKeys*             pReconfKeys;
287 
288 } TSecurReconf;
289 
290 
291 /* Rx Data Filters */
292 typedef struct
293 {
294     TI_UINT8                   uIndex;
295     TI_UINT8                   uCommand;
296     filter_e                   eAction;
297     TI_UINT8                   uNumFieldPatterns;
298     TI_UINT8                   uLenFieldPatterns;
299     TI_UINT8                   aFieldPattern[MAX_DATA_FILTER_SIZE];
300 
301 } TRxDataFilter;
302 
303 typedef struct
304 {
305     TI_BOOL                    bEnabled;
306     filter_e                   eDefaultAction;
307     TRxDataFilter              aRxDataFilter[MAX_DATA_FILTERS];
308 
309 } TRxDataFiltersTable;
310 
311 typedef struct
312 {
313 	RateMangeParams_t rateMngParams;
314 
315 } TRateMngParams;
316 
317 
318 
319 /*
320  * ----------------------------------------------------------------
321  *                  MAIN PARAMETERS STRUCTURE
322  * ----------------------------------------------------------------
323  */
324 typedef struct
325 {
326     TDmaParams                 dma;                 /* Rx/Tx queue parameters   */
327     TQueuesParams              queues;              /* Queues params for QOS    */
328     TAcConfParams              ac;                  /* AC params for QoS        */
329     TPsRxStreamingParams       psStream;            /* PS-Rx-Streaming params   */
330     TWlanParams                wlan;                /* Wlan parameters          */
331     TBssInfoParams             bss;                 /* Bss information          */
332     TFwInfo                    hw;                  /* HW eeprom & versions info*/
333     TGenCounters               counters;            /* General counters         */
334     TTemplateListParams        templateList;        /* Templates for recovery   */
335     TKeepAliveList             klvList;             /* Keep-Alive paramters     */
336     TSecurReconf               keys;                /* Security keys            */
337     TRxDataFiltersTable        rxDataFilters;       /* Rx data filters          */
338     IniFileGeneralParam        tPlatformGenParams;  /* platfrom gen params from public_radio.h  */
339     IniFileRadioParam          tRadioIniParams;     /* Radio ini params from public_radio.h     */
340 	IniFileExtendedRadioParam  tExtRadioIniParams;  /* Extended Radio ini params from public_radio.h     */
341 	TRateMngParams		       tRateMngParams;      /* rate management params */
342 } TCmdBldDb;
343 
344 #endif
345 
346 
347 
348