1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * siteHash.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 siteHash.h
35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  \brief Hash & site table internal header file
36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  \see siteHash.c
38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/***************************************************************************/
41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*                                                                          */
42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*    MODULE:   siteHash.h                                                  */
43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*    PURPOSE:  Hash & site table internal header file                      */
44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*                                                                          */
45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/***************************************************************************/
46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef __SITE_MGR_H__
47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define __SITE_MGR_H__
48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "tidef.h"
50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "paramOut.h"
51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "802_11Defs.h"
52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "DataCtrl_Api.h"
53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "scanResultTable.h"
54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MIN_TX_SESSION_COUNT    1
56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAX_TX_SESSION_COUNT    7
57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* A site entry contains all the site attribute received in beacon and probes
59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    and data used to manage the site table and hash table */
60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef TSiteEntry siteEntry_t;
61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct
63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8           numOfSites;
65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8           maxNumOfSites;
66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    siteEntry_t        siteTable[MAX_SITES_BG_BAND];
67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}siteTablesParams_t;
68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* This struct is seperated from the above struct (siteTablesParams_t) for memory optimizations */
70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct
71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8           numOfSites;
73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8           maxNumOfSites;
74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    siteEntry_t        siteTable[MAX_SITES_A_BAND];
75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt}siteTablesParamsBandA_t;
76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Ths following structure is used to manage the sites */
78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct
79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    siteTablesParamsBandA_t   dot11A_sitesTables;
81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    siteTablesParams_t        dot11BG_sitesTables;
82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    siteTablesParams_t        *pCurrentSiteTable;
83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    siteEntry_t               *pPrimarySite;
84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    siteEntry_t               *pPrevPrimarySite;
85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} sitesMgmtParams_t;
86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Site manager handle */
89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct
90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    siteMgrInitParams_t *pDesiredParams;
92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    sitesMgmtParams_t   *pSitesMgmtParams;
93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hConn;
95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hSmeSm;
96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hCtrlData;
97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hRxData;
98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hTxCtrl;
99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hRsn;
100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hAuth;
101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hAssoc;
102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hRegulatoryDomain;
103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hMeasurementMgr;
104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hTWD;
105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hMlmeSm;
106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hReport;
107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hOs;
108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hXCCMngr;
109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hApConn;
110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hCurrBss;
111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hQosMngr;
112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hPowerMgr;
113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hEvHandler;
114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hScr;
115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hStaCap;
116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32           beaconSentCount;
118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32           rxPacketsCount;
119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32           txPacketsCount;
120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT16           txSessionCount;     /* Current Tx-Session index as configured to FW in last Join command. */
121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    EModulationType     chosenModulation;
123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    EModulationType     currentDataModulation;
124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    EDot11Mode          siteMgrOperationalMode;
125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    ERadioBand          radioBand;
126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    ERadioBand          prevRadioBand;
127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TMacAddr            ibssBssid;
129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_BOOL             bPostponedDisconnectInProgress;
130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_BOOL             isAgingEnable;
131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /* TX Power Adjust */
133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32           siteMgrTxPowerCheckTime;
134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_BOOL             siteMgrTxPowerEnabled;
135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TBeaconFilterInitParams    beaconFilterParams; /*contains the desired state*/
137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /*HW Request from Power Ctrl */
140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32           DriverTestId;
141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
142a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /* Wifi Simple Config */
143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TIWLN_SIMPLE_CONFIG_MODE  siteMgrWSCCurrMode; /* indicates the current WiFi Simple Config mode */
1443bb9a92880f8cda8c242707ad02077f13b009632Dmitry Shmidt    TI_UINT32           uWscIeSize; 			  /* Simple Config IE actual size (the part after the OUI) */
145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    char                siteMgrWSCProbeReqParams[DOT11_WSC_PROBE_REQ_MAX_LENGTH]; /* Contains the params to be used in the ProbeReq - WSC IE */
146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8            includeWSCinProbeReq;
148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} siteMgr_t;
149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
151a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
152a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtsiteEntry_t *findAndInsertSiteEntry(siteMgr_t       *pSiteMgr,
153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    TMacAddr    *bssid,
154a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                    ERadioBand     band);
155a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
156a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtsiteEntry_t *findSiteEntry(siteMgr_t        *pSiteMgr,
157a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                           TMacAddr     *bssid);
158a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid removeSiteEntry(siteMgr_t *pSiteMgr, siteTablesParams_t *pCurrSiteTblParams,
160a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                     siteEntry_t  *hashPtr);
161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
162a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS removeEldestSite(siteMgr_t *pSiteMgr);
163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
164a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS buildProbeReqTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate, TSsid *pSsid, ERadioBand radioBand);
165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
166a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS buildProbeRspTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate);
167a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
168a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS buildNullTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate);
169a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
170a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS buildArpRspTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate, TIpAddr staIp);
171a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
172a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS buildDisconnTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate);
173a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
174a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS buildPsPollTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate);
175a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
176a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS buildQosNullDataTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate, TI_UINT8 userPriority);
177a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
178a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid setDefaultProbeReqTemplate (TI_HANDLE	hSiteMgr);
179a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
180a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif /* __SITE_MGR_H__ */
181