• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
76 TI_STATUS mlmeParser_getFrameType(mlme_t *pMlme,
77 							   TI_UINT16* pFrameCtrl,
78 							   dot11MgmtSubType_e *pType);
79 
80 TI_STATUS mlmeParser_readRates(mlme_t *pMlme,
81 							TI_UINT8 *pData,
82 							TI_UINT32 dataLen,
83 							TI_UINT32 *pReadLen,
84 							dot11_RATES_t *pRates);
85 
86 TI_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 
93 TI_STATUS mlmeParser_readSsid(mlme_t *pMlme,
94 						   TI_UINT8 *pData,
95 						   TI_UINT32 dataLen,
96 						   TI_UINT32 *pReadLen,
97 						   dot11_SSID_t *pSsid);
98 
99 TI_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 
105 TI_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 
111 TI_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 
117 TI_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 
123 TI_STATUS mlmeParser_readTim(mlme_t *pMlme,
124 						  TI_UINT8 *pData,
125 						  TI_UINT32 dataLen,
126 						  TI_UINT32 *pReadLen,
127 						  dot11_TIM_t *pTim);
128 
129 TI_STATUS mlmeParser_readCountry(mlme_t *pMlme,
130 								 TI_UINT8 *pData,
131 								 TI_UINT32 dataLen,
132 								 TI_UINT32 *pReadLen,
133 								 dot11_COUNTRY_t *countryIE);
134 
135 TI_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 
142 TI_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 
148 TI_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 
155 TI_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
162 TI_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 
169 TI_STATUS mlmeParser_readQuiet(mlme_t *pMlme,
170 							   TI_UINT8 *pData,
171 							   TI_UINT32 dataLen,
172 							   TI_UINT32 *pReadLen,
173 							   dot11_QUIET_t *quiet);
174 
175 TI_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 
182 TI_STATUS mlmeParser_readRsnIe(mlme_t *pMlme,
183                                TI_UINT8 *pData,
184                                TI_UINT32 dataLen,
185                                TI_UINT32 *pReadLen,
186                                dot11_RSN_t *pRsnIe);
187 
188 TI_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 
194 TI_STATUS mlmeParser_readHtCapabilitiesIE (mlme_t *pMlme,
195 										  TI_UINT8 *pData,
196 										  TI_UINT32 dataLen,
197 										  TI_UINT32 *pReadLen,
198 										  Tdot11HtCapabilitiesUnparse *pHtCapabilities);
199 
200 TI_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