diff options
Diffstat (limited to 'wilink_6_1/stad/src/Sta_Management/AssocSM.h')
-rw-r--r-- | wilink_6_1/stad/src/Sta_Management/AssocSM.h | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/wilink_6_1/stad/src/Sta_Management/AssocSM.h b/wilink_6_1/stad/src/Sta_Management/AssocSM.h new file mode 100644 index 0000000..7e85f11 --- /dev/null +++ b/wilink_6_1/stad/src/Sta_Management/AssocSM.h @@ -0,0 +1,158 @@ +/* + * AssocSM.h + * + * Copyright(c) 1998 - 2009 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 AssocSM.h + * \brief 802.11 Association SM + * + * \see assocSM.c + */ + + +/***************************************************************************/ +/* */ +/* MODULE: AssocSM.h */ +/* PURPOSE: 802.11 Association SM */ +/* */ +/***************************************************************************/ + +#ifndef _ASSOC_SM_H +#define _ASSOC_SM_H + +#include "fsm.h" +#include "mlmeApi.h" + +/* Constants */ + +#define MAX_ASSOC_MSG_LENGTH 512 + +#define ASSOC_SM_CAP_ESS_MODE 0x0001 +#define ASSOC_SM_CAP_IBSS_MODE 0x0002 +#define ASSOC_SM_CAP_CF_POLLABLE 0x0004 +#define ASSOC_SM_CAP_CF_POLL_REQ 0x0008 +#define ASSOC_SM_CAP_PIVACY 0x0010 +#define ASSOC_SM_CAP_SHORT_PREAMBLE 0x0020 +#define ASSOC_SM_CAP_PBCC 0x0040 +#define ASSOC_SM_CAP_CH_AGILITY 0x0080 + +/* Enumerations */ + +/* state machine states */ +typedef enum +{ + ASSOC_SM_STATE_IDLE = 0, + ASSOC_SM_STATE_WAIT = 1, + ASSOC_SM_STATE_ASSOC = 2 +} assoc_smStates_t; + +/* State machine inputs */ +typedef enum +{ + ASSOC_SM_EVENT_START = 0, + ASSOC_SM_EVENT_STOP = 1, + ASSOC_SM_EVENT_SUCCESS = 2, + ASSOC_SM_EVENT_FAIL = 3, + ASSOC_SM_EVENT_TIMEOUT = 4, + ASSOC_SM_EVENT_MAX_RETRY = 5 +} assoc_smEvents_t; + + + +/* Typedefs */ + +typedef struct +{ + fsm_stateMachine_t *pAssocSm; + TI_UINT32 timeout; + TI_UINT8 currentState; + TI_UINT32 maxCount; + TI_UINT8 retryCount; + TI_UINT32 assocRejectCount; + TI_UINT32 assocTimeoutCount; + char *pChalange; + TI_UINT8 assocRespBuffer[MAX_ASSOC_MSG_LENGTH]; + TI_UINT32 assocRespLen; + TI_UINT8 assocReqBuffer[MAX_ASSOC_MSG_LENGTH]; + TI_UINT32 assocReqLen; + TI_BOOL reAssocResp; + + TI_BOOL reAssoc; + TI_BOOL disAssoc; /* When set dissasociation frame will be sent. */ + + TI_HANDLE hMlme; + TI_HANDLE hSiteMgr; + TI_HANDLE hCtrlData; + TI_HANDLE hTWD; + TI_HANDLE hRsn; + TI_HANDLE hReport; + TI_HANDLE hOs; + TI_HANDLE hRegulatoryDomain; + TI_HANDLE hXCCMngr; + TI_HANDLE hQosMngr; + TI_HANDLE hMeasurementMgr; + TI_HANDLE hApConn; + TI_HANDLE hTimer; + TI_HANDLE hStaCap; + TI_HANDLE hSme; + + TI_HANDLE hAssocSmTimer; +} assoc_t; + +/* Structures */ + +/* External data definitions */ + +/* External functions definitions */ + +/* Function prototypes */ + +TI_STATUS assoc_start(TI_HANDLE hAssoc); + +TI_STATUS reassoc_start(TI_HANDLE hAssoc); + +TI_STATUS assoc_stop(TI_HANDLE hAssoc); + +TI_STATUS assoc_recv(TI_HANDLE hAssoc, mlmeFrameInfo_t *pFrame); + +TI_STATUS assoc_setDisAssocFlag(TI_HANDLE hAssoc, TI_BOOL disAsoccFlag); + +TI_STATUS assoc_smCapBuild(assoc_t *pCtx, TI_UINT16 *cap); + + +/* local functions */ + +TI_STATUS assoc_saveAssocRespMessage(assoc_t *pAssocSm, TI_UINT8 *pAssocBuffer, TI_UINT32 length); + + +#endif + |