/*
* CmdBldDb.h
*
* Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name Texas Instruments nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** \file CmdBldDb.h
* \brief Command builder database
*
* \see CmdBld.h
*/
#ifndef CMDBLDDB_H
#define CMDBLDDB_H
#include "TWDriverInternal.h"
#include "public_infoele.h"
/*
* Dot11 params
* ------------
*/
typedef struct
{
TI_UINT16 RtsThreshold;
TI_UINT8 CtsToSelf;
TRxTimeOut rxTimeOut;
TI_UINT16 FragmentThreshold;
TI_UINT8 ListenInterval;
TI_UINT16 Capabilities;
TI_UINT32 MaxTxMsduLifetime;
TI_UINT32 MaxRxMsduLifetime;
TI_UINT8 calibrationChannel2_4;
TI_UINT8 calibrationChannel5_0;
TI_UINT16 Aid;
TI_UINT8 CurrAntenna;
TI_UINT8 TxAntenna;
TI_UINT8 RxAntenna;
TI_UINT8 Hw_TxAntenna;
TI_UINT8 Hw_RxAntenna;
TI_UINT16 CwMin;
TI_UINT8 RateFallback;
TI_UINT32 RxConfigOption;
TI_UINT32 RxFilterOption;
TI_BOOL WiFiWmmPS;
/* Data interrupts pacing */
TI_UINT16 TxCompletePacingThreshold;
TI_UINT16 TxCompletePacingTimeout;
TI_UINT16 RxIntrPacingThreshold;
TI_UINT16 RxIntrPacingTimeout;
/* ARP IP Addr table */
TI_UINT32 arp_IP_ver;
EArpFilterType arpFilterType;
TIpAddr arp_IP_addr;
/* Mac addresses filter */
TI_UINT8 isMacAddrFilteringnabled;
TI_UINT8 numGroupAddrs;
TMacAddr aGroupAddr[MAX_MULTICAST_GROUP_ADDRS];
TI_UINT32 FeatureOptions;
TI_UINT32 FeatureDataFlowOptions;
TI_UINT8 SlotTime;
TI_UINT8 preamble;
TI_UINT8 RadioBand;
TI_UINT8 MacClock;
TI_UINT8 ArmClock;
TI_UINT8 CurrPowerSaveState;
ESoftGeminiEnableModes SoftGeminiEnable;
TSoftGeminiParams SoftGeminiParams;
TFmCoexParams tFmCoexParams;
TI_UINT8 maxSitesFragCollect;
TI_UINT8 hwAccessMethod;
TI_UINT32 nullTemplateSize;
TI_UINT32 disconnTemplateSize;
TI_UINT32 beaconTemplateSize;
TI_UINT32 probeRequestTemplateSize;
TI_UINT32 probeResponseTemplateSize;
TI_UINT32 PsPollTemplateSize;
TI_UINT32 qosNullDataTemplateSize;
TI_UINT32 ArpRspTemplateSize;
TI_BOOL ch14TelecCca;
TI_UINT8 PacketDetectionThreshold;
TI_UINT8 FcsErrThrsh;
TI_UINT8 UseDeviceErrorInterrupt;
TI_BOOL RetryPreemption;
/* This flag indicate if to discards all broadcast frames */
TI_BOOL RxDisableBroadcast;
/* Indicate if the station is joined */
TI_BOOL bJoin;
/* Indicate if the station is connected */
TI_BOOL bStaConnected;
TI_UINT8 AntDiversity;
/* Parameters for roaming triggers configuration */
TRroamingTriggerParams roamTriggers;
/* Power control param */
EPowerPolicy minPowerLevel;
TBcnBrcOptions BcnBrcOptions;
TBeaconFilterIeTable beaconFilterIETable;
TBeaconFilterInitParams beaconFilterParams;
/*Beacon Early Termination (Bet)*/
TI_UINT8 BetEnable;
TI_UINT8 MaximumConsecutiveET;
TI_UINT8 ConsecutivePsPollDeliveryFailureThreshold;
/* RSSI/SNR triggers */
RssiSnrTriggerCfg_t tRssiSnrTrigger[NUM_OF_RSSI_SNR_TRIGGERS];
RssiSnrAverageWeights_t tRssiSnrWeights;
TI_UINT32 uSlicedScanTimeOut;
/* HT capabilities */
TTwdHtCapabilities tTwdHtCapabilities;
/* PM Config params */
TI_UINT32 uHostClkSettlingTime;
TI_UINT8 uHostFastWakeupSupport;
TI_UINT8 TxPowerDbm;
/* CoexActivity Table */
THalCoexActivityTable tWlanParamsCoexActivityTable;
/* DCO Itrim params */
TI_BOOL dcoItrimEnabled;
TI_UINT32 dcoItrimModerationTimeoutUsec;
} TWlanParams;
/*
* BssInfo params
* --------------
*/
typedef struct
{
TI_UINT8 ReqBssType;
TI_UINT8 BssType;
TI_UINT16 BeaconInterval;
TI_UINT8 DtimInterval;
TI_UINT8 RadioChannel;
TI_UINT8 BssId[MAC_ADDR_LEN];
TSsid tSsid;
/* Policy for recovery */
TTxRatePolicy TxRateClassParams;
TI_UINT32 BasicRateSet;
/* The ctrl field in the Join-Command (see StartJoinRequest_t) */
TI_UINT8 Ctrl;
/* ATIM window of IBSS*/
/* Note that when ATIM window is zero the*/
/* initiated IBSS does not support powersave*/
TI_UINT16 ATimWindow;
/* Specifies the PLCP preamble type used*/
/* 0 for long preamble*/
/* 1 for short preamble*/
TI_UINT8 DefaultPreamble;
/*
* HT setting
*/
/* capabilities */
TI_BOOL bHtCap;
TI_UINT32 uHtCapabilites;
TMacAddr tMacAddress;
TI_UINT8 uAmpduMaxLeng;
TI_UINT8 uAmpduMinSpac;
/* Information */
TI_BOOL bHtInf;
TI_UINT8 uRifsMode;
TI_UINT8 uHtProtection;
TI_UINT8 uGfProtection;
TI_UINT8 uHtTxBurstLimit;
TI_UINT8 uDualCtsProtection;
/* BA session */
TI_BOOL bBaInitiator[MAX_NUM_OF_802_1d_TAGS];
TAxcBaSessionInitiatorResponderPolicy tBaSessionInitiatorPolicy[MAX_NUM_OF_802_1d_TAGS];
TI_BOOL bBaResponder[MAX_NUM_OF_802_1d_TAGS];
TAxcBaSessionInitiatorResponderPolicy tBaSessionResponderPolicy[MAX_NUM_OF_802_1d_TAGS];
} TBssInfoParams;
/*
* General counters
* ----------------
*/
typedef struct
{
TI_UINT32 FcsErrCnt;
} TGenCounters;
/*
* queuesParam_T - Queue params for Quality Of Service
* ------------------------------------------
*/
typedef struct
{
TQueueTrafficParams queues[MAX_NUM_OF_AC];
TI_BOOL isQueueConfigured[MAX_NUM_OF_AC];
} TQueuesParams;
typedef struct
{
TAcQosParams ac[MAX_NUM_OF_AC];
TI_BOOL isAcConfigured[MAX_NUM_OF_AC];
TI_BOOL isBurstModeEnabled;
} TAcConfParams;
typedef struct
{
TPsRxStreaming tid[MAX_NUM_OF_802_1d_TAGS];
} TPsRxStreamingParams;
/*
* Templates params
* ----------------
*/
typedef struct
{
TTemplateParams Beacon;
TTemplateParams ProbeReq24;
TTemplateParams ProbeReq50;
TTemplateParams ProbeResp;
TTemplateParams NullData;
TTemplateParams PsPoll;
TTemplateParams QosNullData;
TTemplateParams KeepAlive[ KLV_MAX_TMPL_NUM ];
TTemplateParams Disconn;
TTemplateParams ArpRsp;
} TTemplateListParams;
typedef struct
{
TI_UINT8 enaDisFlag;
TKeepAliveParams keepAliveParams[ KLV_MAX_TMPL_NUM ];
} TKeepAliveList;
/* Security keys structure for reconfigure phase */
typedef struct
{
TI_BOOL bReconfHwEncEnable;
TI_BOOL bHwEncDecrEnableValid;
TI_UINT8 uReconfDefaultKeyId;
TI_BOOL bDefaultKeyIdValid;
TSecurityKeys* pReconfKeys;
} TSecurReconf;
/* Rx Data Filters */
typedef struct
{
TI_UINT8 uIndex;
TI_UINT8 uCommand;
filter_e eAction;
TI_UINT8 uNumFieldPatterns;
TI_UINT8 uLenFieldPatterns;
TI_UINT8 aFieldPattern[MAX_DATA_FILTER_SIZE];
} TRxDataFilter;
typedef struct
{
TI_BOOL bEnabled;
filter_e eDefaultAction;
TRxDataFilter aRxDataFilter[MAX_DATA_FILTERS];
} TRxDataFiltersTable;
typedef struct
{
RateMangeParams_t rateMngParams;
} TRateMngParams;
/*
* ----------------------------------------------------------------
* MAIN PARAMETERS STRUCTURE
* ----------------------------------------------------------------
*/
typedef struct
{
TDmaParams dma; /* Rx/Tx queue parameters */
TQueuesParams queues; /* Queues params for QOS */
TAcConfParams ac; /* AC params for QoS */
TPsRxStreamingParams psStream; /* PS-Rx-Streaming params */
TWlanParams wlan; /* Wlan parameters */
TBssInfoParams bss; /* Bss information */
TFwInfo hw; /* HW eeprom & versions info*/
TGenCounters counters; /* General counters */
TTemplateListParams templateList; /* Templates for recovery */
TKeepAliveList klvList; /* Keep-Alive paramters */
TSecurReconf keys; /* Security keys */
TRxDataFiltersTable rxDataFilters; /* Rx data filters */
IniFileGeneralParam tPlatformGenParams; /* platfrom gen params from public_radio.h */
IniFileRadioParam tRadioIniParams; /* Radio ini params from public_radio.h */
IniFileExtendedRadioParam tExtRadioIniParams; /* Extended Radio ini params from public_radio.h */
TRateMngParams tRateMngParams; /* rate management params */
} TCmdBldDb;
#endif