blob: 36a4201b32aa172457ab5350ab44a60ba1a882bb [file] [log] [blame]
/****************************************************************************
**+-----------------------------------------------------------------------+**
**| |**
**| Copyright(c) 1998 - 2008 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. |**
**| |**
**+-----------------------------------------------------------------------+**
****************************************************************************/
#ifndef __COMMON_TYPES_H__
#define __COMMON_TYPES_H__
#include "osTIType.h"
#include "osDot11.h"
#include "tiwlnif.h"
#include "paramMng.h"
#include "whalDefaultParams.h"
/*****************************************************************************
** **
** **
** CONSTANTS **
** **
** **
*****************************************************************************/
/************************************/
/* Report Module values */
/************************************/
#define CONFIG_MGR_MODULE_LOG (0x00)
#define SME_SM_MODULE_LOG (0x01)
#define SITE_MGR_MODULE_LOG (0x02)
#define CONN_MODULE_LOG (0x03)
#define MLME_SM_MODULE_LOG (0x04)
#define AUTH_MODULE_LOG (0x05)
#define ASSOC_MODULE_LOG (0x06)
#define RX_DATA_MODULE_LOG (0x07)
#define TX_DATA_MODULE_LOG (0x08)
#define CTRL_DATA_MODULE_LOG (0x09)
#define RSN_MODULE_LOG (0x0A)
#define HAL_RX_MODULE_LOG (0x0B)
#define HAL_TX_MODULE_LOG (0x0C)
#define HAL_CTRL_MODULE_LOG (0x0D)
#define HAL_SECURITY_MODULE_LOG (0x0E)
#define MEM_MGR_MODULE_LOG (0x0F)
#define REPORT_MODULE_LOG (0x10)
#define SITE_UPDATE_MODULE_LOG (0x11)
#define REGULATORY_DOMAIN_MODULE_LOG (0x12)
#define MEASUREMENT_MNGR_MODULE_LOG (0x13)
#define MEASUREMENT_SRV_MODULE_LOG (0x14)
#define SOFT_GEMINI_MODULE_LOG (0x15)
#define SC_MODULE_LOG (0x16)
#define EXC_MANAGER_MODULE_LOG (0x17)
#define ROAMING_MANAGER_MODULE_LOG (0x18)
#define QOS_MANAGER_MODULE_LOG (0x19)
#define TRAFFIC_ADM_CTRL_MODULE_LOG (0x1A)
#define POWER_MANAGER_MODULE_LOG (0x1B)
#define POWER_CONTROL_MODULE_LOG (0x1C)
#define POWER_SERVER_MODULE_LOG (0x1D)
#define ELP_MODULE_LOG (0x1E)
#define SCR_MODULE_LOG (0x1F)
#define SCAN_SRV_MODULE_LOG (0x20)
#define SCAN_CNCN_MODULE_LOG (0x21)
#define SCAN_MNGR_MODULE_LOG (0x22)
#define GWSI_ADAPT_MODULE_LOG (0x23)
#define GWSI_ADAPT_CB_MODULE_LOG (0x24)
#define CORE_ADAPT_MODULE_LOG (0x25)
#define TX_HW_QUEUE_MODULE_LOG (0x26)
#define TX_CTRL_BLK_MODULE_LOG (0x27)
#define TX_RESULT_MODULE_LOG (0x28)
#define TNETW_IF_MODULE_LOG (0x29)
#define TNETW_ARBITER_MODULE_LOG (0x2a)
#define CURR_BSS_MODULE_LOG (0x2b)
#define FW_EVENT_MODULE_LOG (0x2c)
#define CMD_MBOX_MODULE_LOG (0x2d)
#define CMDQUEUE_MODULE_LOG (0x2e)
#define EVENT_MBOX_MODULE_LOG (0x2f)
#define TNETW_DRV_MODULE_LOG (0x30)
#define TNETW_XFER_MODULE_LOG (0x31)
#define RECOVERY_MGR_MODULE_LOG (0x32)
#define RECOVERY_CTRL_MODULE_LOG (0x33)
#define HW_INIT_MODULE_LOG (0x34)
#define WLAN_MAX_LOG_MODULES (HW_INIT_MODULE_LOG + 1)
/************************************/
/* Report Severity values */
/************************************/
#define WLAN_SEVERITY_INIT 1
#define WLAN_SEVERITY_INFORMATION 2
#define WLAN_SEVERITY_WARNING 3
#define WLAN_SEVERITY_ERROR 4
#define WLAN_SEVERITY_FATAL_ERROR 5
#define WLAN_SEVERITY_SM 6
#define WLAN_SEVERITY_CONSOLE 7
#define WLAN_SEVERITY_DEBUG_RX 8
#define WLAN_SEVERITY_DEBUG_TX 9
#define WLAN_SEVERITY_DEBUG_CONTROL 10
#define WLAN_SEVERITY_GWSI_RECORDING 11
#define WLAN_MAX_SEVERITIES (WLAN_SEVERITY_GWSI_RECORDING + 1)
#define MAX_INFO_ELEMENT_LEN (32)
#define IP_ADDR_LEN 4
#define IP_V4_ADDR_LEN 4
#define IP_V6_ADDR_LEN 6
#define MAX_MULTICAST_GROUP_ADDRS 8
#define NUM_OF_NOISE_HISTOGRAM_COUNTERS (8)
#define MAX_SUPPORTED_RATES 32
#define RATES_SET_LEN 2
#define MIN_DEFAULT_KEY_ID 0
#define MAX_DEFAULT_KEY_ID 3
#define KEY_RSC_LEN 8
#define MIN_KEY_LEN 5
#define MAX_KEY_LEN 32
#define MAX_IDENTITY_LEN 64
#define MAX_PASSWD_LEN 128
#define MAX_NUM_OUI 16
#define DOT11_OUI_LEN 3
/* The maximum number of multiple SSIDs that can be used in a single scan command */
#define SCAN_MAX_SSID_NUM (1)
/* The maximum number of information elements that sent in an active scan probe request
including the SSID */
#define SCAN_MAX_INFO_ELEMENTS (3)
/* WoneIndex value when running as station */
#define STATION_WONE_INDEX (0)
/* Power translation table definitions */
#define NUM_POWER_LEVELS (4)
#define MAX_POWER_LEVEL (0)
#define MIN_POWER_LEVEL (NUM_POWER_LEVELS - 1)
#define DBM_TO_TX_POWER_FACTOR 10
/* TX_POWER is in Dbm/10 units */
#define MAX_TX_POWER 255
#define MIN_TX_POWER 0
#define NUM_SUB_BANDS_FOR_POWER_TABLE 5
#define BAND_2_4_POWER_TABLE 0
#define MAX_NUM_OF_TX_RATE_CLASS_POLICIES 8 /* max num of policies */
#define MAX_PARAM_MODULE_NUMBER (GET_PARAM_MODULE_NUMBER(MAX_PARAM_MODULE_PARAM)) /*19*/
#define FW_VERSION_LEN 20
#ifndef TI_STATUS
#define TI_STATUS systemStatus_e
#endif
#define NUM_OF_MAX_TRIPLET_CHANNEL (32)
#define COUNTRY_STRING_LEN 3
/* Definitions for Rx Filter MIB. */
#define PLT_MIB_RX_FILTER_PROMISCOUS_SET (UINT8) 0x01 /* set — Enable: Forward all frames to host driver*/
#define PLT_MIB_RX_FILTER_PROMISCOUS_CLEAR (UINT8) 0x00 /* cleared — Disable: Do not orward all frames to the host driver*/
#define PLT_MIB_RX_FILTER_BSSID_SET (UINT8) 0x02 /* set — filter enabled: receive only those frames that match the BSSID given in the Join command*/
#define PLT_MIB_RX_FILTER_BSSID_CLEAR (UINT8) 0x00 /* cleared — filter disabled: ignore BSSID in receiving*/
/*****************************************************************************
** **
** **
** ENUMS **
** **
** **
*****************************************************************************/
typedef enum
{
txPolicy54 = 0,
txPolicy48,
txPolicy36,
txPolicy24,
txPolicy22,
txPolicy18,
txPolicy12,
txPolicy11,
txPolicy9,
txPolicy6,
txPolicy5_5,
txPolicy2,
txPolicy1,
MAX_NUM_OF_TX_RATES_IN_CLASS
}txRateClassId_e;
typedef enum{
DROP_NEW_PACKET = 0,
DROP_OLD_PACKET
}qOvFlowPolicy_e;
typedef enum
{
SG_ENABLE = 0,
SG_DISABLE ,
SG_SENSE_NO_ACTIVITY ,
SG_SENSE_ACTIVE
} SoftGeminiEnableModes_e;
typedef enum
{
IP_VER_4 = 0,
IP_VER_6
} IPver_e;
typedef enum
{
DRV_MODULATION_NONE = 0,
DRV_MODULATION_CCK = 1,
DRV_MODULATION_PBCC = 2,
DRV_MODULATION_QPSK = 3,
DRV_MODULATION_OFDM = 4,
} modulationType_e;
/* tx antenna */
typedef enum
{
TX_ANTENNA_2 = 0,
TX_ANTENNA_1 = 1
} txAntenna_e;
/* rx antenna */
typedef enum
{
RX_ANTENNA_1 = 0,
RX_ANTENNA_2 = 1,
RX_ANTENNA_FULL = 2,
RX_ANTENNA_PARTIAL = 3
} rxAntenna_e;
typedef enum
{
HW_CLOCK_40_MHZ = 40,
HW_CLOCK_80_MHZ = 80
} hwClock_e;
typedef enum
{
MAXIM = 0,
RFMD = 1,
RADIA_BG = 2,
RADIA_ABG = 3,
UNKNOWN_RADIO_TYPE = 4
} radioType_e;
/** Available cipher suites for admission control */
typedef enum
{
RSN_CIPHER_NONE = 0, /**< no chpiher suite */
RSN_CIPHER_WEP = 1, /**< WEP-40 chpiher suite */
RSN_CIPHER_TKIP = 2, /**< TKIP chpiher suite */
RSN_CIPHER_AES_WRAP = 3, /**< AES WRAP chpiher suite */
RSN_CIPHER_AES_CCMP = 4, /**< AES CCMP chpiher suite */
RSN_CIPHER_WEP104 = 5, /**< WEP-104 chpiher suite */
RSN_CIPHER_CKIP = 6, /**< CKIP chpiher suite */
RSN_CIPHER_UNKNOWN = 255 /**< UNKNOWN chpiher suite */
} cipherSuite_e;
/** RSN supported authentication suites */
typedef enum
{
RSN_AUTH_OPEN = 0, /*< Legacy Open authentication suite */
RSN_AUTH_SHARED_KEY = 1, /*< Legacy Shared Key authentication suite */
RSN_AUTH_AUTO_SWITCH = 2, /*< Automatic authentication suite */
RSN_AUTH_NONE = 255 /*< no authentication suite */
} authSuite_e;
/* Available External authentication modes for admission control */
typedef enum
{
RSN_EXT_AUTH_MODE_OPEN = RSN_AUTH_OPEN,
RSN_EXT_AUTH_MODE_SHARED_KEY = RSN_AUTH_SHARED_KEY,
RSN_EXT_AUTH_MODE_AUTO_SWITCH = RSN_AUTH_AUTO_SWITCH,
RSN_EXT_AUTH_MODE_WPA,
RSN_EXT_AUTH_MODE_WPAPSK,
RSN_EXT_AUTH_MODE_WPANONE,
RSN_EXT_AUTH_MODE_WPA2,
RSN_EXT_AUTH_MODE_WPA2PSK,
RSN_EXT_AUTH_MODEMAX /* Not a real mode, defined as upper bound */
} externalAuthMode_e;
typedef enum
{
RSN_AUTH_STATUS_INVALID_TYPE = 0x0001,
RSN_AUTH_STATUS_TIMEOUT = 0x0002,
RSN_AUTH_STATUS_CHALLENGE_FROM_AP_FAILED = 0x0003,
RSN_AUTH_STATUS_CHALLENGE_TO_AP_FAILED = 0x0004
} authStatus_e;
/************************************/
/* System return values. */
/************************************/
#undef OK
#undef NOK
typedef enum
{
/* System section */
#if !defined(OK) || (OK!=0)
OK = 0,
#endif
#if !defined(NOK) || (NOK!=1)
NOK = 1,
#endif
/* GWSI status */
GWSI_FAILED = 1,
PARAM_NOT_SUPPORTED = 2,
PARAM_VALUE_NOT_VALID = 3,
CONFIGURATION_NOT_VALID = 4,
NO_SITE_SELECTED_YET = 5,
RE_SCAN_NEEDED = 6,
EXTERNAL_SET_PARAM_DENIED = 7,
EXTERNAL_GET_PARAM_DENIED = 8,
PARAM_MODULE_NUMBER_INVALID = 9,
STATION_IS_NOT_RUNNING = 10,
CARD_IS_NOT_INSTALLED = 11,
/* Data path section */
RX_MIC_FAILURE_ERROR = 12,
RX_DECRYPT_FAILURE = 13,
RX_STATUS_FAILURE = 14,
TX_QUEUE_SELECTED_OK = 15,
NO_TX_QUEUE_SELECTED = 16,
TX_STATUS_PENDING = 17,
TX_STATUS_NO_RESOURCES = 18,
TX_STATUS_FAILURE = 19,
TX_STATUS_OK = 20,
/* 4x section */
MAKE_CONCATENATION = 21,
SEND_ONE_MSDU = 22,
DO_NOT_SEND_MSDU = 23,
FOUR_X_DISABLE = 24,
/* Scanning section */
NO_COUNTRY = 25,
SCAN_ALREADY_IN_PROGRESS = 26,
NO_SCAN_IN_PROGRESS = 27,
/* Setting same power */
TX_POWER_SET_SAME_VALUE = 28,
/* changing service channel */
CHANNEL_CHANGED = 29,
SUPPORT_IMMEDIATE_MEASUREMENT_ONLY = 30,
MEASUREMENT_TYPE_NOT_SUPPORT = 31,
MEASUREMENT_CAN_NOT_EXECUTED_IN_PARALLEL = 32,
MEASUREMENT_REQUEST_IGNORED = 33,
CANNOT_SET_MEASUREMENT_PARAM_WHEN_ACTIVATED = 34,
CANNOT_SET_CHANNEL_THAT_IS_NOT_SUPPORTED = 35,
/* rsn */
STATUS_BAD_KEY_PARAM = 36,
STATUS_RX_MIC_FAIL = 37,
/* site Manager */
STATUS_FIRST_PRIMARY_SITE_SET = 38,
/*
Power Management
*/
POWER_SAVE_802_11_SUCCESS = 39,
POWER_SAVE_802_11_FAIL = 40,
POWER_SAVE_802_11_NOT_ALLOWED = 41,
PENDING = 42,
/* GWSI TX packet sending status */
SEND_COMPLETE_SUCCESS = 44,
SEND_COMPLETE_RETRY_EXCEEDED = 45,
SEND_COMPLETE_LIFETIME_EXCEEDED = 46,
SEND_COMPLETE_NO_LINK = 47,
SEND_COMPLETE_MAC_CRASHED = 48,
/*POWER_SAVE_802_11_NOT_ALLOWED = 39,*/
POWER_SAVE_802_11_IS_CURRENT = 49,
/* GWSI TX Send-Packet status */
SEND_PACKET_XFER_DONE = 50, /* Xfer completed, another packet can be sent, Xfer-Done won't be called. */
SEND_PACKET_SUCCESS = 51, /* Xfer in process, another packet can be sent, Xfer-Done will be called. */
SEND_PACKET_PENDING = 52, /* Xfer in process, another packet CAN-NOT be sent. Xfer-Done will be called. */
SEND_PACKET_BUSY = 53, /* Packet rejected due to queue lack of resources.
Should be sent again after resources are freed on Tx-complete. */
SEND_PACKET_ERROR = 54, /* Packet rejected due to API violation (sending in PENDING state or wrong params. */
SEND_PACKET_RECOVERY = 55, /* Recovery happened during Xfer */
/* QoSMngr */
TI_WLAN_QOS_RETURN_CODES, /* detailed in tiQosTypes.h */
/* TNETWIF Return Errors */
TNETWIF_NONE,
TNETWIF_OK,
TNETWIF_COMPLETE,
TNETWIF_PENDING,
TNETWIF_ERROR,
TNETWIF_MORE,
/* Rx Data Filters */
RX_NO_AVAILABLE_FILTERS,
RX_FILTER_ALREADY_EXISTS,
RX_FILTER_DOES_NOT_EXIST,
/* Soft Gemini */
SG_REJECT_MEAS_SG_ACTIVE,
} systemStatus_e;
typedef enum
{
NO_FAILURE = -1,
NO_SCAN_COMPLETE_FAILURE = 0,
MBOX_FAILURE,
HW_AWAKE_FAILURE,
BUS_ERROR,
DEVICE_ERROR,
TX_STUCK,
DISCONNECT_TIMEOUT,
POWER_SAVE_FAILURE,
MEASUREMENT_FAILURE,
MAX_FAILURE_EVENTS
} failureEvent_e;
/** \enum TnetWakeOn_e */
typedef enum
{
TNET_WAKE_ON_BEACON, /**< Indicate the wake on event of the HW - beacon.
* In this event the HW configure to be awake on every beacon.
*/
TNET_WAKE_ON_DTIM, /**< Indicate the wake on event of the HW - DTIM. In this event
* the HW configure to be awake on every DITM (configure by the AP).
*/
TNET_WAKE_ON_N_BEACON, /**< Indicate the wake on event of the HW - listen interval.
* In this event the HW configure to be awake on every
* configured number of beacons.
*/
TNET_WAKE_ON_N_DTIM, /**< Indicate the wake on event of the HW - listen interval.
* In this event the HW configure to be awake on every
* configured number of beacons.
*/
TNET_WAKE_ON_HOST /**< Indicate the wake on event of the HW - Host access only
*/
}PowerMgr_TnetWakeOn_e;
/** \enum PowerMgr_RequestFor_802_11_PS_e */
typedef enum
{
REQUEST_TO_ENTER_POWER_SAVE_802_11, /**< request to enter to power save
* of 802.11
*/
REQUEST_NOT_TO_CHANGE_POWER_SAVE_802_11, /**< request to not change the
* power save of 802.11
*/
REQUEST_TO_EXIT_POWER_SAVE_802_11 /**< request to exit from power save
* of 802.11
*/
}PowerMgr_RequestFor_802_11_PS_e;
typedef enum
{
POWER_SAVE_OFF, /**< power save of 802.11
*/
POWER_SAVE_ON , /**< power save on 802.11
*/
POWER_SAVE_KEEP_CURRENT /**< power save 802.11 don't change
*/
}PowerMgr_802_11_PsMode_e;
typedef enum
{
POWERAUTHO_POLICY_ELP = 0,
POWERAUTHO_POLICY_PD = 1,
POWERAUTHO_POLICY_AWAKE = 2,
POWERAUTHO_POLICY_NUM
} powerAutho_PowerPolicy_e;
typedef enum
{
ELPCTRL_MODE_NORMAL = 0,
ELPCTRL_MODE_KEEP_AWAKE
} elpCtrl_Mode_e;
/*
* this enum defines the protocol modes of the QOS management object.
*/
typedef enum{
WME = 0,
NONE_QOS,
}qosProtocols_e;
typedef enum
{
RX_PACKET_TYPE_DATA = 0,
RX_PACKET_TYPE_MANAGEMENT
}rxPacketType_e;
typedef enum
{
DOT11_B_MODE = 1,
DOT11_A_MODE = 2,
DOT11_G_MODE = 3,
DOT11_DUAL_MODE = 4,
DOT11_MAX_MODE
} dot11mode_e;
/* hw access method*/
typedef enum
{
HW_ACCESS_BUS_SLAVE_INDIRECT = 0,
HW_ACCESS_BUS_SLAVE_DIRECT = 1,
HW_ACCESS_BUS_MASTER = 2
} hwAccessMethod_e;
/*
* this enum includes the header converting modes configured to dataCtrl object.
*/
typedef enum{
NO_CONVERT = 0,
QOS_CONVERT,
LEGACY_CONVERT,
}headerConvetMode_e;
/* * this enum defines the admission state configured to dataCtrl object.
*/
typedef enum{
ADMISSION_NOT_REQUIRED = 0,
ADMISSION_REQUIRED = 1,
}admissionState_e;
/*****************************************************************************
** **
** **
** TYPEDEFS **
** **
** **
*****************************************************************************/
/**<
* Callback for 802.11 PS - Success/Fail
*/
typedef void (*ps802_11_NotificationCB_t)(TI_HANDLE module,
TI_STATUS thePsSuccess);
/**<
* Asynchronous init mode callback function type
*/
typedef void (*fnotify_t)(TI_HANDLE module, TI_STATUS status);
typedef struct
{
UINT8 txRate[MAX_NUM_OF_TX_RATES_IN_CLASS];
UINT8 shortRetryLimit;
UINT8 longRetryLimit;
UINT8 flags;
}txRateClass_t;
typedef struct
{
UINT32 numOfRateClasses;
txRateClass_t rateClass[MAX_NUM_OF_TX_RATE_CLASS_POLICIES];
}txRatePolicy_t;
PACKED_STRUCT( e2Version_t,
UINT16 major;
UINT8 minor;
UINT8 last;
UINT16 bugfix;
);
PACKED_STRUCT( TripletCahnnel_t,
UINT8 firstChannelNumber;
UINT8 numberOfChannels;
UINT8 maxTxPowerLevel;
);
PACKED_STRUCT( IpAddress_t,
UINT8 addr[IP_ADDR_LEN];
);
PACKED_STRUCT( informationElementHeader_t,
UINT8 eleId;
UINT8 eleLen;
);
PACKED_STRUCT( informationElement_t,
informationElementHeader_t hdr;
UINT8 info[MAX_INFO_ELEMENT_LEN];
);
PACKED_STRUCT( countryIE_t,
UINT8 CountryString[COUNTRY_STRING_LEN];
TripletCahnnel_t tripletChannels[NUM_OF_MAX_TRIPLET_CHANNEL];
);
/* Struct retrieved from NVS */
typedef struct
{
UINT8 uDbm[NUM_SUB_BANDS_FOR_POWER_TABLE][NUM_POWER_LEVELS];
} powerLevelTable_t;
PACKED_STRUCT( SoftGeminiParam_t,
UINT32 wlanRxMinRateToRespectBtHp; /* Integer rate number. Note that Fw gets it in Index rate */
UINT16 btHpMaxTime; /* the maximum length of time the BT HP will be respected*/
UINT16 wlanHpMaxTime; /* the maximum length of time the WLAN HP will be respected*/
UINT16 senseDisableTimer; /* the length of time when working in SENSE mode that the BT needs to be inactive in order to DISABLE the SG*/
UINT16 protectiveRxTimeBeforeBtHp;
UINT16 protectiveTxTimeBeforeBtHp;
UINT16 protectiveRxTimeBeforeBtHpFastAp; /*new range: 10-20000 default: 1500*/
UINT16 protectiveTxTimeBeforeBtHpFastAp; /*new range: 10-20000 default: 3000*/
UINT16 protectiveWlanCycleTimeForFastAp; /*new range: 2000-65535 default: 8700*/
UINT16 btAntiStarvationPeriod; /* 0 - 15000Msec */
UINT16 timeoutNextBtLpPacket;
UINT16 wakeUpTimeBeforeBeacon;
UINT16 hpdmMaxGuardTime; /* 0-50000 */
UINT16 timeoutNextWlanPacket;
UINT8 sgAntennaType;
UINT8 signalingType;
UINT8 afhLeverageOn; /* specifies whether to use the AFH information from the BT */
UINT8 numberQuietCycle;
UINT8 maxNumCts;
UINT8 numberOfWlanPackets;
UINT8 numberOfBtPackets;
UINT8 numberOfMissedRxForAvalancheTrigger; /*new range: 1-255 default: 5*/
UINT8 wlanElpHpSupport; /* new range: 0-1 default: 1*/
UINT8 btAntiStarvationNumberOfCyclesWithinThePeriod; /* 0 - 15 Cycles */
UINT8 ackModeDuringBtLpInDualAnt;
UINT8 allowPaSdToggleDuringBtActivityEnable;
UINT8 sgAutoModeNoCts;
UINT8 numOfBtHpRespectedReq;
); /* Parameters directly to FW */
PACKED_STRUCT( interogateCmdHdr_t,
UINT16 id;
UINT16 len;
);
/* Struct for retrieving powerLevelTable_t with interrogate IE */
typedef struct
{
interogateCmdHdr_t tPowerLevelResCmdHdr;
powerLevelTable_t tTable;
} powerLevelTableInterrogate_t;
typedef struct
{
interogateCmdHdr_t noiseHistResCmdHdr;
UINT32 counters[NUM_OF_NOISE_HISTOGRAM_COUNTERS];
UINT32 numOfLostCycles;
UINT32 numOfTxHwGenLostCycles;
UINT32 numOfRxLostCycles;
} noiseHistogramResults_t;
/*
* interogateCmdCBParams_t:
* Note that this structure is used by the GWSI
* both for setting (writing to the device) and
* for retreiving (Reading from the device),
* while being called with a completion CB
*/
typedef struct
{
void* CB_Func; /* Completion CB function*/
TI_HANDLE CB_handle; /* CB handle*/
UINT8* CB_buf; /* Buffer contains the content to be written or the retrieved content*/
} interogateCmdCBParams_t;
typedef struct
{
void* CB_Func;
TI_HANDLE CB_handle;
UINT8* CB_buf;
} configureCmdCBParams_t;
PACKED_STRUCT( securityKeys_t,
keyType_e keyType; /* key type (WEP, TKIP etc.) */
UINT32 encLen;
UINT8 encKey[MAX_KEY_LEN];
UINT8 micRxKey[MAX_KEY_LEN];
UINT8 micTxKey[MAX_KEY_LEN];
UINT32 keyIndex; /* id=0 is broadcast key */
macAddress_t macAddress;
UINT8 keyRsc[KEY_RSC_LEN];
);
typedef struct
{
UINT8 queueID;
UINT8 channelType;
UINT8 tsid;
UINT32 dot11EDCATableMSDULifeTime;
UINT8 psScheme;
UINT8 ackPolicy;
UINT32 APSDConf[2];
} queueTrafficParams_t;
typedef struct
{
UINT8 ac;
UINT8 cwMin;
UINT16 cwMax;
UINT8 aifsn;
UINT16 txopLimit;
}acQosParams_t;
PACKED_STRUCT( rxTimeOut_t,
UINT16 psPoll;
UINT16 UPSD;
);
PACKED_STRUCT( QOS_AC_IE_ParametersRecord_t,
UINT8 ACI_AIFSN;
UINT8 ECWmin_ECWmax;
UINT16 TXOPLimit;
);
PACKED_STRUCT( ACParameters_t,
QOS_AC_IE_ParametersRecord_t ACBEParametersRecord;
QOS_AC_IE_ParametersRecord_t ACBKParametersRecord;
QOS_AC_IE_ParametersRecord_t ACVIParametersRecord;
QOS_AC_IE_ParametersRecord_t ACVOParametersRecord;
);
typedef struct{
UINT8 PsMode; /* power save mode. */
UINT16 TxQueueSize;
UINT8 QueueIndex;
qOvFlowPolicy_e QueueOvFlowPolicy;
UINT8 ackPolicy;
UINT32 MsduLifeTime;
}acTrfcCtrl_t;
typedef struct{
headerConvetMode_e headerConverMode; /* header converting mode */
BOOL convertTagZeroFrames; /* flag for converting zero tags */
trafficAdmState_e admissionState; /* AC admission state */
admissionState_e admissionRequired; /* AC admission is mandatory. */
acTrfcType_e tag_ToAcClsfrTable[MAX_NUM_OF_802_1d_TAGS]; /* tag to AC classification */
}qosParams_t;
typedef struct{
acTrfcCtrl_t acTrfcCtrl;
qosParams_t qosParams;
UINT8 *tsrsArr;
UINT8 tsrsArrLen;
UINT8 acID;
}txDataQosParams_t;
typedef struct{
UINT8 voiceTspecConfigure;
UINT8 videoTspecConfigure;
}TspecConfigure_t;
/*************************************/
/* TNETW Driver init table. */
/*************************************/
PACKED_STRUCT(whalCtrl_tx_Queue_t,
UINT8 numDesc;
UINT8 priority;
);
PACKED_STRUCT(whalCtrl_init_t,
UINT8 hwAccessMethod;
UINT8 maxSitesFragCollect;
UINT8 packetDetectionThreshold;
UINT32 blockSize;
UINT8 rxDescNum;
UINT8 txDescNum;
UINT32 nullTemplateSize;
UINT32 beaconTemplateSize;
UINT32 probeRequestTemplateSize;
UINT32 probeResponseTemplateSize;
UINT32 PsPollTemplateSize;
UINT32 qosNullDataTemplateSize;
UINT32 tddRadioCalTimout;
UINT32 CrtRadioCalTimout;
int UseMboxInterrupt;
int UseTxDataInterrupt;
UINT32 TraceBufferSize;
BOOLEAN bDoPrint;
UINT8 StaMacAddress[MAC_ADDR_LEN];
UINT8 UsePlcpHeader;
UINT8 numTxQueues;
whalCtrl_tx_Queue_t tx_attrib_queue[MAX_NUM_OF_TX_QUEUES];
BOOL TxFlashEnable;
UINT8 rxMemBlkNumber;
UINT8 txMinMemBlkNumber;
UINT16 txCompleteTimeout;
UINT8 txCompleteThreshold;
UINT8 TxBlocksHighPercentPerAc[MAX_NUM_OF_AC];
UINT8 TxBlocksLowPercentPerAc[MAX_NUM_OF_AC];
UINT16 BeaconRxTimeout;
UINT16 BroadcastRxTimeout;
UINT8 RxBroadcastInPs;
UINT8 ConsecutivePsPollDeliveryFailureThreshold;
);
PACKED_STRUCT(halCtrlConfigParams_t,
UINT8 halCtrlCalibrationChannel2_4;
UINT8 halCtrlCalibrationChannel5_0;
UINT16 halCtrlRtsThreshold;
UINT16 halCtrlFragThreshold;
UINT32 halCtrlMaxTxMsduLifetime;
UINT32 halCtrlMaxRxMsduLifetime;
UINT8 halCtrlRateFallbackRetry;
UINT16 halCtrlListenInterval;
BOOL halCtrlEnable4x;
txAntenna_e halCtrlTxAntenna;
rxAntenna_e halCtrlRxAntenna;
UINT8 halCtrlMacClock;
UINT8 halCtrlArmClock;
BOOL halCtrlRxEnergyDetection;
BOOL halCtrlTxEnergyDetection;
BOOL halCtrlEepromLessEnable;
UINT16 halCtrlBcnRxTime;
BOOL halCtrlRxDisableBroadcast;
BOOL halCtrlRecoveryEnable;
BOOL halCtrlFirmwareDebug;
/* hardware ACI parameters */
UINT8 halCtrlACIMode;
UINT8 halCtrlInputCCA;
UINT8 halCtrlQualifiedCCA;
UINT8 halCtrlStompForRx;
UINT8 halCtrlStompForTx;
UINT8 halCtrlTxCCA;
rxTimeOut_t rxTimeOut;
UINT8 halCtrlTxCompleteThreshold;
BOOL WiFiWmmPS;
);
typedef struct
{
UINT16 gpioBitNumForRadioDisableFeature;
}radioDisableParams_t;
/* New Power*/
PACKED_STRUCT(PowerSrvInitParams_t,
/* powerMgmtConfig IE */
UINT8 numNullPktRetries;
UINT8 hangOverPeriod;
);
PACKED_STRUCT( scanSrvInitParams_t,
UINT32 numberOfNoScanCompleteToRecovery;
UINT32 uTriggeredScanTimeOut; /* i.e. split scan */
);
PACKED_STRUCT(reportInitParams_t,
UINT8 SeverityTable[WLAN_MAX_SEVERITIES];
UINT8 ModuleTable[WLAN_MAX_LOG_MODULES];
);
PACKED_STRUCT(beaconFilterParams_t,
UINT8 desiredState;
UINT8 currentState;
UINT8 numOfStored;
UINT8 IETable[BEACON_FILTER_IE_TABLE_MAX_SIZE];
UINT8 numOfElements;
UINT8 IETableSize;
);
PACKED_STRUCT(arpIpFilterParams_t,
UINT8 isFilterEnabled;
IpAddress_t arpIpInitParams;
);
PACKED_STRUCT(macAddrFilterParams_t,
UINT8 isFilterEnabled;
UINT8 numOfMacAddresses;
macAddress_t macAddrTable[MAX_MULTICAST_GROUP_ADDRS];
);
PACKED_STRUCT(txXferInitParams_t,
/* Duration in which HW buffer is full until recovery is triggered */
UINT32 timeToTxStuckMs;
);
PACKED_STRUCT(macPreambleParams_t,
UINT8 earlyWakeUp;
);
/*
* TnetwDrv_InitParams_t:
* This structure encapsulates the initialization data required by the TnetwDrv layer
*/
PACKED_STRUCT(TnetwDrv_InitParams_t,
whalCtrl_init_t whalCtrl_init;
halCtrlConfigParams_t halCtrlConfigParams;
reportInitParams_t reportParams;
PowerSrvInitParams_t PowerSrvInitParams;
scanSrvInitParams_t scanSrvInitParams;
arpIpFilterParams_t arpIpFilterParams;
macAddrFilterParams_t macAddrFilterParams;
beaconFilterParams_t beaconFilterParams;
txXferInitParams_t txXferInitParams;
macPreambleParams_t macPreambleParams;
);
/* PLT*/
typedef struct
{
UINT32 FCSErrorCount; /* increment when an FCS error is detected in a received MPDU*/
UINT32 TotalFrameCount;/* increment for each packet.*/
UINT32 PLCPErrorCount; /* increment when an PLCP error is detected in a received MPDU*/
UINT32 SeqNumMissCount; /* Increment when an sequence number of arrived packet is not in order */
UINT32 SeqNumMissCountRef; /* holds the reference value for seqNumMissCount test start */
}PltRxPer_t;
typedef struct
{
UINT32 chID; /* Channel number */
UINT32 rate; /* index of the transmit */
UINT32 InterPacketDelay;/*(ms) */
UINT32 NumOfFrames;
UINT32 aPacketLength;
UINT32 aSeqNumMode; /* fixed / incremented */
macAddress_t aPeerMacAddr;
UINT8 preamble; /* {PREAMBLE_LONG | PREAMBLE_SHORT } */
UINT8 band; /* {PBCC_MODULATION_MASK |OFDM_MODULATION_MASK } */
UINT8 mode; /* {AUTO_SEQ_NUMBER | RANDOM_DATA | ZOZO_DATA} */
UINT8 aPadding[3];
}PltTxContinues_t;
/* ChannelBand_t - */
/* This structure holds the parameters for TX carrier test and radio tune*/
typedef struct
{
UINT32 channel; /* Channel number*/
UINT32 band; /* Band */
} ChannelBand_t;
/* PLT - MIBs structures */
/* TMIB - */
/* Specifies the type of a MIB element */
typedef enum
{
PLT_MIB_dot11StationId = 0x1001,
PLT_MIB_dot11MaxReceiveLifetime,
PLT_MIB_dot11SlotTime,
PLT_MIB_dot11GroupAddressesTable,
PLT_MIB_dot11WepDefaultKeyId,
PLT_MIB_dot11CurrentTxPowerLevel,
PLT_MIB_dot11RTSThreshold,
PLT_MIB_ctsToSelf = 0x1101,
PLT_MIB_arpIpAddressesTable,
PLT_MIB_templateFrame,
PLT_MIB_rxFilter,
PLT_MIB_beaconFilterIETable,
PLT_MIB_beaconFilterEnable,
PLT_MIB_sleepMode,
PLT_MIB_wlanWakeUpInterval,
PLT_MIB_beaconLostCount,
PLT_MIB_rcpiThreshold,
PLT_MIB_statisticsTable,
PLT_MIB_ibssPsConfig,
PLT_MIB_txRatePolicy,
PLT_MIB_countersTable,
PLT_MIB_btCoexsitenceMode,
PLT_MIB_btCoexistenceParameters
} PLT_MIB_e;
#define PLT_MAX_MULTICAST_GROUP_ADDRS 8
typedef struct
{
macAddress_t GroupTable[PLT_MAX_MULTICAST_GROUP_ADDRS];
tiUINT8 bFilteringEnable;
tiUINT8 nNumberOfAddresses;
}PLT_MIB_GroupAdressTable_t;
typedef struct
{
tiUINT32 FilteringEnable;
UCHAR addr[IP_V4_ADDR_LEN];
}PLT_MIB_ArpIpAddressesTable_t;
/* TTemplateType - */
/* Specifies the type of a templateFrame */
typedef enum
{ /* Frame type: */
PLT_TEMPLATE_TYPE_BEACON, /* 0 for beacon template, */
PLT_TEMPLATE_TYPE_PROBE_REQUEST, /* 1 for probe request template,*/
PLT_TEMPLATE_TYPE_NULL_FRAME, /* 2 for NULL data frame */
PLT_TEMPLATE_TYPE_PROBE_RESPONSE, /* 3 for probe response frame */
PLT_TEMPLATE_TYPE_QOS_NULL_FRAME, /* 4 for QOS NULL data frame */
PLT_TEMPLATE_TYPE_PS_POLL, /* 5 for PS-Poll frame */
} PLT_MIB_TemplateType_t;
#define PLT_MIB_TEMPLATE_DATA_MAX_LEN 256
typedef struct
{
PLT_MIB_TemplateType_t FrameType;
tiUINT32 Rate;
tiUINT16 Length;
tiUINT8 Data[PLT_MIB_TEMPLATE_DATA_MAX_LEN];
}PLT_TemplateFrame_t;
typedef struct
{
tiUINT32 WakeUpInterval;
tiUINT8 ListenInterval; /* Listen interval in unit of the beacon/DTIM */
}PLT_MIB_WlanWakeUpInterval_t;
typedef struct
{
tiUINT32 PLCPErrorCount;
tiUINT32 FCSErrorCount;
}PLT_MIB_CounterTable_t;
/*the max table sized is : ( number of 221 * 8 bytes ) + ( non-221 * 2 bytes )
Must be synchronized with the size of ACX defined in public_infoele.h interface
with the FW
*/
#define PLT_MIB_MAX_SIZE_OF_IE_TABLE 112
/* NOTE: struct is only meant to be used as a pointer reference to an actual*/
/* buffer. Table size is not a constant and is derived from the buffer*/
/* size given with the WriteMIB command or readMIBComplete event */
typedef struct
{
UINT8 iNumberOfIEs; /* number of information elements in table */
UINT8 iIETable[PLT_MIB_MAX_SIZE_OF_IE_TABLE];
}PLT_SBeaconFilterIETable_t;
typedef union
{
macAddress_t StationId;
tiUINT32 MaxReceiveLifeTime;
UINT32 SlotTime;
PLT_MIB_GroupAdressTable_t GroupAddressTable;
tiUINT8 WepDefaultKeyId;
tiUINT8 PowerLevel;
tiUINT16 RTSThreshold;
tiUINT32 CTSToSelfEnable;
PLT_MIB_ArpIpAddressesTable_t ArpIpAddressesTable;
PLT_TemplateFrame_t TemplateFrame;
tiUINT8 RxFilter;
PLT_MIB_WlanWakeUpInterval_t WlanWakeUpInterval;
PLT_MIB_CounterTable_t CounterTable;
PLT_SBeaconFilterIETable_t BeaconFilter;
txRatePolicy_t txRatePolicy;
}PLT_MIB_data_u;
typedef struct{
PLT_MIB_e aMib;
UINT32 Length;
PLT_MIB_data_u aData;
}PLT_MIB_t;
#endif /* __COMMON_TYPES_H__ */