1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* 2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * mlmeSm.h 3a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 4a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Copyright(c) 1998 - 2009 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 mlmeSm.h 35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief 802.11 MLME SM 36a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * 37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \see mlmeSm.c 38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */ 39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/***************************************************************************/ 42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* */ 43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* MODULE: mlmeSm.h */ 44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* PURPOSE: 802.11 MLME SM */ 45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* */ 46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/***************************************************************************/ 47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef _MLME_SM_H 49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define _MLME_SM_H 50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "fsm.h" 52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "mlmeApi.h" 53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Constants */ 55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* changed to fit double buffer size - S.G */ 57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*#define MAX_MANAGEMENT_FRAME_BODY_LEN 2312*/ 58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MAX_MANAGEMENT_FRAME_BODY_LEN 1476 59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Enumerations */ 61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* state machine states */ 63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef enum 64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_STATE_IDLE = 0, 66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_STATE_AUTH_WAIT = 1, 67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_STATE_ASSOC_WAIT = 2, 68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_STATE_ASSOC = 3, 69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_NUM_STATES 70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} mlme_smStates_t; 71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* State machine inputs */ 73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef enum 74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_EVENT_START = 0, 76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_EVENT_STOP = 1, 77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_EVENT_AUTH_SUCCESS = 2, 78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_EVENT_AUTH_FAIL = 3, 79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_EVENT_ASSOC_SUCCESS = 4, 80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_EVENT_ASSOC_FAIL = 5, 81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt MLME_SM_NUM_EVENTS 82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} mlme_smEvents_t; 83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Typedefs */ 87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct 89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt mgmtStatus_e mgmtStatus; 91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT16 uStatusCode; 92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} mlmeData_t; 93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct 96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{ 97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt fsm_stateMachine_t *pMlmeSm; 98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT8 currentState; 99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt mlmeData_t mlmeData; 100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt legacyAuthType_e legacyAuthType; 101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL reAssoc; 102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt DisconnectType_e disConnType; 103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt mgmtStatus_e disConnReason; 104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL bParseBeaconWSC; 105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* temporary frame info */ 107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt mlmeIEParsingParams_t tempFrameInfo; 108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* debug info - start */ 110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 debug_lastProbeRspTSFTime; 111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 debug_lastDtimBcnTSFTime; 112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 debug_lastBeaconTSFTime; 113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_BOOL debug_isFunctionFirstTime; 114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 totalMissingBeaconsCounter; 115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 totalRcvdBeaconsCounter; 116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 maxMissingBeaconSequence; 117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_UINT32 BeaconsCounterPS; 118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt /* debug info - end */ 119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hAuth; 121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hAssoc; 122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hSiteMgr; 123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCtrlData; 124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hConn; 125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hTxMgmtQ; 126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hMeasurementMgr; 127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hSwitchChannel; 128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hRegulatoryDomain; 129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hReport; 130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hOs; 131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hCurrBss; 132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hApConn; 133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hScanCncn; 134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hQosMngr; 135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hTWD; 136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt TI_HANDLE hTxCtrl; 137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} mlme_t; 138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Structures */ 140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* External data definitions */ 142a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* External functions definitions */ 144a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Function prototypes */ 146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid mlme_smTimeout(TI_HANDLE hMlme); 148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* local functions */ 150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 151a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smEvent(TI_UINT8 *currentState, TI_UINT8 event, TI_HANDLE hMlme); 152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* state machine functions */ 154a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smStartIdle(mlme_t *pMlme); 155a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smAuthSuccessAuthWait(mlme_t *pMlme); 156a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smAuthFailAuthWait(mlme_t *pMlme); 157a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smStopAssocWait(mlme_t *pMlme); 158a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smAssocSuccessAssocWait(mlme_t *pMlme); 159a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smAssocFailAssocWait(mlme_t *pMlme); 160a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smStopAssoc(mlme_t *pMlme); 161a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smActionUnexpected(mlme_t *pMlme); 162a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smNOP(mlme_t *pMlme); 163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 164a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS mlme_smReportStatus(mlme_t *pMlme); 165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 166a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif 167a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt 168