| /* |
| * scanResultTable.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 scanResultTable.h |
| * \brief declarations for a table holding scan results, by BSSID |
| * |
| * \see scanResultTable.c |
| */ |
| |
| |
| #ifndef __SCAN_RESULT_TABLE_H__ |
| #define __SCAN_RESULT_TABLE_H__ |
| |
| #include "osTIType.h" |
| #include "tidef.h" |
| #include "ScanCncn.h" |
| #include "DrvMainModules.h" |
| |
| /* site types */ |
| typedef enum |
| { |
| SITE_PRIMARY = 0, |
| SITE_SELF = 1, |
| SITE_REGULAR = 2, |
| SITE_NULL = 3 |
| } siteType_e; |
| |
| typedef struct |
| { |
| /* The following fields are used for entry management at the SiteMng */ |
| TI_UINT8 index; |
| siteType_e siteType; |
| TI_UINT32 localTimeStamp; |
| /* end of fields are used for entry management at the SiteMng */ |
| |
| TI_BOOL bConsideredForSelect; |
| ERadioBand eBand; |
| TI_UINT8 tsfTimeStamp[ TIME_STAMP_LEN ]; |
| |
| /* The following fields are used for the selection */ |
| TI_BOOL probeRecv; |
| TI_BOOL beaconRecv; |
| TMacAddr bssid; |
| TSsid ssid; |
| ScanBssType_e bssType; |
| rateMask_t rateMask; |
| ERate maxBasicRate; |
| ERate maxActiveRate; |
| EModulationType beaconModulation; |
| EModulationType probeModulation; |
| EPreamble currentPreambleType; |
| EPreamble preambleAssRspCap; |
| EPreamble barkerPreambleType; |
| ESlotTime currentSlotTime; |
| ESlotTime newSlotTime; |
| TI_BOOL useProtection; |
| TI_BOOL NonErpPresent; |
| TI_UINT8 channel; |
| TI_BOOL privacy; |
| TI_BOOL agility; |
| TI_UINT16 capabilities; |
| TI_UINT16 beaconInterval; |
| TI_UINT8 dtimPeriod; |
| TI_INT8 snr; |
| ERate rxRate; |
| TI_INT32 rssi; |
| |
| /* HT capabilites */ |
| Tdot11HtCapabilitiesUnparse tHtCapabilities; |
| /* HT information */ |
| TI_BOOL bHtInfoUpdate; |
| Tdot11HtInformationUnparse tHtInformation; |
| |
| /* QOS */ |
| TI_BOOL WMESupported; |
| dot11_ACParameters_t WMEParameters; |
| TI_UINT8 lastWMEParameterCnt; |
| |
| /* Power Constraint */ |
| TI_UINT8 powerConstraint; |
| |
| /* AP Tx Power obtained from TPC Report */ |
| TI_UINT8 APTxPower; |
| |
| /* UPSD */ |
| TI_BOOL APSDSupport; |
| |
| /* WiFi Simple Config */ |
| TIWLN_SIMPLE_CONFIG_MODE WSCSiteMode; /* indicates the current WiFi Simple Config mode of the specific site*/ |
| |
| TI_UINT16 atimWindow; |
| dot11_RSN_t pRsnIe[MAX_RSN_IE]; |
| TI_UINT8 rsnIeLen; |
| |
| /* 80211h beacon - Switch Channel IE included */ |
| TI_BOOL bChannelSwitchAnnoncIEFound; |
| |
| TI_UINT8 pUnknownIe[MAX_BEACON_BODY_LENGTH]; |
| TI_UINT16 unknownIeLen; |
| |
| mgmtStatus_e failStatus; |
| TI_BOOL prioritySite; |
| TI_UINT8 probeRespBuffer[ MAX_BEACON_BODY_LENGTH ]; |
| TI_UINT16 probeRespLength; |
| TI_UINT8 beaconBuffer[ MAX_BEACON_BODY_LENGTH ]; |
| TI_UINT16 beaconLength; |
| |
| } TSiteEntry; |
| |
| |
| typedef enum |
| { |
| SCAN_RESULT_TABLE_DONT_CLEAR, |
| SCAN_RESULT_TABLE_CLEAR |
| |
| } EScanResultTableClear; |
| |
| TI_HANDLE scanResultTable_Create (TI_HANDLE hOS, TI_UINT32 uEntriesNumber); |
| void scanResultTable_Init (TI_HANDLE hScanResultTable, TStadHandlesList *pStadHandles, EScanResultTableClear eClearTable); |
| void scanResultTable_Destroy (TI_HANDLE hScanResultTable); |
| TI_STATUS scanResultTable_UpdateEntry (TI_HANDLE hScanResultTable, TMacAddr *pBssid, TScanFrameInfo* pFrame); |
| void scanResultTable_SetStableState (TI_HANDLE hScanResultTable); |
| TSiteEntry *scanResultTable_GetFirst (TI_HANDLE hScanResultTable); |
| TSiteEntry *scanResultTable_GetNext (TI_HANDLE hScanResultTable); |
| TSiteEntry *scanResultTable_GetBySsidBssidPair (TI_HANDLE hScanResultTable, TSsid *pSsid, TMacAddr *pBssid); |
| TI_UINT32 scanResultTable_CalculateBssidListSize (TI_HANDLE hScanResultTable, TI_BOOL bAllVarIes); |
| TI_UINT32 scanResultTable_GetNumOfBSSIDInTheList (TI_HANDLE hScanResultTable); |
| TI_STATUS scanResultTable_GetBssidList (TI_HANDLE hScanResultTable, OS_802_11_BSSID_LIST_EX *pBssidList, |
| TI_UINT32 *pLength, TI_BOOL bAllVarIes); |
| TI_STATUS scanResultTable_GetBssidSupportedRatesList (TI_HANDLE hScanResultTable, OS_802_11_N_RATES *pRateList, TI_UINT32 *pLength); |
| |
| void scanResultTable_PerformAging(TI_HANDLE hScanResultTable); |
| void scanResultTable_SetSraThreshold(TI_HANDLE hScanResultTable, TI_UINT32 uSraThreshold); |
| #endif /* __SCAN_RESULT_TABLE_H__ */ |
| |