blob: 81d072cd91f92e666867476d9ea3c0276c070779 [file] [log] [blame]
/*
* Copyright (c) 2012-2019 The Linux Foundation. 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.
*/
/*
* This file was originally distributed by Qualcomm Atheros, Inc.
* under proprietary terms before Copyright ownership was assigned
* to the Linux Foundation.
*/
#ifndef DOT11F_H
#define DOT11F_H
/**
* \file dot11f.h
*
* \brief Structures, function prototypes & definitions
* for working with 802.11 Frames
* This file was automatically generated by 'framesc'
* Mon Jul 22 17:48:28 2019 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 */
#if !defined unlikely
#define unlikely(x) (x)
#endif
/*
* 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_SUCCEEDED(code) ( (code) == 0 )
#define DOT11F_WARNED(code) (!DOT11F_SUCCEEDED(code) && !DOT11F_FAILED(code))
/*********************************************************************
* 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 sDot11fFfMagicCode {
tANI_U8 magic[6];
} tDot11fFfMagicCode;
#define DOT11F_FF_MAGICCODE_LEN ( 6 )
void dot11fUnpackFfMagicCode(tpAniSirGlobal, tANI_U8*, tDot11fFfMagicCode*);
void dot11fPackFfMagicCode(tpAniSirGlobal, tDot11fFfMagicCode*, 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 sDot11fFfOperatingMode {
tANI_U8 chanWidth: 2;
tANI_U8 reserved: 2;
tANI_U8 rxNSS: 3;
tANI_U8 rxNSSType: 1;
} tDot11fFfOperatingMode;
#define DOT11F_FF_OPERATINGMODE_LEN ( 1 )
void dot11fUnpackFfOperatingMode(tpAniSirGlobal, tANI_U8*, tDot11fFfOperatingMode*);
void dot11fPackFfOperatingMode(tpAniSirGlobal, tDot11fFfOperatingMode*, tANI_U8*);
#define OPERATINGMODE_CHANWIDTH_OFFSET 0
#define OPERATINGMODE_CHANWIDTH_WIDTH 2
#define OPERATINGMODE_RESERVED_OFFSET 2
#define OPERATINGMODE_RESERVED_WIDTH 2
#define OPERATINGMODE_RXNSS_OFFSET 4
#define OPERATINGMODE_RXNSS_WIDTH 3
#define OPERATINGMODE_RXNSSTYPE_OFFSET 7
#define OPERATINGMODE_RXNSSTYPE_WIDTH 1
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 sDot11fFfRMCDialogToken {
tANI_U32 token;
} tDot11fFfRMCDialogToken;
#define DOT11F_FF_RMCDIALOGTOKEN_LEN ( 4 )
void dot11fUnpackFfRMCDialogToken(tpAniSirGlobal, tANI_U8*, tDot11fFfRMCDialogToken*);
void dot11fPackFfRMCDialogToken(tpAniSirGlobal, tDot11fFfRMCDialogToken*, tANI_U8*);
typedef struct sDot11fFfRMCOUI {
tANI_U8 oui[3];
} tDot11fFfRMCOUI;
#define DOT11F_FF_RMCOUI_LEN ( 3 )
void dot11fUnpackFfRMCOUI(tpAniSirGlobal, tANI_U8*, tDot11fFfRMCOUI*);
void dot11fPackFfRMCOUI(tpAniSirGlobal, tDot11fFfRMCOUI*, tANI_U8*);
typedef struct sDot11fFfRMCVersion {
tANI_U8 version;
} tDot11fFfRMCVersion;
#define DOT11F_FF_RMCVERSION_LEN ( 1 )
void dot11fUnpackFfRMCVersion(tpAniSirGlobal, tANI_U8*, tDot11fFfRMCVersion*);
void dot11fPackFfRMCVersion(tpAniSirGlobal, tDot11fFfRMCVersion*, 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 sDot11fFfRuler {
tANI_U8 mac[6];
} tDot11fFfRuler;
#define DOT11F_FF_RULER_LEN ( 6 )
void dot11fUnpackFfRuler(tpAniSirGlobal, tANI_U8*, tDot11fFfRuler*);
void dot11fPackFfRuler(tpAniSirGlobal, tDot11fFfRuler*, 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 sDot11fFfTransactionId {
tANI_U8 transId[2];
} tDot11fFfTransactionId;
#define DOT11F_FF_TRANSACTIONID_LEN ( 2 )
void dot11fUnpackFfTransactionId(tpAniSirGlobal, tANI_U8*, tDot11fFfTransactionId*);
void dot11fPackFfTransactionId(tpAniSirGlobal, tDot11fFfTransactionId*, 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*);
typedef struct sDot11fFfVhtMembershipStatusArray {
tANI_U8 membershipStatusArray[8];
} tDot11fFfVhtMembershipStatusArray;
#define DOT11F_FF_VHTMEMBERSHIPSTATUSARRAY_LEN ( 8 )
void dot11fUnpackFfVhtMembershipStatusArray(tpAniSirGlobal, tANI_U8*, tDot11fFfVhtMembershipStatusArray*);
void dot11fPackFfVhtMembershipStatusArray(tpAniSirGlobal, tDot11fFfVhtMembershipStatusArray*, tANI_U8*);
typedef struct sDot11fFfVhtUserPositionArray {
tANI_U8 userPositionArray[16];
} tDot11fFfVhtUserPositionArray;
#define DOT11F_FF_VHTUSERPOSITIONARRAY_LEN ( 16 )
void dot11fUnpackFfVhtUserPositionArray(tpAniSirGlobal, tANI_U8*, tDot11fFfVhtUserPositionArray*);
void dot11fPackFfVhtUserPositionArray(tpAniSirGlobal, tDot11fFfVhtUserPositionArray*, tANI_U8*);
typedef struct sDot11fFfext_chan_switch_ann_action {
tANI_U32 switch_mode: 8;
tANI_U32 op_class: 8;
tANI_U32 new_channel: 8;
tANI_U32 switch_count: 8;
} tDot11fFfext_chan_switch_ann_action;
#define DOT11F_FF_EXT_CHAN_SWITCH_ANN_ACTION_LEN ( 4 )
void dot11fUnpackFfext_chan_switch_ann_action(tpAniSirGlobal, tANI_U8*, tDot11fFfext_chan_switch_ann_action*);
void dot11fPackFfext_chan_switch_ann_action(tpAniSirGlobal, tDot11fFfext_chan_switch_ann_action*, tANI_U8*);
#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_MODE_OFFSET 0
#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_MODE_WIDTH 8
#define EXT_CHAN_SWITCH_ANN_ACTION_OP_CLASS_OFFSET 8
#define EXT_CHAN_SWITCH_ANN_ACTION_OP_CLASS_WIDTH 8
#define EXT_CHAN_SWITCH_ANN_ACTION_NEW_CHANNEL_OFFSET 16
#define EXT_CHAN_SWITCH_ANN_ACTION_NEW_CHANNEL_WIDTH 8
#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_COUNT_OFFSET 24
#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_COUNT_WIDTH 8
/*********************************************************************
* 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 4 (0x04)
typedef struct sDot11fIEIGTK {
tANI_U8 present;
tANI_U8 keyID[2];
tANI_U8 IPN[6];
tANI_U8 keyLength;
tANI_U8 key[24];
} tDot11fIEIGTK;
#define DOT11F_EID_IGTK ( 4 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_IGTK_MIN_LEN ( 33 )
#define DOT11F_IE_IGTK_MAX_LEN ( 33 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeIGTK(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEIGTK*);
tANI_U32 dot11fPackIeIGTK(tpAniSirGlobal, tDot11fIEIGTK*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEIGTK(tpAniSirGlobal, tDot11fIEIGTK*, 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 197 (0xc5)
typedef struct sDot11fIEAID {
tANI_U8 present;
tANI_U16 assocId;
} tDot11fIEAID;
#define DOT11F_EID_AID ( 197 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_AID_MIN_LEN ( 2 )
#define DOT11F_IE_AID_MAX_LEN ( 2 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeAID(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEAID*);
tANI_U32 dot11fPackIeAID(tpAniSirGlobal, tDot11fIEAID*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEAID(tpAniSirGlobal, tDot11fIEAID*, 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 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 156 (0x9c) {OUI 0x00, 0x40, 0x96, 0x00}
typedef struct sDot11fIEESECckmOpaque {
tANI_U8 present;
tANI_U8 num_data;
tANI_U8 data[20];
} tDot11fIEESECckmOpaque;
#define DOT11F_EID_ESECCKMOPAQUE ( 156 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_ESECCKMOPAQUE_MIN_LEN ( 10 )
#define DOT11F_IE_ESECCKMOPAQUE_MAX_LEN ( 24 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeESECckmOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEESECckmOpaque*);
tANI_U32 dot11fPackIeESECckmOpaque(tpAniSirGlobal, tDot11fIEESECckmOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEESECckmOpaque(tpAniSirGlobal, tDot11fIEESECckmOpaque*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x01}
typedef struct sDot11fIEESERadMgmtCap {
tANI_U8 present;
tANI_U8 mgmt_state;
tANI_U8 mbssid_mask: 3;
tANI_U8 reserved: 5;
} tDot11fIEESERadMgmtCap;
#define DOT11F_EID_ESERADMGMTCAP ( 221 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_ESERADMGMTCAP_MIN_LEN ( 6 )
#define DOT11F_IE_ESERADMGMTCAP_MAX_LEN ( 6 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeESERadMgmtCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEESERadMgmtCap*);
tANI_U32 dot11fPackIeESERadMgmtCap(tpAniSirGlobal, tDot11fIEESERadMgmtCap*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEESERadMgmtCap(tpAniSirGlobal, tDot11fIEESERadMgmtCap*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x07}
typedef struct sDot11fIEESETrafStrmMet {
tANI_U8 present;
tANI_U8 tsid;
tANI_U8 state;
tANI_U16 msmt_interval;
} tDot11fIEESETrafStrmMet;
#define DOT11F_EID_ESETRAFSTRMMET ( 221 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_ESETRAFSTRMMET_MIN_LEN ( 8 )
#define DOT11F_IE_ESETRAFSTRMMET_MAX_LEN ( 8 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeESETrafStrmMet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEESETrafStrmMet*);
tANI_U32 dot11fPackIeESETrafStrmMet(tpAniSirGlobal, tDot11fIEESETrafStrmMet*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEESETrafStrmMet(tpAniSirGlobal, tDot11fIEESETrafStrmMet*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x08}
typedef struct sDot11fIEESETrafStrmRateSet {
tANI_U8 present;
tANI_U8 tsid;
tANI_U8 num_tsrates;
tANI_U8 tsrates[8];
} tDot11fIEESETrafStrmRateSet;
#define DOT11F_EID_ESETRAFSTRMRATESET ( 221 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_ESETRAFSTRMRATESET_MIN_LEN ( 5 )
#define DOT11F_IE_ESETRAFSTRMRATESET_MAX_LEN ( 13 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeESETrafStrmRateSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEESETrafStrmRateSet*);
tANI_U32 dot11fPackIeESETrafStrmRateSet(tpAniSirGlobal, tDot11fIEESETrafStrmRateSet*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEESETrafStrmRateSet(tpAniSirGlobal, tDot11fIEESETrafStrmRateSet*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 150 (0x96) {OUI 0x00, 0x40, 0x96, 0x00}
typedef struct sDot11fIEESETxmitPower {
tANI_U8 present;
tANI_U8 power_limit;
tANI_U8 reserved;
} tDot11fIEESETxmitPower;
#define DOT11F_EID_ESETXMITPOWER ( 150 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_ESETXMITPOWER_MIN_LEN ( 6 )
#define DOT11F_IE_ESETXMITPOWER_MAX_LEN ( 6 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeESETxmitPower(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEESETxmitPower*);
tANI_U32 dot11fPackIeESETxmitPower(tpAniSirGlobal, tDot11fIEESETxmitPower*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEESETxmitPower(tpAniSirGlobal, tDot11fIEESETxmitPower*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x03}
typedef struct sDot11fIEESEVersion {
tANI_U8 present;
tANI_U8 version;
} tDot11fIEESEVersion;
#define DOT11F_EID_ESEVERSION ( 221 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_ESEVERSION_MIN_LEN ( 5 )
#define DOT11F_IE_ESEVERSION_MAX_LEN ( 5 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeESEVersion(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEESEVersion*);
tANI_U32 dot11fPackIeESEVersion(tpAniSirGlobal, tDot11fIEESEVersion*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEESEVersion(tpAniSirGlobal, tDot11fIEESEVersion*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 127 (0x7f)
typedef struct sDot11fIEExtCap {
tANI_U8 present;
tANI_U8 num_bytes;
tANI_U8 bytes[15];
} tDot11fIEExtCap;
#define DOT11F_EID_EXTCAP ( 127 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_EXTCAP_MIN_LEN ( 1 )
#define DOT11F_IE_EXTCAP_MAX_LEN ( 15 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeExtCap(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEExtCap*);
tANI_U32 dot11fPackIeExtCap(tpAniSirGlobal, tDot11fIEExtCap*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEExtCap(tpAniSirGlobal, tDot11fIEExtCap*, 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;
tDot11fIEIGTK IGTK;
} 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 ( 220 )
#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 72 (0x48)
typedef struct sDot11fIEHT2040BSSCoexistence {
tANI_U8 present;
tANI_U8 infoRequest: 1;
tANI_U8 fortyMHzIntolerant: 1;
tANI_U8 twentyMHzBssWidthReq: 1;
tANI_U8 obssScanExemptionReq: 1;
tANI_U8 obssScanExemptionGrant: 1;
tANI_U8 unused: 3;
} tDot11fIEHT2040BSSCoexistence;
#define DOT11F_EID_HT2040BSSCOEXISTENCE ( 72 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_HT2040BSSCOEXISTENCE_MIN_LEN ( 1 )
#define DOT11F_IE_HT2040BSSCOEXISTENCE_MAX_LEN ( 1 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeHT2040BSSCoexistence(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHT2040BSSCoexistence*);
tANI_U32 dot11fPackIeHT2040BSSCoexistence(tpAniSirGlobal, tDot11fIEHT2040BSSCoexistence*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEHT2040BSSCoexistence(tpAniSirGlobal, tDot11fIEHT2040BSSCoexistence*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 73 (0x49)
typedef struct sDot11fIEHT2040BSSIntolerantReport {
tANI_U8 present;
tANI_U8 operatingClass;
tANI_U8 num_channelList;
tANI_U8 channelList[50];
} tDot11fIEHT2040BSSIntolerantReport;
#define DOT11F_EID_HT2040BSSINTOLERANTREPORT ( 73 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_HT2040BSSINTOLERANTREPORT_MIN_LEN ( 1 )
#define DOT11F_IE_HT2040BSSINTOLERANTREPORT_MAX_LEN ( 51 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeHT2040BSSIntolerantReport(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEHT2040BSSIntolerantReport*);
tANI_U32 dot11fPackIeHT2040BSSIntolerantReport(tpAniSirGlobal, tDot11fIEHT2040BSSIntolerantReport*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEHT2040BSSIntolerantReport(tpAniSirGlobal, tDot11fIEHT2040BSSIntolerantReport*, 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 101 (0x65)
typedef struct sDot11fIELinkIdentifier {
tANI_U8 present;
tANI_U8 bssid[6];
tANI_U8 InitStaAddr[6];
tANI_U8 RespStaAddr[6];
} tDot11fIELinkIdentifier;
#define DOT11F_EID_LINKIDENTIFIER ( 101 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_LINKIDENTIFIER_MIN_LEN ( 18 )
#define DOT11F_IE_LINKIDENTIFIER_MAX_LEN ( 18 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeLinkIdentifier(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIELinkIdentifier*);
tANI_U32 dot11fPackIeLinkIdentifier(tpAniSirGlobal, tDot11fIELinkIdentifier*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIELinkIdentifier(tpAniSirGlobal, tDot11fIELinkIdentifier*, 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 74 (0x4a)
typedef struct sDot11fIEOBSSScanParameters {
tANI_U8 present;
tANI_U16 obssScanPassiveDwell;
tANI_U16 obssScanActiveDwell;
tANI_U16 bssChannelWidthTriggerScanInterval;
tANI_U16 obssScanPassiveTotalPerChannel;
tANI_U16 obssScanActiveTotalPerChannel;
tANI_U16 bssWidthChannelTransitionDelayFactor;
tANI_U16 obssScanActivityThreshold;
} tDot11fIEOBSSScanParameters;
#define DOT11F_EID_OBSSSCANPARAMETERS ( 74 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_OBSSSCANPARAMETERS_MIN_LEN ( 14 )
#define DOT11F_IE_OBSSSCANPARAMETERS_MAX_LEN ( 14 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeOBSSScanParameters(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEOBSSScanParameters*);
tANI_U32 dot11fPackIeOBSSScanParameters(tpAniSirGlobal, tDot11fIEOBSSScanParameters*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEOBSSScanParameters(tpAniSirGlobal, tDot11fIEOBSSScanParameters*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 199 (0xc7)
typedef struct sDot11fIEOperatingMode {
tANI_U8 present;
tANI_U8 chanWidth: 2;
tANI_U8 reserved: 2;
tANI_U8 rxNSS: 3;
tANI_U8 rxNSSType: 1;
} tDot11fIEOperatingMode;
#define DOT11F_EID_OPERATINGMODE ( 199 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_OPERATINGMODE_MIN_LEN ( 1 )
#define DOT11F_IE_OPERATINGMODE_MAX_LEN ( 1 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeOperatingMode(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEOperatingMode*);
tANI_U32 dot11fPackIeOperatingMode(tpAniSirGlobal, tDot11fIEOperatingMode*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEOperatingMode(tpAniSirGlobal, tDot11fIEOperatingMode*, 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 105 (0x69)
typedef struct sDot11fIEPTIControl {
tANI_U8 present;
tANI_U8 tid;
tANI_U16 sequence_control;
} tDot11fIEPTIControl;
#define DOT11F_EID_PTICONTROL ( 105 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_PTICONTROL_MIN_LEN ( 3 )
#define DOT11F_IE_PTICONTROL_MAX_LEN ( 3 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIePTIControl(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPTIControl*);
tANI_U32 dot11fPackIePTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEPTIControl(tpAniSirGlobal, tDot11fIEPTIControl*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 106 (0x6a)
typedef struct sDot11fIEPUBufferStatus {
tANI_U8 present;
tANI_U8 ac_bk_traffic_aval: 1;
tANI_U8 ac_be_traffic_aval: 1;
tANI_U8 ac_vi_traffic_aval: 1;
tANI_U8 ac_vo_traffic_aval: 1;
tANI_U8 reserved: 4;
} tDot11fIEPUBufferStatus;
#define DOT11F_EID_PUBUFFERSTATUS ( 106 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_PUBUFFERSTATUS_MIN_LEN ( 1 )
#define DOT11F_IE_PUBUFFERSTATUS_MAX_LEN ( 1 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIePUBufferStatus(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEPUBufferStatus*);
tANI_U32 dot11fPackIePUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEPUBufferStatus(tpAniSirGlobal, tDot11fIEPUBufferStatus*, 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 count: 4;
tANI_U8 qack: 1;
tANI_U8 qreq: 1;
tANI_U8 txopreq: 1;
tANI_U8 reserved: 1;
} 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 acvo_uapsd: 1;
tANI_U8 acvi_uapsd: 1;
tANI_U8 acbk_uapsd: 1;
tANI_U8 acbe_uapsd: 1;
tANI_U8 qack: 1;
tANI_U8 max_sp_length: 2;
tANI_U8 more_data_ack: 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 110 (0x6e)
typedef struct sDot11fIEQosMapSet {
tANI_U8 present;
tANI_U8 num_dscp_exceptions;
tANI_U8 dscp_exceptions[60];
} tDot11fIEQosMapSet;
#define DOT11F_EID_QOSMAPSET ( 110 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_QOSMAPSET_MIN_LEN ( 0 )
#define DOT11F_IE_QOSMAPSET_MAX_LEN ( 60 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeQosMapSet(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEQosMapSet*);
tANI_U32 dot11fPackIeQosMapSet(tpAniSirGlobal, tDot11fIEQosMapSet*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEQosMapSet(tpAniSirGlobal, tDot11fIEQosMapSet*, 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_present;
tANI_U8 gp_cipher_suite[4];
tANI_U16 pwise_cipher_suite_count;
tANI_U8 pwise_cipher_suites[4][4];
tANI_U16 akm_suite_cnt;
tANI_U8 akm_suite[4][4];
tANI_U8 RSN_Cap_present;
tANI_U8 RSN_Cap[2];
tANI_U16 pmkid_count;
tANI_U8 pmkid[4][16];
tANI_U8 gp_mgmt_cipher_suite_present;
tANI_U8 gp_mgmt_cipher_suite[4];
} tDot11fIERSN;
#define DOT11F_EID_RSN ( 48 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_RSN_MIN_LEN ( 2 )
#define DOT11F_IE_RSN_MAX_LEN ( 114 )
#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 ( 0 )
#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 ( 0 )
#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 59 (0x3b)
typedef struct sDot11fIESuppOperatingClasses {
tANI_U8 present;
tANI_U8 num_classes;
tANI_U8 classes[32];
} tDot11fIESuppOperatingClasses;
#define DOT11F_EID_SUPPOPERATINGCLASSES ( 59 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_SUPPOPERATINGCLASSES_MIN_LEN ( 1 )
#define DOT11F_IE_SUPPOPERATINGCLASSES_MAX_LEN ( 32 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeSuppOperatingClasses(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIESuppOperatingClasses*);
tANI_U32 dot11fPackIeSuppOperatingClasses(tpAniSirGlobal, tDot11fIESuppOperatingClasses*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIESuppOperatingClasses(tpAniSirGlobal, tDot11fIESuppOperatingClasses*, 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 56 (0x38)
typedef struct sDot11fIETimeoutInterval {
tANI_U8 present;
tANI_U8 timeoutType;
tANI_U32 timeoutValue;
} tDot11fIETimeoutInterval;
#define DOT11F_EID_TIMEOUTINTERVAL ( 56 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_TIMEOUTINTERVAL_MIN_LEN ( 5 )
#define DOT11F_IE_TIMEOUTINTERVAL_MAX_LEN ( 5 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeTimeoutInterval(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIETimeoutInterval*);
tANI_U32 dot11fPackIeTimeoutInterval(tpAniSirGlobal, tDot11fIETimeoutInterval*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIETimeoutInterval(tpAniSirGlobal, tDot11fIETimeoutInterval*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 191 (0xbf)
typedef struct sDot11fIEVHTCaps {
tANI_U8 present;
tANI_U32 maxMPDULen: 2;
tANI_U32 supportedChannelWidthSet: 2;
tANI_U32 ldpcCodingCap: 1;
tANI_U32 shortGI80MHz: 1;
tANI_U32 shortGI160and80plus80MHz: 1;
tANI_U32 txSTBC: 1;
tANI_U32 rxSTBC: 3;
tANI_U32 suBeamFormerCap: 1;
tANI_U32 suBeamformeeCap: 1;
tANI_U32 csnofBeamformerAntSup: 3;
tANI_U32 numSoundingDim: 3;
tANI_U32 muBeamformerCap: 1;
tANI_U32 muBeamformeeCap: 1;
tANI_U32 vhtTXOPPS: 1;
tANI_U32 htcVHTCap: 1;
tANI_U32 maxAMPDULenExp: 3;
tANI_U32 vhtLinkAdaptCap: 2;
tANI_U32 rxAntPattern: 1;
tANI_U32 txAntPattern: 1;
tANI_U32 reserved1: 2;
tANI_U16 rxMCSMap;
tANI_U16 rxHighSupDataRate: 13;
tANI_U16 reserved2: 3;
tANI_U16 txMCSMap;
tANI_U16 txSupDataRate: 13;
tANI_U16 reserved3: 3;
} tDot11fIEVHTCaps;
#define DOT11F_EID_VHTCAPS ( 191 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_VHTCAPS_MIN_LEN ( 12 )
#define DOT11F_IE_VHTCAPS_MAX_LEN ( 12 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeVHTCaps(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTCaps*);
tANI_U32 dot11fPackIeVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEVHTCaps(tpAniSirGlobal, tDot11fIEVHTCaps*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 193 (0xc1)
typedef struct sDot11fIEVHTExtBssLoad {
tANI_U8 present;
tANI_U8 muMIMOCapStaCount;
tANI_U8 ssUnderUtil;
tANI_U8 FortyMHzUtil;
tANI_U8 EightyMHzUtil;
tANI_U8 OneSixtyMHzUtil;
} tDot11fIEVHTExtBssLoad;
#define DOT11F_EID_VHTEXTBSSLOAD ( 193 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_VHTEXTBSSLOAD_MIN_LEN ( 5 )
#define DOT11F_IE_VHTEXTBSSLOAD_MAX_LEN ( 5 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeVHTExtBssLoad(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTExtBssLoad*);
tANI_U32 dot11fPackIeVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 192 (0xc0)
typedef struct sDot11fIEVHTOperation {
tANI_U8 present;
tANI_U8 chanWidth;
tANI_U8 chanCenterFreqSeg1;
tANI_U8 chanCenterFreqSeg2;
tANI_U16 basicMCSSet;
} tDot11fIEVHTOperation;
#define DOT11F_EID_VHTOPERATION ( 192 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_VHTOPERATION_MIN_LEN ( 5 )
#define DOT11F_IE_VHTOPERATION_MAX_LEN ( 5 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeVHTOperation(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVHTOperation*);
tANI_U32 dot11fPackIeVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEVHTOperation(tpAniSirGlobal, tDot11fIEVHTOperation*, 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 0x50, 0x6f, 0x9a, 0x0a}
typedef struct sDot11fIEWFDIEOpaque {
tANI_U8 present;
tANI_U8 num_data;
tANI_U8 data[249];
} tDot11fIEWFDIEOpaque;
#define DOT11F_EID_WFDIEOPAQUE ( 221 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_WFDIEOPAQUE_MIN_LEN ( 6 )
#define DOT11F_IE_WFDIEOPAQUE_MAX_LEN ( 253 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeWFDIEOpaque(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWFDIEOpaque*);
tANI_U32 dot11fPackIeWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEWFDIEOpaque(tpAniSirGlobal, tDot11fIEWFDIEOpaque*, 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 194 (0xc2)
typedef struct sDot11fIEWiderBWChanSwitchAnn {
tANI_U8 present;
tANI_U8 newChanWidth;
tANI_U8 newCenterChanFreq0;
tANI_U8 newCenterChanFreq1;
} tDot11fIEWiderBWChanSwitchAnn;
#define DOT11F_EID_WIDERBWCHANSWITCHANN ( 194 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_WIDERBWCHANSWITCHANN_MIN_LEN ( 3 )
#define DOT11F_IE_WIDERBWCHANSWITCHANN_MAX_LEN ( 3 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEWiderBWChanSwitchAnn*);
tANI_U32 dot11fPackIeWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEWiderBWChanSwitchAnn(tpAniSirGlobal, tDot11fIEWiderBWChanSwitchAnn*, 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++ */
// EID 255 (0xff) Extended EID 32 (0x20)
typedef struct sDot11fIEdh_parameter_element {
tANI_U8 present;
tANI_U8 group[2];
tANI_U8 num_public_key;
tANI_U8 public_key[255];
} tDot11fIEdh_parameter_element;
#define DOT11F_EID_DH_PARAMETER_ELEMENT ( 255 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_DH_PARAMETER_ELEMENT_MIN_LEN ( 2 )
#define DOT11F_IE_DH_PARAMETER_ELEMENT_MAX_LEN ( 257 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIedh_parameter_element(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEdh_parameter_element*);
tANI_U32 dot11fPackIedh_parameter_element(tpAniSirGlobal, tDot11fIEdh_parameter_element*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEdh_parameter_element(tpAniSirGlobal, tDot11fIEdh_parameter_element*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 60 (0x3c)
typedef struct sDot11fIEext_chan_switch_ann {
tANI_U8 present;
tANI_U8 switch_mode;
tANI_U8 new_reg_class;
tANI_U8 new_channel;
tANI_U8 switch_count;
} tDot11fIEext_chan_switch_ann;
#define DOT11F_EID_EXT_CHAN_SWITCH_ANN ( 60 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_EXT_CHAN_SWITCH_ANN_MIN_LEN ( 4 )
#define DOT11F_IE_EXT_CHAN_SWITCH_ANN_MAX_LEN ( 4 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIeext_chan_switch_ann(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEext_chan_switch_ann*);
tANI_U32 dot11fPackIeext_chan_switch_ann(tpAniSirGlobal, tDot11fIEext_chan_switch_ann*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEext_chan_switch_ann(tpAniSirGlobal, tDot11fIEext_chan_switch_ann*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x10}
typedef struct sDot11fIEhs20vendor_ie {
tANI_U8 present;
tANI_U8 dgaf_dis: 1;
tANI_U8 hs_id_present: 2;
tANI_U8 reserved: 1;
tANI_U8 release_num: 4;
union
{
struct
{
tANI_U16 pps_mo_id;
} pps_mo; /* hs_id_present = 1 */
struct
{
tANI_U16 anqp_domain_id;
} anqp_domain; /* hs_id_present = 2 */
} hs_id;
} tDot11fIEhs20vendor_ie;
#define DOT11F_EID_HS20VENDOR_IE ( 221 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_HS20VENDOR_IE_MIN_LEN ( 5 )
#define DOT11F_IE_HS20VENDOR_IE_MAX_LEN ( 7 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIehs20vendor_ie(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEhs20vendor_ie*);
tANI_U32 dot11fPackIehs20vendor_ie(tpAniSirGlobal, tDot11fIEhs20vendor_ie*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEhs20vendor_ie(tpAniSirGlobal, tDot11fIEhs20vendor_ie*, tANI_U32*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
// EID 62 (0x3e)
typedef struct sDot11fIEsec_chan_offset {
tANI_U8 present;
tANI_U8 secondaryChannelOffset;
} tDot11fIEsec_chan_offset;
#define DOT11F_EID_SEC_CHAN_OFFSET ( 62 )
// N.B. These #defines do *not* include the EID & length
#define DOT11F_IE_SEC_CHAN_OFFSET_MIN_LEN ( 1 )
#define DOT11F_IE_SEC_CHAN_OFFSET_MAX_LEN ( 1 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackIesec_chan_offset(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEsec_chan_offset*);
tANI_U32 dot11fPackIesec_chan_offset(tpAniSirGlobal, tDot11fIEsec_chan_offset*, tANI_U8*, tANI_U32, tANI_U32*);
tANI_U32 dot11fGetPackedIEsec_chan_offset(tpAniSirGlobal, tDot11fIEsec_chan_offset*, 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;
tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
} 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;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
} 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;
tDot11fIEdh_parameter_element dh_parameter_element;
tDot11fIEWPAOpaque WPAOpaque;
tDot11fIEHTCaps HTCaps;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWMMInfoStation WMMInfoStation;
tDot11fIEAirgo Airgo;
tDot11fIEWscIEOpaque WscIEOpaque;
tDot11fIEWAPIOpaque WAPIOpaque;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESEVersion ESEVersion;
tDot11fIEP2PIEOpaque P2PIEOpaque;
tDot11fIEWFDIEOpaque WFDIEOpaque;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEQosMapSet QosMapSet;
tDot11fIEhs20vendor_ie hs20vendor_ie;
} 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;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tANI_U16 num_WMMTSPEC;
tDot11fIEWMMTSPEC WMMTSPEC[4];
tDot11fIEAirgo Airgo;
tDot11fIEWscAssocRes WscAssocRes;
tDot11fIEP2PAssocRes P2PAssocRes;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEExtCap ExtCap;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEQosMapSet QosMapSet;
} 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;
tDot11fIETimeoutInterval TimeoutInterval;
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;
tDot11fIEext_chan_switch_ann ext_chan_switch_ann;
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;
tDot11fIEsec_chan_offset sec_chan_offset;
tDot11fIEWMMInfoAp WMMInfoAp;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWAPI WAPI;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tDot11fIEAirgo Airgo;
tDot11fIEWscBeacon WscBeacon;
tDot11fIEP2PBeacon P2PBeacon;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEVHTExtBssLoad VHTExtBssLoad;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEhs20vendor_ie hs20vendor_ie;
} 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;
tDot11fIEext_chan_switch_ann ext_chan_switch_ann;
tDot11fIEQuiet Quiet;
tDot11fIETPCReport TPCReport;
tDot11fIEERPInfo ERPInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIERSNOpaque RSNOpaque;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIEAPChannelReport APChannelReport;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEWPA WPA;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEsec_chan_offset sec_chan_offset;
tDot11fIEWMMInfoAp WMMInfoAp;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEAirgo Airgo;
tDot11fIEWscBeacon WscBeacon;
tDot11fIEWAPI WAPI;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tDot11fIEP2PBeacon P2PBeacon;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEVHTExtBssLoad VHTExtBssLoad;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEhs20vendor_ie hs20vendor_ie;
} 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;
tDot11fIEext_chan_switch_ann ext_chan_switch_ann;
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;
tDot11fIEsec_chan_offset sec_chan_offset;
tDot11fIEWMMInfoAp WMMInfoAp;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWAPI WAPI;
tDot11fIEESEVersion ESEVersion;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tDot11fIEAirgo Airgo;
tDot11fIEWscBeaconProbeRes WscBeaconProbeRes;
tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEVHTExtBssLoad VHTExtBssLoad;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEhs20vendor_ie hs20vendor_ie;
} 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;
tDot11fIEsec_chan_offset sec_chan_offset;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
} 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 sDot11fHT2040BSSCoexistenceManagementActionFrame{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fIEHT2040BSSCoexistence HT2040BSSCoexistence;
tDot11fIEHT2040BSSIntolerantReport HT2040BSSIntolerantReport;
} tDot11fHT2040BSSCoexistenceManagementActionFrame;
#define DOT11F_HT2040BSSCOEXISTENCEMANAGEMENTACTIONFRAME ( 23 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackHT2040BSSCoexistenceManagementActionFrame(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fHT2040BSSCoexistenceManagementActionFrame *pFrm);
tANI_U32 dot11fPackHT2040BSSCoexistenceManagementActionFrame(tpAniSirGlobal pCtx, tDot11fHT2040BSSCoexistenceManagementActionFrame *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedHT2040BSSCoexistenceManagementActionFrameSize(tpAniSirGlobal pCtx, tDot11fHT2040BSSCoexistenceManagementActionFrame *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 ( 24 )
#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 ( 25 )
#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 ( 26 )
#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 ( 27 )
#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 ( 28 )
#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 ( 29 )
#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 ( 30 )
#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 ( 31 )
#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 ( 32 )
#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 sDot11fOperatingMode{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfOperatingMode OperatingMode;
} tDot11fOperatingMode;
#define DOT11F_OPERATINGMODE ( 33 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackOperatingMode(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fOperatingMode *pFrm);
tANI_U32 dot11fPackOperatingMode(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedOperatingModeSize(tpAniSirGlobal pCtx, tDot11fOperatingMode *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 ( 34 )
#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 ( 35 )
#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;
tDot11fIEVHTCaps VHTCaps;
} tDot11fProbeRequest;
#define DOT11F_PROBEREQUEST ( 36 )
#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;
tDot11fIEext_chan_switch_ann ext_chan_switch_ann;
tDot11fIEQuiet Quiet;
tDot11fIETPCReport TPCReport;
tDot11fIEERPInfo ERPInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIERSNOpaque RSNOpaque;
tDot11fIEQBSSLoad QBSSLoad;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEAPChannelReport APChannelReport;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEWPA WPA;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEsec_chan_offset sec_chan_offset;
tDot11fIEWMMInfoAp WMMInfoAp;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWAPI WAPI;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tDot11fIEAirgo Airgo;
tDot11fIEWscProbeRes WscProbeRes;
tDot11fIEP2PProbeRes P2PProbeRes;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEVHTExtBssLoad VHTExtBssLoad;
tDot11fIEExtCap ExtCap;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
} tDot11fProbeResponse;
#define DOT11F_PROBERESPONSE ( 37 )
#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 ( 38 )
#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 ( 39 )
#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 sDot11fQosMapConfigure{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fIEQosMapSet QosMapSet;
} tDot11fQosMapConfigure;
#define DOT11F_QOSMAPCONFIGURE ( 40 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackQosMapConfigure(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fQosMapConfigure *pFrm);
tANI_U32 dot11fPackQosMapConfigure(tpAniSirGlobal pCtx, tDot11fQosMapConfigure *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedQosMapConfigureSize(tpAniSirGlobal pCtx, tDot11fQosMapConfigure *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fRMC{
tDot11fFfCategory Category;
tDot11fFfRMCOUI RMCOUI;
tDot11fFfMagicCode MagicCode;
tDot11fFfRMCVersion RMCVersion;
tDot11fFfAction Action;
tDot11fFfRMCDialogToken RMCDialogToken;
tDot11fFfRuler Ruler;
} tDot11fRMC;
#define DOT11F_RMC ( 41 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackRMC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fRMC *pFrm);
tANI_U32 dot11fPackRMC(tpAniSirGlobal pCtx, tDot11fRMC *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedRMCSize(tpAniSirGlobal pCtx, tDot11fRMC *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 ( 42 )
#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 ( 43 )
#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;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESEVersion ESEVersion;
tDot11fIEESECckmOpaque ESECckmOpaque;
tANI_U16 num_WMMTSPEC;
tDot11fIEWMMTSPEC WMMTSPEC[4];
tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
tDot11fIEP2PIEOpaque P2PIEOpaque;
tDot11fIEWFDIEOpaque WFDIEOpaque;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEQosMapSet QosMapSet;
tDot11fIEhs20vendor_ie hs20vendor_ie;
} tDot11fReAssocRequest;
#define DOT11F_REASSOCREQUEST ( 44 )
#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;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEWMMParams WMMParams;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tANI_U16 num_WMMTSPEC;
tDot11fIEWMMTSPEC WMMTSPEC[4];
tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
tDot11fIEAirgo Airgo;
tDot11fIEWscReassocRes WscReassocRes;
tDot11fIEP2PAssocRes P2PAssocRes;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEExtCap ExtCap;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEQosMapSet QosMapSet;
} tDot11fReAssocResponse;
#define DOT11F_REASSOCRESPONSE ( 45 )
#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 ( 46 )
#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 sDot11fSaQueryReq{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfTransactionId TransactionId;
} tDot11fSaQueryReq;
#define DOT11F_SAQUERYREQ ( 47 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackSaQueryReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSaQueryReq *pFrm);
tANI_U32 dot11fPackSaQueryReq(tpAniSirGlobal pCtx, tDot11fSaQueryReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedSaQueryReqSize(tpAniSirGlobal pCtx, tDot11fSaQueryReq *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fSaQueryRsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfTransactionId TransactionId;
} tDot11fSaQueryRsp;
#define DOT11F_SAQUERYRSP ( 48 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackSaQueryRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fSaQueryRsp *pFrm);
tANI_U32 dot11fPackSaQueryRsp(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedSaQueryRspSize(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSDisReq{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIELinkIdentifier LinkIdentifier;
} tDot11fTDLSDisReq;
#define DOT11F_TDLSDISREQ ( 49 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackTDLSDisReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisReq *pFrm);
tANI_U32 dot11fPackTDLSDisReq(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedTDLSDisReqSize(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSDisRsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfCapabilities Capabilities;
tDot11fIESuppRates SuppRates;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIESuppChannels SuppChannels;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIERSN RSN;
tDot11fIEExtCap ExtCap;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIERICData RICData;
tDot11fIEHTCaps HTCaps;
tDot11fIEHT2040BSSCoexistence HT2040BSSCoexistence;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEVHTCaps VHTCaps;
} tDot11fTDLSDisRsp;
#define DOT11F_TDLSDISRSP ( 50 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackTDLSDisRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSDisRsp *pFrm);
tANI_U32 dot11fPackTDLSDisRsp(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedTDLSDisRspSize(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSPeerTrafficInd{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEPTIControl PTIControl;
tDot11fIEPUBufferStatus PUBufferStatus;
} tDot11fTDLSPeerTrafficInd;
#define DOT11F_TDLSPEERTRAFFICIND ( 51 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficInd *pFrm);
tANI_U32 dot11fPackTDLSPeerTrafficInd(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedTDLSPeerTrafficIndSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSPeerTrafficRsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIELinkIdentifier LinkIdentifier;
} tDot11fTDLSPeerTrafficRsp;
#define DOT11F_TDLSPEERTRAFFICRSP ( 52 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSPeerTrafficRsp *pFrm);
tANI_U32 dot11fPackTDLSPeerTrafficRsp(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedTDLSPeerTrafficRspSize(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSSetupCnf{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfStatus Status;
tDot11fFfDialogToken DialogToken;
tDot11fIERSN RSN;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIEHTInfo HTInfo;
tDot11fIEHT2040BSSCoexistence HT2040BSSCoexistence;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEWMMParams WMMParams;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEOperatingMode OperatingMode;
} tDot11fTDLSSetupCnf;
#define DOT11F_TDLSSETUPCNF ( 53 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackTDLSSetupCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupCnf *pFrm);
tANI_U32 dot11fPackTDLSSetupCnf(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedTDLSSetupCnfSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSSetupReq{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfCapabilities Capabilities;
tDot11fIESuppRates SuppRates;
tDot11fIECountry Country;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIESuppChannels SuppChannels;
tDot11fIERSN RSN;
tDot11fIEExtCap ExtCap;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEQOSCapsStation QOSCapsStation;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIERICData RICData;
tDot11fIEHTCaps HTCaps;
tDot11fIEHT2040BSSCoexistence HT2040BSSCoexistence;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEWMMInfoStation WMMInfoStation;
tDot11fIEAID AID;
tDot11fIEVHTCaps VHTCaps;
} tDot11fTDLSSetupReq;
#define DOT11F_TDLSSETUPREQ ( 54 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackTDLSSetupReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupReq *pFrm);
tANI_U32 dot11fPackTDLSSetupReq(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedTDLSSetupReqSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSSetupRsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfStatus Status;
tDot11fFfDialogToken DialogToken;
tDot11fFfCapabilities Capabilities;
tDot11fIESuppRates SuppRates;
tDot11fIECountry Country;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIESuppChannels SuppChannels;
tDot11fIERSN RSN;
tDot11fIEExtCap ExtCap;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEQOSCapsStation QOSCapsStation;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIERICData RICData;
tDot11fIEHTCaps HTCaps;
tDot11fIEHT2040BSSCoexistence HT2040BSSCoexistence;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEWMMInfoStation WMMInfoStation;
tDot11fIEAID AID;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEOperatingMode OperatingMode;
} tDot11fTDLSSetupRsp;
#define DOT11F_TDLSSETUPRSP ( 55 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackTDLSSetupRsp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSSetupRsp *pFrm);
tANI_U32 dot11fPackTDLSSetupRsp(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedTDLSSetupRspSize(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSTeardown{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfReason Reason;
tDot11fIEFTInfo FTInfo;
tDot11fIELinkIdentifier LinkIdentifier;
} tDot11fTDLSTeardown;
#define DOT11F_TDLSTEARDOWN ( 56 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackTDLSTeardown(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fTDLSTeardown *pFrm);
tANI_U32 dot11fPackTDLSTeardown(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedTDLSTeardownSize(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *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 ( 57 )
#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 ( 58 )
#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 sDot11fVHTGidManagementActionFrame{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfVhtMembershipStatusArray VhtMembershipStatusArray;
tDot11fFfVhtUserPositionArray VhtUserPositionArray;
} tDot11fVHTGidManagementActionFrame;
#define DOT11F_VHTGIDMANAGEMENTACTIONFRAME ( 59 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackVHTGidManagementActionFrame(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fVHTGidManagementActionFrame *pFrm);
tANI_U32 dot11fPackVHTGidManagementActionFrame(tpAniSirGlobal pCtx, tDot11fVHTGidManagementActionFrame *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedVHTGidManagementActionFrameSize(tpAniSirGlobal pCtx, tDot11fVHTGidManagementActionFrame *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fWMMAddTSRequest{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfStatusCode StatusCode;
tDot11fIEWMMTSPEC WMMTSPEC;
tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
} tDot11fWMMAddTSRequest;
#define DOT11F_WMMADDTSREQUEST ( 60 )
#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;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
} tDot11fWMMAddTSResponse;
#define DOT11F_WMMADDTSRESPONSE ( 61 )
#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 ( 62 )
#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++ */
typedef struct sDot11fext_channel_switch_action_frame{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfext_chan_switch_ann_action ext_chan_switch_ann_action;
} tDot11fext_channel_switch_action_frame;
#define DOT11F_EXT_CHANNEL_SWITCH_ACTION_FRAME ( 63 )
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
tANI_U32 dot11fUnpackext_channel_switch_action_frame(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fext_channel_switch_action_frame *pFrm);
tANI_U32 dot11fPackext_channel_switch_action_frame(tpAniSirGlobal pCtx, tDot11fext_channel_switch_action_frame *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed);
tANI_U32 dot11fGetPackedext_channel_switch_action_frameSize(tpAniSirGlobal pCtx, tDot11fext_channel_switch_action_frame *pFrm, tANI_U32 *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
#endif /* DOT11F_H */