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