1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* 2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * scanResultTable.h 3a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 43bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. 5a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * All rights reserved. 6a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 7a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Redistribution and use in source and binary forms, with or without 8a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * modification, are permitted provided that the following conditions 9a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * are met: 10a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 11a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * * Redistributions of source code must retain the above copyright 12a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * notice, this list of conditions and the following disclaimer. 13a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * * Redistributions in binary form must reproduce the above copyright 14a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * notice, this list of conditions and the following disclaimer in 15a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * the documentation and/or other materials provided with the 16a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * distribution. 17a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * * Neither the name Texas Instruments nor the names of its 18a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * contributors may be used to endorse or promote products derived 19a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * from this software without specific prior written permission. 20a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 21a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 33a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 34a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \file scanResultTable.h 35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief declarations for a table holding scan results, by BSSID 36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \see scanResultTable.c 38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef __SCAN_RESULT_TABLE_H__ 42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define __SCAN_RESULT_TABLE_H__ 43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "osTIType.h" 45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "tidef.h" 46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "ScanCncn.h" 47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "DrvMainModules.h" 48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* site types */ 50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef enum 51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt SITE_PRIMARY = 0, 53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt SITE_SELF = 1, 54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt SITE_REGULAR = 2, 55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt SITE_NULL = 3 56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} siteType_e; 57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct 59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* The following fields are used for entry management at the SiteMng */ 61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 index; 62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt siteType_e siteType; 63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 localTimeStamp; 64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* end of fields are used for entry management at the SiteMng */ 65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL bConsideredForSelect; 67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ERadioBand eBand; 68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 tsfTimeStamp[ TIME_STAMP_LEN ]; 69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* The following fields are used for the selection */ 71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL probeRecv; 72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL beaconRecv; 73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TMacAddr bssid; 74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TSsid ssid; 75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ScanBssType_e bssType; 76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt rateMask_t rateMask; 77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ERate maxBasicRate; 78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ERate maxActiveRate; 79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt EModulationType beaconModulation; 80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt EModulationType probeModulation; 81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt EPreamble currentPreambleType; 82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt EPreamble preambleAssRspCap; 83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt EPreamble barkerPreambleType; 84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ESlotTime currentSlotTime; 85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ESlotTime newSlotTime; 86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL useProtection; 87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL NonErpPresent; 88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 channel; 89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL privacy; 90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL agility; 91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 capabilities; 92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 beaconInterval; 93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 dtimPeriod; 94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_INT8 snr; 95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ERate rxRate; 96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_INT32 rssi; 97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* HT capabilites */ 99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt Tdot11HtCapabilitiesUnparse tHtCapabilities; 100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* HT information */ 101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL bHtInfoUpdate; 102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt Tdot11HtInformationUnparse tHtInformation; 103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* QOS */ 105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL WMESupported; 106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11_ACParameters_t WMEParameters; 107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 lastWMEParameterCnt; 108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* Power Constraint */ 110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 powerConstraint; 111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* AP Tx Power obtained from TPC Report */ 113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 APTxPower; 114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* UPSD */ 116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL APSDSupport; 117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* WiFi Simple Config */ 119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TIWLN_SIMPLE_CONFIG_MODE WSCSiteMode; /* indicates the current WiFi Simple Config mode of the specific site*/ 120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 atimWindow; 122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt dot11_RSN_t pRsnIe[MAX_RSN_IE]; 123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 rsnIeLen; 124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1253bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt /* 80211h beacon - Switch Channel IE included */ 1263bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt TI_BOOL bChannelSwitchAnnoncIEFound; 1273bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt 128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 pUnknownIe[MAX_BEACON_BODY_LENGTH]; 129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 unknownIeLen; 130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt mgmtStatus_e failStatus; 132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL prioritySite; 133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 probeRespBuffer[ MAX_BEACON_BODY_LENGTH ]; 134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 probeRespLength; 135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 beaconBuffer[ MAX_BEACON_BODY_LENGTH ]; 136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 beaconLength; 137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} TSiteEntry; 139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1413bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidttypedef enum 1423bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt{ 1433bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt SCAN_RESULT_TABLE_DONT_CLEAR, 1443bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt SCAN_RESULT_TABLE_CLEAR 145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1463bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt} EScanResultTableClear; 147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1483bb9a92880f8cda8c242707ad02077f13b009632Dmitry ShmidtTI_HANDLE scanResultTable_Create (TI_HANDLE hOS, TI_UINT32 uEntriesNumber); 1493bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidtvoid scanResultTable_Init (TI_HANDLE hScanResultTable, TStadHandlesList *pStadHandles, EScanResultTableClear eClearTable); 150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid scanResultTable_Destroy (TI_HANDLE hScanResultTable); 151a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS scanResultTable_UpdateEntry (TI_HANDLE hScanResultTable, TMacAddr *pBssid, TScanFrameInfo* pFrame); 152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid scanResultTable_SetStableState (TI_HANDLE hScanResultTable); 153a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTSiteEntry *scanResultTable_GetFirst (TI_HANDLE hScanResultTable); 154a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTSiteEntry *scanResultTable_GetNext (TI_HANDLE hScanResultTable); 155a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTSiteEntry *scanResultTable_GetBySsidBssidPair (TI_HANDLE hScanResultTable, TSsid *pSsid, TMacAddr *pBssid); 156a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_UINT32 scanResultTable_CalculateBssidListSize (TI_HANDLE hScanResultTable, TI_BOOL bAllVarIes); 1573bb9a92880f8cda8c242707ad02077f13b009632Dmitry ShmidtTI_UINT32 scanResultTable_GetNumOfBSSIDInTheList (TI_HANDLE hScanResultTable); 158a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS scanResultTable_GetBssidList (TI_HANDLE hScanResultTable, OS_802_11_BSSID_LIST_EX *pBssidList, 159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 *pLength, TI_BOOL bAllVarIes); 1603bb9a92880f8cda8c242707ad02077f13b009632Dmitry ShmidtTI_STATUS scanResultTable_GetBssidSupportedRatesList (TI_HANDLE hScanResultTable, OS_802_11_N_RATES *pRateList, TI_UINT32 *pLength); 161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 1623bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidtvoid scanResultTable_PerformAging(TI_HANDLE hScanResultTable); 1633bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidtvoid scanResultTable_SetSraThreshold(TI_HANDLE hScanResultTable, TI_UINT32 uSraThreshold); 164a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif /* __SCAN_RESULT_TABLE_H__ */ 165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 166