| /** @file parser.h |
| * |
| * @brief This file contains definitions of 802.11 Management Frames |
| * and Information Element Parsing |
| * |
| * Copyright (C) 2014, Marvell International Ltd. |
| * |
| * This software file (the "File") is distributed by Marvell International |
| * Ltd. under the terms of the GNU General Public License Version 2, June 1991 |
| * (the "License"). You may use, redistribute and/or modify this File in |
| * accordance with the terms and conditions of the License, a copy of which |
| * is available by writing to the Free Software Foundation, Inc., |
| * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the |
| * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. |
| * |
| * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE |
| * ARE EXPRESSLY DISCLAIMED. The License provides additional details about |
| * this warranty disclaimer. |
| */ |
| |
| /****************************************************** |
| Change log: |
| 03/07/2014: Initial version |
| ******************************************************/ |
| #ifndef _PARSER_H_ |
| #define _PARSER_H_ |
| |
| #include "IEEE_types.h" |
| #include "parser_rom.h" |
| |
| typedef struct { |
| IEEEtypes_HT_Capability_t *pHtCap; |
| IEEEtypes_HT_Information_t *pHtInfo; |
| IEEEtypes_20N40_BSS_Coexist_t *p2040Coexist; |
| IEEEtypes_OBSS_ScanParam_t *pHtScanParam; |
| IEEEtypes_ExtCapability_t *pHtExtCap; |
| } dot11nIEPointers_t; |
| |
| #ifdef DOT11AC |
| typedef struct { |
| IEEEtypes_VHT_Capability_t *pVhtCap; |
| IEEEtypes_VHT_Operation_t *pVhtOper; |
| } dot11acIEPointers_t; |
| #endif |
| |
| #ifdef TDLS |
| typedef struct { |
| IEEEtypes_MobilityDomainElement_t *pMdie; |
| IEEEtypes_FastBssTransElement_t *pFtie; |
| IEEEtypes_RSNElement_t *pRsn; |
| IEEEtypes_TimeoutIntervalElement_t *pTie[2]; |
| IEEEtypes_RICDataElement_t *pFirstRdie; |
| |
| } Dot11rIePointers_t; |
| #endif |
| extern VendorSpecificIEType_e IsWMMElement(void *priv, UINT8 *pBuffer); |
| extern VendorSpecificIEType_e IsWPAElement(void *priv, UINT8 *pBuffer); |
| |
| extern int ieBufValidate(UINT8 *pIe, int bufLen); |
| |
| extern int GetIEPointers(void *priv, UINT8 *pIe, |
| int bufLen, IEPointers_t *pIePointers); |
| |
| extern BOOLEAN parser_getAssocIEs(void *priv, UINT8 *pIe, |
| int bufLen, AssocIePointers_t *pIePointers); |
| |
| extern |
| IEEEtypes_InfoElementHdr_t *parser_getSpecificIE(IEEEtypes_ElementId_e elemId, |
| UINT8 *pIe, int bufLen); |
| |
| extern UINT8 parser_countNumInfoElements(UINT8 *pIe, int bufLen); |
| |
| #endif // _PARSER_H_ |