| /* |
| * siteHash.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 siteHash.h |
| * \brief Hash & site table internal header file |
| * |
| * \see siteHash.c |
| */ |
| |
| /***************************************************************************/ |
| /* */ |
| /* MODULE: siteHash.h */ |
| /* PURPOSE: Hash & site table internal header file */ |
| /* */ |
| /***************************************************************************/ |
| #ifndef __SITE_MGR_H__ |
| #define __SITE_MGR_H__ |
| |
| #include "tidef.h" |
| #include "paramOut.h" |
| #include "802_11Defs.h" |
| #include "DataCtrl_Api.h" |
| #include "scanResultTable.h" |
| |
| #define MIN_TX_SESSION_COUNT 1 |
| #define MAX_TX_SESSION_COUNT 7 |
| |
| /* A site entry contains all the site attribute received in beacon and probes |
| and data used to manage the site table and hash table */ |
| typedef TSiteEntry siteEntry_t; |
| |
| typedef struct |
| { |
| TI_UINT8 numOfSites; |
| TI_UINT8 maxNumOfSites; |
| siteEntry_t siteTable[MAX_SITES_BG_BAND]; |
| }siteTablesParams_t; |
| |
| /* This struct is seperated from the above struct (siteTablesParams_t) for memory optimizations */ |
| typedef struct |
| { |
| TI_UINT8 numOfSites; |
| TI_UINT8 maxNumOfSites; |
| siteEntry_t siteTable[MAX_SITES_A_BAND]; |
| }siteTablesParamsBandA_t; |
| |
| /* Ths following structure is used to manage the sites */ |
| typedef struct |
| { |
| siteTablesParamsBandA_t dot11A_sitesTables; |
| siteTablesParams_t dot11BG_sitesTables; |
| siteTablesParams_t *pCurrentSiteTable; |
| siteEntry_t *pPrimarySite; |
| siteEntry_t *pPrevPrimarySite; |
| } sitesMgmtParams_t; |
| |
| |
| /* Site manager handle */ |
| typedef struct |
| { |
| siteMgrInitParams_t *pDesiredParams; |
| sitesMgmtParams_t *pSitesMgmtParams; |
| |
| TI_HANDLE hConn; |
| TI_HANDLE hSmeSm; |
| TI_HANDLE hCtrlData; |
| TI_HANDLE hRxData; |
| TI_HANDLE hTxCtrl; |
| TI_HANDLE hRsn; |
| TI_HANDLE hAuth; |
| TI_HANDLE hAssoc; |
| TI_HANDLE hRegulatoryDomain; |
| TI_HANDLE hMeasurementMgr; |
| TI_HANDLE hTWD; |
| TI_HANDLE hMlmeSm; |
| TI_HANDLE hReport; |
| TI_HANDLE hOs; |
| TI_HANDLE hXCCMngr; |
| TI_HANDLE hApConn; |
| TI_HANDLE hCurrBss; |
| TI_HANDLE hQosMngr; |
| TI_HANDLE hPowerMgr; |
| TI_HANDLE hEvHandler; |
| TI_HANDLE hScr; |
| TI_HANDLE hStaCap; |
| |
| TI_UINT32 beaconSentCount; |
| TI_UINT32 rxPacketsCount; |
| TI_UINT32 txPacketsCount; |
| TI_UINT16 txSessionCount; /* Current Tx-Session index as configured to FW in last Join command. */ |
| |
| EModulationType chosenModulation; |
| EModulationType currentDataModulation; |
| EDot11Mode siteMgrOperationalMode; |
| ERadioBand radioBand; |
| ERadioBand prevRadioBand; |
| |
| TMacAddr ibssBssid; |
| TI_BOOL bPostponedDisconnectInProgress; |
| TI_BOOL isAgingEnable; |
| |
| /* TX Power Adjust */ |
| TI_UINT32 siteMgrTxPowerCheckTime; |
| TI_BOOL siteMgrTxPowerEnabled; |
| |
| TBeaconFilterInitParams beaconFilterParams; /*contains the desired state*/ |
| |
| |
| /*HW Request from Power Ctrl */ |
| TI_UINT32 DriverTestId; |
| |
| /* Wifi Simple Config */ |
| TIWLN_SIMPLE_CONFIG_MODE siteMgrWSCCurrMode; /* indicates the current WiFi Simple Config mode */ |
| TI_UINT32 uWscIeSize; /* Simple Config IE actual size (the part after the OUI) */ |
| char siteMgrWSCProbeReqParams[DOT11_WSC_PROBE_REQ_MAX_LENGTH]; /* Contains the params to be used in the ProbeReq - WSC IE */ |
| |
| TI_UINT8 includeWSCinProbeReq; |
| } siteMgr_t; |
| |
| |
| |
| siteEntry_t *findAndInsertSiteEntry(siteMgr_t *pSiteMgr, |
| TMacAddr *bssid, |
| ERadioBand band); |
| |
| siteEntry_t *findSiteEntry(siteMgr_t *pSiteMgr, |
| TMacAddr *bssid); |
| |
| void removeSiteEntry(siteMgr_t *pSiteMgr, siteTablesParams_t *pCurrSiteTblParams, |
| siteEntry_t *hashPtr); |
| |
| TI_STATUS removeEldestSite(siteMgr_t *pSiteMgr); |
| |
| TI_STATUS buildProbeReqTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate, TSsid *pSsid, ERadioBand radioBand); |
| |
| TI_STATUS buildProbeRspTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate); |
| |
| TI_STATUS buildNullTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate); |
| |
| TI_STATUS buildArpRspTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate, TIpAddr staIp); |
| |
| TI_STATUS buildDisconnTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate); |
| |
| TI_STATUS buildPsPollTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate); |
| |
| TI_STATUS buildQosNullDataTemplate(siteMgr_t *pSiteMgr, TSetTemplate *pTemplate, TI_UINT8 userPriority); |
| |
| void setDefaultProbeReqTemplate (TI_HANDLE hSiteMgr); |
| |
| #endif /* __SITE_MGR_H__ */ |