wlan: Added OBSS scan param IE and TDLS frame in Dot11f
- Added support for Supported Operating Class IEs in TDLS frames
- Added Support for OBSS scan Parameters.
- Add new GID management Action
Change-Id: Iac28100baeddd72375c80cb792b0ad4d5314ccdc
CRs-Fixed: 608188
diff --git a/CORE/MAC/src/include/dot11f.h b/CORE/MAC/src/include/dot11f.h
index cc89258..9aa1059 100644
--- a/CORE/MAC/src/include/dot11f.h
+++ b/CORE/MAC/src/include/dot11f.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -38,6 +38,11 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
+/**
+ * Copyright (c) 2012 - 2014 Qualcomm Atheros, Inc.
+ * All Rights Reserved.
+ * Qualcomm Atheros Confidential and Proprietary.
+ */
#ifndef DOT11F_H
#define DOT11F_H
@@ -52,10 +57,10 @@
*
*
* This file was automatically generated by 'framesc'
- * Thu Nov 7 16:38:38 2013 from the following file(s):
+ * Fri Feb 7 16:55:44 2014 from the following file(s):
*
* dot11f.frms
- *
+ *
* PLEASE DON'T EDIT THIS FILE BY HAND!
*
* Instead, please update the input files & re-run
@@ -579,6 +584,26 @@
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*);
+
/*********************************************************************
* TLVs *
********************************************************************/
@@ -4170,6 +4195,37 @@
#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;
@@ -5172,6 +5228,32 @@
#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;
@@ -6202,35 +6284,36 @@
#endif /* C++ */
typedef struct sDot11fAssocResponse{
- tDot11fFfCapabilities Capabilities;
- tDot11fFfStatus Status;
- tDot11fFfAID AID;
- tDot11fIESuppRates SuppRates;
- tDot11fIEExtSuppRates ExtSuppRates;
- tDot11fIEEDCAParamSet EDCAParamSet;
- tDot11fIERCPIIE RCPIIE;
- tDot11fIERSNIIE RSNIIE;
- tDot11fIERRMEnabledCap RRMEnabledCap;
- tDot11fIEMobilityDomain MobilityDomain;
- tDot11fIEFTInfo FTInfo;
- tANI_U16 num_RICDataDesc;
- tDot11fIERICDataDesc RICDataDesc[2];
- tDot11fIEWPA WPA;
- tDot11fIEHTCaps HTCaps;
- tDot11fIEHTInfo HTInfo;
- tDot11fIEWMMParams WMMParams;
- tDot11fIEWMMCaps WMMCaps;
- tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
- tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
- tDot11fIECCXTxmitPower CCXTxmitPower;
- tANI_U16 num_WMMTSPEC;
- tDot11fIEWMMTSPEC WMMTSPEC[4];
- tDot11fIEAirgo Airgo;
- tDot11fIEWscAssocRes WscAssocRes;
- tDot11fIEP2PAssocRes P2PAssocRes;
- tDot11fIEVHTCaps VHTCaps;
- tDot11fIEVHTOperation VHTOperation;
- tDot11fIEExtCap ExtCap;
+ tDot11fFfCapabilities Capabilities;
+ tDot11fFfStatus Status;
+ tDot11fFfAID AID;
+ tDot11fIESuppRates SuppRates;
+ tDot11fIEExtSuppRates ExtSuppRates;
+ tDot11fIEEDCAParamSet EDCAParamSet;
+ tDot11fIERCPIIE RCPIIE;
+ tDot11fIERSNIIE RSNIIE;
+ tDot11fIERRMEnabledCap RRMEnabledCap;
+ tDot11fIEMobilityDomain MobilityDomain;
+ tDot11fIEFTInfo FTInfo;
+ tANI_U16 num_RICDataDesc;
+ tDot11fIERICDataDesc RICDataDesc[2];
+ tDot11fIEWPA WPA;
+ tDot11fIEHTCaps HTCaps;
+ tDot11fIEHTInfo HTInfo;
+ tDot11fIEWMMParams WMMParams;
+ tDot11fIEWMMCaps WMMCaps;
+ tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
+ tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
+ tDot11fIECCXTxmitPower CCXTxmitPower;
+ tANI_U16 num_WMMTSPEC;
+ tDot11fIEWMMTSPEC WMMTSPEC[4];
+ tDot11fIEAirgo Airgo;
+ tDot11fIEWscAssocRes WscAssocRes;
+ tDot11fIEP2PAssocRes P2PAssocRes;
+ tDot11fIEVHTCaps VHTCaps;
+ tDot11fIEVHTOperation VHTOperation;
+ tDot11fIEExtCap ExtCap;
+ tDot11fIEOBSSScanParameters OBSSScanParameters;
} tDot11fAssocResponse;
#define DOT11F_ASSOCRESPONSE ( 6 )
@@ -6321,6 +6404,7 @@
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
+ tDot11fIEOBSSScanParameters OBSSScanParameters;
} tDot11fBeacon;
#define DOT11F_BEACON ( 8 )
@@ -6455,6 +6539,7 @@
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
+ tDot11fIEOBSSScanParameters OBSSScanParameters;
} tDot11fBeaconIEs;
#define DOT11F_BEACONIES ( 11 )
@@ -7007,48 +7092,49 @@
#endif /* C++ */
typedef struct sDot11fProbeResponse{
- tDot11fFfTimeStamp TimeStamp;
- tDot11fFfBeaconInterval BeaconInterval;
- tDot11fFfCapabilities Capabilities;
- tDot11fIESSID SSID;
- tDot11fIESuppRates SuppRates;
- tDot11fIEFHParamSet FHParamSet;
- tDot11fIEDSParams DSParams;
- tDot11fIECFParams CFParams;
- tDot11fIEIBSSParams IBSSParams;
- tDot11fIECountry Country;
- tDot11fIEFHParams FHParams;
- tDot11fIEFHPattTable FHPattTable;
- tDot11fIEPowerConstraints PowerConstraints;
- tDot11fIEChanSwitchAnn ChanSwitchAnn;
- tDot11fIEQuiet Quiet;
- tDot11fIETPCReport TPCReport;
- tDot11fIEERPInfo ERPInfo;
- tDot11fIEExtSuppRates ExtSuppRates;
- tDot11fIERSNOpaque RSNOpaque;
- tDot11fIEQBSSLoad QBSSLoad;
- tDot11fIEEDCAParamSet EDCAParamSet;
- tDot11fIERRMEnabledCap RRMEnabledCap;
- tDot11fIEAPChannelReport APChannelReport;
- tDot11fIEMobilityDomain MobilityDomain;
- tDot11fIEWPA WPA;
- tDot11fIEHTCaps HTCaps;
- tDot11fIEHTInfo HTInfo;
- tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
- tDot11fIEWMMInfoAp WMMInfoAp;
- tDot11fIEWMMParams WMMParams;
- tDot11fIEWMMCaps WMMCaps;
- tDot11fIEWAPI WAPI;
- tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
- tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
- tDot11fIECCXTxmitPower CCXTxmitPower;
- tDot11fIEAirgo Airgo;
- tDot11fIEWscProbeRes WscProbeRes;
- tDot11fIEP2PProbeRes P2PProbeRes;
- tDot11fIEVHTCaps VHTCaps;
- tDot11fIEVHTOperation VHTOperation;
- tDot11fIEVHTExtBssLoad VHTExtBssLoad;
- tDot11fIEExtCap ExtCap;
+ tDot11fFfTimeStamp TimeStamp;
+ tDot11fFfBeaconInterval BeaconInterval;
+ tDot11fFfCapabilities Capabilities;
+ tDot11fIESSID SSID;
+ tDot11fIESuppRates SuppRates;
+ tDot11fIEFHParamSet FHParamSet;
+ tDot11fIEDSParams DSParams;
+ tDot11fIECFParams CFParams;
+ tDot11fIEIBSSParams IBSSParams;
+ tDot11fIECountry Country;
+ tDot11fIEFHParams FHParams;
+ tDot11fIEFHPattTable FHPattTable;
+ tDot11fIEPowerConstraints PowerConstraints;
+ tDot11fIEChanSwitchAnn ChanSwitchAnn;
+ tDot11fIEQuiet Quiet;
+ tDot11fIETPCReport TPCReport;
+ tDot11fIEERPInfo ERPInfo;
+ tDot11fIEExtSuppRates ExtSuppRates;
+ tDot11fIERSNOpaque RSNOpaque;
+ tDot11fIEQBSSLoad QBSSLoad;
+ tDot11fIEEDCAParamSet EDCAParamSet;
+ tDot11fIERRMEnabledCap RRMEnabledCap;
+ tDot11fIEAPChannelReport APChannelReport;
+ tDot11fIEMobilityDomain MobilityDomain;
+ tDot11fIEWPA WPA;
+ tDot11fIEHTCaps HTCaps;
+ tDot11fIEHTInfo HTInfo;
+ tDot11fIEExtChanSwitchAnn ExtChanSwitchAnn;
+ tDot11fIEWMMInfoAp WMMInfoAp;
+ tDot11fIEWMMParams WMMParams;
+ tDot11fIEWMMCaps WMMCaps;
+ tDot11fIEWAPI WAPI;
+ tDot11fIECCXRadMgmtCap CCXRadMgmtCap;
+ tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
+ tDot11fIECCXTxmitPower CCXTxmitPower;
+ tDot11fIEAirgo Airgo;
+ tDot11fIEWscProbeRes WscProbeRes;
+ tDot11fIEP2PProbeRes P2PProbeRes;
+ tDot11fIEVHTCaps VHTCaps;
+ tDot11fIEVHTOperation VHTOperation;
+ tDot11fIEVHTExtBssLoad VHTExtBssLoad;
+ tDot11fIEExtCap ExtCap;
+ tDot11fIEOBSSScanParameters OBSSScanParameters;
} tDot11fProbeResponse;
#define DOT11F_PROBERESPONSE ( 36 )
@@ -7237,6 +7323,7 @@
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEExtCap ExtCap;
+ tDot11fIEOBSSScanParameters OBSSScanParameters;
} tDot11fReAssocResponse;
#define DOT11F_REASSOCRESPONSE ( 42 )
@@ -7315,21 +7402,22 @@
#endif /* C++ */
typedef struct sDot11fTDLSDisRsp{
- tDot11fFfCategory Category;
- tDot11fFfAction Action;
- tDot11fFfDialogToken DialogToken;
- tDot11fFfCapabilities Capabilities;
- tDot11fIESuppRates SuppRates;
- tDot11fIEExtSuppRates ExtSuppRates;
- tDot11fIESuppChannels SuppChannels;
- tDot11fIERSN RSN;
- tDot11fIEExtCap ExtCap;
- tDot11fIEFTInfo FTInfo;
- tDot11fIEFTTimeoutInterval FTTimeoutInterval;
- tDot11fIERICData RICData;
- tDot11fIEHTCaps HTCaps;
- tDot11fIELinkIdentifier LinkIdentifier;
- tDot11fIEVHTCaps VHTCaps;
+ tDot11fFfCategory Category;
+ tDot11fFfAction Action;
+ tDot11fFfDialogToken DialogToken;
+ tDot11fFfCapabilities Capabilities;
+ tDot11fIESuppRates SuppRates;
+ tDot11fIEExtSuppRates ExtSuppRates;
+ tDot11fIESuppChannels SuppChannels;
+ tDot11fIESuppOperatingClasses SuppOperatingClasses;
+ tDot11fIERSN RSN;
+ tDot11fIEExtCap ExtCap;
+ tDot11fIEFTInfo FTInfo;
+ tDot11fIEFTTimeoutInterval FTTimeoutInterval;
+ tDot11fIERICData RICData;
+ tDot11fIEHTCaps HTCaps;
+ tDot11fIELinkIdentifier LinkIdentifier;
+ tDot11fIEVHTCaps VHTCaps;
} tDot11fTDLSDisRsp;
#define DOT11F_TDLSDISRSP ( 46 )
@@ -7421,25 +7509,26 @@
#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;
- tDot11fIEQOSCapsStation QOSCapsStation;
- tDot11fIEFTInfo FTInfo;
- tDot11fIEFTTimeoutInterval FTTimeoutInterval;
- tDot11fIERICData RICData;
- tDot11fIEHTCaps HTCaps;
- tDot11fIELinkIdentifier LinkIdentifier;
- tDot11fIEWMMInfoStation WMMInfoStation;
- tDot11fIEAID AID;
- tDot11fIEVHTCaps VHTCaps;
+ 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;
+ tDot11fIEFTTimeoutInterval FTTimeoutInterval;
+ tDot11fIERICData RICData;
+ tDot11fIEHTCaps HTCaps;
+ tDot11fIELinkIdentifier LinkIdentifier;
+ tDot11fIEWMMInfoStation WMMInfoStation;
+ tDot11fIEAID AID;
+ tDot11fIEVHTCaps VHTCaps;
} tDot11fTDLSSetupReq;
#define DOT11F_TDLSSETUPREQ ( 50 )
@@ -7457,27 +7546,28 @@
#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;
- tDot11fIEQOSCapsStation QOSCapsStation;
- tDot11fIEFTInfo FTInfo;
- tDot11fIEFTTimeoutInterval FTTimeoutInterval;
- tDot11fIERICData RICData;
- tDot11fIEHTCaps HTCaps;
- tDot11fIELinkIdentifier LinkIdentifier;
- tDot11fIEWMMInfoStation WMMInfoStation;
- tDot11fIEAID AID;
- tDot11fIEVHTCaps VHTCaps;
- tDot11fIEOperatingMode OperatingMode;
+ 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;
+ tDot11fIEFTTimeoutInterval FTTimeoutInterval;
+ tDot11fIERICData RICData;
+ tDot11fIEHTCaps HTCaps;
+ tDot11fIELinkIdentifier LinkIdentifier;
+ tDot11fIEWMMInfoStation WMMInfoStation;
+ tDot11fIEAID AID;
+ tDot11fIEVHTCaps VHTCaps;
+ tDot11fIEOperatingMode OperatingMode;
} tDot11fTDLSSetupRsp;
#define DOT11F_TDLSSETUPRSP ( 51 )
@@ -7558,6 +7648,27 @@
} /* End extern "C". */
#endif /* C++ */
+typedef struct sDot11fVHTGidManagementActionFrame{
+ tDot11fFfCategory Category;
+ tDot11fFfAction Action;
+ tDot11fFfVhtMembershipStatusArray VhtMembershipStatusArray;
+ tDot11fFfVhtUserPositionArray VhtUserPositionArray;
+} tDot11fVHTGidManagementActionFrame;
+
+#define DOT11F_VHTGIDMANAGEMENTACTIONFRAME ( 55 )
+
+#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;
@@ -7567,7 +7678,7 @@
tDot11fIECCXTrafStrmRateSet CCXTrafStrmRateSet;
} tDot11fWMMAddTSRequest;
-#define DOT11F_WMMADDTSREQUEST ( 55 )
+#define DOT11F_WMMADDTSREQUEST ( 56 )
#ifdef __cplusplus
extern "C" {
@@ -7590,7 +7701,7 @@
tDot11fIECCXTrafStrmMet CCXTrafStrmMet;
} tDot11fWMMAddTSResponse;
-#define DOT11F_WMMADDTSRESPONSE ( 56 )
+#define DOT11F_WMMADDTSRESPONSE ( 57 )
#ifdef __cplusplus
extern "C" {
@@ -7612,7 +7723,7 @@
tDot11fIEWMMTSPEC WMMTSPEC;
} tDot11fWMMDelTS;
-#define DOT11F_WMMDELTS ( 57 )
+#define DOT11F_WMMDELTS ( 58 )
#ifdef __cplusplus
extern "C" {