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