• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * CmdBldDb.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 
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     TI_UINT32                  isArpIpFilteringEnabled;
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_BOOL                    EnergyDetection;
114     TI_UINT8                   PacketDetectionThreshold;
115     TI_UINT8                   FcsErrThrsh;
116     TI_UINT8                   UseDeviceErrorInterrupt;
117     TI_BOOL                    RetryPreemption;
118     /* This flag indicate if to discards all broadcast frames */
119     TI_BOOL                    RxDisableBroadcast;
120     /* Indicate if the station is joined */
121     TI_BOOL                    bJoin;
122     /* Indicate if the station is connected */
123     TI_BOOL                    bStaConnected;
124     TI_UINT8                   AntDiversity;
125     /* Parameters for roaming triggers configuration */
126     TRroamingTriggerParams     roamTriggers;
127     /* Power control param */
128     EPowerPolicy               minPowerLevel;
129     TBcnBrcOptions             BcnBrcOptions;
130     TBeaconFilterIeTable       beaconFilterIETable;
131     TBeaconFilterInitParams    beaconFilterParams;
132 
133     /*Beacon Early Termination (Bet)*/
134     TI_UINT8                   BetEnable;
135     TI_UINT8                   MaximumConsecutiveET;
136     TI_UINT8                   ConsecutivePsPollDeliveryFailureThreshold;
137 
138     /* RSSI/SNR triggers */
139     RssiSnrTriggerCfg_t        tRssiSnrTrigger[NUM_OF_RSSI_SNR_TRIGGERS];
140     RssiSnrAverageWeights_t    tRssiSnrWeights;
141 
142     TI_UINT32                  uSlicedScanTimeOut;
143 
144     /* HT capabilities */
145     TTwdHtCapabilities         tTwdHtCapabilities;
146 
147     /* PM Config params */
148     TI_UINT32                  uHostClkSettlingTime;
149     TI_UINT8                   uHostFastWakeupSupport;
150 
151     TI_UINT8                   TxPowerDbm;
152 
153     /* CoexActivity Table */
154     THalCoexActivityTable      tWlanParamsCoexActivityTable;
155 
156 } TWlanParams;
157 
158 
159 /*
160  * BssInfo params
161  * --------------
162  */
163 typedef struct
164 {
165     TI_UINT8                   ReqBssType;
166     TI_UINT8                   BssType;
167     TI_UINT16                  BeaconInterval;
168     TI_UINT8                   DtimInterval;
169     TI_UINT8                   RadioChannel;
170     TI_UINT8                   BssId[MAC_ADDR_LEN];
171     TSsid                      tSsid;
172     /* Policy for recovery */
173     TTxRatePolicy              TxRateClassParams;
174     TI_UINT32                  BasicRateSet;
175     /* The ctrl field in the Join-Command (see StartJoinRequest_t) */
176     TI_UINT8                   Ctrl;
177     /* ATIM window of IBSS*/
178     /* Note that when ATIM window is zero the*/
179     /* initiated IBSS does not support powersave*/
180     TI_UINT16                  ATimWindow;
181     /* Specifies the PLCP preamble type used*/
182     /* 0 for long preamble*/
183     /* 1 for short preamble*/
184     TI_UINT8                   DefaultPreamble;
185 
186     /*
187      * HT setting
188      */
189     /* capabilities */
190     TI_BOOL   bHtCap;
191     TI_UINT32 uHtCapabilites;
192     TMacAddr  tMacAddress;
193     TI_UINT8  uAmpduMaxLeng;
194     TI_UINT8  uAmpduMinSpac;
195     /* Information */
196     TI_BOOL   bHtInf;
197     TI_UINT8  uRifsMode;
198     TI_UINT8  uHtProtection;
199     TI_UINT8  uGfProtection;
200     TI_UINT8  uHtTxBurstLimit;
201     TI_UINT8  uDualCtsProtection;
202     /* BA session */
203     TI_BOOL                               bBaInitiator[MAX_NUM_OF_802_1d_TAGS];
204     TAxcBaSessionInitiatorResponderPolicy tBaSessionInitiatorPolicy[MAX_NUM_OF_802_1d_TAGS];
205     TI_BOOL                               bBaResponder[MAX_NUM_OF_802_1d_TAGS];
206     TAxcBaSessionInitiatorResponderPolicy tBaSessionResponderPolicy[MAX_NUM_OF_802_1d_TAGS];
207 
208 } TBssInfoParams;
209 
210 
211 /*
212  * General counters
213  * ----------------
214  */
215 typedef struct
216 {
217     TI_UINT32                  FcsErrCnt;
218 
219 } TGenCounters;
220 
221 
222 /*
223  * queuesParam_T - Queue params for Quality Of Service
224  * ------------------------------------------
225  */
226 typedef struct
227 {
228     TQueueTrafficParams        queues[MAX_NUM_OF_AC];
229     TI_BOOL                    isQueueConfigured[MAX_NUM_OF_AC];
230 
231 } TQueuesParams;
232 
233 
234 typedef struct
235 {
236     TAcQosParams               ac[MAX_NUM_OF_AC];
237     TI_BOOL                    isAcConfigured[MAX_NUM_OF_AC];
238 	TI_BOOL					   isBurstModeEnabled;
239 } TAcConfParams;
240 
241 
242 typedef struct
243 {
244     TPsRxStreaming             tid[MAX_NUM_OF_802_1d_TAGS];
245 
246 } TPsRxStreamingParams;
247 
248 
249 /*
250  * Templates params
251  * ----------------
252  */
253 typedef struct
254 {
255     TTemplateParams            Beacon;
256     TTemplateParams            ProbeReq24;
257     TTemplateParams            ProbeReq50;
258     TTemplateParams            ProbeResp;
259     TTemplateParams            NullData;
260     TTemplateParams            PsPoll;
261     TTemplateParams            QosNullData;
262     TTemplateParams            KeepAlive[ KLV_MAX_TMPL_NUM ];
263     TTemplateParams            Disconn;
264 
265 } TTemplateListParams;
266 
267 typedef struct
268 {
269     TI_UINT8                   enaDisFlag;
270     TKeepAliveParams           keepAliveParams[ KLV_MAX_TMPL_NUM ];
271 } TKeepAliveList;
272 
273 /* Security keys structure for reconfigure phase */
274 typedef struct
275 {
276     TI_BOOL                    bReconfHwEncEnable;
277     TI_BOOL                    bHwEncDecrEnableValid;
278     TI_UINT8                   uReconfDefaultKeyId;
279     TI_BOOL                    bDefaultKeyIdValid;
280     TSecurityKeys*             pReconfKeys;
281 
282 } TSecurReconf;
283 
284 
285 /* Rx Data Filters */
286 typedef struct
287 {
288     TI_UINT8                   uIndex;
289     TI_UINT8                   uCommand;
290     filter_e                   eAction;
291     TI_UINT8                   uNumFieldPatterns;
292     TI_UINT8                   uLenFieldPatterns;
293     TI_UINT8                   aFieldPattern[MAX_DATA_FILTER_SIZE];
294 
295 } TRxDataFilter;
296 
297 typedef struct
298 {
299     TI_BOOL                    bEnabled;
300     filter_e                   eDefaultAction;
301     TRxDataFilter              aRxDataFilter[MAX_DATA_FILTERS];
302 
303 } TRxDataFiltersTable;
304 
305 typedef struct
306 {
307  ACXSmartReflexConfigParams_t     tSmartReflexParams;
308  ACXSmartReflexDebugParams_t      tSmartReflexDebugParams;
309  ACXSmartReflexState_t            tSmartReflexState;
310 
311 }TSmartReflexParams ;
312 
313 typedef struct
314 {
315 	RateMangeParams_t rateMngParams;
316 
317 } TRateMngParams;
318 
319 
320 
321 /*
322  * ----------------------------------------------------------------
323  *                  MAIN PARAMETERS STRUCTURE
324  * ----------------------------------------------------------------
325  */
326 typedef struct
327 {
328     TDmaParams                 dma;                 /* Rx/Tx queue parameters   */
329     TQueuesParams              queues;              /* Queues params for QOS    */
330     TAcConfParams              ac;                  /* AC params for QoS        */
331     TPsRxStreamingParams       psStream;            /* PS-Rx-Streaming params   */
332     TWlanParams                wlan;                /* Wlan parameters          */
333     TBssInfoParams             bss;                 /* Bss information          */
334     TFwInfo                    hw;                  /* HW eeprom & versions info*/
335     TGenCounters               counters;            /* General counters         */
336     TTemplateListParams        templateList;        /* Templates for recovery   */
337     TKeepAliveList             klvList;             /* Keep-Alive paramters     */
338     TSecurReconf               keys;                /* Security keys            */
339     TRxDataFiltersTable        rxDataFilters;       /* Rx data filters          */
340     IniFileGeneralParam        tPlatformGenParams;  /* platfrom gen params from public_radio.h  */
341     IniFileRadioParam          tRadioIniParams;     /* Radio ini params from public_radio.h     */
342     TSmartReflexParams         tSmartReflex;
343 	TRateMngParams		       tRateMngParams;      /* rate management params */
344 } TCmdBldDb;
345 
346 #endif
347 
348 
349 
350