prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/CORE/MAC/src/include/dot11f.h b/CORE/MAC/src/include/dot11f.h
new file mode 100644
index 0000000..7fe0dc4
--- /dev/null
+++ b/CORE/MAC/src/include/dot11f.h
@@ -0,0 +1,6883 @@
+/*
+ * Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+  */
+
+#ifndef DOT11F_H
+#define DOT11F_H
+/**
+  * \file dot11f.h
+  *
+  * \brief Structures, function prototypes & definitions
+  * for working with 802.11 Frames
+  *
+  *
+  * Copyright (C) 2012 Airgo Networks, Incorporated.
+  *
+  *
+  * This file was automatically generated by 'framesc'
+  * Tue May 15 13:12:01 2012 from the following file(s):
+  *
+  * dot11f.frms
+  * 
+  * PLEASE DON'T EDIT THIS FILE BY HAND!
+  *
+  * Instead, please update the input files & re-run
+  * 'framesc'  For more information on 'framesc' & the
+  * frames language,  run 'framesc --help'.
+  *
+  *
+  */
+
+typedef tANI_U32 tDOT11F_U64[2];
+
+#if defined ( _MSC_VER )
+#   pragma warning (disable: 4214) /* nonstandard extension used */
+#endif /* Microsoft C/C++             bit field types other than int */
+
+/*
+ * Frames Return Codes:
+ *
+ * Success is indicated by a return value of zero.  Failure is indicated
+ * by the presence of the high bit.  Warnings encountered in the course
+ * of a successful parse are indicated by various bits in the lower 31
+ * being turned on.
+ *
+ * For instance, a return value of 0x0000000a would indicate that the
+ * parse succeeded, but that a mandatory IE wasn't present, and some IE
+ * was found to be corrupt.
+ *
+ *
+ */
+
+#define DOT11F_PARSE_SUCCESS         ( 0x00000000 )
+#define DOT11F_UNKNOWN_IES           ( 0x00000001 )
+#define DOT11F_MANDATORY_IE_MISSING  ( 0x00000002 )
+#define DOT11F_INCOMPLETE_IE         ( 0x00000004 )
+#define DOT11F_SKIPPED_BAD_IE        ( 0x00000008 )
+#define DOT11F_LAST_IE_TOO_LONG      ( 0x00000010 )
+#define DOT11F_DUPLICATE_IE          ( 0x00000020 )
+#define DOT11F_BAD_FIXED_VALUE       ( 0x00000040 )
+#define DOT11F_INCOMPLETE_TLV        ( 0x00000080 )
+#define DOT11F_INVALID_TLV_LENGTH    ( 0x00000100 )
+#define DOT11F_SKIPPED_BAD_TLV       ( 0x00000200 )
+#define DOT11F_UNKNOWN_TLVS          ( 0x00000400 )
+#define DOT11F_LAST_TLV_TOO_LONG     ( 0x00000800 )
+#define DOT11F_INTERNAL_ERROR        ( 0x10000001 )
+#define DOT11F_MISSING_FIXED_FIELD   ( 0x10000002 )
+#define DOT11F_BAD_INPUT_BUFFER      ( 0x10000003 )
+#define DOT11F_BAD_OUTPUT_BUFFER     ( 0x10000004 )
+#define DOT11F_BUFFER_OVERFLOW       ( 0x10000005 )
+#define DOT11F_MANDATORY_TLV_MISSING ( 0x00001000 )
+#define DOT11F_FAILED(code)          ( (code) & 0x10000000 )
+#define DOT11F_WARNED(code)          ( ( ( 0 == (code) ) & 0x10000000 ) && code)
+#define DOT11F_SUCCEEDED(code)       ( (code) == 0 )
+
+/*********************************************************************
+ * Fixed Fields                                                      *
+ ********************************************************************/
+
+typedef struct sDot11fFfAID {
+    tANI_U16 associd;
+} tDot11fFfAID;
+
+#define DOT11F_FF_AID_LEN ( 2 )
+
+void dot11fUnpackFfAID(tpAniSirGlobal, tANI_U8*, tDot11fFfAID*);
+
+void dot11fPackFfAID(tpAniSirGlobal, tDot11fFfAID*, tANI_U8*);
+
+typedef struct sDot11fFfAction {
+    tANI_U8 action;
+} tDot11fFfAction;
+
+#define DOT11F_FF_ACTION_LEN ( 1 )
+
+void dot11fUnpackFfAction(tpAniSirGlobal, tANI_U8*, tDot11fFfAction*);
+
+void dot11fPackFfAction(tpAniSirGlobal, tDot11fFfAction*, tANI_U8*);
+
+typedef struct sDot11fFfAddBAParameterSet {
+    tANI_U16  amsduSupported: 1;
+    tANI_U16          policy: 1;
+    tANI_U16             tid: 4;
+    tANI_U16      bufferSize: 10;
+} tDot11fFfAddBAParameterSet;
+
+#define DOT11F_FF_ADDBAPARAMETERSET_LEN ( 2 )
+
+void dot11fUnpackFfAddBAParameterSet(tpAniSirGlobal, tANI_U8*, tDot11fFfAddBAParameterSet*);
+
+void dot11fPackFfAddBAParameterSet(tpAniSirGlobal, tDot11fFfAddBAParameterSet*, tANI_U8*);
+
+#define ADDBAPARAMETERSET_AMSDUSUPPORTED_OFFSET 0
+#define ADDBAPARAMETERSET_AMSDUSUPPORTED_WIDTH  1
+#define ADDBAPARAMETERSET_POLICY_OFFSET         1
+#define ADDBAPARAMETERSET_POLICY_WIDTH          1
+#define ADDBAPARAMETERSET_TID_OFFSET            2
+#define ADDBAPARAMETERSET_TID_WIDTH             4
+#define ADDBAPARAMETERSET_BUFFERSIZE_OFFSET     6
+#define ADDBAPARAMETERSET_BUFFERSIZE_WIDTH      10
+
+typedef struct sDot11fFfAuthAlgo {
+    tANI_U16 algo;
+} tDot11fFfAuthAlgo;
+
+#define DOT11F_FF_AUTHALGO_LEN ( 2 )
+
+void dot11fUnpackFfAuthAlgo(tpAniSirGlobal, tANI_U8*, tDot11fFfAuthAlgo*);
+
+void dot11fPackFfAuthAlgo(tpAniSirGlobal, tDot11fFfAuthAlgo*, tANI_U8*);
+
+typedef struct sDot11fFfAuthSeqNo {
+    tANI_U16 no;
+} tDot11fFfAuthSeqNo;
+
+#define DOT11F_FF_AUTHSEQNO_LEN ( 2 )
+
+void dot11fUnpackFfAuthSeqNo(tpAniSirGlobal, tANI_U8*, tDot11fFfAuthSeqNo*);
+
+void dot11fPackFfAuthSeqNo(tpAniSirGlobal, tDot11fFfAuthSeqNo*, tANI_U8*);
+
+typedef struct sDot11fFfBAStartingSequenceControl {
+    tANI_U16  fragNumber: 4;
+    tANI_U16         ssn: 12;
+} tDot11fFfBAStartingSequenceControl;
+
+#define DOT11F_FF_BASTARTINGSEQUENCECONTROL_LEN ( 2 )
+
+void dot11fUnpackFfBAStartingSequenceControl(tpAniSirGlobal, tANI_U8*, tDot11fFfBAStartingSequenceControl*);
+
+void dot11fPackFfBAStartingSequenceControl(tpAniSirGlobal, tDot11fFfBAStartingSequenceControl*, tANI_U8*);
+
+#define BASTARTINGSEQUENCECONTROL_FRAGNUMBER_OFFSET 0
+#define BASTARTINGSEQUENCECONTROL_FRAGNUMBER_WIDTH  4
+#define BASTARTINGSEQUENCECONTROL_SSN_OFFSET        4
+#define BASTARTINGSEQUENCECONTROL_SSN_WIDTH         12
+
+typedef struct sDot11fFfBATimeout {
+    tANI_U16 timeout;
+} tDot11fFfBATimeout;
+
+#define DOT11F_FF_BATIMEOUT_LEN ( 2 )
+
+void dot11fUnpackFfBATimeout(tpAniSirGlobal, tANI_U8*, tDot11fFfBATimeout*);
+
+void dot11fPackFfBATimeout(tpAniSirGlobal, tDot11fFfBATimeout*, tANI_U8*);
+
+typedef struct sDot11fFfBeaconInterval {
+    tANI_U16 interval;
+} tDot11fFfBeaconInterval;
+
+#define DOT11F_FF_BEACONINTERVAL_LEN ( 2 )
+
+void dot11fUnpackFfBeaconInterval(tpAniSirGlobal, tANI_U8*, tDot11fFfBeaconInterval*);
+
+void dot11fPackFfBeaconInterval(tpAniSirGlobal, tDot11fFfBeaconInterval*, tANI_U8*);
+
+typedef struct sDot11fFfCapabilities {
+    tANI_U16             ess: 1;
+    tANI_U16            ibss: 1;
+    tANI_U16      cfPollable: 1;
+    tANI_U16       cfPollReq: 1;
+    tANI_U16         privacy: 1;
+    tANI_U16   shortPreamble: 1;
+    tANI_U16            pbcc: 1;
+    tANI_U16  channelAgility: 1;
+    tANI_U16     spectrumMgt: 1;
+    tANI_U16             qos: 1;
+    tANI_U16   shortSlotTime: 1;
+    tANI_U16            apsd: 1;
+    tANI_U16             rrm: 1;
+    tANI_U16        dsssOfdm: 1;
+    tANI_U16       delayedBA: 1;
+    tANI_U16     immediateBA: 1;
+} tDot11fFfCapabilities;
+
+#define DOT11F_FF_CAPABILITIES_LEN ( 2 )
+
+void dot11fUnpackFfCapabilities(tpAniSirGlobal, tANI_U8*, tDot11fFfCapabilities*);
+
+void dot11fPackFfCapabilities(tpAniSirGlobal, tDot11fFfCapabilities*, tANI_U8*);
+
+#define CAPABILITIES_ESS_OFFSET            0
+#define CAPABILITIES_ESS_WIDTH             1
+#define CAPABILITIES_IBSS_OFFSET           1
+#define CAPABILITIES_IBSS_WIDTH            1
+#define CAPABILITIES_CFPOLLABLE_OFFSET     2
+#define CAPABILITIES_CFPOLLABLE_WIDTH      1
+#define CAPABILITIES_CFPOLLREQ_OFFSET      3
+#define CAPABILITIES_CFPOLLREQ_WIDTH       1
+#define CAPABILITIES_PRIVACY_OFFSET        4
+#define CAPABILITIES_PRIVACY_WIDTH         1
+#define CAPABILITIES_SHORTPREAMBLE_OFFSET  5
+#define CAPABILITIES_SHORTPREAMBLE_WIDTH   1
+#define CAPABILITIES_PBCC_OFFSET           6
+#define CAPABILITIES_PBCC_WIDTH            1
+#define CAPABILITIES_CHANNELAGILITY_OFFSET 7
+#define CAPABILITIES_CHANNELAGILITY_WIDTH  1
+#define CAPABILITIES_SPECTRUMMGT_OFFSET    8
+#define CAPABILITIES_SPECTRUMMGT_WIDTH     1
+#define CAPABILITIES_QOS_OFFSET            9
+#define CAPABILITIES_QOS_WIDTH             1
+#define CAPABILITIES_SHORTSLOTTIME_OFFSET  10
+#define CAPABILITIES_SHORTSLOTTIME_WIDTH   1
+#define CAPABILITIES_APSD_OFFSET           11
+#define CAPABILITIES_APSD_WIDTH            1
+#define CAPABILITIES_RRM_OFFSET            12
+#define CAPABILITIES_RRM_WIDTH             1
+#define CAPABILITIES_DSSSOFDM_OFFSET       13
+#define CAPABILITIES_DSSSOFDM_WIDTH        1
+#define CAPABILITIES_DELAYEDBA_OFFSET      14
+#define CAPABILITIES_DELAYEDBA_WIDTH       1
+#define CAPABILITIES_IMMEDIATEBA_OFFSET    15
+#define CAPABILITIES_IMMEDIATEBA_WIDTH     1
+
+typedef struct sDot11fFfCategory {
+    tANI_U8 category;
+} tDot11fFfCategory;
+
+#define DOT11F_FF_CATEGORY_LEN ( 1 )
+
+void dot11fUnpackFfCategory(tpAniSirGlobal, tANI_U8*, tDot11fFfCategory*);
+
+void dot11fPackFfCategory(tpAniSirGlobal, tDot11fFfCategory*, tANI_U8*);
+
+typedef struct sDot11fFfCurrentAPAddress {
+    tANI_U8 mac[6];
+} tDot11fFfCurrentAPAddress;
+
+#define DOT11F_FF_CURRENTAPADDRESS_LEN ( 6 )
+
+void dot11fUnpackFfCurrentAPAddress(tpAniSirGlobal, tANI_U8*, tDot11fFfCurrentAPAddress*);
+
+void dot11fPackFfCurrentAPAddress(tpAniSirGlobal, tDot11fFfCurrentAPAddress*, tANI_U8*);
+
+typedef struct sDot11fFfDelBAParameterSet {
+    tANI_U16   reserved: 11;
+    tANI_U16  initiator: 1;
+    tANI_U16        tid: 4;
+} tDot11fFfDelBAParameterSet;
+
+#define DOT11F_FF_DELBAPARAMETERSET_LEN ( 2 )
+
+void dot11fUnpackFfDelBAParameterSet(tpAniSirGlobal, tANI_U8*, tDot11fFfDelBAParameterSet*);
+
+void dot11fPackFfDelBAParameterSet(tpAniSirGlobal, tDot11fFfDelBAParameterSet*, tANI_U8*);
+
+#define DELBAPARAMETERSET_RESERVED_OFFSET  0
+#define DELBAPARAMETERSET_RESERVED_WIDTH   11
+#define DELBAPARAMETERSET_INITIATOR_OFFSET 11
+#define DELBAPARAMETERSET_INITIATOR_WIDTH  1
+#define DELBAPARAMETERSET_TID_OFFSET       12
+#define DELBAPARAMETERSET_TID_WIDTH        4
+
+typedef struct sDot11fFfDialogToken {
+    tANI_U8 token;
+} tDot11fFfDialogToken;
+
+#define DOT11F_FF_DIALOGTOKEN_LEN ( 1 )
+
+void dot11fUnpackFfDialogToken(tpAniSirGlobal, tANI_U8*, tDot11fFfDialogToken*);
+
+void dot11fPackFfDialogToken(tpAniSirGlobal, tDot11fFfDialogToken*, tANI_U8*);
+
+typedef struct sDot11fFfLinkMargin {
+    tANI_U8 linkMargin;
+} tDot11fFfLinkMargin;
+
+#define DOT11F_FF_LINKMARGIN_LEN ( 1 )
+
+void dot11fUnpackFfLinkMargin(tpAniSirGlobal, tANI_U8*, tDot11fFfLinkMargin*);
+
+void dot11fPackFfLinkMargin(tpAniSirGlobal, tDot11fFfLinkMargin*, tANI_U8*);
+
+typedef struct sDot11fFfListenInterval {
+    tANI_U16 interval;
+} tDot11fFfListenInterval;
+
+#define DOT11F_FF_LISTENINTERVAL_LEN ( 2 )
+
+void dot11fUnpackFfListenInterval(tpAniSirGlobal, tANI_U8*, tDot11fFfListenInterval*);
+
+void dot11fPackFfListenInterval(tpAniSirGlobal, tDot11fFfListenInterval*, tANI_U8*);
+
+typedef struct sDot11fFfMaxTxPower {
+    tANI_U8 maxTxPower;
+} tDot11fFfMaxTxPower;
+
+#define DOT11F_FF_MAXTXPOWER_LEN ( 1 )
+
+void dot11fUnpackFfMaxTxPower(tpAniSirGlobal, tANI_U8*, tDot11fFfMaxTxPower*);
+
+void dot11fPackFfMaxTxPower(tpAniSirGlobal, tDot11fFfMaxTxPower*, tANI_U8*);
+
+typedef struct sDot11fFfNumOfRepetitions {
+    tANI_U16 repetitions;
+} tDot11fFfNumOfRepetitions;
+
+#define DOT11F_FF_NUMOFREPETITIONS_LEN ( 2 )
+
+void dot11fUnpackFfNumOfRepetitions(tpAniSirGlobal, tANI_U8*, tDot11fFfNumOfRepetitions*);
+
+void dot11fPackFfNumOfRepetitions(tpAniSirGlobal, tDot11fFfNumOfRepetitions*, tANI_U8*);
+
+typedef struct sDot11fFfP2POUI {
+    tANI_U32 oui;
+} tDot11fFfP2POUI;
+
+#define DOT11F_FF_P2POUI_LEN ( 4 )
+
+void dot11fUnpackFfP2POUI(tpAniSirGlobal, tANI_U8*, tDot11fFfP2POUI*);
+
+void dot11fPackFfP2POUI(tpAniSirGlobal, tDot11fFfP2POUI*, tANI_U8*);
+
+typedef struct sDot11fFfP2POUISubType {
+    tANI_U8 ouiSubtype;
+} tDot11fFfP2POUISubType;
+
+#define DOT11F_FF_P2POUISUBTYPE_LEN ( 1 )
+
+void dot11fUnpackFfP2POUISubType(tpAniSirGlobal, tANI_U8*, tDot11fFfP2POUISubType*);
+
+void dot11fPackFfP2POUISubType(tpAniSirGlobal, tDot11fFfP2POUISubType*, tANI_U8*);
+
+typedef struct sDot11fFfRCPI {
+    tANI_U8 rcpi;
+} tDot11fFfRCPI;
+
+#define DOT11F_FF_RCPI_LEN ( 1 )
+
+void dot11fUnpackFfRCPI(tpAniSirGlobal, tANI_U8*, tDot11fFfRCPI*);
+
+void dot11fPackFfRCPI(tpAniSirGlobal, tDot11fFfRCPI*, tANI_U8*);
+
+typedef struct sDot11fFfRSNI {
+    tANI_U8 rsni;
+} tDot11fFfRSNI;
+
+#define DOT11F_FF_RSNI_LEN ( 1 )
+
+void dot11fUnpackFfRSNI(tpAniSirGlobal, tANI_U8*, tDot11fFfRSNI*);
+
+void dot11fPackFfRSNI(tpAniSirGlobal, tDot11fFfRSNI*, tANI_U8*);
+
+typedef struct sDot11fFfReason {
+    tANI_U16 code;
+} tDot11fFfReason;
+
+#define DOT11F_FF_REASON_LEN ( 2 )
+
+void dot11fUnpackFfReason(tpAniSirGlobal, tANI_U8*, tDot11fFfReason*);
+
+void dot11fPackFfReason(tpAniSirGlobal, tDot11fFfReason*, tANI_U8*);
+
+typedef struct sDot11fFfRxAntennaId {
+    tANI_U8 antennaId;
+} tDot11fFfRxAntennaId;
+
+#define DOT11F_FF_RXANTENNAID_LEN ( 1 )
+
+void dot11fUnpackFfRxAntennaId(tpAniSirGlobal, tANI_U8*, tDot11fFfRxAntennaId*);
+
+void dot11fPackFfRxAntennaId(tpAniSirGlobal, tDot11fFfRxAntennaId*, tANI_U8*);
+
+typedef struct sDot11fFfSMPowerModeSet {
+    tANI_U8  PowerSave_En: 1;
+    tANI_U8          Mode: 1;
+    tANI_U8      reserved: 6;
+} tDot11fFfSMPowerModeSet;
+
+#define DOT11F_FF_SMPOWERMODESET_LEN ( 1 )
+
+void dot11fUnpackFfSMPowerModeSet(tpAniSirGlobal, tANI_U8*, tDot11fFfSMPowerModeSet*);
+
+void dot11fPackFfSMPowerModeSet(tpAniSirGlobal, tDot11fFfSMPowerModeSet*, tANI_U8*);
+
+#define SMPOWERMODESET_POWERSAVE_EN_OFFSET 0
+#define SMPOWERMODESET_POWERSAVE_EN_WIDTH  1
+#define SMPOWERMODESET_MODE_OFFSET         1
+#define SMPOWERMODESET_MODE_WIDTH          1
+#define SMPOWERMODESET_RESERVED_OFFSET     2
+#define SMPOWERMODESET_RESERVED_WIDTH      6
+
+typedef struct sDot11fFfStatus {
+    tANI_U16 status;
+} tDot11fFfStatus;
+
+#define DOT11F_FF_STATUS_LEN ( 2 )
+
+void dot11fUnpackFfStatus(tpAniSirGlobal, tANI_U8*, tDot11fFfStatus*);
+
+void dot11fPackFfStatus(tpAniSirGlobal, tDot11fFfStatus*, tANI_U8*);
+
+typedef struct sDot11fFfStatusCode {
+    tANI_U8 statusCode;
+} tDot11fFfStatusCode;
+
+#define DOT11F_FF_STATUSCODE_LEN ( 1 )
+
+void dot11fUnpackFfStatusCode(tpAniSirGlobal, tANI_U8*, tDot11fFfStatusCode*);
+
+void dot11fPackFfStatusCode(tpAniSirGlobal, tDot11fFfStatusCode*, tANI_U8*);
+
+typedef struct sDot11fFfTPCEleID {
+    tANI_U8 TPCId;
+} tDot11fFfTPCEleID;
+
+#define DOT11F_FF_TPCELEID_LEN ( 1 )
+
+void dot11fUnpackFfTPCEleID(tpAniSirGlobal, tANI_U8*, tDot11fFfTPCEleID*);
+
+void dot11fPackFfTPCEleID(tpAniSirGlobal, tDot11fFfTPCEleID*, tANI_U8*);
+
+typedef struct sDot11fFfTPCEleLen {
+    tANI_U8 TPCLen;
+} tDot11fFfTPCEleLen;
+
+#define DOT11F_FF_TPCELELEN_LEN ( 1 )
+
+void dot11fUnpackFfTPCEleLen(tpAniSirGlobal, tANI_U8*, tDot11fFfTPCEleLen*);
+
+void dot11fPackFfTPCEleLen(tpAniSirGlobal, tDot11fFfTPCEleLen*, tANI_U8*);
+
+typedef struct sDot11fFfTSInfo {
+    tANI_U32    traffic_type: 1;
+    tANI_U32            tsid: 4;
+    tANI_U32       direction: 2;
+    tANI_U32   access_policy: 2;
+    tANI_U32     aggregation: 1;
+    tANI_U32             psb: 1;
+    tANI_U32   user_priority: 3;
+    tANI_U32  tsinfo_ack_pol: 2;
+    tANI_U32        schedule: 1;
+    tANI_U32          unused: 15;
+} tDot11fFfTSInfo;
+
+#define DOT11F_FF_TSINFO_LEN ( 3 )
+
+void dot11fUnpackFfTSInfo(tpAniSirGlobal, tANI_U8*, tDot11fFfTSInfo*);
+
+void dot11fPackFfTSInfo(tpAniSirGlobal, tDot11fFfTSInfo*, tANI_U8*);
+
+#define TSINFO_TRAFFIC_TYPE_OFFSET   0
+#define TSINFO_TRAFFIC_TYPE_WIDTH    1
+#define TSINFO_TSID_OFFSET           1
+#define TSINFO_TSID_WIDTH            4
+#define TSINFO_DIRECTION_OFFSET      5
+#define TSINFO_DIRECTION_WIDTH       2
+#define TSINFO_ACCESS_POLICY_OFFSET  7
+#define TSINFO_ACCESS_POLICY_WIDTH   2
+#define TSINFO_AGGREGATION_OFFSET    9
+#define TSINFO_AGGREGATION_WIDTH     1
+#define TSINFO_PSB_OFFSET            10
+#define TSINFO_PSB_WIDTH             1
+#define TSINFO_USER_PRIORITY_OFFSET  11
+#define TSINFO_USER_PRIORITY_WIDTH   3
+#define TSINFO_TSINFO_ACK_POL_OFFSET 14
+#define TSINFO_TSINFO_ACK_POL_WIDTH  2
+#define TSINFO_SCHEDULE_OFFSET       16
+#define TSINFO_SCHEDULE_WIDTH        1
+#define TSINFO_UNUSED_OFFSET         17
+#define TSINFO_UNUSED_WIDTH          15
+
+typedef struct sDot11fFfTimeStamp {
+    tDOT11F_U64 timestamp;
+} tDot11fFfTimeStamp;
+
+#define DOT11F_FF_TIMESTAMP_LEN ( 8 )
+
+void dot11fUnpackFfTimeStamp(tpAniSirGlobal, tANI_U8*, tDot11fFfTimeStamp*);
+
+void dot11fPackFfTimeStamp(tpAniSirGlobal, tDot11fFfTimeStamp*, tANI_U8*);
+
+typedef struct sDot11fFfTxAntennaId {
+    tANI_U8 antennaId;
+} tDot11fFfTxAntennaId;
+
+#define DOT11F_FF_TXANTENNAID_LEN ( 1 )
+
+void dot11fUnpackFfTxAntennaId(tpAniSirGlobal, tANI_U8*, tDot11fFfTxAntennaId*);
+
+void dot11fPackFfTxAntennaId(tpAniSirGlobal, tDot11fFfTxAntennaId*, tANI_U8*);
+
+typedef struct sDot11fFfTxPower {
+    tANI_U8 txPower;
+} tDot11fFfTxPower;
+
+#define DOT11F_FF_TXPOWER_LEN ( 1 )
+
+void dot11fUnpackFfTxPower(tpAniSirGlobal, tANI_U8*, tDot11fFfTxPower*);
+
+void dot11fPackFfTxPower(tpAniSirGlobal, tDot11fFfTxPower*, tANI_U8*);
+
+/*********************************************************************
+ * TLVs                                                              *
+ ********************************************************************/
+
+// ID 1 (0x0001)
+typedef struct sDot11fTLVAuthorizedMACs {
+    tANI_U8      present;
+    tANI_U8      mac[6];
+} tDot11fTLVAuthorizedMACs;
+
+#define DOT11F_TLV_AUTHORIZEDMACS ( 1 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_AUTHORIZEDMACS_MIN_LEN ( 6 )
+
+#define DOT11F_TLV_AUTHORIZEDMACS_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvAuthorizedMACs(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVAuthorizedMACs*);
+
+tANI_U32 dot11fPackTlvAuthorizedMACs(tpAniSirGlobal, tDot11fTLVAuthorizedMACs*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvAuthorizedMACs(tpAniSirGlobal, tDot11fTLVAuthorizedMACs*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 3 (0x0003)
+typedef struct sDot11fTLVRequestToEnroll {
+    tANI_U8      present;
+    tANI_U8      req;
+} tDot11fTLVRequestToEnroll;
+
+#define DOT11F_TLV_REQUESTTOENROLL ( 3 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_REQUESTTOENROLL_MIN_LEN ( 1 )
+
+#define DOT11F_TLV_REQUESTTOENROLL_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvRequestToEnroll(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVRequestToEnroll*);
+
+tANI_U32 dot11fPackTlvRequestToEnroll(tpAniSirGlobal, tDot11fTLVRequestToEnroll*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvRequestToEnroll(tpAniSirGlobal, tDot11fTLVRequestToEnroll*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 0 (0x0000)
+typedef struct sDot11fTLVVersion2 {
+    tANI_U8      present;
+    tANI_U8            minor: 4;
+    tANI_U8            major: 4;
+} tDot11fTLVVersion2;
+
+#define DOT11F_TLV_VERSION2 ( 0 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_VERSION2_MIN_LEN ( 1 )
+
+#define DOT11F_TLV_VERSION2_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvVersion2(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVVersion2*);
+
+tANI_U32 dot11fPackTlvVersion2(tpAniSirGlobal, tDot11fTLVVersion2*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvVersion2(tpAniSirGlobal, tDot11fTLVVersion2*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4183 (0x1057)
+typedef struct sDot11fTLVAPSetupLocked {
+    tANI_U8      present;
+    tANI_U8      fLocked;
+} tDot11fTLVAPSetupLocked;
+
+#define DOT11F_TLV_APSETUPLOCKED ( 4183 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_APSETUPLOCKED_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_APSETUPLOCKED_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvAPSetupLocked(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVAPSetupLocked*);
+
+tANI_U32 dot11fPackTlvAPSetupLocked(tpAniSirGlobal, tDot11fTLVAPSetupLocked*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvAPSetupLocked(tpAniSirGlobal, tDot11fTLVAPSetupLocked*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4098 (0x1002)
+typedef struct sDot11fTLVAssociationState {
+    tANI_U8      present;
+    tANI_U16     state;
+} tDot11fTLVAssociationState;
+
+#define DOT11F_TLV_ASSOCIATIONSTATE ( 4098 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_ASSOCIATIONSTATE_MIN_LEN ( 4 )
+
+#define DOT11F_TLV_ASSOCIATIONSTATE_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvAssociationState(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVAssociationState*);
+
+tANI_U32 dot11fPackTlvAssociationState(tpAniSirGlobal, tDot11fTLVAssociationState*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvAssociationState(tpAniSirGlobal, tDot11fTLVAssociationState*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 11 (0x000b)
+typedef struct sDot11fTLVChannelList {
+    tANI_U8      present;
+    tANI_U8      countryString[3];
+    tANI_U8      num_channelList;
+    tANI_U8      channelList[251];
+} tDot11fTLVChannelList;
+
+#define DOT11F_TLV_CHANNELLIST ( 11 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_CHANNELLIST_MIN_LEN ( 4 )
+
+#define DOT11F_TLV_CHANNELLIST_MAX_LEN ( 255 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvChannelList(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVChannelList*);
+
+tANI_U32 dot11fPackTlvChannelList(tpAniSirGlobal, tDot11fTLVChannelList*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvChannelList(tpAniSirGlobal, tDot11fTLVChannelList*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4104 (0x1008)
+typedef struct sDot11fTLVConfigMethods {
+    tANI_U8      present;
+    tANI_U16     methods;
+} tDot11fTLVConfigMethods;
+
+#define DOT11F_TLV_CONFIGMETHODS ( 4104 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_CONFIGMETHODS_MIN_LEN ( 4 )
+
+#define DOT11F_TLV_CONFIGMETHODS_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvConfigMethods(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVConfigMethods*);
+
+tANI_U32 dot11fPackTlvConfigMethods(tpAniSirGlobal, tDot11fTLVConfigMethods*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvConfigMethods(tpAniSirGlobal, tDot11fTLVConfigMethods*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4105 (0x1009)
+typedef struct sDot11fTLVConfigurationError {
+    tANI_U8      present;
+    tANI_U16     error;
+} tDot11fTLVConfigurationError;
+
+#define DOT11F_TLV_CONFIGURATIONERROR ( 4105 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_CONFIGURATIONERROR_MIN_LEN ( 4 )
+
+#define DOT11F_TLV_CONFIGURATIONERROR_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvConfigurationError(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVConfigurationError*);
+
+tANI_U32 dot11fPackTlvConfigurationError(tpAniSirGlobal, tDot11fTLVConfigurationError*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvConfigurationError(tpAniSirGlobal, tDot11fTLVConfigurationError*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 5 (0x0005)
+typedef struct sDot11fTLVConfigurationTimeout {
+    tANI_U8      present;
+    tANI_U8      GOConfigTimeout;
+    tANI_U8      CLConfigTimeout;
+} tDot11fTLVConfigurationTimeout;
+
+#define DOT11F_TLV_CONFIGURATIONTIMEOUT ( 5 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_CONFIGURATIONTIMEOUT_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_CONFIGURATIONTIMEOUT_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvConfigurationTimeout(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVConfigurationTimeout*);
+
+tANI_U32 dot11fPackTlvConfigurationTimeout(tpAniSirGlobal, tDot11fTLVConfigurationTimeout*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvConfigurationTimeout(tpAniSirGlobal, tDot11fTLVConfigurationTimeout*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4113 (0x1011)
+typedef struct sDot11fTLVDeviceName {
+    tANI_U8      present;
+    tANI_U8      num_text;
+    tANI_U8      text[32];
+} tDot11fTLVDeviceName;
+
+#define DOT11F_TLV_DEVICENAME ( 4113 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_DEVICENAME_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_DEVICENAME_MAX_LEN ( 34 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvDeviceName(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVDeviceName*);
+
+tANI_U32 dot11fPackTlvDeviceName(tpAniSirGlobal, tDot11fTLVDeviceName*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvDeviceName(tpAniSirGlobal, tDot11fTLVDeviceName*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4114 (0x1012)
+typedef struct sDot11fTLVDevicePasswordID {
+    tANI_U8      present;
+    tANI_U16     id;
+} tDot11fTLVDevicePasswordID;
+
+#define DOT11F_TLV_DEVICEPASSWORDID ( 4114 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_DEVICEPASSWORDID_MIN_LEN ( 4 )
+
+#define DOT11F_TLV_DEVICEPASSWORDID_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvDevicePasswordID(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVDevicePasswordID*);
+
+tANI_U32 dot11fPackTlvDevicePasswordID(tpAniSirGlobal, tDot11fTLVDevicePasswordID*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvDevicePasswordID(tpAniSirGlobal, tDot11fTLVDevicePasswordID*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 8 (0x0008)
+typedef struct sDot11fTLVExtendedListenTiming {
+    tANI_U8      present;
+    tANI_U16     availibilityPeriod;
+    tANI_U16     availibilityInterval;
+} tDot11fTLVExtendedListenTiming;
+
+#define DOT11F_TLV_EXTENDEDLISTENTIMING ( 8 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_EXTENDEDLISTENTIMING_MIN_LEN ( 5 )
+
+#define DOT11F_TLV_EXTENDEDLISTENTIMING_MAX_LEN ( 5 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvExtendedListenTiming(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVExtendedListenTiming*);
+
+tANI_U32 dot11fPackTlvExtendedListenTiming(tpAniSirGlobal, tDot11fTLVExtendedListenTiming*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvExtendedListenTiming(tpAniSirGlobal, tDot11fTLVExtendedListenTiming*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4 (0x0004)
+typedef struct sDot11fTLVGOIntent {
+    tANI_U8      present;
+    tANI_U8      GOIntent;
+} tDot11fTLVGOIntent;
+
+#define DOT11F_TLV_GOINTENT ( 4 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_GOINTENT_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_GOINTENT_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvGOIntent(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVGOIntent*);
+
+tANI_U32 dot11fPackTlvGOIntent(tpAniSirGlobal, tDot11fTLVGOIntent*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvGOIntent(tpAniSirGlobal, tDot11fTLVGOIntent*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 9 (0x0009)
+typedef struct sDot11fTLVIntendedP2PInterfaceAddress {
+    tANI_U8      present;
+    tANI_U8      P2PInterfaceAddress[6];
+} tDot11fTLVIntendedP2PInterfaceAddress;
+
+#define DOT11F_TLV_INTENDEDP2PINTERFACEADDRESS ( 9 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_INTENDEDP2PINTERFACEADDRESS_MIN_LEN ( 7 )
+
+#define DOT11F_TLV_INTENDEDP2PINTERFACEADDRESS_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvIntendedP2PInterfaceAddress(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVIntendedP2PInterfaceAddress*);
+
+tANI_U32 dot11fPackTlvIntendedP2PInterfaceAddress(tpAniSirGlobal, tDot11fTLVIntendedP2PInterfaceAddress*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvIntendedP2PInterfaceAddress(tpAniSirGlobal, tDot11fTLVIntendedP2PInterfaceAddress*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 18 (0x0012)
+typedef struct sDot11fTLVInvitationFlags {
+    tANI_U8      present;
+    tANI_U8      invitationFlags;
+} tDot11fTLVInvitationFlags;
+
+#define DOT11F_TLV_INVITATIONFLAGS ( 18 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_INVITATIONFLAGS_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_INVITATIONFLAGS_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvInvitationFlags(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVInvitationFlags*);
+
+tANI_U32 dot11fPackTlvInvitationFlags(tpAniSirGlobal, tDot11fTLVInvitationFlags*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvInvitationFlags(tpAniSirGlobal, tDot11fTLVInvitationFlags*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 6 (0x0006)
+typedef struct sDot11fTLVListenChannel {
+    tANI_U8      present;
+    tANI_U8      countryString[3];
+    tANI_U8      regulatoryClass;
+    tANI_U8      channel;
+} tDot11fTLVListenChannel;
+
+#define DOT11F_TLV_LISTENCHANNEL ( 6 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_LISTENCHANNEL_MIN_LEN ( 6 )
+
+#define DOT11F_TLV_LISTENCHANNEL_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvListenChannel(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVListenChannel*);
+
+tANI_U32 dot11fPackTlvListenChannel(tpAniSirGlobal, tDot11fTLVListenChannel*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvListenChannel(tpAniSirGlobal, tDot11fTLVListenChannel*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4129 (0x1021)
+typedef struct sDot11fTLVManufacturer {
+    tANI_U8      present;
+    tANI_U8      num_name;
+    tANI_U8      name[64];
+} tDot11fTLVManufacturer;
+
+#define DOT11F_TLV_MANUFACTURER ( 4129 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_MANUFACTURER_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_MANUFACTURER_MAX_LEN ( 66 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvManufacturer(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVManufacturer*);
+
+tANI_U32 dot11fPackTlvManufacturer(tpAniSirGlobal, tDot11fTLVManufacturer*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvManufacturer(tpAniSirGlobal, tDot11fTLVManufacturer*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 1 (0x0001)
+typedef struct sDot11fTLVMinorReasonCode {
+    tANI_U8      present;
+    tANI_U8      minorReasonCode;
+} tDot11fTLVMinorReasonCode;
+
+#define DOT11F_TLV_MINORREASONCODE ( 1 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_MINORREASONCODE_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_MINORREASONCODE_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvMinorReasonCode(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVMinorReasonCode*);
+
+tANI_U32 dot11fPackTlvMinorReasonCode(tpAniSirGlobal, tDot11fTLVMinorReasonCode*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvMinorReasonCode(tpAniSirGlobal, tDot11fTLVMinorReasonCode*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4131 (0x1023)
+typedef struct sDot11fTLVModelName {
+    tANI_U8      present;
+    tANI_U8      num_text;
+    tANI_U8      text[32];
+} tDot11fTLVModelName;
+
+#define DOT11F_TLV_MODELNAME ( 4131 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_MODELNAME_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_MODELNAME_MAX_LEN ( 34 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvModelName(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVModelName*);
+
+tANI_U32 dot11fPackTlvModelName(tpAniSirGlobal, tDot11fTLVModelName*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvModelName(tpAniSirGlobal, tDot11fTLVModelName*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4132 (0x1024)
+typedef struct sDot11fTLVModelNumber {
+    tANI_U8      present;
+    tANI_U8      num_text;
+    tANI_U8      text[32];
+} tDot11fTLVModelNumber;
+
+#define DOT11F_TLV_MODELNUMBER ( 4132 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_MODELNUMBER_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_MODELNUMBER_MAX_LEN ( 34 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvModelNumber(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVModelNumber*);
+
+tANI_U32 dot11fPackTlvModelNumber(tpAniSirGlobal, tDot11fTLVModelNumber*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvModelNumber(tpAniSirGlobal, tDot11fTLVModelNumber*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 12 (0x000c)
+typedef struct sDot11fTLVNoticeOfAbsence {
+    tANI_U8      present;
+    tANI_U8      index;
+    tANI_U8      CTSWindowOppPS;
+    tANI_U8      num_NoADesc;
+    tANI_U8      NoADesc[36];
+} tDot11fTLVNoticeOfAbsence;
+
+#define DOT11F_TLV_NOTICEOFABSENCE ( 12 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_NOTICEOFABSENCE_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_NOTICEOFABSENCE_MAX_LEN ( 39 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvNoticeOfAbsence(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVNoticeOfAbsence*);
+
+tANI_U32 dot11fPackTlvNoticeOfAbsence(tpAniSirGlobal, tDot11fTLVNoticeOfAbsence*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvNoticeOfAbsence(tpAniSirGlobal, tDot11fTLVNoticeOfAbsence*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 17 (0x0011)
+typedef struct sDot11fTLVOperatingChannel {
+    tANI_U8      present;
+    tANI_U8      countryString[3];
+    tANI_U8      regulatoryClass;
+    tANI_U8      channel;
+} tDot11fTLVOperatingChannel;
+
+#define DOT11F_TLV_OPERATINGCHANNEL ( 17 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_OPERATINGCHANNEL_MIN_LEN ( 6 )
+
+#define DOT11F_TLV_OPERATINGCHANNEL_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvOperatingChannel(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVOperatingChannel*);
+
+tANI_U32 dot11fPackTlvOperatingChannel(tpAniSirGlobal, tDot11fTLVOperatingChannel*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvOperatingChannel(tpAniSirGlobal, tDot11fTLVOperatingChannel*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 2 (0x0002)
+typedef struct sDot11fTLVP2PCapability {
+    tANI_U8      present;
+    tANI_U8      deviceCapability;
+    tANI_U8      groupCapability;
+} tDot11fTLVP2PCapability;
+
+#define DOT11F_TLV_P2PCAPABILITY ( 2 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PCAPABILITY_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_P2PCAPABILITY_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PCapability(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PCapability*);
+
+tANI_U32 dot11fPackTlvP2PCapability(tpAniSirGlobal, tDot11fTLVP2PCapability*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PCapability(tpAniSirGlobal, tDot11fTLVP2PCapability*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 3 (0x0003)
+typedef struct sDot11fTLVP2PDeviceId {
+    tANI_U8      present;
+    tANI_U8      P2PDeviceAddress[6];
+} tDot11fTLVP2PDeviceId;
+
+#define DOT11F_TLV_P2PDEVICEID ( 3 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PDEVICEID_MIN_LEN ( 7 )
+
+#define DOT11F_TLV_P2PDEVICEID_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PDeviceId(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PDeviceId*);
+
+tANI_U32 dot11fPackTlvP2PDeviceId(tpAniSirGlobal, tDot11fTLVP2PDeviceId*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PDeviceId(tpAniSirGlobal, tDot11fTLVP2PDeviceId*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 13 (0x000d)
+typedef struct sDot11fTLVP2PDeviceInfo {
+    tANI_U8              present;
+    tANI_U8              P2PDeviceAddress[6];
+    tANI_U16             configMethod;
+    tANI_U8              primaryDeviceType[8];
+    tDot11fTLVDeviceName DeviceName;
+} tDot11fTLVP2PDeviceInfo;
+
+#define DOT11F_TLV_P2PDEVICEINFO ( 13 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PDEVICEINFO_MIN_LEN ( 17 )
+
+#define DOT11F_TLV_P2PDEVICEINFO_MAX_LEN ( 53 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PDeviceInfo(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PDeviceInfo*);
+
+tANI_U32 dot11fPackTlvP2PDeviceInfo(tpAniSirGlobal, tDot11fTLVP2PDeviceInfo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PDeviceInfo(tpAniSirGlobal, tDot11fTLVP2PDeviceInfo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 7 (0x0007)
+typedef struct sDot11fTLVP2PGroupBssid {
+    tANI_U8      present;
+    tANI_U8      P2PGroupBssid[6];
+} tDot11fTLVP2PGroupBssid;
+
+#define DOT11F_TLV_P2PGROUPBSSID ( 7 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PGROUPBSSID_MIN_LEN ( 7 )
+
+#define DOT11F_TLV_P2PGROUPBSSID_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PGroupBssid(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PGroupBssid*);
+
+tANI_U32 dot11fPackTlvP2PGroupBssid(tpAniSirGlobal, tDot11fTLVP2PGroupBssid*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PGroupBssid(tpAniSirGlobal, tDot11fTLVP2PGroupBssid*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 15 (0x000f)
+typedef struct sDot11fTLVP2PGroupId {
+    tANI_U8      present;
+    tANI_U8      deviceAddress[6];
+    tANI_U8      num_ssid;
+    tANI_U8      ssid[32];
+} tDot11fTLVP2PGroupId;
+
+#define DOT11F_TLV_P2PGROUPID ( 15 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PGROUPID_MIN_LEN ( 7 )
+
+#define DOT11F_TLV_P2PGROUPID_MAX_LEN ( 39 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PGroupId(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PGroupId*);
+
+tANI_U32 dot11fPackTlvP2PGroupId(tpAniSirGlobal, tDot11fTLVP2PGroupId*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PGroupId(tpAniSirGlobal, tDot11fTLVP2PGroupId*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 14 (0x000e)
+typedef struct sDot11fTLVP2PGroupInfo {
+    tANI_U8      present;
+    tANI_U8      num_P2PClientInfoDesc;
+    tANI_U8      P2PClientInfoDesc[1024];
+} tDot11fTLVP2PGroupInfo;
+
+#define DOT11F_TLV_P2PGROUPINFO ( 14 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PGROUPINFO_MIN_LEN ( 1 )
+
+#define DOT11F_TLV_P2PGROUPINFO_MAX_LEN ( 1025 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PGroupInfo(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PGroupInfo*);
+
+tANI_U32 dot11fPackTlvP2PGroupInfo(tpAniSirGlobal, tDot11fTLVP2PGroupInfo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PGroupInfo(tpAniSirGlobal, tDot11fTLVP2PGroupInfo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 0 (0x0000)
+typedef struct sDot11fTLVP2PStatus {
+    tANI_U8      present;
+    tANI_U8      status;
+} tDot11fTLVP2PStatus;
+
+#define DOT11F_TLV_P2PSTATUS ( 0 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PSTATUS_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_P2PSTATUS_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PStatus(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PStatus*);
+
+tANI_U32 dot11fPackTlvP2PStatus(tpAniSirGlobal, tDot11fTLVP2PStatus*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PStatus(tpAniSirGlobal, tDot11fTLVP2PStatus*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4180 (0x1054)
+typedef struct sDot11fTLVPrimaryDeviceType {
+    tANI_U8      present;
+    tANI_U16     primary_category;
+    tANI_U8      oui[4];
+    tANI_U16     sub_category;
+} tDot11fTLVPrimaryDeviceType;
+
+#define DOT11F_TLV_PRIMARYDEVICETYPE ( 4180 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_PRIMARYDEVICETYPE_MIN_LEN ( 10 )
+
+#define DOT11F_TLV_PRIMARYDEVICETYPE_MAX_LEN ( 10 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvPrimaryDeviceType(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVPrimaryDeviceType*);
+
+tANI_U32 dot11fPackTlvPrimaryDeviceType(tpAniSirGlobal, tDot11fTLVPrimaryDeviceType*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvPrimaryDeviceType(tpAniSirGlobal, tDot11fTLVPrimaryDeviceType*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4156 (0x103c)
+typedef struct sDot11fTLVRFBands {
+    tANI_U8      present;
+    tANI_U8      bands;
+} tDot11fTLVRFBands;
+
+#define DOT11F_TLV_RFBANDS ( 4156 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_RFBANDS_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_RFBANDS_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvRFBands(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVRFBands*);
+
+tANI_U32 dot11fPackTlvRFBands(tpAniSirGlobal, tDot11fTLVRFBands*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvRFBands(tpAniSirGlobal, tDot11fTLVRFBands*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4202 (0x106a)
+typedef struct sDot11fTLVRequestDeviceType {
+    tANI_U8      present;
+    tANI_U16     primary_category;
+    tANI_U8      oui[4];
+    tANI_U16     sub_category;
+} tDot11fTLVRequestDeviceType;
+
+#define DOT11F_TLV_REQUESTDEVICETYPE ( 4202 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_REQUESTDEVICETYPE_MIN_LEN ( 10 )
+
+#define DOT11F_TLV_REQUESTDEVICETYPE_MAX_LEN ( 10 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvRequestDeviceType(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVRequestDeviceType*);
+
+tANI_U32 dot11fPackTlvRequestDeviceType(tpAniSirGlobal, tDot11fTLVRequestDeviceType*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvRequestDeviceType(tpAniSirGlobal, tDot11fTLVRequestDeviceType*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4154 (0x103a)
+typedef struct sDot11fTLVRequestType {
+    tANI_U8      present;
+    tANI_U8      reqType;
+} tDot11fTLVRequestType;
+
+#define DOT11F_TLV_REQUESTTYPE ( 4154 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_REQUESTTYPE_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_REQUESTTYPE_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvRequestType(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVRequestType*);
+
+tANI_U32 dot11fPackTlvRequestType(tpAniSirGlobal, tDot11fTLVRequestType*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvRequestType(tpAniSirGlobal, tDot11fTLVRequestType*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4155 (0x103b)
+typedef struct sDot11fTLVResponseType {
+    tANI_U8      present;
+    tANI_U8      resType;
+} tDot11fTLVResponseType;
+
+#define DOT11F_TLV_RESPONSETYPE ( 4155 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_RESPONSETYPE_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_RESPONSETYPE_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvResponseType(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVResponseType*);
+
+tANI_U32 dot11fPackTlvResponseType(tpAniSirGlobal, tDot11fTLVResponseType*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvResponseType(tpAniSirGlobal, tDot11fTLVResponseType*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4161 (0x1041)
+typedef struct sDot11fTLVSelectedRegistrar {
+    tANI_U8      present;
+    tANI_U8      selected;
+} tDot11fTLVSelectedRegistrar;
+
+#define DOT11F_TLV_SELECTEDREGISTRAR ( 4161 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_SELECTEDREGISTRAR_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_SELECTEDREGISTRAR_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvSelectedRegistrar(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVSelectedRegistrar*);
+
+tANI_U32 dot11fPackTlvSelectedRegistrar(tpAniSirGlobal, tDot11fTLVSelectedRegistrar*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvSelectedRegistrar(tpAniSirGlobal, tDot11fTLVSelectedRegistrar*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4179 (0x1053)
+typedef struct sDot11fTLVSelectedRegistrarConfigMethods {
+    tANI_U8      present;
+    tANI_U16     methods;
+} tDot11fTLVSelectedRegistrarConfigMethods;
+
+#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS ( 4179 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS_MIN_LEN ( 4 )
+
+#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvSelectedRegistrarConfigMethods(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVSelectedRegistrarConfigMethods*);
+
+tANI_U32 dot11fPackTlvSelectedRegistrarConfigMethods(tpAniSirGlobal, tDot11fTLVSelectedRegistrarConfigMethods*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvSelectedRegistrarConfigMethods(tpAniSirGlobal, tDot11fTLVSelectedRegistrarConfigMethods*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4162 (0x1042)
+typedef struct sDot11fTLVSerialNumber {
+    tANI_U8      present;
+    tANI_U8      num_text;
+    tANI_U8      text[32];
+} tDot11fTLVSerialNumber;
+
+#define DOT11F_TLV_SERIALNUMBER ( 4162 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_SERIALNUMBER_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_SERIALNUMBER_MAX_LEN ( 34 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvSerialNumber(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVSerialNumber*);
+
+tANI_U32 dot11fPackTlvSerialNumber(tpAniSirGlobal, tDot11fTLVSerialNumber*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvSerialNumber(tpAniSirGlobal, tDot11fTLVSerialNumber*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4167 (0x1047)
+typedef struct sDot11fTLVUUID_E {
+    tANI_U8      present;
+    tANI_U8      uuid[16];
+} tDot11fTLVUUID_E;
+
+#define DOT11F_TLV_UUID_E ( 4167 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_UUID_E_MIN_LEN ( 18 )
+
+#define DOT11F_TLV_UUID_E_MAX_LEN ( 18 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvUUID_E(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVUUID_E*);
+
+tANI_U32 dot11fPackTlvUUID_E(tpAniSirGlobal, tDot11fTLVUUID_E*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvUUID_E(tpAniSirGlobal, tDot11fTLVUUID_E*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4168 (0x1048)
+typedef struct sDot11fTLVUUID_R {
+    tANI_U8      present;
+    tANI_U8      uuid[16];
+} tDot11fTLVUUID_R;
+
+#define DOT11F_TLV_UUID_R ( 4168 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_UUID_R_MIN_LEN ( 18 )
+
+#define DOT11F_TLV_UUID_R_MAX_LEN ( 18 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvUUID_R(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVUUID_R*);
+
+tANI_U32 dot11fPackTlvUUID_R(tpAniSirGlobal, tDot11fTLVUUID_R*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvUUID_R(tpAniSirGlobal, tDot11fTLVUUID_R*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4169 (0x1049)
+typedef struct sDot11fTLVVendorExtension {
+    tANI_U8                   present;
+    tANI_U8                   vendorId[3];
+    tDot11fTLVVersion2        Version2;
+    tDot11fTLVAuthorizedMACs  AuthorizedMACs;
+    tDot11fTLVRequestToEnroll RequestToEnroll;
+} tDot11fTLVVendorExtension;
+
+#define DOT11F_TLV_VENDOREXTENSION ( 4169 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_VENDOREXTENSION_MIN_LEN ( 5 )
+
+#define DOT11F_TLV_VENDOREXTENSION_MAX_LEN ( 19 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvVendorExtension(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVVendorExtension*);
+
+tANI_U32 dot11fPackTlvVendorExtension(tpAniSirGlobal, tDot11fTLVVendorExtension*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvVendorExtension(tpAniSirGlobal, tDot11fTLVVendorExtension*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4170 (0x104a)
+typedef struct sDot11fTLVVersion {
+    tANI_U8      present;
+    tANI_U8            minor: 4;
+    tANI_U8            major: 4;
+} tDot11fTLVVersion;
+
+#define DOT11F_TLV_VERSION ( 4170 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_VERSION_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_VERSION_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvVersion(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVVersion*);
+
+tANI_U32 dot11fPackTlvVersion(tpAniSirGlobal, tDot11fTLVVersion*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvVersion(tpAniSirGlobal, tDot11fTLVVersion*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 4164 (0x1044)
+typedef struct sDot11fTLVWPSState {
+    tANI_U8      present;
+    tANI_U8      state;
+} tDot11fTLVWPSState;
+
+#define DOT11F_TLV_WPSSTATE ( 4164 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_WPSSTATE_MIN_LEN ( 3 )
+
+#define DOT11F_TLV_WPSSTATE_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvWPSState(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVWPSState*);
+
+tANI_U32 dot11fPackTlvWPSState(tpAniSirGlobal, tDot11fTLVWPSState*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvWPSState(tpAniSirGlobal, tDot11fTLVWPSState*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 16 (0x0010)
+typedef struct sDot11fTLVP2PInterface {
+    tANI_U8      present;
+    tANI_U8      P2PDeviceAddress[6];
+} tDot11fTLVP2PInterface;
+
+#define DOT11F_TLV_P2PINTERFACE ( 16 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PINTERFACE_MIN_LEN ( 7 )
+
+#define DOT11F_TLV_P2PINTERFACE_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PInterface(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PInterface*);
+
+tANI_U32 dot11fPackTlvP2PInterface(tpAniSirGlobal, tDot11fTLVP2PInterface*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PInterface(tpAniSirGlobal, tDot11fTLVP2PInterface*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// ID 10 (0x000a)
+typedef struct sDot11fTLVP2PManageability {
+    tANI_U8      present;
+    tANI_U8      manageability;
+} tDot11fTLVP2PManageability;
+
+#define DOT11F_TLV_P2PMANAGEABILITY ( 10 )
+
+// N.B. These #defines do *not* include the ID & length
+#define DOT11F_TLV_P2PMANAGEABILITY_MIN_LEN ( 2 )
+
+#define DOT11F_TLV_P2PMANAGEABILITY_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackTlvP2PManageability(tpAniSirGlobal, tANI_U8*,tANI_U16, tDot11fTLVP2PManageability*);
+
+tANI_U32 dot11fPackTlvP2PManageability(tpAniSirGlobal, tDot11fTLVP2PManageability*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedTlvP2PManageability(tpAniSirGlobal, tDot11fTLVP2PManageability*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+/*********************************************************************
+ * Information Elements                                              *
+ ********************************************************************/
+
+// EID 1 (0x01)
+typedef struct sDot11fIEAPName {
+    tANI_U8      present;
+    tANI_U8      num_name;
+    tANI_U8      name[32];
+} tDot11fIEAPName;
+
+#define DOT11F_EID_APNAME ( 1 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_APNAME_MIN_LEN ( 1 )
+
+#define DOT11F_IE_APNAME_MAX_LEN ( 32 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeAPName(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAPName*);
+
+tANI_U32 dot11fPackIeAPName(tpAniSirGlobal, tDot11fIEAPName*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEAPName(tpAniSirGlobal, tDot11fIEAPName*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 4 (0x04)
+typedef struct sDot11fIEBPIndicator {
+    tANI_U8      present;
+    tANI_U8      indicator;
+    tANI_U8      type;
+} tDot11fIEBPIndicator;
+
+#define DOT11F_EID_BPINDICATOR ( 4 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_BPINDICATOR_MIN_LEN ( 2 )
+
+#define DOT11F_IE_BPINDICATOR_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeBPIndicator(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBPIndicator*);
+
+tANI_U32 dot11fPackIeBPIndicator(tpAniSirGlobal, tDot11fIEBPIndicator*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEBPIndicator(tpAniSirGlobal, tDot11fIEBPIndicator*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 2 (0x02)
+typedef struct sDot11fIECondensedCountryStr {
+    tANI_U8      present;
+    tANI_U8      countryStr[2];
+} tDot11fIECondensedCountryStr;
+
+#define DOT11F_EID_CONDENSEDCOUNTRYSTR ( 2 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CONDENSEDCOUNTRYSTR_MIN_LEN ( 2 )
+
+#define DOT11F_IE_CONDENSEDCOUNTRYSTR_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCondensedCountryStr(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECondensedCountryStr*);
+
+tANI_U32 dot11fPackIeCondensedCountryStr(tpAniSirGlobal, tDot11fIECondensedCountryStr*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECondensedCountryStr(tpAniSirGlobal, tDot11fIECondensedCountryStr*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 2 (0x02)
+typedef struct sDot11fIEGTK {
+    tANI_U8      present;
+    tANI_U16            keyId: 2;
+    tANI_U16         reserved: 14;
+    tANI_U8      keyLength;
+    tANI_U8      RSC[8];
+    tANI_U8      num_key;
+    tANI_U8      key[32];
+} tDot11fIEGTK;
+
+#define DOT11F_EID_GTK ( 2 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_GTK_MIN_LEN ( 16 )
+
+#define DOT11F_IE_GTK_MAX_LEN ( 43 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeGTK(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEGTK*);
+
+tANI_U32 dot11fPackIeGTK(tpAniSirGlobal, tDot11fIEGTK*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEGTK(tpAniSirGlobal, tDot11fIEGTK*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 2 (0x02)
+typedef struct sDot11fIEHCF {
+    tANI_U8      present;
+    tANI_U8      enabled;
+} tDot11fIEHCF;
+
+#define DOT11F_EID_HCF ( 2 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_HCF_MIN_LEN ( 1 )
+
+#define DOT11F_IE_HCF_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeHCF(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHCF*);
+
+tANI_U32 dot11fPackIeHCF(tpAniSirGlobal, tDot11fIEHCF*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEHCF(tpAniSirGlobal, tDot11fIEHCF*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 9 (0x09)
+typedef struct sDot11fIELLAttr {
+    tANI_U8      present;
+    tANI_U32     defer_threshold;
+} tDot11fIELLAttr;
+
+#define DOT11F_EID_LLATTR ( 9 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_LLATTR_MIN_LEN ( 4 )
+
+#define DOT11F_IE_LLATTR_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeLLAttr(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELLAttr*);
+
+tANI_U32 dot11fPackIeLLAttr(tpAniSirGlobal, tDot11fIELLAttr*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIELLAttr(tpAniSirGlobal, tDot11fIELLAttr*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 8 (0x08)
+typedef struct sDot11fIELoadBalance {
+    tANI_U8      present;
+    tANI_U8      bssid[6];
+    tANI_U8      channel;
+} tDot11fIELoadBalance;
+
+#define DOT11F_EID_LOADBALANCE ( 8 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_LOADBALANCE_MIN_LEN ( 7 )
+
+#define DOT11F_IE_LOADBALANCE_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeLoadBalance(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELoadBalance*);
+
+tANI_U32 dot11fPackIeLoadBalance(tpAniSirGlobal, tDot11fIELoadBalance*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIELoadBalance(tpAniSirGlobal, tDot11fIELoadBalance*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 6 (0x06)
+typedef struct sDot11fIELoadInfo {
+    tANI_U8      present;
+    tANI_U16     num_stas;
+    tANI_U16     channel_util;
+} tDot11fIELoadInfo;
+
+#define DOT11F_EID_LOADINFO ( 6 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_LOADINFO_MIN_LEN ( 4 )
+
+#define DOT11F_IE_LOADINFO_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeLoadInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELoadInfo*);
+
+tANI_U32 dot11fPackIeLoadInfo(tpAniSirGlobal, tDot11fIELoadInfo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIELoadInfo(tpAniSirGlobal, tDot11fIELoadInfo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 7 (0x07)
+typedef struct sDot11fIEPropAssocType {
+    tANI_U8      present;
+    tANI_U8      type;
+} tDot11fIEPropAssocType;
+
+#define DOT11F_EID_PROPASSOCTYPE ( 7 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_PROPASSOCTYPE_MIN_LEN ( 1 )
+
+#define DOT11F_IE_PROPASSOCTYPE_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIePropAssocType(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropAssocType*);
+
+tANI_U32 dot11fPackIePropAssocType(tpAniSirGlobal, tDot11fIEPropAssocType*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEPropAssocType(tpAniSirGlobal, tDot11fIEPropAssocType*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 10 (0x0a)
+typedef struct sDot11fIEPropCapability {
+    tANI_U8      present;
+    tANI_U16     capability;
+} tDot11fIEPropCapability;
+
+#define DOT11F_EID_PROPCAPABILITY ( 10 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_PROPCAPABILITY_MIN_LEN ( 2 )
+
+#define DOT11F_IE_PROPCAPABILITY_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIePropCapability(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropCapability*);
+
+tANI_U32 dot11fPackIePropCapability(tpAniSirGlobal, tDot11fIEPropCapability*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEPropCapability(tpAniSirGlobal, tDot11fIEPropCapability*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 15 (0x0f)
+typedef struct sDot11fIEPropChannSwitchAnn {
+    tANI_U8      present;
+    tANI_U8      mode;
+    tANI_U8      primary_channel;
+    tANI_U8      sub_band;
+    tANI_U8      channel_switch_count;
+} tDot11fIEPropChannSwitchAnn;
+
+#define DOT11F_EID_PROPCHANNSWITCHANN ( 15 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_PROPCHANNSWITCHANN_MIN_LEN ( 4 )
+
+#define DOT11F_IE_PROPCHANNSWITCHANN_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIePropChannSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropChannSwitchAnn*);
+
+tANI_U32 dot11fPackIePropChannSwitchAnn(tpAniSirGlobal, tDot11fIEPropChannSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEPropChannSwitchAnn(tpAniSirGlobal, tDot11fIEPropChannSwitchAnn*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 12 (0x0c)
+typedef struct sDot11fIEPropEDCAParams {
+    tANI_U8      present;
+    tANI_U8      qos;
+    tANI_U8      reserved;
+    tANI_U8       acbe_aifsn: 4;
+    tANI_U8         acbe_acm: 1;
+    tANI_U8         acbe_aci: 2;
+    tANI_U8          unused1: 1;
+    tANI_U8         acbe_min: 4;
+    tANI_U8         acbe_max: 4;
+    tANI_U16     acbe_txoplimit;
+    tANI_U8       acbk_aifsn: 4;
+    tANI_U8         acbk_acm: 1;
+    tANI_U8         acbk_aci: 2;
+    tANI_U8          unused2: 1;
+    tANI_U8         acbk_min: 4;
+    tANI_U8         acbk_max: 4;
+    tANI_U16     acbk_txoplimit;
+    tANI_U8       acvi_aifsn: 4;
+    tANI_U8         acvi_acm: 1;
+    tANI_U8         acvi_aci: 2;
+    tANI_U8          unused3: 1;
+    tANI_U8         acvi_min: 4;
+    tANI_U8         acvi_max: 4;
+    tANI_U16     acvi_txoplimit;
+    tANI_U8       acvo_aifsn: 4;
+    tANI_U8         acvo_acm: 1;
+    tANI_U8         acvo_aci: 2;
+    tANI_U8          unused4: 1;
+    tANI_U8         acvo_min: 4;
+    tANI_U8         acvo_max: 4;
+    tANI_U16     acvo_txoplimit;
+} tDot11fIEPropEDCAParams;
+
+#define DOT11F_EID_PROPEDCAPARAMS ( 12 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_PROPEDCAPARAMS_MIN_LEN ( 18 )
+
+#define DOT11F_IE_PROPEDCAPARAMS_MAX_LEN ( 18 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIePropEDCAParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropEDCAParams*);
+
+tANI_U32 dot11fPackIePropEDCAParams(tpAniSirGlobal, tDot11fIEPropEDCAParams*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEPropEDCAParams(tpAniSirGlobal, tDot11fIEPropEDCAParams*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 16 (0x10)
+typedef struct sDot11fIEPropQuietBSS {
+    tANI_U8      present;
+    tANI_U8      quiet_count;
+    tANI_U8      quiet_period;
+    tANI_U16     quiet_duration;
+    tANI_U16     quiet_offset;
+} tDot11fIEPropQuietBSS;
+
+#define DOT11F_EID_PROPQUIETBSS ( 16 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_PROPQUIETBSS_MIN_LEN ( 6 )
+
+#define DOT11F_IE_PROPQUIETBSS_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIePropQuietBSS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropQuietBSS*);
+
+tANI_U32 dot11fPackIePropQuietBSS(tpAniSirGlobal, tDot11fIEPropQuietBSS*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEPropQuietBSS(tpAniSirGlobal, tDot11fIEPropQuietBSS*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 0 (0x00)
+typedef struct sDot11fIEPropSuppRates {
+    tANI_U8      present;
+    tANI_U8      num_rates;
+    tANI_U8      rates[12];
+} tDot11fIEPropSuppRates;
+
+#define DOT11F_EID_PROPSUPPRATES ( 0 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_PROPSUPPRATES_MIN_LEN ( 1 )
+
+#define DOT11F_IE_PROPSUPPRATES_MAX_LEN ( 12 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIePropSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPropSuppRates*);
+
+tANI_U32 dot11fPackIePropSuppRates(tpAniSirGlobal, tDot11fIEPropSuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEPropSuppRates(tpAniSirGlobal, tDot11fIEPropSuppRates*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 3 (0x03)
+typedef struct sDot11fIER0KH_ID {
+    tANI_U8      present;
+    tANI_U8      num_PMK_R0_ID;
+    tANI_U8      PMK_R0_ID[48];
+} tDot11fIER0KH_ID;
+
+#define DOT11F_EID_R0KH_ID ( 3 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_R0KH_ID_MIN_LEN ( 1 )
+
+#define DOT11F_IE_R0KH_ID_MAX_LEN ( 48 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeR0KH_ID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIER0KH_ID*);
+
+tANI_U32 dot11fPackIeR0KH_ID(tpAniSirGlobal, tDot11fIER0KH_ID*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIER0KH_ID(tpAniSirGlobal, tDot11fIER0KH_ID*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 1 (0x01)
+typedef struct sDot11fIER1KH_ID {
+    tANI_U8      present;
+    tANI_U8      PMK_R1_ID[6];
+} tDot11fIER1KH_ID;
+
+#define DOT11F_EID_R1KH_ID ( 1 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_R1KH_ID_MIN_LEN ( 6 )
+
+#define DOT11F_IE_R1KH_ID_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeR1KH_ID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIER1KH_ID*);
+
+tANI_U32 dot11fPackIeR1KH_ID(tpAniSirGlobal, tDot11fIER1KH_ID*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIER1KH_ID(tpAniSirGlobal, tDot11fIER1KH_ID*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 1 (0x01)
+typedef struct sDot11fIETSFInfo {
+    tANI_U8      present;
+    tANI_U16     TsfOffset;
+    tANI_U16     BeaconIntvl;
+} tDot11fIETSFInfo;
+
+#define DOT11F_EID_TSFINFO ( 1 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TSFINFO_MIN_LEN ( 4 )
+
+#define DOT11F_IE_TSFINFO_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTSFInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSFInfo*);
+
+tANI_U32 dot11fPackIeTSFInfo(tpAniSirGlobal, tDot11fIETSFInfo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETSFInfo(tpAniSirGlobal, tDot11fIETSFInfo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 18 (0x12)
+typedef struct sDot11fIETaurus {
+    tANI_U8      present;
+    tANI_U16     baTIDBitmap;
+    tANI_U16     baPolicy;
+    tANI_U16     baBufferSize: 12;
+    tANI_U16             rsvd: 4;
+} tDot11fIETaurus;
+
+#define DOT11F_EID_TAURUS ( 18 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TAURUS_MIN_LEN ( 6 )
+
+#define DOT11F_IE_TAURUS_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTaurus(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETaurus*);
+
+tANI_U32 dot11fPackIeTaurus(tpAniSirGlobal, tDot11fIETaurus*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETaurus(tpAniSirGlobal, tDot11fIETaurus*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 14 (0x0e)
+typedef struct sDot11fIETitan {
+    tANI_U8      present;
+    tANI_U8      concat_tcid_bitmap;
+    tANI_U8      compression_tcid_bitmap;
+    tANI_U8      cb_state;
+    tANI_U8      rev_fcs_state;
+} tDot11fIETitan;
+
+#define DOT11F_EID_TITAN ( 14 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TITAN_MIN_LEN ( 4 )
+
+#define DOT11F_IE_TITAN_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTitan(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETitan*);
+
+tANI_U32 dot11fPackIeTitan(tpAniSirGlobal, tDot11fIETitan*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETitan(tpAniSirGlobal, tDot11fIETitan*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 17 (0x11)
+typedef struct sDot11fIETriggerStaBgScan {
+    tANI_U8      present;
+    tANI_U8      enable;
+} tDot11fIETriggerStaBgScan;
+
+#define DOT11F_EID_TRIGGERSTABGSCAN ( 17 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TRIGGERSTABGSCAN_MIN_LEN ( 1 )
+
+#define DOT11F_IE_TRIGGERSTABGSCAN_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTriggerStaBgScan(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETriggerStaBgScan*);
+
+tANI_U32 dot11fPackIeTriggerStaBgScan(tpAniSirGlobal, tDot11fIETriggerStaBgScan*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETriggerStaBgScan(tpAniSirGlobal, tDot11fIETriggerStaBgScan*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 11 (0x0b)
+typedef struct sDot11fIEVersion {
+    tANI_U8      present;
+    tANI_U32     chip_rev;
+    tANI_U8      card_type;
+    tANI_U8      num_build_version;
+    tANI_U8      build_version[20];
+} tDot11fIEVersion;
+
+#define DOT11F_EID_VERSION ( 11 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_VERSION_MIN_LEN ( 5 )
+
+#define DOT11F_IE_VERSION_MAX_LEN ( 25 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeVersion(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVersion*);
+
+tANI_U32 dot11fPackIeVersion(tpAniSirGlobal, tDot11fIEVersion*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEVersion(tpAniSirGlobal, tDot11fIEVersion*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 3 (0x03)
+typedef struct sDot11fIEWDS {
+    tANI_U8      present;
+    tANI_U8      num_wdsData;
+    tANI_U8      wdsData[64];
+} tDot11fIEWDS;
+
+#define DOT11F_EID_WDS ( 3 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WDS_MIN_LEN ( 0 )
+
+#define DOT11F_IE_WDS_MAX_LEN ( 64 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWDS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWDS*);
+
+tANI_U32 dot11fPackIeWDS(tpAniSirGlobal, tDot11fIEWDS*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWDS(tpAniSirGlobal, tDot11fIEWDS*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 51 (0x33)
+typedef struct sDot11fIEAPChannelReport {
+    tANI_U8      present;
+    tANI_U8      regulatoryClass;
+    tANI_U8      num_channelList;
+    tANI_U8      channelList[50];
+} tDot11fIEAPChannelReport;
+
+#define DOT11F_EID_APCHANNELREPORT ( 51 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_APCHANNELREPORT_MIN_LEN ( 1 )
+
+#define DOT11F_IE_APCHANNELREPORT_MAX_LEN ( 51 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeAPChannelReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAPChannelReport*);
+
+tANI_U32 dot11fPackIeAPChannelReport(tpAniSirGlobal, tDot11fIEAPChannelReport*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEAPChannelReport(tpAniSirGlobal, tDot11fIEAPChannelReport*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 2 (0x02)
+typedef struct sDot11fIEBcnReportingDetail {
+    tANI_U8      present;
+    tANI_U8      reportingDetail;
+} tDot11fIEBcnReportingDetail;
+
+#define DOT11F_EID_BCNREPORTINGDETAIL ( 2 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_BCNREPORTINGDETAIL_MIN_LEN ( 1 )
+
+#define DOT11F_IE_BCNREPORTINGDETAIL_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeBcnReportingDetail(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBcnReportingDetail*);
+
+tANI_U32 dot11fPackIeBcnReportingDetail(tpAniSirGlobal, tDot11fIEBcnReportingDetail*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEBcnReportingDetail(tpAniSirGlobal, tDot11fIEBcnReportingDetail*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 1 (0x01)
+typedef struct sDot11fIEBeaconReportFrmBody {
+    tANI_U8      present;
+    tANI_U8      num_reportedFields;
+    tANI_U8      reportedFields[224];
+} tDot11fIEBeaconReportFrmBody;
+
+#define DOT11F_EID_BEACONREPORTFRMBODY ( 1 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_BEACONREPORTFRMBODY_MIN_LEN ( 0 )
+
+#define DOT11F_IE_BEACONREPORTFRMBODY_MAX_LEN ( 224 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeBeaconReportFrmBody(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBeaconReportFrmBody*);
+
+tANI_U32 dot11fPackIeBeaconReportFrmBody(tpAniSirGlobal, tDot11fIEBeaconReportFrmBody*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEBeaconReportFrmBody(tpAniSirGlobal, tDot11fIEBeaconReportFrmBody*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 1 (0x01)
+typedef struct sDot11fIEBeaconReporting {
+    tANI_U8      present;
+    tANI_U8      reportingCondition;
+    tANI_U8      threshold;
+} tDot11fIEBeaconReporting;
+
+#define DOT11F_EID_BEACONREPORTING ( 1 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_BEACONREPORTING_MIN_LEN ( 2 )
+
+#define DOT11F_IE_BEACONREPORTING_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeBeaconReporting(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEBeaconReporting*);
+
+tANI_U32 dot11fPackIeBeaconReporting(tpAniSirGlobal, tDot11fIEBeaconReporting*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEBeaconReporting(tpAniSirGlobal, tDot11fIEBeaconReporting*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 66 (0x42)
+typedef struct sDot11fIEMeasurementPilot {
+    tANI_U8      present;
+    tANI_U8      measurementPilot;
+    tANI_U8      num_vendorSpecific;
+    tANI_U8      vendorSpecific[255];
+} tDot11fIEMeasurementPilot;
+
+#define DOT11F_EID_MEASUREMENTPILOT ( 66 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_MEASUREMENTPILOT_MIN_LEN ( 1 )
+
+#define DOT11F_IE_MEASUREMENTPILOT_MAX_LEN ( 256 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeMeasurementPilot(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementPilot*);
+
+tANI_U32 dot11fPackIeMeasurementPilot(tpAniSirGlobal, tDot11fIEMeasurementPilot*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEMeasurementPilot(tpAniSirGlobal, tDot11fIEMeasurementPilot*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 71 (0x47)
+typedef struct sDot11fIEMultiBssid {
+    tANI_U8      present;
+    tANI_U8      maxBSSIDIndicator;
+    tANI_U8      num_vendorSpecific;
+    tANI_U8      vendorSpecific[255];
+} tDot11fIEMultiBssid;
+
+#define DOT11F_EID_MULTIBSSID ( 71 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_MULTIBSSID_MIN_LEN ( 1 )
+
+#define DOT11F_IE_MULTIBSSID_MAX_LEN ( 256 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeMultiBssid(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMultiBssid*);
+
+tANI_U32 dot11fPackIeMultiBssid(tpAniSirGlobal, tDot11fIEMultiBssid*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEMultiBssid(tpAniSirGlobal, tDot11fIEMultiBssid*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 57 (0x39)
+typedef struct sDot11fIERICData {
+    tANI_U8      present;
+    tANI_U8      Identifier;
+    tANI_U8      resourceDescCount;
+    tANI_U16     statusCode;
+} tDot11fIERICData;
+
+#define DOT11F_EID_RICDATA ( 57 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_RICDATA_MIN_LEN ( 4 )
+
+#define DOT11F_IE_RICDATA_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRICData(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICData*);
+
+tANI_U32 dot11fPackIeRICData(tpAniSirGlobal, tDot11fIERICData*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERICData(tpAniSirGlobal, tDot11fIERICData*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 75 (0x4b)
+typedef struct sDot11fIERICDescriptor {
+    tANI_U8      present;
+    tANI_U8      resourceType;
+    tANI_U8      num_variableData;
+    tANI_U8      variableData[255];
+} tDot11fIERICDescriptor;
+
+#define DOT11F_EID_RICDESCRIPTOR ( 75 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_RICDESCRIPTOR_MIN_LEN ( 1 )
+
+#define DOT11F_IE_RICDESCRIPTOR_MAX_LEN ( 256 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRICDescriptor(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICDescriptor*);
+
+tANI_U32 dot11fPackIeRICDescriptor(tpAniSirGlobal, tDot11fIERICDescriptor*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERICDescriptor(tpAniSirGlobal, tDot11fIERICDescriptor*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 70 (0x46)
+typedef struct sDot11fIERRMEnabledCap {
+    tANI_U8      present;
+    tANI_U8  LinkMeasurement: 1;
+    tANI_U8      NeighborRpt: 1;
+    tANI_U8         parallel: 1;
+    tANI_U8         repeated: 1;
+    tANI_U8    BeaconPassive: 1;
+    tANI_U8     BeaconActive: 1;
+    tANI_U8      BeaconTable: 1;
+    tANI_U8    BeaconRepCond: 1;
+    tANI_U8 FrameMeasurement: 1;
+    tANI_U8      ChannelLoad: 1;
+    tANI_U8   NoiseHistogram: 1;
+    tANI_U8       statistics: 1;
+    tANI_U8   LCIMeasurement: 1;
+    tANI_U8       LCIAzimuth: 1;
+    tANI_U8    TCMCapability: 1;
+    tANI_U8     triggeredTCM: 1;
+    tANI_U8     APChanReport: 1;
+    tANI_U8    RRMMIBEnabled: 1;
+    tANI_U8 operatingChanMax: 3;
+    tANI_U8 nonOperatinChanMax: 3;
+    tANI_U8 MeasurementPilot: 3;
+    tANI_U8 MeasurementPilotEnabled: 1;
+    tANI_U8 NeighborTSFOffset: 1;
+    tANI_U8  RCPIMeasurement: 1;
+    tANI_U8  RSNIMeasurement: 1;
+    tANI_U8 BssAvgAccessDelay: 1;
+    tANI_U8 BSSAvailAdmission: 1;
+    tANI_U8 AntennaInformation: 1;
+    tANI_U8         reserved: 6;
+} tDot11fIERRMEnabledCap;
+
+#define DOT11F_EID_RRMENABLEDCAP ( 70 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_RRMENABLEDCAP_MIN_LEN ( 5 )
+
+#define DOT11F_IE_RRMENABLEDCAP_MAX_LEN ( 5 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRRMEnabledCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERRMEnabledCap*);
+
+tANI_U32 dot11fPackIeRRMEnabledCap(tpAniSirGlobal, tDot11fIERRMEnabledCap*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERRMEnabledCap(tpAniSirGlobal, tDot11fIERRMEnabledCap*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 10 (0x0a)
+typedef struct sDot11fIERequestedInfo {
+    tANI_U8      present;
+    tANI_U8      num_requested_eids;
+    tANI_U8      requested_eids[255];
+} tDot11fIERequestedInfo;
+
+#define DOT11F_EID_REQUESTEDINFO ( 10 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_REQUESTEDINFO_MIN_LEN ( 0 )
+
+#define DOT11F_IE_REQUESTEDINFO_MAX_LEN ( 255 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRequestedInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERequestedInfo*);
+
+tANI_U32 dot11fPackIeRequestedInfo(tpAniSirGlobal, tDot11fIERequestedInfo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERequestedInfo(tpAniSirGlobal, tDot11fIERequestedInfo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 0 (0x00)
+typedef struct sDot11fIESSID {
+    tANI_U8      present;
+    tANI_U8      num_ssid;
+    tANI_U8      ssid[32];
+} tDot11fIESSID;
+
+#define DOT11F_EID_SSID ( 0 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_SSID_MIN_LEN ( 0 )
+
+#define DOT11F_IE_SSID_MAX_LEN ( 32 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeSSID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESSID*);
+
+tANI_U32 dot11fPackIeSSID(tpAniSirGlobal, tDot11fIESSID*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIESSID(tpAniSirGlobal, tDot11fIESSID*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 15 (0x0f)
+typedef struct sDot11fIESchedule {
+    tANI_U8      present;
+    tANI_U16      aggregation: 1;
+    tANI_U16             tsid: 4;
+    tANI_U16        direction: 2;
+    tANI_U16         reserved: 9;
+    tANI_U32     service_start_time;
+    tANI_U32     service_interval;
+    tANI_U16     max_service_dur;
+    tANI_U16     spec_interval;
+} tDot11fIESchedule;
+
+#define DOT11F_EID_SCHEDULE ( 15 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_SCHEDULE_MIN_LEN ( 14 )
+
+#define DOT11F_IE_SCHEDULE_MAX_LEN ( 14 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeSchedule(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESchedule*);
+
+tANI_U32 dot11fPackIeSchedule(tpAniSirGlobal, tDot11fIESchedule*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIESchedule(tpAniSirGlobal, tDot11fIESchedule*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 14 (0x0e)
+typedef struct sDot11fIETCLAS {
+    tANI_U8      present;
+    tANI_U8      user_priority;
+    tANI_U8      classifier_type;
+    tANI_U8      classifier_mask;
+    union
+    {
+        struct
+        {
+            tANI_U8 source[6];
+            tANI_U8 dest[6];
+            tANI_U16 type;
+        } EthParams; /* classifier_type = 0 */
+        struct
+        {
+            tANI_U8 version;
+            union
+            {
+                struct
+                {
+                    tANI_U8 source[4];
+                    tANI_U8 dest[4];
+                    tANI_U16 src_port;
+                    tANI_U16 dest_port;
+                    tANI_U8 DSCP;
+                    tANI_U8 proto;
+                    tANI_U8 reserved;
+                } IpV4Params; /* version = 4 */
+                struct
+                {
+                    tANI_U8 source[16];
+                    tANI_U8 dest[16];
+                    tANI_U16 src_port;
+                    tANI_U16 dest_port;
+                    tANI_U8 flow_label[3];
+                } IpV6Params; /* version = 6 */
+            } params;
+        } IpParams; /* classifier_type = 1 */
+        struct
+        {
+            tANI_U16 tag_type;
+        } Params8021dq; /* classifier_type = 2 */
+    } info;
+} tDot11fIETCLAS;
+
+#define DOT11F_EID_TCLAS ( 14 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TCLAS_MIN_LEN ( 5 )
+
+#define DOT11F_IE_TCLAS_MAX_LEN ( 43 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTCLAS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETCLAS*);
+
+tANI_U32 dot11fPackIeTCLAS(tpAniSirGlobal, tDot11fIETCLAS*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETCLAS(tpAniSirGlobal, tDot11fIETCLAS*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 44 (0x2c)
+typedef struct sDot11fIETCLASSPROC {
+    tANI_U8      present;
+    tANI_U8      processing;
+} tDot11fIETCLASSPROC;
+
+#define DOT11F_EID_TCLASSPROC ( 44 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TCLASSPROC_MIN_LEN ( 1 )
+
+#define DOT11F_IE_TCLASSPROC_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTCLASSPROC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETCLASSPROC*);
+
+tANI_U32 dot11fPackIeTCLASSPROC(tpAniSirGlobal, tDot11fIETCLASSPROC*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETCLASSPROC(tpAniSirGlobal, tDot11fIETCLASSPROC*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 43 (0x2b)
+typedef struct sDot11fIETSDelay {
+    tANI_U8      present;
+    tANI_U32     delay;
+} tDot11fIETSDelay;
+
+#define DOT11F_EID_TSDELAY ( 43 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TSDELAY_MIN_LEN ( 4 )
+
+#define DOT11F_IE_TSDELAY_MAX_LEN ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTSDelay(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSDelay*);
+
+tANI_U32 dot11fPackIeTSDelay(tpAniSirGlobal, tDot11fIETSDelay*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETSDelay(tpAniSirGlobal, tDot11fIETSDelay*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 13 (0x0d)
+typedef struct sDot11fIETSPEC {
+    tANI_U8      present;
+    tANI_U16     traffic_type: 1;
+    tANI_U16             tsid: 4;
+    tANI_U16        direction: 2;
+    tANI_U16    access_policy: 2;
+    tANI_U16      aggregation: 1;
+    tANI_U16              psb: 1;
+    tANI_U16    user_priority: 3;
+    tANI_U16   tsinfo_ack_pol: 2;
+    tANI_U8         schedule: 1;
+    tANI_U8           unused: 7;
+    tANI_U16             size: 15;
+    tANI_U16            fixed: 1;
+    tANI_U16     max_msdu_size;
+    tANI_U32     min_service_int;
+    tANI_U32     max_service_int;
+    tANI_U32     inactivity_int;
+    tANI_U32     suspension_int;
+    tANI_U32     service_start_time;
+    tANI_U32     min_data_rate;
+    tANI_U32     mean_data_rate;
+    tANI_U32     peak_data_rate;
+    tANI_U32     burst_size;
+    tANI_U32     delay_bound;
+    tANI_U32     min_phy_rate;
+    tANI_U16     surplus_bw_allowance;
+    tANI_U16     medium_time;
+} tDot11fIETSPEC;
+
+#define DOT11F_EID_TSPEC ( 13 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TSPEC_MIN_LEN ( 55 )
+
+#define DOT11F_IE_TSPEC_MAX_LEN ( 55 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTSPEC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETSPEC*);
+
+tANI_U32 dot11fPackIeTSPEC(tpAniSirGlobal, tDot11fIETSPEC*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETSPEC(tpAniSirGlobal, tDot11fIETSPEC*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x09}
+typedef struct sDot11fIEWMMSchedule {
+    tANI_U8      present;
+    tANI_U8      version /* Must be 1! */;
+    tANI_U16      aggregation: 1;
+    tANI_U16             tsid: 4;
+    tANI_U16        direction: 2;
+    tANI_U16         reserved: 9;
+    tANI_U32     service_start_time;
+    tANI_U32     service_interval;
+    tANI_U16     max_service_dur;
+    tANI_U16     spec_interval;
+} tDot11fIEWMMSchedule;
+
+#define DOT11F_EID_WMMSCHEDULE ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMSCHEDULE_MIN_LEN ( 20 )
+
+#define DOT11F_IE_WMMSCHEDULE_MAX_LEN ( 20 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMSchedule(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMSchedule*);
+
+tANI_U32 dot11fPackIeWMMSchedule(tpAniSirGlobal, tDot11fIEWMMSchedule*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMSchedule(tpAniSirGlobal, tDot11fIEWMMSchedule*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x06}
+typedef struct sDot11fIEWMMTCLAS {
+    tANI_U8      present;
+    tANI_U8      version /* Must be 1! */;
+    tANI_U8      user_priority;
+    tANI_U8      classifier_type;
+    tANI_U8      classifier_mask;
+    union
+    {
+        struct
+        {
+            tANI_U8 source[6];
+            tANI_U8 dest[6];
+            tANI_U16 type;
+        } EthParams; /* classifier_type = 0 */
+        struct
+        {
+            tANI_U8 version;
+            union
+            {
+                struct
+                {
+                    tANI_U8 source[4];
+                    tANI_U8 dest[4];
+                    tANI_U16 src_port;
+                    tANI_U16 dest_port;
+                    tANI_U8 DSCP;
+                    tANI_U8 proto;
+                    tANI_U8 reserved;
+                } IpV4Params; /* version = 4 */
+                struct
+                {
+                    tANI_U8 source[16];
+                    tANI_U8 dest[16];
+                    tANI_U16 src_port;
+                    tANI_U16 dest_port;
+                    tANI_U8 flow_label[3];
+                } IpV6Params; /* version = 6 */
+            } params;
+        } IpParams; /* classifier_type = 1 */
+        struct
+        {
+            tANI_U16 tag_type;
+        } Params8021dq; /* classifier_type = 2 */
+    } info;
+} tDot11fIEWMMTCLAS;
+
+#define DOT11F_EID_WMMTCLAS ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMTCLAS_MIN_LEN ( 11 )
+
+#define DOT11F_IE_WMMTCLAS_MAX_LEN ( 49 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMTCLAS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTCLAS*);
+
+tANI_U32 dot11fPackIeWMMTCLAS(tpAniSirGlobal, tDot11fIEWMMTCLAS*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMTCLAS(tpAniSirGlobal, tDot11fIEWMMTCLAS*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x07}
+typedef struct sDot11fIEWMMTCLASPROC {
+    tANI_U8      present;
+    tANI_U8      version /* Must be 1! */;
+    tANI_U8      processing;
+} tDot11fIEWMMTCLASPROC;
+
+#define DOT11F_EID_WMMTCLASPROC ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMTCLASPROC_MIN_LEN ( 7 )
+
+#define DOT11F_IE_WMMTCLASPROC_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMTCLASPROC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTCLASPROC*);
+
+tANI_U32 dot11fPackIeWMMTCLASPROC(tpAniSirGlobal, tDot11fIEWMMTCLASPROC*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMTCLASPROC(tpAniSirGlobal, tDot11fIEWMMTCLASPROC*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x08}
+typedef struct sDot11fIEWMMTSDelay {
+    tANI_U8      present;
+    tANI_U8      version /* Must be 1! */;
+    tANI_U32     delay;
+} tDot11fIEWMMTSDelay;
+
+#define DOT11F_EID_WMMTSDELAY ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMTSDELAY_MIN_LEN ( 10 )
+
+#define DOT11F_IE_WMMTSDELAY_MAX_LEN ( 10 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMTSDelay(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTSDelay*);
+
+tANI_U32 dot11fPackIeWMMTSDelay(tpAniSirGlobal, tDot11fIEWMMTSDelay*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMTSDelay(tpAniSirGlobal, tDot11fIEWMMTSDelay*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x02}
+typedef struct sDot11fIEWMMTSPEC {
+    tANI_U8      present;
+    tANI_U8      version /* Must be 1! */;
+    tANI_U16     traffic_type: 1;
+    tANI_U16             tsid: 4;
+    tANI_U16        direction: 2;
+    tANI_U16    access_policy: 2;
+    tANI_U16      aggregation: 1;
+    tANI_U16              psb: 1;
+    tANI_U16    user_priority: 3;
+    tANI_U16   tsinfo_ack_pol: 2;
+    tANI_U8      tsinfo_rsvd: 7;
+    tANI_U8  burst_size_defn: 1;
+    tANI_U16             size: 15;
+    tANI_U16            fixed: 1;
+    tANI_U16     max_msdu_size;
+    tANI_U32     min_service_int;
+    tANI_U32     max_service_int;
+    tANI_U32     inactivity_int;
+    tANI_U32     suspension_int;
+    tANI_U32     service_start_time;
+    tANI_U32     min_data_rate;
+    tANI_U32     mean_data_rate;
+    tANI_U32     peak_data_rate;
+    tANI_U32     burst_size;
+    tANI_U32     delay_bound;
+    tANI_U32     min_phy_rate;
+    tANI_U16     surplus_bw_allowance;
+    tANI_U16     medium_time;
+} tDot11fIEWMMTSPEC;
+
+#define DOT11F_EID_WMMTSPEC ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMTSPEC_MIN_LEN ( 61 )
+
+#define DOT11F_IE_WMMTSPEC_MAX_LEN ( 61 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMTSPEC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMTSPEC*);
+
+tANI_U32 dot11fPackIeWMMTSPEC(tpAniSirGlobal, tDot11fIEWMMTSPEC*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMTSPEC(tpAniSirGlobal, tDot11fIEWMMTSPEC*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x0a, 0xf5}
+typedef struct sDot11fIEAirgo {
+    tANI_U8                     present;
+    tDot11fIEPropSuppRates      PropSuppRates;
+    tDot11fIEAPName             APName;
+    tDot11fIEHCF                HCF;
+    tDot11fIEWDS                WDS;
+    tDot11fIEBPIndicator        BPIndicator;
+    tDot11fIELoadInfo           LoadInfo;
+    tDot11fIELoadBalance        LoadBalance;
+    tDot11fIEPropAssocType      PropAssocType;
+    tDot11fIELLAttr             LLAttr;
+    tDot11fIEPropCapability     PropCapability;
+    tDot11fIEVersion            Version;
+    tDot11fIEPropEDCAParams     PropEDCAParams;
+    tDot11fIETitan              Titan;
+    tDot11fIEPropChannSwitchAnn PropChannSwitchAnn;
+    tDot11fIEPropQuietBSS       PropQuietBSS;
+    tDot11fIETriggerStaBgScan   TriggerStaBgScan;
+    tDot11fIETaurus             Taurus;
+} tDot11fIEAirgo;
+
+#define DOT11F_EID_AIRGO ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_AIRGO_MIN_LEN ( 3 )
+
+#define DOT11F_IE_AIRGO_MAX_LEN ( 230 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeAirgo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAirgo*);
+
+tANI_U32 dot11fPackIeAirgo(tpAniSirGlobal, tDot11fIEAirgo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEAirgo(tpAniSirGlobal, tDot11fIEAirgo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 156 (0x9c) {OUI 0x00, 0x40, 0x96, 0x00}
+typedef struct sDot11fIECCXCckmOpaque {
+    tANI_U8      present;
+    tANI_U8      num_data;
+    tANI_U8      data[20];
+} tDot11fIECCXCckmOpaque;
+
+#define DOT11F_EID_CCXCCKMOPAQUE ( 156 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CCXCCKMOPAQUE_MIN_LEN ( 10 )
+
+#define DOT11F_IE_CCXCCKMOPAQUE_MAX_LEN ( 24 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCCXCckmOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXCckmOpaque*);
+
+tANI_U32 dot11fPackIeCCXCckmOpaque(tpAniSirGlobal, tDot11fIECCXCckmOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECCXCckmOpaque(tpAniSirGlobal, tDot11fIECCXCckmOpaque*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x01}
+typedef struct sDot11fIECCXRadMgmtCap {
+    tANI_U8      present;
+    tANI_U8      mgmt_state;
+    tANI_U8      mbssid_mask: 3;
+    tANI_U8         reserved: 5;
+} tDot11fIECCXRadMgmtCap;
+
+#define DOT11F_EID_CCXRADMGMTCAP ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CCXRADMGMTCAP_MIN_LEN ( 6 )
+
+#define DOT11F_IE_CCXRADMGMTCAP_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCCXRadMgmtCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXRadMgmtCap*);
+
+tANI_U32 dot11fPackIeCCXRadMgmtCap(tpAniSirGlobal, tDot11fIECCXRadMgmtCap*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECCXRadMgmtCap(tpAniSirGlobal, tDot11fIECCXRadMgmtCap*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x07}
+typedef struct sDot11fIECCXTrafStrmMet {
+    tANI_U8      present;
+    tANI_U8      tsid;
+    tANI_U8      state;
+    tANI_U16     msmt_interval;
+} tDot11fIECCXTrafStrmMet;
+
+#define DOT11F_EID_CCXTRAFSTRMMET ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CCXTRAFSTRMMET_MIN_LEN ( 8 )
+
+#define DOT11F_IE_CCXTRAFSTRMMET_MAX_LEN ( 8 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCCXTrafStrmMet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTrafStrmMet*);
+
+tANI_U32 dot11fPackIeCCXTrafStrmMet(tpAniSirGlobal, tDot11fIECCXTrafStrmMet*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECCXTrafStrmMet(tpAniSirGlobal, tDot11fIECCXTrafStrmMet*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x08}
+typedef struct sDot11fIECCXTrafStrmRateSet {
+    tANI_U8      present;
+    tANI_U8      tsid;
+    tANI_U8      num_tsrates;
+    tANI_U8      tsrates[8];
+} tDot11fIECCXTrafStrmRateSet;
+
+#define DOT11F_EID_CCXTRAFSTRMRATESET ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CCXTRAFSTRMRATESET_MIN_LEN ( 5 )
+
+#define DOT11F_IE_CCXTRAFSTRMRATESET_MAX_LEN ( 13 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCCXTrafStrmRateSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTrafStrmRateSet*);
+
+tANI_U32 dot11fPackIeCCXTrafStrmRateSet(tpAniSirGlobal, tDot11fIECCXTrafStrmRateSet*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECCXTrafStrmRateSet(tpAniSirGlobal, tDot11fIECCXTrafStrmRateSet*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 150 (0x96) {OUI 0x00, 0x40, 0x96, 0x00}
+typedef struct sDot11fIECCXTxmitPower {
+    tANI_U8      present;
+    tANI_U8      power_limit;
+    tANI_U8      reserved;
+} tDot11fIECCXTxmitPower;
+
+#define DOT11F_EID_CCXTXMITPOWER ( 150 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CCXTXMITPOWER_MIN_LEN ( 6 )
+
+#define DOT11F_IE_CCXTXMITPOWER_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCCXTxmitPower(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXTxmitPower*);
+
+tANI_U32 dot11fPackIeCCXTxmitPower(tpAniSirGlobal, tDot11fIECCXTxmitPower*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECCXTxmitPower(tpAniSirGlobal, tDot11fIECCXTxmitPower*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x03}
+typedef struct sDot11fIECCXVersion {
+    tANI_U8      present;
+    tANI_U8      version;
+} tDot11fIECCXVersion;
+
+#define DOT11F_EID_CCXVERSION ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CCXVERSION_MIN_LEN ( 5 )
+
+#define DOT11F_IE_CCXVERSION_MAX_LEN ( 5 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCCXVersion(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECCXVersion*);
+
+tANI_U32 dot11fPackIeCCXVersion(tpAniSirGlobal, tDot11fIECCXVersion*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECCXVersion(tpAniSirGlobal, tDot11fIECCXVersion*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 4 (0x04)
+typedef struct sDot11fIECFParams {
+    tANI_U8      present;
+    tANI_U8      cfp_count;
+    tANI_U8      cfp_period;
+    tANI_U16     cfp_maxduration;
+    tANI_U16     cfp_durremaining;
+} tDot11fIECFParams;
+
+#define DOT11F_EID_CFPARAMS ( 4 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CFPARAMS_MIN_LEN ( 6 )
+
+#define DOT11F_IE_CFPARAMS_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCFParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECFParams*);
+
+tANI_U32 dot11fPackIeCFParams(tpAniSirGlobal, tDot11fIECFParams*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECFParams(tpAniSirGlobal, tDot11fIECFParams*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 16 (0x10)
+typedef struct sDot11fIEChallengeText {
+    tANI_U8      present;
+    tANI_U8      num_text;
+    tANI_U8      text[253];
+} tDot11fIEChallengeText;
+
+#define DOT11F_EID_CHALLENGETEXT ( 16 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CHALLENGETEXT_MIN_LEN ( 1 )
+
+#define DOT11F_IE_CHALLENGETEXT_MAX_LEN ( 253 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeChallengeText(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEChallengeText*);
+
+tANI_U32 dot11fPackIeChallengeText(tpAniSirGlobal, tDot11fIEChallengeText*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEChallengeText(tpAniSirGlobal, tDot11fIEChallengeText*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 37 (0x25)
+typedef struct sDot11fIEChanSwitchAnn {
+    tANI_U8      present;
+    tANI_U8      switchMode;
+    tANI_U8      newChannel;
+    tANI_U8      switchCount;
+} tDot11fIEChanSwitchAnn;
+
+#define DOT11F_EID_CHANSWITCHANN ( 37 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_CHANSWITCHANN_MIN_LEN ( 3 )
+
+#define DOT11F_IE_CHANSWITCHANN_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEChanSwitchAnn*);
+
+tANI_U32 dot11fPackIeChanSwitchAnn(tpAniSirGlobal, tDot11fIEChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEChanSwitchAnn(tpAniSirGlobal, tDot11fIEChanSwitchAnn*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 7 (0x07)
+typedef struct sDot11fIECountry {
+    tANI_U8      present;
+    tANI_U8      country[3];
+    tANI_U8      num_triplets;
+    tANI_U8      triplets[84][3];
+} tDot11fIECountry;
+
+#define DOT11F_EID_COUNTRY ( 7 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_COUNTRY_MIN_LEN ( 3 )
+
+#define DOT11F_IE_COUNTRY_MAX_LEN ( 255 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeCountry(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIECountry*);
+
+tANI_U32 dot11fPackIeCountry(tpAniSirGlobal, tDot11fIECountry*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIECountry(tpAniSirGlobal, tDot11fIECountry*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 3 (0x03)
+typedef struct sDot11fIEDSParams {
+    tANI_U8      present;
+    tANI_U8      curr_channel;
+} tDot11fIEDSParams;
+
+#define DOT11F_EID_DSPARAMS ( 3 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_DSPARAMS_MIN_LEN ( 1 )
+
+#define DOT11F_IE_DSPARAMS_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeDSParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEDSParams*);
+
+tANI_U32 dot11fPackIeDSParams(tpAniSirGlobal, tDot11fIEDSParams*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEDSParams(tpAniSirGlobal, tDot11fIEDSParams*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 12 (0x0c)
+typedef struct sDot11fIEEDCAParamSet {
+    tANI_U8      present;
+    tANI_U8      qos;
+    tANI_U8      reserved;
+    tANI_U8       acbe_aifsn: 4;
+    tANI_U8         acbe_acm: 1;
+    tANI_U8         acbe_aci: 2;
+    tANI_U8          unused1: 1;
+    tANI_U8      acbe_acwmin: 4;
+    tANI_U8      acbe_acwmax: 4;
+    tANI_U16     acbe_txoplimit;
+    tANI_U8       acbk_aifsn: 4;
+    tANI_U8         acbk_acm: 1;
+    tANI_U8         acbk_aci: 2;
+    tANI_U8          unused2: 1;
+    tANI_U8      acbk_acwmin: 4;
+    tANI_U8      acbk_acwmax: 4;
+    tANI_U16     acbk_txoplimit;
+    tANI_U8       acvi_aifsn: 4;
+    tANI_U8         acvi_acm: 1;
+    tANI_U8         acvi_aci: 2;
+    tANI_U8          unused3: 1;
+    tANI_U8      acvi_acwmin: 4;
+    tANI_U8      acvi_acwmax: 4;
+    tANI_U16     acvi_txoplimit;
+    tANI_U8       acvo_aifsn: 4;
+    tANI_U8         acvo_acm: 1;
+    tANI_U8         acvo_aci: 2;
+    tANI_U8          unused4: 1;
+    tANI_U8      acvo_acwmin: 4;
+    tANI_U8      acvo_acwmax: 4;
+    tANI_U16     acvo_txoplimit;
+} tDot11fIEEDCAParamSet;
+
+#define DOT11F_EID_EDCAPARAMSET ( 12 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_EDCAPARAMSET_MIN_LEN ( 18 )
+
+#define DOT11F_IE_EDCAPARAMSET_MAX_LEN ( 18 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeEDCAParamSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEEDCAParamSet*);
+
+tANI_U32 dot11fPackIeEDCAParamSet(tpAniSirGlobal, tDot11fIEEDCAParamSet*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEEDCAParamSet(tpAniSirGlobal, tDot11fIEEDCAParamSet*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 42 (0x2a)
+typedef struct sDot11fIEERPInfo {
+    tANI_U8      present;
+    tANI_U8  non_erp_present: 1;
+    tANI_U8         use_prot: 1;
+    tANI_U8  barker_preamble: 1;
+    tANI_U8           unused: 5;
+} tDot11fIEERPInfo;
+
+#define DOT11F_EID_ERPINFO ( 42 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_ERPINFO_MIN_LEN ( 1 )
+
+#define DOT11F_IE_ERPINFO_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeERPInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEERPInfo*);
+
+tANI_U32 dot11fPackIeERPInfo(tpAniSirGlobal, tDot11fIEERPInfo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEERPInfo(tpAniSirGlobal, tDot11fIEERPInfo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 62 (0x3e)
+typedef struct sDot11fIEExtChanSwitchAnn {
+    tANI_U8      present;
+    tANI_U8      secondaryChannelOffset;
+} tDot11fIEExtChanSwitchAnn;
+
+#define DOT11F_EID_EXTCHANSWITCHANN ( 62 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_EXTCHANSWITCHANN_MIN_LEN ( 1 )
+
+#define DOT11F_IE_EXTCHANSWITCHANN_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeExtChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtChanSwitchAnn*);
+
+tANI_U32 dot11fPackIeExtChanSwitchAnn(tpAniSirGlobal, tDot11fIEExtChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEExtChanSwitchAnn(tpAniSirGlobal, tDot11fIEExtChanSwitchAnn*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 50 (0x32)
+typedef struct sDot11fIEExtSuppRates {
+    tANI_U8      present;
+    tANI_U8      num_rates;
+    tANI_U8      rates[12];
+} tDot11fIEExtSuppRates;
+
+#define DOT11F_EID_EXTSUPPRATES ( 50 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_EXTSUPPRATES_MIN_LEN ( 1 )
+
+#define DOT11F_IE_EXTSUPPRATES_MAX_LEN ( 12 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeExtSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtSuppRates*);
+
+tANI_U32 dot11fPackIeExtSuppRates(tpAniSirGlobal, tDot11fIEExtSuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEExtSuppRates(tpAniSirGlobal, tDot11fIEExtSuppRates*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 2 (0x02)
+typedef struct sDot11fIEFHParamSet {
+    tANI_U8      present;
+    tANI_U16     dwell_time;
+    tANI_U8      hop_set;
+    tANI_U8      hop_pattern;
+    tANI_U8      hop_index;
+} tDot11fIEFHParamSet;
+
+#define DOT11F_EID_FHPARAMSET ( 2 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_FHPARAMSET_MIN_LEN ( 5 )
+
+#define DOT11F_IE_FHPARAMSET_MAX_LEN ( 5 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeFHParamSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHParamSet*);
+
+tANI_U32 dot11fPackIeFHParamSet(tpAniSirGlobal, tDot11fIEFHParamSet*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEFHParamSet(tpAniSirGlobal, tDot11fIEFHParamSet*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 8 (0x08)
+typedef struct sDot11fIEFHParams {
+    tANI_U8      present;
+    tANI_U8      radix;
+    tANI_U8      nchannels;
+} tDot11fIEFHParams;
+
+#define DOT11F_EID_FHPARAMS ( 8 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_FHPARAMS_MIN_LEN ( 2 )
+
+#define DOT11F_IE_FHPARAMS_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeFHParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHParams*);
+
+tANI_U32 dot11fPackIeFHParams(tpAniSirGlobal, tDot11fIEFHParams*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEFHParams(tpAniSirGlobal, tDot11fIEFHParams*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 9 (0x09)
+typedef struct sDot11fIEFHPattTable {
+    tANI_U8      present;
+    tANI_U8      flag;
+    tANI_U8      nsets;
+    tANI_U8      modulus;
+    tANI_U8      offset;
+    tANI_U8      num_randtable;
+    tANI_U8      randtable[251];
+} tDot11fIEFHPattTable;
+
+#define DOT11F_EID_FHPATTTABLE ( 9 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_FHPATTTABLE_MIN_LEN ( 4 )
+
+#define DOT11F_IE_FHPATTTABLE_MAX_LEN ( 255 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeFHPattTable(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFHPattTable*);
+
+tANI_U32 dot11fPackIeFHPattTable(tpAniSirGlobal, tDot11fIEFHPattTable*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEFHPattTable(tpAniSirGlobal, tDot11fIEFHPattTable*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 55 (0x37)
+typedef struct sDot11fIEFTInfo {
+    tANI_U8          present;
+    tANI_U16             reserved: 8;
+    tANI_U16              IECount: 8;
+    tANI_U8          MIC[16];
+    tANI_U8          Anonce[32];
+    tANI_U8          Snonce[32];
+    tDot11fIER1KH_ID R1KH_ID;
+    tDot11fIEGTK     GTK;
+    tDot11fIER0KH_ID R0KH_ID;
+} tDot11fIEFTInfo;
+
+#define DOT11F_EID_FTINFO ( 55 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_FTINFO_MIN_LEN ( 82 )
+
+#define DOT11F_IE_FTINFO_MAX_LEN ( 185 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeFTInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFTInfo*);
+
+tANI_U32 dot11fPackIeFTInfo(tpAniSirGlobal, tDot11fIEFTInfo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEFTInfo(tpAniSirGlobal, tDot11fIEFTInfo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 56 (0x38)
+typedef struct sDot11fIEFTTimeoutInterval {
+    tANI_U8      present;
+    tANI_U8      timeoutType;
+    tANI_U32     timeoutValue;
+} tDot11fIEFTTimeoutInterval;
+
+#define DOT11F_EID_FTTIMEOUTINTERVAL ( 56 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_FTTIMEOUTINTERVAL_MIN_LEN ( 5 )
+
+#define DOT11F_IE_FTTIMEOUTINTERVAL_MAX_LEN ( 5 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeFTTimeoutInterval(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEFTTimeoutInterval*);
+
+tANI_U32 dot11fPackIeFTTimeoutInterval(tpAniSirGlobal, tDot11fIEFTTimeoutInterval*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEFTTimeoutInterval(tpAniSirGlobal, tDot11fIEFTTimeoutInterval*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 45 (0x2d)
+typedef struct sDot11fIEHTCaps {
+    tANI_U8      present;
+    tANI_U16     advCodingCap: 1;
+    tANI_U16 supportedChannelWidthSet: 1;
+    tANI_U16    mimoPowerSave: 2;
+    tANI_U16       greenField: 1;
+    tANI_U16     shortGI20MHz: 1;
+    tANI_U16     shortGI40MHz: 1;
+    tANI_U16           txSTBC: 1;
+    tANI_U16           rxSTBC: 2;
+    tANI_U16        delayedBA: 1;
+    tANI_U16 maximalAMSDUsize: 1;
+    tANI_U16 dsssCckMode40MHz: 1;
+    tANI_U16             psmp: 1;
+    tANI_U16 stbcControlFrame: 1;
+    tANI_U16 lsigTXOPProtection: 1;
+    tANI_U8 maxRxAMPDUFactor: 2;
+    tANI_U8      mpduDensity: 3;
+    tANI_U8        reserved1: 3;
+    tANI_U8      supportedMCSSet[16];
+    tANI_U16              pco: 1;
+    tANI_U16   transitionTime: 2;
+    tANI_U16        reserved2: 5;
+    tANI_U16      mcsFeedback: 2;
+    tANI_U16        reserved3: 6;
+    tANI_U32             txBF: 1;
+    tANI_U32 rxStaggeredSounding: 1;
+    tANI_U32 txStaggeredSounding: 1;
+    tANI_U32            rxZLF: 1;
+    tANI_U32            txZLF: 1;
+    tANI_U32     implicitTxBF: 1;
+    tANI_U32      calibration: 2;
+    tANI_U32  explicitCSITxBF: 1;
+    tANI_U32 explicitUncompressedSteeringMatrix: 1;
+    tANI_U32 explicitBFCSIFeedback: 3;
+    tANI_U32 explicitUncompressedSteeringMatrixFeedback: 3;
+    tANI_U32 explicitCompressedSteeringMatrixFeedback: 3;
+    tANI_U32 csiNumBFAntennae: 2;
+    tANI_U32 uncompressedSteeringMatrixBFAntennae: 2;
+    tANI_U32 compressedSteeringMatrixBFAntennae: 2;
+    tANI_U32        reserved4: 7;
+    tANI_U8 antennaSelection: 1;
+    tANI_U8 explicitCSIFeedbackTx: 1;
+    tANI_U8 antennaIndicesFeedbackTx: 1;
+    tANI_U8 explicitCSIFeedback: 1;
+    tANI_U8 antennaIndicesFeedback: 1;
+    tANI_U8             rxAS: 1;
+    tANI_U8  txSoundingPPDUs: 1;
+    tANI_U8        reserved5: 1;
+    tANI_U8      num_rsvd;
+    tANI_U8      rsvd[32];
+} tDot11fIEHTCaps;
+
+#define DOT11F_EID_HTCAPS ( 45 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_HTCAPS_MIN_LEN ( 26 )
+
+#define DOT11F_IE_HTCAPS_MAX_LEN ( 58 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHTCaps*);
+
+tANI_U32 dot11fPackIeHTCaps(tpAniSirGlobal, tDot11fIEHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEHTCaps(tpAniSirGlobal, tDot11fIEHTCaps*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 61 (0x3d)
+typedef struct sDot11fIEHTInfo {
+    tANI_U8      present;
+    tANI_U8      primaryChannel;
+    tANI_U8 secondaryChannelOffset: 2;
+    tANI_U8 recommendedTxWidthSet: 1;
+    tANI_U8         rifsMode: 1;
+    tANI_U8 controlledAccessOnly: 1;
+    tANI_U8 serviceIntervalGranularity: 3;
+    tANI_U16           opMode: 2;
+    tANI_U16 nonGFDevicesPresent: 1;
+    tANI_U16 transmitBurstLimit: 1;
+    tANI_U16 obssNonHTStaPresent: 1;
+    tANI_U16         reserved: 11;
+    tANI_U16     basicSTBCMCS: 7;
+    tANI_U16 dualCTSProtection: 1;
+    tANI_U16  secondaryBeacon: 1;
+    tANI_U16 lsigTXOPProtectionFullSupport: 1;
+    tANI_U16        pcoActive: 1;
+    tANI_U16         pcoPhase: 1;
+    tANI_U16        reserved2: 4;
+    tANI_U8      basicMCSSet[16];
+    tANI_U8      num_rsvd;
+    tANI_U8      rsvd[32];
+} tDot11fIEHTInfo;
+
+#define DOT11F_EID_HTINFO ( 61 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_HTINFO_MIN_LEN ( 22 )
+
+#define DOT11F_IE_HTINFO_MAX_LEN ( 54 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeHTInfo(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHTInfo*);
+
+tANI_U32 dot11fPackIeHTInfo(tpAniSirGlobal, tDot11fIEHTInfo*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEHTInfo(tpAniSirGlobal, tDot11fIEHTInfo*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 6 (0x06)
+typedef struct sDot11fIEIBSSParams {
+    tANI_U8      present;
+    tANI_U16     atim;
+} tDot11fIEIBSSParams;
+
+#define DOT11F_EID_IBSSPARAMS ( 6 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_IBSSPARAMS_MIN_LEN ( 2 )
+
+#define DOT11F_IE_IBSSPARAMS_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeIBSSParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEIBSSParams*);
+
+tANI_U32 dot11fPackIeIBSSParams(tpAniSirGlobal, tDot11fIEIBSSParams*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEIBSSParams(tpAniSirGlobal, tDot11fIEIBSSParams*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 39 (0x27)
+typedef struct sDot11fIEMeasurementReport {
+    tANI_U8      present;
+    tANI_U8      token;
+    tANI_U8             late: 1;
+    tANI_U8        incapable: 1;
+    tANI_U8          refused: 1;
+    tANI_U8           unused: 5;
+    tANI_U8      type;
+    union
+    {
+        struct
+        {
+            tANI_U8 channel;
+            tDOT11F_U64 meas_start_time;
+            tANI_U16 meas_duration;
+            tANI_U8            bss: 1;
+            tANI_U8  ofdm_preamble: 1;
+            tANI_U8    unid_signal: 1;
+            tANI_U8          rader: 1;
+            tANI_U8     unmeasured: 1;
+            tANI_U8         unused: 3;
+        } Basic; /* type = 0 */
+        struct
+        {
+            tANI_U8 channel;
+            tDOT11F_U64 meas_start_time;
+            tANI_U16 meas_duration;
+            tANI_U8 cca_busy_fraction;
+        } CCA; /* type = 1 */
+        struct
+        {
+            tANI_U8 channel;
+            tDOT11F_U64 meas_start_time;
+            tANI_U16 meas_duration;
+            tANI_U8 rpi0_density;
+            tANI_U8 rpi1_density;
+            tANI_U8 rpi2_density;
+            tANI_U8 rpi3_density;
+            tANI_U8 rpi4_density;
+            tANI_U8 rpi5_density;
+            tANI_U8 rpi6_density;
+            tANI_U8 rpi7_density;
+        } RPIHistogram; /* type = 2 */
+        struct
+        {
+            tANI_U8 regClass;
+            tANI_U8 channel;
+            tDOT11F_U64 meas_start_time;
+            tANI_U16 meas_duration;
+            tANI_U8        condensed_PHY: 7;
+            tANI_U8  reported_frame_type: 1;
+            tANI_U8 RCPI;
+            tANI_U8 RSNI;
+            tANI_U8 BSSID[6];
+            tANI_U8 antenna_id;
+            tANI_U32 parent_TSF;
+    tDot11fIEBeaconReportFrmBody BeaconReportFrmBody;
+        } Beacon; /* type = 5 */
+    } report;
+} tDot11fIEMeasurementReport;
+
+#define DOT11F_EID_MEASUREMENTREPORT ( 39 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN ( 3 )
+
+#define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN ( 29 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeMeasurementReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementReport*);
+
+tANI_U32 dot11fPackIeMeasurementReport(tpAniSirGlobal, tDot11fIEMeasurementReport*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEMeasurementReport(tpAniSirGlobal, tDot11fIEMeasurementReport*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 38 (0x26)
+typedef struct sDot11fIEMeasurementRequest {
+    tANI_U8      present;
+    tANI_U8      measurement_token;
+    tANI_U8         parallel: 1;
+    tANI_U8           enable: 1;
+    tANI_U8          request: 1;
+    tANI_U8           report: 1;
+    tANI_U8 durationMandatory: 1;
+    tANI_U8           unused: 3;
+    tANI_U8      measurement_type;
+    union
+    {
+        struct
+        {
+            tANI_U8 channel_no;
+            tANI_U8 meas_start_time[8];
+            tANI_U16 meas_duration;
+        } Basic; /* measurement_type = 0 */
+        struct
+        {
+            tANI_U8 channel_no;
+            tANI_U8 meas_start_time[8];
+            tANI_U16 meas_duration;
+        } CCA; /* measurement_type = 1 */
+        struct
+        {
+            tANI_U8 channel_no;
+            tANI_U8 meas_start_time[8];
+            tANI_U16 meas_duration;
+        } RPIHistogram; /* measurement_type = 2 */
+        struct
+        {
+            tANI_U8 regClass;
+            tANI_U8 channel;
+            tANI_U16 randomization;
+            tANI_U16 meas_duration;
+            tANI_U8 meas_mode;
+            tANI_U8 BSSID[6];
+    tDot11fIESSID SSID;
+    tDot11fIEBeaconReporting BeaconReporting;
+    tDot11fIEBcnReportingDetail BcnReportingDetail;
+    tDot11fIERequestedInfo RequestedInfo;
+    tANI_U16 num_APChannelReport;
+    tDot11fIEAPChannelReport APChannelReport[2];
+        } Beacon; /* measurement_type = 5 */
+    } measurement_request;
+} tDot11fIEMeasurementRequest;
+
+#define DOT11F_EID_MEASUREMENTREQUEST ( 38 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_MEASUREMENTREQUEST_MIN_LEN ( 14 )
+
+#define DOT11F_IE_MEASUREMENTREQUEST_MAX_LEN ( 16 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeMeasurementRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMeasurementRequest*);
+
+tANI_U32 dot11fPackIeMeasurementRequest(tpAniSirGlobal, tDot11fIEMeasurementRequest*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEMeasurementRequest(tpAniSirGlobal, tDot11fIEMeasurementRequest*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 54 (0x36)
+typedef struct sDot11fIEMobilityDomain {
+    tANI_U8      present;
+    tANI_U16     MDID;
+    tANI_U8        overDSCap: 1;
+    tANI_U8   resourceReqCap: 1;
+    tANI_U8         reserved: 6;
+} tDot11fIEMobilityDomain;
+
+#define DOT11F_EID_MOBILITYDOMAIN ( 54 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_MOBILITYDOMAIN_MIN_LEN ( 3 )
+
+#define DOT11F_IE_MOBILITYDOMAIN_MAX_LEN ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeMobilityDomain(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEMobilityDomain*);
+
+tANI_U32 dot11fPackIeMobilityDomain(tpAniSirGlobal, tDot11fIEMobilityDomain*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEMobilityDomain(tpAniSirGlobal, tDot11fIEMobilityDomain*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 52 (0x34)
+typedef struct sDot11fIENeighborReport {
+    tANI_U8                      present;
+    tANI_U8                      bssid[6];
+    tANI_U8                   APReachability: 2;
+    tANI_U8                         Security: 1;
+    tANI_U8                         KeyScope: 1;
+    tANI_U8                      SpecMgmtCap: 1;
+    tANI_U8                           QosCap: 1;
+    tANI_U8                             apsd: 1;
+    tANI_U8                              rrm: 1;
+    tANI_U8                        DelayedBA: 1;
+    tANI_U8                            ImmBA: 1;
+    tANI_U8                   MobilityDomain: 1;
+    tANI_U8                         reserved: 5;
+    tANI_U16                     reserved1;
+    tANI_U8                      regulatoryClass;
+    tANI_U8                      channel;
+    tANI_U8                      PhyType;
+    tDot11fIETSFInfo             TSFInfo;
+    tDot11fIECondensedCountryStr CondensedCountryStr;
+    tDot11fIEMeasurementPilot    MeasurementPilot;
+    tDot11fIERRMEnabledCap       RRMEnabledCap;
+    tDot11fIEMultiBssid          MultiBssid;
+} tDot11fIENeighborReport;
+
+#define DOT11F_EID_NEIGHBORREPORT ( 52 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_NEIGHBORREPORT_MIN_LEN ( 13 )
+
+#define DOT11F_IE_NEIGHBORREPORT_MAX_LEN ( 546 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeNeighborReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIENeighborReport*);
+
+tANI_U32 dot11fPackIeNeighborReport(tpAniSirGlobal, tDot11fIENeighborReport*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIENeighborReport(tpAniSirGlobal, tDot11fIENeighborReport*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PAssocReq {
+    tANI_U8      present;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVExtendedListenTiming ExtendedListenTiming;
+    tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
+} tDot11fIEP2PAssocReq;
+
+#define DOT11F_EID_P2PASSOCREQ ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PASSOCREQ_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PASSOCREQ_MAX_LEN ( 71 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocReq*);
+
+tANI_U32 dot11fPackIeP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PAssocReq(tpAniSirGlobal, tDot11fIEP2PAssocReq*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PAssocRes {
+    tANI_U8      present;
+    tDot11fTLVP2PStatus P2PStatus;
+    tDot11fTLVExtendedListenTiming ExtendedListenTiming;
+} tDot11fIEP2PAssocRes;
+
+#define DOT11F_EID_P2PASSOCRES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PASSOCRES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PASSOCRES_MAX_LEN ( 15 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PAssocRes*);
+
+tANI_U32 dot11fPackIeP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PAssocRes(tpAniSirGlobal, tDot11fIEP2PAssocRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PBeacon {
+    tANI_U8      present;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVP2PDeviceId P2PDeviceId;
+    tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
+} tDot11fIEP2PBeacon;
+
+#define DOT11F_EID_P2PBEACON ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PBEACON_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PBEACON_MAX_LEN ( 59 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeacon*);
+
+tANI_U32 dot11fPackIeP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PBeacon(tpAniSirGlobal, tDot11fIEP2PBeacon*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PBeaconProbeRes {
+    tANI_U8      present;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVP2PDeviceId P2PDeviceId;
+    tDot11fTLVExtendedListenTiming ExtendedListenTiming;
+    tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
+    tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
+    tDot11fTLVP2PGroupInfo P2PGroupInfo;
+} tDot11fIEP2PBeaconProbeRes;
+
+#define DOT11F_EID_P2PBEACONPROBERES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PBEACONPROBERES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PBEACONPROBERES_MAX_LEN ( 1148 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PBeaconProbeRes*);
+
+tANI_U32 dot11fPackIeP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PBeaconProbeRes(tpAniSirGlobal, tDot11fIEP2PBeaconProbeRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PDeAuth {
+    tANI_U8      present;
+    tDot11fTLVMinorReasonCode MinorReasonCode;
+} tDot11fIEP2PDeAuth;
+
+#define DOT11F_EID_P2PDEAUTH ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PDEAUTH_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PDEAUTH_MAX_LEN ( 8 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PDeAuth(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeAuth*);
+
+tANI_U32 dot11fPackIeP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PDeAuth(tpAniSirGlobal, tDot11fIEP2PDeAuth*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PDeviceDiscoverabilityReq {
+    tANI_U8      present;
+    tDot11fTLVP2PDeviceId P2PDeviceId;
+    tDot11fTLVP2PGroupId P2PGroupId;
+} tDot11fIEP2PDeviceDiscoverabilityReq;
+
+#define DOT11F_EID_P2PDEVICEDISCOVERABILITYREQ ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PDEVICEDISCOVERABILITYREQ_MAX_LEN ( 54 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityReq*);
+
+tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityReq(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityReq*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PDeviceDiscoverabilityRes {
+    tANI_U8      present;
+    tDot11fTLVP2PStatus P2PStatus;
+} tDot11fIEP2PDeviceDiscoverabilityRes;
+
+#define DOT11F_EID_P2PDEVICEDISCOVERABILITYRES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PDEVICEDISCOVERABILITYRES_MAX_LEN ( 8 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDeviceDiscoverabilityRes*);
+
+tANI_U32 dot11fPackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PDeviceDiscoverabilityRes(tpAniSirGlobal, tDot11fIEP2PDeviceDiscoverabilityRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PDisAssoc {
+    tANI_U8      present;
+    tDot11fTLVMinorReasonCode MinorReasonCode;
+} tDot11fIEP2PDisAssoc;
+
+#define DOT11F_EID_P2PDISASSOC ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PDISASSOC_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PDISASSOC_MAX_LEN ( 8 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PDisAssoc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PDisAssoc*);
+
+tANI_U32 dot11fPackIeP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PDisAssoc(tpAniSirGlobal, tDot11fIEP2PDisAssoc*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PGONegCnf {
+    tANI_U8      present;
+    tDot11fTLVP2PStatus P2PStatus;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVOperatingChannel OperatingChannel;
+    tDot11fTLVChannelList ChannelList;
+    tDot11fTLVP2PGroupId P2PGroupId;
+} tDot11fIEP2PGONegCnf;
+
+#define DOT11F_EID_P2PGONEGCNF ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PGONEGCNF_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PGONEGCNF_MAX_LEN ( 319 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PGONegCnf(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegCnf*);
+
+tANI_U32 dot11fPackIeP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PGONegCnf(tpAniSirGlobal, tDot11fIEP2PGONegCnf*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PGONegReq {
+    tANI_U8      present;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVGOIntent GOIntent;
+    tDot11fTLVConfigurationTimeout ConfigurationTimeout;
+    tDot11fTLVListenChannel ListenChannel;
+    tDot11fTLVExtendedListenTiming ExtendedListenTiming;
+    tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
+    tDot11fTLVChannelList ChannelList;
+    tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
+    tDot11fTLVOperatingChannel OperatingChannel;
+} tDot11fIEP2PGONegReq;
+
+#define DOT11F_EID_P2PGONEGREQ ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PGONEGREQ_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PGONEGREQ_MAX_LEN ( 362 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PGONegReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegReq*);
+
+tANI_U32 dot11fPackIeP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PGONegReq(tpAniSirGlobal, tDot11fIEP2PGONegReq*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PGONegRes {
+    tANI_U8      present;
+    tDot11fTLVP2PStatus P2PStatus;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVGOIntent GOIntent;
+    tDot11fTLVConfigurationTimeout ConfigurationTimeout;
+    tDot11fTLVOperatingChannel OperatingChannel;
+    tDot11fTLVIntendedP2PInterfaceAddress IntendedP2PInterfaceAddress;
+    tDot11fTLVChannelList ChannelList;
+    tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
+    tDot11fTLVP2PGroupId P2PGroupId;
+} tDot11fIEP2PGONegRes;
+
+#define DOT11F_EID_P2PGONEGRES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PGONEGRES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PGONEGRES_MAX_LEN ( 392 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PGONegRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegRes*);
+
+tANI_U32 dot11fPackIeP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PGONegRes(tpAniSirGlobal, tDot11fIEP2PGONegRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEP2PGONegWPS {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVDevicePasswordID DevicePasswordID;
+} tDot11fIEP2PGONegWPS;
+
+#define DOT11F_EID_P2PGONEGWPS ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PGONEGWPS_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PGONEGWPS_MAX_LEN ( 15 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PGONegWPS(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PGONegWPS*);
+
+tANI_U32 dot11fPackIeP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PGONegWPS(tpAniSirGlobal, tDot11fIEP2PGONegWPS*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09}
+typedef struct sDot11fIEP2PIEOpaque {
+    tANI_U8      present;
+    tANI_U8      num_data;
+    tANI_U8      data[249];
+} tDot11fIEP2PIEOpaque;
+
+#define DOT11F_EID_P2PIEOPAQUE ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PIEOPAQUE_MIN_LEN ( 6 )
+
+#define DOT11F_IE_P2PIEOPAQUE_MAX_LEN ( 253 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PIEOpaque*);
+
+tANI_U32 dot11fPackIeP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PIEOpaque(tpAniSirGlobal, tDot11fIEP2PIEOpaque*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PInvitationReq {
+    tANI_U8      present;
+    tDot11fTLVConfigurationTimeout ConfigurationTimeout;
+    tDot11fTLVInvitationFlags InvitationFlags;
+    tDot11fTLVOperatingChannel OperatingChannel;
+    tDot11fTLVP2PGroupBssid P2PGroupBssid;
+    tDot11fTLVChannelList ChannelList;
+    tDot11fTLVP2PGroupId P2PGroupId;
+    tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
+} tDot11fIEP2PInvitationReq;
+
+#define DOT11F_EID_P2PINVITATIONREQ ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PINVITATIONREQ_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PINVITATIONREQ_MAX_LEN ( 383 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PInvitationReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationReq*);
+
+tANI_U32 dot11fPackIeP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PInvitationReq(tpAniSirGlobal, tDot11fIEP2PInvitationReq*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PInvitationRes {
+    tANI_U8      present;
+    tDot11fTLVP2PStatus P2PStatus;
+    tDot11fTLVConfigurationTimeout ConfigurationTimeout;
+    tDot11fTLVOperatingChannel OperatingChannel;
+    tDot11fTLVP2PGroupBssid P2PGroupBssid;
+    tDot11fTLVChannelList ChannelList;
+} tDot11fIEP2PInvitationRes;
+
+#define DOT11F_EID_P2PINVITATIONRES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PINVITATIONRES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PINVITATIONRES_MAX_LEN ( 287 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PInvitationRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PInvitationRes*);
+
+tANI_U32 dot11fPackIeP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PInvitationRes(tpAniSirGlobal, tDot11fIEP2PInvitationRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PNoticeOfAbsence {
+    tANI_U8      present;
+    tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
+} tDot11fIEP2PNoticeOfAbsence;
+
+#define DOT11F_EID_P2PNOTICEOFABSENCE ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PNOTICEOFABSENCE_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PNOTICEOFABSENCE_MAX_LEN ( 45 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PNoticeOfAbsence(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PNoticeOfAbsence*);
+
+tANI_U32 dot11fPackIeP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PNoticeOfAbsence(tpAniSirGlobal, tDot11fIEP2PNoticeOfAbsence*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PPresenceResponse {
+    tANI_U8      present;
+    tDot11fTLVP2PStatus P2PStatus;
+    tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
+} tDot11fIEP2PPresenceResponse;
+
+#define DOT11F_EID_P2PPRESENCERESPONSE ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PPRESENCERESPONSE_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PPRESENCERESPONSE_MAX_LEN ( 49 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PPresenceResponse(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PPresenceResponse*);
+
+tANI_U32 dot11fPackIeP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PPresenceResponse(tpAniSirGlobal, tDot11fIEP2PPresenceResponse*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PProbeReq {
+    tANI_U8      present;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVP2PDeviceId P2PDeviceId;
+    tDot11fTLVListenChannel ListenChannel;
+    tDot11fTLVExtendedListenTiming ExtendedListenTiming;
+    tDot11fTLVOperatingChannel OperatingChannel;
+} tDot11fIEP2PProbeReq;
+
+#define DOT11F_EID_P2PPROBEREQ ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PPROBEREQ_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PPROBEREQ_MAX_LEN ( 41 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeReq*);
+
+tANI_U32 dot11fPackIeP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PProbeReq(tpAniSirGlobal, tDot11fIEP2PProbeReq*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PProbeRes {
+    tANI_U8      present;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVExtendedListenTiming ExtendedListenTiming;
+    tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
+    tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
+    tDot11fTLVP2PGroupInfo P2PGroupInfo;
+} tDot11fIEP2PProbeRes;
+
+#define DOT11F_EID_P2PPROBERES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PPROBERES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PPROBERES_MAX_LEN ( 1139 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProbeRes*);
+
+tANI_U32 dot11fPackIeP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PProbeRes(tpAniSirGlobal, tDot11fIEP2PProbeRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE)
+typedef struct sDot11fIEP2PProvisionDiscoveryReq {
+    tANI_U8      present;
+    tDot11fTLVP2PCapability P2PCapability;
+    tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
+    tDot11fTLVP2PGroupId P2PGroupId;
+} tDot11fIEP2PProvisionDiscoveryReq;
+
+#define DOT11F_EID_P2PPROVISIONDISCOVERYREQ ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PPROVISIONDISCOVERYREQ_MAX_LEN ( 105 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PProvisionDiscoveryReq*);
+
+tANI_U32 dot11fPackIeP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PProvisionDiscoveryReq(tpAniSirGlobal, tDot11fIEP2PProvisionDiscoveryReq*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEP2PWSCProvisionDiscoveryRes {
+    tANI_U8      present;
+    tDot11fTLVConfigMethods ConfigMethods;
+} tDot11fIEP2PWSCProvisionDiscoveryRes;
+
+#define DOT11F_EID_P2PWSCPROVISIONDISCOVERYRES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_P2PWSCPROVISIONDISCOVERYRES_MAX_LEN ( 10 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEP2PWSCProvisionDiscoveryRes*);
+
+tANI_U32 dot11fPackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEP2PWSCProvisionDiscoveryRes(tpAniSirGlobal, tDot11fIEP2PWSCProvisionDiscoveryRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 33 (0x21)
+typedef struct sDot11fIEPowerCaps {
+    tANI_U8      present;
+    tANI_U8      minTxPower;
+    tANI_U8      maxTxPower;
+} tDot11fIEPowerCaps;
+
+#define DOT11F_EID_POWERCAPS ( 33 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_POWERCAPS_MIN_LEN ( 2 )
+
+#define DOT11F_IE_POWERCAPS_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIePowerCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerCaps*);
+
+tANI_U32 dot11fPackIePowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEPowerCaps(tpAniSirGlobal, tDot11fIEPowerCaps*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 32 (0x20)
+typedef struct sDot11fIEPowerConstraints {
+    tANI_U8      present;
+    tANI_U8      localPowerConstraints;
+} tDot11fIEPowerConstraints;
+
+#define DOT11F_EID_POWERCONSTRAINTS ( 32 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_POWERCONSTRAINTS_MIN_LEN ( 1 )
+
+#define DOT11F_IE_POWERCONSTRAINTS_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIePowerConstraints(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPowerConstraints*);
+
+tANI_U32 dot11fPackIePowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEPowerConstraints(tpAniSirGlobal, tDot11fIEPowerConstraints*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 11 (0x0b)
+typedef struct sDot11fIEQBSSLoad {
+    tANI_U8      present;
+    tANI_U16     stacount;
+    tANI_U8      chautil;
+    tANI_U16     avail;
+} tDot11fIEQBSSLoad;
+
+#define DOT11F_EID_QBSSLOAD ( 11 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_QBSSLOAD_MIN_LEN ( 5 )
+
+#define DOT11F_IE_QBSSLOAD_MAX_LEN ( 5 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeQBSSLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQBSSLoad*);
+
+tANI_U32 dot11fPackIeQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEQBSSLoad(tpAniSirGlobal, tDot11fIEQBSSLoad*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 46 (0x2e)
+typedef struct sDot11fIEQOSCapsAp {
+    tANI_U8      present;
+    tANI_U8         reserved: 1;
+    tANI_U8          txopreq: 1;
+    tANI_U8             qreq: 1;
+    tANI_U8             qack: 1;
+    tANI_U8            count: 4;
+} tDot11fIEQOSCapsAp;
+
+#define DOT11F_EID_QOSCAPSAP ( 46 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_QOSCAPSAP_MIN_LEN ( 1 )
+
+#define DOT11F_IE_QOSCAPSAP_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeQOSCapsAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsAp*);
+
+tANI_U32 dot11fPackIeQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEQOSCapsAp(tpAniSirGlobal, tDot11fIEQOSCapsAp*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 46 (0x2e)
+typedef struct sDot11fIEQOSCapsStation {
+    tANI_U8      present;
+    tANI_U8    more_data_ack: 1;
+    tANI_U8    max_sp_length: 2;
+    tANI_U8             qack: 1;
+    tANI_U8       acbe_uapsd: 1;
+    tANI_U8       acbk_uapsd: 1;
+    tANI_U8       acvi_uapsd: 1;
+    tANI_U8       acvo_uapsd: 1;
+} tDot11fIEQOSCapsStation;
+
+#define DOT11F_EID_QOSCAPSSTATION ( 46 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_QOSCAPSSTATION_MIN_LEN ( 1 )
+
+#define DOT11F_IE_QOSCAPSSTATION_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeQOSCapsStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQOSCapsStation*);
+
+tANI_U32 dot11fPackIeQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEQOSCapsStation(tpAniSirGlobal, tDot11fIEQOSCapsStation*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 40 (0x28)
+typedef struct sDot11fIEQuiet {
+    tANI_U8      present;
+    tANI_U8      count;
+    tANI_U8      period;
+    tANI_U16     duration;
+    tANI_U16     offset;
+} tDot11fIEQuiet;
+
+#define DOT11F_EID_QUIET ( 40 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_QUIET_MIN_LEN ( 6 )
+
+#define DOT11F_IE_QUIET_MAX_LEN ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeQuiet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQuiet*);
+
+tANI_U32 dot11fPackIeQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEQuiet(tpAniSirGlobal, tDot11fIEQuiet*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 53 (0x35)
+typedef struct sDot11fIERCPIIE {
+    tANI_U8      present;
+    tANI_U8      rcpi;
+} tDot11fIERCPIIE;
+
+#define DOT11F_EID_RCPIIE ( 53 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_RCPIIE_MIN_LEN ( 1 )
+
+#define DOT11F_IE_RCPIIE_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRCPIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERCPIIE*);
+
+tANI_U32 dot11fPackIeRCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERCPIIE(tpAniSirGlobal, tDot11fIERCPIIE*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 57 (0x39)
+typedef struct sDot11fIERICDataDesc {
+    tANI_U8                present;
+    tDot11fIERICData       RICData;
+    tDot11fIERICDescriptor RICDescriptor;
+    tDot11fIETSPEC         TSPEC;
+    tANI_U16               num_TCLAS;
+    tDot11fIETCLAS         TCLAS[2];
+    tDot11fIETCLASSPROC    TCLASSPROC;
+    tDot11fIETSDelay       TSDelay;
+    tDot11fIESchedule      Schedule;
+    tDot11fIEWMMTSPEC      WMMTSPEC;
+    tANI_U16               num_WMMTCLAS;
+    tDot11fIEWMMTCLAS      WMMTCLAS[2];
+    tDot11fIEWMMTCLASPROC  WMMTCLASPROC;
+    tDot11fIEWMMTSDelay    WMMTSDelay;
+    tDot11fIEWMMSchedule   WMMSchedule;
+} tDot11fIERICDataDesc;
+
+#define DOT11F_EID_RICDATADESC ( 57 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_RICDATADESC_MIN_LEN ( 0 )
+
+#define DOT11F_IE_RICDATADESC_MAX_LEN ( 548 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRICDataDesc(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERICDataDesc*);
+
+tANI_U32 dot11fPackIeRICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERICDataDesc(tpAniSirGlobal, tDot11fIERICDataDesc*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 48 (0x30)
+typedef struct sDot11fIERSN {
+    tANI_U8      present;
+    tANI_U16     version /* Must be 1! */;
+    tANI_U8      gp_cipher_suite[4];
+    tANI_U16     pwise_cipher_suite_count;
+    tANI_U8      pwise_cipher_suites[4][4];
+    tANI_U16     akm_suite_count;
+    tANI_U8      akm_suites[4][4];
+    tANI_U16          preauth: 1;
+    tANI_U16         no_pwise: 1;
+    tANI_U16 PTKSA_replay_counter: 2;
+    tANI_U16 GTKSA_replay_counter: 2;
+    tANI_U16         reserved: 10;
+    tANI_U16     pmkid_count;
+    tANI_U8      pmkid[4][16];
+} tDot11fIERSN;
+
+#define DOT11F_EID_RSN ( 48 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_RSN_MIN_LEN ( 6 )
+
+#define DOT11F_IE_RSN_MAX_LEN ( 110 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRSN(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSN*);
+
+tANI_U32 dot11fPackIeRSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERSN(tpAniSirGlobal, tDot11fIERSN*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 65 (0x41)
+typedef struct sDot11fIERSNIIE {
+    tANI_U8      present;
+    tANI_U8      rsni;
+} tDot11fIERSNIIE;
+
+#define DOT11F_EID_RSNIIE ( 65 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_RSNIIE_MIN_LEN ( 1 )
+
+#define DOT11F_IE_RSNIIE_MAX_LEN ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRSNIIE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNIIE*);
+
+tANI_U32 dot11fPackIeRSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERSNIIE(tpAniSirGlobal, tDot11fIERSNIIE*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 48 (0x30)
+typedef struct sDot11fIERSNOpaque {
+    tANI_U8      present;
+    tANI_U8      num_data;
+    tANI_U8      data[253];
+} tDot11fIERSNOpaque;
+
+#define DOT11F_EID_RSNOPAQUE ( 48 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_RSNOPAQUE_MIN_LEN ( 6 )
+
+#define DOT11F_IE_RSNOPAQUE_MAX_LEN ( 253 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeRSNOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIERSNOpaque*);
+
+tANI_U32 dot11fPackIeRSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIERSNOpaque(tpAniSirGlobal, tDot11fIERSNOpaque*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 36 (0x24)
+typedef struct sDot11fIESuppChannels {
+    tANI_U8      present;
+    tANI_U8      num_bands;
+    tANI_U8      bands[48][2];
+} tDot11fIESuppChannels;
+
+#define DOT11F_EID_SUPPCHANNELS ( 36 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_SUPPCHANNELS_MIN_LEN ( 2 )
+
+#define DOT11F_IE_SUPPCHANNELS_MAX_LEN ( 96 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeSuppChannels(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppChannels*);
+
+tANI_U32 dot11fPackIeSuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIESuppChannels(tpAniSirGlobal, tDot11fIESuppChannels*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 1 (0x01)
+typedef struct sDot11fIESuppRates {
+    tANI_U8      present;
+    tANI_U8      num_rates;
+    tANI_U8      rates[12];
+} tDot11fIESuppRates;
+
+#define DOT11F_EID_SUPPRATES ( 1 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_SUPPRATES_MIN_LEN ( 0 )
+
+#define DOT11F_IE_SUPPRATES_MAX_LEN ( 12 )
+
+#define DOT11F_IS_BG_RATE(_x)  (((_x) == 02) || \
+                      ((_x) == 04) || \
+                      ((_x) == 11) || \
+                      ((_x) == 22) || \
+                      ((_x) == 12) || \
+                      ((_x) == 18) || \
+                      ((_x) == 24) || \
+                      ((_x) == 36) || \
+                      ((_x) == 48) || \
+                      ((_x) == 72) || \
+                      ((_x) == 96) || \
+                      ((_x) == 108))  
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeSuppRates(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppRates*);
+
+tANI_U32 dot11fPackIeSuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIESuppRates(tpAniSirGlobal, tDot11fIESuppRates*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 5 (0x05)
+typedef struct sDot11fIETIM {
+    tANI_U8      present;
+    tANI_U8      dtim_count;
+    tANI_U8      dtim_period;
+    tANI_U8      bmpctl;
+    tANI_U8      num_vbmp;
+    tANI_U8      vbmp[251];
+} tDot11fIETIM;
+
+#define DOT11F_EID_TIM ( 5 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TIM_MIN_LEN ( 4 )
+
+#define DOT11F_IE_TIM_MAX_LEN ( 254 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTIM(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETIM*);
+
+tANI_U32 dot11fPackIeTIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETIM(tpAniSirGlobal, tDot11fIETIM*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 35 (0x23)
+typedef struct sDot11fIETPCReport {
+    tANI_U8      present;
+    tANI_U8      tx_power;
+    tANI_U8      link_margin;
+} tDot11fIETPCReport;
+
+#define DOT11F_EID_TPCREPORT ( 35 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TPCREPORT_MIN_LEN ( 2 )
+
+#define DOT11F_IE_TPCREPORT_MAX_LEN ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTPCReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCReport*);
+
+tANI_U32 dot11fPackIeTPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETPCReport(tpAniSirGlobal, tDot11fIETPCReport*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 34 (0x22)
+typedef struct sDot11fIETPCRequest {
+    tANI_U8      present;
+} tDot11fIETPCRequest;
+
+#define DOT11F_EID_TPCREQUEST ( 34 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_TPCREQUEST_MIN_LEN ( 0 )
+
+#define DOT11F_IE_TPCREQUEST_MAX_LEN ( 0 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeTPCRequest(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETPCRequest*);
+
+tANI_U32 dot11fPackIeTPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIETPCRequest(tpAniSirGlobal, tDot11fIETPCRequest*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 68 (0x44)
+typedef struct sDot11fIEWAPI {
+    tANI_U8      present;
+    tANI_U16     version /* Must be 1! */;
+    tANI_U16     akm_suite_count;
+    tANI_U8      akm_suites[4][4];
+    tANI_U16     unicast_cipher_suite_count;
+    tANI_U8      unicast_cipher_suites[4][4];
+    tANI_U8      multicast_cipher_suite[4];
+    tANI_U16          preauth: 1;
+    tANI_U16         reserved: 15;
+    tANI_U16     bkid_count;
+    tANI_U8      bkid[4][16];
+} tDot11fIEWAPI;
+
+#define DOT11F_EID_WAPI ( 68 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WAPI_MIN_LEN ( 12 )
+
+#define DOT11F_IE_WAPI_MAX_LEN ( 110 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWAPI(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPI*);
+
+tANI_U32 dot11fPackIeWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWAPI(tpAniSirGlobal, tDot11fIEWAPI*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 68 (0x44)
+typedef struct sDot11fIEWAPIOpaque {
+    tANI_U8      present;
+    tANI_U8      num_data;
+    tANI_U8      data[253];
+} tDot11fIEWAPIOpaque;
+
+#define DOT11F_EID_WAPIOPAQUE ( 68 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WAPIOPAQUE_MIN_LEN ( 6 )
+
+#define DOT11F_IE_WAPIOPAQUE_MAX_LEN ( 253 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWAPIOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWAPIOpaque*);
+
+tANI_U32 dot11fPackIeWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWAPIOpaque(tpAniSirGlobal, tDot11fIEWAPIOpaque*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x08, 0x00}
+typedef struct sDot11fIEWFATPC {
+    tANI_U8      present;
+    tANI_U8      txPower;
+    tANI_U8      linkMargin;
+} tDot11fIEWFATPC;
+
+#define DOT11F_EID_WFATPC ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WFATPC_MIN_LEN ( 7 )
+
+#define DOT11F_IE_WFATPC_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWFATPC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFATPC*);
+
+tANI_U32 dot11fPackIeWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWFATPC(tpAniSirGlobal, tDot11fIEWFATPC*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x05}
+typedef struct sDot11fIEWMMCaps {
+    tANI_U8      present;
+    tANI_U8      version /* Must be 1! */;
+    tANI_U8         reserved: 4;
+    tANI_U8             qack: 1;
+    tANI_U8    queue_request: 1;
+    tANI_U8     txop_request: 1;
+    tANI_U8         more_ack: 1;
+} tDot11fIEWMMCaps;
+
+#define DOT11F_EID_WMMCAPS ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMCAPS_MIN_LEN ( 7 )
+
+#define DOT11F_IE_WMMCAPS_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMCaps*);
+
+tANI_U32 dot11fPackIeWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMCaps(tpAniSirGlobal, tDot11fIEWMMCaps*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
+typedef struct sDot11fIEWMMInfoAp {
+    tANI_U8      present;
+    tANI_U8      version;
+    tANI_U8  param_set_count: 4;
+    tANI_U8         reserved: 3;
+    tANI_U8            uapsd: 1;
+} tDot11fIEWMMInfoAp;
+
+#define DOT11F_EID_WMMINFOAP ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMINFOAP_MIN_LEN ( 7 )
+
+#define DOT11F_IE_WMMINFOAP_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMInfoAp(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoAp*);
+
+tANI_U32 dot11fPackIeWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMInfoAp(tpAniSirGlobal, tDot11fIEWMMInfoAp*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00}
+typedef struct sDot11fIEWMMInfoStation {
+    tANI_U8      present;
+    tANI_U8      version;
+    tANI_U8       acvo_uapsd: 1;
+    tANI_U8       acvi_uapsd: 1;
+    tANI_U8       acbk_uapsd: 1;
+    tANI_U8       acbe_uapsd: 1;
+    tANI_U8        reserved1: 1;
+    tANI_U8    max_sp_length: 2;
+    tANI_U8        reserved2: 1;
+} tDot11fIEWMMInfoStation;
+
+#define DOT11F_EID_WMMINFOSTATION ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMINFOSTATION_MIN_LEN ( 7 )
+
+#define DOT11F_IE_WMMINFOSTATION_MAX_LEN ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMInfoStation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMInfoStation*);
+
+tANI_U32 dot11fPackIeWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMInfoStation(tpAniSirGlobal, tDot11fIEWMMInfoStation*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x01}
+typedef struct sDot11fIEWMMParams {
+    tANI_U8      present;
+    tANI_U8      version /* Must be 1! */;
+    tANI_U8      qosInfo;
+    tANI_U8      reserved2;
+    tANI_U8       acbe_aifsn: 4;
+    tANI_U8         acbe_acm: 1;
+    tANI_U8         acbe_aci: 2;
+    tANI_U8          unused1: 1;
+    tANI_U8      acbe_acwmin: 4;
+    tANI_U8      acbe_acwmax: 4;
+    tANI_U16     acbe_txoplimit;
+    tANI_U8       acbk_aifsn: 4;
+    tANI_U8         acbk_acm: 1;
+    tANI_U8         acbk_aci: 2;
+    tANI_U8          unused2: 1;
+    tANI_U8      acbk_acwmin: 4;
+    tANI_U8      acbk_acwmax: 4;
+    tANI_U16     acbk_txoplimit;
+    tANI_U8       acvi_aifsn: 4;
+    tANI_U8         acvi_acm: 1;
+    tANI_U8         acvi_aci: 2;
+    tANI_U8          unused3: 1;
+    tANI_U8      acvi_acwmin: 4;
+    tANI_U8      acvi_acwmax: 4;
+    tANI_U16     acvi_txoplimit;
+    tANI_U8       acvo_aifsn: 4;
+    tANI_U8         acvo_acm: 1;
+    tANI_U8         acvo_aci: 2;
+    tANI_U8          unused4: 1;
+    tANI_U8      acvo_acwmin: 4;
+    tANI_U8      acvo_acwmax: 4;
+    tANI_U16     acvo_txoplimit;
+} tDot11fIEWMMParams;
+
+#define DOT11F_EID_WMMPARAMS ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WMMPARAMS_MIN_LEN ( 24 )
+
+#define DOT11F_IE_WMMPARAMS_MAX_LEN ( 24 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWMMParams(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWMMParams*);
+
+tANI_U32 dot11fPackIeWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWMMParams(tpAniSirGlobal, tDot11fIEWMMParams*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
+typedef struct sDot11fIEWPA {
+    tANI_U8      present;
+    tANI_U16     version /* Must be 1! */;
+    tANI_U8      multicast_cipher_present;   //field added to fix the bug in dot11fPackIEWPA 
+    tANI_U8      multicast_cipher[4];
+    tANI_U16     unicast_cipher_count;
+    tANI_U8      unicast_ciphers[4][4];
+    tANI_U16     auth_suite_count;
+    tANI_U8      auth_suites[4][4];
+    tANI_U16     caps;
+} tDot11fIEWPA;
+
+#define DOT11F_EID_WPA ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WPA_MIN_LEN ( 6 )
+
+#define DOT11F_IE_WPA_MAX_LEN ( 48 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWPA(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPA*);
+
+tANI_U32 dot11fPackIeWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWPA(tpAniSirGlobal, tDot11fIEWPA*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01}
+typedef struct sDot11fIEWPAOpaque {
+    tANI_U8      present;
+    tANI_U8      num_data;
+    tANI_U8      data[249];
+} tDot11fIEWPAOpaque;
+
+#define DOT11F_EID_WPAOPAQUE ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WPAOPAQUE_MIN_LEN ( 6 )
+
+#define DOT11F_IE_WPAOPAQUE_MAX_LEN ( 253 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWPAOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWPAOpaque*);
+
+tANI_U32 dot11fPackIeWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWPAOpaque(tpAniSirGlobal, tDot11fIEWPAOpaque*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEWSC {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVWPSState WPSState;
+    tDot11fTLVAPSetupLocked APSetupLocked;
+    tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
+    tDot11fTLVUUID_E UUID_E;
+    tDot11fTLVUUID_R UUID_R;
+    tDot11fTLVRFBands RFBands;
+    tDot11fTLVSelectedRegistrar SelectedRegistrar;
+    tDot11fTLVConfigMethods ConfigMethods;
+    tDot11fTLVAssociationState AssociationState;
+    tDot11fTLVConfigurationError ConfigurationError;
+    tDot11fTLVManufacturer Manufacturer;
+    tDot11fTLVModelName ModelName;
+    tDot11fTLVModelNumber ModelNumber;
+    tDot11fTLVSerialNumber SerialNumber;
+    tDot11fTLVDeviceName DeviceName;
+    tDot11fTLVDevicePasswordID DevicePasswordID;
+    tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
+    tDot11fTLVRequestType RequestType;
+    tDot11fTLVResponseType ResponseType;
+    tDot11fTLVVendorExtension VendorExtension;
+    tDot11fTLVRequestDeviceType RequestDeviceType;
+} tDot11fIEWSC;
+
+#define DOT11F_EID_WSC ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSC_MIN_LEN ( 4 )
+
+#define DOT11F_IE_WSC_MAX_LEN ( 366 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWSC(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWSC*);
+
+tANI_U32 dot11fPackIeWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWSC(tpAniSirGlobal, tDot11fIEWSC*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEWscAssocReq {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVRequestType RequestType;
+    tDot11fTLVVendorExtension VendorExtension;
+} tDot11fIEWscAssocReq;
+
+#define DOT11F_EID_WSCASSOCREQ ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSCASSOCREQ_MIN_LEN ( 4 )
+
+#define DOT11F_IE_WSCASSOCREQ_MAX_LEN ( 35 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWscAssocReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocReq*);
+
+tANI_U32 dot11fPackIeWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWscAssocReq(tpAniSirGlobal, tDot11fIEWscAssocReq*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEWscAssocRes {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVResponseType ResponseType;
+    tDot11fTLVVendorExtension VendorExtension;
+} tDot11fIEWscAssocRes;
+
+#define DOT11F_EID_WSCASSOCRES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSCASSOCRES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_WSCASSOCRES_MAX_LEN ( 35 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWscAssocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscAssocRes*);
+
+tANI_U32 dot11fPackIeWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWscAssocRes(tpAniSirGlobal, tDot11fIEWscAssocRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEWscBeacon {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVWPSState WPSState;
+    tDot11fTLVAPSetupLocked APSetupLocked;
+    tDot11fTLVSelectedRegistrar SelectedRegistrar;
+    tDot11fTLVDevicePasswordID DevicePasswordID;
+    tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
+    tDot11fTLVUUID_E UUID_E;
+    tDot11fTLVRFBands RFBands;
+    tDot11fTLVVendorExtension VendorExtension;
+} tDot11fIEWscBeacon;
+
+#define DOT11F_EID_WSCBEACON ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSCBEACON_MIN_LEN ( 4 )
+
+#define DOT11F_IE_WSCBEACON_MAX_LEN ( 82 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWscBeacon(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeacon*);
+
+tANI_U32 dot11fPackIeWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWscBeacon(tpAniSirGlobal, tDot11fIEWscBeacon*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEWscBeaconProbeRes {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVWPSState WPSState;
+    tDot11fTLVAPSetupLocked APSetupLocked;
+    tDot11fTLVSelectedRegistrar SelectedRegistrar;
+    tDot11fTLVDevicePasswordID DevicePasswordID;
+    tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
+    tDot11fTLVResponseType ResponseType;
+    tDot11fTLVUUID_E UUID_E;
+    tDot11fTLVManufacturer Manufacturer;
+    tDot11fTLVModelName ModelName;
+    tDot11fTLVModelNumber ModelNumber;
+    tDot11fTLVSerialNumber SerialNumber;
+    tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
+    tDot11fTLVDeviceName DeviceName;
+    tDot11fTLVConfigMethods ConfigMethods;
+    tDot11fTLVRFBands RFBands;
+    tDot11fTLVVendorExtension VendorExtension;
+} tDot11fIEWscBeaconProbeRes;
+
+#define DOT11F_EID_WSCBEACONPROBERES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSCBEACONPROBERES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_WSCBEACONPROBERES_MAX_LEN ( 317 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWscBeaconProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscBeaconProbeRes*);
+
+tANI_U32 dot11fPackIeWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWscBeaconProbeRes(tpAniSirGlobal, tDot11fIEWscBeaconProbeRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04}
+typedef struct sDot11fIEWscIEOpaque {
+    tANI_U8      present;
+    tANI_U8      num_data;
+    tANI_U8      data[249];
+} tDot11fIEWscIEOpaque;
+
+#define DOT11F_EID_WSCIEOPAQUE ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSCIEOPAQUE_MIN_LEN ( 6 )
+
+#define DOT11F_IE_WSCIEOPAQUE_MAX_LEN ( 253 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWscIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscIEOpaque*);
+
+tANI_U32 dot11fPackIeWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWscIEOpaque(tpAniSirGlobal, tDot11fIEWscIEOpaque*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEWscProbeReq {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVRequestType RequestType;
+    tDot11fTLVConfigMethods ConfigMethods;
+    tDot11fTLVUUID_E UUID_E;
+    tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
+    tDot11fTLVRFBands RFBands;
+    tDot11fTLVAssociationState AssociationState;
+    tDot11fTLVConfigurationError ConfigurationError;
+    tDot11fTLVDevicePasswordID DevicePasswordID;
+    tDot11fTLVManufacturer Manufacturer;
+    tDot11fTLVModelName ModelName;
+    tDot11fTLVModelNumber ModelNumber;
+    tDot11fTLVDeviceName DeviceName;
+    tDot11fTLVVendorExtension VendorExtension;
+    tDot11fTLVRequestDeviceType RequestDeviceType;
+} tDot11fIEWscProbeReq;
+
+#define DOT11F_EID_WSCPROBEREQ ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSCPROBEREQ_MIN_LEN ( 4 )
+
+#define DOT11F_IE_WSCPROBEREQ_MAX_LEN ( 284 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWscProbeReq(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeReq*);
+
+tANI_U32 dot11fPackIeWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWscProbeReq(tpAniSirGlobal, tDot11fIEWscProbeReq*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEWscProbeRes {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVWPSState WPSState;
+    tDot11fTLVAPSetupLocked APSetupLocked;
+    tDot11fTLVSelectedRegistrar SelectedRegistrar;
+    tDot11fTLVDevicePasswordID DevicePasswordID;
+    tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
+    tDot11fTLVResponseType ResponseType;
+    tDot11fTLVUUID_E UUID_E;
+    tDot11fTLVManufacturer Manufacturer;
+    tDot11fTLVModelName ModelName;
+    tDot11fTLVModelNumber ModelNumber;
+    tDot11fTLVSerialNumber SerialNumber;
+    tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
+    tDot11fTLVDeviceName DeviceName;
+    tDot11fTLVConfigMethods ConfigMethods;
+    tDot11fTLVRFBands RFBands;
+    tDot11fTLVVendorExtension VendorExtension;
+} tDot11fIEWscProbeRes;
+
+#define DOT11F_EID_WSCPROBERES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSCPROBERES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_WSCPROBERES_MAX_LEN ( 317 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWscProbeRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscProbeRes*);
+
+tANI_U32 dot11fPackIeWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWscProbeRes(tpAniSirGlobal, tDot11fIEWscProbeRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+// EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE)
+typedef struct sDot11fIEWscReassocRes {
+    tANI_U8      present;
+    tDot11fTLVVersion Version;
+    tDot11fTLVResponseType ResponseType;
+    tDot11fTLVVendorExtension VendorExtension;
+} tDot11fIEWscReassocRes;
+
+#define DOT11F_EID_WSCREASSOCRES ( 221 )
+
+// N.B. These #defines do *not* include the EID & length
+#define DOT11F_IE_WSCREASSOCRES_MIN_LEN ( 4 )
+
+#define DOT11F_IE_WSCREASSOCRES_MAX_LEN ( 35 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+tANI_U32 dot11fUnpackIeWscReassocRes(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWscReassocRes*);
+
+tANI_U32 dot11fPackIeWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U8*, tANI_U32, tANI_U32*);
+
+tANI_U32 dot11fGetPackedIEWscReassocRes(tpAniSirGlobal, tDot11fIEWscReassocRes*, tANI_U32*);
+
+#ifdef __cplusplus
+}; /* End extern "C". */
+#endif /* C++ */
+/************************************************************************
+ * Frames
+ **********************************************************************/
+
+typedef struct sDot11fAddBAReq{
+    tDot11fFfCategory                  Category;
+    tDot11fFfAction                    Action;
+    tDot11fFfDialogToken               DialogToken;
+    tDot11fFfAddBAParameterSet         AddBAParameterSet;
+    tDot11fFfBATimeout                 BATimeout;
+    tDot11fFfBAStartingSequenceControl BAStartingSequenceControl;
+} tDot11fAddBAReq;
+
+#define DOT11F_ADDBAREQ ( 1 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackAddBAReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBAReq *pFrm);
+tANI_U32 dot11fPackAddBAReq(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedAddBAReqSize(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fAddBARsp{
+    tDot11fFfCategory          Category;
+    tDot11fFfAction            Action;
+    tDot11fFfDialogToken       DialogToken;
+    tDot11fFfStatus            Status;
+    tDot11fFfAddBAParameterSet AddBAParameterSet;
+    tDot11fFfBATimeout         BATimeout;
+} tDot11fAddBARsp;
+
+#define DOT11F_ADDBARSP ( 2 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackAddBARsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddBARsp *pFrm);
+tANI_U32 dot11fPackAddBARsp(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedAddBARspSize(tpAniSirGlobal pCtx, tDot11fAddBARsp *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fAddTSRequest{
+    tDot11fFfCategory           Category;
+    tDot11fFfAction             Action;
+    tDot11fFfDialogToken        DialogToken;
+    tDot11fIETSPEC              TSPEC;
+    tANI_U16                    num_TCLAS;
+    tDot11fIETCLAS              TCLAS[2];
+    tDot11fIETCLASSPROC         TCLASSPROC;
+    tDot11fIEWMMTSPEC           WMMTSPEC;
+    tANI_U16                    num_WMMTCLAS;
+    tDot11fIEWMMTCLAS           WMMTCLAS[2];
+    tDot11fIEWMMTCLASPROC       WMMTCLASPROC;
+    tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
+} tDot11fAddTSRequest;
+
+#define DOT11F_ADDTSREQUEST ( 3 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSRequest *pFrm);
+tANI_U32 dot11fPackAddTSRequest(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fAddTSResponse{
+    tDot11fFfCategory       Category;
+    tDot11fFfAction         Action;
+    tDot11fFfDialogToken    DialogToken;
+    tDot11fFfStatus         Status;
+    tDot11fIETSDelay        TSDelay;
+    tDot11fIETSPEC          TSPEC;
+    tANI_U16                num_TCLAS;
+    tDot11fIETCLAS          TCLAS[2];
+    tDot11fIETCLASSPROC     TCLASSPROC;
+    tDot11fIESchedule       Schedule;
+    tDot11fIEWMMTSDelay     WMMTSDelay;
+    tDot11fIEWMMSchedule    WMMSchedule;
+    tDot11fIEWMMTSPEC       WMMTSPEC;
+    tANI_U16                num_WMMTCLAS;
+    tDot11fIEWMMTCLAS       WMMTCLAS[2];
+    tDot11fIEWMMTCLASPROC   WMMTCLASPROC;
+    tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
+} tDot11fAddTSResponse;
+
+#define DOT11F_ADDTSRESPONSE ( 4 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAddTSResponse *pFrm);
+tANI_U32 dot11fPackAddTSResponse(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fAssocRequest{
+    tDot11fFfCapabilities   Capabilities;
+    tDot11fFfListenInterval ListenInterval;
+    tDot11fIESSID           SSID;
+    tDot11fIESuppRates      SuppRates;
+    tDot11fIEExtSuppRates   ExtSuppRates;
+    tDot11fIEPowerCaps      PowerCaps;
+    tDot11fIESuppChannels   SuppChannels;
+    tDot11fIERSNOpaque      RSNOpaque;
+    tDot11fIEQOSCapsStation QOSCapsStation;
+    tDot11fIERRMEnabledCap  RRMEnabledCap;
+    tDot11fIEMobilityDomain MobilityDomain;
+    tDot11fIEWPAOpaque      WPAOpaque;
+    tDot11fIEHTCaps         HTCaps;
+    tDot11fIEWMMCaps        WMMCaps;
+    tDot11fIEWMMInfoStation WMMInfoStation;
+    tDot11fIEAirgo          Airgo;
+    tDot11fIEWscIEOpaque    WscIEOpaque;
+    tDot11fIEWAPIOpaque     WAPIOpaque;
+    tDot11fIECCXRadMgmtCap  CCXRadMgmtCap;
+    tDot11fIECCXVersion     CCXVersion;
+    tDot11fIEP2PIEOpaque    P2PIEOpaque;
+} tDot11fAssocRequest;
+
+#define DOT11F_ASSOCREQUEST ( 5 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocRequest *pFrm);
+tANI_U32 dot11fPackAssocRequest(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedAssocRequestSize(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fAssocResponse{
+    tDot11fFfCapabilities   Capabilities;
+    tDot11fFfStatus         Status;
+    tDot11fFfAID            AID;
+    tDot11fIESuppRates      SuppRates;
+    tDot11fIEExtSuppRates   ExtSuppRates;
+    tDot11fIEEDCAParamSet   EDCAParamSet;
+    tDot11fIERCPIIE         RCPIIE;
+    tDot11fIERSNIIE         RSNIIE;
+    tDot11fIERRMEnabledCap  RRMEnabledCap;
+    tDot11fIEMobilityDomain MobilityDomain;
+    tDot11fIEFTInfo         FTInfo;
+    tANI_U16                num_RICDataDesc;
+    tDot11fIERICDataDesc    RICDataDesc[2];
+    tDot11fIEWPA            WPA;
+    tDot11fIEHTCaps         HTCaps;
+    tDot11fIEHTInfo         HTInfo;
+    tDot11fIEWMMParams      WMMParams;
+    tDot11fIEWMMCaps        WMMCaps;
+    tDot11fIECCXRadMgmtCap  CCXRadMgmtCap;
+    tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
+    tDot11fIECCXTxmitPower  CCXTxmitPower;
+    tANI_U16                num_WMMTSPEC;
+    tDot11fIEWMMTSPEC       WMMTSPEC[4];
+    tDot11fIEAirgo          Airgo;
+    tDot11fIEWscAssocRes    WscAssocRes;
+    tDot11fIEP2PAssocRes    P2PAssocRes;
+} tDot11fAssocResponse;
+
+#define DOT11F_ASSOCRESPONSE ( 6 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocResponse *pFrm);
+tANI_U32 dot11fPackAssocResponse(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedAssocResponseSize(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fAuthentication{
+    tDot11fFfAuthAlgo          AuthAlgo;
+    tDot11fFfAuthSeqNo         AuthSeqNo;
+    tDot11fFfStatus            Status;
+    tDot11fIEChallengeText     ChallengeText;
+    tDot11fIERSNOpaque         RSNOpaque;
+    tDot11fIEMobilityDomain    MobilityDomain;
+    tDot11fIEFTInfo            FTInfo;
+    tDot11fIEFTTimeoutInterval FTTimeoutInterval;
+    tANI_U16                   num_RICDataDesc;
+    tDot11fIERICDataDesc       RICDataDesc[2];
+} tDot11fAuthentication;
+
+#define DOT11F_AUTHENTICATION ( 7 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackAuthentication(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAuthentication *pFrm);
+tANI_U32 dot11fPackAuthentication(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedAuthenticationSize(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fBeacon{
+    tDot11fFfTimeStamp        TimeStamp;
+    tDot11fFfBeaconInterval   BeaconInterval;
+    tDot11fFfCapabilities     Capabilities;
+    tDot11fIESSID             SSID;
+    tDot11fIESuppRates        SuppRates;
+    tDot11fIEFHParamSet       FHParamSet;
+    tDot11fIEDSParams         DSParams;
+    tDot11fIECFParams         CFParams;
+    tDot11fIEIBSSParams       IBSSParams;
+    tDot11fIETIM              TIM;
+    tDot11fIECountry          Country;
+    tDot11fIEFHParams         FHParams;
+    tDot11fIEFHPattTable      FHPattTable;
+    tDot11fIEPowerConstraints PowerConstraints;
+    tDot11fIEChanSwitchAnn    ChanSwitchAnn;
+    tDot11fIEQuiet            Quiet;
+    tDot11fIETPCReport        TPCReport;
+    tDot11fIEERPInfo          ERPInfo;
+    tDot11fIEExtSuppRates     ExtSuppRates;
+    tDot11fIERSN              RSN;
+    tDot11fIEQBSSLoad         QBSSLoad;
+    tDot11fIEEDCAParamSet     EDCAParamSet;
+    tDot11fIEQOSCapsAp        QOSCapsAp;
+    tDot11fIEAPChannelReport  APChannelReport;
+    tDot11fIERRMEnabledCap    RRMEnabledCap;
+    tDot11fIEMobilityDomain   MobilityDomain;
+    tDot11fIEWPA              WPA;
+    tDot11fIEHTCaps           HTCaps;
+    tDot11fIEHTInfo           HTInfo;
+    tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
+    tDot11fIEWMMInfoAp        WMMInfoAp;
+    tDot11fIEWMMParams        WMMParams;
+    tDot11fIEWMMCaps          WMMCaps;
+    tDot11fIEWAPI             WAPI;
+    tDot11fIECCXRadMgmtCap    CCXRadMgmtCap;
+    tDot11fIECCXTrafStrmMet   CCXTrafStrmMet;
+    tDot11fIECCXTxmitPower    CCXTxmitPower;
+    tDot11fIEAirgo            Airgo;
+    tDot11fIEWscBeacon        WscBeacon;
+    tDot11fIEP2PBeacon        P2PBeacon;
+} tDot11fBeacon;
+
+#define DOT11F_BEACON ( 8 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackBeacon(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon *pFrm);
+tANI_U32 dot11fPackBeacon(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedBeaconSize(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fBeacon1{
+    tDot11fFfTimeStamp      TimeStamp;
+    tDot11fFfBeaconInterval BeaconInterval;
+    tDot11fFfCapabilities   Capabilities;
+    tDot11fIESSID           SSID;
+    tDot11fIESuppRates      SuppRates;
+    tDot11fIEDSParams       DSParams;
+    tDot11fIEIBSSParams     IBSSParams;
+} tDot11fBeacon1;
+
+#define DOT11F_BEACON1 ( 9 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackBeacon1(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon1 *pFrm);
+tANI_U32 dot11fPackBeacon1(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedBeacon1Size(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fBeacon2{
+    tDot11fIECountry          Country;
+    tDot11fIEPowerConstraints PowerConstraints;
+    tDot11fIEChanSwitchAnn    ChanSwitchAnn;
+    tDot11fIEQuiet            Quiet;
+    tDot11fIETPCReport        TPCReport;
+    tDot11fIEERPInfo          ERPInfo;
+    tDot11fIEExtSuppRates     ExtSuppRates;
+    tDot11fIERSN              RSN;
+    tDot11fIEEDCAParamSet     EDCAParamSet;
+    tDot11fIEAPChannelReport  APChannelReport;
+    tDot11fIERRMEnabledCap    RRMEnabledCap;
+    tDot11fIEMobilityDomain   MobilityDomain;
+    tDot11fIEWPA              WPA;
+    tDot11fIEHTCaps           HTCaps;
+    tDot11fIEHTInfo           HTInfo;
+    tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
+    tDot11fIEWMMInfoAp        WMMInfoAp;
+    tDot11fIEWMMParams        WMMParams;
+    tDot11fIEWMMCaps          WMMCaps;
+    tDot11fIEAirgo            Airgo;
+    tDot11fIEWscBeacon        WscBeacon;
+    tDot11fIEWAPI             WAPI;
+    tDot11fIECCXRadMgmtCap    CCXRadMgmtCap;
+    tDot11fIECCXTrafStrmMet   CCXTrafStrmMet;
+    tDot11fIECCXTxmitPower    CCXTxmitPower;
+    tDot11fIEP2PBeacon        P2PBeacon;
+} tDot11fBeacon2;
+
+#define DOT11F_BEACON2 ( 10 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackBeacon2(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeacon2 *pFrm);
+tANI_U32 dot11fPackBeacon2(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedBeacon2Size(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fBeaconIEs{
+    tDot11fIESSID              SSID;
+    tDot11fIESuppRates         SuppRates;
+    tDot11fIEFHParamSet        FHParamSet;
+    tDot11fIEDSParams          DSParams;
+    tDot11fIECFParams          CFParams;
+    tDot11fIEIBSSParams        IBSSParams;
+    tDot11fIETIM               TIM;
+    tDot11fIECountry           Country;
+    tDot11fIEFHParams          FHParams;
+    tDot11fIEFHPattTable       FHPattTable;
+    tDot11fIEPowerConstraints  PowerConstraints;
+    tDot11fIEChanSwitchAnn     ChanSwitchAnn;
+    tDot11fIEQuiet             Quiet;
+    tDot11fIETPCReport         TPCReport;
+    tDot11fIEERPInfo           ERPInfo;
+    tDot11fIEExtSuppRates      ExtSuppRates;
+    tDot11fIERSN               RSN;
+    tDot11fIEQBSSLoad          QBSSLoad;
+    tDot11fIEEDCAParamSet      EDCAParamSet;
+    tDot11fIEQOSCapsAp         QOSCapsAp;
+    tDot11fIEAPChannelReport   APChannelReport;
+    tDot11fIERRMEnabledCap     RRMEnabledCap;
+    tDot11fIEMobilityDomain    MobilityDomain;
+    tDot11fIEWPA               WPA;
+    tDot11fIEHTCaps            HTCaps;
+    tDot11fIEHTInfo            HTInfo;
+    tDot11fIEExtChanSwitchAnn  ExtChanSwitchAnn;
+    tDot11fIEWMMInfoAp         WMMInfoAp;
+    tDot11fIEWMMParams         WMMParams;
+    tDot11fIEWMMCaps           WMMCaps;
+    tDot11fIEWAPI              WAPI;
+    tDot11fIECCXVersion        CCXVersion;
+    tDot11fIECCXRadMgmtCap     CCXRadMgmtCap;
+    tDot11fIECCXTrafStrmMet    CCXTrafStrmMet;
+    tDot11fIECCXTxmitPower     CCXTxmitPower;
+    tDot11fIEAirgo             Airgo;
+    tDot11fIEWscBeaconProbeRes WscBeaconProbeRes;
+    tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes;
+} tDot11fBeaconIEs;
+
+#define DOT11F_BEACONIES ( 11 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackBeaconIEs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fBeaconIEs *pFrm);
+tANI_U32 dot11fPackBeaconIEs(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedBeaconIEsSize(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fChannelSwitch{
+    tDot11fFfCategory         Category;
+    tDot11fFfAction           Action;
+    tDot11fIEChanSwitchAnn    ChanSwitchAnn;
+    tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
+} tDot11fChannelSwitch;
+
+#define DOT11F_CHANNELSWITCH ( 12 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackChannelSwitch(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fChannelSwitch *pFrm);
+tANI_U32 dot11fPackChannelSwitch(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedChannelSwitchSize(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fDeAuth{
+    tDot11fFfReason    Reason;
+    tDot11fIEP2PDeAuth P2PDeAuth;
+} tDot11fDeAuth;
+
+#define DOT11F_DEAUTH ( 13 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackDeAuth(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeAuth *pFrm);
+tANI_U32 dot11fPackDeAuth(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedDeAuthSize(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fDelBAInd{
+    tDot11fFfCategory          Category;
+    tDot11fFfAction            Action;
+    tDot11fFfDelBAParameterSet DelBAParameterSet;
+    tDot11fFfReason            Reason;
+} tDot11fDelBAInd;
+
+#define DOT11F_DELBAIND ( 14 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackDelBAInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelBAInd *pFrm);
+tANI_U32 dot11fPackDelBAInd(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedDelBAIndSize(tpAniSirGlobal pCtx, tDot11fDelBAInd *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fDelTS{
+    tDot11fFfCategory Category;
+    tDot11fFfAction   Action;
+    tDot11fFfTSInfo   TSInfo;
+    tDot11fFfReason   Reason;
+} tDot11fDelTS;
+
+#define DOT11F_DELTS ( 15 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDelTS *pFrm);
+tANI_U32 dot11fPackDelTS(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedDelTSSize(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fDeviceDiscoverabilityReq{
+    tDot11fFfCategory                    Category;
+    tDot11fFfAction                      Action;
+    tDot11fFfP2POUI                      P2POUI;
+    tDot11fFfP2POUISubType               P2POUISubType;
+    tDot11fFfDialogToken                 DialogToken;
+    tDot11fIEP2PDeviceDiscoverabilityReq P2PDeviceDiscoverabilityReq;
+} tDot11fDeviceDiscoverabilityReq;
+
+#define DOT11F_DEVICEDISCOVERABILITYREQ ( 16 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityReq *pFrm);
+tANI_U32 dot11fPackDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedDeviceDiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fDeviceDiscoverabilityRes{
+    tDot11fFfCategory                    Category;
+    tDot11fFfAction                      Action;
+    tDot11fFfP2POUI                      P2POUI;
+    tDot11fFfP2POUISubType               P2POUISubType;
+    tDot11fFfDialogToken                 DialogToken;
+    tDot11fIEP2PDeviceDiscoverabilityRes P2PDeviceDiscoverabilityRes;
+} tDot11fDeviceDiscoverabilityRes;
+
+#define DOT11F_DEVICEDISCOVERABILITYRES ( 17 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDeviceDiscoverabilityRes *pFrm);
+tANI_U32 dot11fPackDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedDeviceDiscoverabilityResSize(tpAniSirGlobal pCtx, tDot11fDeviceDiscoverabilityRes *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fDisassociation{
+    tDot11fFfReason      Reason;
+    tDot11fIEP2PDisAssoc P2PDisAssoc;
+} tDot11fDisassociation;
+
+#define DOT11F_DISASSOCIATION ( 18 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackDisassociation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fDisassociation *pFrm);
+tANI_U32 dot11fPackDisassociation(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedDisassociationSize(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fGODiscoverabilityReq{
+    tDot11fFfCategory      Category;
+    tDot11fFfP2POUI        P2POUI;
+    tDot11fFfP2POUISubType P2POUISubType;
+    tDot11fFfDialogToken   DialogToken;
+} tDot11fGODiscoverabilityReq;
+
+#define DOT11F_GODISCOVERABILITYREQ ( 19 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackGODiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGODiscoverabilityReq *pFrm);
+tANI_U32 dot11fPackGODiscoverabilityReq(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedGODiscoverabilityReqSize(tpAniSirGlobal pCtx, tDot11fGODiscoverabilityReq *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fGONegCnf{
+    tDot11fFfCategory      Category;
+    tDot11fFfAction        Action;
+    tDot11fFfP2POUI        P2POUI;
+    tDot11fFfP2POUISubType P2POUISubType;
+    tDot11fFfDialogToken   DialogToken;
+    tDot11fIEP2PGONegCnf   P2PGONegCnf;
+} tDot11fGONegCnf;
+
+#define DOT11F_GONEGCNF ( 20 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackGONegCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegCnf *pFrm);
+tANI_U32 dot11fPackGONegCnf(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedGONegCnfSize(tpAniSirGlobal pCtx, tDot11fGONegCnf *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fGONegReq{
+    tDot11fFfCategory      Category;
+    tDot11fFfAction        Action;
+    tDot11fFfP2POUI        P2POUI;
+    tDot11fFfP2POUISubType P2POUISubType;
+    tDot11fFfDialogToken   DialogToken;
+    tDot11fIEP2PGONegWPS   P2PGONegWPS;
+    tDot11fIEP2PGONegReq   P2PGONegReq;
+} tDot11fGONegReq;
+
+#define DOT11F_GONEGREQ ( 21 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackGONegReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegReq *pFrm);
+tANI_U32 dot11fPackGONegReq(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedGONegReqSize(tpAniSirGlobal pCtx, tDot11fGONegReq *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fGONegRes{
+    tDot11fFfCategory      Category;
+    tDot11fFfAction        Action;
+    tDot11fFfP2POUI        P2POUI;
+    tDot11fFfP2POUISubType P2POUISubType;
+    tDot11fFfDialogToken   DialogToken;
+    tDot11fIEP2PGONegWPS   P2PGONegWPS;
+    tDot11fIEP2PGONegRes   P2PGONegRes;
+} tDot11fGONegRes;
+
+#define DOT11F_GONEGRES ( 22 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackGONegRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fGONegRes *pFrm);
+tANI_U32 dot11fPackGONegRes(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedGONegResSize(tpAniSirGlobal pCtx, tDot11fGONegRes *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fInvitationReq{
+    tDot11fFfCategory         Category;
+    tDot11fFfAction           Action;
+    tDot11fFfP2POUI           P2POUI;
+    tDot11fFfP2POUISubType    P2POUISubType;
+    tDot11fFfDialogToken      DialogToken;
+    tDot11fIEP2PInvitationReq P2PInvitationReq;
+} tDot11fInvitationReq;
+
+#define DOT11F_INVITATIONREQ ( 23 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackInvitationReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationReq *pFrm);
+tANI_U32 dot11fPackInvitationReq(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedInvitationReqSize(tpAniSirGlobal pCtx, tDot11fInvitationReq *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fInvitationRes{
+    tDot11fFfCategory         Category;
+    tDot11fFfAction           Action;
+    tDot11fFfP2POUI           P2POUI;
+    tDot11fFfP2POUISubType    P2POUISubType;
+    tDot11fFfDialogToken      DialogToken;
+    tDot11fIEP2PInvitationRes P2PInvitationRes;
+} tDot11fInvitationRes;
+
+#define DOT11F_INVITATIONRES ( 24 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackInvitationRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fInvitationRes *pFrm);
+tANI_U32 dot11fPackInvitationRes(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedInvitationResSize(tpAniSirGlobal pCtx, tDot11fInvitationRes *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fLinkMeasurementReport{
+    tDot11fFfCategory    Category;
+    tDot11fFfAction      Action;
+    tDot11fFfDialogToken DialogToken;
+    tDot11fFfTPCEleID    TPCEleID;
+    tDot11fFfTPCEleLen   TPCEleLen;
+    tDot11fFfTxPower     TxPower;
+    tDot11fFfLinkMargin  LinkMargin;
+    tDot11fFfRxAntennaId RxAntennaId;
+    tDot11fFfTxAntennaId TxAntennaId;
+    tDot11fFfRCPI        RCPI;
+    tDot11fFfRSNI        RSNI;
+} tDot11fLinkMeasurementReport;
+
+#define DOT11F_LINKMEASUREMENTREPORT ( 25 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackLinkMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementReport *pFrm);
+tANI_U32 dot11fPackLinkMeasurementReport(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedLinkMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fLinkMeasurementRequest{
+    tDot11fFfCategory    Category;
+    tDot11fFfAction      Action;
+    tDot11fFfDialogToken DialogToken;
+    tDot11fFfTxPower     TxPower;
+    tDot11fFfMaxTxPower  MaxTxPower;
+} tDot11fLinkMeasurementRequest;
+
+#define DOT11F_LINKMEASUREMENTREQUEST ( 26 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackLinkMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fLinkMeasurementRequest *pFrm);
+tANI_U32 dot11fPackLinkMeasurementRequest(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedLinkMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fMeasurementReport{
+    tDot11fFfCategory          Category;
+    tDot11fFfAction            Action;
+    tDot11fFfDialogToken       DialogToken;
+    tDot11fIEMeasurementReport MeasurementReport;
+} tDot11fMeasurementReport;
+
+#define DOT11F_MEASUREMENTREPORT ( 27 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementReport *pFrm);
+tANI_U32 dot11fPackMeasurementReport(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fMeasurementRequest{
+    tDot11fFfCategory           Category;
+    tDot11fFfAction             Action;
+    tDot11fFfDialogToken        DialogToken;
+    tANI_U16                    num_MeasurementRequest;
+    tDot11fIEMeasurementRequest MeasurementRequest[4];
+} tDot11fMeasurementRequest;
+
+#define DOT11F_MEASUREMENTREQUEST ( 28 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fMeasurementRequest *pFrm);
+tANI_U32 dot11fPackMeasurementRequest(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fNeighborReportRequest{
+    tDot11fFfCategory    Category;
+    tDot11fFfAction      Action;
+    tDot11fFfDialogToken DialogToken;
+    tDot11fIESSID        SSID;
+} tDot11fNeighborReportRequest;
+
+#define DOT11F_NEIGHBORREPORTREQUEST ( 29 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackNeighborReportRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportRequest *pFrm);
+tANI_U32 dot11fPackNeighborReportRequest(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedNeighborReportRequestSize(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fNeighborReportResponse{
+    tDot11fFfCategory       Category;
+    tDot11fFfAction         Action;
+    tDot11fFfDialogToken    DialogToken;
+    tANI_U16                num_NeighborReport;
+    tDot11fIENeighborReport NeighborReport[4];
+} tDot11fNeighborReportResponse;
+
+#define DOT11F_NEIGHBORREPORTRESPONSE ( 30 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackNeighborReportResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNeighborReportResponse *pFrm);
+tANI_U32 dot11fPackNeighborReportResponse(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedNeighborReportResponseSize(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fNoticeOfAbs{
+    tDot11fFfCategory           Category;
+    tDot11fFfP2POUI             P2POUI;
+    tDot11fFfP2POUISubType      P2POUISubType;
+    tDot11fFfDialogToken        DialogToken;
+    tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
+} tDot11fNoticeOfAbs;
+
+#define DOT11F_NOTICEOFABS ( 31 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackNoticeOfAbs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fNoticeOfAbs *pFrm);
+tANI_U32 dot11fPackNoticeOfAbs(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedNoticeOfAbsSize(tpAniSirGlobal pCtx, tDot11fNoticeOfAbs *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fPresenceReq{
+    tDot11fFfCategory           Category;
+    tDot11fFfP2POUI             P2POUI;
+    tDot11fFfP2POUISubType      P2POUISubType;
+    tDot11fFfDialogToken        DialogToken;
+    tDot11fIEP2PNoticeOfAbsence P2PNoticeOfAbsence;
+} tDot11fPresenceReq;
+
+#define DOT11F_PRESENCEREQ ( 32 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackPresenceReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceReq *pFrm);
+tANI_U32 dot11fPackPresenceReq(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedPresenceReqSize(tpAniSirGlobal pCtx, tDot11fPresenceReq *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fPresenceRes{
+    tDot11fFfCategory            Category;
+    tDot11fFfP2POUI              P2POUI;
+    tDot11fFfP2POUISubType       P2POUISubType;
+    tDot11fFfDialogToken         DialogToken;
+    tDot11fIEP2PPresenceResponse P2PPresenceResponse;
+} tDot11fPresenceRes;
+
+#define DOT11F_PRESENCERES ( 33 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackPresenceRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fPresenceRes *pFrm);
+tANI_U32 dot11fPackPresenceRes(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedPresenceResSize(tpAniSirGlobal pCtx, tDot11fPresenceRes *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fProbeRequest{
+    tDot11fIESSID          SSID;
+    tDot11fIESuppRates     SuppRates;
+    tDot11fIERequestedInfo RequestedInfo;
+    tDot11fIEExtSuppRates  ExtSuppRates;
+    tDot11fIEDSParams      DSParams;
+    tDot11fIEHTCaps        HTCaps;
+    tDot11fIEWscProbeReq   WscProbeReq;
+    tDot11fIEWFATPC        WFATPC;
+    tDot11fIEP2PProbeReq   P2PProbeReq;
+} tDot11fProbeRequest;
+
+#define DOT11F_PROBEREQUEST ( 34 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackProbeRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeRequest *pFrm);
+tANI_U32 dot11fPackProbeRequest(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedProbeRequestSize(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fProbeResponse{
+    tDot11fFfTimeStamp        TimeStamp;
+    tDot11fFfBeaconInterval   BeaconInterval;
+    tDot11fFfCapabilities     Capabilities;
+    tDot11fIESSID             SSID;
+    tDot11fIESuppRates        SuppRates;
+    tDot11fIEFHParamSet       FHParamSet;
+    tDot11fIEDSParams         DSParams;
+    tDot11fIECFParams         CFParams;
+    tDot11fIEIBSSParams       IBSSParams;
+    tDot11fIECountry          Country;
+    tDot11fIEFHParams         FHParams;
+    tDot11fIEFHPattTable      FHPattTable;
+    tDot11fIEPowerConstraints PowerConstraints;
+    tDot11fIEChanSwitchAnn    ChanSwitchAnn;
+    tDot11fIEQuiet            Quiet;
+    tDot11fIETPCReport        TPCReport;
+    tDot11fIEERPInfo          ERPInfo;
+    tDot11fIEExtSuppRates     ExtSuppRates;
+    tDot11fIERSN              RSN;
+    tDot11fIEQBSSLoad         QBSSLoad;
+    tDot11fIEEDCAParamSet     EDCAParamSet;
+    tDot11fIERRMEnabledCap    RRMEnabledCap;
+    tDot11fIEAPChannelReport  APChannelReport;
+    tDot11fIEMobilityDomain   MobilityDomain;
+    tDot11fIEWPA              WPA;
+    tDot11fIEHTCaps           HTCaps;
+    tDot11fIEHTInfo           HTInfo;
+    tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
+    tDot11fIEWMMInfoAp        WMMInfoAp;
+    tDot11fIEWMMParams        WMMParams;
+    tDot11fIEWMMCaps          WMMCaps;
+    tDot11fIEWAPI             WAPI;
+    tDot11fIECCXRadMgmtCap    CCXRadMgmtCap;
+    tDot11fIECCXTrafStrmMet   CCXTrafStrmMet;
+    tDot11fIECCXTxmitPower    CCXTxmitPower;
+    tDot11fIEAirgo            Airgo;
+    tDot11fIEWscProbeRes      WscProbeRes;
+    tDot11fIEP2PProbeRes      P2PProbeRes;
+} tDot11fProbeResponse;
+
+#define DOT11F_PROBERESPONSE ( 35 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackProbeResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProbeResponse *pFrm);
+tANI_U32 dot11fPackProbeResponse(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedProbeResponseSize(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fProvisionDiscoveryReq{
+    tDot11fFfCategory                 Category;
+    tDot11fFfAction                   Action;
+    tDot11fFfP2POUI                   P2POUI;
+    tDot11fFfP2POUISubType            P2POUISubType;
+    tDot11fFfDialogToken              DialogToken;
+    tDot11fIEP2PProvisionDiscoveryReq P2PProvisionDiscoveryReq;
+} tDot11fProvisionDiscoveryReq;
+
+#define DOT11F_PROVISIONDISCOVERYREQ ( 36 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryReq *pFrm);
+tANI_U32 dot11fPackProvisionDiscoveryReq(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedProvisionDiscoveryReqSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryReq *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fProvisionDiscoveryRes{
+    tDot11fFfCategory                    Category;
+    tDot11fFfAction                      Action;
+    tDot11fFfP2POUI                      P2POUI;
+    tDot11fFfP2POUISubType               P2POUISubType;
+    tDot11fFfDialogToken                 DialogToken;
+    tDot11fIEP2PWSCProvisionDiscoveryRes P2PWSCProvisionDiscoveryRes;
+} tDot11fProvisionDiscoveryRes;
+
+#define DOT11F_PROVISIONDISCOVERYRES ( 37 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fProvisionDiscoveryRes *pFrm);
+tANI_U32 dot11fPackProvisionDiscoveryRes(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedProvisionDiscoveryResSize(tpAniSirGlobal pCtx, tDot11fProvisionDiscoveryRes *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fRadioMeasurementReport{
+    tDot11fFfCategory          Category;
+    tDot11fFfAction            Action;
+    tDot11fFfDialogToken       DialogToken;
+    tANI_U16                   num_MeasurementReport;
+    tDot11fIEMeasurementReport MeasurementReport[4];
+} tDot11fRadioMeasurementReport;
+
+#define DOT11F_RADIOMEASUREMENTREPORT ( 38 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackRadioMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementReport *pFrm);
+tANI_U32 dot11fPackRadioMeasurementReport(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedRadioMeasurementReportSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fRadioMeasurementRequest{
+    tDot11fFfCategory           Category;
+    tDot11fFfAction             Action;
+    tDot11fFfDialogToken        DialogToken;
+    tDot11fFfNumOfRepetitions   NumOfRepetitions;
+    tANI_U16                    num_MeasurementRequest;
+    tDot11fIEMeasurementRequest MeasurementRequest[2];
+} tDot11fRadioMeasurementRequest;
+
+#define DOT11F_RADIOMEASUREMENTREQUEST ( 39 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackRadioMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRadioMeasurementRequest *pFrm);
+tANI_U32 dot11fPackRadioMeasurementRequest(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedRadioMeasurementRequestSize(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fReAssocRequest{
+    tDot11fFfCapabilities       Capabilities;
+    tDot11fFfListenInterval     ListenInterval;
+    tDot11fFfCurrentAPAddress   CurrentAPAddress;
+    tDot11fIESSID               SSID;
+    tDot11fIESuppRates          SuppRates;
+    tDot11fIEExtSuppRates       ExtSuppRates;
+    tDot11fIEPowerCaps          PowerCaps;
+    tDot11fIESuppChannels       SuppChannels;
+    tDot11fIERSNOpaque          RSNOpaque;
+    tDot11fIEQOSCapsStation     QOSCapsStation;
+    tDot11fIERRMEnabledCap      RRMEnabledCap;
+    tDot11fIEMobilityDomain     MobilityDomain;
+    tDot11fIEFTInfo             FTInfo;
+    tANI_U16                    num_RICDataDesc;
+    tDot11fIERICDataDesc        RICDataDesc[2];
+    tDot11fIEWPAOpaque          WPAOpaque;
+    tDot11fIEHTCaps             HTCaps;
+    tDot11fIEWMMCaps            WMMCaps;
+    tDot11fIEWMMInfoStation     WMMInfoStation;
+    tDot11fIEAirgo              Airgo;
+    tDot11fIEWscIEOpaque        WscIEOpaque;
+    tDot11fIEWAPIOpaque         WAPIOpaque;
+    tDot11fIECCXRadMgmtCap      CCXRadMgmtCap;
+    tDot11fIECCXVersion         CCXVersion;
+    tDot11fIECCXCckmOpaque      CCXCckmOpaque;
+    tANI_U16                    num_WMMTSPEC;
+    tDot11fIEWMMTSPEC           WMMTSPEC[4];
+    tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
+    tDot11fIEP2PIEOpaque        P2PIEOpaque;
+} tDot11fReAssocRequest;
+
+#define DOT11F_REASSOCREQUEST ( 40 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackReAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocRequest *pFrm);
+tANI_U32 dot11fPackReAssocRequest(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedReAssocRequestSize(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fReAssocResponse{
+    tDot11fFfCapabilities       Capabilities;
+    tDot11fFfStatus             Status;
+    tDot11fFfAID                AID;
+    tDot11fIESuppRates          SuppRates;
+    tDot11fIEExtSuppRates       ExtSuppRates;
+    tDot11fIEEDCAParamSet       EDCAParamSet;
+    tDot11fIERCPIIE             RCPIIE;
+    tDot11fIERSNIIE             RSNIIE;
+    tDot11fIERRMEnabledCap      RRMEnabledCap;
+    tDot11fIERSNOpaque          RSNOpaque;
+    tDot11fIEMobilityDomain     MobilityDomain;
+    tDot11fIEFTInfo             FTInfo;
+    tANI_U16                    num_RICDataDesc;
+    tDot11fIERICDataDesc        RICDataDesc[2];
+    tDot11fIEWPA                WPA;
+    tDot11fIEHTCaps             HTCaps;
+    tDot11fIEHTInfo             HTInfo;
+    tDot11fIEWMMParams          WMMParams;
+    tDot11fIECCXRadMgmtCap      CCXRadMgmtCap;
+    tDot11fIECCXTrafStrmMet     CCXTrafStrmMet;
+    tDot11fIECCXTxmitPower      CCXTxmitPower;
+    tANI_U16                    num_WMMTSPEC;
+    tDot11fIEWMMTSPEC           WMMTSPEC[4];
+    tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
+    tDot11fIEAirgo              Airgo;
+    tDot11fIEWscReassocRes      WscReassocRes;
+    tDot11fIEP2PAssocRes        P2PAssocRes;
+} tDot11fReAssocResponse;
+
+#define DOT11F_REASSOCRESPONSE ( 41 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackReAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocResponse *pFrm);
+tANI_U32 dot11fPackReAssocResponse(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedReAssocResponseSize(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fSMPowerSave{
+    tDot11fFfCategory       Category;
+    tDot11fFfAction         Action;
+    tDot11fFfSMPowerModeSet SMPowerModeSet;
+} tDot11fSMPowerSave;
+
+#define DOT11F_SMPOWERSAVE ( 42 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackSMPowerSave(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSMPowerSave *pFrm);
+tANI_U32 dot11fPackSMPowerSave(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedSMPowerSaveSize(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fTPCReport{
+    tDot11fFfCategory    Category;
+    tDot11fFfAction      Action;
+    tDot11fFfDialogToken DialogToken;
+    tDot11fIETPCReport   TPCReport;
+} tDot11fTPCReport;
+
+#define DOT11F_TPCREPORT ( 43 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackTPCReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCReport *pFrm);
+tANI_U32 dot11fPackTPCReport(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedTPCReportSize(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fTPCRequest{
+    tDot11fFfCategory    Category;
+    tDot11fFfAction      Action;
+    tDot11fFfDialogToken DialogToken;
+    tDot11fIETPCRequest  TPCRequest;
+} tDot11fTPCRequest;
+
+#define DOT11F_TPCREQUEST ( 44 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackTPCRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTPCRequest *pFrm);
+tANI_U32 dot11fPackTPCRequest(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedTPCRequestSize(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fWMMAddTSRequest{
+    tDot11fFfCategory           Category;
+    tDot11fFfAction             Action;
+    tDot11fFfDialogToken        DialogToken;
+    tDot11fFfStatusCode         StatusCode;
+    tDot11fIEWMMTSPEC           WMMTSPEC;
+    tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
+} tDot11fWMMAddTSRequest;
+
+#define DOT11F_WMMADDTSREQUEST ( 45 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackWMMAddTSRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSRequest *pFrm);
+tANI_U32 dot11fPackWMMAddTSRequest(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedWMMAddTSRequestSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fWMMAddTSResponse{
+    tDot11fFfCategory       Category;
+    tDot11fFfAction         Action;
+    tDot11fFfDialogToken    DialogToken;
+    tDot11fFfStatusCode     StatusCode;
+    tDot11fIEWMMTSPEC       WMMTSPEC;
+    tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
+} tDot11fWMMAddTSResponse;
+
+#define DOT11F_WMMADDTSRESPONSE ( 46 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackWMMAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMAddTSResponse *pFrm);
+tANI_U32 dot11fPackWMMAddTSResponse(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedWMMAddTSResponseSize(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+typedef struct sDot11fWMMDelTS{
+    tDot11fFfCategory    Category;
+    tDot11fFfAction      Action;
+    tDot11fFfDialogToken DialogToken;
+    tDot11fFfStatusCode  StatusCode;
+    tDot11fIEWMMTSPEC    WMMTSPEC;
+} tDot11fWMMDelTS;
+
+#define DOT11F_WMMDELTS ( 47 )
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* C++ */
+
+tANI_U32 dot11fUnpackWMMDelTS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fWMMDelTS *pFrm);
+tANI_U32 dot11fPackWMMDelTS(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
+tANI_U32 dot11fGetPackedWMMDelTSSize(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, tANI_U32 *pnNeeded);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif /* C++ */
+
+#endif /* DOT11F_H */