| /* |
| * STADExternalIf.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. |
| */ |
| |
| |
| /****************************************************************************/ |
| /* */ |
| /* MODULE: TiWlnIf.h */ |
| /* PURPOSE: */ |
| /* */ |
| /****************************************************************************/ |
| #ifndef __TIWLNIF_NEW_H__ |
| #define __TIWLNIF_NEW_H__ |
| |
| /** \file STADExternalIf.h |
| * \brief STAD External APIs |
| */ |
| |
| #include "tidef.h" |
| #include "report.h" |
| #include "osDot11.h" |
| #include "TI_IPC_Api.h" |
| #include "bssTypes.h" |
| #include "roamingMngrTypes.h" |
| #include "version.h" |
| #include "privateCmd.h" |
| #include "CmdInterfaceCodes.h" |
| #include "coreDefaultParams.h" |
| #include "scanMngrTypes.h" |
| #include "TWDriver.h" |
| |
| /***********/ |
| /* defines */ |
| /***********/ |
| |
| #define NUM_OF_CONFIG_PARAMS_IN_SG 2 |
| #define NUM_OF_STATUS_PARAMS_IN_SG 11 |
| #define NUM_OF_COEX_ACTIVITY_PARAMS_IN_SG 6 |
| #define NUM_OF_RATE_MNGT_PARAMS_MAX 14 |
| #define SET_SSID_WITHOUT_SUPPL 0x8000 |
| |
| #define TX_RETRY_HISTOGRAM_SIZE 16 |
| |
| #define RX_DATA_FILTER_MAX_MASK_SIZE 8 |
| #define RX_DATA_FILTER_MAX_PATTERN_SIZE 64 |
| |
| #define KEEP_ALIVE_TEMPLATE_MAX_LENGTH 64 |
| |
| #define KEEP_ALIVE_MAX_USER_MESSAGES 2 |
| |
| |
| /*********************/ |
| /* enumeration types */ |
| /*********************/ |
| |
| /** \enum TxDelayRanges_e |
| * \brief TX Delay Ranges |
| * |
| * \par Description |
| * The Tx path delay histogram (host + MAC)ranges in msec |
| * Used as indexes in tx Delay Histogram Ranges (including Start & End of ranges) Table |
| * |
| * \sa |
| */ |
| typedef enum |
| { |
| TX_DELAY_RANGE_MIN = 0, /**< */ |
| |
| TX_DELAY_RANGE_0_TO_1 = 0, /**< */ |
| TX_DELAY_RANGE_1_TO_10 = 1, /**< */ |
| TX_DELAY_RANGE_10_TO_20 = 2, /**< */ |
| TX_DELAY_RANGE_20_TO_40 = 3, /**< */ |
| TX_DELAY_RANGE_40_TO_60 = 4, /**< */ |
| TX_DELAY_RANGE_60_TO_80 = 5, /**< */ |
| TX_DELAY_RANGE_80_TO_100 = 6, /**< */ |
| TX_DELAY_RANGE_100_TO_200 = 7, /**< */ |
| TX_DELAY_RANGE_ABOVE_200 = 8, /**< */ |
| |
| TX_DELAY_RANGE_MAX = 8, /**< */ |
| TX_DELAY_RANGES_NUM = 9 /**< */ |
| } TxDelayRanges_e; |
| |
| /** \enum TIWLN_SIMPLE_CONFIG_MODE |
| * \brief TI WLAN Simple Configuration Mode |
| * |
| * \par Description |
| * Used for indicating WiFi Simple Configuration mode |
| * |
| * \sa |
| */ |
| typedef enum |
| { |
| TIWLN_SIMPLE_CONFIG_OFF = 0, /**< Simple Configuration OFF */ |
| TIWLN_SIMPLE_CONFIG_PIN_METHOD, /**< Simple Configuration PIN Method */ |
| TIWLN_SIMPLE_CONFIG_PBC_METHOD /**< Simple Configuration PBC Method */ |
| } TIWLN_SIMPLE_CONFIG_MODE; |
| |
| /** \enum EDraftNumber |
| * \brief Draft Number |
| * |
| * \par Description |
| * Site Manager / Exteranl Rate use draft number |
| * |
| * \sa |
| */ |
| typedef enum |
| { |
| DRAFT_5_AND_EARLIER = 5, /**< */ |
| DRAFT_6_AND_LATER = 6 /**< */ |
| |
| } EDraftNumber; |
| |
| /********************/ |
| /* Structures types */ |
| /********************/ |
| |
| |
| /** \struct TTxDataCounters |
| * \brief TX Data Counters |
| * |
| * \par Description |
| * Tx statistics per Tx-queue |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT32 XmitOk; /**< The number of frames that were transferred to TNET without errors */ |
| TI_UINT32 DirectedBytesXmit; /**< The number of bytes in directed packets that are transmitted without errors */ |
| TI_UINT32 DirectedFramesXmit; /**< The number of directed packets that are transmitted without errors */ |
| TI_UINT32 MulticastBytesXmit; /**< The number of bytes in multicast/functional packets that are transmitted without errors */ |
| TI_UINT32 MulticastFramesXmit; /**< The number of multicast/functional packets that are transmitted without errors */ |
| TI_UINT32 BroadcastBytesXmit; /**< The number of bytes in broadcast packets that are transmitted without errors */ |
| TI_UINT32 BroadcastFramesXmit; /**< The number of broadcast packets that are transmitted without errors */ |
| |
| TI_UINT32 RetryHistogram[ TX_RETRY_HISTOGRAM_SIZE ]; /**< Histogram counting the number of packets xfered with any retry number */ |
| |
| TI_UINT32 RetryFailCounter; /**< Number of packets that failed transmission due to retry number exceeded */ |
| TI_UINT32 TxTimeoutCounter; /**< Number of packets that failed transmission due to lifetime expiry */ |
| TI_UINT32 NoLinkCounter; /**< Number of packets that failed transmission due to link failure */ |
| TI_UINT32 OtherFailCounter; /**< Number of packets that failed transmission due to other reasons */ |
| TI_UINT32 MaxConsecutiveRetryFail;/**< Maximum consecutive packets that failed transmission due to retry limit exceeded */ |
| |
| /* TX path delay statistics */ |
| TI_UINT32 txDelayHistogram[TX_DELAY_RANGES_NUM]; /**< Histogram of Tx path delay (host + MAC) */ |
| TI_UINT32 NumPackets; /**< For average calculation - Total packets counted */ |
| TI_UINT32 SumTotalDelayMs; /**< For average calculation - the sum of packets total delay */ |
| TI_UINT32 SumFWDelayUs; /**< For average calculation - The sum of packets FW delay */ |
| TI_UINT32 SumMacDelayUs; /**< For average calculation - the sum of packets MAC delay */ |
| } TTxDataCounters; |
| |
| /** \struct TIWLN_TX_STATISTICS |
| * \brief TI WLAN TX Statistics |
| * |
| * \par Description |
| * All Tx statistics of all Tx Queues Tx-queue |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TTxDataCounters txCounters[MAX_NUM_OF_AC]; /**< Table which holds Tx statistics of each Tx-queue */ |
| } TIWLN_TX_STATISTICS; |
| |
| /** \struct TDfsChannelRange |
| * \brief DFS Channel Range |
| * |
| * \par Description |
| * Range of Dynamic Frequency Selection Channel |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT16 minDFS_channelNum; /**< Lower limit of DFS Channel Range */ |
| TI_UINT16 maxDFS_channelNum; /**< Higher limit of DFS Channel Range */ |
| } TDfsChannelRange; |
| |
| /** \struct TDebugRegisterReq |
| * \brief Debug Register Request |
| * |
| * \par Description |
| * Used for reading HW register (for debug) |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT32 regSize; /**< Register Size */ |
| TI_UINT32 regAddr; /**< Register Address */ |
| TI_UINT32 regValue; /**< Register value read */ |
| } TDebugRegisterReq; |
| |
| /** \struct TIWLN_REG_RW |
| * \brief TI WLAN Register R/W |
| * |
| * \par Description |
| * Used for writing HW register (for debug) |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT32 regSize; /**< Register Size */ |
| TI_UINT32 regAddr; /**< Register Address */ |
| TI_UINT32 regValue; /**< Register write value */ |
| } TIWLN_REG_RW; |
| |
| /** \struct TCountry |
| * \brief Country Parameters |
| * |
| * \par Description |
| * Parameters of Country Informatino Element |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT8 elementId; /**< Country IE ID */ |
| TI_UINT8 len; /**< Country IE data length */ |
| dot11_countryIE_t countryIE; /**< Country IE (country string and tripple channel) */ |
| } TCountry; |
| |
| /** \struct TRates |
| * \brief Rates Parameters |
| * |
| * \par Description |
| * Site Manager Supported rates parameters |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT8 len; /**< Number of entries in the rates list */ |
| TI_UINT8 ratesString[DOT11_MAX_SUPPORTED_RATES]; /**< Rates List. From each entry - a different bitrate (in bps) can be driven as followed: |
| ((ratesString[i] & 0x7F) * 500000). Bits 1-7 are used for the bitrate and bit 8 is MASK used |
| for indicating if NET Basic |
| */ |
| } TRates; |
| |
| /** \struct TRxDataFilterRequest |
| * \brief RX Data Filter Request |
| * |
| * \par Description |
| * Use for handling RX Data Filter (Add, Remove, parse, usage) |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT8 offset; /**< Pattern Start Offset (0-255) */ |
| TI_UINT8 maskLength; /**< Byte-Mask Length, 1-8 bytes of mask, 0- match all packets */ |
| TI_UINT8 patternLength; /**< Should correspond to the number of asserted bits in the Byte-Mask */ |
| TI_UINT8 mask[RX_DATA_FILTER_MAX_MASK_SIZE]; /**< Byte-Mask */ |
| TI_UINT8 pattern[RX_DATA_FILTER_MAX_PATTERN_SIZE];/**< Data Filter PAttern */ |
| } TRxDataFilterRequest; |
| |
| /** \struct TIWLN_COUNTERS |
| * \brief TI WLAN Counters |
| * |
| * \par Description |
| * Use for handling RX Data Filter (Add, Remove, parse, usage) |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT32 RecvOk; /**< Number of frames that the NIC receives without errors */ |
| TI_UINT32 RecvError; /**< Number of frames that a NIC receives but does not indicate to the protocols due to errors */ |
| TI_UINT32 RecvNoBuffer; /**< Number of frames that the NIC cannot receive due to lack of NIC receive buffer space */ |
| TI_UINT32 DirectedBytesRecv; /**< Number of bytes in directed packets that are received without errors */ |
| TI_UINT32 DirectedFramesRecv; /**< Number of directed packets that are received without errors */ |
| TI_UINT32 MulticastBytesRecv; /**< Number of bytes in multicast/functional packets that are received without errors */ |
| TI_UINT32 MulticastFramesRecv; /**< Number of multicast/functional packets that are received without errors */ |
| TI_UINT32 BroadcastBytesRecv; /**< Number of bytes in broadcast packets that are received without errors. */ |
| TI_UINT32 BroadcastFramesRecv; /**< Number of broadcast packets that are received without errors. */ |
| |
| TI_UINT32 FragmentsRecv; /**< Number of Fragments Received */ |
| TI_UINT32 FrameDuplicates; /**< Number of Farme Duplicates */ |
| TI_UINT32 FcsErrors; /**< Number of frames that a NIC receives but does not indicate to the protocols due to errors */ |
| |
| TI_UINT32 BeaconsXmit; /**< Number of Beacons Sent */ |
| TI_UINT32 BeaconsRecv; /**< Number of Beacons Reveived */ |
| TI_UINT32 AssocRejects; /**< Number of Rejected Assoc. */ |
| TI_UINT32 AssocTimeouts; /**< Number of Assoc. Time Outs */ |
| TI_UINT32 AuthRejects; /**< Number of Authentication rejects */ |
| TI_UINT32 AuthTimeouts; /**< Number of Authentication Time Outs */ |
| |
| } TIWLN_COUNTERS; |
| |
| /** \struct TPowerMgr_PowerMode |
| * \brief Power Mode Parameters |
| * |
| * \par Description |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| PowerMgr_PowerMode_e PowerMode; /**< Power Mode Type */ |
| PowerMgr_Priority_e PowerMngPriority; /**< Power Mode Priority */ |
| } TPowerMgr_PowerMode; |
| |
| /** \struct TWscMode |
| * \brief WSC Mode |
| * |
| * \par Description |
| * This structure is used whenever the WiFi Simple Configuration Mode is modified between ON and OFF. |
| * Upon enabling the Simple Configuration, the user must fill the probeReqWSCIE fields |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TIWLN_SIMPLE_CONFIG_MODE WSCMode; /**< WiFi Simple Configuration mode */ |
| TI_UINT32 uWscIeSize; /**< Simple Config IE actual size (the part after the OUI) */ |
| TI_UINT8 probeReqWSCIE[DOT11_WSC_PROBE_REQ_MAX_LENGTH]; /**< Buffer which holds the parameters of ProbeReq - WSC IE */ |
| } TWscMode; |
| |
| /** \struct TKeepAliveTemplate |
| * \brief Keep Alive Template |
| * |
| * \par Description |
| * Used for Add/Remove to/from FW Keep Alive Configuration (Parameters & Template) |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TKeepAliveParams keepAliveParams; /**< Keep Alive Parameters */ |
| TI_UINT8 msgBuffer[ KEEP_ALIVE_TEMPLATE_MAX_LENGTH ]; /**< Buffer which holds the Keep Alive Template */ |
| TI_UINT32 msgBufferLength; /**< Length of Keep Alive Template */ |
| |
| } TKeepAliveTemplate; |
| |
| /** \struct TKeepAliveConfig |
| * \brief Keep Alive Configuration |
| * |
| * \par Description |
| * Used for Get/Set Keep Alive Configuration (Parameters & Template) |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT8 enaDisFlag; /**< Indicates if Keep Alive is Enabled/Disabled */ |
| TKeepAliveTemplate templates[ KEEP_ALIVE_MAX_USER_MESSAGES ]; /**< Buffer which holds the maximum Keep Alive Template |
| * possible (according to maximum Keep Alive user messages |
| possible) |
| */ |
| } TKeepAliveConfig; |
| |
| #endif /* __TIWLNIF_H__*/ |