/* * 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__ */