diff options
| author | Agrawal Ashish <ashishka@qti.qualcomm.com> | 2015-08-20 23:18:07 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-04-13 18:19:31 +0530 |
| commit | 39da975666372acffa55e30333f8f0e0900fb9cc (patch) | |
| tree | 9b426aa43cadc9247c533056ba6b166c9c350649 | |
| parent | 54b736934e4d26440e4ada474874454c07c6ca2b (diff) | |
qcacld-2.0: Add support for 2.4G Vht Interop
In 2.4GHz some APs advertise the VHT capability IE in vendor
specific IE.
Add support to detect the VHT capability in vendor specific IE
and establish the connection in VHT mode to improve the performance.
Change-Id: I043188f0b7d205caa0581a9ffb9a5ade1d720473
CRs-Fixed: 739767
| -rw-r--r-- | CORE/MAC/src/cfg/cfgUtil/dot11f.frms | 26 | ||||
| -rw-r--r-- | CORE/MAC/src/include/dot11f.h | 224 | ||||
| -rw-r--r-- | CORE/MAC/src/include/parserApi.h | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/include/limSession.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limAssocUtils.c | 243 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c | 53 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limPropExtsUtils.c | 2 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limSendManagementFrames.c | 31 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 8 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrUtil.c | 4 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/utils/src/dot11f.c | 2791 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/utils/src/parserApi.c | 84 |
12 files changed, 2353 insertions, 1120 deletions
diff --git a/CORE/MAC/src/cfg/cfgUtil/dot11f.frms b/CORE/MAC/src/cfg/cfgUtil/dot11f.frms index 06d6a8a5af85..93ee08f4490f 100644 --- a/CORE/MAC/src/cfg/cfgUtil/dot11f.frms +++ b/CORE/MAC/src/cfg/cfgUtil/dot11f.frms @@ -2044,10 +2044,6 @@ IE Vendor1IE (EID_VENDOR_SPECIFIC) OUI (0x00, 0x10, 0x18) { } -IE Vendor2IE (EID_VENDOR_SPECIFIC) OUI (0x00, 0x90, 0x4C) -{ -} - IE Vendor3IE (EID_VENDOR_SPECIFIC) OUI (0x00, 0x16, 0x32) { } @@ -3014,6 +3010,14 @@ MULTIIE P2PPresenceResponse ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 MANDATORYTLV NoticeOfAbsence; } +IE vendor2_ie (EID_VENDOR_SPECIFIC) OUI (0x00, 0x90, 0x4c) +{ + type, 1; + sub_type, 1; + OPTIE IE VHTCaps; + OPTIE IE VHTOperation; +} + ///////////////////////////////////////////////////////////////////////////// // Frames @@ -3070,7 +3074,7 @@ FRAME Beacon // C.f. Sec. 7.2.3.1 OPTIE WiderBWChanSwitchAnn; OPTIE OBSSScanParameters; OPTIE Vendor1IE; - OPTIE Vendor2IE; + OPTIE vendor2_ie; OPTIE Vendor3IE; OPTIE ChannelSwitchWrapper; OPTIE QComVendorIE; @@ -3157,7 +3161,7 @@ FRAME Beacon2 OPTIE WiderBWChanSwitchAnn; OPTIE OBSSScanParameters; OPTIE Vendor1IE; - OPTIE Vendor2IE; + OPTIE vendor2_ie; OPTIE Vendor3IE; OPTIE ChannelSwitchWrapper; OPTIE QComVendorIE; @@ -3221,7 +3225,7 @@ FRAME BeaconIEs OPTIE WiderBWChanSwitchAnn; OPTIE OBSSScanParameters; OPTIE Vendor1IE; - OPTIE Vendor2IE; + OPTIE vendor2_ie; OPTIE Vendor3IE; OPTIE ChannelSwitchWrapper; OPTIE QComVendorIE; @@ -3262,6 +3266,7 @@ FRAME AssocRequest // 7.2.3.4 OPTIE ExtCap; OPTIE OperatingMode; OPTIE QosMapSet; + OPTIE vendor2_ie; } // End frame AssocRequest. FRAME AssocResponse // 7.2.3.5 @@ -3295,6 +3300,7 @@ FRAME AssocResponse // 7.2.3.5 OPTIE ExtCap; OPTIE OBSSScanParameters; OPTIE QosMapSet; + OPTIE vendor2_ie; } // End frame AssocResponse. FRAME ReAssocRequest // 7.2.3.6 @@ -3331,6 +3337,7 @@ FRAME ReAssocRequest // 7.2.3.6 OPTIE ExtCap; OPTIE OperatingMode; OPTIE QosMapSet; + OPTIE vendor2_ie; } // End frame ReAssocRequest. FRAME ReAssocResponse // 7.2.3.7 @@ -3365,6 +3372,7 @@ FRAME ReAssocResponse // 7.2.3.7 OPTIE ExtCap; OPTIE OBSSScanParameters; OPTIE QosMapSet; + OPTIE vendor2_ie; } // End frame ReAssocResponse. FRAME ProbeRequest // 7.2.3.8 @@ -3431,7 +3439,7 @@ FRAME ProbeResponse // 7.2.3.9 OPTIE ExtCap; OPTIE OBSSScanParameters; OPTIE Vendor1IE; - OPTIE Vendor2IE; + OPTIE vendor2_ie; OPTIE Vendor3IE; OPTIE ChannelSwitchWrapper; OPTIE QComVendorIE; @@ -3995,7 +4003,7 @@ FRAME TimingAdvertisementFrame // 8.3.3.15 OPTIE TimeAdvertisement; OPTIE ExtCap; OPTIE Vendor1IE; - OPTIE Vendor2IE; + OPTIE vendor2_ie; OPTIE Vendor3IE; } diff --git a/CORE/MAC/src/include/dot11f.h b/CORE/MAC/src/include/dot11f.h index 111c093c606f..1b07c3a2a84e 100644 --- a/CORE/MAC/src/include/dot11f.h +++ b/CORE/MAC/src/include/dot11f.h @@ -37,7 +37,7 @@ * * * This file was automatically generated by 'framesc' - * Tue Sep 29 17:32:33 2015 from the following file(s): + * Thu Oct 8 17:27:11 2015 from the following file(s): * * dot11f.frms * @@ -2422,6 +2422,84 @@ tANI_U32 dot11fGetPackedIETSPEC(tpAniSirGlobal, tDot11fIETSPEC*, 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 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 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x09} typedef struct sDot11fIEWMMSchedule { tANI_U8 present; @@ -4974,56 +5052,6 @@ tANI_U32 dot11fGetPackedIETimeoutInterval(tpAniSirGlobal, tDot11fIETimeoutInterv #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; @@ -5053,34 +5081,6 @@ tANI_U32 dot11fGetPackedIEVHTExtBssLoad(tpAniSirGlobal, tDot11fIEVHTExtBssLoad*, #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 221 (0xdd) {OUI 0x00, 0x10, 0x18} typedef struct sDot11fIEVendor1IE { tANI_U8 present; @@ -5105,30 +5105,6 @@ tANI_U32 dot11fGetPackedIEVendor1IE(tpAniSirGlobal, tDot11fIEVendor1IE*, tANI_U3 #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ -// EID 221 (0xdd) {OUI 0x00, 0x90, 0x4c} -typedef struct sDot11fIEVendor2IE { - tANI_U8 present; -} tDot11fIEVendor2IE; - -#define DOT11F_EID_VENDOR2IE ( 221 ) - -// N.B. These #defines do *not* include the EID & length -#define DOT11F_IE_VENDOR2IE_MIN_LEN ( 3 ) - -#define DOT11F_IE_VENDOR2IE_MAX_LEN ( 3 ) - -#ifdef __cplusplus -extern "C" { -#endif /* C++ */ -tANI_U32 dot11fUnpackIeVendor2IE(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEVendor2IE*); - -tANI_U32 dot11fPackIeVendor2IE(tpAniSirGlobal, tDot11fIEVendor2IE*, tANI_U8*, tANI_U32, tANI_U32*); - -tANI_U32 dot11fGetPackedIEVendor2IE(tpAniSirGlobal, tDot11fIEVendor2IE*, tANI_U32*); - -#ifdef __cplusplus -}; /* End extern "C". */ -#endif /* C++ */ // EID 221 (0xdd) {OUI 0x00, 0x16, 0x32} typedef struct sDot11fIEVendor3IE { tANI_U8 present; @@ -5828,6 +5804,34 @@ tANI_U32 dot11fGetPackedIEsec_chan_offset_ele(tpAniSirGlobal, tDot11fIEsec_chan_ #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ +// EID 221 (0xdd) {OUI 0x00, 0x90, 0x4c} +typedef struct sDot11fIEvendor2_ie { + tANI_U8 present; + tANI_U8 type; + tANI_U8 sub_type; + tDot11fIEVHTCaps VHTCaps; + tDot11fIEVHTOperation VHTOperation; +} tDot11fIEvendor2_ie; + +#define DOT11F_EID_VENDOR2_IE ( 221 ) + +// N.B. These #defines do *not* include the EID & length +#define DOT11F_IE_VENDOR2_IE_MIN_LEN ( 5 ) + +#define DOT11F_IE_VENDOR2_IE_MAX_LEN ( 26 ) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +tANI_U32 dot11fUnpackIevendor2_ie(tpAniSirGlobal, tANI_U8*,tANI_U8, tDot11fIEvendor2_ie*); + +tANI_U32 dot11fPackIevendor2_ie(tpAniSirGlobal, tDot11fIEvendor2_ie*, tANI_U8*, tANI_U32, tANI_U32*); + +tANI_U32 dot11fGetPackedIEvendor2_ie(tpAniSirGlobal, tDot11fIEvendor2_ie*, tANI_U32*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ /************************************************************************ * Frames **********************************************************************/ @@ -5968,6 +5972,7 @@ typedef struct sDot11fAssocRequest{ tDot11fIEExtCap ExtCap; tDot11fIEOperatingMode OperatingMode; tDot11fIEQosMapSet QosMapSet; + tDot11fIEvendor2_ie vendor2_ie; } tDot11fAssocRequest; #define DOT11F_ASSOCREQUEST ( 5 ) @@ -6016,6 +6021,7 @@ typedef struct sDot11fAssocResponse{ tDot11fIEExtCap ExtCap; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEQosMapSet QosMapSet; + tDot11fIEvendor2_ie vendor2_ie; } tDot11fAssocResponse; #define DOT11F_ASSOCRESPONSE ( 6 ) @@ -6109,7 +6115,7 @@ typedef struct sDot11fBeacon{ tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEVendor1IE Vendor1IE; - tDot11fIEVendor2IE Vendor2IE; + tDot11fIEvendor2_ie vendor2_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEQComVendorIE QComVendorIE; @@ -6190,7 +6196,7 @@ typedef struct sDot11fBeacon2{ tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEVendor1IE Vendor1IE; - tDot11fIEVendor2IE Vendor2IE; + tDot11fIEvendor2_ie vendor2_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEQComVendorIE QComVendorIE; @@ -6259,7 +6265,7 @@ typedef struct sDot11fBeaconIEs{ tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEVendor1IE Vendor1IE; - tDot11fIEVendor2IE Vendor2IE; + tDot11fIEvendor2_ie vendor2_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEQComVendorIE QComVendorIE; @@ -6882,7 +6888,7 @@ typedef struct sDot11fProbeResponse{ tDot11fIEExtCap ExtCap; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEVendor1IE Vendor1IE; - tDot11fIEVendor2IE Vendor2IE; + tDot11fIEvendor2_ie vendor2_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEQComVendorIE QComVendorIE; @@ -7049,6 +7055,7 @@ typedef struct sDot11fReAssocRequest{ tDot11fIEExtCap ExtCap; tDot11fIEOperatingMode OperatingMode; tDot11fIEQosMapSet QosMapSet; + tDot11fIEvendor2_ie vendor2_ie; } tDot11fReAssocRequest; #define DOT11F_REASSOCREQUEST ( 43 ) @@ -7098,6 +7105,7 @@ typedef struct sDot11fReAssocResponse{ tDot11fIEExtCap ExtCap; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEQosMapSet QosMapSet; + tDot11fIEvendor2_ie vendor2_ie; } tDot11fReAssocResponse; #define DOT11F_REASSOCRESPONSE ( 44 ) @@ -7453,7 +7461,7 @@ typedef struct sDot11fTimingAdvertisementFrame{ tDot11fIETimeAdvertisement TimeAdvertisement; tDot11fIEExtCap ExtCap; tDot11fIEVendor1IE Vendor1IE; - tDot11fIEVendor2IE Vendor2IE; + tDot11fIEvendor2_ie vendor2_ie; tDot11fIEVendor3IE Vendor3IE; } tDot11fTimingAdvertisementFrame; diff --git a/CORE/MAC/src/include/parserApi.h b/CORE/MAC/src/include/parserApi.h index 6184e10b27da..0bddaa05e282 100644 --- a/CORE/MAC/src/include/parserApi.h +++ b/CORE/MAC/src/include/parserApi.h @@ -171,7 +171,7 @@ typedef struct sSirProbeRespBeacon tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; #endif tANI_U8 Vendor1IEPresent; - tANI_U8 Vendor2IEPresent; + tDot11fIEvendor2_ie vendor2_ie; tANI_U8 Vendor3IEPresent; tDot11fIEIBSSParams IBSSParams; @@ -311,6 +311,7 @@ typedef struct sSirAssocRsp #ifdef WLAN_FEATURE_11W tDot11fIETimeoutInterval TimeoutInterval; #endif + tDot11fIEvendor2_ie vendor2_ie; } tSirAssocRsp, *tpSirAssocRsp; #if defined(FEATURE_WLAN_ESE_UPLOAD) diff --git a/CORE/MAC/src/pe/include/limSession.h b/CORE/MAC/src/pe/include/limSession.h index 19291837ef76..e9a1f881935d 100644 --- a/CORE/MAC/src/pe/include/limSession.h +++ b/CORE/MAC/src/pe/include/limSession.h @@ -501,6 +501,10 @@ typedef struct sPESession // Added to Support BT-AMP /* Supported NSS is intersection of self and peer NSS */ bool supported_nss_1x1; bool is_ext_caps_present; + bool is_vendor_specific_vhtcaps; + uint8_t vendor_specific_vht_ie_type; + uint8_t vendor_specific_vht_ie_sub_type; + } tPESession, *tpPESession; /*------------------------------------------------------------------------- diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c index 0ea96b3645c7..3e444a6e349f 100644 --- a/CORE/MAC/src/pe/lim/limAssocUtils.c +++ b/CORE/MAC/src/pe/lim/limAssocUtils.c @@ -3500,6 +3500,17 @@ limCheckAndAnnounceJoinSuccess(tpAniSirGlobal pMac, mlmJoinCnf.sessionId = psessionEntry->peSessionId; limPostSmeMessage(pMac, LIM_MLM_JOIN_CNF, (tANI_U32 *) &mlmJoinCnf); } // if ((pMac->lim.gLimSystemRole == IBSS.... + + if (pBPR->vendor2_ie.VHTCaps.present) { + psessionEntry->is_vendor_specific_vhtcaps = true; + psessionEntry->vendor_specific_vht_ie_type = + pBPR->vendor2_ie.type; + psessionEntry->vendor_specific_vht_ie_sub_type = + pBPR->vendor2_ie.sub_type; + limLog(pMac, LOG1, FL( + "VHT caps are present in vendor specific IE")); + } + } /** @@ -3637,6 +3648,86 @@ limDelBss(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tANI_U16 bssIdx,tpPESession return retCode; } + /* lim_update_vhtcaps_assoc_resp : Update VHT caps in assoc response. + * @pMac Pointer to Global MAC structure + * @add_bss_params: parameters required for add bss params. + * @vht_caps: VHT capabilities. + * @session_entry : session entry. + * + * Return : void + */ +void lim_update_vhtcaps_assoc_resp(tpAniSirGlobal pMac, + tpAddBssParams add_bss_params, + tDot11fIEVHTCaps *vht_caps, tpPESession session_entry) +{ + add_bss_params->currentExtChannel = limGet11ACPhyCBState(pMac, + add_bss_params->currentOperChannel, + add_bss_params->currentExtChannel, + session_entry->apCenterChan, + session_entry); + + add_bss_params->staContext.vht_caps = + ((vht_caps->maxMPDULen << SIR_MAC_VHT_CAP_MAX_MPDU_LEN) | + (vht_caps->supportedChannelWidthSet << + SIR_MAC_VHT_CAP_SUPP_CH_WIDTH_SET) | + (vht_caps->ldpcCodingCap << + SIR_MAC_VHT_CAP_LDPC_CODING_CAP) | + (vht_caps->shortGI80MHz << + SIR_MAC_VHT_CAP_SHORTGI_80MHZ) | + (vht_caps->shortGI160and80plus80MHz << + SIR_MAC_VHT_CAP_SHORTGI_160_80_80MHZ) | + (vht_caps->txSTBC << SIR_MAC_VHT_CAP_TXSTBC) | + (vht_caps->rxSTBC << SIR_MAC_VHT_CAP_RXSTBC) | + (vht_caps->suBeamFormerCap << + SIR_MAC_VHT_CAP_SU_BEAMFORMER_CAP) | + (vht_caps->suBeamformeeCap << + SIR_MAC_VHT_CAP_SU_BEAMFORMEE_CAP) | + (vht_caps->csnofBeamformerAntSup << + SIR_MAC_VHT_CAP_CSN_BEAMORMER_ANT_SUP) | + (vht_caps->numSoundingDim << + SIR_MAC_VHT_CAP_NUM_SOUNDING_DIM) | + (vht_caps->muBeamformerCap << + SIR_MAC_VHT_CAP_NUM_BEAM_FORMER_CAP)| + (vht_caps->muBeamformeeCap << + SIR_MAC_VHT_CAP_NUM_BEAM_FORMEE_CAP) | + (vht_caps->vhtTXOPPS << SIR_MAC_VHT_CAP_TXOPPS) | + (vht_caps->htcVHTCap << SIR_MAC_VHT_CAP_HTC_CAP) | + (vht_caps->maxAMPDULenExp << + SIR_MAC_VHT_CAP_MAX_AMDU_LEN_EXPO) | + (vht_caps->vhtLinkAdaptCap << + SIR_MAC_VHT_CAP_LINK_ADAPT_CAP) | + (vht_caps->rxAntPattern << + SIR_MAC_VHT_CAP_RX_ANTENNA_PATTERN) | + (vht_caps->txAntPattern << + SIR_MAC_VHT_CAP_TX_ANTENNA_PATTERN) | + (vht_caps->reserved1 << SIR_MAC_VHT_CAP_RESERVED2)); + + add_bss_params->staContext.maxAmpduSize = + SIR_MAC_GET_VHT_MAX_AMPDU_EXPO( + add_bss_params->staContext.vht_caps); + + limLog(pMac, LOG1, + FL("Updating VHT Caps in assoc Response")); +} + +/** + * lim_update_vht_oper_assoc_resp : Update VHT Operations in assoc response. + * @pMac Pointer to Global MAC structure + * @add_bss_params: parameters required for add bss params. + * @vht_oper: VHT Operations to update. + * @session_entry : session entry. + * + * Return : void + */ +void lim_update_vht_oper_assoc_resp(tpAniSirGlobal pMac, + tpAddBssParams add_bss_params, + tDot11fIEVHTOperation *vht_oper, tpPESession session_entry) +{ + if (vht_oper->chanWidth) + add_bss_params->vhtTxChannelWidthSet = vht_oper->chanWidth; + limLog(pMac, LOG1, + FL("Updating VHT Operation in assoc Response")); +} /** @@ -3680,6 +3771,10 @@ tSirRetStatus limStaSendAddBss( tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp, tANI_U32 shortGi20MhzSupport; tANI_U32 shortGi40MhzSupport; tANI_U32 enableTxBF20MHz; + tDot11fIEVHTCaps *vht_caps = NULL; + tDot11fIEVHTOperation *vht_oper = NULL; + + // Package SIR_HAL_ADD_BSS_REQ message parameters pAddBssParams = vos_mem_malloc(sizeof( tAddBssParams )); if (NULL == pAddBssParams) @@ -3814,57 +3909,34 @@ tSirRetStatus limStaSendAddBss( tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp, if (psessionEntry->vhtCapability && ( pAssocRsp->VHTCaps.present )) { pAddBssParams->vhtCapable = pAssocRsp->VHTCaps.present; - pAddBssParams->vhtTxChannelWidthSet = pAssocRsp->VHTOperation.chanWidth; pAddBssParams->currentExtChannel = limGet11ACPhyCBState ( pMac, pAddBssParams->currentOperChannel, pAddBssParams->currentExtChannel, psessionEntry->apCenterChan, psessionEntry); - - pAddBssParams->staContext.vht_caps = - ((pAssocRsp->VHTCaps.maxMPDULen << SIR_MAC_VHT_CAP_MAX_MPDU_LEN) | - (pAssocRsp->VHTCaps.supportedChannelWidthSet << - SIR_MAC_VHT_CAP_SUPP_CH_WIDTH_SET) | - (pAssocRsp->VHTCaps.ldpcCodingCap << - SIR_MAC_VHT_CAP_LDPC_CODING_CAP) | - (pAssocRsp->VHTCaps.shortGI80MHz << - SIR_MAC_VHT_CAP_SHORTGI_80MHZ) | - (pAssocRsp->VHTCaps.shortGI160and80plus80MHz << - SIR_MAC_VHT_CAP_SHORTGI_160_80_80MHZ) | - (pAssocRsp->VHTCaps.txSTBC << SIR_MAC_VHT_CAP_TXSTBC) | - (pAssocRsp->VHTCaps.rxSTBC << SIR_MAC_VHT_CAP_RXSTBC) | - (pAssocRsp->VHTCaps.suBeamFormerCap << - SIR_MAC_VHT_CAP_SU_BEAMFORMER_CAP) | - (pAssocRsp->VHTCaps.suBeamformeeCap << - SIR_MAC_VHT_CAP_SU_BEAMFORMEE_CAP) | - (pAssocRsp->VHTCaps.csnofBeamformerAntSup << - SIR_MAC_VHT_CAP_CSN_BEAMORMER_ANT_SUP) | - (pAssocRsp->VHTCaps.numSoundingDim << - SIR_MAC_VHT_CAP_NUM_SOUNDING_DIM) | - (pAssocRsp->VHTCaps.muBeamformerCap << - SIR_MAC_VHT_CAP_NUM_BEAM_FORMER_CAP)| - (pAssocRsp->VHTCaps.muBeamformeeCap << - SIR_MAC_VHT_CAP_NUM_BEAM_FORMEE_CAP) | - (pAssocRsp->VHTCaps.vhtTXOPPS << SIR_MAC_VHT_CAP_TXOPPS) | - (pAssocRsp->VHTCaps.htcVHTCap << SIR_MAC_VHT_CAP_HTC_CAP) | - (pAssocRsp->VHTCaps.maxAMPDULenExp << - SIR_MAC_VHT_CAP_MAX_AMDU_LEN_EXPO) | - (pAssocRsp->VHTCaps.vhtLinkAdaptCap << - SIR_MAC_VHT_CAP_LINK_ADAPT_CAP) | - (pAssocRsp->VHTCaps.rxAntPattern << - SIR_MAC_VHT_CAP_RX_ANTENNA_PATTERN) | - (pAssocRsp->VHTCaps.txAntPattern << - SIR_MAC_VHT_CAP_TX_ANTENNA_PATTERN) | - (pAssocRsp->VHTCaps.reserved1 << SIR_MAC_VHT_CAP_RESERVED2)); - - pAddBssParams->staContext.maxAmpduSize = - SIR_MAC_GET_VHT_MAX_AMPDU_EXPO( - pAddBssParams->staContext.vht_caps); + vht_caps = &pAssocRsp->VHTCaps; + vht_oper = &pAssocRsp->VHTOperation; + } else if (psessionEntry->vhtCapability && + pAssocRsp->vendor2_ie.VHTCaps.present) { + pAddBssParams->vhtCapable = + pAssocRsp->vendor2_ie.VHTCaps.present; + limLog(pMac, LOG1, + FL("VHT Caps and Operation are present in vendor Specfic IE")); + vht_caps = &pAssocRsp->vendor2_ie.VHTCaps; + vht_oper = &pAssocRsp->vendor2_ie.VHTOperation; } else - { pAddBssParams->vhtCapable = 0; + + if (pAddBssParams->vhtCapable) { + if (vht_oper != NULL) + lim_update_vht_oper_assoc_resp(pMac, pAddBssParams, + vht_oper, psessionEntry); + if (vht_caps != NULL) + lim_update_vhtcaps_assoc_resp(pMac, pAddBssParams, + vht_caps, psessionEntry); } + limLog(pMac, LOG2, FL("vhtCapable %d vhtTxChannelWidthSet %d " "currentExtChannel %d"),pAddBssParams->vhtCapable, pAddBssParams->vhtTxChannelWidthSet, @@ -3925,22 +3997,29 @@ tSirRetStatus limStaSendAddBss( tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp, pAddBssParams->staContext.greenFieldCapable, pAddBssParams->staContext.lsigTxopProtection); #ifdef WLAN_FEATURE_11AC - if (psessionEntry->vhtCapability && IS_BSS_VHT_CAPABLE(pBeaconStruct->VHTCaps)) - { + if (psessionEntry->vhtCapability && + (IS_BSS_VHT_CAPABLE(pBeaconStruct->VHTCaps) || + IS_BSS_VHT_CAPABLE( + pBeaconStruct->vendor2_ie.VHTCaps))) { pAddBssParams->staContext.vhtCapable = 1; pAddBssParams->staContext.vhtSupportedRxNss = pStaDs->vhtSupportedRxNss; - if ((pAssocRsp->VHTCaps.suBeamFormerCap || - pAssocRsp->VHTCaps.muBeamformerCap) && - psessionEntry->txBFIniFeatureEnabled) - { - pAddBssParams->staContext.vhtTxBFCapable = 1; - } + if (pAssocRsp->VHTCaps.present) + vht_caps = &pAssocRsp->VHTCaps; + else if (pAssocRsp->vendor2_ie.VHTCaps.present) { + vht_caps = + &pAssocRsp->vendor2_ie.VHTCaps; + limLog(pMac, LOG1, + FL("VHT Caps is present in vendor Specfic IE")); - if (pAssocRsp->VHTCaps.muBeamformerCap && - psessionEntry->txMuBformee ) - { - pAddBssParams->staContext.vhtTxMUBformeeCapable = 1; } + if ((vht_caps != NULL) && (vht_caps->suBeamFormerCap || + vht_caps->muBeamformerCap) && + psessionEntry->txBFIniFeatureEnabled) + pAddBssParams->staContext.vhtTxBFCapable = 1; + if ((vht_caps != NULL) && + vht_caps->muBeamformerCap && + psessionEntry->txMuBformee) + pAddBssParams->staContext.vhtTxMUBformeeCapable = 1; } #endif if( (pAssocRsp->HTCaps.supportedChannelWidthSet) && @@ -3948,10 +4027,18 @@ tSirRetStatus limStaSendAddBss( tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp, { pAddBssParams->staContext.txChannelWidthSet = ( tANI_U8 )pAssocRsp->HTInfo.recommendedTxWidthSet; #ifdef WLAN_FEATURE_11AC - if (pAddBssParams->staContext.vhtCapable) - { - pAddBssParams->staContext.vhtTxChannelWidthSet = pAssocRsp->VHTOperation.chanWidth; //pMac->lim.apChanWidth; + if (pAssocRsp->VHTCaps.present) + vht_oper = &pAssocRsp->VHTOperation; + else if (pAssocRsp->vendor2_ie.VHTCaps.present) { + vht_oper = &pAssocRsp->vendor2_ie.VHTOperation; + limLog(pMac, LOG1, FL("VHT Operation is present in vendor Specfic IE")); } + + if ((vht_oper != NULL) && + pAddBssParams->staContext.vhtCapable) + pAddBssParams->staContext.vhtTxChannelWidthSet = vht_oper->chanWidth; //pMac->lim.apChanWidth; + + limLog(pMac, LOG2,FL("StaContext vhtCapable %d " "vhtTxChannelWidthSet: %d vhtTxBFCapable: %d"), pAddBssParams->staContext.vhtCapable, @@ -4229,6 +4316,7 @@ tSirRetStatus limStaSendAddBssPreAssoc( tpAniSirGlobal pMac, tANI_U8 updateEntry tANI_U32 shortGi20MhzSupport; tANI_U32 shortGi40MhzSupport; tpSirBssDescription bssDescription = &psessionEntry->pLimJoinReq->bssDescription; + tDot11fIEVHTCaps *vht_caps = NULL; pBeaconStruct = vos_mem_malloc(sizeof(tSchBeaconStruct)); if (NULL == pBeaconStruct) @@ -4361,16 +4449,18 @@ tSirRetStatus limStaSendAddBssPreAssoc( tpAniSirGlobal pMac, tANI_U8 updateEntry limLog(pMac, LOG2, FL("currentOperChannel %d"), pAddBssParams->currentOperChannel); #ifdef WLAN_FEATURE_11AC - if (psessionEntry->vhtCapability && IS_BSS_VHT_CAPABLE(pBeaconStruct->VHTCaps)) - { - pAddBssParams->vhtCapable = pBeaconStruct->VHTCaps.present; + if (psessionEntry->vhtCapability && + (IS_BSS_VHT_CAPABLE(pBeaconStruct->VHTCaps) || + IS_BSS_VHT_CAPABLE(pBeaconStruct->vendor2_ie.VHTCaps))) { + pAddBssParams->vhtCapable = 1; /* * in limExtractApCapability function intersection of FW advertised * channel width and AP advertised channel width has been taken into * account for calculating psessionEntry->apChanWidth */ pAddBssParams->vhtTxChannelWidthSet = psessionEntry->apChanWidth; - pAddBssParams->currentExtChannel = limGet11ACPhyCBState (pMac, + + pAddBssParams->currentExtChannel = limGet11ACPhyCBState ( pMac, pAddBssParams->currentOperChannel, pAddBssParams->currentExtChannel, psessionEntry->apCenterChan, @@ -4425,21 +4515,26 @@ tSirRetStatus limStaSendAddBssPreAssoc( tpAniSirGlobal pMac, tANI_U8 updateEntry pAddBssParams->staContext.greenFieldCapable, pAddBssParams->staContext.lsigTxopProtection); #ifdef WLAN_FEATURE_11AC - if (psessionEntry->vhtCapability && IS_BSS_VHT_CAPABLE(pBeaconStruct->VHTCaps)) - { + if (psessionEntry->vhtCapability && + (IS_BSS_VHT_CAPABLE(pBeaconStruct->VHTCaps) || + IS_BSS_VHT_CAPABLE(pBeaconStruct->vendor2_ie.VHTCaps))) { pAddBssParams->staContext.vhtCapable = 1; - if ((pBeaconStruct->VHTCaps.suBeamFormerCap || - pBeaconStruct->VHTCaps.muBeamformerCap) && - psessionEntry->txBFIniFeatureEnabled ) - { - pAddBssParams->staContext.vhtTxBFCapable = 1; - } + if (pBeaconStruct->VHTCaps.present) + vht_caps = &pBeaconStruct->VHTCaps; + else if ( + pBeaconStruct->vendor2_ie.VHTCaps.present) + vht_caps = + &pBeaconStruct->vendor2_ie.VHTCaps; + + if ((vht_caps != NULL) && + (vht_caps->suBeamFormerCap || + vht_caps->muBeamformerCap) && + psessionEntry->txBFIniFeatureEnabled) + pAddBssParams->staContext.vhtTxBFCapable = 1; + if ((vht_caps != NULL) && vht_caps->muBeamformerCap && + psessionEntry->txMuBformee) + pAddBssParams->staContext.vhtTxMUBformeeCapable = 1; - if ( pBeaconStruct->VHTCaps.muBeamformerCap && - psessionEntry->txMuBformee ) - { - pAddBssParams->staContext.vhtTxMUBformeeCapable = 1; - } } #endif if( (pBeaconStruct->HTCaps.supportedChannelWidthSet) && diff --git a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c index ca72b9416b00..7a220a86815f 100644 --- a/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c +++ b/CORE/MAC/src/pe/lim/limProcessAssocRspFrame.c @@ -84,6 +84,8 @@ void limUpdateAssocStaDatas(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpSirAsso tANI_U16 rxHighestRate = 0; uint32_t shortgi_20mhz_support; uint32_t shortgi_40mhz_support; + tDot11fIEVHTCaps *vht_caps = NULL; + tDot11fIEVHTOperation *vht_oper = NULL; limGetPhyMode(pMac, &phyMode, psessionEntry); @@ -163,33 +165,48 @@ void limUpdateAssocStaDatas(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpSirAsso } #ifdef WLAN_FEATURE_11AC - if(IS_DOT11_MODE_VHT(psessionEntry->dot11mode)) - { - pStaDs->mlmStaContext.vhtCapability = pAssocRsp->VHTCaps.present; - if (pAssocRsp->VHTCaps.present && - psessionEntry->htSupportedChannelWidthSet) - pStaDs->vhtSupportedChannelWidthSet = - pAssocRsp->VHTOperation.chanWidth; - } - - // If 11ac is supported and if the peer is sending VHT capabilities, - // then htMaxRxAMpduFactor should be overloaded with VHT maxAMPDULenExp if (pAssocRsp->VHTCaps.present) - { - pStaDs->htMaxRxAMpduFactor = pAssocRsp->VHTCaps.maxAMPDULenExp; + vht_caps = &pAssocRsp->VHTCaps; + else if (pAssocRsp->vendor2_ie.VHTCaps.present) + vht_caps = &pAssocRsp->vendor2_ie.VHTCaps; + if (pAssocRsp->VHTOperation.present) + vht_oper = &pAssocRsp->VHTOperation; + else if (pAssocRsp->vendor2_ie.VHTCaps.present) + vht_oper = &pAssocRsp->vendor2_ie.VHTOperation; + if ((vht_oper != NULL) && + (IS_DOT11_MODE_VHT(psessionEntry->dot11mode)) && + vht_oper->present && + psessionEntry->htSupportedChannelWidthSet) + pStaDs->vhtSupportedChannelWidthSet = vht_oper->chanWidth; + + if ((vht_caps != NULL) && vht_caps->present) { + if (IS_DOT11_MODE_VHT(psessionEntry->dot11mode)) + pStaDs->mlmStaContext.vhtCapability = + vht_caps->present; + /* + * If 11ac is supported and if the peer is + * sending VHT capabilities, + * then htMaxRxAMpduFactor should be + * overloaded with VHT maxAMPDULenExp + */ + pStaDs->htMaxRxAMpduFactor = vht_caps->maxAMPDULenExp; + if (limPopulatePeerRateSet(pMac, &pStaDs->supportedRates, + pAssocRsp->HTCaps.supportedMCSSet, + false, psessionEntry, + vht_caps) != eSIR_SUCCESS) { + limLog(pMac, LOGP, + FL("could not get rateset and extended rate set")); + return; + } } - - if (limPopulatePeerRateSet(pMac, &pStaDs->supportedRates, - pAssocRsp->HTCaps.supportedMCSSet, - false,psessionEntry , &pAssocRsp->VHTCaps) != eSIR_SUCCESS) #else if (limPopulatePeerRateSet(pMac, &pStaDs->supportedRates, pAssocRsp->HTCaps.supportedMCSSet, false,psessionEntry) != eSIR_SUCCESS) -#endif { limLog(pMac, LOGP, FL("could not get rateset and extended rate set")); return; } +#endif #ifdef WLAN_FEATURE_11AC pStaDs->vhtSupportedRxNss = ((pStaDs->supportedRates.vhtRxMCSMap & MCSMAPMASK2x2) == MCSMAPMASK2x2) ? 1 : 2; diff --git a/CORE/MAC/src/pe/lim/limPropExtsUtils.c b/CORE/MAC/src/pe/lim/limPropExtsUtils.c index 730c339b1c23..088c5969ea6e 100644 --- a/CORE/MAC/src/pe/lim/limPropExtsUtils.c +++ b/CORE/MAC/src/pe/lim/limPropExtsUtils.c @@ -153,7 +153,7 @@ limExtractApCapability(tpAniSirGlobal pMac, tANI_U8 *pIE, tANI_U16 ieLen, psessionEntry->vhtTxChannelWidthSet = vht_ch_wd; if (pBeaconStruct->Vendor1IEPresent && - pBeaconStruct->Vendor2IEPresent && + pBeaconStruct->vendor2_ie.present && pBeaconStruct->Vendor3IEPresent) { if (((pBeaconStruct->VHTCaps.txMCSMap & VHT_MCS_3x3_MASK) == diff --git a/CORE/MAC/src/pe/lim/limSendManagementFrames.c b/CORE/MAC/src/pe/lim/limSendManagementFrames.c index cc1037c7eb00..8da95bcb97d4 100644 --- a/CORE/MAC/src/pe/lim/limSendManagementFrames.c +++ b/CORE/MAC/src/pe/lim/limSendManagementFrames.c @@ -2227,6 +2227,23 @@ limSendAssocReqMgmtFrame(tpAniSirGlobal pMac, PopulateDot11fVHTCaps( pMac, psessionEntry, &pFrm->VHTCaps ); isVHTEnabled = eANI_BOOLEAN_TRUE; } + if (!isVHTEnabled && + psessionEntry->is_vendor_specific_vhtcaps) { + limLog(pMac, LOG1, + FL("Populate Vendor VHT IEs in Assoc Request")); + pFrm->vendor2_ie.present = 1; + pFrm->vendor2_ie.type = + psessionEntry->vendor_specific_vht_ie_type; + pFrm->vendor2_ie.sub_type = + psessionEntry->vendor_specific_vht_ie_sub_type; + + pFrm->vendor2_ie.VHTCaps.present = 1; + PopulateDot11fVHTCaps(pMac, psessionEntry, + &pFrm->vendor2_ie.VHTCaps); + isVHTEnabled = true; + } + + #endif if (psessionEntry->is_ext_caps_present) PopulateDot11fExtCap( pMac, isVHTEnabled, &pFrm->ExtCap, psessionEntry); @@ -2702,6 +2719,20 @@ limSendReassocReqWithFTIEsMgmtFrame(tpAniSirGlobal pMac, } if (psessionEntry->is_ext_caps_present) PopulateDot11fExtCap(pMac, isVHTEnabled, &frm.ExtCap, psessionEntry); + + if (!isVHTEnabled && psessionEntry->is_vendor_specific_vhtcaps) { + limLog(pMac, LOG1, + FL("Populate Vendor VHT IEs in Re-Assoc Request")); + frm.vendor2_ie.present = 1; + frm.vendor2_ie.type = + psessionEntry->vendor_specific_vht_ie_type; + frm.vendor2_ie.sub_type = + psessionEntry->vendor_specific_vht_ie_sub_type; + frm.vendor2_ie.VHTCaps.present = 1; + PopulateDot11fVHTCaps(pMac, psessionEntry, + &frm.vendor2_ie.VHTCaps); + isVHTEnabled = true; + } #endif nStatus = dot11fGetPackedReAssocRequestSize( pMac, &frm, &nPayload ); diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index 856189b7a3f5..4fd7e9ccf2f3 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -14242,6 +14242,14 @@ eHalStatus csrSendJoinReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirBssDe txBFCsnValue = MIN(txBFCsnValue, pIes->VHTCaps.numSoundingDim); } + else if (IS_BSS_VHT_CAPABLE(pIes->vendor2_ie.VHTCaps) && + pMac->roam.configParam.txBFEnable) { + txBFCsnValue = (tANI_U8)pMac->roam.configParam.txBFCsnValue; + if (pIes->vendor2_ie.VHTCaps.numSoundingDim) + txBFCsnValue = MIN(txBFCsnValue, + pIes->vendor2_ie.VHTCaps.numSoundingDim); + } + *pBuf = txBFCsnValue; pBuf++; diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c index 6b33508857eb..409aaf1bc8ac 100644 --- a/CORE/SME/src/csr/csrUtil.c +++ b/CORE/SME/src/csr/csrUtil.c @@ -1678,9 +1678,9 @@ eHalStatus csrGetPhyModeFromBss(tpAniSirGlobal pMac, tSirBssDescription *pBSSDes if (pIes->HTCaps.present) { phyMode = eCSR_DOT11_MODE_11n; #ifdef WLAN_FEATURE_11AC - if (IS_BSS_VHT_CAPABLE(pIes->VHTCaps)) { + if (IS_BSS_VHT_CAPABLE(pIes->VHTCaps) || + IS_BSS_VHT_CAPABLE(pIes->vendor2_ie.VHTCaps)) phyMode = eCSR_DOT11_MODE_11ac; - } #endif } diff --git a/CORE/SYS/legacy/src/utils/src/dot11f.c b/CORE/SYS/legacy/src/utils/src/dot11f.c index 0f542d0c927b..2580c43b9be9 100644 --- a/CORE/SYS/legacy/src/utils/src/dot11f.c +++ b/CORE/SYS/legacy/src/utils/src/dot11f.c @@ -35,7 +35,7 @@ * * * This file was automatically generated by 'framesc' - * Tue Sep 29 17:32:33 2015 from the following file(s): + * Thu Oct 8 17:27:11 2015 from the following file(s): * * dot11f.frms * @@ -2142,10 +2142,86 @@ tANI_U32 dot11fUnpackIeTSPEC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, #define SigIeTSPEC ( 0x0016 ) +tANI_U32 dot11fUnpackIeVHTCaps(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEVHTCaps *pDst) +{ + tANI_U32 status = DOT11F_PARSE_SUCCESS; + tANI_U32 tmp20__; + tANI_U16 tmp21__; + tANI_U16 tmp22__; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + framesntohl(pCtx, &tmp20__, pBuf, 0); + pBuf += 4; + ielen -= 4; + pDst->maxMPDULen = tmp20__ >> 0 & 0x3; + pDst->supportedChannelWidthSet = tmp20__ >> 2 & 0x3; + pDst->ldpcCodingCap = tmp20__ >> 4 & 0x1; + pDst->shortGI80MHz = tmp20__ >> 5 & 0x1; + pDst->shortGI160and80plus80MHz = tmp20__ >> 6 & 0x1; + pDst->txSTBC = tmp20__ >> 7 & 0x1; + pDst->rxSTBC = tmp20__ >> 8 & 0x7; + pDst->suBeamFormerCap = tmp20__ >> 11 & 0x1; + pDst->suBeamformeeCap = tmp20__ >> 12 & 0x1; + pDst->csnofBeamformerAntSup = tmp20__ >> 13 & 0x7; + pDst->numSoundingDim = tmp20__ >> 16 & 0x7; + pDst->muBeamformerCap = tmp20__ >> 19 & 0x1; + pDst->muBeamformeeCap = tmp20__ >> 20 & 0x1; + pDst->vhtTXOPPS = tmp20__ >> 21 & 0x1; + pDst->htcVHTCap = tmp20__ >> 22 & 0x1; + pDst->maxAMPDULenExp = tmp20__ >> 23 & 0x7; + pDst->vhtLinkAdaptCap = tmp20__ >> 26 & 0x3; + pDst->rxAntPattern = tmp20__ >> 28 & 0x1; + pDst->txAntPattern = tmp20__ >> 29 & 0x1; + pDst->reserved1 = tmp20__ >> 30 & 0x3; + framesntohs(pCtx, &pDst->rxMCSMap, pBuf, 0); + pBuf += 2; + ielen -= (tANI_U8)2; + framesntohs(pCtx, &tmp21__, pBuf, 0); + pBuf += 2; + ielen -= 2; + pDst->rxHighSupDataRate = tmp21__ >> 0 & 0x1fff; + pDst->reserved2 = tmp21__ >> 13 & 0x7; + framesntohs(pCtx, &pDst->txMCSMap, pBuf, 0); + pBuf += 2; + ielen -= (tANI_U8)2; + framesntohs(pCtx, &tmp22__, pBuf, 0); + pDst->txSupDataRate = tmp22__ >> 0 & 0x1fff; + pDst->reserved3 = tmp22__ >> 13 & 0x7; + (void)pCtx; + return status; +} /* End dot11fUnpackIeVHTCaps. */ + +#define SigIeVHTCaps ( 0x0017 ) + + +tANI_U32 dot11fUnpackIeVHTOperation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEVHTOperation *pDst) +{ + tANI_U32 status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + pDst->chanWidth = *pBuf; + pBuf += 1; + ielen -= (tANI_U8)1; + pDst->chanCenterFreqSeg1 = *pBuf; + pBuf += 1; + ielen -= (tANI_U8)1; + pDst->chanCenterFreqSeg2 = *pBuf; + pBuf += 1; + ielen -= (tANI_U8)1; + framesntohs(pCtx, &pDst->basicMCSSet, pBuf, 0); + (void)pCtx; + return status; +} /* End dot11fUnpackIeVHTOperation. */ + +#define SigIeVHTOperation ( 0x0018 ) + + tANI_U32 dot11fUnpackIeWMMSchedule(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMSchedule *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U16 tmp20__; + tANI_U16 tmp23__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; @@ -2157,13 +2233,13 @@ tANI_U32 dot11fUnpackIeWMMSchedule(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i pDst->present = 0; return ( status | DOT11F_BAD_FIXED_VALUE ); } - framesntohs(pCtx, &tmp20__, pBuf, 0); + framesntohs(pCtx, &tmp23__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->aggregation = tmp20__ >> 0 & 0x1; - pDst->tsid = tmp20__ >> 1 & 0xf; - pDst->direction = tmp20__ >> 5 & 0x3; - pDst->reserved = tmp20__ >> 7 & 0x1ff; + pDst->aggregation = tmp23__ >> 0 & 0x1; + pDst->tsid = tmp23__ >> 1 & 0xf; + pDst->direction = tmp23__ >> 5 & 0x3; + pDst->reserved = tmp23__ >> 7 & 0x1ff; framesntohl(pCtx, &pDst->service_start_time, pBuf, 0); pBuf += 4; ielen -= (tANI_U8)4; @@ -2178,7 +2254,7 @@ tANI_U32 dot11fUnpackIeWMMSchedule(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeWMMSchedule. */ -#define SigIeWMMSchedule ( 0x0017 ) +#define SigIeWMMSchedule ( 0x0019 ) tANI_U32 dot11fUnpackIeWMMTCLAS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMTCLAS *pDst) @@ -2275,7 +2351,7 @@ tANI_U32 dot11fUnpackIeWMMTCLAS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iele return status; } /* End dot11fUnpackIeWMMTCLAS. */ -#define SigIeWMMTCLAS ( 0x0018 ) +#define SigIeWMMTCLAS ( 0x001a ) tANI_U32 dot11fUnpackIeWMMTCLASPROC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMTCLASPROC *pDst) @@ -2297,7 +2373,7 @@ tANI_U32 dot11fUnpackIeWMMTCLASPROC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeWMMTCLASPROC. */ -#define SigIeWMMTCLASPROC ( 0x0019 ) +#define SigIeWMMTCLASPROC ( 0x001b ) tANI_U32 dot11fUnpackIeWMMTSDelay(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMTSDelay *pDst) @@ -2319,15 +2395,15 @@ tANI_U32 dot11fUnpackIeWMMTSDelay(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ie return status; } /* End dot11fUnpackIeWMMTSDelay. */ -#define SigIeWMMTSDelay ( 0x001a ) +#define SigIeWMMTSDelay ( 0x001c ) tANI_U32 dot11fUnpackIeWMMTSPEC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMTSPEC *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U16 tmp21__; - tANI_U8 tmp22__; - tANI_U16 tmp23__; + tANI_U16 tmp24__; + tANI_U8 tmp25__; + tANI_U16 tmp26__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; @@ -2339,27 +2415,27 @@ tANI_U32 dot11fUnpackIeWMMTSPEC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iele pDst->present = 0; return ( status | DOT11F_BAD_FIXED_VALUE ); } - framesntohs(pCtx, &tmp21__, pBuf, 0); + framesntohs(pCtx, &tmp24__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->traffic_type = tmp21__ >> 0 & 0x1; - pDst->tsid = tmp21__ >> 1 & 0xf; - pDst->direction = tmp21__ >> 5 & 0x3; - pDst->access_policy = tmp21__ >> 7 & 0x3; - pDst->aggregation = tmp21__ >> 9 & 0x1; - pDst->psb = tmp21__ >> 10 & 0x1; - pDst->user_priority = tmp21__ >> 11 & 0x7; - pDst->tsinfo_ack_pol = tmp21__ >> 14 & 0x3; - tmp22__ = *pBuf; + pDst->traffic_type = tmp24__ >> 0 & 0x1; + pDst->tsid = tmp24__ >> 1 & 0xf; + pDst->direction = tmp24__ >> 5 & 0x3; + pDst->access_policy = tmp24__ >> 7 & 0x3; + pDst->aggregation = tmp24__ >> 9 & 0x1; + pDst->psb = tmp24__ >> 10 & 0x1; + pDst->user_priority = tmp24__ >> 11 & 0x7; + pDst->tsinfo_ack_pol = tmp24__ >> 14 & 0x3; + tmp25__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->tsinfo_rsvd = tmp22__ >> 0 & 0x7f; - pDst->burst_size_defn = tmp22__ >> 7 & 0x1; - framesntohs(pCtx, &tmp23__, pBuf, 0); + pDst->tsinfo_rsvd = tmp25__ >> 0 & 0x7f; + pDst->burst_size_defn = tmp25__ >> 7 & 0x1; + framesntohs(pCtx, &tmp26__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->size = tmp23__ >> 0 & 0x7fff; - pDst->fixed = tmp23__ >> 15 & 0x1; + pDst->size = tmp26__ >> 0 & 0x7fff; + pDst->fixed = tmp26__ >> 15 & 0x1; framesntohs(pCtx, &pDst->max_msdu_size, pBuf, 0); pBuf += 2; ielen -= (tANI_U8)2; @@ -2404,7 +2480,7 @@ tANI_U32 dot11fUnpackIeWMMTSPEC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iele return status; } /* End dot11fUnpackIeWMMTSPEC. */ -#define SigIeWMMTSPEC ( 0x001b ) +#define SigIeWMMTSPEC ( 0x001d ) tANI_U32 dot11fUnpackIeWiderBWChanSwitchAnn(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWiderBWChanSwitchAnn *pDst) @@ -2424,7 +2500,7 @@ tANI_U32 dot11fUnpackIeWiderBWChanSwitchAnn(tpAniSirGlobal pCtx, tANI_U8 *pBuf, return status; } /* End dot11fUnpackIeWiderBWChanSwitchAnn. */ -#define SigIeWiderBWChanSwitchAnn ( 0x001c ) +#define SigIeWiderBWChanSwitchAnn ( 0x001e ) tANI_U32 dot11fUnpackIeAID(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEAID *pDst) @@ -2438,7 +2514,7 @@ tANI_U32 dot11fUnpackIeAID(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tD return status; } /* End dot11fUnpackIeAID. */ -#define SigIeAID ( 0x001d ) +#define SigIeAID ( 0x001f ) tANI_U32 dot11fUnpackIeCFParams(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIECFParams *pDst) @@ -2461,7 +2537,7 @@ tANI_U32 dot11fUnpackIeCFParams(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iele return status; } /* End dot11fUnpackIeCFParams. */ -#define SigIeCFParams ( 0x001e ) +#define SigIeCFParams ( 0x0020 ) tANI_U32 dot11fUnpackIeChallengeText(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEChallengeText *pDst) @@ -2481,7 +2557,7 @@ tANI_U32 dot11fUnpackIeChallengeText(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeChallengeText. */ -#define SigIeChallengeText ( 0x001f ) +#define SigIeChallengeText ( 0x0021 ) tANI_U32 dot11fUnpackIeChanSwitchAnn(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEChanSwitchAnn *pDst) @@ -2501,7 +2577,7 @@ tANI_U32 dot11fUnpackIeChanSwitchAnn(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeChanSwitchAnn. */ -#define SigIeChanSwitchAnn ( 0x0020 ) +#define SigIeChanSwitchAnn ( 0x0022 ) static const tFFDefn FFS_ChannelSwitchWrapper[ ] = { @@ -2530,7 +2606,7 @@ tANI_U32 dot11fUnpackIeChannelSwitchWrapper(tpAniSirGlobal pCtx, tANI_U8 *pBuf, return status; } /* End dot11fUnpackIeChannelSwitchWrapper. */ -#define SigIeChannelSwitchWrapper ( 0x0021 ) +#define SigIeChannelSwitchWrapper ( 0x0023 ) tANI_U32 dot11fUnpackIeCountry(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIECountry *pDst) @@ -2561,23 +2637,23 @@ tANI_U32 dot11fUnpackIeCountry(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen return status; } /* End dot11fUnpackIeCountry. */ -#define SigIeCountry ( 0x0022 ) +#define SigIeCountry ( 0x0024 ) -#define SigIeDSParams ( 0x0023 ) +#define SigIeDSParams ( 0x0025 ) tANI_U32 dot11fUnpackIeEDCAParamSet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEEDCAParamSet *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp24__; - tANI_U8 tmp25__; - tANI_U8 tmp26__; tANI_U8 tmp27__; tANI_U8 tmp28__; tANI_U8 tmp29__; tANI_U8 tmp30__; tANI_U8 tmp31__; + tANI_U8 tmp32__; + tANI_U8 tmp33__; + tANI_U8 tmp34__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; @@ -2587,88 +2663,88 @@ tANI_U32 dot11fUnpackIeEDCAParamSet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 pDst->reserved = *pBuf; pBuf += 1; ielen -= (tANI_U8)1; - tmp24__ = *pBuf; + tmp27__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_aifsn = tmp24__ >> 0 & 0xf; - pDst->acbe_acm = tmp24__ >> 4 & 0x1; - pDst->acbe_aci = tmp24__ >> 5 & 0x3; - pDst->unused1 = tmp24__ >> 7 & 0x1; - tmp25__ = *pBuf; + pDst->acbe_aifsn = tmp27__ >> 0 & 0xf; + pDst->acbe_acm = tmp27__ >> 4 & 0x1; + pDst->acbe_aci = tmp27__ >> 5 & 0x3; + pDst->unused1 = tmp27__ >> 7 & 0x1; + tmp28__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_acwmin = tmp25__ >> 0 & 0xf; - pDst->acbe_acwmax = tmp25__ >> 4 & 0xf; + pDst->acbe_acwmin = tmp28__ >> 0 & 0xf; + pDst->acbe_acwmax = tmp28__ >> 4 & 0xf; framesntohs(pCtx, &pDst->acbe_txoplimit, pBuf, 0); pBuf += 2; ielen -= (tANI_U8)2; - tmp26__ = *pBuf; + tmp29__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_aifsn = tmp26__ >> 0 & 0xf; - pDst->acbk_acm = tmp26__ >> 4 & 0x1; - pDst->acbk_aci = tmp26__ >> 5 & 0x3; - pDst->unused2 = tmp26__ >> 7 & 0x1; - tmp27__ = *pBuf; + pDst->acbk_aifsn = tmp29__ >> 0 & 0xf; + pDst->acbk_acm = tmp29__ >> 4 & 0x1; + pDst->acbk_aci = tmp29__ >> 5 & 0x3; + pDst->unused2 = tmp29__ >> 7 & 0x1; + tmp30__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_acwmin = tmp27__ >> 0 & 0xf; - pDst->acbk_acwmax = tmp27__ >> 4 & 0xf; + pDst->acbk_acwmin = tmp30__ >> 0 & 0xf; + pDst->acbk_acwmax = tmp30__ >> 4 & 0xf; framesntohs(pCtx, &pDst->acbk_txoplimit, pBuf, 0); pBuf += 2; ielen -= (tANI_U8)2; - tmp28__ = *pBuf; + tmp31__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_aifsn = tmp28__ >> 0 & 0xf; - pDst->acvi_acm = tmp28__ >> 4 & 0x1; - pDst->acvi_aci = tmp28__ >> 5 & 0x3; - pDst->unused3 = tmp28__ >> 7 & 0x1; - tmp29__ = *pBuf; + pDst->acvi_aifsn = tmp31__ >> 0 & 0xf; + pDst->acvi_acm = tmp31__ >> 4 & 0x1; + pDst->acvi_aci = tmp31__ >> 5 & 0x3; + pDst->unused3 = tmp31__ >> 7 & 0x1; + tmp32__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_acwmin = tmp29__ >> 0 & 0xf; - pDst->acvi_acwmax = tmp29__ >> 4 & 0xf; + pDst->acvi_acwmin = tmp32__ >> 0 & 0xf; + pDst->acvi_acwmax = tmp32__ >> 4 & 0xf; framesntohs(pCtx, &pDst->acvi_txoplimit, pBuf, 0); pBuf += 2; ielen -= (tANI_U8)2; - tmp30__ = *pBuf; + tmp33__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_aifsn = tmp30__ >> 0 & 0xf; - pDst->acvo_acm = tmp30__ >> 4 & 0x1; - pDst->acvo_aci = tmp30__ >> 5 & 0x3; - pDst->unused4 = tmp30__ >> 7 & 0x1; - tmp31__ = *pBuf; + pDst->acvo_aifsn = tmp33__ >> 0 & 0xf; + pDst->acvo_acm = tmp33__ >> 4 & 0x1; + pDst->acvo_aci = tmp33__ >> 5 & 0x3; + pDst->unused4 = tmp33__ >> 7 & 0x1; + tmp34__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_acwmin = tmp31__ >> 0 & 0xf; - pDst->acvo_acwmax = tmp31__ >> 4 & 0xf; + pDst->acvo_acwmin = tmp34__ >> 0 & 0xf; + pDst->acvo_acwmax = tmp34__ >> 4 & 0xf; framesntohs(pCtx, &pDst->acvo_txoplimit, pBuf, 0); (void)pCtx; return status; } /* End dot11fUnpackIeEDCAParamSet. */ -#define SigIeEDCAParamSet ( 0x0024 ) +#define SigIeEDCAParamSet ( 0x0026 ) tANI_U32 dot11fUnpackIeERPInfo(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEERPInfo *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp32__; + tANI_U8 tmp35__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp32__ = *pBuf; - pDst->non_erp_present = tmp32__ >> 0 & 0x1; - pDst->use_prot = tmp32__ >> 1 & 0x1; - pDst->barker_preamble = tmp32__ >> 2 & 0x1; - pDst->unused = tmp32__ >> 3 & 0x1f; + tmp35__ = *pBuf; + pDst->non_erp_present = tmp35__ >> 0 & 0x1; + pDst->use_prot = tmp35__ >> 1 & 0x1; + pDst->barker_preamble = tmp35__ >> 2 & 0x1; + pDst->unused = tmp35__ >> 3 & 0x1f; (void)pCtx; return status; } /* End dot11fUnpackIeERPInfo. */ -#define SigIeERPInfo ( 0x0025 ) +#define SigIeERPInfo ( 0x0027 ) tANI_U32 dot11fUnpackIeESECckmOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEESECckmOpaque *pDst) @@ -2688,27 +2764,27 @@ tANI_U32 dot11fUnpackIeESECckmOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeESECckmOpaque. */ -#define SigIeESECckmOpaque ( 0x0026 ) +#define SigIeESECckmOpaque ( 0x0028 ) tANI_U32 dot11fUnpackIeESERadMgmtCap(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEESERadMgmtCap *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp33__; + tANI_U8 tmp36__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; pDst->mgmt_state = *pBuf; pBuf += 1; ielen -= (tANI_U8)1; - tmp33__ = *pBuf; - pDst->mbssid_mask = tmp33__ >> 0 & 0x7; - pDst->reserved = tmp33__ >> 3 & 0x1f; + tmp36__ = *pBuf; + pDst->mbssid_mask = tmp36__ >> 0 & 0x7; + pDst->reserved = tmp36__ >> 3 & 0x1f; (void)pCtx; return status; } /* End dot11fUnpackIeESERadMgmtCap. */ -#define SigIeESERadMgmtCap ( 0x0027 ) +#define SigIeESERadMgmtCap ( 0x0029 ) tANI_U32 dot11fUnpackIeESETrafStrmMet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEESETrafStrmMet *pDst) @@ -2728,7 +2804,7 @@ tANI_U32 dot11fUnpackIeESETrafStrmMet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U return status; } /* End dot11fUnpackIeESETrafStrmMet. */ -#define SigIeESETrafStrmMet ( 0x0028 ) +#define SigIeESETrafStrmMet ( 0x002a ) tANI_U32 dot11fUnpackIeESETrafStrmRateSet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEESETrafStrmRateSet *pDst) @@ -2751,7 +2827,7 @@ tANI_U32 dot11fUnpackIeESETrafStrmRateSet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tA return status; } /* End dot11fUnpackIeESETrafStrmRateSet. */ -#define SigIeESETrafStrmRateSet ( 0x0029 ) +#define SigIeESETrafStrmRateSet ( 0x002b ) tANI_U32 dot11fUnpackIeESETxmitPower(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEESETxmitPower *pDst) @@ -2768,7 +2844,7 @@ tANI_U32 dot11fUnpackIeESETxmitPower(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeESETxmitPower. */ -#define SigIeESETxmitPower ( 0x002a ) +#define SigIeESETxmitPower ( 0x002c ) tANI_U32 dot11fUnpackIeESEVersion(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEESEVersion *pDst) @@ -2782,7 +2858,7 @@ tANI_U32 dot11fUnpackIeESEVersion(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ie return status; } /* End dot11fUnpackIeESEVersion. */ -#define SigIeESEVersion ( 0x002b ) +#define SigIeESEVersion ( 0x002d ) tANI_U32 dot11fUnpackIeExtCap(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEExtCap *pDst) @@ -2807,7 +2883,7 @@ endUnpackIeExtCap: return status; } /* End dot11fUnpackIeExtCap. */ -#define SigIeExtCap ( 0x002c ) +#define SigIeExtCap ( 0x002e ) tANI_U32 dot11fUnpackIeExtSuppRates(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEExtSuppRates *pDst) @@ -2835,7 +2911,7 @@ tANI_U32 dot11fUnpackIeExtSuppRates(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeExtSuppRates. */ -#define SigIeExtSuppRates ( 0x002d ) +#define SigIeExtSuppRates ( 0x002f ) tANI_U32 dot11fUnpackIeFHParamSet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEFHParamSet *pDst) @@ -2858,7 +2934,7 @@ tANI_U32 dot11fUnpackIeFHParamSet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ie return status; } /* End dot11fUnpackIeFHParamSet. */ -#define SigIeFHParamSet ( 0x002e ) +#define SigIeFHParamSet ( 0x0030 ) tANI_U32 dot11fUnpackIeFHParams(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEFHParams *pDst) @@ -2875,7 +2951,7 @@ tANI_U32 dot11fUnpackIeFHParams(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iele return status; } /* End dot11fUnpackIeFHParams. */ -#define SigIeFHParams ( 0x002f ) +#define SigIeFHParams ( 0x0031 ) tANI_U32 dot11fUnpackIeFHPattTable(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEFHPattTable *pDst) @@ -2907,7 +2983,7 @@ tANI_U32 dot11fUnpackIeFHPattTable(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeFHPattTable. */ -#define SigIeFHPattTable ( 0x0030 ) +#define SigIeFHPattTable ( 0x0032 ) static const tFFDefn FFS_FTInfo[ ] = { @@ -2925,15 +3001,15 @@ tANI_U32 dot11fUnpackIeFHPattTable(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i tANI_U32 dot11fUnpackIeFTInfo(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEFTInfo *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U16 tmp34__; + tANI_U16 tmp37__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohs(pCtx, &tmp34__, pBuf, 0); + framesntohs(pCtx, &tmp37__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->reserved = tmp34__ >> 0 & 0xff; - pDst->IECount = tmp34__ >> 8 & 0xff; + pDst->reserved = tmp37__ >> 0 & 0xff; + pDst->IECount = tmp37__ >> 8 & 0xff; DOT11F_MEMCPY(pCtx, pDst->MIC, pBuf, 16); pBuf += 16; ielen -= (tANI_U8)16; @@ -2954,28 +3030,28 @@ tANI_U32 dot11fUnpackIeFTInfo(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, return status; } /* End dot11fUnpackIeFTInfo. */ -#define SigIeFTInfo ( 0x0031 ) +#define SigIeFTInfo ( 0x0033 ) tANI_U32 dot11fUnpackIeHT2040BSSCoexistence(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEHT2040BSSCoexistence *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp35__; + tANI_U8 tmp38__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp35__ = *pBuf; - pDst->infoRequest = tmp35__ >> 0 & 0x1; - pDst->fortyMHzIntolerant = tmp35__ >> 1 & 0x1; - pDst->twentyMHzBssWidthReq = tmp35__ >> 2 & 0x1; - pDst->obssScanExemptionReq = tmp35__ >> 3 & 0x1; - pDst->obssScanExemptionGrant = tmp35__ >> 4 & 0x1; - pDst->unused = tmp35__ >> 5 & 0x7; + tmp38__ = *pBuf; + pDst->infoRequest = tmp38__ >> 0 & 0x1; + pDst->fortyMHzIntolerant = tmp38__ >> 1 & 0x1; + pDst->twentyMHzBssWidthReq = tmp38__ >> 2 & 0x1; + pDst->obssScanExemptionReq = tmp38__ >> 3 & 0x1; + pDst->obssScanExemptionGrant = tmp38__ >> 4 & 0x1; + pDst->unused = tmp38__ >> 5 & 0x7; (void)pCtx; return status; } /* End dot11fUnpackIeHT2040BSSCoexistence. */ -#define SigIeHT2040BSSCoexistence ( 0x0032 ) +#define SigIeHT2040BSSCoexistence ( 0x0034 ) tANI_U32 dot11fUnpackIeHT2040BSSIntolerantReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEHT2040BSSIntolerantReport *pDst) @@ -2998,84 +3074,84 @@ tANI_U32 dot11fUnpackIeHT2040BSSIntolerantReport(tpAniSirGlobal pCtx, tANI_U8 *p return status; } /* End dot11fUnpackIeHT2040BSSIntolerantReport. */ -#define SigIeHT2040BSSIntolerantReport ( 0x0033 ) +#define SigIeHT2040BSSIntolerantReport ( 0x0035 ) tANI_U32 dot11fUnpackIeHTCaps(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEHTCaps *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U16 tmp36__; - tANI_U8 tmp37__; - tANI_U16 tmp38__; - tANI_U32 tmp39__; + tANI_U16 tmp39__; tANI_U8 tmp40__; + tANI_U16 tmp41__; + tANI_U32 tmp42__; + tANI_U8 tmp43__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohs(pCtx, &tmp36__, pBuf, 0); + framesntohs(pCtx, &tmp39__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->advCodingCap = tmp36__ >> 0 & 0x1; - pDst->supportedChannelWidthSet = tmp36__ >> 1 & 0x1; - pDst->mimoPowerSave = tmp36__ >> 2 & 0x3; - pDst->greenField = tmp36__ >> 4 & 0x1; - pDst->shortGI20MHz = tmp36__ >> 5 & 0x1; - pDst->shortGI40MHz = tmp36__ >> 6 & 0x1; - pDst->txSTBC = tmp36__ >> 7 & 0x1; - pDst->rxSTBC = tmp36__ >> 8 & 0x3; - pDst->delayedBA = tmp36__ >> 10 & 0x1; - pDst->maximalAMSDUsize = tmp36__ >> 11 & 0x1; - pDst->dsssCckMode40MHz = tmp36__ >> 12 & 0x1; - pDst->psmp = tmp36__ >> 13 & 0x1; - pDst->stbcControlFrame = tmp36__ >> 14 & 0x1; - pDst->lsigTXOPProtection = tmp36__ >> 15 & 0x1; - tmp37__ = *pBuf; + pDst->advCodingCap = tmp39__ >> 0 & 0x1; + pDst->supportedChannelWidthSet = tmp39__ >> 1 & 0x1; + pDst->mimoPowerSave = tmp39__ >> 2 & 0x3; + pDst->greenField = tmp39__ >> 4 & 0x1; + pDst->shortGI20MHz = tmp39__ >> 5 & 0x1; + pDst->shortGI40MHz = tmp39__ >> 6 & 0x1; + pDst->txSTBC = tmp39__ >> 7 & 0x1; + pDst->rxSTBC = tmp39__ >> 8 & 0x3; + pDst->delayedBA = tmp39__ >> 10 & 0x1; + pDst->maximalAMSDUsize = tmp39__ >> 11 & 0x1; + pDst->dsssCckMode40MHz = tmp39__ >> 12 & 0x1; + pDst->psmp = tmp39__ >> 13 & 0x1; + pDst->stbcControlFrame = tmp39__ >> 14 & 0x1; + pDst->lsigTXOPProtection = tmp39__ >> 15 & 0x1; + tmp40__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->maxRxAMPDUFactor = tmp37__ >> 0 & 0x3; - pDst->mpduDensity = tmp37__ >> 2 & 0x7; - pDst->reserved1 = tmp37__ >> 5 & 0x7; + pDst->maxRxAMPDUFactor = tmp40__ >> 0 & 0x3; + pDst->mpduDensity = tmp40__ >> 2 & 0x7; + pDst->reserved1 = tmp40__ >> 5 & 0x7; DOT11F_MEMCPY(pCtx, pDst->supportedMCSSet, pBuf, 16); pBuf += 16; ielen -= (tANI_U8)16; - framesntohs(pCtx, &tmp38__, pBuf, 0); + framesntohs(pCtx, &tmp41__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->pco = tmp38__ >> 0 & 0x1; - pDst->transitionTime = tmp38__ >> 1 & 0x3; - pDst->reserved2 = tmp38__ >> 3 & 0x1f; - pDst->mcsFeedback = tmp38__ >> 8 & 0x3; - pDst->reserved3 = tmp38__ >> 10 & 0x3f; - framesntohl(pCtx, &tmp39__, pBuf, 0); + pDst->pco = tmp41__ >> 0 & 0x1; + pDst->transitionTime = tmp41__ >> 1 & 0x3; + pDst->reserved2 = tmp41__ >> 3 & 0x1f; + pDst->mcsFeedback = tmp41__ >> 8 & 0x3; + pDst->reserved3 = tmp41__ >> 10 & 0x3f; + framesntohl(pCtx, &tmp42__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->txBF = tmp39__ >> 0 & 0x1; - pDst->rxStaggeredSounding = tmp39__ >> 1 & 0x1; - pDst->txStaggeredSounding = tmp39__ >> 2 & 0x1; - pDst->rxZLF = tmp39__ >> 3 & 0x1; - pDst->txZLF = tmp39__ >> 4 & 0x1; - pDst->implicitTxBF = tmp39__ >> 5 & 0x1; - pDst->calibration = tmp39__ >> 6 & 0x3; - pDst->explicitCSITxBF = tmp39__ >> 8 & 0x1; - pDst->explicitUncompressedSteeringMatrix = tmp39__ >> 9 & 0x1; - pDst->explicitBFCSIFeedback = tmp39__ >> 10 & 0x7; - pDst->explicitUncompressedSteeringMatrixFeedback = tmp39__ >> 13 & 0x7; - pDst->explicitCompressedSteeringMatrixFeedback = tmp39__ >> 16 & 0x7; - pDst->csiNumBFAntennae = tmp39__ >> 19 & 0x3; - pDst->uncompressedSteeringMatrixBFAntennae = tmp39__ >> 21 & 0x3; - pDst->compressedSteeringMatrixBFAntennae = tmp39__ >> 23 & 0x3; - pDst->reserved4 = tmp39__ >> 25 & 0x7f; - tmp40__ = *pBuf; + pDst->txBF = tmp42__ >> 0 & 0x1; + pDst->rxStaggeredSounding = tmp42__ >> 1 & 0x1; + pDst->txStaggeredSounding = tmp42__ >> 2 & 0x1; + pDst->rxZLF = tmp42__ >> 3 & 0x1; + pDst->txZLF = tmp42__ >> 4 & 0x1; + pDst->implicitTxBF = tmp42__ >> 5 & 0x1; + pDst->calibration = tmp42__ >> 6 & 0x3; + pDst->explicitCSITxBF = tmp42__ >> 8 & 0x1; + pDst->explicitUncompressedSteeringMatrix = tmp42__ >> 9 & 0x1; + pDst->explicitBFCSIFeedback = tmp42__ >> 10 & 0x7; + pDst->explicitUncompressedSteeringMatrixFeedback = tmp42__ >> 13 & 0x7; + pDst->explicitCompressedSteeringMatrixFeedback = tmp42__ >> 16 & 0x7; + pDst->csiNumBFAntennae = tmp42__ >> 19 & 0x3; + pDst->uncompressedSteeringMatrixBFAntennae = tmp42__ >> 21 & 0x3; + pDst->compressedSteeringMatrixBFAntennae = tmp42__ >> 23 & 0x3; + pDst->reserved4 = tmp42__ >> 25 & 0x7f; + tmp43__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->antennaSelection = tmp40__ >> 0 & 0x1; - pDst->explicitCSIFeedbackTx = tmp40__ >> 1 & 0x1; - pDst->antennaIndicesFeedbackTx = tmp40__ >> 2 & 0x1; - pDst->explicitCSIFeedback = tmp40__ >> 3 & 0x1; - pDst->antennaIndicesFeedback = tmp40__ >> 4 & 0x1; - pDst->rxAS = tmp40__ >> 5 & 0x1; - pDst->txSoundingPPDUs = tmp40__ >> 6 & 0x1; - pDst->reserved5 = tmp40__ >> 7 & 0x1; + pDst->antennaSelection = tmp43__ >> 0 & 0x1; + pDst->explicitCSIFeedbackTx = tmp43__ >> 1 & 0x1; + pDst->antennaIndicesFeedbackTx = tmp43__ >> 2 & 0x1; + pDst->explicitCSIFeedback = tmp43__ >> 3 & 0x1; + pDst->antennaIndicesFeedback = tmp43__ >> 4 & 0x1; + pDst->rxAS = tmp43__ >> 5 & 0x1; + pDst->txSoundingPPDUs = tmp43__ >> 6 & 0x1; + pDst->reserved5 = tmp43__ >> 7 & 0x1; pDst->num_rsvd = (tANI_U8)( ielen ); if (ielen > 32){ pDst->present = 0; @@ -3087,47 +3163,47 @@ tANI_U32 dot11fUnpackIeHTCaps(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, return status; } /* End dot11fUnpackIeHTCaps. */ -#define SigIeHTCaps ( 0x0034 ) +#define SigIeHTCaps ( 0x0036 ) tANI_U32 dot11fUnpackIeHTInfo(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEHTInfo *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp41__; - tANI_U16 tmp42__; - tANI_U16 tmp43__; + tANI_U8 tmp44__; + tANI_U16 tmp45__; + tANI_U16 tmp46__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; pDst->primaryChannel = *pBuf; pBuf += 1; ielen -= (tANI_U8)1; - tmp41__ = *pBuf; + tmp44__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->secondaryChannelOffset = tmp41__ >> 0 & 0x3; - pDst->recommendedTxWidthSet = tmp41__ >> 2 & 0x1; - pDst->rifsMode = tmp41__ >> 3 & 0x1; - pDst->controlledAccessOnly = tmp41__ >> 4 & 0x1; - pDst->serviceIntervalGranularity = tmp41__ >> 5 & 0x7; - framesntohs(pCtx, &tmp42__, pBuf, 0); + pDst->secondaryChannelOffset = tmp44__ >> 0 & 0x3; + pDst->recommendedTxWidthSet = tmp44__ >> 2 & 0x1; + pDst->rifsMode = tmp44__ >> 3 & 0x1; + pDst->controlledAccessOnly = tmp44__ >> 4 & 0x1; + pDst->serviceIntervalGranularity = tmp44__ >> 5 & 0x7; + framesntohs(pCtx, &tmp45__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->opMode = tmp42__ >> 0 & 0x3; - pDst->nonGFDevicesPresent = tmp42__ >> 2 & 0x1; - pDst->transmitBurstLimit = tmp42__ >> 3 & 0x1; - pDst->obssNonHTStaPresent = tmp42__ >> 4 & 0x1; - pDst->reserved = tmp42__ >> 5 & 0x7ff; - framesntohs(pCtx, &tmp43__, pBuf, 0); + pDst->opMode = tmp45__ >> 0 & 0x3; + pDst->nonGFDevicesPresent = tmp45__ >> 2 & 0x1; + pDst->transmitBurstLimit = tmp45__ >> 3 & 0x1; + pDst->obssNonHTStaPresent = tmp45__ >> 4 & 0x1; + pDst->reserved = tmp45__ >> 5 & 0x7ff; + framesntohs(pCtx, &tmp46__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->basicSTBCMCS = tmp43__ >> 0 & 0x7f; - pDst->dualCTSProtection = tmp43__ >> 7 & 0x1; - pDst->secondaryBeacon = tmp43__ >> 8 & 0x1; - pDst->lsigTXOPProtectionFullSupport = tmp43__ >> 9 & 0x1; - pDst->pcoActive = tmp43__ >> 10 & 0x1; - pDst->pcoPhase = tmp43__ >> 11 & 0x1; - pDst->reserved2 = tmp43__ >> 12 & 0xf; + pDst->basicSTBCMCS = tmp46__ >> 0 & 0x7f; + pDst->dualCTSProtection = tmp46__ >> 7 & 0x1; + pDst->secondaryBeacon = tmp46__ >> 8 & 0x1; + pDst->lsigTXOPProtectionFullSupport = tmp46__ >> 9 & 0x1; + pDst->pcoActive = tmp46__ >> 10 & 0x1; + pDst->pcoPhase = tmp46__ >> 11 & 0x1; + pDst->reserved2 = tmp46__ >> 12 & 0xf; DOT11F_MEMCPY(pCtx, pDst->basicMCSSet, pBuf, 16); pBuf += 16; ielen -= (tANI_U8)16; @@ -3142,7 +3218,7 @@ tANI_U32 dot11fUnpackIeHTInfo(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, return status; } /* End dot11fUnpackIeHTInfo. */ -#define SigIeHTInfo ( 0x0035 ) +#define SigIeHTInfo ( 0x0037 ) tANI_U32 dot11fUnpackIeIBSSParams(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEIBSSParams *pDst) @@ -3156,7 +3232,7 @@ tANI_U32 dot11fUnpackIeIBSSParams(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ie return status; } /* End dot11fUnpackIeIBSSParams. */ -#define SigIeIBSSParams ( 0x0036 ) +#define SigIeIBSSParams ( 0x0038 ) tANI_U32 dot11fUnpackIeLinkIdentifier(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIELinkIdentifier *pDst) @@ -3176,7 +3252,7 @@ tANI_U32 dot11fUnpackIeLinkIdentifier(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U return status; } /* End dot11fUnpackIeLinkIdentifier. */ -#define SigIeLinkIdentifier ( 0x0037 ) +#define SigIeLinkIdentifier ( 0x0039 ) static const tFFDefn FFS_reportBeacon[ ] = { @@ -3191,22 +3267,22 @@ static const tIEDefn IES_reportBeacon[ ] = { tANI_U32 dot11fUnpackIeMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEMeasurementReport *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp44__; - tANI_U8 tmp45__; - tANI_U8 tmp46__; + tANI_U8 tmp47__; + tANI_U8 tmp48__; + tANI_U8 tmp49__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; pDst->token = *pBuf; pBuf += 1; ielen -= (tANI_U8)1; - tmp44__ = *pBuf; + tmp47__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->late = tmp44__ >> 0 & 0x1; - pDst->incapable = tmp44__ >> 1 & 0x1; - pDst->refused = tmp44__ >> 2 & 0x1; - pDst->unused = tmp44__ >> 3 & 0x1f; + pDst->late = tmp47__ >> 0 & 0x1; + pDst->incapable = tmp47__ >> 1 & 0x1; + pDst->refused = tmp47__ >> 2 & 0x1; + pDst->unused = tmp47__ >> 3 & 0x1f; pDst->type = *pBuf; pBuf += 1; ielen -= (tANI_U8)1; @@ -3228,15 +3304,15 @@ tANI_U32 dot11fUnpackIeMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tAN framesntohs(pCtx, &pDst->report.Basic.meas_duration, pBuf, 0); pBuf += 2; ielen -= (tANI_U8)2; - tmp45__ = *pBuf; + tmp48__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->report.Basic.bss = tmp45__ >> 0 & 0x1; - pDst->report.Basic.ofdm_preamble = tmp45__ >> 1 & 0x1; - pDst->report.Basic.unid_signal = tmp45__ >> 2 & 0x1; - pDst->report.Basic.rader = tmp45__ >> 3 & 0x1; - pDst->report.Basic.unmeasured = tmp45__ >> 4 & 0x1; - pDst->report.Basic.unused = tmp45__ >> 5 & 0x7; + pDst->report.Basic.bss = tmp48__ >> 0 & 0x1; + pDst->report.Basic.ofdm_preamble = tmp48__ >> 1 & 0x1; + pDst->report.Basic.unid_signal = tmp48__ >> 2 & 0x1; + pDst->report.Basic.rader = tmp48__ >> 3 & 0x1; + pDst->report.Basic.unmeasured = tmp48__ >> 4 & 0x1; + pDst->report.Basic.unused = tmp48__ >> 5 & 0x7; break; case 1: pDst->report.CCA.channel = *pBuf; @@ -3300,11 +3376,11 @@ tANI_U32 dot11fUnpackIeMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tAN framesntohs(pCtx, &pDst->report.Beacon.meas_duration, pBuf, 0); pBuf += 2; ielen -= (tANI_U8)2; - tmp46__ = *pBuf; + tmp49__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->report.Beacon.condensed_PHY = tmp46__ >> 0 & 0x7f; - pDst->report.Beacon.reported_frame_type = tmp46__ >> 7 & 0x1; + pDst->report.Beacon.condensed_PHY = tmp49__ >> 0 & 0x7f; + pDst->report.Beacon.reported_frame_type = tmp49__ >> 7 & 0x1; pDst->report.Beacon.RCPI = *pBuf; pBuf += 1; ielen -= (tANI_U8)1; @@ -3334,7 +3410,7 @@ tANI_U32 dot11fUnpackIeMeasurementReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tAN return status; } /* End dot11fUnpackIeMeasurementReport. */ -#define SigIeMeasurementReport ( 0x0038 ) +#define SigIeMeasurementReport ( 0x003a ) static const tFFDefn FFS_measurement_requestBeacon[ ] = { @@ -3353,22 +3429,22 @@ static const tIEDefn IES_measurement_requestBeacon[ ] = { tANI_U32 dot11fUnpackIeMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEMeasurementRequest *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp47__; + tANI_U8 tmp50__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; pDst->measurement_token = *pBuf; pBuf += 1; ielen -= (tANI_U8)1; - tmp47__ = *pBuf; + tmp50__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->parallel = tmp47__ >> 0 & 0x1; - pDst->enable = tmp47__ >> 1 & 0x1; - pDst->request = tmp47__ >> 2 & 0x1; - pDst->report = tmp47__ >> 3 & 0x1; - pDst->durationMandatory = tmp47__ >> 4 & 0x1; - pDst->unused = tmp47__ >> 5 & 0x7; + pDst->parallel = tmp50__ >> 0 & 0x1; + pDst->enable = tmp50__ >> 1 & 0x1; + pDst->request = tmp50__ >> 2 & 0x1; + pDst->report = tmp50__ >> 3 & 0x1; + pDst->durationMandatory = tmp50__ >> 4 & 0x1; + pDst->unused = tmp50__ >> 5 & 0x7; pDst->measurement_type = *pBuf; pBuf += 1; ielen -= (tANI_U8)1; @@ -3439,28 +3515,28 @@ tANI_U32 dot11fUnpackIeMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tA return status; } /* End dot11fUnpackIeMeasurementRequest. */ -#define SigIeMeasurementRequest ( 0x0039 ) +#define SigIeMeasurementRequest ( 0x003b ) tANI_U32 dot11fUnpackIeMobilityDomain(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEMobilityDomain *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp48__; + tANI_U8 tmp51__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; framesntohs(pCtx, &pDst->MDID, pBuf, 0); pBuf += 2; ielen -= (tANI_U8)2; - tmp48__ = *pBuf; - pDst->overDSCap = tmp48__ >> 0 & 0x1; - pDst->resourceReqCap = tmp48__ >> 1 & 0x1; - pDst->reserved = tmp48__ >> 2 & 0x3f; + tmp51__ = *pBuf; + pDst->overDSCap = tmp51__ >> 0 & 0x1; + pDst->resourceReqCap = tmp51__ >> 1 & 0x1; + pDst->reserved = tmp51__ >> 2 & 0x3f; (void)pCtx; return status; } /* End dot11fUnpackIeMobilityDomain. */ -#define SigIeMobilityDomain ( 0x003a ) +#define SigIeMobilityDomain ( 0x003c ) static const tFFDefn FFS_NeighborReport[ ] = { @@ -3479,31 +3555,31 @@ tANI_U32 dot11fUnpackIeMobilityDomain(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U tANI_U32 dot11fUnpackIeNeighborReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIENeighborReport *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp49__; - tANI_U8 tmp50__; + tANI_U8 tmp52__; + tANI_U8 tmp53__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; DOT11F_MEMCPY(pCtx, pDst->bssid, pBuf, 6); pBuf += 6; ielen -= (tANI_U8)6; - tmp49__ = *pBuf; + tmp52__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->APReachability = tmp49__ >> 0 & 0x3; - pDst->Security = tmp49__ >> 2 & 0x1; - pDst->KeyScope = tmp49__ >> 3 & 0x1; - pDst->SpecMgmtCap = tmp49__ >> 4 & 0x1; - pDst->QosCap = tmp49__ >> 5 & 0x1; - pDst->apsd = tmp49__ >> 6 & 0x1; - pDst->rrm = tmp49__ >> 7 & 0x1; - tmp50__ = *pBuf; + pDst->APReachability = tmp52__ >> 0 & 0x3; + pDst->Security = tmp52__ >> 2 & 0x1; + pDst->KeyScope = tmp52__ >> 3 & 0x1; + pDst->SpecMgmtCap = tmp52__ >> 4 & 0x1; + pDst->QosCap = tmp52__ >> 5 & 0x1; + pDst->apsd = tmp52__ >> 6 & 0x1; + pDst->rrm = tmp52__ >> 7 & 0x1; + tmp53__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->DelayedBA = tmp50__ >> 0 & 0x1; - pDst->ImmBA = tmp50__ >> 1 & 0x1; - pDst->MobilityDomain = tmp50__ >> 2 & 0x1; - pDst->reserved = tmp50__ >> 3 & 0x1f; + pDst->DelayedBA = tmp53__ >> 0 & 0x1; + pDst->ImmBA = tmp53__ >> 1 & 0x1; + pDst->MobilityDomain = tmp53__ >> 2 & 0x1; + pDst->reserved = tmp53__ >> 3 & 0x1f; framesntohs(pCtx, &pDst->reserved1, pBuf, 0); pBuf += 2; ielen -= (tANI_U8)2; @@ -3527,7 +3603,7 @@ tANI_U32 dot11fUnpackIeNeighborReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U return status; } /* End dot11fUnpackIeNeighborReport. */ -#define SigIeNeighborReport ( 0x003b ) +#define SigIeNeighborReport ( 0x003d ) tANI_U32 dot11fUnpackIeOBSSScanParameters(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEOBSSScanParameters *pDst) @@ -3559,26 +3635,26 @@ tANI_U32 dot11fUnpackIeOBSSScanParameters(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tA return status; } /* End dot11fUnpackIeOBSSScanParameters. */ -#define SigIeOBSSScanParameters ( 0x003c ) +#define SigIeOBSSScanParameters ( 0x003e ) tANI_U32 dot11fUnpackIeOperatingMode(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEOperatingMode *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp51__; + tANI_U8 tmp54__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp51__ = *pBuf; - pDst->chanWidth = tmp51__ >> 0 & 0x3; - pDst->reserved = tmp51__ >> 2 & 0x3; - pDst->rxNSS = tmp51__ >> 4 & 0x7; - pDst->rxNSSType = tmp51__ >> 7 & 0x1; + tmp54__ = *pBuf; + pDst->chanWidth = tmp54__ >> 0 & 0x3; + pDst->reserved = tmp54__ >> 2 & 0x3; + pDst->rxNSS = tmp54__ >> 4 & 0x7; + pDst->rxNSSType = tmp54__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11fUnpackIeOperatingMode. */ -#define SigIeOperatingMode ( 0x003d ) +#define SigIeOperatingMode ( 0x003f ) static const tTLVDefn TLVS_P2PAssocReq[ ] = { @@ -3597,7 +3673,7 @@ tANI_U32 dot11fUnpackIeP2PAssocReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PAssocReq. */ -#define SigIeP2PAssocReq ( 0x003e ) +#define SigIeP2PAssocReq ( 0x0040 ) static const tTLVDefn TLVS_P2PAssocRes[ ] = { @@ -3615,7 +3691,7 @@ tANI_U32 dot11fUnpackIeP2PAssocRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PAssocRes. */ -#define SigIeP2PAssocRes ( 0x003f ) +#define SigIeP2PAssocRes ( 0x0041 ) static const tTLVDefn TLVS_P2PBeacon[ ] = { @@ -3634,7 +3710,7 @@ tANI_U32 dot11fUnpackIeP2PBeacon(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeP2PBeacon. */ -#define SigIeP2PBeacon ( 0x0040 ) +#define SigIeP2PBeacon ( 0x0042 ) static const tTLVDefn TLVS_P2PBeaconProbeRes[ ] = { @@ -3656,7 +3732,7 @@ tANI_U32 dot11fUnpackIeP2PBeaconProbeRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tAN return status; } /* End dot11fUnpackIeP2PBeaconProbeRes. */ -#define SigIeP2PBeaconProbeRes ( 0x0041 ) +#define SigIeP2PBeaconProbeRes ( 0x0043 ) static const tTLVDefn TLVS_P2PDeAuth[ ] = { @@ -3673,7 +3749,7 @@ tANI_U32 dot11fUnpackIeP2PDeAuth(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeP2PDeAuth. */ -#define SigIeP2PDeAuth ( 0x0042 ) +#define SigIeP2PDeAuth ( 0x0044 ) static const tTLVDefn TLVS_P2PDeviceDiscoverabilityReq[ ] = { @@ -3691,7 +3767,7 @@ tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityReq(tpAniSirGlobal pCtx, tANI_U8 return status; } /* End dot11fUnpackIeP2PDeviceDiscoverabilityReq. */ -#define SigIeP2PDeviceDiscoverabilityReq ( 0x0043 ) +#define SigIeP2PDeviceDiscoverabilityReq ( 0x0045 ) static const tTLVDefn TLVS_P2PDeviceDiscoverabilityRes[ ] = { @@ -3708,7 +3784,7 @@ tANI_U32 dot11fUnpackIeP2PDeviceDiscoverabilityRes(tpAniSirGlobal pCtx, tANI_U8 return status; } /* End dot11fUnpackIeP2PDeviceDiscoverabilityRes. */ -#define SigIeP2PDeviceDiscoverabilityRes ( 0x0044 ) +#define SigIeP2PDeviceDiscoverabilityRes ( 0x0046 ) static const tTLVDefn TLVS_P2PDisAssoc[ ] = { @@ -3725,7 +3801,7 @@ tANI_U32 dot11fUnpackIeP2PDisAssoc(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PDisAssoc. */ -#define SigIeP2PDisAssoc ( 0x0045 ) +#define SigIeP2PDisAssoc ( 0x0047 ) static const tTLVDefn TLVS_P2PGONegCnf[ ] = { @@ -3746,7 +3822,7 @@ tANI_U32 dot11fUnpackIeP2PGONegCnf(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PGONegCnf. */ -#define SigIeP2PGONegCnf ( 0x0046 ) +#define SigIeP2PGONegCnf ( 0x0048 ) static const tTLVDefn TLVS_P2PGONegReq[ ] = { @@ -3771,7 +3847,7 @@ tANI_U32 dot11fUnpackIeP2PGONegReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PGONegReq. */ -#define SigIeP2PGONegReq ( 0x0047 ) +#define SigIeP2PGONegReq ( 0x0049 ) static const tTLVDefn TLVS_P2PGONegRes[ ] = { @@ -3796,7 +3872,7 @@ tANI_U32 dot11fUnpackIeP2PGONegRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PGONegRes. */ -#define SigIeP2PGONegRes ( 0x0048 ) +#define SigIeP2PGONegRes ( 0x004a ) static const tTLVDefn TLVS_P2PGONegWPS[ ] = { @@ -3814,7 +3890,7 @@ tANI_U32 dot11fUnpackIeP2PGONegWPS(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PGONegWPS. */ -#define SigIeP2PGONegWPS ( 0x0049 ) +#define SigIeP2PGONegWPS ( 0x004b ) tANI_U32 dot11fUnpackIeP2PIEOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEP2PIEOpaque *pDst) @@ -3834,7 +3910,7 @@ tANI_U32 dot11fUnpackIeP2PIEOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PIEOpaque. */ -#define SigIeP2PIEOpaque ( 0x004a ) +#define SigIeP2PIEOpaque ( 0x004c ) static const tTLVDefn TLVS_P2PInvitationReq[ ] = { @@ -3857,7 +3933,7 @@ tANI_U32 dot11fUnpackIeP2PInvitationReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI return status; } /* End dot11fUnpackIeP2PInvitationReq. */ -#define SigIeP2PInvitationReq ( 0x004b ) +#define SigIeP2PInvitationReq ( 0x004d ) static const tTLVDefn TLVS_P2PInvitationRes[ ] = { @@ -3878,7 +3954,7 @@ tANI_U32 dot11fUnpackIeP2PInvitationRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI return status; } /* End dot11fUnpackIeP2PInvitationRes. */ -#define SigIeP2PInvitationRes ( 0x004c ) +#define SigIeP2PInvitationRes ( 0x004e ) static const tTLVDefn TLVS_P2PNoticeOfAbsence[ ] = { @@ -3895,7 +3971,7 @@ tANI_U32 dot11fUnpackIeP2PNoticeOfAbsence(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tA return status; } /* End dot11fUnpackIeP2PNoticeOfAbsence. */ -#define SigIeP2PNoticeOfAbsence ( 0x004d ) +#define SigIeP2PNoticeOfAbsence ( 0x004f ) static const tTLVDefn TLVS_P2PPresenceResponse[ ] = { @@ -3913,7 +3989,7 @@ tANI_U32 dot11fUnpackIeP2PPresenceResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, t return status; } /* End dot11fUnpackIeP2PPresenceResponse. */ -#define SigIeP2PPresenceResponse ( 0x004e ) +#define SigIeP2PPresenceResponse ( 0x0050 ) static const tTLVDefn TLVS_P2PProbeReq[ ] = { @@ -3934,7 +4010,7 @@ tANI_U32 dot11fUnpackIeP2PProbeReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PProbeReq. */ -#define SigIeP2PProbeReq ( 0x004f ) +#define SigIeP2PProbeReq ( 0x0051 ) static const tTLVDefn TLVS_P2PProbeRes[ ] = { @@ -3955,7 +4031,7 @@ tANI_U32 dot11fUnpackIeP2PProbeRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeP2PProbeRes. */ -#define SigIeP2PProbeRes ( 0x0050 ) +#define SigIeP2PProbeRes ( 0x0052 ) static const tTLVDefn TLVS_P2PProvisionDiscoveryReq[ ] = { @@ -3974,7 +4050,7 @@ tANI_U32 dot11fUnpackIeP2PProvisionDiscoveryReq(tpAniSirGlobal pCtx, tANI_U8 *pB return status; } /* End dot11fUnpackIeP2PProvisionDiscoveryReq. */ -#define SigIeP2PProvisionDiscoveryReq ( 0x0051 ) +#define SigIeP2PProvisionDiscoveryReq ( 0x0053 ) static const tTLVDefn TLVS_P2PWSCProvisionDiscoveryRes[ ] = { @@ -3991,7 +4067,7 @@ tANI_U32 dot11fUnpackIeP2PWSCProvisionDiscoveryRes(tpAniSirGlobal pCtx, tANI_U8 return status; } /* End dot11fUnpackIeP2PWSCProvisionDiscoveryRes. */ -#define SigIeP2PWSCProvisionDiscoveryRes ( 0x0052 ) +#define SigIeP2PWSCProvisionDiscoveryRes ( 0x0054 ) tANI_U32 dot11fUnpackIePTIControl(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEPTIControl *pDst) @@ -4008,27 +4084,27 @@ tANI_U32 dot11fUnpackIePTIControl(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ie return status; } /* End dot11fUnpackIePTIControl. */ -#define SigIePTIControl ( 0x0053 ) +#define SigIePTIControl ( 0x0055 ) tANI_U32 dot11fUnpackIePUBufferStatus(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEPUBufferStatus *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp52__; + tANI_U8 tmp55__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp52__ = *pBuf; - pDst->ac_bk_traffic_aval = tmp52__ >> 0 & 0x1; - pDst->ac_be_traffic_aval = tmp52__ >> 1 & 0x1; - pDst->ac_vi_traffic_aval = tmp52__ >> 2 & 0x1; - pDst->ac_vo_traffic_aval = tmp52__ >> 3 & 0x1; - pDst->reserved = tmp52__ >> 4 & 0xf; + tmp55__ = *pBuf; + pDst->ac_bk_traffic_aval = tmp55__ >> 0 & 0x1; + pDst->ac_be_traffic_aval = tmp55__ >> 1 & 0x1; + pDst->ac_vi_traffic_aval = tmp55__ >> 2 & 0x1; + pDst->ac_vo_traffic_aval = tmp55__ >> 3 & 0x1; + pDst->reserved = tmp55__ >> 4 & 0xf; (void)pCtx; return status; } /* End dot11fUnpackIePUBufferStatus. */ -#define SigIePUBufferStatus ( 0x0054 ) +#define SigIePUBufferStatus ( 0x0056 ) tANI_U32 dot11fUnpackIePowerCaps(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEPowerCaps *pDst) @@ -4045,7 +4121,7 @@ tANI_U32 dot11fUnpackIePowerCaps(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIePowerCaps. */ -#define SigIePowerCaps ( 0x0055 ) +#define SigIePowerCaps ( 0x0057 ) tANI_U32 dot11fUnpackIePowerConstraints(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEPowerConstraints *pDst) @@ -4059,7 +4135,7 @@ tANI_U32 dot11fUnpackIePowerConstraints(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI return status; } /* End dot11fUnpackIePowerConstraints. */ -#define SigIePowerConstraints ( 0x0056 ) +#define SigIePowerConstraints ( 0x0058 ) tANI_U32 dot11fUnpackIeQBSSLoad(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEQBSSLoad *pDst) @@ -4079,7 +4155,7 @@ tANI_U32 dot11fUnpackIeQBSSLoad(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iele return status; } /* End dot11fUnpackIeQBSSLoad. */ -#define SigIeQBSSLoad ( 0x0057 ) +#define SigIeQBSSLoad ( 0x0059 ) tANI_U32 dot11fUnpackIeQComVendorIE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEQComVendorIE *pDst) @@ -4096,49 +4172,49 @@ tANI_U32 dot11fUnpackIeQComVendorIE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeQComVendorIE. */ -#define SigIeQComVendorIE ( 0x0058 ) +#define SigIeQComVendorIE ( 0x005a ) tANI_U32 dot11fUnpackIeQOSCapsAp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEQOSCapsAp *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp53__; + tANI_U8 tmp56__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp53__ = *pBuf; - pDst->count = tmp53__ >> 0 & 0xf; - pDst->qack = tmp53__ >> 4 & 0x1; - pDst->qreq = tmp53__ >> 5 & 0x1; - pDst->txopreq = tmp53__ >> 6 & 0x1; - pDst->reserved = tmp53__ >> 7 & 0x1; + tmp56__ = *pBuf; + pDst->count = tmp56__ >> 0 & 0xf; + pDst->qack = tmp56__ >> 4 & 0x1; + pDst->qreq = tmp56__ >> 5 & 0x1; + pDst->txopreq = tmp56__ >> 6 & 0x1; + pDst->reserved = tmp56__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11fUnpackIeQOSCapsAp. */ -#define SigIeQOSCapsAp ( 0x0059 ) +#define SigIeQOSCapsAp ( 0x005b ) tANI_U32 dot11fUnpackIeQOSCapsStation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEQOSCapsStation *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U8 tmp54__; + tANI_U8 tmp57__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp54__ = *pBuf; - pDst->acvo_uapsd = tmp54__ >> 0 & 0x1; - pDst->acvi_uapsd = tmp54__ >> 1 & 0x1; - pDst->acbk_uapsd = tmp54__ >> 2 & 0x1; - pDst->acbe_uapsd = tmp54__ >> 3 & 0x1; - pDst->qack = tmp54__ >> 4 & 0x1; - pDst->max_sp_length = tmp54__ >> 5 & 0x3; - pDst->more_data_ack = tmp54__ >> 7 & 0x1; + tmp57__ = *pBuf; + pDst->acvo_uapsd = tmp57__ >> 0 & 0x1; + pDst->acvi_uapsd = tmp57__ >> 1 & 0x1; + pDst->acbk_uapsd = tmp57__ >> 2 & 0x1; + pDst->acbe_uapsd = tmp57__ >> 3 & 0x1; + pDst->qack = tmp57__ >> 4 & 0x1; + pDst->max_sp_length = tmp57__ >> 5 & 0x3; + pDst->more_data_ack = tmp57__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11fUnpackIeQOSCapsStation. */ -#define SigIeQOSCapsStation ( 0x005a ) +#define SigIeQOSCapsStation ( 0x005c ) tANI_U32 dot11fUnpackIeQosMapSet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEQosMapSet *pDst) @@ -4158,7 +4234,7 @@ tANI_U32 dot11fUnpackIeQosMapSet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeQosMapSet. */ -#define SigIeQosMapSet ( 0x005b ) +#define SigIeQosMapSet ( 0x005d ) tANI_U32 dot11fUnpackIeQuiet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEQuiet *pDst) @@ -4181,7 +4257,7 @@ tANI_U32 dot11fUnpackIeQuiet(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, return status; } /* End dot11fUnpackIeQuiet. */ -#define SigIeQuiet ( 0x005c ) +#define SigIeQuiet ( 0x005e ) tANI_U32 dot11fUnpackIeRCPIIE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIERCPIIE *pDst) @@ -4195,7 +4271,7 @@ tANI_U32 dot11fUnpackIeRCPIIE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, return status; } /* End dot11fUnpackIeRCPIIE. */ -#define SigIeRCPIIE ( 0x005d ) +#define SigIeRCPIIE ( 0x005f ) static const tFFDefn FFS_RICDataDesc[ ] = { @@ -4235,7 +4311,7 @@ tANI_U32 dot11fUnpackIeRICDataDesc(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeRICDataDesc. */ -#define SigIeRICDataDesc ( 0x005e ) +#define SigIeRICDataDesc ( 0x0060 ) tANI_U32 dot11fUnpackIeRSN(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIERSN *pDst) @@ -4338,7 +4414,7 @@ tANI_U32 dot11fUnpackIeRSN(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tD return status; } /* End dot11fUnpackIeRSN. */ -#define SigIeRSN ( 0x005f ) +#define SigIeRSN ( 0x0061 ) tANI_U32 dot11fUnpackIeRSNIIE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIERSNIIE *pDst) @@ -4352,7 +4428,7 @@ tANI_U32 dot11fUnpackIeRSNIIE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, return status; } /* End dot11fUnpackIeRSNIIE. */ -#define SigIeRSNIIE ( 0x0060 ) +#define SigIeRSNIIE ( 0x0062 ) tANI_U32 dot11fUnpackIeRSNOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIERSNOpaque *pDst) @@ -4372,7 +4448,7 @@ tANI_U32 dot11fUnpackIeRSNOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeRSNOpaque. */ -#define SigIeRSNOpaque ( 0x0061 ) +#define SigIeRSNOpaque ( 0x0063 ) tANI_U32 dot11fUnpackIeSuppChannels(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIESuppChannels *pDst) @@ -4392,7 +4468,7 @@ tANI_U32 dot11fUnpackIeSuppChannels(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeSuppChannels. */ -#define SigIeSuppChannels ( 0x0062 ) +#define SigIeSuppChannels ( 0x0064 ) tANI_U32 dot11fUnpackIeSuppOperatingClasses(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIESuppOperatingClasses *pDst) @@ -4412,7 +4488,7 @@ tANI_U32 dot11fUnpackIeSuppOperatingClasses(tpAniSirGlobal pCtx, tANI_U8 *pBuf, return status; } /* End dot11fUnpackIeSuppOperatingClasses. */ -#define SigIeSuppOperatingClasses ( 0x0063 ) +#define SigIeSuppOperatingClasses ( 0x0065 ) tANI_U32 dot11fUnpackIeSuppRates(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIESuppRates *pDst) @@ -4440,7 +4516,7 @@ tANI_U32 dot11fUnpackIeSuppRates(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeSuppRates. */ -#define SigIeSuppRates ( 0x0064 ) +#define SigIeSuppRates ( 0x0066 ) tANI_U32 dot11fUnpackIeTIM(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIETIM *pDst) @@ -4469,7 +4545,7 @@ tANI_U32 dot11fUnpackIeTIM(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tD return status; } /* End dot11fUnpackIeTIM. */ -#define SigIeTIM ( 0x0065 ) +#define SigIeTIM ( 0x0067 ) tANI_U32 dot11fUnpackIeTPCReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIETPCReport *pDst) @@ -4486,7 +4562,7 @@ tANI_U32 dot11fUnpackIeTPCReport(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeTPCReport. */ -#define SigIeTPCReport ( 0x0066 ) +#define SigIeTPCReport ( 0x0068 ) tANI_U32 dot11fUnpackIeTPCRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIETPCRequest *pDst) @@ -4499,7 +4575,7 @@ tANI_U32 dot11fUnpackIeTPCRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ie return status; } /* End dot11fUnpackIeTPCRequest. */ -#define SigIeTPCRequest ( 0x0067 ) +#define SigIeTPCRequest ( 0x0069 ) tANI_U32 dot11fUnpackIeTimeAdvertisement(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIETimeAdvertisement *pDst) @@ -4519,7 +4595,7 @@ tANI_U32 dot11fUnpackIeTimeAdvertisement(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tAN return status; } /* End dot11fUnpackIeTimeAdvertisement. */ -#define SigIeTimeAdvertisement ( 0x0068 ) +#define SigIeTimeAdvertisement ( 0x006a ) tANI_U32 dot11fUnpackIeTimeoutInterval(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIETimeoutInterval *pDst) @@ -4536,60 +4612,7 @@ tANI_U32 dot11fUnpackIeTimeoutInterval(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_ return status; } /* End dot11fUnpackIeTimeoutInterval. */ -#define SigIeTimeoutInterval ( 0x0069 ) - - -tANI_U32 dot11fUnpackIeVHTCaps(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEVHTCaps *pDst) -{ - tANI_U32 status = DOT11F_PARSE_SUCCESS; - tANI_U32 tmp55__; - tANI_U16 tmp56__; - tANI_U16 tmp57__; - (void) pBuf; (void)ielen; /* Shutup the compiler */ - if (pDst->present) status = DOT11F_DUPLICATE_IE; - pDst->present = 1; - framesntohl(pCtx, &tmp55__, pBuf, 0); - pBuf += 4; - ielen -= 4; - pDst->maxMPDULen = tmp55__ >> 0 & 0x3; - pDst->supportedChannelWidthSet = tmp55__ >> 2 & 0x3; - pDst->ldpcCodingCap = tmp55__ >> 4 & 0x1; - pDst->shortGI80MHz = tmp55__ >> 5 & 0x1; - pDst->shortGI160and80plus80MHz = tmp55__ >> 6 & 0x1; - pDst->txSTBC = tmp55__ >> 7 & 0x1; - pDst->rxSTBC = tmp55__ >> 8 & 0x7; - pDst->suBeamFormerCap = tmp55__ >> 11 & 0x1; - pDst->suBeamformeeCap = tmp55__ >> 12 & 0x1; - pDst->csnofBeamformerAntSup = tmp55__ >> 13 & 0x7; - pDst->numSoundingDim = tmp55__ >> 16 & 0x7; - pDst->muBeamformerCap = tmp55__ >> 19 & 0x1; - pDst->muBeamformeeCap = tmp55__ >> 20 & 0x1; - pDst->vhtTXOPPS = tmp55__ >> 21 & 0x1; - pDst->htcVHTCap = tmp55__ >> 22 & 0x1; - pDst->maxAMPDULenExp = tmp55__ >> 23 & 0x7; - pDst->vhtLinkAdaptCap = tmp55__ >> 26 & 0x3; - pDst->rxAntPattern = tmp55__ >> 28 & 0x1; - pDst->txAntPattern = tmp55__ >> 29 & 0x1; - pDst->reserved1 = tmp55__ >> 30 & 0x3; - framesntohs(pCtx, &pDst->rxMCSMap, pBuf, 0); - pBuf += 2; - ielen -= (tANI_U8)2; - framesntohs(pCtx, &tmp56__, pBuf, 0); - pBuf += 2; - ielen -= 2; - pDst->rxHighSupDataRate = tmp56__ >> 0 & 0x1fff; - pDst->reserved2 = tmp56__ >> 13 & 0x7; - framesntohs(pCtx, &pDst->txMCSMap, pBuf, 0); - pBuf += 2; - ielen -= (tANI_U8)2; - framesntohs(pCtx, &tmp57__, pBuf, 0); - pDst->txSupDataRate = tmp57__ >> 0 & 0x1fff; - pDst->reserved3 = tmp57__ >> 13 & 0x7; - (void)pCtx; - return status; -} /* End dot11fUnpackIeVHTCaps. */ - -#define SigIeVHTCaps ( 0x006a ) +#define SigIeTimeoutInterval ( 0x006b ) tANI_U32 dot11fUnpackIeVHTExtBssLoad(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEVHTExtBssLoad *pDst) @@ -4615,30 +4638,7 @@ tANI_U32 dot11fUnpackIeVHTExtBssLoad(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeVHTExtBssLoad. */ -#define SigIeVHTExtBssLoad ( 0x006b ) - - -tANI_U32 dot11fUnpackIeVHTOperation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEVHTOperation *pDst) -{ - tANI_U32 status = DOT11F_PARSE_SUCCESS; - (void) pBuf; (void)ielen; /* Shutup the compiler */ - if (pDst->present) status = DOT11F_DUPLICATE_IE; - pDst->present = 1; - pDst->chanWidth = *pBuf; - pBuf += 1; - ielen -= (tANI_U8)1; - pDst->chanCenterFreqSeg1 = *pBuf; - pBuf += 1; - ielen -= (tANI_U8)1; - pDst->chanCenterFreqSeg2 = *pBuf; - pBuf += 1; - ielen -= (tANI_U8)1; - framesntohs(pCtx, &pDst->basicMCSSet, pBuf, 0); - (void)pCtx; - return status; -} /* End dot11fUnpackIeVHTOperation. */ - -#define SigIeVHTOperation ( 0x006c ) +#define SigIeVHTExtBssLoad ( 0x006c ) tANI_U32 dot11fUnpackIeVendor1IE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEVendor1IE *pDst) @@ -4654,19 +4654,6 @@ tANI_U32 dot11fUnpackIeVendor1IE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel #define SigIeVendor1IE ( 0x006d ) -tANI_U32 dot11fUnpackIeVendor2IE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEVendor2IE *pDst) -{ - tANI_U32 status = DOT11F_PARSE_SUCCESS; - (void) pBuf; (void)ielen; /* Shutup the compiler */ - if (pDst->present) status = DOT11F_DUPLICATE_IE; - pDst->present = 1; - (void)pCtx; - return status; -} /* End dot11fUnpackIeVendor2IE. */ - -#define SigIeVendor2IE ( 0x006e ) - - tANI_U32 dot11fUnpackIeVendor3IE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEVendor3IE *pDst) { tANI_U32 status = DOT11F_PARSE_SUCCESS; @@ -4677,7 +4664,7 @@ tANI_U32 dot11fUnpackIeVendor3IE(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeVendor3IE. */ -#define SigIeVendor3IE ( 0x006f ) +#define SigIeVendor3IE ( 0x006e ) tANI_U32 dot11fUnpackIeWAPI(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWAPI *pDst) @@ -4746,7 +4733,7 @@ tANI_U32 dot11fUnpackIeWAPI(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, t return status; } /* End dot11fUnpackIeWAPI. */ -#define SigIeWAPI ( 0x0070 ) +#define SigIeWAPI ( 0x006f ) tANI_U32 dot11fUnpackIeWAPIOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWAPIOpaque *pDst) @@ -4766,7 +4753,7 @@ tANI_U32 dot11fUnpackIeWAPIOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ie return status; } /* End dot11fUnpackIeWAPIOpaque. */ -#define SigIeWAPIOpaque ( 0x0071 ) +#define SigIeWAPIOpaque ( 0x0070 ) tANI_U32 dot11fUnpackIeWFATPC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWFATPC *pDst) @@ -4783,7 +4770,7 @@ tANI_U32 dot11fUnpackIeWFATPC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, return status; } /* End dot11fUnpackIeWFATPC. */ -#define SigIeWFATPC ( 0x0072 ) +#define SigIeWFATPC ( 0x0071 ) tANI_U32 dot11fUnpackIeWFDIEOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWFDIEOpaque *pDst) @@ -4803,7 +4790,7 @@ tANI_U32 dot11fUnpackIeWFDIEOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeWFDIEOpaque. */ -#define SigIeWFDIEOpaque ( 0x0073 ) +#define SigIeWFDIEOpaque ( 0x0072 ) tANI_U32 dot11fUnpackIeWMMCaps(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMCaps *pDst) @@ -4831,7 +4818,7 @@ tANI_U32 dot11fUnpackIeWMMCaps(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen return status; } /* End dot11fUnpackIeWMMCaps. */ -#define SigIeWMMCaps ( 0x0074 ) +#define SigIeWMMCaps ( 0x0073 ) tANI_U32 dot11fUnpackIeWMMInfoAp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMInfoAp *pDst) @@ -4852,7 +4839,7 @@ tANI_U32 dot11fUnpackIeWMMInfoAp(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeWMMInfoAp. */ -#define SigIeWMMInfoAp ( 0x0075 ) +#define SigIeWMMInfoAp ( 0x0074 ) tANI_U32 dot11fUnpackIeWMMInfoStation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMInfoStation *pDst) @@ -4877,7 +4864,7 @@ tANI_U32 dot11fUnpackIeWMMInfoStation(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U return status; } /* End dot11fUnpackIeWMMInfoStation. */ -#define SigIeWMMInfoStation ( 0x0076 ) +#define SigIeWMMInfoStation ( 0x0075 ) tANI_U32 dot11fUnpackIeWMMParams(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWMMParams *pDst) @@ -4970,7 +4957,7 @@ tANI_U32 dot11fUnpackIeWMMParams(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeWMMParams. */ -#define SigIeWMMParams ( 0x0077 ) +#define SigIeWMMParams ( 0x0076 ) tANI_U32 dot11fUnpackIeWPA(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWPA *pDst) @@ -5052,7 +5039,7 @@ tANI_U32 dot11fUnpackIeWPA(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tD return status; } /* End dot11fUnpackIeWPA. */ -#define SigIeWPA ( 0x0078 ) +#define SigIeWPA ( 0x0077 ) tANI_U32 dot11fUnpackIeWPAOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWPAOpaque *pDst) @@ -5072,7 +5059,7 @@ tANI_U32 dot11fUnpackIeWPAOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeWPAOpaque. */ -#define SigIeWPAOpaque ( 0x0079 ) +#define SigIeWPAOpaque ( 0x0078 ) static const tTLVDefn TLVS_WSC[ ] = { @@ -5110,7 +5097,7 @@ tANI_U32 dot11fUnpackIeWSC(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tD return status; } /* End dot11fUnpackIeWSC. */ -#define SigIeWSC ( 0x007a ) +#define SigIeWSC ( 0x0079 ) static const tTLVDefn TLVS_WscAssocReq[ ] = { @@ -5129,7 +5116,7 @@ tANI_U32 dot11fUnpackIeWscAssocReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeWscAssocReq. */ -#define SigIeWscAssocReq ( 0x007b ) +#define SigIeWscAssocReq ( 0x007a ) static const tTLVDefn TLVS_WscAssocRes[ ] = { @@ -5148,7 +5135,7 @@ tANI_U32 dot11fUnpackIeWscAssocRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeWscAssocRes. */ -#define SigIeWscAssocRes ( 0x007c ) +#define SigIeWscAssocRes ( 0x007b ) static const tTLVDefn TLVS_WscBeacon[ ] = { @@ -5173,7 +5160,7 @@ tANI_U32 dot11fUnpackIeWscBeacon(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 iel return status; } /* End dot11fUnpackIeWscBeacon. */ -#define SigIeWscBeacon ( 0x007d ) +#define SigIeWscBeacon ( 0x007c ) static const tTLVDefn TLVS_WscBeaconProbeRes[ ] = { @@ -5206,7 +5193,7 @@ tANI_U32 dot11fUnpackIeWscBeaconProbeRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tAN return status; } /* End dot11fUnpackIeWscBeaconProbeRes. */ -#define SigIeWscBeaconProbeRes ( 0x007e ) +#define SigIeWscBeaconProbeRes ( 0x007d ) tANI_U32 dot11fUnpackIeWscIEOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEWscIEOpaque *pDst) @@ -5226,7 +5213,7 @@ tANI_U32 dot11fUnpackIeWscIEOpaque(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeWscIEOpaque. */ -#define SigIeWscIEOpaque ( 0x007f ) +#define SigIeWscIEOpaque ( 0x007e ) static const tTLVDefn TLVS_WscProbeReq[ ] = { @@ -5257,7 +5244,7 @@ tANI_U32 dot11fUnpackIeWscProbeReq(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeWscProbeReq. */ -#define SigIeWscProbeReq ( 0x0080 ) +#define SigIeWscProbeReq ( 0x007f ) static const tTLVDefn TLVS_WscProbeRes[ ] = { @@ -5290,7 +5277,7 @@ tANI_U32 dot11fUnpackIeWscProbeRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 i return status; } /* End dot11fUnpackIeWscProbeRes. */ -#define SigIeWscProbeRes ( 0x0081 ) +#define SigIeWscProbeRes ( 0x0080 ) static const tTLVDefn TLVS_WscReassocRes[ ] = { @@ -5309,7 +5296,7 @@ tANI_U32 dot11fUnpackIeWscReassocRes(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 return status; } /* End dot11fUnpackIeWscReassocRes. */ -#define SigIeWscReassocRes ( 0x0082 ) +#define SigIeWscReassocRes ( 0x0081 ) tANI_U32 dot11fUnpackIeext_chan_switch_ann(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEext_chan_switch_ann *pDst) @@ -5332,7 +5319,7 @@ tANI_U32 dot11fUnpackIeext_chan_switch_ann(tpAniSirGlobal pCtx, tANI_U8 *pBuf, t return status; } /* End dot11fUnpackIeext_chan_switch_ann. */ -#define SigIeext_chan_switch_ann ( 0x0083 ) +#define SigIeext_chan_switch_ann ( 0x0082 ) tANI_U32 dot11fUnpackIesec_chan_offset_ele(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEsec_chan_offset_ele *pDst) @@ -5346,7 +5333,43 @@ tANI_U32 dot11fUnpackIesec_chan_offset_ele(tpAniSirGlobal pCtx, tANI_U8 *pBuf, t return status; } /* End dot11fUnpackIesec_chan_offset_ele. */ -#define SigIesec_chan_offset_ele ( 0x0084 ) +#define SigIesec_chan_offset_ele ( 0x0083 ) + + + static const tFFDefn FFS_vendor2_ie[ ] = { + { NULL, 0, 0, 0,}, + }; + + static const tIEDefn IES_vendor2_ie[ ] = { + {offsetof(tDot11fIEvendor2_ie, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps" , 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, 0, DOT11F_EID_VHTCAPS, 0, }, + {offsetof(tDot11fIEvendor2_ie, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation" , 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, 0, DOT11F_EID_VHTOPERATION, 0, }, + {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, + }; + +tANI_U32 dot11fUnpackIevendor2_ie(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U8 ielen, tDot11fIEvendor2_ie *pDst) +{ + tANI_U32 status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + pDst->type = *pBuf; + pBuf += 1; + ielen -= (tANI_U8)1; + pDst->sub_type = *pBuf; + pBuf += 1; + ielen -= (tANI_U8)1; + (void)pCtx; + status |= UnpackCore(pCtx, + pBuf, + ielen, + FFS_vendor2_ie, + IES_vendor2_ie, + ( tANI_U8* )pDst, + sizeof(*pDst)); + return status; +} /* End dot11fUnpackIevendor2_ie. */ + +#define SigIevendor2_ie ( 0x0084 ) static const tFFDefn FFS_AddBAReq[] = { @@ -6006,6 +6029,7 @@ tANI_U32 dot11fUnpackAddTSResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 {offsetof(tDot11fAssocRequest, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap" , 0, 10, 11, SigIeExtCap, {0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, }, {offsetof(tDot11fAssocRequest, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode" , 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, 0, DOT11F_EID_OPERATINGMODE, 0, }, {offsetof(tDot11fAssocRequest, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet" , 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QOSMAPSET, 0, }, + {offsetof(tDot11fAssocRequest, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; tANI_U32 dot11fUnpackAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocRequest *pFrm) @@ -6407,6 +6431,62 @@ tANI_U32 dot11fUnpackAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 n FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("num_dscp_exceptions: %d.\n"), pFrm->QosMapSet.num_dscp_exceptions); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* ) pFrm->QosMapSet.dscp_exceptions, pFrm->QosMapSet.num_dscp_exceptions); } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } + } } # endif // DOT11F_DUMP_FRAMES return status; @@ -6447,6 +6527,7 @@ tANI_U32 dot11fUnpackAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 n {offsetof(tDot11fAssocResponse, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap" , 0, 10, 11, SigIeExtCap, {0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, }, {offsetof(tDot11fAssocResponse, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters" , 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, {offsetof(tDot11fAssocResponse, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet" , 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QOSMAPSET, 0, }, + {offsetof(tDot11fAssocResponse, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; tANI_U32 dot11fUnpackAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fAssocResponse *pFrm) @@ -7342,6 +7423,62 @@ tANI_U32 dot11fUnpackAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("num_dscp_exceptions: %d.\n"), pFrm->QosMapSet.num_dscp_exceptions); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* ) pFrm->QosMapSet.dscp_exceptions, pFrm->QosMapSet.num_dscp_exceptions); } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } + } } # endif // DOT11F_DUMP_FRAMES return status; @@ -7811,7 +7948,7 @@ tANI_U32 dot11fUnpackAuthentication(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 {offsetof(tDot11fBeacon, WiderBWChanSwitchAnn), offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn" , 0, 5, 5, SigIeWiderBWChanSwitchAnn, {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, }, {offsetof(tDot11fBeacon, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters" , 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, {offsetof(tDot11fBeacon, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE" , 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, 3, DOT11F_EID_VENDOR1IE, 0, }, - {offsetof(tDot11fBeacon, Vendor2IE), offsetof(tDot11fIEVendor2IE, present), 0, "Vendor2IE" , 0, 5, 5, SigIeVendor2IE, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2IE, 0, }, + {offsetof(tDot11fBeacon, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {offsetof(tDot11fBeacon, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE" , 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, 3, DOT11F_EID_VENDOR3IE, 0, }, {offsetof(tDot11fBeacon, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, "ChannelSwitchWrapper" , 0, 2, 7, SigIeChannelSwitchWrapper, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, }, {offsetof(tDot11fBeacon, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE" , 0, 7, 7, SigIeQComVendorIE, {0, 160, 198, 0, 0}, 3, DOT11F_EID_QCOMVENDORIE, 0, }, @@ -8687,13 +8824,61 @@ tANI_U32 dot11fUnpackBeacon(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, t else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -8879,7 +9064,7 @@ tANI_U32 dot11fUnpackBeacon1(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, {offsetof(tDot11fBeacon2, WiderBWChanSwitchAnn), offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn" , 0, 5, 5, SigIeWiderBWChanSwitchAnn, {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, }, {offsetof(tDot11fBeacon2, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters" , 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, {offsetof(tDot11fBeacon2, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE" , 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, 3, DOT11F_EID_VENDOR1IE, 0, }, - {offsetof(tDot11fBeacon2, Vendor2IE), offsetof(tDot11fIEVendor2IE, present), 0, "Vendor2IE" , 0, 5, 5, SigIeVendor2IE, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2IE, 0, }, + {offsetof(tDot11fBeacon2, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {offsetof(tDot11fBeacon2, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE" , 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, 3, DOT11F_EID_VENDOR3IE, 0, }, {offsetof(tDot11fBeacon2, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, "ChannelSwitchWrapper" , 0, 2, 7, SigIeChannelSwitchWrapper, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, }, {offsetof(tDot11fBeacon2, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE" , 0, 7, 7, SigIeQComVendorIE, {0, 160, 198, 0, 0}, 3, DOT11F_EID_QCOMVENDORIE, 0, }, @@ -9603,13 +9788,61 @@ tANI_U32 dot11fUnpackBeacon2(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -9715,7 +9948,7 @@ tANI_U32 dot11fUnpackBeacon2(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, {offsetof(tDot11fBeaconIEs, WiderBWChanSwitchAnn), offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn" , 0, 5, 5, SigIeWiderBWChanSwitchAnn, {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, }, {offsetof(tDot11fBeaconIEs, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters" , 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, {offsetof(tDot11fBeaconIEs, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE" , 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, 3, DOT11F_EID_VENDOR1IE, 0, }, - {offsetof(tDot11fBeaconIEs, Vendor2IE), offsetof(tDot11fIEVendor2IE, present), 0, "Vendor2IE" , 0, 5, 5, SigIeVendor2IE, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2IE, 0, }, + {offsetof(tDot11fBeaconIEs, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {offsetof(tDot11fBeaconIEs, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE" , 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, 3, DOT11F_EID_VENDOR3IE, 0, }, {offsetof(tDot11fBeaconIEs, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, "ChannelSwitchWrapper" , 0, 2, 7, SigIeChannelSwitchWrapper, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, }, {offsetof(tDot11fBeaconIEs, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE" , 0, 7, 7, SigIeQComVendorIE, {0, 160, 198, 0, 0}, 3, DOT11F_EID_QCOMVENDORIE, 0, }, @@ -10698,13 +10931,61 @@ tANI_U32 dot11fUnpackBeaconIEs(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -13091,7 +13372,7 @@ tANI_U32 dot11fUnpackProbeRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 n {offsetof(tDot11fProbeResponse, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap" , 0, 10, 11, SigIeExtCap, {0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, }, {offsetof(tDot11fProbeResponse, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters" , 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, {offsetof(tDot11fProbeResponse, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE" , 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, 3, DOT11F_EID_VENDOR1IE, 0, }, - {offsetof(tDot11fProbeResponse, Vendor2IE), offsetof(tDot11fIEVendor2IE, present), 0, "Vendor2IE" , 0, 5, 5, SigIeVendor2IE, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2IE, 0, }, + {offsetof(tDot11fProbeResponse, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {offsetof(tDot11fProbeResponse, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE" , 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, 3, DOT11F_EID_VENDOR3IE, 0, }, {offsetof(tDot11fProbeResponse, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, "ChannelSwitchWrapper" , 0, 2, 7, SigIeChannelSwitchWrapper, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, }, {offsetof(tDot11fProbeResponse, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE" , 0, 7, 7, SigIeQComVendorIE, {0, 160, 198, 0, 0}, 3, DOT11F_EID_QCOMVENDORIE, 0, }, @@ -14021,13 +14302,61 @@ tANI_U32 dot11fUnpackProbeResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -14495,6 +14824,7 @@ tANI_U32 dot11fUnpackRadioMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, {offsetof(tDot11fReAssocRequest, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap" , 0, 10, 11, SigIeExtCap, {0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, }, {offsetof(tDot11fReAssocRequest, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode" , 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, 0, DOT11F_EID_OPERATINGMODE, 0, }, {offsetof(tDot11fReAssocRequest, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet" , 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QOSMAPSET, 0, }, + {offsetof(tDot11fReAssocRequest, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; tANI_U32 dot11fUnpackReAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocRequest *pFrm) @@ -15283,6 +15613,62 @@ tANI_U32 dot11fUnpackReAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("num_dscp_exceptions: %d.\n"), pFrm->QosMapSet.num_dscp_exceptions); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* ) pFrm->QosMapSet.dscp_exceptions, pFrm->QosMapSet.num_dscp_exceptions); } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } + } } # endif // DOT11F_DUMP_FRAMES return status; @@ -15324,6 +15710,7 @@ tANI_U32 dot11fUnpackReAssocRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 {offsetof(tDot11fReAssocResponse, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap" , 0, 10, 11, SigIeExtCap, {0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, }, {offsetof(tDot11fReAssocResponse, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters" , 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, {offsetof(tDot11fReAssocResponse, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet" , 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QOSMAPSET, 0, }, + {offsetof(tDot11fReAssocResponse, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; tANI_U32 dot11fUnpackReAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBuf, tDot11fReAssocResponse *pFrm) @@ -16226,6 +16613,62 @@ tANI_U32 dot11fUnpackReAssocResponse(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U3 FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("num_dscp_exceptions: %d.\n"), pFrm->QosMapSet.num_dscp_exceptions); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* ) pFrm->QosMapSet.dscp_exceptions, pFrm->QosMapSet.num_dscp_exceptions); } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } + } } # endif // DOT11F_DUMP_FRAMES return status; @@ -18100,7 +18543,7 @@ tANI_U32 dot11fUnpackTPCRequest(tpAniSirGlobal pCtx, tANI_U8 *pBuf, tANI_U32 nBu {offsetof(tDot11fTimingAdvertisementFrame, TimeAdvertisement), offsetof(tDot11fIETimeAdvertisement, present), 0, "TimeAdvertisement" , 0, 18, 18, SigIeTimeAdvertisement, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TIMEADVERTISEMENT, 0, }, {offsetof(tDot11fTimingAdvertisementFrame, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap" , 0, 10, 11, SigIeExtCap, {0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, }, {offsetof(tDot11fTimingAdvertisementFrame, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE" , 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, 3, DOT11F_EID_VENDOR1IE, 0, }, - {offsetof(tDot11fTimingAdvertisementFrame, Vendor2IE), offsetof(tDot11fIEVendor2IE, present), 0, "Vendor2IE" , 0, 5, 5, SigIeVendor2IE, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2IE, 0, }, + {offsetof(tDot11fTimingAdvertisementFrame, vendor2_ie), offsetof(tDot11fIEvendor2_ie, present), 0, "vendor2_ie" , 0, 7, 28, SigIevendor2_ie, {0, 144, 76, 0, 0}, 3, DOT11F_EID_VENDOR2_IE, 0, }, {offsetof(tDot11fTimingAdvertisementFrame, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE" , 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, 3, DOT11F_EID_VENDOR3IE, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; @@ -18185,13 +18628,61 @@ tANI_U32 dot11fUnpackTimingAdvertisementFrame(tpAniSirGlobal pCtx, tANI_U8 *pBuf else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -18848,6 +19339,12 @@ static tANI_U32 UnpackCore(tpAniSirGlobal pCtx, case SigIeTSPEC: status |= dot11fUnpackIeTSPEC(pCtx, pBufRemaining, len, ( tDot11fIETSPEC* )(pFrm + pIe->offset + sizeof(tDot11fIETSPEC)*countOffset) ); break; + case SigIeVHTCaps: + status |= dot11fUnpackIeVHTCaps(pCtx, pBufRemaining, len, ( tDot11fIEVHTCaps* )(pFrm + pIe->offset + sizeof(tDot11fIEVHTCaps)*countOffset) ); + break; + case SigIeVHTOperation: + status |= dot11fUnpackIeVHTOperation(pCtx, pBufRemaining, len, ( tDot11fIEVHTOperation* )(pFrm + pIe->offset + sizeof(tDot11fIEVHTOperation)*countOffset) ); + break; case SigIeWMMSchedule: status |= dot11fUnpackIeWMMSchedule(pCtx, pBufRemaining, len, ( tDot11fIEWMMSchedule* )(pFrm + pIe->offset + sizeof(tDot11fIEWMMSchedule)*countOffset) ); break; @@ -19113,21 +19610,12 @@ static tANI_U32 UnpackCore(tpAniSirGlobal pCtx, case SigIeTimeoutInterval: status |= dot11fUnpackIeTimeoutInterval(pCtx, pBufRemaining, len, ( tDot11fIETimeoutInterval* )(pFrm + pIe->offset + sizeof(tDot11fIETimeoutInterval)*countOffset) ); break; - case SigIeVHTCaps: - status |= dot11fUnpackIeVHTCaps(pCtx, pBufRemaining, len, ( tDot11fIEVHTCaps* )(pFrm + pIe->offset + sizeof(tDot11fIEVHTCaps)*countOffset) ); - break; case SigIeVHTExtBssLoad: status |= dot11fUnpackIeVHTExtBssLoad(pCtx, pBufRemaining, len, ( tDot11fIEVHTExtBssLoad* )(pFrm + pIe->offset + sizeof(tDot11fIEVHTExtBssLoad)*countOffset) ); break; - case SigIeVHTOperation: - status |= dot11fUnpackIeVHTOperation(pCtx, pBufRemaining, len, ( tDot11fIEVHTOperation* )(pFrm + pIe->offset + sizeof(tDot11fIEVHTOperation)*countOffset) ); - break; case SigIeVendor1IE: status |= dot11fUnpackIeVendor1IE(pCtx, pBufRemaining, len, ( tDot11fIEVendor1IE* )(pFrm + pIe->offset + sizeof(tDot11fIEVendor1IE)*countOffset) ); break; - case SigIeVendor2IE: - status |= dot11fUnpackIeVendor2IE(pCtx, pBufRemaining, len, ( tDot11fIEVendor2IE* )(pFrm + pIe->offset + sizeof(tDot11fIEVendor2IE)*countOffset) ); - break; case SigIeVendor3IE: status |= dot11fUnpackIeVendor3IE(pCtx, pBufRemaining, len, ( tDot11fIEVendor3IE* )(pFrm + pIe->offset + sizeof(tDot11fIEVendor3IE)*countOffset) ); break; @@ -19194,6 +19682,9 @@ static tANI_U32 UnpackCore(tpAniSirGlobal pCtx, case SigIesec_chan_offset_ele: status |= dot11fUnpackIesec_chan_offset_ele(pCtx, pBufRemaining, len, ( tDot11fIEsec_chan_offset_ele* )(pFrm + pIe->offset + sizeof(tDot11fIEsec_chan_offset_ele)*countOffset) ); break; + case SigIevendor2_ie: + status |= dot11fUnpackIevendor2_ie(pCtx, pBufRemaining, len, ( tDot11fIEvendor2_ie* )(pFrm + pIe->offset + sizeof(tDot11fIEvendor2_ie)*countOffset) ); + break; default: FRAMES_LOG1(pCtx, FRLOGE, FRFL("INTERNAL ERROR" ": I don't know about the IE signature %d" @@ -20319,6 +20810,20 @@ tANI_U32 dot11fGetPackedIEWscReassocRes(tpAniSirGlobal pCtx, tDot11fIEWscReassoc return status; } /* End dot11fGetPackedIEWscReassocRes. */ +tANI_U32 dot11fGetPackedIEvendor2_ie(tpAniSirGlobal pCtx, tDot11fIEvendor2_ie *pIe, tANI_U32 *pnNeeded) +{ + tANI_U32 status = DOT11F_PARSE_SUCCESS; + (void)pCtx; + while ( pIe->present ) + { + *pnNeeded += 1; + *pnNeeded += 1; + status = GetPackedSizeCore(pCtx, ( tANI_U8* )pIe, pnNeeded, IES_vendor2_ie); + break; + } + return status; +} /* End dot11fGetPackedIEvendor2_ie. */ + tANI_U32 dot11fGetPackedAddBAReqSize(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U32 *pnNeeded) { tANI_U32 status = 0; @@ -20964,6 +21469,16 @@ static tANI_U32 GetPackedSizeCore(tpAniSirGlobal pCtx, byteCount = 55; pIePresent = ( (tDot11fIETSPEC* )(pFrm + pIe->offset + offset * i ))->present; break; + case SigIeVHTCaps: + offset = sizeof(tDot11fIEVHTCaps); + byteCount = 12; + pIePresent = ( (tDot11fIEVHTCaps* )(pFrm + pIe->offset + offset * i ))->present; + break; + case SigIeVHTOperation: + offset = sizeof(tDot11fIEVHTOperation); + byteCount = 5; + pIePresent = ( (tDot11fIEVHTOperation* )(pFrm + pIe->offset + offset * i ))->present; + break; case SigIeWMMSchedule: offset = sizeof(tDot11fIEWMMSchedule); byteCount = 15; @@ -21351,31 +21866,16 @@ static tANI_U32 GetPackedSizeCore(tpAniSirGlobal pCtx, byteCount = 5; pIePresent = ( (tDot11fIETimeoutInterval* )(pFrm + pIe->offset + offset * i ))->present; break; - case SigIeVHTCaps: - offset = sizeof(tDot11fIEVHTCaps); - byteCount = 12; - pIePresent = ( (tDot11fIEVHTCaps* )(pFrm + pIe->offset + offset * i ))->present; - break; case SigIeVHTExtBssLoad: offset = sizeof(tDot11fIEVHTExtBssLoad); byteCount = 5; pIePresent = ( (tDot11fIEVHTExtBssLoad* )(pFrm + pIe->offset + offset * i ))->present; break; - case SigIeVHTOperation: - offset = sizeof(tDot11fIEVHTOperation); - byteCount = 5; - pIePresent = ( (tDot11fIEVHTOperation* )(pFrm + pIe->offset + offset * i ))->present; - break; case SigIeVendor1IE: offset = sizeof(tDot11fIEVendor1IE); byteCount = 0; pIePresent = ( (tDot11fIEVendor1IE* )(pFrm + pIe->offset + offset * i ))->present; break; - case SigIeVendor2IE: - offset = sizeof(tDot11fIEVendor2IE); - byteCount = 0; - pIePresent = ( (tDot11fIEVendor2IE* )(pFrm + pIe->offset + offset * i ))->present; - break; case SigIeVendor3IE: offset = sizeof(tDot11fIEVendor3IE); byteCount = 0; @@ -21476,6 +21976,10 @@ static tANI_U32 GetPackedSizeCore(tpAniSirGlobal pCtx, byteCount = 1; pIePresent = ( (tDot11fIEsec_chan_offset_ele* )(pFrm + pIe->offset + offset * i ))->present; break; + case SigIevendor2_ie: + offset = sizeof(tDot11fIEvendor2_ie); + status |= dot11fGetPackedIEvendor2_ie(pCtx, ( tDot11fIEvendor2_ie* )(pFrm + pIe->offset + offset * i ), pnNeeded); + break; default: FRAMES_LOG1(pCtx, FRLOGE, FRFL("INTERNAL ERROR-- I don" "'t know about the IE signature %d; this is most l" @@ -24400,6 +24904,120 @@ tANI_U32 dot11fPackIeTSPEC(tpAniSirGlobal pCtx, return DOT11F_PARSE_SUCCESS; } /* End dot11fPackIeTSPEC. */ +tANI_U32 dot11fPackIeVHTCaps(tpAniSirGlobal pCtx, + tDot11fIEVHTCaps *pSrc, + tANI_U8 *pBuf, + tANI_U32 nBuf, + tANI_U32 *pnConsumed) +{ + tANI_U8* pIeLen = 0; + tANI_U32 nConsumedOnEntry = *pnConsumed; + tANI_U32 nNeeded = 0U; + tANI_U32 tmp90__; + tANI_U16 tmp91__; + tANI_U16 tmp92__; + nNeeded += 12; + while ( pSrc->present ) + { + if ( nNeeded > nBuf ) return DOT11F_BUFFER_OVERFLOW; + *pBuf = 191; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + tmp90__ = 0U; + tmp90__ |= ( pSrc->maxMPDULen << 0 ); + tmp90__ |= ( pSrc->supportedChannelWidthSet << 2 ); + tmp90__ |= ( pSrc->ldpcCodingCap << 4 ); + tmp90__ |= ( pSrc->shortGI80MHz << 5 ); + tmp90__ |= ( pSrc->shortGI160and80plus80MHz << 6 ); + tmp90__ |= ( pSrc->txSTBC << 7 ); + tmp90__ |= ( pSrc->rxSTBC << 8 ); + tmp90__ |= ( pSrc->suBeamFormerCap << 11 ); + tmp90__ |= ( pSrc->suBeamformeeCap << 12 ); + tmp90__ |= ( pSrc->csnofBeamformerAntSup << 13 ); + tmp90__ |= ( pSrc->numSoundingDim << 16 ); + tmp90__ |= ( pSrc->muBeamformerCap << 19 ); + tmp90__ |= ( pSrc->muBeamformeeCap << 20 ); + tmp90__ |= ( pSrc->vhtTXOPPS << 21 ); + tmp90__ |= ( pSrc->htcVHTCap << 22 ); + tmp90__ |= ( pSrc->maxAMPDULenExp << 23 ); + tmp90__ |= ( pSrc->vhtLinkAdaptCap << 26 ); + tmp90__ |= ( pSrc->rxAntPattern << 28 ); + tmp90__ |= ( pSrc->txAntPattern << 29 ); + tmp90__ |= ( pSrc->reserved1 << 30 ); + frameshtonl(pCtx, pBuf, tmp90__, 0); + *pnConsumed += 4; + pBuf += 4; + nBuf -= 4 ; + frameshtons(pCtx, pBuf, pSrc->rxMCSMap, 0); + *pnConsumed += 2; + pBuf += 2; + tmp91__ = 0U; + tmp91__ |= ( pSrc->rxHighSupDataRate << 0 ); + tmp91__ |= ( pSrc->reserved2 << 13 ); + frameshtons(pCtx, pBuf, tmp91__, 0); + *pnConsumed += 2; + pBuf += 2; + nBuf -= 2 ; + frameshtons(pCtx, pBuf, pSrc->txMCSMap, 0); + *pnConsumed += 2; + pBuf += 2; + tmp92__ = 0U; + tmp92__ |= ( pSrc->txSupDataRate << 0 ); + tmp92__ |= ( pSrc->reserved3 << 13 ); + frameshtons(pCtx, pBuf, tmp92__, 0); + *pnConsumed += 2; + // fieldsEndFlag = 1 + nBuf -= 2 ; + break; + } + (void)pCtx; + if (pIeLen) + { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11fPackIeVHTCaps. */ + +tANI_U32 dot11fPackIeVHTOperation(tpAniSirGlobal pCtx, + tDot11fIEVHTOperation *pSrc, + tANI_U8 *pBuf, + tANI_U32 nBuf, + tANI_U32 *pnConsumed) +{ + tANI_U8* pIeLen = 0; + tANI_U32 nConsumedOnEntry = *pnConsumed; + tANI_U32 nNeeded = 0U; + nNeeded += 5; + while ( pSrc->present ) + { + if ( nNeeded > nBuf ) return DOT11F_BUFFER_OVERFLOW; + *pBuf = 192; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = pSrc->chanWidth; + *pnConsumed += 1; + pBuf += 1; + *pBuf = pSrc->chanCenterFreqSeg1; + *pnConsumed += 1; + pBuf += 1; + *pBuf = pSrc->chanCenterFreqSeg2; + *pnConsumed += 1; + pBuf += 1; + frameshtons(pCtx, pBuf, pSrc->basicMCSSet, 0); + *pnConsumed += 2; + // fieldsEndFlag = 1 + break; + } + (void)pCtx; + if (pIeLen) + { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11fPackIeVHTOperation. */ + tANI_U32 dot11fPackIeWMMSchedule(tpAniSirGlobal pCtx, tDot11fIEWMMSchedule *pSrc, tANI_U8 *pBuf, @@ -24409,7 +25027,7 @@ tANI_U32 dot11fPackIeWMMSchedule(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U16 tmp90__; + tANI_U16 tmp93__; nNeeded += 15; while ( pSrc->present ) { @@ -24431,12 +25049,12 @@ tANI_U32 dot11fPackIeWMMSchedule(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp90__ = 0U; - tmp90__ |= ( pSrc->aggregation << 0 ); - tmp90__ |= ( pSrc->tsid << 1 ); - tmp90__ |= ( pSrc->direction << 5 ); - tmp90__ |= ( pSrc->reserved << 7 ); - frameshtons(pCtx, pBuf, tmp90__, 0); + tmp93__ = 0U; + tmp93__ |= ( pSrc->aggregation << 0 ); + tmp93__ |= ( pSrc->tsid << 1 ); + tmp93__ |= ( pSrc->direction << 5 ); + tmp93__ |= ( pSrc->reserved << 7 ); + frameshtons(pCtx, pBuf, tmp93__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -24675,9 +25293,9 @@ tANI_U32 dot11fPackIeWMMTSPEC(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U16 tmp91__; - tANI_U8 tmp92__; - tANI_U16 tmp93__; + tANI_U16 tmp94__; + tANI_U8 tmp95__; + tANI_U16 tmp96__; nNeeded += 38; while ( pSrc->present ) { @@ -24699,30 +25317,30 @@ tANI_U32 dot11fPackIeWMMTSPEC(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp91__ = 0U; - tmp91__ |= ( pSrc->traffic_type << 0 ); - tmp91__ |= ( pSrc->tsid << 1 ); - tmp91__ |= ( pSrc->direction << 5 ); - tmp91__ |= ( pSrc->access_policy << 7 ); - tmp91__ |= ( pSrc->aggregation << 9 ); - tmp91__ |= ( pSrc->psb << 10 ); - tmp91__ |= ( pSrc->user_priority << 11 ); - tmp91__ |= ( pSrc->tsinfo_ack_pol << 14 ); - frameshtons(pCtx, pBuf, tmp91__, 0); + tmp94__ = 0U; + tmp94__ |= ( pSrc->traffic_type << 0 ); + tmp94__ |= ( pSrc->tsid << 1 ); + tmp94__ |= ( pSrc->direction << 5 ); + tmp94__ |= ( pSrc->access_policy << 7 ); + tmp94__ |= ( pSrc->aggregation << 9 ); + tmp94__ |= ( pSrc->psb << 10 ); + tmp94__ |= ( pSrc->user_priority << 11 ); + tmp94__ |= ( pSrc->tsinfo_ack_pol << 14 ); + frameshtons(pCtx, pBuf, tmp94__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp92__ = 0U; - tmp92__ |= ( pSrc->tsinfo_rsvd << 0 ); - tmp92__ |= ( pSrc->burst_size_defn << 7 ); - *pBuf = tmp92__; + tmp95__ = 0U; + tmp95__ |= ( pSrc->tsinfo_rsvd << 0 ); + tmp95__ |= ( pSrc->burst_size_defn << 7 ); + *pBuf = tmp95__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp93__ = 0U; - tmp93__ |= ( pSrc->size << 0 ); - tmp93__ |= ( pSrc->fixed << 15 ); - frameshtons(pCtx, pBuf, tmp93__, 0); + tmp96__ = 0U; + tmp96__ |= ( pSrc->size << 0 ); + tmp96__ |= ( pSrc->fixed << 15 ); + frameshtons(pCtx, pBuf, tmp96__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -25062,14 +25680,14 @@ tANI_U32 dot11fPackIeEDCAParamSet(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp94__; - tANI_U8 tmp95__; - tANI_U8 tmp96__; tANI_U8 tmp97__; tANI_U8 tmp98__; tANI_U8 tmp99__; tANI_U8 tmp100__; tANI_U8 tmp101__; + tANI_U8 tmp102__; + tANI_U8 tmp103__; + tANI_U8 tmp104__; nNeeded += 18; while ( pSrc->present ) { @@ -25084,76 +25702,76 @@ tANI_U32 dot11fPackIeEDCAParamSet(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved; *pnConsumed += 1; pBuf += 1; - tmp94__ = 0U; - tmp94__ |= ( pSrc->acbe_aifsn << 0 ); - tmp94__ |= ( pSrc->acbe_acm << 4 ); - tmp94__ |= ( pSrc->acbe_aci << 5 ); - tmp94__ |= ( pSrc->unused1 << 7 ); - *pBuf = tmp94__; + tmp97__ = 0U; + tmp97__ |= ( pSrc->acbe_aifsn << 0 ); + tmp97__ |= ( pSrc->acbe_acm << 4 ); + tmp97__ |= ( pSrc->acbe_aci << 5 ); + tmp97__ |= ( pSrc->unused1 << 7 ); + *pBuf = tmp97__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp95__ = 0U; - tmp95__ |= ( pSrc->acbe_acwmin << 0 ); - tmp95__ |= ( pSrc->acbe_acwmax << 4 ); - *pBuf = tmp95__; + tmp98__ = 0U; + tmp98__ |= ( pSrc->acbe_acwmin << 0 ); + tmp98__ |= ( pSrc->acbe_acwmax << 4 ); + *pBuf = tmp98__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp96__ = 0U; - tmp96__ |= ( pSrc->acbk_aifsn << 0 ); - tmp96__ |= ( pSrc->acbk_acm << 4 ); - tmp96__ |= ( pSrc->acbk_aci << 5 ); - tmp96__ |= ( pSrc->unused2 << 7 ); - *pBuf = tmp96__; + tmp99__ = 0U; + tmp99__ |= ( pSrc->acbk_aifsn << 0 ); + tmp99__ |= ( pSrc->acbk_acm << 4 ); + tmp99__ |= ( pSrc->acbk_aci << 5 ); + tmp99__ |= ( pSrc->unused2 << 7 ); + *pBuf = tmp99__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp97__ = 0U; - tmp97__ |= ( pSrc->acbk_acwmin << 0 ); - tmp97__ |= ( pSrc->acbk_acwmax << 4 ); - *pBuf = tmp97__; + tmp100__ = 0U; + tmp100__ |= ( pSrc->acbk_acwmin << 0 ); + tmp100__ |= ( pSrc->acbk_acwmax << 4 ); + *pBuf = tmp100__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp98__ = 0U; - tmp98__ |= ( pSrc->acvi_aifsn << 0 ); - tmp98__ |= ( pSrc->acvi_acm << 4 ); - tmp98__ |= ( pSrc->acvi_aci << 5 ); - tmp98__ |= ( pSrc->unused3 << 7 ); - *pBuf = tmp98__; + tmp101__ = 0U; + tmp101__ |= ( pSrc->acvi_aifsn << 0 ); + tmp101__ |= ( pSrc->acvi_acm << 4 ); + tmp101__ |= ( pSrc->acvi_aci << 5 ); + tmp101__ |= ( pSrc->unused3 << 7 ); + *pBuf = tmp101__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp99__ = 0U; - tmp99__ |= ( pSrc->acvi_acwmin << 0 ); - tmp99__ |= ( pSrc->acvi_acwmax << 4 ); - *pBuf = tmp99__; + tmp102__ = 0U; + tmp102__ |= ( pSrc->acvi_acwmin << 0 ); + tmp102__ |= ( pSrc->acvi_acwmax << 4 ); + *pBuf = tmp102__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp100__ = 0U; - tmp100__ |= ( pSrc->acvo_aifsn << 0 ); - tmp100__ |= ( pSrc->acvo_acm << 4 ); - tmp100__ |= ( pSrc->acvo_aci << 5 ); - tmp100__ |= ( pSrc->unused4 << 7 ); - *pBuf = tmp100__; + tmp103__ = 0U; + tmp103__ |= ( pSrc->acvo_aifsn << 0 ); + tmp103__ |= ( pSrc->acvo_acm << 4 ); + tmp103__ |= ( pSrc->acvo_aci << 5 ); + tmp103__ |= ( pSrc->unused4 << 7 ); + *pBuf = tmp103__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp101__ = 0U; - tmp101__ |= ( pSrc->acvo_acwmin << 0 ); - tmp101__ |= ( pSrc->acvo_acwmax << 4 ); - *pBuf = tmp101__; + tmp104__ = 0U; + tmp104__ |= ( pSrc->acvo_acwmin << 0 ); + tmp104__ |= ( pSrc->acvo_acwmax << 4 ); + *pBuf = tmp104__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -25179,7 +25797,7 @@ tANI_U32 dot11fPackIeERPInfo(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp102__; + tANI_U8 tmp105__; nNeeded += 1; while ( pSrc->present ) { @@ -25188,12 +25806,12 @@ tANI_U32 dot11fPackIeERPInfo(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp102__ = 0U; - tmp102__ |= ( pSrc->non_erp_present << 0 ); - tmp102__ |= ( pSrc->use_prot << 1 ); - tmp102__ |= ( pSrc->barker_preamble << 2 ); - tmp102__ |= ( pSrc->unused << 3 ); - *pBuf = tmp102__; + tmp105__ = 0U; + tmp105__ |= ( pSrc->non_erp_present << 0 ); + tmp105__ |= ( pSrc->use_prot << 1 ); + tmp105__ |= ( pSrc->barker_preamble << 2 ); + tmp105__ |= ( pSrc->unused << 3 ); + *pBuf = tmp105__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -25254,7 +25872,7 @@ tANI_U32 dot11fPackIeESERadMgmtCap(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp103__; + tANI_U8 tmp106__; nNeeded += 2; while ( pSrc->present ) { @@ -25274,10 +25892,10 @@ tANI_U32 dot11fPackIeESERadMgmtCap(tpAniSirGlobal pCtx, *pBuf = pSrc->mgmt_state; *pnConsumed += 1; pBuf += 1; - tmp103__ = 0U; - tmp103__ |= ( pSrc->mbssid_mask << 0 ); - tmp103__ |= ( pSrc->reserved << 3 ); - *pBuf = tmp103__; + tmp106__ = 0U; + tmp106__ |= ( pSrc->mbssid_mask << 0 ); + tmp106__ |= ( pSrc->reserved << 3 ); + *pBuf = tmp106__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -25638,7 +26256,7 @@ tANI_U32 dot11fPackIeFTInfo(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U16 tmp104__; + tANI_U16 tmp107__; tANI_U32 status = DOT11F_PARSE_SUCCESS; status = dot11fGetPackedIEFTInfo(pCtx, pSrc, &nNeeded); if ( ! DOT11F_SUCCEEDED( status ) ) return status; @@ -25649,10 +26267,10 @@ tANI_U32 dot11fPackIeFTInfo(tpAniSirGlobal pCtx, ++pBuf; --nBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; --nBuf; ++(*pnConsumed); - tmp104__ = 0U; - tmp104__ |= ( pSrc->reserved << 0 ); - tmp104__ |= ( pSrc->IECount << 8 ); - frameshtons(pCtx, pBuf, tmp104__, 0); + tmp107__ = 0U; + tmp107__ |= ( pSrc->reserved << 0 ); + tmp107__ |= ( pSrc->IECount << 8 ); + frameshtons(pCtx, pBuf, tmp107__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -25691,7 +26309,7 @@ tANI_U32 dot11fPackIeHT2040BSSCoexistence(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp105__; + tANI_U8 tmp108__; nNeeded += 1; while ( pSrc->present ) { @@ -25700,14 +26318,14 @@ tANI_U32 dot11fPackIeHT2040BSSCoexistence(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp105__ = 0U; - tmp105__ |= ( pSrc->infoRequest << 0 ); - tmp105__ |= ( pSrc->fortyMHzIntolerant << 1 ); - tmp105__ |= ( pSrc->twentyMHzBssWidthReq << 2 ); - tmp105__ |= ( pSrc->obssScanExemptionReq << 3 ); - tmp105__ |= ( pSrc->obssScanExemptionGrant << 4 ); - tmp105__ |= ( pSrc->unused << 5 ); - *pBuf = tmp105__; + tmp108__ = 0U; + tmp108__ |= ( pSrc->infoRequest << 0 ); + tmp108__ |= ( pSrc->fortyMHzIntolerant << 1 ); + tmp108__ |= ( pSrc->twentyMHzBssWidthReq << 2 ); + tmp108__ |= ( pSrc->obssScanExemptionReq << 3 ); + tmp108__ |= ( pSrc->obssScanExemptionGrant << 4 ); + tmp108__ |= ( pSrc->unused << 5 ); + *pBuf = tmp108__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -25763,11 +26381,11 @@ tANI_U32 dot11fPackIeHTCaps(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U16 tmp106__; - tANI_U8 tmp107__; - tANI_U16 tmp108__; - tANI_U32 tmp109__; + tANI_U16 tmp109__; tANI_U8 tmp110__; + tANI_U16 tmp111__; + tANI_U32 tmp112__; + tANI_U8 tmp113__; nNeeded += (pSrc->num_rsvd + 26); while ( pSrc->present ) { @@ -25776,77 +26394,77 @@ tANI_U32 dot11fPackIeHTCaps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp106__ = 0U; - tmp106__ |= ( pSrc->advCodingCap << 0 ); - tmp106__ |= ( pSrc->supportedChannelWidthSet << 1 ); - tmp106__ |= ( pSrc->mimoPowerSave << 2 ); - tmp106__ |= ( pSrc->greenField << 4 ); - tmp106__ |= ( pSrc->shortGI20MHz << 5 ); - tmp106__ |= ( pSrc->shortGI40MHz << 6 ); - tmp106__ |= ( pSrc->txSTBC << 7 ); - tmp106__ |= ( pSrc->rxSTBC << 8 ); - tmp106__ |= ( pSrc->delayedBA << 10 ); - tmp106__ |= ( pSrc->maximalAMSDUsize << 11 ); - tmp106__ |= ( pSrc->dsssCckMode40MHz << 12 ); - tmp106__ |= ( pSrc->psmp << 13 ); - tmp106__ |= ( pSrc->stbcControlFrame << 14 ); - tmp106__ |= ( pSrc->lsigTXOPProtection << 15 ); - frameshtons(pCtx, pBuf, tmp106__, 0); + tmp109__ = 0U; + tmp109__ |= ( pSrc->advCodingCap << 0 ); + tmp109__ |= ( pSrc->supportedChannelWidthSet << 1 ); + tmp109__ |= ( pSrc->mimoPowerSave << 2 ); + tmp109__ |= ( pSrc->greenField << 4 ); + tmp109__ |= ( pSrc->shortGI20MHz << 5 ); + tmp109__ |= ( pSrc->shortGI40MHz << 6 ); + tmp109__ |= ( pSrc->txSTBC << 7 ); + tmp109__ |= ( pSrc->rxSTBC << 8 ); + tmp109__ |= ( pSrc->delayedBA << 10 ); + tmp109__ |= ( pSrc->maximalAMSDUsize << 11 ); + tmp109__ |= ( pSrc->dsssCckMode40MHz << 12 ); + tmp109__ |= ( pSrc->psmp << 13 ); + tmp109__ |= ( pSrc->stbcControlFrame << 14 ); + tmp109__ |= ( pSrc->lsigTXOPProtection << 15 ); + frameshtons(pCtx, pBuf, tmp109__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp107__ = 0U; - tmp107__ |= ( pSrc->maxRxAMPDUFactor << 0 ); - tmp107__ |= ( pSrc->mpduDensity << 2 ); - tmp107__ |= ( pSrc->reserved1 << 5 ); - *pBuf = tmp107__; + tmp110__ = 0U; + tmp110__ |= ( pSrc->maxRxAMPDUFactor << 0 ); + tmp110__ |= ( pSrc->mpduDensity << 2 ); + tmp110__ |= ( pSrc->reserved1 << 5 ); + *pBuf = tmp110__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; DOT11F_MEMCPY(pCtx, pBuf, pSrc->supportedMCSSet, 16); *pnConsumed += 16; pBuf += 16; - tmp108__ = 0U; - tmp108__ |= ( pSrc->pco << 0 ); - tmp108__ |= ( pSrc->transitionTime << 1 ); - tmp108__ |= ( pSrc->reserved2 << 3 ); - tmp108__ |= ( pSrc->mcsFeedback << 8 ); - tmp108__ |= ( pSrc->reserved3 << 10 ); - frameshtons(pCtx, pBuf, tmp108__, 0); + tmp111__ = 0U; + tmp111__ |= ( pSrc->pco << 0 ); + tmp111__ |= ( pSrc->transitionTime << 1 ); + tmp111__ |= ( pSrc->reserved2 << 3 ); + tmp111__ |= ( pSrc->mcsFeedback << 8 ); + tmp111__ |= ( pSrc->reserved3 << 10 ); + frameshtons(pCtx, pBuf, tmp111__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp109__ = 0U; - tmp109__ |= ( pSrc->txBF << 0 ); - tmp109__ |= ( pSrc->rxStaggeredSounding << 1 ); - tmp109__ |= ( pSrc->txStaggeredSounding << 2 ); - tmp109__ |= ( pSrc->rxZLF << 3 ); - tmp109__ |= ( pSrc->txZLF << 4 ); - tmp109__ |= ( pSrc->implicitTxBF << 5 ); - tmp109__ |= ( pSrc->calibration << 6 ); - tmp109__ |= ( pSrc->explicitCSITxBF << 8 ); - tmp109__ |= ( pSrc->explicitUncompressedSteeringMatrix << 9 ); - tmp109__ |= ( pSrc->explicitBFCSIFeedback << 10 ); - tmp109__ |= ( pSrc->explicitUncompressedSteeringMatrixFeedback << 13 ); - tmp109__ |= ( pSrc->explicitCompressedSteeringMatrixFeedback << 16 ); - tmp109__ |= ( pSrc->csiNumBFAntennae << 19 ); - tmp109__ |= ( pSrc->uncompressedSteeringMatrixBFAntennae << 21 ); - tmp109__ |= ( pSrc->compressedSteeringMatrixBFAntennae << 23 ); - tmp109__ |= ( pSrc->reserved4 << 25 ); - frameshtonl(pCtx, pBuf, tmp109__, 0); + tmp112__ = 0U; + tmp112__ |= ( pSrc->txBF << 0 ); + tmp112__ |= ( pSrc->rxStaggeredSounding << 1 ); + tmp112__ |= ( pSrc->txStaggeredSounding << 2 ); + tmp112__ |= ( pSrc->rxZLF << 3 ); + tmp112__ |= ( pSrc->txZLF << 4 ); + tmp112__ |= ( pSrc->implicitTxBF << 5 ); + tmp112__ |= ( pSrc->calibration << 6 ); + tmp112__ |= ( pSrc->explicitCSITxBF << 8 ); + tmp112__ |= ( pSrc->explicitUncompressedSteeringMatrix << 9 ); + tmp112__ |= ( pSrc->explicitBFCSIFeedback << 10 ); + tmp112__ |= ( pSrc->explicitUncompressedSteeringMatrixFeedback << 13 ); + tmp112__ |= ( pSrc->explicitCompressedSteeringMatrixFeedback << 16 ); + tmp112__ |= ( pSrc->csiNumBFAntennae << 19 ); + tmp112__ |= ( pSrc->uncompressedSteeringMatrixBFAntennae << 21 ); + tmp112__ |= ( pSrc->compressedSteeringMatrixBFAntennae << 23 ); + tmp112__ |= ( pSrc->reserved4 << 25 ); + frameshtonl(pCtx, pBuf, tmp112__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; - tmp110__ = 0U; - tmp110__ |= ( pSrc->antennaSelection << 0 ); - tmp110__ |= ( pSrc->explicitCSIFeedbackTx << 1 ); - tmp110__ |= ( pSrc->antennaIndicesFeedbackTx << 2 ); - tmp110__ |= ( pSrc->explicitCSIFeedback << 3 ); - tmp110__ |= ( pSrc->antennaIndicesFeedback << 4 ); - tmp110__ |= ( pSrc->rxAS << 5 ); - tmp110__ |= ( pSrc->txSoundingPPDUs << 6 ); - tmp110__ |= ( pSrc->reserved5 << 7 ); - *pBuf = tmp110__; + tmp113__ = 0U; + tmp113__ |= ( pSrc->antennaSelection << 0 ); + tmp113__ |= ( pSrc->explicitCSIFeedbackTx << 1 ); + tmp113__ |= ( pSrc->antennaIndicesFeedbackTx << 2 ); + tmp113__ |= ( pSrc->explicitCSIFeedback << 3 ); + tmp113__ |= ( pSrc->antennaIndicesFeedback << 4 ); + tmp113__ |= ( pSrc->rxAS << 5 ); + tmp113__ |= ( pSrc->txSoundingPPDUs << 6 ); + tmp113__ |= ( pSrc->reserved5 << 7 ); + *pBuf = tmp113__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -25872,9 +26490,9 @@ tANI_U32 dot11fPackIeHTInfo(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp111__; - tANI_U16 tmp112__; - tANI_U16 tmp113__; + tANI_U8 tmp114__; + tANI_U16 tmp115__; + tANI_U16 tmp116__; nNeeded += (pSrc->num_rsvd + 22); while ( pSrc->present ) { @@ -25886,35 +26504,35 @@ tANI_U32 dot11fPackIeHTInfo(tpAniSirGlobal pCtx, *pBuf = pSrc->primaryChannel; *pnConsumed += 1; pBuf += 1; - tmp111__ = 0U; - tmp111__ |= ( pSrc->secondaryChannelOffset << 0 ); - tmp111__ |= ( pSrc->recommendedTxWidthSet << 2 ); - tmp111__ |= ( pSrc->rifsMode << 3 ); - tmp111__ |= ( pSrc->controlledAccessOnly << 4 ); - tmp111__ |= ( pSrc->serviceIntervalGranularity << 5 ); - *pBuf = tmp111__; + tmp114__ = 0U; + tmp114__ |= ( pSrc->secondaryChannelOffset << 0 ); + tmp114__ |= ( pSrc->recommendedTxWidthSet << 2 ); + tmp114__ |= ( pSrc->rifsMode << 3 ); + tmp114__ |= ( pSrc->controlledAccessOnly << 4 ); + tmp114__ |= ( pSrc->serviceIntervalGranularity << 5 ); + *pBuf = tmp114__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp112__ = 0U; - tmp112__ |= ( pSrc->opMode << 0 ); - tmp112__ |= ( pSrc->nonGFDevicesPresent << 2 ); - tmp112__ |= ( pSrc->transmitBurstLimit << 3 ); - tmp112__ |= ( pSrc->obssNonHTStaPresent << 4 ); - tmp112__ |= ( pSrc->reserved << 5 ); - frameshtons(pCtx, pBuf, tmp112__, 0); + tmp115__ = 0U; + tmp115__ |= ( pSrc->opMode << 0 ); + tmp115__ |= ( pSrc->nonGFDevicesPresent << 2 ); + tmp115__ |= ( pSrc->transmitBurstLimit << 3 ); + tmp115__ |= ( pSrc->obssNonHTStaPresent << 4 ); + tmp115__ |= ( pSrc->reserved << 5 ); + frameshtons(pCtx, pBuf, tmp115__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp113__ = 0U; - tmp113__ |= ( pSrc->basicSTBCMCS << 0 ); - tmp113__ |= ( pSrc->dualCTSProtection << 7 ); - tmp113__ |= ( pSrc->secondaryBeacon << 8 ); - tmp113__ |= ( pSrc->lsigTXOPProtectionFullSupport << 9 ); - tmp113__ |= ( pSrc->pcoActive << 10 ); - tmp113__ |= ( pSrc->pcoPhase << 11 ); - tmp113__ |= ( pSrc->reserved2 << 12 ); - frameshtons(pCtx, pBuf, tmp113__, 0); + tmp116__ = 0U; + tmp116__ |= ( pSrc->basicSTBCMCS << 0 ); + tmp116__ |= ( pSrc->dualCTSProtection << 7 ); + tmp116__ |= ( pSrc->secondaryBeacon << 8 ); + tmp116__ |= ( pSrc->lsigTXOPProtectionFullSupport << 9 ); + tmp116__ |= ( pSrc->pcoActive << 10 ); + tmp116__ |= ( pSrc->pcoPhase << 11 ); + tmp116__ |= ( pSrc->reserved2 << 12 ); + frameshtons(pCtx, pBuf, tmp116__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -26009,9 +26627,9 @@ tANI_U32 dot11fPackIeMeasurementReport(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp114__; - tANI_U8 tmp115__; - tANI_U8 tmp116__; + tANI_U8 tmp117__; + tANI_U8 tmp118__; + tANI_U8 tmp119__; tANI_U32 status = DOT11F_PARSE_SUCCESS; status = dot11fGetPackedIEMeasurementReport(pCtx, pSrc, &nNeeded); if ( ! DOT11F_SUCCEEDED( status ) ) return status; @@ -26025,12 +26643,12 @@ tANI_U32 dot11fPackIeMeasurementReport(tpAniSirGlobal pCtx, *pBuf = pSrc->token; *pnConsumed += 1; pBuf += 1; - tmp114__ = 0U; - tmp114__ |= ( pSrc->late << 0 ); - tmp114__ |= ( pSrc->incapable << 1 ); - tmp114__ |= ( pSrc->refused << 2 ); - tmp114__ |= ( pSrc->unused << 3 ); - *pBuf = tmp114__; + tmp117__ = 0U; + tmp117__ |= ( pSrc->late << 0 ); + tmp117__ |= ( pSrc->incapable << 1 ); + tmp117__ |= ( pSrc->refused << 2 ); + tmp117__ |= ( pSrc->unused << 3 ); + *pBuf = tmp117__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -26050,14 +26668,14 @@ tANI_U32 dot11fPackIeMeasurementReport(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Basic.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp115__ = 0U; - tmp115__ |= ( pSrc->report.Basic.bss << 0 ); - tmp115__ |= ( pSrc->report.Basic.ofdm_preamble << 1 ); - tmp115__ |= ( pSrc->report.Basic.unid_signal << 2 ); - tmp115__ |= ( pSrc->report.Basic.rader << 3 ); - tmp115__ |= ( pSrc->report.Basic.unmeasured << 4 ); - tmp115__ |= ( pSrc->report.Basic.unused << 5 ); - *pBuf = tmp115__; + tmp118__ = 0U; + tmp118__ |= ( pSrc->report.Basic.bss << 0 ); + tmp118__ |= ( pSrc->report.Basic.ofdm_preamble << 1 ); + tmp118__ |= ( pSrc->report.Basic.unid_signal << 2 ); + tmp118__ |= ( pSrc->report.Basic.rader << 3 ); + tmp118__ |= ( pSrc->report.Basic.unmeasured << 4 ); + tmp118__ |= ( pSrc->report.Basic.unused << 5 ); + *pBuf = tmp118__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -26124,10 +26742,10 @@ tANI_U32 dot11fPackIeMeasurementReport(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Beacon.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp116__ = 0U; - tmp116__ |= ( pSrc->report.Beacon.condensed_PHY << 0 ); - tmp116__ |= ( pSrc->report.Beacon.reported_frame_type << 7 ); - *pBuf = tmp116__; + tmp119__ = 0U; + tmp119__ |= ( pSrc->report.Beacon.condensed_PHY << 0 ); + tmp119__ |= ( pSrc->report.Beacon.reported_frame_type << 7 ); + *pBuf = tmp119__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -26176,7 +26794,7 @@ tANI_U32 dot11fPackIeMeasurementRequest(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp117__; + tANI_U8 tmp120__; tANI_U32 status = DOT11F_PARSE_SUCCESS; status = dot11fGetPackedIEMeasurementRequest(pCtx, pSrc, &nNeeded); if ( ! DOT11F_SUCCEEDED( status ) ) return status; @@ -26190,14 +26808,14 @@ tANI_U32 dot11fPackIeMeasurementRequest(tpAniSirGlobal pCtx, *pBuf = pSrc->measurement_token; *pnConsumed += 1; pBuf += 1; - tmp117__ = 0U; - tmp117__ |= ( pSrc->parallel << 0 ); - tmp117__ |= ( pSrc->enable << 1 ); - tmp117__ |= ( pSrc->request << 2 ); - tmp117__ |= ( pSrc->report << 3 ); - tmp117__ |= ( pSrc->durationMandatory << 4 ); - tmp117__ |= ( pSrc->unused << 5 ); - *pBuf = tmp117__; + tmp120__ = 0U; + tmp120__ |= ( pSrc->parallel << 0 ); + tmp120__ |= ( pSrc->enable << 1 ); + tmp120__ |= ( pSrc->request << 2 ); + tmp120__ |= ( pSrc->report << 3 ); + tmp120__ |= ( pSrc->durationMandatory << 4 ); + tmp120__ |= ( pSrc->unused << 5 ); + *pBuf = tmp120__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -26286,7 +26904,7 @@ tANI_U32 dot11fPackIeMobilityDomain(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp118__; + tANI_U8 tmp121__; nNeeded += 3; while ( pSrc->present ) { @@ -26298,11 +26916,11 @@ tANI_U32 dot11fPackIeMobilityDomain(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->MDID, 0); *pnConsumed += 2; pBuf += 2; - tmp118__ = 0U; - tmp118__ |= ( pSrc->overDSCap << 0 ); - tmp118__ |= ( pSrc->resourceReqCap << 1 ); - tmp118__ |= ( pSrc->reserved << 2 ); - *pBuf = tmp118__; + tmp121__ = 0U; + tmp121__ |= ( pSrc->overDSCap << 0 ); + tmp121__ |= ( pSrc->resourceReqCap << 1 ); + tmp121__ |= ( pSrc->reserved << 2 ); + *pBuf = tmp121__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -26325,8 +26943,8 @@ tANI_U32 dot11fPackIeNeighborReport(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp119__; - tANI_U8 tmp120__; + tANI_U8 tmp122__; + tANI_U8 tmp123__; tANI_U32 status = DOT11F_PARSE_SUCCESS; status = dot11fGetPackedIENeighborReport(pCtx, pSrc, &nNeeded); if ( ! DOT11F_SUCCEEDED( status ) ) return status; @@ -26340,24 +26958,24 @@ tANI_U32 dot11fPackIeNeighborReport(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->bssid, 6); *pnConsumed += 6; pBuf += 6; - tmp119__ = 0U; - tmp119__ |= ( pSrc->APReachability << 0 ); - tmp119__ |= ( pSrc->Security << 2 ); - tmp119__ |= ( pSrc->KeyScope << 3 ); - tmp119__ |= ( pSrc->SpecMgmtCap << 4 ); - tmp119__ |= ( pSrc->QosCap << 5 ); - tmp119__ |= ( pSrc->apsd << 6 ); - tmp119__ |= ( pSrc->rrm << 7 ); - *pBuf = tmp119__; + tmp122__ = 0U; + tmp122__ |= ( pSrc->APReachability << 0 ); + tmp122__ |= ( pSrc->Security << 2 ); + tmp122__ |= ( pSrc->KeyScope << 3 ); + tmp122__ |= ( pSrc->SpecMgmtCap << 4 ); + tmp122__ |= ( pSrc->QosCap << 5 ); + tmp122__ |= ( pSrc->apsd << 6 ); + tmp122__ |= ( pSrc->rrm << 7 ); + *pBuf = tmp122__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp120__ = 0U; - tmp120__ |= ( pSrc->DelayedBA << 0 ); - tmp120__ |= ( pSrc->ImmBA << 1 ); - tmp120__ |= ( pSrc->MobilityDomain << 2 ); - tmp120__ |= ( pSrc->reserved << 3 ); - *pBuf = tmp120__; + tmp123__ = 0U; + tmp123__ |= ( pSrc->DelayedBA << 0 ); + tmp123__ |= ( pSrc->ImmBA << 1 ); + tmp123__ |= ( pSrc->MobilityDomain << 2 ); + tmp123__ |= ( pSrc->reserved << 3 ); + *pBuf = tmp123__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -26447,7 +27065,7 @@ tANI_U32 dot11fPackIeOperatingMode(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp121__; + tANI_U8 tmp124__; nNeeded += 1; while ( pSrc->present ) { @@ -26456,12 +27074,12 @@ tANI_U32 dot11fPackIeOperatingMode(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp121__ = 0U; - tmp121__ |= ( pSrc->chanWidth << 0 ); - tmp121__ |= ( pSrc->reserved << 2 ); - tmp121__ |= ( pSrc->rxNSS << 4 ); - tmp121__ |= ( pSrc->rxNSSType << 7 ); - *pBuf = tmp121__; + tmp124__ = 0U; + tmp124__ |= ( pSrc->chanWidth << 0 ); + tmp124__ |= ( pSrc->reserved << 2 ); + tmp124__ |= ( pSrc->rxNSS << 4 ); + tmp124__ |= ( pSrc->rxNSSType << 7 ); + *pBuf = tmp124__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -27415,7 +28033,7 @@ tANI_U32 dot11fPackIePUBufferStatus(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp122__; + tANI_U8 tmp125__; nNeeded += 1; while ( pSrc->present ) { @@ -27424,13 +28042,13 @@ tANI_U32 dot11fPackIePUBufferStatus(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp122__ = 0U; - tmp122__ |= ( pSrc->ac_bk_traffic_aval << 0 ); - tmp122__ |= ( pSrc->ac_be_traffic_aval << 1 ); - tmp122__ |= ( pSrc->ac_vi_traffic_aval << 2 ); - tmp122__ |= ( pSrc->ac_vo_traffic_aval << 3 ); - tmp122__ |= ( pSrc->reserved << 4 ); - *pBuf = tmp122__; + tmp125__ = 0U; + tmp125__ |= ( pSrc->ac_bk_traffic_aval << 0 ); + tmp125__ |= ( pSrc->ac_be_traffic_aval << 1 ); + tmp125__ |= ( pSrc->ac_vi_traffic_aval << 2 ); + tmp125__ |= ( pSrc->ac_vo_traffic_aval << 3 ); + tmp125__ |= ( pSrc->reserved << 4 ); + *pBuf = tmp125__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -27591,7 +28209,7 @@ tANI_U32 dot11fPackIeQOSCapsAp(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp123__; + tANI_U8 tmp126__; nNeeded += 1; while ( pSrc->present ) { @@ -27600,13 +28218,13 @@ tANI_U32 dot11fPackIeQOSCapsAp(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp123__ = 0U; - tmp123__ |= ( pSrc->count << 0 ); - tmp123__ |= ( pSrc->qack << 4 ); - tmp123__ |= ( pSrc->qreq << 5 ); - tmp123__ |= ( pSrc->txopreq << 6 ); - tmp123__ |= ( pSrc->reserved << 7 ); - *pBuf = tmp123__; + tmp126__ = 0U; + tmp126__ |= ( pSrc->count << 0 ); + tmp126__ |= ( pSrc->qack << 4 ); + tmp126__ |= ( pSrc->qreq << 5 ); + tmp126__ |= ( pSrc->txopreq << 6 ); + tmp126__ |= ( pSrc->reserved << 7 ); + *pBuf = tmp126__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -27629,7 +28247,7 @@ tANI_U32 dot11fPackIeQOSCapsStation(tpAniSirGlobal pCtx, tANI_U8* pIeLen = 0; tANI_U32 nConsumedOnEntry = *pnConsumed; tANI_U32 nNeeded = 0U; - tANI_U8 tmp124__; + tANI_U8 tmp127__; nNeeded += 1; while ( pSrc->present ) { @@ -27638,15 +28256,15 @@ tANI_U32 dot11fPackIeQOSCapsStation(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp124__ = 0U; - tmp124__ |= ( pSrc->acvo_uapsd << 0 ); - tmp124__ |= ( pSrc->acvi_uapsd << 1 ); - tmp124__ |= ( pSrc->acbk_uapsd << 2 ); - tmp124__ |= ( pSrc->acbe_uapsd << 3 ); - tmp124__ |= ( pSrc->qack << 4 ); - tmp124__ |= ( pSrc->max_sp_length << 5 ); - tmp124__ |= ( pSrc->more_data_ack << 7 ); - *pBuf = tmp124__; + tmp127__ = 0U; + tmp127__ |= ( pSrc->acvo_uapsd << 0 ); + tmp127__ |= ( pSrc->acvi_uapsd << 1 ); + tmp127__ |= ( pSrc->acbk_uapsd << 2 ); + tmp127__ |= ( pSrc->acbe_uapsd << 3 ); + tmp127__ |= ( pSrc->qack << 4 ); + tmp127__ |= ( pSrc->max_sp_length << 5 ); + tmp127__ |= ( pSrc->more_data_ack << 7 ); + *pBuf = tmp127__; *pnConsumed += 1; // fieldsEndFlag = 1 nBuf -= 1 ; @@ -28177,81 +28795,6 @@ tANI_U32 dot11fPackIeTimeoutInterval(tpAniSirGlobal pCtx, return DOT11F_PARSE_SUCCESS; } /* End dot11fPackIeTimeoutInterval. */ -tANI_U32 dot11fPackIeVHTCaps(tpAniSirGlobal pCtx, - tDot11fIEVHTCaps *pSrc, - tANI_U8 *pBuf, - tANI_U32 nBuf, - tANI_U32 *pnConsumed) -{ - tANI_U8* pIeLen = 0; - tANI_U32 nConsumedOnEntry = *pnConsumed; - tANI_U32 nNeeded = 0U; - tANI_U32 tmp125__; - tANI_U16 tmp126__; - tANI_U16 tmp127__; - nNeeded += 12; - while ( pSrc->present ) - { - if ( nNeeded > nBuf ) return DOT11F_BUFFER_OVERFLOW; - *pBuf = 191; - ++pBuf; ++(*pnConsumed); - pIeLen = pBuf; - ++pBuf; ++(*pnConsumed); - tmp125__ = 0U; - tmp125__ |= ( pSrc->maxMPDULen << 0 ); - tmp125__ |= ( pSrc->supportedChannelWidthSet << 2 ); - tmp125__ |= ( pSrc->ldpcCodingCap << 4 ); - tmp125__ |= ( pSrc->shortGI80MHz << 5 ); - tmp125__ |= ( pSrc->shortGI160and80plus80MHz << 6 ); - tmp125__ |= ( pSrc->txSTBC << 7 ); - tmp125__ |= ( pSrc->rxSTBC << 8 ); - tmp125__ |= ( pSrc->suBeamFormerCap << 11 ); - tmp125__ |= ( pSrc->suBeamformeeCap << 12 ); - tmp125__ |= ( pSrc->csnofBeamformerAntSup << 13 ); - tmp125__ |= ( pSrc->numSoundingDim << 16 ); - tmp125__ |= ( pSrc->muBeamformerCap << 19 ); - tmp125__ |= ( pSrc->muBeamformeeCap << 20 ); - tmp125__ |= ( pSrc->vhtTXOPPS << 21 ); - tmp125__ |= ( pSrc->htcVHTCap << 22 ); - tmp125__ |= ( pSrc->maxAMPDULenExp << 23 ); - tmp125__ |= ( pSrc->vhtLinkAdaptCap << 26 ); - tmp125__ |= ( pSrc->rxAntPattern << 28 ); - tmp125__ |= ( pSrc->txAntPattern << 29 ); - tmp125__ |= ( pSrc->reserved1 << 30 ); - frameshtonl(pCtx, pBuf, tmp125__, 0); - *pnConsumed += 4; - pBuf += 4; - nBuf -= 4 ; - frameshtons(pCtx, pBuf, pSrc->rxMCSMap, 0); - *pnConsumed += 2; - pBuf += 2; - tmp126__ = 0U; - tmp126__ |= ( pSrc->rxHighSupDataRate << 0 ); - tmp126__ |= ( pSrc->reserved2 << 13 ); - frameshtons(pCtx, pBuf, tmp126__, 0); - *pnConsumed += 2; - pBuf += 2; - nBuf -= 2 ; - frameshtons(pCtx, pBuf, pSrc->txMCSMap, 0); - *pnConsumed += 2; - pBuf += 2; - tmp127__ = 0U; - tmp127__ |= ( pSrc->txSupDataRate << 0 ); - tmp127__ |= ( pSrc->reserved3 << 13 ); - frameshtons(pCtx, pBuf, tmp127__, 0); - *pnConsumed += 2; - // fieldsEndFlag = 1 - nBuf -= 2 ; - break; - } - (void)pCtx; - if (pIeLen) - { - *pIeLen = *pnConsumed - nConsumedOnEntry - 2; - } - return DOT11F_PARSE_SUCCESS; -} /* End dot11fPackIeVHTCaps. */ - tANI_U32 dot11fPackIeVHTExtBssLoad(tpAniSirGlobal pCtx, tDot11fIEVHTExtBssLoad *pSrc, tANI_U8 *pBuf, @@ -28294,45 +28837,6 @@ tANI_U32 dot11fPackIeVHTExtBssLoad(tpAniSirGlobal pCtx, return DOT11F_PARSE_SUCCESS; } /* End dot11fPackIeVHTExtBssLoad. */ -tANI_U32 dot11fPackIeVHTOperation(tpAniSirGlobal pCtx, - tDot11fIEVHTOperation *pSrc, - tANI_U8 *pBuf, - tANI_U32 nBuf, - tANI_U32 *pnConsumed) -{ - tANI_U8* pIeLen = 0; - tANI_U32 nConsumedOnEntry = *pnConsumed; - tANI_U32 nNeeded = 0U; - nNeeded += 5; - while ( pSrc->present ) - { - if ( nNeeded > nBuf ) return DOT11F_BUFFER_OVERFLOW; - *pBuf = 192; - ++pBuf; ++(*pnConsumed); - pIeLen = pBuf; - ++pBuf; ++(*pnConsumed); - *pBuf = pSrc->chanWidth; - *pnConsumed += 1; - pBuf += 1; - *pBuf = pSrc->chanCenterFreqSeg1; - *pnConsumed += 1; - pBuf += 1; - *pBuf = pSrc->chanCenterFreqSeg2; - *pnConsumed += 1; - pBuf += 1; - frameshtons(pCtx, pBuf, pSrc->basicMCSSet, 0); - *pnConsumed += 2; - // fieldsEndFlag = 1 - break; - } - (void)pCtx; - if (pIeLen) - { - *pIeLen = *pnConsumed - nConsumedOnEntry - 2; - } - return DOT11F_PARSE_SUCCESS; -} /* End dot11fPackIeVHTOperation. */ - tANI_U32 dot11fPackIeVendor1IE(tpAniSirGlobal pCtx, tDot11fIEVendor1IE *pSrc, tANI_U8 *pBuf, @@ -28366,39 +28870,6 @@ tANI_U32 dot11fPackIeVendor1IE(tpAniSirGlobal pCtx, return DOT11F_PARSE_SUCCESS; } /* End dot11fPackIeVendor1IE. */ -tANI_U32 dot11fPackIeVendor2IE(tpAniSirGlobal pCtx, - tDot11fIEVendor2IE *pSrc, - tANI_U8 *pBuf, - tANI_U32 nBuf, - tANI_U32 *pnConsumed) -{ - tANI_U8* pIeLen = 0; - tANI_U32 nConsumedOnEntry = *pnConsumed; - tANI_U32 nNeeded = 0U; - nNeeded += 0; - while ( pSrc->present ) - { - if ( nNeeded > nBuf ) return DOT11F_BUFFER_OVERFLOW; - *pBuf = 221; - ++pBuf; ++(*pnConsumed); - pIeLen = pBuf; - ++pBuf; ++(*pnConsumed); - *pBuf = 0x0; - ++pBuf; ++(*pnConsumed); - *pBuf = 0x90; - ++pBuf; ++(*pnConsumed); - *pBuf = 0x4c; - ++pBuf; ++(*pnConsumed); - break; - } - (void)pCtx; - if (pIeLen) - { - *pIeLen = *pnConsumed - nConsumedOnEntry - 2; - } - return DOT11F_PARSE_SUCCESS; -} /* End dot11fPackIeVendor2IE. */ - tANI_U32 dot11fPackIeVendor3IE(tpAniSirGlobal pCtx, tDot11fIEVendor3IE *pSrc, tANI_U8 *pBuf, @@ -29449,6 +29920,54 @@ tANI_U32 dot11fPackIesec_chan_offset_ele(tpAniSirGlobal pCtx, return DOT11F_PARSE_SUCCESS; } /* End dot11fPackIesec_chan_offset_ele. */ +tANI_U32 dot11fPackIevendor2_ie(tpAniSirGlobal pCtx, + tDot11fIEvendor2_ie *pSrc, + tANI_U8 *pBuf, + tANI_U32 nBuf, + tANI_U32 *pnConsumed) +{ + tANI_U8* pIeLen = 0; + tANI_U32 nConsumedOnEntry = *pnConsumed; + tANI_U32 nNeeded = 0U; + tANI_U32 status = DOT11F_PARSE_SUCCESS; + status = dot11fGetPackedIEvendor2_ie(pCtx, pSrc, &nNeeded); + if ( ! DOT11F_SUCCEEDED( status ) ) return status; + while ( pSrc->present ) + { + if ( nNeeded > nBuf ) return DOT11F_BUFFER_OVERFLOW; + *pBuf = 221; + ++pBuf; --nBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; --nBuf; ++(*pnConsumed); + *pBuf = 0x0; + ++pBuf; --nBuf; ++(*pnConsumed); + *pBuf = 0x90; + ++pBuf; --nBuf; ++(*pnConsumed); + *pBuf = 0x4c; + ++pBuf; --nBuf; ++(*pnConsumed); + *pBuf = pSrc->type; + *pnConsumed += 1; + pBuf += 1; + *pBuf = pSrc->sub_type; + *pnConsumed += 1; + pBuf += 1; + status = PackCore(pCtx, + (tANI_U8*)pSrc, + pBuf, + nBuf, + pnConsumed, + FFS_vendor2_ie, + IES_vendor2_ie); + break; + } + (void)pCtx; + if (pIeLen) + { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return status; +} /* End dot11fPackIevendor2_ie. */ + tANI_U32 dot11fPackAddBAReq(tpAniSirGlobal pCtx, tDot11fAddBAReq *pFrm, tANI_U8 *pBuf, tANI_U32 nBuf, tANI_U32 *pnConsumed) { tANI_U32 i = 0; @@ -30412,6 +30931,62 @@ tANI_U32 dot11fPackAssocRequest(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("num_dscp_exceptions: %d.\n"), pFrm->QosMapSet.num_dscp_exceptions); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* ) pFrm->QosMapSet.dscp_exceptions, pFrm->QosMapSet.num_dscp_exceptions); } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } + } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), FRFL("to:\n")); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCREQUEST), pBuf, nBuf); } @@ -31312,6 +31887,62 @@ tANI_U32 dot11fPackAssocResponse(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("num_dscp_exceptions: %d.\n"), pFrm->QosMapSet.num_dscp_exceptions); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* ) pFrm->QosMapSet.dscp_exceptions, pFrm->QosMapSet.num_dscp_exceptions); } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } + } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), FRFL("to:\n")); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_ASSOCRESPONSE), pBuf, nBuf); } @@ -32582,13 +33213,61 @@ tANI_U32 dot11fPackBeacon(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, tANI_U8 *pBu else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -33439,13 +34118,61 @@ tANI_U32 dot11fPackBeacon2(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, tANI_U8 *p else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACON2), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -34477,13 +35204,61 @@ tANI_U32 dot11fPackBeaconIEs(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, tANI_U else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_BEACONIES), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -37464,13 +38239,61 @@ tANI_U32 dot11fPackProbeResponse(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_PROBERESPONSE), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -38634,6 +39457,62 @@ tANI_U32 dot11fPackReAssocRequest(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pF FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("num_dscp_exceptions: %d.\n"), pFrm->QosMapSet.num_dscp_exceptions); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* ) pFrm->QosMapSet.dscp_exceptions, pFrm->QosMapSet.num_dscp_exceptions); } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } + } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), FRFL("to:\n")); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCREQUEST), pBuf, nBuf); } @@ -39541,6 +40420,62 @@ tANI_U32 dot11fPackReAssocResponse(tpAniSirGlobal pCtx, tDot11fReAssocResponse * FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("num_dscp_exceptions: %d.\n"), pFrm->QosMapSet.num_dscp_exceptions); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* ) pFrm->QosMapSet.dscp_exceptions, pFrm->QosMapSet.num_dscp_exceptions); } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } + } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), FRFL("to:\n")); FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_REASSOCRESPONSE), pBuf, nBuf); } @@ -41297,13 +42232,61 @@ tANI_U32 dot11fPackTimingAdvertisementFrame(tpAniSirGlobal pCtx, tDot11fTimingAd else { } - FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Vendor2IE:\n")); - if (!pFrm->Vendor2IE.present) + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("vendor2_ie:\n")); + if (!pFrm->vendor2_ie.present) { FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Not present.\n")); } else { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.type, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.sub_type, 1); + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("VHTCaps:\n")); + if (!pFrm->vendor2_ie.VHTCaps.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Not present.\n")); + } + else + { + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("maxMPDULen (2): %d\n"), pFrm->vendor2_ie.VHTCaps.maxMPDULen); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("supportedChannelWidthSet (2): %d\n"), pFrm->vendor2_ie.VHTCaps.supportedChannelWidthSet); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("ldpcCodingCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.ldpcCodingCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("shortGI80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("shortGI160and80plus80MHz (1): %d\n"), pFrm->vendor2_ie.VHTCaps.shortGI160and80plus80MHz); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("txSTBC (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("rxSTBC (3): %d\n"), pFrm->vendor2_ie.VHTCaps.rxSTBC); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("suBeamFormerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamFormerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("suBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.suBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("csnofBeamformerAntSup (3): %d\n"), pFrm->vendor2_ie.VHTCaps.csnofBeamformerAntSup); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("numSoundingDim (3): %d\n"), pFrm->vendor2_ie.VHTCaps.numSoundingDim); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("muBeamformerCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformerCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("muBeamformeeCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.muBeamformeeCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("vhtTXOPPS (1): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtTXOPPS); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("htcVHTCap (1): %d\n"), pFrm->vendor2_ie.VHTCaps.htcVHTCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("maxAMPDULenExp (3): %d\n"), pFrm->vendor2_ie.VHTCaps.maxAMPDULenExp); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("vhtLinkAdaptCap (2): %d\n"), pFrm->vendor2_ie.VHTCaps.vhtLinkAdaptCap); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("rxAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.rxAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("txAntPattern (1): %d\n"), pFrm->vendor2_ie.VHTCaps.txAntPattern); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("reserved1 (2): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.rxMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("rxHighSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.rxHighSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("reserved2 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved2); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTCaps.txMCSMap, 2); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("txSupDataRate (13): %d\n"), pFrm->vendor2_ie.VHTCaps.txSupDataRate); + FRAMES_LOG1(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("reserved3 (3): %d\n"), pFrm->vendor2_ie.VHTCaps.reserved3); + } + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("VHTOperation:\n")); + if (!pFrm->vendor2_ie.VHTOperation.present) + { + FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Not present.\n")); + } + else + { + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanWidth, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg1, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.chanCenterFreqSeg2, 1); + FRAMES_DUMP(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), ( tANI_U8* )&pFrm->vendor2_ie.VHTOperation.basicMCSSet, 2); + } } FRAMES_LOG0(pCtx, FRAMES_SEV_FOR_FRAME(pCtx, DOT11F_TIMINGADVERTISEMENTFRAME), FRFL("Vendor3IE:\n")); if (!pFrm->Vendor3IE.present) @@ -41838,6 +42821,12 @@ static tANI_U32 PackCore(tpAniSirGlobal pCtx, case SigIeTSPEC: status |= dot11fPackIeTSPEC(pCtx, ( tDot11fIETSPEC* )(pSrc + pIe->offset + sizeof(tDot11fIETSPEC) * i ), pBufRemaining, nBufRemaining, &len); break; + case SigIeVHTCaps: + status |= dot11fPackIeVHTCaps(pCtx, ( tDot11fIEVHTCaps* )(pSrc + pIe->offset + sizeof(tDot11fIEVHTCaps) * i ), pBufRemaining, nBufRemaining, &len); + break; + case SigIeVHTOperation: + status |= dot11fPackIeVHTOperation(pCtx, ( tDot11fIEVHTOperation* )(pSrc + pIe->offset + sizeof(tDot11fIEVHTOperation) * i ), pBufRemaining, nBufRemaining, &len); + break; case SigIeWMMSchedule: status |= dot11fPackIeWMMSchedule(pCtx, ( tDot11fIEWMMSchedule* )(pSrc + pIe->offset + sizeof(tDot11fIEWMMSchedule) * i ), pBufRemaining, nBufRemaining, &len); break; @@ -42087,21 +43076,12 @@ static tANI_U32 PackCore(tpAniSirGlobal pCtx, case SigIeTimeoutInterval: status |= dot11fPackIeTimeoutInterval(pCtx, ( tDot11fIETimeoutInterval* )(pSrc + pIe->offset + sizeof(tDot11fIETimeoutInterval) * i ), pBufRemaining, nBufRemaining, &len); break; - case SigIeVHTCaps: - status |= dot11fPackIeVHTCaps(pCtx, ( tDot11fIEVHTCaps* )(pSrc + pIe->offset + sizeof(tDot11fIEVHTCaps) * i ), pBufRemaining, nBufRemaining, &len); - break; case SigIeVHTExtBssLoad: status |= dot11fPackIeVHTExtBssLoad(pCtx, ( tDot11fIEVHTExtBssLoad* )(pSrc + pIe->offset + sizeof(tDot11fIEVHTExtBssLoad) * i ), pBufRemaining, nBufRemaining, &len); break; - case SigIeVHTOperation: - status |= dot11fPackIeVHTOperation(pCtx, ( tDot11fIEVHTOperation* )(pSrc + pIe->offset + sizeof(tDot11fIEVHTOperation) * i ), pBufRemaining, nBufRemaining, &len); - break; case SigIeVendor1IE: status |= dot11fPackIeVendor1IE(pCtx, ( tDot11fIEVendor1IE* )(pSrc + pIe->offset + sizeof(tDot11fIEVendor1IE) * i ), pBufRemaining, nBufRemaining, &len); break; - case SigIeVendor2IE: - status |= dot11fPackIeVendor2IE(pCtx, ( tDot11fIEVendor2IE* )(pSrc + pIe->offset + sizeof(tDot11fIEVendor2IE) * i ), pBufRemaining, nBufRemaining, &len); - break; case SigIeVendor3IE: status |= dot11fPackIeVendor3IE(pCtx, ( tDot11fIEVendor3IE* )(pSrc + pIe->offset + sizeof(tDot11fIEVendor3IE) * i ), pBufRemaining, nBufRemaining, &len); break; @@ -42168,6 +43148,9 @@ static tANI_U32 PackCore(tpAniSirGlobal pCtx, case SigIesec_chan_offset_ele: status |= dot11fPackIesec_chan_offset_ele(pCtx, ( tDot11fIEsec_chan_offset_ele* )(pSrc + pIe->offset + sizeof(tDot11fIEsec_chan_offset_ele) * i ), pBufRemaining, nBufRemaining, &len); break; + case SigIevendor2_ie: + status |= dot11fPackIevendor2_ie(pCtx, ( tDot11fIEvendor2_ie* )(pSrc + pIe->offset + sizeof(tDot11fIEvendor2_ie) * i ), pBufRemaining, nBufRemaining, &len); + break; default: FRAMES_LOG1(pCtx, FRLOGE, FRFL("INTERNAL ERROR-- I don" "'t know about the IE %d; this is most likely a b" diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c index d84d584822d3..9a0a2a850e78 100644 --- a/CORE/SYS/legacy/src/utils/src/parserApi.c +++ b/CORE/SYS/legacy/src/utils/src/parserApi.c @@ -2489,8 +2489,24 @@ tSirRetStatus sirConvertProbeFrame2Struct(tpAniSirGlobal pMac, } #endif pProbeResp->Vendor1IEPresent = pr->Vendor1IE.present; - pProbeResp->Vendor2IEPresent = pr->Vendor2IE.present; pProbeResp->Vendor3IEPresent = pr->Vendor3IE.present; + pProbeResp->vendor2_ie.present = pr->vendor2_ie.present; + + if (pr->vendor2_ie.present) { + pProbeResp->vendor2_ie.type = pr->vendor2_ie.type; + pProbeResp->vendor2_ie.sub_type = pr->vendor2_ie.sub_type; + } + if (pr->vendor2_ie.VHTCaps.present) { + vos_mem_copy(&pProbeResp->vendor2_ie.VHTCaps, + &pr->vendor2_ie.VHTCaps, + sizeof(tDot11fIEVHTCaps)); + } + if (pr->vendor2_ie.VHTOperation.present) { + vos_mem_copy(&pProbeResp->vendor2_ie.VHTOperation, + &pr->vendor2_ie.VHTOperation, + sizeof(tDot11fIEVHTOperation)); + } + vos_mem_free(pr); return eSIR_SUCCESS; @@ -2914,6 +2930,28 @@ sirConvertAssocRespFrame2Struct(tpAniSirGlobal pMac, limLog( pMac, LOG1, FL("Received Assoc Response with Qos Map Set")); limLogQosMapSet(pMac, &pAssocRsp->QosMapSet); } + pAssocRsp->vendor2_ie.present = ar.vendor2_ie.present; + if (ar.vendor2_ie.present) { + pAssocRsp->vendor2_ie.type = ar.vendor2_ie.type; + pAssocRsp->vendor2_ie.sub_type = ar.vendor2_ie.sub_type; + } + + if (ar.vendor2_ie.VHTCaps.present) { + vos_mem_copy(&pAssocRsp->vendor2_ie.VHTCaps, + &ar.vendor2_ie.VHTCaps, + sizeof(tDot11fIEVHTCaps)); + limLog(pMac, LOGE, + FL("Received Assoc Response with Vendor specific VHT Cap")); + limLogVHTCap(pMac, &pAssocRsp->VHTCaps); + } + if (ar.vendor2_ie.VHTOperation.present) { + vos_mem_copy(&pAssocRsp->vendor2_ie.VHTOperation, + &ar.vendor2_ie.VHTOperation, + sizeof(tDot11fIEVHTOperation)); + limLog(pMac, LOGE, + FL("Received Assoc Response with Vendor specific VHT Oper")); + limLogVHTOperation(pMac, &pAssocRsp->VHTOperation); + } return eSIR_SUCCESS; @@ -3679,7 +3717,6 @@ sirParseBeaconIE(tpAniSirGlobal pMac, } pBeaconStruct->Vendor1IEPresent = pBies->Vendor1IE.present; - pBeaconStruct->Vendor2IEPresent = pBies->Vendor2IE.present; pBeaconStruct->Vendor3IEPresent = pBies->Vendor3IE.present; if (pBies->ExtCap.present) { pBeaconStruct->ExtCap.present = 1; @@ -3687,6 +3724,25 @@ sirParseBeaconIE(tpAniSirGlobal pMac, sizeof(tDot11fIEExtCap)); } + pBeaconStruct->vendor2_ie.present = pBies->vendor2_ie.present; + if (pBies->vendor2_ie.present) { + pBeaconStruct->vendor2_ie.type = pBies->vendor2_ie.type; + pBeaconStruct->vendor2_ie.sub_type = pBies->vendor2_ie.sub_type; + } + + if (pBies->vendor2_ie.VHTCaps.present) { + pBeaconStruct->vendor2_ie.VHTCaps.present = 1; + vos_mem_copy(&pBeaconStruct->vendor2_ie.VHTCaps, + &pBies->vendor2_ie.VHTCaps, + sizeof(tDot11fIEVHTCaps)); + } + if (pBies->vendor2_ie.VHTOperation.present) { + pBeaconStruct->vendor2_ie.VHTOperation.present = 1; + vos_mem_copy(&pBeaconStruct->vendor2_ie.VHTOperation, + &pBies->vendor2_ie.VHTOperation, + sizeof(tDot11fIEVHTOperation)); + } + vos_mem_free(pBies); return eSIR_SUCCESS; } // End sirParseBeaconIE. @@ -4014,9 +4070,31 @@ sirConvertBeaconFrame2Struct(tpAniSirGlobal pMac, } pBeaconStruct->Vendor1IEPresent = pBeacon->Vendor1IE.present; - pBeaconStruct->Vendor2IEPresent = pBeacon->Vendor2IE.present; pBeaconStruct->Vendor3IEPresent = pBeacon->Vendor3IE.present; + pBeaconStruct->vendor2_ie.present = pBeacon->vendor2_ie.present; + if (pBeacon->vendor2_ie.present) { + pBeaconStruct->vendor2_ie.type = pBeacon->vendor2_ie.type; + pBeaconStruct->vendor2_ie.sub_type = + pBeacon->vendor2_ie.sub_type; + } + if (pBeacon->vendor2_ie.present) { + PELOG1(limLog(pMac, LOG1, + FL("Vendor Specific VHT caps present in Beacon Frame!")); + ) + } + if (pBeacon->vendor2_ie.VHTCaps.present) { + vos_mem_copy(&pBeaconStruct->vendor2_ie.VHTCaps, + &pBeacon->vendor2_ie.VHTCaps, + sizeof(tDot11fIEVHTCaps)); + } + if (pBeacon->vendor2_ie.VHTOperation.present) { + vos_mem_copy(&pBeaconStruct->vendor2_ie.VHTOperation, + &pBeacon->VHTOperation, + sizeof(tDot11fIEVHTOperation)); + } + + #ifdef FEATURE_AP_MCC_CH_AVOIDANCE if(pBeacon->QComVendorIE.present) { pBeaconStruct->AvoidChannelIE.present = |
