Home | History | Annotate | Download | only in Ctrl
      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