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