/*
* mlmeParser.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 mlmeBuilder.h
* \brief 802.11 MLME Builder
*
* \see mlmeBuilder.c
*/
/***************************************************************************/
/* */
/* MODULE: mlmeBuilder.h */
/* PURPOSE: 802.11 MLME Builder */
/* */
/***************************************************************************/
#ifndef _MLME_PARSER_H
#define _MLME_PARSER_H
#include "802_11Defs.h"
#include "paramOut.h"
#include "mlmeApi.h"
#include "mlmeSm.h"
/* Constants */
#define FRAME_CTRL_PROTOCOL_VERSION_MASK 0x03
#define FRAME_CTRL_TYPE_MASK 0x0C
#define FRAME_CTRL_SUB_TYPE_MASK 0xF0
/* Enumerations */
/* state machine states */
/* Typedefs */
/* Structures */
/* External data definitions */
/* External functions definitions */
/* Function prototypes */
TI_STATUS mlmeParser_getFrameType(mlme_t *pMlme,
TI_UINT16* pFrameCtrl,
dot11MgmtSubType_e *pType);
TI_STATUS mlmeParser_readRates(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_RATES_t *pRates);
TI_STATUS mlmeParser_readERP(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
TI_BOOL *useProtection,
EPreamble *barkerPreambleMode);
TI_STATUS mlmeParser_readSsid(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_SSID_t *pSsid);
TI_STATUS mlmeParser_readFhParams(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_FH_PARAMS_t *pFhParams);
TI_STATUS mlmeParser_readDsParams(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_DS_PARAMS_t *pDsParams);
TI_STATUS mlmeParser_readCfParams(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_CF_PARAMS_t *pCfParams);
TI_STATUS mlmeParser_readIbssParams(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_IBSS_PARAMS_t *pIbssParams);
TI_STATUS mlmeParser_readTim(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_TIM_t *pTim);
TI_STATUS mlmeParser_readCountry(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_COUNTRY_t *countryIE);
TI_STATUS mlmeParser_readWMEParams(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_WME_PARAM_t *pWMEParamIE,
assocRsp_t *assocRsp);
TI_STATUS mlmeParser_readPowerConstraint(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_POWER_CONSTRAINT_t *powerConstraintIE);
TI_STATUS mlmeParser_readChannelSwitch(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_CHANNEL_SWITCH_t *channelSwitch,
TI_UINT8 channel);
TI_STATUS mlmeParser_readTPCReport(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_TPC_REPORT_t *TPCReport);
#ifdef XCC_MODULE_INCLUDED
TI_STATUS mlmeParser_readCellTP(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_CELL_TP_t *cellTP);
#endif
TI_STATUS mlmeParser_readQuiet(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_QUIET_t *quiet);
TI_STATUS mlmeParser_readChallange(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_CHALLENGE_t *pChallange);
TI_STATUS mlmeParser_readRsnIe(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_RSN_t *pRsnIe);
TI_STATUS mlmeParser_readQosCapabilityIE(mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
dot11_QOS_CAPABILITY_IE_t *QosCapParams);
TI_STATUS mlmeParser_readHtCapabilitiesIE (mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
Tdot11HtCapabilitiesUnparse *pHtCapabilities);
TI_STATUS mlmeParser_readHtInformationIE (mlme_t *pMlme,
TI_UINT8 *pData,
TI_UINT32 dataLen,
TI_UINT32 *pReadLen,
Tdot11HtInformationUnparse *pHtInformation);
#endif