1/*
2 * mlmeParser.h
3 *
4 * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 *  * Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 *  * Redistributions in binary form must reproduce the above copyright
14 *    notice, this list of conditions and the following disclaimer in
15 *    the documentation and/or other materials provided with the
16 *    distribution.
17 *  * Neither the name Texas Instruments nor the names of its
18 *    contributors may be used to endorse or promote products derived
19 *    from this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34 /** \file mlmeBuilder.h
35 *  \brief 802.11 MLME Builder
36 *
37 *  \see mlmeBuilder.c
38 */
39
40
41/***************************************************************************/
42/*																		   */
43/*		MODULE:	mlmeBuilder.h											   */
44/*    PURPOSE:	802.11 MLME Builder										   */
45/*																	 	   */
46/***************************************************************************/
47
48#ifndef _MLME_PARSER_H
49#define _MLME_PARSER_H
50
51#include "802_11Defs.h"
52#include "paramOut.h"
53#include "mlmeApi.h"
54#include "mlmeSm.h"
55
56/* Constants */
57
58#define FRAME_CTRL_PROTOCOL_VERSION_MASK	0x03
59#define FRAME_CTRL_TYPE_MASK				0x0C
60#define FRAME_CTRL_SUB_TYPE_MASK			0xF0
61
62/* Enumerations */
63
64/* state machine states */
65
66/* Typedefs */
67
68/* Structures */
69
70/* External data definitions */
71
72/* External functions definitions */
73
74/* Function prototypes */
75
76TI_STATUS mlmeParser_getFrameType(mlme_t *pMlme,
77							   TI_UINT16* pFrameCtrl,
78							   dot11MgmtSubType_e *pType);
79
80TI_STATUS mlmeParser_readRates(mlme_t *pMlme,
81							TI_UINT8 *pData,
82							TI_UINT32 dataLen,
83							TI_UINT32 *pReadLen,
84							dot11_RATES_t *pRates);
85
86TI_STATUS mlmeParser_readERP(mlme_t *pMlme,
87                             TI_UINT8 *pData,
88                             TI_UINT32 dataLen,
89                             TI_UINT32 *pReadLen,
90                             TI_BOOL *useProtection,
91                             EPreamble *barkerPreambleMode);
92
93TI_STATUS mlmeParser_readSsid(mlme_t *pMlme,
94						   TI_UINT8 *pData,
95						   TI_UINT32 dataLen,
96						   TI_UINT32 *pReadLen,
97						   dot11_SSID_t *pSsid);
98
99TI_STATUS mlmeParser_readFhParams(mlme_t *pMlme,
100							   TI_UINT8 *pData,
101							   TI_UINT32 dataLen,
102							   TI_UINT32 *pReadLen,
103							   dot11_FH_PARAMS_t *pFhParams);
104
105TI_STATUS mlmeParser_readDsParams(mlme_t *pMlme,
106							   TI_UINT8 *pData,
107							   TI_UINT32 dataLen,
108							   TI_UINT32 *pReadLen,
109							   dot11_DS_PARAMS_t *pDsParams);
110
111TI_STATUS mlmeParser_readCfParams(mlme_t *pMlme,
112							   TI_UINT8 *pData,
113							   TI_UINT32 dataLen,
114							   TI_UINT32 *pReadLen,
115							   dot11_CF_PARAMS_t *pCfParams);
116
117TI_STATUS mlmeParser_readIbssParams(mlme_t *pMlme,
118								 TI_UINT8 *pData,
119								 TI_UINT32 dataLen,
120								 TI_UINT32 *pReadLen,
121								 dot11_IBSS_PARAMS_t *pIbssParams);
122
123TI_STATUS mlmeParser_readTim(mlme_t *pMlme,
124						  TI_UINT8 *pData,
125						  TI_UINT32 dataLen,
126						  TI_UINT32 *pReadLen,
127						  dot11_TIM_t *pTim);
128
129TI_STATUS mlmeParser_readCountry(mlme_t *pMlme,
130								 TI_UINT8 *pData,
131								 TI_UINT32 dataLen,
132								 TI_UINT32 *pReadLen,
133								 dot11_COUNTRY_t *countryIE);
134
135TI_STATUS mlmeParser_readWMEParams(mlme_t *pMlme,
136								   TI_UINT8 *pData,
137								   TI_UINT32 dataLen,
138								   TI_UINT32 *pReadLen,
139								   dot11_WME_PARAM_t *pWMEParamIE,
140								   assocRsp_t *assocRsp);
141
142TI_STATUS mlmeParser_readPowerConstraint(mlme_t *pMlme,
143										 TI_UINT8 *pData,
144										 TI_UINT32 dataLen,
145										 TI_UINT32 *pReadLen,
146										 dot11_POWER_CONSTRAINT_t *powerConstraintIE);
147
148TI_STATUS mlmeParser_readChannelSwitch(mlme_t *pMlme,
149									   TI_UINT8 *pData,
150									   TI_UINT32 dataLen,
151									   TI_UINT32 *pReadLen,
152									   dot11_CHANNEL_SWITCH_t *channelSwitch,
153                                       TI_UINT8 channel);
154
155TI_STATUS mlmeParser_readTPCReport(mlme_t *pMlme,
156								   TI_UINT8 *pData,
157								   TI_UINT32 dataLen,
158								   TI_UINT32 *pReadLen,
159								   dot11_TPC_REPORT_t	*TPCReport);
160
161#ifdef XCC_MODULE_INCLUDED
162TI_STATUS mlmeParser_readCellTP(mlme_t *pMlme,
163								TI_UINT8 *pData,
164								TI_UINT32 dataLen,
165								TI_UINT32 *pReadLen,
166								dot11_CELL_TP_t *cellTP);
167#endif
168
169TI_STATUS mlmeParser_readQuiet(mlme_t *pMlme,
170							   TI_UINT8 *pData,
171							   TI_UINT32 dataLen,
172							   TI_UINT32 *pReadLen,
173							   dot11_QUIET_t *quiet);
174
175TI_STATUS mlmeParser_readChallange(mlme_t *pMlme,
176								TI_UINT8 *pData,
177								TI_UINT32 dataLen,
178								TI_UINT32 *pReadLen,
179								dot11_CHALLENGE_t *pChallange);
180
181
182TI_STATUS mlmeParser_readRsnIe(mlme_t *pMlme,
183                               TI_UINT8 *pData,
184                               TI_UINT32 dataLen,
185                               TI_UINT32 *pReadLen,
186                               dot11_RSN_t *pRsnIe);
187
188TI_STATUS mlmeParser_readQosCapabilityIE(mlme_t *pMlme,
189										 TI_UINT8 *pData,
190										 TI_UINT32 dataLen,
191										 TI_UINT32 *pReadLen,
192										 dot11_QOS_CAPABILITY_IE_t *QosCapParams);
193
194TI_STATUS mlmeParser_readHtCapabilitiesIE (mlme_t *pMlme,
195										  TI_UINT8 *pData,
196										  TI_UINT32 dataLen,
197										  TI_UINT32 *pReadLen,
198										  Tdot11HtCapabilitiesUnparse *pHtCapabilities);
199
200TI_STATUS mlmeParser_readHtInformationIE (mlme_t *pMlme,
201                                          TI_UINT8 *pData,
202                                          TI_UINT32 dataLen,
203                                          TI_UINT32 *pReadLen,
204                                          Tdot11HtInformationUnparse *pHtInformation);
205
206
207#endif
208
209