diff options
| author | Selvaraj, Sridhar <sselvara@codeaurora.org> | 2017-04-06 22:13:38 +0530 |
|---|---|---|
| committer | spuligil <spuligil@codeaurora.org> | 2017-04-15 12:50:08 -0700 |
| commit | 032577eb23bd5c504376b14cff2038527233ba32 (patch) | |
| tree | f58cba62ef6eef9d8e8b79b4e21445165e93fb24 | |
| parent | 25837fe0f71178ee45b9c1e7369d7cc94734fa69 (diff) | |
qcacld-3.0: Add frame parsing support for 11ai FILS
This change adds frame parsing support for 11ai FILS.
Change-Id: Ic1b670e23f637f11b494422ad9954c1d7515e833
CRs-Fixed: 2028592
| -rw-r--r-- | core/mac/src/cfg/cfgUtil/dot11f.frms | 96 | ||||
| -rw-r--r-- | core/mac/src/include/dot11f.h | 1018 | ||||
| -rw-r--r-- | core/mac/src/sys/legacy/src/utils/src/dot11f.c | 3941 |
3 files changed, 3387 insertions, 1668 deletions
diff --git a/core/mac/src/cfg/cfgUtil/dot11f.frms b/core/mac/src/cfg/cfgUtil/dot11f.frms index 4457c9f040ab..f43c180e037b 100644 --- a/core/mac/src/cfg/cfgUtil/dot11f.frms +++ b/core/mac/src/cfg/cfgUtil/dot11f.frms @@ -123,6 +123,23 @@ const EID_WIDER_BW_CHANNEL_SWITCH_ANN= 194; const VHT_TRANSMIT_POWER_ENVELOPE = 195; const EID_CHANNEL_SWITCH_WRAPPER = 196; const EID_VENDOR_SPECIFIC = 221; +const EID_FILS_INDICATION = 240; +/** + * Extended Element ID + * + * As part of IEEE-802.11-2016 spec, extended element ID is introduced(9.4.2.1) + * Elements are defined to have a common general format consisting of a 1 octet + * Element ID field, a 1 octet Length field, an optional 1 octet Element ID + * Extension field, and a variable-length element-specific Information field. + * Each element is identified by the contents of the Element ID and, when + * present, Element ID Extension fields as defined in this standard. An Extended + * Element ID is a combination of an Element ID and an Element ID Extension for + * those elements that have a defined Element ID Extension. The Length field + * specifies the number of octets following the Length field. The presence of + * the Element ID Extension field is determined by the Element ID field having + * value of 255 + */ +const EID_EXTN_ID_ELEMENT = 255; const SIR_MAC_PROP_EXT_RATES_TYPE = 0; const SIR_MAC_PROP_AP_NAME_TYPE = 1; @@ -2440,6 +2457,68 @@ IE QCN_IE (EID_VENDOR_SPECIFIC) OUI ( 0x8C, 0xFD, 0xF0, 0x01 ) version[4]; } +IE fils_indication (EID_FILS_INDICATION) +{ + // FILS Information element + { + public_key_identifiers_cnt : 3; + realm_identifiers_cnt : 3; + is_ip_config_supported : 1; + is_cache_id_present : 1; + is_hessid_present : 1; + is_fils_sk_auth_supported : 1; + is_fils_sk_auth_pfs_supported : 1; + is_pk_auth_supported : 1; + reserved : 4; + } + // other FILS elements + variable_data[3..255]; +} + +IE fils_assoc_delay_info (EID_EXTN_ID_ELEMENT) OUI ( 0x01 ) +{ + assoc_delay_info, 1; +} + +IE fils_key_confirmation (EID_EXTN_ID_ELEMENT) OUI ( 0x03 ) +{ + key_auth[0..255]; +} + +IE fils_session (EID_EXTN_ID_ELEMENT) OUI ( 0x04 ) +{ + session[8]; +} + +IE fils_hlp_container (EID_EXTN_ID_ELEMENT) OUI ( 0x05 ) +{ + dest_mac[6]; + src_mac[6]; + hlp_packet[0..255]; +} + +IE fils_kde (EID_EXTN_ID_ELEMENT) OUI ( 0x07 ) +{ + key_rsc[8]; + kde_list[0..255]; +} + +IE fils_wrapped_data (EID_EXTN_ID_ELEMENT) OUI ( 0x08 ) +{ + wrapped_data[0..255]; +} + +IE fils_public_key (EID_EXTN_ID_ELEMENT) OUI ( 0x0C ) +{ + key_type, 1; + public_key[0..255]; +} + +IE fils_nonce (EID_EXTN_ID_ELEMENT) OUI ( 0x0D ) +{ + nonce[16]; +} + const EID_RRM_BEACON_REPORTING = 1; const EID_RRM_BCN_REPORTING_DETAIL = 2; @@ -2971,6 +3050,7 @@ FRAME Beacon // C.f. Sec. 7.2.3.1 OPTIE OperatingMode; OPTIE WiderBWChanSwitchAnn; OPTIE OBSSScanParameters; + OPTIE fils_indication; OPTIE Vendor1IE; OPTIE vendor_vht_ie; OPTIE Vendor3IE; @@ -3061,6 +3141,7 @@ FRAME Beacon2 OPTIE OperatingMode; OPTIE WiderBWChanSwitchAnn; OPTIE OBSSScanParameters; + OPTIE fils_indication; OPTIE Vendor1IE; OPTIE vendor_vht_ie; OPTIE Vendor3IE; @@ -3127,6 +3208,7 @@ FRAME BeaconIEs OPTIE OperatingMode; OPTIE WiderBWChanSwitchAnn; OPTIE OBSSScanParameters; + OPTIE fils_indication; OPTIE Vendor1IE; OPTIE vendor_vht_ie; OPTIE Vendor3IE; @@ -3164,6 +3246,10 @@ FRAME AssocRequest // 7.2.3.4 OPTIE QosMapSet; OPTIE ExtCap; OPTIE VHTCaps; + OPTIE fils_session; + OPTIE fils_public_key; + OPTIE fils_key_confirmation; + OPTIE fils_hlp_container; OPTIE WPAOpaque; OPTIE WMMCaps; OPTIE WMMInfoStation; @@ -3208,6 +3294,11 @@ FRAME AssocResponse // 7.2.3.5 OPTIE ExtCap; OPTIE OBSSScanParameters; OPTIE QosMapSet; + OPTIE fils_session; + OPTIE fils_public_key; + OPTIE fils_key_confirmation; + OPTIE fils_hlp_container; + OPTIE fils_kde; OPTIE vendor_vht_ie; OPTIE QCN_IE; } // End frame AssocResponse. @@ -3349,6 +3440,7 @@ FRAME ProbeResponse // 7.2.3.9 OPTIE VHTExtBssLoad; OPTIE ExtCap; OPTIE OBSSScanParameters; + OPTIE fils_indication; OPTIE Vendor1IE; OPTIE vendor_vht_ie; OPTIE Vendor3IE; @@ -3371,6 +3463,10 @@ FRAME Authentication // 7.2.3.10 OPTIE FTInfo; OPTIE TimeoutInterval; OPTIE RICDataDesc[2]; + OPTIE fils_nonce; + OPTIE fils_session; + OPTIE fils_wrapped_data; + OPTIE fils_assoc_delay_info; } // End frame Auth. FRAME DeAuth // 7.2.3.11 diff --git a/core/mac/src/include/dot11f.h b/core/mac/src/include/dot11f.h index 96b8c6c33e2a..0b05b5de1069 100644 --- a/core/mac/src/include/dot11f.h +++ b/core/mac/src/include/dot11f.h @@ -35,7 +35,7 @@ * * * This file was automatically generated by 'framesc' - * Mon Mar 13 16:17:19 2017 from the following file(s): + * Thu Apr 6 22:12:06 2017 from the following file(s): * * dot11f.frms * @@ -2063,7 +2063,8 @@ uint32_t dot11f_unpack_ie_gtk( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEGTK*); + tDot11fIEGTK*, + bool); uint32_t dot11f_pack_ie_gtk( tpAniSirGlobal, @@ -2104,7 +2105,8 @@ uint32_t dot11f_unpack_ie_igtk( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEIGTK*); + tDot11fIEIGTK*, + bool); uint32_t dot11f_pack_ie_igtk( tpAniSirGlobal, @@ -2143,7 +2145,8 @@ uint32_t dot11f_unpack_ie_r0_kh_id( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIER0KH_ID*); + tDot11fIER0KH_ID*, + bool); uint32_t dot11f_pack_ie_r0_kh_id( tpAniSirGlobal, @@ -2181,7 +2184,8 @@ uint32_t dot11f_unpack_ie_r1_kh_id( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIER1KH_ID*); + tDot11fIER1KH_ID*, + bool); uint32_t dot11f_pack_ie_r1_kh_id( tpAniSirGlobal, @@ -2221,7 +2225,8 @@ uint32_t dot11f_unpack_ie_ap_channel_report( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEAPChannelReport*); + tDot11fIEAPChannelReport*, + bool); uint32_t dot11f_pack_ie_ap_channel_report( tpAniSirGlobal, @@ -2259,7 +2264,8 @@ uint32_t dot11f_unpack_ie_bcn_reporting_detail( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEBcnReportingDetail*); + tDot11fIEBcnReportingDetail*, + bool); uint32_t dot11f_pack_ie_bcn_reporting_detail( tpAniSirGlobal, @@ -2298,7 +2304,8 @@ uint32_t dot11f_unpack_ie_beacon_report_frm_body( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEBeaconReportFrmBody*); + tDot11fIEBeaconReportFrmBody*, + bool); uint32_t dot11f_pack_ie_beacon_report_frm_body( tpAniSirGlobal, @@ -2337,7 +2344,8 @@ uint32_t dot11f_unpack_ie_beacon_reporting( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEBeaconReporting*); + tDot11fIEBeaconReporting*, + bool); uint32_t dot11f_pack_ie_beacon_reporting( tpAniSirGlobal, @@ -2375,7 +2383,8 @@ uint32_t dot11f_unpack_ie_condensed_country_str( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIECondensedCountryStr*); + tDot11fIECondensedCountryStr*, + bool); uint32_t dot11f_pack_ie_condensed_country_str( tpAniSirGlobal, @@ -2415,7 +2424,8 @@ uint32_t dot11f_unpack_ie_measurement_pilot( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMeasurementPilot*); + tDot11fIEMeasurementPilot*, + bool); uint32_t dot11f_pack_ie_measurement_pilot( tpAniSirGlobal, @@ -2455,7 +2465,8 @@ uint32_t dot11f_unpack_ie_multi_bssid( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMultiBssid*); + tDot11fIEMultiBssid*, + bool); uint32_t dot11f_pack_ie_multi_bssid( tpAniSirGlobal, @@ -2495,7 +2506,8 @@ uint32_t dot11f_unpack_ie_ric_data( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERICData*); + tDot11fIERICData*, + bool); uint32_t dot11f_pack_ie_ric_data( tpAniSirGlobal, @@ -2535,7 +2547,8 @@ uint32_t dot11f_unpack_ie_ric_descriptor( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERICDescriptor*); + tDot11fIERICDescriptor*, + bool); uint32_t dot11f_pack_ie_ric_descriptor( tpAniSirGlobal, @@ -2603,7 +2616,8 @@ uint32_t dot11f_unpack_ie_rrm_enabled_cap( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERRMEnabledCap*); + tDot11fIERRMEnabledCap*, + bool); uint32_t dot11f_pack_ie_rrm_enabled_cap( tpAniSirGlobal, @@ -2642,7 +2656,8 @@ uint32_t dot11f_unpack_ie_requested_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERequestedInfo*); + tDot11fIERequestedInfo*, + bool); uint32_t dot11f_pack_ie_requested_info( tpAniSirGlobal, @@ -2681,7 +2696,8 @@ uint32_t dot11f_unpack_ie_ssid( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESSID*); + tDot11fIESSID*, + bool); uint32_t dot11f_pack_ie_ssid( tpAniSirGlobal, @@ -2726,7 +2742,8 @@ uint32_t dot11f_unpack_ie_schedule( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESchedule*); + tDot11fIESchedule*, + bool); uint32_t dot11f_pack_ie_schedule( tpAniSirGlobal, @@ -2797,7 +2814,8 @@ uint32_t dot11f_unpack_ie_tclas( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETCLAS*); + tDot11fIETCLAS*, + bool); uint32_t dot11f_pack_ie_tclas( tpAniSirGlobal, @@ -2835,7 +2853,8 @@ uint32_t dot11f_unpack_ie_tclasSPROC( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETCLASSPROC*); + tDot11fIETCLASSPROC*, + bool); uint32_t dot11f_pack_ie_tclassproc( tpAniSirGlobal, @@ -2873,7 +2892,8 @@ uint32_t dot11f_unpack_ie_ts_delay( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETSDelay*); + tDot11fIETSDelay*, + bool); uint32_t dot11f_pack_ie_ts_delay( tpAniSirGlobal, @@ -2912,7 +2932,8 @@ uint32_t dot11f_unpack_ie_tsf_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETSFInfo*); + tDot11fIETSFInfo*, + bool); uint32_t dot11f_pack_ie_tsf_info( tpAniSirGlobal, @@ -2975,7 +2996,8 @@ uint32_t dot11f_unpack_ie_tspec( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETSPEC*); + tDot11fIETSPEC*, + bool); uint32_t dot11f_pack_ie_tspec( tpAniSirGlobal, @@ -3038,7 +3060,8 @@ uint32_t dot11f_unpack_ie_vht_caps( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVHTCaps*); + tDot11fIEVHTCaps*, + bool); uint32_t dot11f_pack_ie_vht_caps( tpAniSirGlobal, @@ -3079,7 +3102,8 @@ uint32_t dot11f_unpack_ie_vht_operation( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVHTOperation*); + tDot11fIEVHTOperation*, + bool); uint32_t dot11f_pack_ie_vht_operation( tpAniSirGlobal, @@ -3125,7 +3149,8 @@ uint32_t dot11f_unpack_ie_wmm_schedule( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMSchedule*); + tDot11fIEWMMSchedule*, + bool); uint32_t dot11f_pack_ie_wmm_schedule( tpAniSirGlobal, @@ -3197,7 +3222,8 @@ uint32_t dot11f_unpack_ie_wmmtclas( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMTCLAS*); + tDot11fIEWMMTCLAS*, + bool); uint32_t dot11f_pack_ie_wmmtclas( tpAniSirGlobal, @@ -3236,7 +3262,8 @@ uint32_t dot11f_unpack_ie_wmmtclasproc( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMTCLASPROC*); + tDot11fIEWMMTCLASPROC*, + bool); uint32_t dot11f_pack_ie_wmmtclasproc( tpAniSirGlobal, @@ -3275,7 +3302,8 @@ uint32_t dot11f_unpack_ie_wmmts_delay( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMTSDelay*); + tDot11fIEWMMTSDelay*, + bool); uint32_t dot11f_pack_ie_wmmts_delay( tpAniSirGlobal, @@ -3339,7 +3367,8 @@ uint32_t dot11f_unpack_ie_wmmtspec( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMTSPEC*); + tDot11fIEWMMTSPEC*, + bool); uint32_t dot11f_pack_ie_wmmtspec( tpAniSirGlobal, @@ -3379,7 +3408,8 @@ uint32_t dot11f_unpack_ie_wider_bw_chan_switch_ann( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWiderBWChanSwitchAnn*); + tDot11fIEWiderBWChanSwitchAnn*, + bool); uint32_t dot11f_pack_ie_wider_bw_chan_switch_ann( tpAniSirGlobal, @@ -3417,7 +3447,8 @@ uint32_t dot11f_unpack_ie_azimuth_req( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEazimuth_req*); + tDot11fIEazimuth_req*, + bool); uint32_t dot11f_pack_ie_azimuth_req( tpAniSirGlobal, @@ -3455,7 +3486,8 @@ uint32_t dot11f_unpack_ie_max_age( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEmax_age*); + tDot11fIEmax_age*, + bool); uint32_t dot11f_pack_ie_max_age( tpAniSirGlobal, @@ -3513,7 +3545,8 @@ uint32_t dot11f_unpack_ie_neighbor_rpt( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEneighbor_rpt*); + tDot11fIEneighbor_rpt*, + bool); uint32_t dot11f_pack_ie_neighbor_rpt( tpAniSirGlobal, @@ -3551,7 +3584,8 @@ uint32_t dot11f_unpack_ie_req_mac_addr( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEreq_mac_addr*); + tDot11fIEreq_mac_addr*, + bool); uint32_t dot11f_pack_ie_req_mac_addr( tpAniSirGlobal, @@ -3589,7 +3623,8 @@ uint32_t dot11f_unpack_ie_tgt_mac_addr( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEtgt_mac_addr*); + tDot11fIEtgt_mac_addr*, + bool); uint32_t dot11f_pack_ie_tgt_mac_addr( tpAniSirGlobal, @@ -3628,7 +3663,8 @@ uint32_t dot11f_unpack_ie_vht_transmit_power_env( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEvht_transmit_power_env*); + tDot11fIEvht_transmit_power_env*, + bool); uint32_t dot11f_pack_ie_vht_transmit_power_env( tpAniSirGlobal, @@ -3666,7 +3702,8 @@ uint32_t dot11f_unpack_ie_aid( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEAID*); + tDot11fIEAID*, + bool); uint32_t dot11f_pack_ie_aid( tpAniSirGlobal, @@ -3707,7 +3744,8 @@ uint32_t dot11f_unpack_ie_cf_params( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIECFParams*); + tDot11fIECFParams*, + bool); uint32_t dot11f_pack_ie_cf_params( tpAniSirGlobal, @@ -3746,7 +3784,8 @@ uint32_t dot11f_unpack_ie_challenge_text( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEChallengeText*); + tDot11fIEChallengeText*, + bool); uint32_t dot11f_pack_ie_challenge_text( tpAniSirGlobal, @@ -3786,7 +3825,8 @@ uint32_t dot11f_unpack_ie_chan_switch_ann( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEChanSwitchAnn*); + tDot11fIEChanSwitchAnn*, + bool); uint32_t dot11f_pack_ie_chan_switch_ann( tpAniSirGlobal, @@ -3825,7 +3865,8 @@ uint32_t dot11f_unpack_ie_channel_switch_wrapper( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEChannelSwitchWrapper*); + tDot11fIEChannelSwitchWrapper*, + bool); uint32_t dot11f_pack_ie_channel_switch_wrapper( tpAniSirGlobal, @@ -3865,7 +3906,8 @@ uint32_t dot11f_unpack_ie_country( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIECountry*); + tDot11fIECountry*, + bool); uint32_t dot11f_pack_ie_country( tpAniSirGlobal, @@ -3903,7 +3945,8 @@ uint32_t dot11f_unpack_ie_DSParams( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEDSParams*); + tDot11fIEDSParams*, + bool); uint32_t dot11f_pack_ie_ds_params( tpAniSirGlobal, @@ -3970,7 +4013,8 @@ uint32_t dot11f_unpack_ie_edca_param_set( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEEDCAParamSet*); + tDot11fIEEDCAParamSet*, + bool); uint32_t dot11f_pack_ie_edca_param_set( tpAniSirGlobal, @@ -4011,7 +4055,8 @@ uint32_t dot11f_unpack_ie_erp_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEERPInfo*); + tDot11fIEERPInfo*, + bool); uint32_t dot11f_pack_ie_erp_info( tpAniSirGlobal, @@ -4050,7 +4095,8 @@ uint32_t dot11f_unpack_ie_ese_cckm_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEESECckmOpaque*); + tDot11fIEESECckmOpaque*, + bool); uint32_t dot11f_pack_ie_ese_cckm_opaque( tpAniSirGlobal, @@ -4090,7 +4136,8 @@ uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEESERadMgmtCap*); + tDot11fIEESERadMgmtCap*, + bool); uint32_t dot11f_pack_ie_ese_rad_mgmt_cap( tpAniSirGlobal, @@ -4130,7 +4177,8 @@ uint32_t dot11f_unpack_ie_ese_traf_strm_met( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEESETrafStrmMet*); + tDot11fIEESETrafStrmMet*, + bool); uint32_t dot11f_pack_ie_ese_traf_strm_met( tpAniSirGlobal, @@ -4170,7 +4218,8 @@ uint32_t dot11f_unpack_ie_ese_traf_strm_rate_set( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEESETrafStrmRateSet*); + tDot11fIEESETrafStrmRateSet*, + bool); uint32_t dot11f_pack_ie_ese_traf_strm_rate_set( tpAniSirGlobal, @@ -4209,7 +4258,8 @@ uint32_t dot11f_unpack_ie_ese_txmit_power( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEESETxmitPower*); + tDot11fIEESETxmitPower*, + bool); uint32_t dot11f_pack_ie_ese_txmit_power( tpAniSirGlobal, @@ -4247,7 +4297,8 @@ uint32_t dot11f_unpack_ie_ese_version( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEESEVersion*); + tDot11fIEESEVersion*, + bool); uint32_t dot11f_pack_ie_ese_version( tpAniSirGlobal, @@ -4286,7 +4337,8 @@ uint32_t dot11f_unpack_ie_ext_cap( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEExtCap*); + tDot11fIEExtCap*, + bool); uint32_t dot11f_pack_ie_ext_cap( tpAniSirGlobal, @@ -4325,7 +4377,8 @@ uint32_t dot11f_unpack_ie_ext_supp_rates( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEExtSuppRates*); + tDot11fIEExtSuppRates*, + bool); uint32_t dot11f_pack_ie_ext_supp_rates( tpAniSirGlobal, @@ -4366,7 +4419,8 @@ uint32_t dot11f_unpack_ie_fh_param_set( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEFHParamSet*); + tDot11fIEFHParamSet*, + bool); uint32_t dot11f_pack_ie_fh_param_set( tpAniSirGlobal, @@ -4405,7 +4459,8 @@ uint32_t dot11f_unpack_ie_fh_params( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEFHParams*); + tDot11fIEFHParams*, + bool); uint32_t dot11f_pack_ie_fh_params( tpAniSirGlobal, @@ -4448,7 +4503,8 @@ uint32_t dot11f_unpack_ie_fh_patt_table( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEFHPattTable*); + tDot11fIEFHPattTable*, + bool); uint32_t dot11f_pack_ie_fh_patt_table( tpAniSirGlobal, @@ -4494,7 +4550,8 @@ uint32_t dot11f_unpack_ie_ft_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEFTInfo*); + tDot11fIEFTInfo*, + bool); uint32_t dot11f_pack_ie_ft_info( tpAniSirGlobal, @@ -4580,7 +4637,8 @@ uint32_t dot11f_unpack_ie_ht_caps( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEHTCaps*); + tDot11fIEHTCaps*, + bool); uint32_t dot11f_pack_ie_ht_caps( tpAniSirGlobal, @@ -4638,7 +4696,8 @@ uint32_t dot11f_unpack_ie_ht_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEHTInfo*); + tDot11fIEHTInfo*, + bool); uint32_t dot11f_pack_ie_ht_info( tpAniSirGlobal, @@ -4676,7 +4735,8 @@ uint32_t dot11f_unpack_ie_ibss_params( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEIBSSParams*); + tDot11fIEIBSSParams*, + bool); uint32_t dot11f_pack_ie_ibss_params( tpAniSirGlobal, @@ -4716,7 +4776,8 @@ uint32_t dot11f_unpack_ie_link_identifier( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIELinkIdentifier*); + tDot11fIELinkIdentifier*, + bool); uint32_t dot11f_pack_ie_link_identifier( tpAniSirGlobal, @@ -4756,7 +4817,8 @@ uint32_t dot11f_unpack_ie_MBO_IE( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMBO_IE*); + tDot11fIEMBO_IE*, + bool); uint32_t dot11f_pack_ie_MBO_IE( tpAniSirGlobal, @@ -4845,7 +4907,8 @@ uint32_t dot11f_unpack_ie_measurement_report( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMeasurementReport*); + tDot11fIEMeasurementReport*, + bool); uint32_t dot11f_pack_ie_measurement_report( tpAniSirGlobal, @@ -4934,7 +4997,8 @@ uint32_t dot11f_unpack_ie_measurement_request( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMeasurementRequest*); + tDot11fIEMeasurementRequest*, + bool); uint32_t dot11f_pack_ie_measurement_request( tpAniSirGlobal, @@ -4975,7 +5039,8 @@ uint32_t dot11f_unpack_ie_mobility_domain( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMobilityDomain*); + tDot11fIEMobilityDomain*, + bool); uint32_t dot11f_pack_ie_mobility_domain( tpAniSirGlobal, @@ -5033,7 +5098,8 @@ uint32_t dot11f_unpack_ie_neighbor_report( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIENeighborReport*); + tDot11fIENeighborReport*, + bool); uint32_t dot11f_pack_ie_neighbor_report( tpAniSirGlobal, @@ -5077,7 +5143,8 @@ uint32_t dot11f_unpack_ie_obss_scan_parameters( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEOBSSScanParameters*); + tDot11fIEOBSSScanParameters*, + bool); uint32_t dot11f_pack_ie_obss_scan_parameters( tpAniSirGlobal, @@ -5118,7 +5185,8 @@ uint32_t dot11f_unpack_ie_operating_mode( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEOperatingMode*); + tDot11fIEOperatingMode*, + bool); uint32_t dot11f_pack_ie_operating_mode( tpAniSirGlobal, @@ -5158,7 +5226,8 @@ uint32_t dot11f_unpack_ie_p2_p_assoc_req( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PAssocReq*); + tDot11fIEP2PAssocReq*, + bool); uint32_t dot11f_pack_ie_p2_p_assoc_req( tpAniSirGlobal, @@ -5197,7 +5266,8 @@ uint32_t dot11f_unpack_ie_p2_p_assoc_res( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PAssocRes*); + tDot11fIEP2PAssocRes*, + bool); uint32_t dot11f_pack_ie_p2_p_assoc_res( tpAniSirGlobal, @@ -5237,7 +5307,8 @@ uint32_t dot11f_unpack_ie_p2_p_beacon( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PBeacon*); + tDot11fIEP2PBeacon*, + bool); uint32_t dot11f_pack_ie_p2_p_beacon( tpAniSirGlobal, @@ -5280,7 +5351,8 @@ uint32_t dot11f_unpack_ie_p2_p_beacon_probe_res( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PBeaconProbeRes*); + tDot11fIEP2PBeaconProbeRes*, + bool); uint32_t dot11f_pack_ie_p2_p_beacon_probe_res( tpAniSirGlobal, @@ -5318,7 +5390,8 @@ uint32_t dot11f_unpack_ie_p2_p_de_auth( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PDeAuth*); + tDot11fIEP2PDeAuth*, + bool); uint32_t dot11f_pack_ie_p2_p_de_auth( tpAniSirGlobal, @@ -5356,7 +5429,8 @@ uint32_t dot11f_unpack_ie_p2_p_dis_assoc( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PDisAssoc*); + tDot11fIEP2PDisAssoc*, + bool); uint32_t dot11f_pack_ie_p2_p_dis_assoc( tpAniSirGlobal, @@ -5395,7 +5469,8 @@ uint32_t dot11f_unpack_ie_p2_pie_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PIEOpaque*); + tDot11fIEP2PIEOpaque*, + bool); uint32_t dot11f_pack_ie_p2_pie_opaque( tpAniSirGlobal, @@ -5437,7 +5512,8 @@ uint32_t dot11f_unpack_ie_p2_p_probe_req( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PProbeReq*); + tDot11fIEP2PProbeReq*, + bool); uint32_t dot11f_pack_ie_p2_p_probe_req( tpAniSirGlobal, @@ -5479,7 +5555,8 @@ uint32_t dot11f_unpack_ie_p2_p_probe_res( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEP2PProbeRes*); + tDot11fIEP2PProbeRes*, + bool); uint32_t dot11f_pack_ie_p2_p_probe_res( tpAniSirGlobal, @@ -5518,7 +5595,8 @@ uint32_t dot11f_unpack_ie_pti_control( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEPTIControl*); + tDot11fIEPTIControl*, + bool); uint32_t dot11f_pack_ie_pti_control( tpAniSirGlobal, @@ -5560,7 +5638,8 @@ uint32_t dot11f_unpack_ie_pu_buffer_status( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEPUBufferStatus*); + tDot11fIEPUBufferStatus*, + bool); uint32_t dot11f_pack_ie_pu_buffer_status( tpAniSirGlobal, @@ -5599,7 +5678,8 @@ uint32_t dot11f_unpack_ie_power_caps( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEPowerCaps*); + tDot11fIEPowerCaps*, + bool); uint32_t dot11f_pack_ie_power_caps( tpAniSirGlobal, @@ -5637,7 +5717,8 @@ uint32_t dot11f_unpack_ie_power_constraints( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEPowerConstraints*); + tDot11fIEPowerConstraints*, + bool); uint32_t dot11f_pack_ie_power_constraints( tpAniSirGlobal, @@ -5677,7 +5758,8 @@ uint32_t dot11f_unpack_ie_qbss_load( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQBSSLoad*); + tDot11fIEQBSSLoad*, + bool); uint32_t dot11f_pack_ie_qbss_load( tpAniSirGlobal, @@ -5715,7 +5797,8 @@ uint32_t dot11f_unpack_ie_QCN_IE( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQCN_IE*); + tDot11fIEQCN_IE*, + bool); uint32_t dot11f_pack_ie_QCN_IE( tpAniSirGlobal, @@ -5754,7 +5837,8 @@ uint32_t dot11f_unpack_ie_QComVendorIE( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQComVendorIE*); + tDot11fIEQComVendorIE*, + bool); uint32_t dot11f_pack_ie_QComVendorIE( tpAniSirGlobal, @@ -5796,7 +5880,8 @@ uint32_t dot11f_unpack_ie_qos_caps_ap( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQOSCapsAp*); + tDot11fIEQOSCapsAp*, + bool); uint32_t dot11f_pack_ie_qos_caps_ap( tpAniSirGlobal, @@ -5840,7 +5925,8 @@ uint32_t dot11f_unpack_ie_qos_caps_station( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQOSCapsStation*); + tDot11fIEQOSCapsStation*, + bool); uint32_t dot11f_pack_ie_qos_caps_station( tpAniSirGlobal, @@ -5879,7 +5965,8 @@ uint32_t dot11f_unpack_ie_qos_map_set( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQosMapSet*); + tDot11fIEQosMapSet*, + bool); uint32_t dot11f_pack_ie_qos_map_set( tpAniSirGlobal, @@ -5920,7 +6007,8 @@ uint32_t dot11f_unpack_ie_quiet( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQuiet*); + tDot11fIEQuiet*, + bool); uint32_t dot11f_pack_ie_quiet( tpAniSirGlobal, @@ -5958,7 +6046,8 @@ uint32_t dot11f_unpack_ie_rcpiie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERCPIIE*); + tDot11fIERCPIIE*, + bool); uint32_t dot11f_pack_ie_rcpiie( tpAniSirGlobal, @@ -6009,7 +6098,8 @@ uint32_t dot11f_unpack_ie_ric_data_desc( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERICDataDesc*); + tDot11fIERICDataDesc*, + bool); uint32_t dot11f_pack_ie_ric_data_desc( tpAniSirGlobal, @@ -6056,7 +6146,8 @@ uint32_t dot11f_unpack_ie_rsn( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERSN*); + tDot11fIERSN*, + bool); uint32_t dot11f_pack_ie_rsn( tpAniSirGlobal, @@ -6094,7 +6185,8 @@ uint32_t dot11f_unpack_ie_rsniie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERSNIIE*); + tDot11fIERSNIIE*, + bool); uint32_t dot11f_pack_ie_rsniie( tpAniSirGlobal, @@ -6133,7 +6225,8 @@ uint32_t dot11f_unpack_ie_rsn_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERSNOpaque*); + tDot11fIERSNOpaque*, + bool); uint32_t dot11f_pack_ie_rsn_opaque( tpAniSirGlobal, @@ -6172,7 +6265,8 @@ uint32_t dot11f_unpack_ie_supp_channels( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESuppChannels*); + tDot11fIESuppChannels*, + bool); uint32_t dot11f_pack_ie_supp_channels( tpAniSirGlobal, @@ -6211,7 +6305,8 @@ uint32_t dot11f_unpack_ie_supp_operating_classes( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESuppOperatingClasses*); + tDot11fIESuppOperatingClasses*, + bool); uint32_t dot11f_pack_ie_supp_operating_classes( tpAniSirGlobal, @@ -6263,7 +6358,8 @@ uint32_t dot11f_unpack_ie_supp_rates( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESuppRates*); + tDot11fIESuppRates*, + bool); uint32_t dot11f_pack_ie_supp_rates( tpAniSirGlobal, @@ -6305,7 +6401,8 @@ uint32_t dot11f_unpack_ie_tim( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETIM*); + tDot11fIETIM*, + bool); uint32_t dot11f_pack_ie_tim( tpAniSirGlobal, @@ -6344,7 +6441,8 @@ uint32_t dot11f_unpack_ie_tpc_report( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETPCReport*); + tDot11fIETPCReport*, + bool); uint32_t dot11f_pack_ie_tpc_report( tpAniSirGlobal, @@ -6381,7 +6479,8 @@ uint32_t dot11f_unpack_ie_tpc_request( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETPCRequest*); + tDot11fIETPCRequest*, + bool); uint32_t dot11f_pack_ie_tpc_request( tpAniSirGlobal, @@ -6421,7 +6520,8 @@ uint32_t dot11f_unpack_ie_time_advertisement( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETimeAdvertisement*); + tDot11fIETimeAdvertisement*, + bool); uint32_t dot11f_pack_ie_time_advertisement( tpAniSirGlobal, @@ -6460,7 +6560,8 @@ uint32_t dot11f_unpack_ie_timeout_interval( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETimeoutInterval*); + tDot11fIETimeoutInterval*, + bool); uint32_t dot11f_pack_ie_timeout_interval( tpAniSirGlobal, @@ -6502,7 +6603,8 @@ uint32_t dot11f_unpack_ie_vht_ext_bss_load( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVHTExtBssLoad*); + tDot11fIEVHTExtBssLoad*, + bool); uint32_t dot11f_pack_ie_vht_ext_bss_load( tpAniSirGlobal, @@ -6539,7 +6641,8 @@ uint32_t dot11f_unpack_ie_vendor1_ie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVendor1IE*); + tDot11fIEVendor1IE*, + bool); uint32_t dot11f_pack_ie_vendor1_ie( tpAniSirGlobal, @@ -6576,7 +6679,8 @@ uint32_t dot11f_unpack_ie_vendor3_ie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVendor3IE*); + tDot11fIEVendor3IE*, + bool); uint32_t dot11f_pack_ie_vendor3_ie( tpAniSirGlobal, @@ -6623,7 +6727,8 @@ uint32_t dot11f_unpack_ie_wapi( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWAPI*); + tDot11fIEWAPI*, + bool); uint32_t dot11f_pack_ie_wapi( tpAniSirGlobal, @@ -6662,7 +6767,8 @@ uint32_t dot11f_unpack_ie_wapi_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWAPIOpaque*); + tDot11fIEWAPIOpaque*, + bool); uint32_t dot11f_pack_ie_wapi_opaque( tpAniSirGlobal, @@ -6701,7 +6807,8 @@ uint32_t dot11f_unpack_ie_wfatpc( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWFATPC*); + tDot11fIEWFATPC*, + bool); uint32_t dot11f_pack_ie_wfatpc( tpAniSirGlobal, @@ -6740,7 +6847,8 @@ uint32_t dot11f_unpack_ie_wfdie_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWFDIEOpaque*); + tDot11fIEWFDIEOpaque*, + bool); uint32_t dot11f_pack_ie_wfdie_opaque( tpAniSirGlobal, @@ -6783,7 +6891,8 @@ uint32_t dot11f_unpack_ie_wmm_caps( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMCaps*); + tDot11fIEWMMCaps*, + bool); uint32_t dot11f_pack_ie_wmm_caps( tpAniSirGlobal, @@ -6824,7 +6933,8 @@ uint32_t dot11f_unpack_ie_wmm_info_ap( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMInfoAp*); + tDot11fIEWMMInfoAp*, + bool); uint32_t dot11f_pack_ie_wmm_info_ap( tpAniSirGlobal, @@ -6869,7 +6979,8 @@ uint32_t dot11f_unpack_ie_wmm_info_station( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMInfoStation*); + tDot11fIEWMMInfoStation*, + bool); uint32_t dot11f_pack_ie_wmm_info_station( tpAniSirGlobal, @@ -6937,7 +7048,8 @@ uint32_t dot11f_unpack_ie_wmm_params( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMParams*); + tDot11fIEWMMParams*, + bool); uint32_t dot11f_pack_ie_wmm_params( tpAniSirGlobal, @@ -6983,7 +7095,8 @@ uint32_t dot11f_unpack_ie_wpa( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWPA*); + tDot11fIEWPA*, + bool); uint32_t dot11f_pack_ie_wpa( tpAniSirGlobal, @@ -7022,7 +7135,8 @@ uint32_t dot11f_unpack_ie_wpa_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWPAOpaque*); + tDot11fIEWPAOpaque*, + bool); uint32_t dot11f_pack_ie_wpa_opaque( tpAniSirGlobal, @@ -7081,7 +7195,8 @@ uint32_t dot11f_unpack_ie_wsc( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWSC*); + tDot11fIEWSC*, + bool); uint32_t dot11f_pack_ie_wsc( tpAniSirGlobal, @@ -7121,7 +7236,8 @@ uint32_t dot11f_unpack_ie_wsc_assoc_req( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscAssocReq*); + tDot11fIEWscAssocReq*, + bool); uint32_t dot11f_pack_ie_wsc_assoc_req( tpAniSirGlobal, @@ -7161,7 +7277,8 @@ uint32_t dot11f_unpack_ie_wsc_assoc_res( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscAssocRes*); + tDot11fIEWscAssocRes*, + bool); uint32_t dot11f_pack_ie_wsc_assoc_res( tpAniSirGlobal, @@ -7207,7 +7324,8 @@ uint32_t dot11f_unpack_ie_wsc_beacon( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscBeacon*); + tDot11fIEWscBeacon*, + bool); uint32_t dot11f_pack_ie_wsc_beacon( tpAniSirGlobal, @@ -7261,7 +7379,8 @@ uint32_t dot11f_unpack_ie_wsc_beacon_probe_res( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscBeaconProbeRes*); + tDot11fIEWscBeaconProbeRes*, + bool); uint32_t dot11f_pack_ie_wsc_beacon_probe_res( tpAniSirGlobal, @@ -7300,7 +7419,8 @@ uint32_t dot11f_unpack_ie_wsc_ie_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscIEOpaque*); + tDot11fIEWscIEOpaque*, + bool); uint32_t dot11f_pack_ie_wsc_ie_opaque( tpAniSirGlobal, @@ -7352,7 +7472,8 @@ uint32_t dot11f_unpack_ie_wsc_probe_req( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscProbeReq*); + tDot11fIEWscProbeReq*, + bool); uint32_t dot11f_pack_ie_wsc_probe_req( tpAniSirGlobal, @@ -7406,7 +7527,8 @@ uint32_t dot11f_unpack_ie_wsc_probe_res( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscProbeRes*); + tDot11fIEWscProbeRes*, + bool); uint32_t dot11f_pack_ie_wsc_probe_res( tpAniSirGlobal, @@ -7446,7 +7568,8 @@ uint32_t dot11f_unpack_ie_wsc_reassoc_res( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscReassocRes*); + tDot11fIEWscReassocRes*, + bool); uint32_t dot11f_pack_ie_wsc_reassoc_res( tpAniSirGlobal, @@ -7487,7 +7610,8 @@ uint32_t dot11f_unpack_ie_ext_chan_switch_ann( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEext_chan_switch_ann*); + tDot11fIEext_chan_switch_ann*, + bool); uint32_t dot11f_pack_ie_ext_chan_switch_ann( tpAniSirGlobal, @@ -7505,6 +7629,376 @@ uint32_t dot11f_get_packed_ie_ext_chan_switch_ann( }; /* End extern "C". */ #endif /* C++ */ +/* EID 255 (0xff) Extended EID 1 (0x01) */ +typedef struct sDot11fIEfils_assoc_delay_info { + uint8_t present; + uint8_t assoc_delay_info; +} tDot11fIEfils_assoc_delay_info; + +#define DOT11F_EID_FILS_ASSOC_DELAY_INFO (255) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_ASSOC_DELAY_INFO_MIN_LEN (1) + +#define DOT11F_IE_FILS_ASSOC_DELAY_INFO_MAX_LEN (1) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_assoc_delay_info( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_assoc_delay_info*, + bool); + +uint32_t dot11f_pack_ie_fils_assoc_delay_info( + tpAniSirGlobal, + tDot11fIEfils_assoc_delay_info *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_assoc_delay_info( + tpAniSirGlobal, + tDot11fIEfils_assoc_delay_info *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + +/* EID 255 (0xff) Extended EID 5 (0x05) */ +typedef struct sDot11fIEfils_hlp_container { + uint8_t present; + uint8_t dest_mac[6]; + uint8_t src_mac[6]; + uint8_t num_hlp_packet; + uint8_t hlp_packet[255]; +} tDot11fIEfils_hlp_container; + +#define DOT11F_EID_FILS_HLP_CONTAINER (255) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_HLP_CONTAINER_MIN_LEN (12) + +#define DOT11F_IE_FILS_HLP_CONTAINER_MAX_LEN (267) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_hlp_container( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_hlp_container*, + bool); + +uint32_t dot11f_pack_ie_fils_hlp_container( + tpAniSirGlobal, + tDot11fIEfils_hlp_container *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_hlp_container( + tpAniSirGlobal, + tDot11fIEfils_hlp_container *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + +/* EID 240 (0xf0) */ +typedef struct sDot11fIEfils_indication { + uint8_t present; + uint16_t public_key_identifiers_cnt:3; + uint16_t realm_identifiers_cnt:3; + uint16_t is_ip_config_supported:1; + uint16_t is_cache_id_present:1; + uint16_t is_hessid_present:1; + uint16_t is_fils_sk_auth_supported:1; + uint16_t is_fils_sk_auth_pfs_supported:1; + uint16_t is_pk_auth_supported:1; + uint16_t reserved:4; + uint8_t num_variable_data; + uint8_t variable_data[255]; +} tDot11fIEfils_indication; + +#define DOT11F_EID_FILS_INDICATION (240) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_INDICATION_MIN_LEN (5) + +#define DOT11F_IE_FILS_INDICATION_MAX_LEN (257) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_indication( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_indication*, + bool); + +uint32_t dot11f_pack_ie_fils_indication( + tpAniSirGlobal, + tDot11fIEfils_indication *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_indication( + tpAniSirGlobal, + tDot11fIEfils_indication *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + +/* EID 255 (0xff) Extended EID 7 (0x07) */ +typedef struct sDot11fIEfils_kde { + uint8_t present; + uint8_t key_rsc[8]; + uint8_t num_kde_list; + uint8_t kde_list[255]; +} tDot11fIEfils_kde; + +#define DOT11F_EID_FILS_KDE (255) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_KDE_MIN_LEN (8) + +#define DOT11F_IE_FILS_KDE_MAX_LEN (263) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_kde( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_kde*, + bool); + +uint32_t dot11f_pack_ie_fils_kde( + tpAniSirGlobal, + tDot11fIEfils_kde *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_kde( + tpAniSirGlobal, + tDot11fIEfils_kde *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + +/* EID 255 (0xff) Extended EID 3 (0x03) */ +typedef struct sDot11fIEfils_key_confirmation { + uint8_t present; + uint8_t num_key_auth; + uint8_t key_auth[255]; +} tDot11fIEfils_key_confirmation; + +#define DOT11F_EID_FILS_KEY_CONFIRMATION (255) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_KEY_CONFIRMATION_MIN_LEN (0) + +#define DOT11F_IE_FILS_KEY_CONFIRMATION_MAX_LEN (255) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_key_confirmation( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_key_confirmation*, + bool); + +uint32_t dot11f_pack_ie_fils_key_confirmation( + tpAniSirGlobal, + tDot11fIEfils_key_confirmation *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_key_confirmation( + tpAniSirGlobal, + tDot11fIEfils_key_confirmation *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + +/* EID 255 (0xff) Extended EID 13 (0x0d) */ +typedef struct sDot11fIEfils_nonce { + uint8_t present; + uint8_t nonce[16]; +} tDot11fIEfils_nonce; + +#define DOT11F_EID_FILS_NONCE (255) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_NONCE_MIN_LEN (16) + +#define DOT11F_IE_FILS_NONCE_MAX_LEN (16) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_nonce( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_nonce*, + bool); + +uint32_t dot11f_pack_ie_fils_nonce( + tpAniSirGlobal, + tDot11fIEfils_nonce *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_nonce( + tpAniSirGlobal, + tDot11fIEfils_nonce *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + +/* EID 255 (0xff) Extended EID 12 (0x0c) */ +typedef struct sDot11fIEfils_public_key { + uint8_t present; + uint8_t key_type; + uint8_t num_public_key; + uint8_t public_key[255]; +} tDot11fIEfils_public_key; + +#define DOT11F_EID_FILS_PUBLIC_KEY (255) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_PUBLIC_KEY_MIN_LEN (1) + +#define DOT11F_IE_FILS_PUBLIC_KEY_MAX_LEN (256) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_public_key( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_public_key*, + bool); + +uint32_t dot11f_pack_ie_fils_public_key( + tpAniSirGlobal, + tDot11fIEfils_public_key *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_public_key( + tpAniSirGlobal, + tDot11fIEfils_public_key *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + +/* EID 255 (0xff) Extended EID 4 (0x04) */ +typedef struct sDot11fIEfils_session { + uint8_t present; + uint8_t session[8]; +} tDot11fIEfils_session; + +#define DOT11F_EID_FILS_SESSION (255) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_SESSION_MIN_LEN (8) + +#define DOT11F_IE_FILS_SESSION_MAX_LEN (8) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_session( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_session*, + bool); + +uint32_t dot11f_pack_ie_fils_session( + tpAniSirGlobal, + tDot11fIEfils_session *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_session( + tpAniSirGlobal, + tDot11fIEfils_session *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + +/* EID 255 (0xff) Extended EID 8 (0x08) */ +typedef struct sDot11fIEfils_wrapped_data { + uint8_t present; + uint8_t num_wrapped_data; + uint8_t wrapped_data[255]; +} tDot11fIEfils_wrapped_data; + +#define DOT11F_EID_FILS_WRAPPED_DATA (255) + +/* N.B. These #defines do *not* include the EID & length */ +#define DOT11F_IE_FILS_WRAPPED_DATA_MIN_LEN (0) + +#define DOT11F_IE_FILS_WRAPPED_DATA_MAX_LEN (255) + +#ifdef __cplusplus +extern "C" { +#endif /* C++ */ +uint32_t dot11f_unpack_ie_fils_wrapped_data( + tpAniSirGlobal, + uint8_t *, + uint8_t, + tDot11fIEfils_wrapped_data*, + bool); + +uint32_t dot11f_pack_ie_fils_wrapped_data( + tpAniSirGlobal, + tDot11fIEfils_wrapped_data *, + uint8_t *, + uint32_t, + uint32_t*); + +uint32_t dot11f_get_packed_ie_fils_wrapped_data( + tpAniSirGlobal, + tDot11fIEfils_wrapped_data *, + uint32_t*); + +#ifdef __cplusplus +}; /* End extern "C". */ +#endif /* C++ */ + /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x10} */ typedef struct sDot11fIEhs20vendor_ie { uint8_t present; @@ -7536,7 +8030,8 @@ uint32_t dot11f_unpack_ie_hs20vendor_ie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEhs20vendor_ie*); + tDot11fIEhs20vendor_ie*, + bool); uint32_t dot11f_pack_ie_hs20vendor_ie( tpAniSirGlobal, @@ -7579,7 +8074,8 @@ uint32_t dot11f_unpack_ie_ht2040_bss_coexistence( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEht2040_bss_coexistence*); + tDot11fIEht2040_bss_coexistence*, + bool); uint32_t dot11f_pack_ie_ht2040_bss_coexistence( tpAniSirGlobal, @@ -7619,7 +8115,8 @@ uint32_t dot11f_unpack_ie_ht2040_bss_intolerant_report( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEht2040_bss_intolerant_report*); + tDot11fIEht2040_bss_intolerant_report*, + bool); uint32_t dot11f_pack_ie_ht2040_bss_intolerant_report( tpAniSirGlobal, @@ -7657,7 +8154,8 @@ uint32_t dot11f_unpack_ie_sec_chan_offset_ele( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEsec_chan_offset_ele*); + tDot11fIEsec_chan_offset_ele*, + bool); uint32_t dot11f_pack_ie_sec_chan_offset_ele( tpAniSirGlobal, @@ -7698,7 +8196,8 @@ uint32_t dot11f_unpack_ie_vendor_vht_ie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEvendor_vht_ie*); + tDot11fIEvendor_vht_ie*, + bool); uint32_t dot11f_pack_ie_vendor_vht_ie( tpAniSirGlobal, @@ -7742,7 +8241,7 @@ extern "C" { uint32_t dot11f_unpack_add_ts_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAddTSRequest * pFrm); + tDot11fAddTSRequest * pFrm, bool append_ie); uint32_t dot11f_pack_add_ts_request(tpAniSirGlobal pCtx, tDot11fAddTSRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -7782,7 +8281,7 @@ extern "C" { uint32_t dot11f_unpack_add_ts_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAddTSResponse * pFrm); + tDot11fAddTSResponse * pFrm, bool append_ie); uint32_t dot11f_pack_add_ts_response(tpAniSirGlobal pCtx, tDot11fAddTSResponse *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -7795,36 +8294,40 @@ uint32_t dot11f_get_packed_add_ts_response_size(tpAniSirGlobal pCtx, #endif /* C++ */ typedef struct sDot11fAssocRequest{ - tDot11fFfCapabilities Capabilities; - tDot11fFfListenInterval ListenInterval; - tDot11fIESSID SSID; - tDot11fIESuppRates SuppRates; - tDot11fIEOperatingMode OperatingMode; - tDot11fIEPowerCaps PowerCaps; - tDot11fIESuppChannels SuppChannels; - tDot11fIEHTCaps HTCaps; - tDot11fIEQOSCapsStation QOSCapsStation; - tDot11fIERSNOpaque RSNOpaque; - tDot11fIEExtSuppRates ExtSuppRates; - tDot11fIEMobilityDomain MobilityDomain; - tDot11fIESuppOperatingClasses SuppOperatingClasses; - tDot11fIEWAPIOpaque WAPIOpaque; - tDot11fIEWAPI WAPI; - tDot11fIERRMEnabledCap RRMEnabledCap; - tDot11fIEQosMapSet QosMapSet; - tDot11fIEExtCap ExtCap; - tDot11fIEVHTCaps VHTCaps; - tDot11fIEWPAOpaque WPAOpaque; - tDot11fIEWMMCaps WMMCaps; - tDot11fIEWMMInfoStation WMMInfoStation; - tDot11fIEWscIEOpaque WscIEOpaque; - tDot11fIEESERadMgmtCap ESERadMgmtCap; - tDot11fIEESEVersion ESEVersion; - tDot11fIEP2PIEOpaque P2PIEOpaque; - tDot11fIEWFDIEOpaque WFDIEOpaque; - tDot11fIEvendor_vht_ie vendor_vht_ie; - tDot11fIEhs20vendor_ie hs20vendor_ie; - tDot11fIEQCN_IE QCN_IE; + tDot11fFfCapabilities Capabilities; + tDot11fFfListenInterval ListenInterval; + tDot11fIESSID SSID; + tDot11fIESuppRates SuppRates; + tDot11fIEOperatingMode OperatingMode; + tDot11fIEPowerCaps PowerCaps; + tDot11fIESuppChannels SuppChannels; + tDot11fIEHTCaps HTCaps; + tDot11fIEQOSCapsStation QOSCapsStation; + tDot11fIERSNOpaque RSNOpaque; + tDot11fIEExtSuppRates ExtSuppRates; + tDot11fIEMobilityDomain MobilityDomain; + tDot11fIESuppOperatingClasses SuppOperatingClasses; + tDot11fIEWAPIOpaque WAPIOpaque; + tDot11fIEWAPI WAPI; + tDot11fIERRMEnabledCap RRMEnabledCap; + tDot11fIEQosMapSet QosMapSet; + tDot11fIEExtCap ExtCap; + tDot11fIEVHTCaps VHTCaps; + tDot11fIEfils_session fils_session; + tDot11fIEfils_public_key fils_public_key; + tDot11fIEfils_key_confirmation fils_key_confirmation; + tDot11fIEfils_hlp_container fils_hlp_container; + tDot11fIEWPAOpaque WPAOpaque; + tDot11fIEWMMCaps WMMCaps; + tDot11fIEWMMInfoStation WMMInfoStation; + tDot11fIEWscIEOpaque WscIEOpaque; + tDot11fIEESERadMgmtCap ESERadMgmtCap; + tDot11fIEESEVersion ESEVersion; + tDot11fIEP2PIEOpaque P2PIEOpaque; + tDot11fIEWFDIEOpaque WFDIEOpaque; + tDot11fIEvendor_vht_ie vendor_vht_ie; + tDot11fIEhs20vendor_ie hs20vendor_ie; + tDot11fIEQCN_IE QCN_IE; } tDot11fAssocRequest; #define DOT11F_ASSOCREQUEST (3) @@ -7835,7 +8338,7 @@ extern "C" { uint32_t dot11f_unpack_assoc_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAssocRequest * pFrm); + tDot11fAssocRequest * pFrm, bool append_ie); uint32_t dot11f_pack_assoc_request(tpAniSirGlobal pCtx, tDot11fAssocRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -7848,39 +8351,44 @@ uint32_t dot11f_get_packed_assoc_request_size(tpAniSirGlobal pCtx, #endif /* C++ */ typedef struct sDot11fAssocResponse{ - tDot11fFfCapabilities Capabilities; - tDot11fFfStatus Status; - tDot11fFfAID AID; - tDot11fIESuppRates SuppRates; - tDot11fIEExtSuppRates ExtSuppRates; - tDot11fIEEDCAParamSet EDCAParamSet; - tDot11fIERCPIIE RCPIIE; - tDot11fIERSNIIE RSNIIE; - tDot11fIERRMEnabledCap RRMEnabledCap; - tDot11fIEMobilityDomain MobilityDomain; - tDot11fIEFTInfo FTInfo; - uint16_t num_RICDataDesc; - tDot11fIERICDataDesc RICDataDesc[2]; - tDot11fIEWPA WPA; - tDot11fIETimeoutInterval TimeoutInterval; - tDot11fIEHTCaps HTCaps; - tDot11fIEHTInfo HTInfo; - tDot11fIEWMMParams WMMParams; - tDot11fIEWMMCaps WMMCaps; - tDot11fIEESERadMgmtCap ESERadMgmtCap; - tDot11fIEESETrafStrmMet ESETrafStrmMet; - tDot11fIEESETxmitPower ESETxmitPower; - uint16_t num_WMMTSPEC; - tDot11fIEWMMTSPEC WMMTSPEC[4]; - tDot11fIEWscAssocRes WscAssocRes; - tDot11fIEP2PAssocRes P2PAssocRes; - tDot11fIEVHTCaps VHTCaps; - tDot11fIEVHTOperation VHTOperation; - tDot11fIEExtCap ExtCap; - tDot11fIEOBSSScanParameters OBSSScanParameters; - tDot11fIEQosMapSet QosMapSet; - tDot11fIEvendor_vht_ie vendor_vht_ie; - tDot11fIEQCN_IE QCN_IE; + tDot11fFfCapabilities Capabilities; + tDot11fFfStatus Status; + tDot11fFfAID AID; + tDot11fIESuppRates SuppRates; + tDot11fIEExtSuppRates ExtSuppRates; + tDot11fIEEDCAParamSet EDCAParamSet; + tDot11fIERCPIIE RCPIIE; + tDot11fIERSNIIE RSNIIE; + tDot11fIERRMEnabledCap RRMEnabledCap; + tDot11fIEMobilityDomain MobilityDomain; + tDot11fIEFTInfo FTInfo; + uint16_t num_RICDataDesc; + tDot11fIERICDataDesc RICDataDesc[2]; + tDot11fIEWPA WPA; + tDot11fIETimeoutInterval TimeoutInterval; + tDot11fIEHTCaps HTCaps; + tDot11fIEHTInfo HTInfo; + tDot11fIEWMMParams WMMParams; + tDot11fIEWMMCaps WMMCaps; + tDot11fIEESERadMgmtCap ESERadMgmtCap; + tDot11fIEESETrafStrmMet ESETrafStrmMet; + tDot11fIEESETxmitPower ESETxmitPower; + uint16_t num_WMMTSPEC; + tDot11fIEWMMTSPEC WMMTSPEC[4]; + tDot11fIEWscAssocRes WscAssocRes; + tDot11fIEP2PAssocRes P2PAssocRes; + tDot11fIEVHTCaps VHTCaps; + tDot11fIEVHTOperation VHTOperation; + tDot11fIEExtCap ExtCap; + tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEQosMapSet QosMapSet; + tDot11fIEfils_session fils_session; + tDot11fIEfils_public_key fils_public_key; + tDot11fIEfils_key_confirmation fils_key_confirmation; + tDot11fIEfils_hlp_container fils_hlp_container; + tDot11fIEfils_kde fils_kde; + tDot11fIEvendor_vht_ie vendor_vht_ie; + tDot11fIEQCN_IE QCN_IE; } tDot11fAssocResponse; #define DOT11F_ASSOCRESPONSE (4) @@ -7891,7 +8399,7 @@ extern "C" { uint32_t dot11f_unpack_assoc_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAssocResponse * pFrm); + tDot11fAssocResponse * pFrm, bool append_ie); uint32_t dot11f_pack_assoc_response(tpAniSirGlobal pCtx, tDot11fAssocResponse *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -7904,16 +8412,20 @@ uint32_t dot11f_get_packed_assoc_response_size(tpAniSirGlobal pCtx, #endif /* C++ */ typedef struct sDot11fAuthentication{ - tDot11fFfAuthAlgo AuthAlgo; - tDot11fFfAuthSeqNo AuthSeqNo; - tDot11fFfStatus Status; - tDot11fIEChallengeText ChallengeText; - tDot11fIERSNOpaque RSNOpaque; - tDot11fIEMobilityDomain MobilityDomain; - tDot11fIEFTInfo FTInfo; - tDot11fIETimeoutInterval TimeoutInterval; - uint16_t num_RICDataDesc; - tDot11fIERICDataDesc RICDataDesc[2]; + tDot11fFfAuthAlgo AuthAlgo; + tDot11fFfAuthSeqNo AuthSeqNo; + tDot11fFfStatus Status; + tDot11fIEChallengeText ChallengeText; + tDot11fIERSNOpaque RSNOpaque; + tDot11fIEMobilityDomain MobilityDomain; + tDot11fIEFTInfo FTInfo; + tDot11fIETimeoutInterval TimeoutInterval; + uint16_t num_RICDataDesc; + tDot11fIERICDataDesc RICDataDesc[2]; + tDot11fIEfils_nonce fils_nonce; + tDot11fIEfils_session fils_session; + tDot11fIEfils_wrapped_data fils_wrapped_data; + tDot11fIEfils_assoc_delay_info fils_assoc_delay_info; } tDot11fAuthentication; #define DOT11F_AUTHENTICATION (5) @@ -7924,7 +8436,7 @@ extern "C" { uint32_t dot11f_unpack_authentication(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAuthentication * pFrm); + tDot11fAuthentication * pFrm, bool append_ie); uint32_t dot11f_pack_authentication(tpAniSirGlobal pCtx, tDot11fAuthentication *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -7985,6 +8497,7 @@ typedef struct sDot11fBeacon{ tDot11fIEOperatingMode OperatingMode; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; @@ -8004,7 +8517,7 @@ extern "C" { uint32_t dot11f_unpack_beacon(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fBeacon * pFrm); + tDot11fBeacon * pFrm, bool append_ie); uint32_t dot11f_pack_beacon(tpAniSirGlobal pCtx, tDot11fBeacon *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8034,7 +8547,7 @@ extern "C" { uint32_t dot11f_unpack_beacon1(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fBeacon1 * pFrm); + tDot11fBeacon1 * pFrm, bool append_ie); uint32_t dot11f_pack_beacon1(tpAniSirGlobal pCtx, tDot11fBeacon1 *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8081,6 +8594,7 @@ typedef struct sDot11fBeacon2{ tDot11fIEOperatingMode OperatingMode; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; @@ -8099,7 +8613,7 @@ extern "C" { uint32_t dot11f_unpack_beacon2(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fBeacon2 * pFrm); + tDot11fBeacon2 * pFrm, bool append_ie); uint32_t dot11f_pack_beacon2(tpAniSirGlobal pCtx, tDot11fBeacon2 *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8158,6 +8672,7 @@ typedef struct sDot11fBeaconIEs{ tDot11fIEOperatingMode OperatingMode; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; @@ -8176,7 +8691,7 @@ extern "C" { uint32_t dot11f_unpack_beacon_i_es(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fBeaconIEs * pFrm); + tDot11fBeaconIEs * pFrm, bool append_ie); uint32_t dot11f_pack_beacon_i_es(tpAniSirGlobal pCtx, tDot11fBeaconIEs *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8204,7 +8719,7 @@ extern "C" { uint32_t dot11f_unpack_channel_switch(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fChannelSwitch * pFrm); + tDot11fChannelSwitch * pFrm, bool append_ie); uint32_t dot11f_pack_channel_switch(tpAniSirGlobal pCtx, tDot11fChannelSwitch *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8229,7 +8744,7 @@ extern "C" { uint32_t dot11f_unpack_de_auth(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fDeAuth * pFrm); + tDot11fDeAuth * pFrm, bool append_ie); uint32_t dot11f_pack_de_auth(tpAniSirGlobal pCtx, tDot11fDeAuth *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8256,7 +8771,7 @@ extern "C" { uint32_t dot11f_unpack_del_ts(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fDelTS * pFrm); + tDot11fDelTS * pFrm, bool append_ie); uint32_t dot11f_pack_del_ts(tpAniSirGlobal pCtx, tDot11fDelTS *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8281,7 +8796,7 @@ extern "C" { uint32_t dot11f_unpack_disassociation(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fDisassociation * pFrm); + tDot11fDisassociation * pFrm, bool append_ie); uint32_t dot11f_pack_disassociation(tpAniSirGlobal pCtx, tDot11fDisassociation *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8315,7 +8830,7 @@ extern "C" { uint32_t dot11f_unpack_link_measurement_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fLinkMeasurementReport * pFrm); + tDot11fLinkMeasurementReport * pFrm, bool append_ie); uint32_t dot11f_pack_link_measurement_report(tpAniSirGlobal pCtx, tDot11fLinkMeasurementReport *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8343,7 +8858,7 @@ extern "C" { uint32_t dot11f_unpack_link_measurement_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fLinkMeasurementRequest * pFrm); + tDot11fLinkMeasurementRequest * pFrm, bool append_ie); uint32_t dot11f_pack_link_measurement_request(tpAniSirGlobal pCtx, tDot11fLinkMeasurementRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8370,7 +8885,7 @@ extern "C" { uint32_t dot11f_unpack_measurement_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fMeasurementReport * pFrm); + tDot11fMeasurementReport * pFrm, bool append_ie); uint32_t dot11f_pack_measurement_report(tpAniSirGlobal pCtx, tDot11fMeasurementReport *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8398,7 +8913,7 @@ extern "C" { uint32_t dot11f_unpack_measurement_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fMeasurementRequest * pFrm); + tDot11fMeasurementRequest * pFrm, bool append_ie); uint32_t dot11f_pack_measurement_request(tpAniSirGlobal pCtx, tDot11fMeasurementRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8425,7 +8940,7 @@ extern "C" { uint32_t dot11f_unpack_neighbor_report_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fNeighborReportRequest * pFrm); + tDot11fNeighborReportRequest * pFrm, bool append_ie); uint32_t dot11f_pack_neighbor_report_request(tpAniSirGlobal pCtx, tDot11fNeighborReportRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8453,7 +8968,7 @@ extern "C" { uint32_t dot11f_unpack_neighbor_report_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fNeighborReportResponse * pFrm); + tDot11fNeighborReportResponse * pFrm, bool append_ie); uint32_t dot11f_pack_neighbor_report_response(tpAniSirGlobal pCtx, tDot11fNeighborReportResponse *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8479,7 +8994,7 @@ extern "C" { uint32_t dot11f_unpack_operating_mode(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fOperatingMode * pFrm); + tDot11fOperatingMode * pFrm, bool append_ie); uint32_t dot11f_pack_operating_mode(tpAniSirGlobal pCtx, tDot11fOperatingMode *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8514,7 +9029,7 @@ extern "C" { uint32_t dot11f_unpack_probe_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fProbeRequest * pFrm); + tDot11fProbeRequest * pFrm, bool append_ie); uint32_t dot11f_pack_probe_request(tpAniSirGlobal pCtx, tDot11fProbeRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8571,6 +9086,7 @@ typedef struct sDot11fProbeResponse{ tDot11fIEVHTExtBssLoad VHTExtBssLoad; tDot11fIEExtCap ExtCap; tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; @@ -8590,7 +9106,7 @@ extern "C" { uint32_t dot11f_unpack_probe_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fProbeResponse * pFrm); + tDot11fProbeResponse * pFrm, bool append_ie); uint32_t dot11f_pack_probe_response(tpAniSirGlobal pCtx, tDot11fProbeResponse *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8616,7 +9132,7 @@ extern "C" { uint32_t dot11f_unpack_qos_map_configure(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fQosMapConfigure * pFrm); + tDot11fQosMapConfigure * pFrm, bool append_ie); uint32_t dot11f_pack_qos_map_configure(tpAniSirGlobal pCtx, tDot11fQosMapConfigure *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8644,7 +9160,7 @@ extern "C" { uint32_t dot11f_unpack_radio_measurement_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fRadioMeasurementReport * pFrm); + tDot11fRadioMeasurementReport * pFrm, bool append_ie); uint32_t dot11f_pack_radio_measurement_report(tpAniSirGlobal pCtx, tDot11fRadioMeasurementReport *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8673,7 +9189,7 @@ extern "C" { uint32_t dot11f_unpack_radio_measurement_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fRadioMeasurementRequest * pFrm); + tDot11fRadioMeasurementRequest * pFrm, bool append_ie); uint32_t dot11f_pack_radio_measurement_request(tpAniSirGlobal pCtx, tDot11fRadioMeasurementRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8732,7 +9248,7 @@ extern "C" { uint32_t dot11f_unpack_re_assoc_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fReAssocRequest * pFrm); + tDot11fReAssocRequest * pFrm, bool append_ie); uint32_t dot11f_pack_re_assoc_request(tpAniSirGlobal pCtx, tDot11fReAssocRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8788,7 +9304,7 @@ extern "C" { uint32_t dot11f_unpack_re_assoc_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fReAssocResponse * pFrm); + tDot11fReAssocResponse * pFrm, bool append_ie); uint32_t dot11f_pack_re_assoc_response(tpAniSirGlobal pCtx, tDot11fReAssocResponse *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8814,7 +9330,7 @@ extern "C" { uint32_t dot11f_unpack_sm_power_save(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fSMPowerSave * pFrm); + tDot11fSMPowerSave * pFrm, bool append_ie); uint32_t dot11f_pack_sm_power_save(tpAniSirGlobal pCtx, tDot11fSMPowerSave *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8840,7 +9356,7 @@ extern "C" { uint32_t dot11f_unpack_sa_query_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fSaQueryReq * pFrm); + tDot11fSaQueryReq * pFrm, bool append_ie); uint32_t dot11f_pack_sa_query_req(tpAniSirGlobal pCtx, tDot11fSaQueryReq *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8866,7 +9382,7 @@ extern "C" { uint32_t dot11f_unpack_sa_query_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fSaQueryRsp * pFrm); + tDot11fSaQueryRsp * pFrm, bool append_ie); uint32_t dot11f_pack_sa_query_rsp(tpAniSirGlobal pCtx, tDot11fSaQueryRsp *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8893,7 +9409,7 @@ extern "C" { uint32_t dot11f_unpack_tdls_dis_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSDisReq * pFrm); + tDot11fTDLSDisReq * pFrm, bool append_ie); uint32_t dot11f_pack_tdls_dis_req(tpAniSirGlobal pCtx, tDot11fTDLSDisReq *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8933,7 +9449,7 @@ extern "C" { uint32_t dot11f_unpack_tdls_dis_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSDisRsp * pFrm); + tDot11fTDLSDisRsp * pFrm, bool append_ie); uint32_t dot11f_pack_tdls_dis_rsp(tpAniSirGlobal pCtx, tDot11fTDLSDisRsp *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8962,7 +9478,7 @@ extern "C" { uint32_t dot11f_unpack_tdls_peer_traffic_ind(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSPeerTrafficInd * pFrm); + tDot11fTDLSPeerTrafficInd * pFrm, bool append_ie); uint32_t dot11f_pack_tdls_peer_traffic_ind(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficInd *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -8989,7 +9505,7 @@ extern "C" { uint32_t dot11f_unpack_tdls_peer_traffic_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSPeerTrafficRsp * pFrm); + tDot11fTDLSPeerTrafficRsp * pFrm, bool append_ie); uint32_t dot11f_pack_tdls_peer_traffic_rsp(tpAniSirGlobal pCtx, tDot11fTDLSPeerTrafficRsp *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9025,7 +9541,7 @@ extern "C" { uint32_t dot11f_unpack_tdls_setup_cnf(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSSetupCnf * pFrm); + tDot11fTDLSSetupCnf * pFrm, bool append_ie); uint32_t dot11f_pack_tdls_setup_cnf(tpAniSirGlobal pCtx, tDot11fTDLSSetupCnf *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9069,7 +9585,7 @@ extern "C" { uint32_t dot11f_unpack_tdls_setup_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSSetupReq * pFrm); + tDot11fTDLSSetupReq * pFrm, bool append_ie); uint32_t dot11f_pack_tdls_setup_req(tpAniSirGlobal pCtx, tDot11fTDLSSetupReq *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9115,7 +9631,7 @@ extern "C" { uint32_t dot11f_unpack_tdls_setup_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSSetupRsp * pFrm); + tDot11fTDLSSetupRsp * pFrm, bool append_ie); uint32_t dot11f_pack_tdls_setup_rsp(tpAniSirGlobal pCtx, tDot11fTDLSSetupRsp *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9143,7 +9659,7 @@ extern "C" { uint32_t dot11f_unpack_tdls_teardown(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSTeardown * pFrm); + tDot11fTDLSTeardown * pFrm, bool append_ie); uint32_t dot11f_pack_tdls_teardown(tpAniSirGlobal pCtx, tDot11fTDLSTeardown *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9170,7 +9686,7 @@ extern "C" { uint32_t dot11f_unpack_tpc_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTPCReport * pFrm); + tDot11fTPCReport * pFrm, bool append_ie); uint32_t dot11f_pack_tpc_report(tpAniSirGlobal pCtx, tDot11fTPCReport *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9197,7 +9713,7 @@ extern "C" { uint32_t dot11f_unpack_tpc_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTPCRequest * pFrm); + tDot11fTPCRequest * pFrm, bool append_ie); uint32_t dot11f_pack_tpc_request(tpAniSirGlobal pCtx, tDot11fTPCRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9228,7 +9744,7 @@ extern "C" { uint32_t dot11f_unpack_timing_advertisement_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTimingAdvertisementFrame * pFrm); + tDot11fTimingAdvertisementFrame * pFrm, bool append_ie); uint32_t dot11f_pack_timing_advertisement_frame(tpAniSirGlobal pCtx, tDot11fTimingAdvertisementFrame *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9255,7 +9771,7 @@ extern "C" { uint32_t dot11f_unpack_vht_gid_management_action_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fVHTGidManagementActionFrame * pFrm); + tDot11fVHTGidManagementActionFrame * pFrm, bool append_ie); uint32_t dot11f_pack_vht_gid_management_action_frame(tpAniSirGlobal pCtx, tDot11fVHTGidManagementActionFrame *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9284,7 +9800,7 @@ extern "C" { uint32_t dot11f_unpack_wmm_add_ts_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fWMMAddTSRequest * pFrm); + tDot11fWMMAddTSRequest * pFrm, bool append_ie); uint32_t dot11f_pack_wmm_add_ts_request(tpAniSirGlobal pCtx, tDot11fWMMAddTSRequest *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9313,7 +9829,7 @@ extern "C" { uint32_t dot11f_unpack_wmm_add_ts_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fWMMAddTSResponse * pFrm); + tDot11fWMMAddTSResponse * pFrm, bool append_ie); uint32_t dot11f_pack_wmm_add_ts_response(tpAniSirGlobal pCtx, tDot11fWMMAddTSResponse *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9341,7 +9857,7 @@ extern "C" { uint32_t dot11f_unpack_wmm_del_ts(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fWMMDelTS * pFrm); + tDot11fWMMDelTS * pFrm, bool append_ie); uint32_t dot11f_pack_wmm_del_ts(tpAniSirGlobal pCtx, tDot11fWMMDelTS *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9367,7 +9883,7 @@ extern "C" { uint32_t dot11f_unpack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fext_channel_switch_action_frame * pFrm); + tDot11fext_channel_switch_action_frame * pFrm, bool append_ie); uint32_t dot11f_pack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, tDot11fext_channel_switch_action_frame *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9394,7 +9910,7 @@ extern "C" { uint32_t dot11f_unpack_ht2040_bss_coexistence_mgmt_action_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fht2040_bss_coexistence_mgmt_action_frame * pFrm); + tDot11fht2040_bss_coexistence_mgmt_action_frame * pFrm, bool append_ie); uint32_t dot11f_pack_ht2040_bss_coexistence_mgmt_action_frame(tpAniSirGlobal pCtx, tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9424,7 +9940,7 @@ extern "C" { uint32_t dot11f_unpack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fp2p_oper_chan_change_confirm * pFrm); + tDot11fp2p_oper_chan_change_confirm * pFrm, bool append_ie); uint32_t dot11f_pack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx, tDot11fp2p_oper_chan_change_confirm *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); diff --git a/core/mac/src/sys/legacy/src/utils/src/dot11f.c b/core/mac/src/sys/legacy/src/utils/src/dot11f.c index 210cf8934fd4..f4747b035ba2 100644 --- a/core/mac/src/sys/legacy/src/utils/src/dot11f.c +++ b/core/mac/src/sys/legacy/src/utils/src/dot11f.c @@ -33,7 +33,7 @@ * * * This file was automatically generated by 'framesc' - * Mon Mar 13 16:17:19 2017 from the following file(s): + * Thu Apr 6 22:12:06 2017 from the following file(s): * * dot11f.frms * @@ -81,6 +81,7 @@ typedef struct sIEDefn { unsigned char oui[5]; unsigned char noui; uint8_t eid; + uint8_t extn_eid; tFRAMES_BOOL fMandatory; } tIEDefn; @@ -115,6 +116,7 @@ typedef struct sIEDefn { #define FRAMES_LOG1(ctx, sev, fmt, p1) #define FRAMES_LOG2(ctx, sev, fmt, p1, p2) #define FRAMES_LOG3(ctx, sev, fmt, p1, p2, p3) +#define FRAMES_LOG4(ctx, sev, fmt, p1, p2, p3, p4) #define FRAMES_DUMP(ctx, sev, p, n) #ifndef FRAMES_SEV_FOR_FRAME #define FRAMES_SEV_FOR_FRAME(ctx, sig) FRLOG3 @@ -297,15 +299,20 @@ static const tIEDefn *find_ie_defn(tpAniSirGlobal pCtx, (void)pCtx; pIe = &(IEs[0]); - while (0xff != pIe->eid) { + while (0xff != pIe->eid || pIe->extn_eid) { if (*pBuf == pIe->eid) { - if (0 == pIe->noui) - return pIe; + if (pIe->eid == 0xff) { + if ((*(pBuf + 2)) == pIe->extn_eid) + return pIe; + } else { + if (0 == pIe->noui) + return pIe; - if ((nBuf > (uint32_t)(pIe->noui + 2)) && - (!DOT11F_MEMCMP(pCtx, pBuf + 2, pIe->oui, - pIe->noui))) - return pIe; + if ((nBuf > (uint32_t)(pIe->noui + 2)) && + (!DOT11F_MEMCMP(pCtx, pBuf + 2, pIe->oui, + pIe->noui))) + return pIe; + } } ++pIe; @@ -354,7 +361,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, const tFFDefn FFs[], const tIEDefn IEs[], uint8_t *pFrm, - size_t nFrm); + size_t nFrm, + bool append_ie); static uint32_t pack_core(tpAniSirGlobal pCtx, uint8_t *pSrc, uint8_t *pBuf, @@ -367,9 +375,9 @@ static uint32_t get_packed_size_core(tpAniSirGlobal pCtx, uint32_t *pnNeeded, const tIEDefn IEs[]); -static uint32_t dot11f_unpack_tlv_common_func(tpAniSirGlobal pCtx, uint8_t *pBuf, - uint16_t tlvlen, uint8_t *pDstPresent, - uint8_t *pDstField) +static uint32_t dot11f_unpack_tlv_common_func(tpAniSirGlobal pCtx, + uint8_t *pBuf, uint16_t tlvlen, + uint8_t *pDstPresent, uint8_t *pDstField) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)tlvlen; /* Shutup the compiler */ @@ -380,9 +388,9 @@ static uint32_t dot11f_unpack_tlv_common_func(tpAniSirGlobal pCtx, uint8_t *pBuf return status; } /* End dot11f_unpack_tlv_common_func. */ -static uint32_t dot11f_unpack_tlv_common_func2(tpAniSirGlobal pCtx, uint8_t *pBuf, - uint16_t tlvlen, uint8_t *pDstPresent, - uint16_t *pDstState) +static uint32_t dot11f_unpack_tlv_common_func2(tpAniSirGlobal pCtx, + uint8_t *pBuf, uint16_t tlvlen, + uint8_t *pDstPresent, uint16_t *pDstState) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)tlvlen; /* Shutup the compiler */ @@ -473,7 +481,7 @@ static uint32_t unpack_tlv_core(tpAniSirGlobal pCtx, uint32_t nBuf, const tTLVDefn TLVs[], uint8_t *pFrm, - size_t nFrm); + size_t nFrm); static uint32_t pack_tlv_core(tpAniSirGlobal pCtx, uint8_t *pSrc, uint8_t *pBuf, @@ -1343,7 +1351,8 @@ uint32_t dot11f_unpack_tlv_p2_p_interface(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_gtk(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEGTK *pDst) + tDot11fIEGTK *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint16_t tmp7__; @@ -1379,7 +1388,8 @@ uint32_t dot11f_unpack_ie_gtk(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_igtk(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEIGTK *pDst) + tDot11fIEIGTK *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1406,7 +1416,8 @@ uint32_t dot11f_unpack_ie_igtk(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_r0_kh_id(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIER0KH_ID *pDst) + tDot11fIER0KH_ID *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1430,7 +1441,8 @@ uint32_t dot11f_unpack_ie_r0_kh_id(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_r1_kh_id(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIER1KH_ID *pDst) + tDot11fIER1KH_ID *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1448,7 +1460,8 @@ uint32_t dot11f_unpack_ie_r1_kh_id(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ap_channel_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEAPChannelReport *pDst) + tDot11fIEAPChannelReport *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1475,7 +1488,8 @@ uint32_t dot11f_unpack_ie_ap_channel_report(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_bcn_reporting_detail(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEBcnReportingDetail *pDst) + tDot11fIEBcnReportingDetail *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1493,7 +1507,8 @@ uint32_t dot11f_unpack_ie_bcn_reporting_detail(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_beacon_report_frm_body(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEBeaconReportFrmBody *pDst) + tDot11fIEBeaconReportFrmBody *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1517,7 +1532,8 @@ uint32_t dot11f_unpack_ie_beacon_report_frm_body(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_beacon_reporting(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEBeaconReporting *pDst) + tDot11fIEBeaconReporting *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1538,7 +1554,8 @@ uint32_t dot11f_unpack_ie_beacon_reporting(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_condensed_country_str(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIECondensedCountryStr *pDst) + tDot11fIECondensedCountryStr *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1556,7 +1573,8 @@ uint32_t dot11f_unpack_ie_condensed_country_str(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_measurement_pilot(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEMeasurementPilot *pDst) + tDot11fIEMeasurementPilot *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1578,7 +1596,8 @@ uint32_t dot11f_unpack_ie_measurement_pilot(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_multi_bssid(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEMultiBssid *pDst) + tDot11fIEMultiBssid *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1600,7 +1619,8 @@ uint32_t dot11f_unpack_ie_multi_bssid(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ric_data(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERICData *pDst) + tDot11fIERICData *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1624,7 +1644,8 @@ uint32_t dot11f_unpack_ie_ric_data(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ric_descriptor(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERICDescriptor *pDst) + tDot11fIERICDescriptor *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1646,7 +1667,8 @@ uint32_t dot11f_unpack_ie_ric_descriptor(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERRMEnabledCap *pDst) + tDot11fIERRMEnabledCap *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp8__; @@ -1712,7 +1734,8 @@ uint32_t dot11f_unpack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_requested_info(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERequestedInfo *pDst) + tDot11fIERequestedInfo *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1731,7 +1754,8 @@ uint32_t dot11f_unpack_ie_requested_info(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ssid(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIESSID *pDst) + tDot11fIESSID *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1757,7 +1781,8 @@ uint32_t dot11f_unpack_ie_ssid(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_schedule(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIESchedule *pDst) + tDot11fIESchedule *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint16_t tmp13__; @@ -1792,7 +1817,8 @@ uint32_t dot11f_unpack_ie_schedule(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_tclas(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETCLAS *pDst) + tDot11fIETCLAS *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1886,7 +1912,8 @@ uint32_t dot11f_unpack_ie_tclas(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ts_delay(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETSDelay *pDst) + tDot11fIETSDelay *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1904,7 +1931,8 @@ uint32_t dot11f_unpack_ie_ts_delay(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_tsf_info(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETSFInfo *pDst) + tDot11fIETSFInfo *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -1925,7 +1953,8 @@ uint32_t dot11f_unpack_ie_tsf_info(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_tspec(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETSPEC *pDst) + tDot11fIETSPEC *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint16_t tmp14__; @@ -2006,7 +2035,8 @@ uint32_t dot11f_unpack_ie_tspec(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_vht_caps(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEVHTCaps *pDst) + tDot11fIEVHTCaps *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint32_t tmp17__; @@ -2063,7 +2093,8 @@ uint32_t dot11f_unpack_ie_vht_caps(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_vht_operation(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEVHTOperation *pDst) + tDot11fIEVHTOperation *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2090,7 +2121,8 @@ uint32_t dot11f_unpack_ie_vht_operation(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmm_schedule(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMSchedule *pDst) + tDot11fIEWMMSchedule *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint16_t tmp20__; @@ -2132,7 +2164,8 @@ uint32_t dot11f_unpack_ie_wmm_schedule(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmmtclas(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMTCLAS *pDst) + tDot11fIEWMMTCLAS *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2230,7 +2263,8 @@ uint32_t dot11f_unpack_ie_wmmtclas(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmmtclasproc(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMTCLASPROC *pDst) + tDot11fIEWMMTCLASPROC *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2255,7 +2289,8 @@ uint32_t dot11f_unpack_ie_wmmtclasproc(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmmts_delay(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMTSDelay *pDst) + tDot11fIEWMMTSDelay *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2280,7 +2315,8 @@ uint32_t dot11f_unpack_ie_wmmts_delay(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmmtspec(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMTSPEC *pDst) + tDot11fIEWMMTSPEC *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint16_t tmp21__; @@ -2368,7 +2404,8 @@ uint32_t dot11f_unpack_ie_wmmtspec(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wider_bw_chan_switch_ann(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWiderBWChanSwitchAnn *pDst) + tDot11fIEWiderBWChanSwitchAnn *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2392,7 +2429,8 @@ uint32_t dot11f_unpack_ie_wider_bw_chan_switch_ann(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_azimuth_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEazimuth_req *pDst) + tDot11fIEazimuth_req *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2410,7 +2448,8 @@ uint32_t dot11f_unpack_ie_azimuth_req(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_max_age(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEmax_age *pDst) + tDot11fIEmax_age *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2432,30 +2471,31 @@ static const tFFDefn FFS_neighbor_rpt[] = { static const tIEDefn IES_neighbor_rpt[] = { { offsetof(tDot11fIEneighbor_rpt, TSFInfo), offsetof(tDot11fIETSFInfo, present), 0, "TSFInfo", 0, 6, 6, SigIeTSFInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TSFINFO, 0, }, + 0, DOT11F_EID_TSFINFO, 0, 0, }, { offsetof(tDot11fIEneighbor_rpt, CondensedCountryStr), offsetof(tDot11fIECondensedCountryStr, present), 0, "CondensedCountryStr", 0, 4, 4, SigIeCondensedCountryStr, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CONDENSEDCOUNTRYSTR, 0, }, + 0, DOT11F_EID_CONDENSEDCOUNTRYSTR, 0, 0, }, { offsetof(tDot11fIEneighbor_rpt, MeasurementPilot), offsetof(tDot11fIEMeasurementPilot, present), 0, "MeasurementPilot", 0, 3, 258, SigIeMeasurementPilot, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MEASUREMENTPILOT, 0, }, + 0, DOT11F_EID_MEASUREMENTPILOT, 0, 0, }, { offsetof(tDot11fIEneighbor_rpt, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fIEneighbor_rpt, MultiBssid), offsetof(tDot11fIEMultiBssid, present), 0, "MultiBssid", 0, 3, 258, SigIeMultiBssid, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MULTIBSSID, 0, }, + 0, DOT11F_EID_MULTIBSSID, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_neighbor_rpt(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEneighbor_rpt *pDst) + tDot11fIEneighbor_rpt *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp24__; @@ -2503,7 +2543,8 @@ uint32_t dot11f_unpack_ie_neighbor_rpt(tpAniSirGlobal pCtx, FFS_neighbor_rpt, IES_neighbor_rpt, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), + append_ie); return status; } /* End dot11f_unpack_ie_neighbor_rpt. */ @@ -2513,7 +2554,8 @@ uint32_t dot11f_unpack_ie_neighbor_rpt(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_req_mac_addr(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEreq_mac_addr *pDst) + tDot11fIEreq_mac_addr *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2531,7 +2573,8 @@ uint32_t dot11f_unpack_ie_req_mac_addr(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_tgt_mac_addr(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEtgt_mac_addr *pDst) + tDot11fIEtgt_mac_addr *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2549,7 +2592,8 @@ uint32_t dot11f_unpack_ie_tgt_mac_addr(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_vht_transmit_power_env(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEvht_transmit_power_env *pDst) + tDot11fIEvht_transmit_power_env *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2573,7 +2617,8 @@ uint32_t dot11f_unpack_ie_vht_transmit_power_env(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_aid(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEAID *pDst) + tDot11fIEAID *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2591,7 +2636,8 @@ uint32_t dot11f_unpack_ie_aid(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_cf_params(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIECFParams *pDst) + tDot11fIECFParams *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2618,7 +2664,8 @@ uint32_t dot11f_unpack_ie_cf_params(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_challenge_text(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEChallengeText *pDst) + tDot11fIEChallengeText *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2642,7 +2689,8 @@ uint32_t dot11f_unpack_ie_challenge_text(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_chan_switch_ann(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEChanSwitchAnn *pDst) + tDot11fIEChanSwitchAnn *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2671,18 +2719,19 @@ static const tIEDefn IES_ChannelSwitchWrapper[] = { { offsetof(tDot11fIEChannelSwitchWrapper, WiderBWChanSwitchAnn), offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn", 0, 5, 5, SigIeWiderBWChanSwitchAnn, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, 0, }, { offsetof(tDot11fIEChannelSwitchWrapper, vht_transmit_power_env), offsetof(tDot11fIEvht_transmit_power_env, present), 0, "vht_transmit_power_env", 0, 4, 7, SigIevht_transmit_power_env, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_VHT_TRANSMIT_POWER_ENV, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_VHT_TRANSMIT_POWER_ENV, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_channel_switch_wrapper(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEChannelSwitchWrapper *pDst) + tDot11fIEChannelSwitchWrapper *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2696,7 +2745,8 @@ uint32_t dot11f_unpack_ie_channel_switch_wrapper(tpAniSirGlobal pCtx, FFS_ChannelSwitchWrapper, IES_ChannelSwitchWrapper, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), + append_ie); return status; } /* End dot11f_unpack_ie_channel_switch_wrapper. */ @@ -2706,7 +2756,8 @@ uint32_t dot11f_unpack_ie_channel_switch_wrapper(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_country(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIECountry *pDst) + tDot11fIECountry *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2741,7 +2792,8 @@ uint32_t dot11f_unpack_ie_country(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEEDCAParamSet *pDst) + tDot11fIEEDCAParamSet *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp26__; @@ -2830,7 +2882,8 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_erp_info(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEERPInfo *pDst) + tDot11fIEERPInfo *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp34__; @@ -2853,7 +2906,8 @@ uint32_t dot11f_unpack_ie_erp_info(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ese_cckm_opaque(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEESECckmOpaque *pDst) + tDot11fIEESECckmOpaque *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2877,7 +2931,8 @@ uint32_t dot11f_unpack_ie_ese_cckm_opaque(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEESERadMgmtCap *pDst) + tDot11fIEESERadMgmtCap *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp35__; @@ -2901,7 +2956,8 @@ uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ese_traf_strm_met(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEESETrafStrmMet *pDst) + tDot11fIEESETrafStrmMet *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2925,7 +2981,8 @@ uint32_t dot11f_unpack_ie_ese_traf_strm_met(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ese_traf_strm_rate_set(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEESETrafStrmRateSet *pDst) + tDot11fIEESETrafStrmRateSet *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2952,7 +3009,8 @@ uint32_t dot11f_unpack_ie_ese_traf_strm_rate_set(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ese_txmit_power(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEESETxmitPower *pDst) + tDot11fIEESETxmitPower *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2973,7 +3031,8 @@ uint32_t dot11f_unpack_ie_ese_txmit_power(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ese_version(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEESEVersion *pDst) + tDot11fIEESEVersion *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2991,7 +3050,8 @@ uint32_t dot11f_unpack_ie_ese_version(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ext_cap(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEExtCap *pDst) + tDot11fIEExtCap *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -3020,7 +3080,8 @@ endUnpackIeExtCap: uint32_t dot11f_unpack_ie_ext_supp_rates(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEExtSuppRates *pDst) + tDot11fIEExtSuppRates *pDst, + bool append_ie) { uint8_t i; uint8_t rate_indx = 0; @@ -3052,7 +3113,8 @@ uint32_t dot11f_unpack_ie_ext_supp_rates(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_fh_param_set(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEFHParamSet *pDst) + tDot11fIEFHParamSet *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -3079,7 +3141,8 @@ uint32_t dot11f_unpack_ie_fh_param_set(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_fh_params(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEFHParams *pDst) + tDot11fIEFHParams *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -3100,7 +3163,8 @@ uint32_t dot11f_unpack_ie_fh_params(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_fh_patt_table(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEFHPattTable *pDst) + tDot11fIEFHPattTable *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -3140,21 +3204,23 @@ static const tFFDefn FFS_FTInfo[] = { static const tIEDefn IES_FTInfo[] = { { offsetof(tDot11fIEFTInfo, R1KH_ID), offsetof(tDot11fIER1KH_ID, present), 0, "R1KH_ID", 0, 8, 8, SigIeR1KH_ID, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_R1KH_ID, 0, }, + 0, DOT11F_EID_R1KH_ID, 0, 0, }, { offsetof(tDot11fIEFTInfo, GTK), offsetof(tDot11fIEGTK, present), 0, "GTK", - 0, 18, 45, SigIeGTK, {0, 0, 0, 0, 0}, 0, DOT11F_EID_GTK, 0, }, + 0, 18, 45, SigIeGTK, {0, 0, 0, 0, 0}, 0, DOT11F_EID_GTK, 0, 0, }, { offsetof(tDot11fIEFTInfo, R0KH_ID), offsetof(tDot11fIER0KH_ID, present), 0, "R0KH_ID", 0, 3, 50, SigIeR0KH_ID, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_R0KH_ID, 0, }, + 0, DOT11F_EID_R0KH_ID, 0, 0, }, { offsetof(tDot11fIEFTInfo, IGTK), offsetof(tDot11fIEIGTK, present), 0, - "IGTK", 0, 35, 35, SigIeIGTK, {0, 0, 0, 0, 0}, 0, DOT11F_EID_IGTK, 0, }, + "IGTK", 0, 35, 35, SigIeIGTK, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_IGTK, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_ft_info(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEFTInfo *pDst) + tDot11fIEFTInfo *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint16_t tmp36__; @@ -3183,7 +3249,8 @@ uint32_t dot11f_unpack_ie_ft_info(tpAniSirGlobal pCtx, FFS_FTInfo, IES_FTInfo, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), + append_ie); return status; } /* End dot11f_unpack_ie_ft_info. */ @@ -3193,7 +3260,8 @@ uint32_t dot11f_unpack_ie_ft_info(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ht_caps(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEHTCaps *pDst) + tDot11fIEHTCaps *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint16_t tmp37__; @@ -3286,7 +3354,8 @@ uint32_t dot11f_unpack_ie_ht_caps(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ht_info(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEHTInfo *pDst) + tDot11fIEHTInfo *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp42__; @@ -3345,7 +3414,8 @@ uint32_t dot11f_unpack_ie_ht_info(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ibss_params(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEIBSSParams *pDst) + tDot11fIEIBSSParams *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -3363,7 +3433,8 @@ uint32_t dot11f_unpack_ie_ibss_params(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_link_identifier(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIELinkIdentifier *pDst) + tDot11fIELinkIdentifier *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -3387,7 +3458,8 @@ uint32_t dot11f_unpack_ie_link_identifier(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_MBO_IE(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEMBO_IE *pDst) + tDot11fIEMBO_IE *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -3420,14 +3492,15 @@ static const tIEDefn IES_reportBeacon[] = { report.Beacon.BeaconReportFrmBody), offsetof(tDot11fIEBeaconReportFrmBody, present), 0, "BeaconReportFrmBody", 0, 2, 226, SigIeBeaconReportFrmBody, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_BEACONREPORTFRMBODY, 0, }, + 0, DOT11F_EID_BEACONREPORTFRMBODY, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEMeasurementReport *pDst) + tDot11fIEMeasurementReport *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp45__; @@ -3562,7 +3635,7 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, FFS_reportBeacon, IES_reportBeacon, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), append_ie); break; } } @@ -3580,26 +3653,26 @@ static const tFFDefn FFS_measurement_requestBeacon[] = { static const tIEDefn IES_measurement_requestBeacon[] = { { offsetof(tDot11fIEMeasurementRequest, measurement_request.Beacon.SSID), offsetof(tDot11fIESSID, present), 0, - "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 0, }, + "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 0, 0, }, { offsetof(tDot11fIEMeasurementRequest, measurement_request.Beacon.BeaconReporting), offsetof(tDot11fIEBeaconReporting, present), 0, "BeaconReporting", 0, 4, 4, SigIeBeaconReporting, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_BEACONREPORTING, 0, }, + 0, DOT11F_EID_BEACONREPORTING, 0, 0, }, { offsetof(tDot11fIEMeasurementRequest, measurement_request.Beacon.BcnReportingDetail), offsetof(tDot11fIEBcnReportingDetail, present), 0, "BcnReportingDetail", 0, 3, 3, SigIeBcnReportingDetail, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_BCNREPORTINGDETAIL, 0, }, + 0, DOT11F_EID_BCNREPORTINGDETAIL, 0, 0, }, { offsetof(tDot11fIEMeasurementRequest, measurement_request.Beacon.RequestedInfo), offsetof(tDot11fIERequestedInfo, present), 0, "RequestedInfo", 0, 2, 257, SigIeRequestedInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_REQUESTEDINFO, 0, }, + 0, DOT11F_EID_REQUESTEDINFO, 0, 0, }, { offsetof(tDot11fIEMeasurementRequest, measurement_request.Beacon.APChannelReport), offsetof(tDot11fIEAPChannelReport, present), - offsetof(tDot11fIEMeasurementRequest, measurement_request.Beacon.num_APChannelReport), "APChannelReport", 2, 3, 53, SigIeAPChannelReport, {0, 0, 0, 0, 0}, 0, DOT11F_EID_APCHANNELREPORT, 0, }, + offsetof(tDot11fIEMeasurementRequest, measurement_request.Beacon.num_APChannelReport), "APChannelReport", 2, 3, 53, SigIeAPChannelReport, {0, 0, 0, 0, 0}, 0, DOT11F_EID_APCHANNELREPORT, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; @@ -3611,19 +3684,19 @@ static const tIEDefn IES_measurement_requestlci[] = { { offsetof(tDot11fIEMeasurementRequest, measurement_request.lci.azimuth_req), offsetof(tDot11fIEazimuth_req, present), 0, "azimuth_req", 0, 3, 3, SigIeazimuth_req, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_AZIMUTH_REQ, 0, }, + 0, DOT11F_EID_AZIMUTH_REQ, 0, 0, }, { offsetof(tDot11fIEMeasurementRequest, measurement_request.lci.req_mac_addr), offsetof(tDot11fIEreq_mac_addr, present), 0, "req_mac_addr", 0, 8, 8, SigIereq_mac_addr, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_REQ_MAC_ADDR, 0, }, + 0, DOT11F_EID_REQ_MAC_ADDR, 0, 0, }, { offsetof(tDot11fIEMeasurementRequest, measurement_request.lci.tgt_mac_addr), offsetof(tDot11fIEtgt_mac_addr, present), 0, "tgt_mac_addr", 0, 8, 8, SigIetgt_mac_addr, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TGT_MAC_ADDR, 0, }, + 0, DOT11F_EID_TGT_MAC_ADDR, 0, 0, }, { offsetof(tDot11fIEMeasurementRequest, measurement_request.lci.max_age), offsetof(tDot11fIEmax_age, present), 0, "max_age", 0, 4, 4, SigIemax_age, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MAX_AGE, 0, }, + 0, DOT11F_EID_MAX_AGE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; @@ -3635,18 +3708,19 @@ static const tIEDefn IES_measurement_requestftmrr[] = { { offsetof(tDot11fIEMeasurementRequest, measurement_request.ftmrr.neighbor_rpt), offsetof(tDot11fIEneighbor_rpt, present), 0, "neighbor_rpt", 0, 15, 548, SigIeneighbor_rpt, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_NEIGHBOR_RPT, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_NEIGHBOR_RPT, 0, 0, }, { offsetof(tDot11fIEMeasurementRequest, measurement_request.ftmrr.max_age), offsetof(tDot11fIEmax_age, present), 0, "max_age", 0, 4, 4, SigIemax_age, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MAX_AGE, 0, }, + 0, DOT11F_EID_MAX_AGE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEMeasurementRequest *pDst) + tDot11fIEMeasurementRequest *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp48__; @@ -3728,7 +3802,7 @@ uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, FFS_measurement_requestBeacon, IES_measurement_requestBeacon, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), append_ie); break; case 8: pDst->measurement_request.lci.loc_subject = *pBuf; @@ -3740,7 +3814,7 @@ uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, FFS_measurement_requestlci, IES_measurement_requestlci, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), append_ie); break; case 16: framesntohs(pCtx, &pDst->measurement_request.ftmrr.random_interval, pBuf, 0); @@ -3755,7 +3829,7 @@ uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, FFS_measurement_requestftmrr, IES_measurement_requestftmrr, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), append_ie); break; } (void)pCtx; @@ -3768,7 +3842,8 @@ uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_mobility_domain(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEMobilityDomain *pDst) + tDot11fIEMobilityDomain *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp49__; @@ -3797,30 +3872,31 @@ static const tFFDefn FFS_NeighborReport[] = { static const tIEDefn IES_NeighborReport[] = { { offsetof(tDot11fIENeighborReport, TSFInfo), offsetof(tDot11fIETSFInfo, present), 0, "TSFInfo", 0, 6, 6, SigIeTSFInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TSFINFO, 0, }, + 0, DOT11F_EID_TSFINFO, 0, 0, }, { offsetof(tDot11fIENeighborReport, CondensedCountryStr), offsetof(tDot11fIECondensedCountryStr, present), 0, "CondensedCountryStr", 0, 4, 4, SigIeCondensedCountryStr, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CONDENSEDCOUNTRYSTR, 0, }, + 0, DOT11F_EID_CONDENSEDCOUNTRYSTR, 0, 0, }, { offsetof(tDot11fIENeighborReport, MeasurementPilot), offsetof(tDot11fIEMeasurementPilot, present), 0, "MeasurementPilot", 0, 3, 258, SigIeMeasurementPilot, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MEASUREMENTPILOT, 0, }, + 0, DOT11F_EID_MEASUREMENTPILOT, 0, 0, }, { offsetof(tDot11fIENeighborReport, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fIENeighborReport, MultiBssid), offsetof(tDot11fIEMultiBssid, present), 0, "MultiBssid", 0, 3, 258, SigIeMultiBssid, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MULTIBSSID, 0, }, + 0, DOT11F_EID_MULTIBSSID, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_neighbor_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIENeighborReport *pDst) + tDot11fIENeighborReport *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp50__; @@ -3868,7 +3944,8 @@ uint32_t dot11f_unpack_ie_neighbor_report(tpAniSirGlobal pCtx, FFS_NeighborReport, IES_NeighborReport, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), + append_ie); return status; } /* End dot11f_unpack_ie_neighbor_report. */ @@ -3878,7 +3955,8 @@ uint32_t dot11f_unpack_ie_neighbor_report(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_obss_scan_parameters(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEOBSSScanParameters *pDst) + tDot11fIEOBSSScanParameters *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -3914,7 +3992,8 @@ uint32_t dot11f_unpack_ie_obss_scan_parameters(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_operating_mode(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEOperatingMode *pDst) + tDot11fIEOperatingMode *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp52__; @@ -3951,7 +4030,8 @@ static const tTLVDefn TLVS_P2PAssocReq[] = { uint32_t dot11f_unpack_ie_p2_p_assoc_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PAssocReq *pDst) + tDot11fIEP2PAssocReq *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -3979,7 +4059,8 @@ static const tTLVDefn TLVS_P2PAssocRes[] = { uint32_t dot11f_unpack_ie_p2_p_assoc_res(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PAssocRes *pDst) + tDot11fIEP2PAssocRes *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -4010,7 +4091,8 @@ static const tTLVDefn TLVS_P2PBeacon[] = { uint32_t dot11f_unpack_ie_p2_p_beacon(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PBeacon *pDst) + tDot11fIEP2PBeacon *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -4051,7 +4133,8 @@ static const tTLVDefn TLVS_P2PBeaconProbeRes[] = { uint32_t dot11f_unpack_ie_p2_p_beacon_probe_res(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PBeaconProbeRes *pDst) + tDot11fIEP2PBeaconProbeRes *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -4076,7 +4159,8 @@ static const tTLVDefn TLVS_P2PDeAuth[] = { uint32_t dot11f_unpack_ie_p2_p_de_auth(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PDeAuth *pDst) + tDot11fIEP2PDeAuth *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -4101,7 +4185,8 @@ static const tTLVDefn TLVS_P2PDisAssoc[] = { uint32_t dot11f_unpack_ie_p2_p_dis_assoc(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PDisAssoc *pDst) + tDot11fIEP2PDisAssoc *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -4118,7 +4203,8 @@ uint32_t dot11f_unpack_ie_p2_p_dis_assoc(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_p2_pie_opaque(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PIEOpaque *pDst) + tDot11fIEP2PIEOpaque *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4163,7 +4249,8 @@ static const tTLVDefn TLVS_P2PProbeReq[] = { uint32_t dot11f_unpack_ie_p2_p_probe_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PProbeReq *pDst) + tDot11fIEP2PProbeReq *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -4201,7 +4288,8 @@ static const tTLVDefn TLVS_P2PProbeRes[] = { uint32_t dot11f_unpack_ie_p2_p_probe_res(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEP2PProbeRes *pDst) + tDot11fIEP2PProbeRes *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -4218,7 +4306,8 @@ uint32_t dot11f_unpack_ie_p2_p_probe_res(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_pti_control(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEPTIControl *pDst) + tDot11fIEPTIControl *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4239,7 +4328,8 @@ uint32_t dot11f_unpack_ie_pti_control(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_pu_buffer_status(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEPUBufferStatus *pDst) + tDot11fIEPUBufferStatus *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp53__; @@ -4263,7 +4353,8 @@ uint32_t dot11f_unpack_ie_pu_buffer_status(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_power_caps(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEPowerCaps *pDst) + tDot11fIEPowerCaps *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4284,7 +4375,8 @@ uint32_t dot11f_unpack_ie_power_caps(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_power_constraints(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEPowerConstraints *pDst) + tDot11fIEPowerConstraints *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4302,7 +4394,8 @@ uint32_t dot11f_unpack_ie_power_constraints(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_qbss_load(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEQBSSLoad *pDst) + tDot11fIEQBSSLoad *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4326,7 +4419,8 @@ uint32_t dot11f_unpack_ie_qbss_load(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_QCN_IE(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEQCN_IE *pDst) + tDot11fIEQCN_IE *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4344,7 +4438,8 @@ uint32_t dot11f_unpack_ie_QCN_IE(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_QComVendorIE(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEQComVendorIE *pDst) + tDot11fIEQComVendorIE *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4365,7 +4460,8 @@ uint32_t dot11f_unpack_ie_QComVendorIE(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_qos_caps_ap(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEQOSCapsAp *pDst) + tDot11fIEQOSCapsAp *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp54__; @@ -4389,7 +4485,8 @@ uint32_t dot11f_unpack_ie_qos_caps_ap(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_qos_caps_station(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEQOSCapsStation *pDst) + tDot11fIEQOSCapsStation *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp55__; @@ -4415,7 +4512,8 @@ uint32_t dot11f_unpack_ie_qos_caps_station(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_qos_map_set(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEQosMapSet *pDst) + tDot11fIEQosMapSet *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4439,7 +4537,8 @@ uint32_t dot11f_unpack_ie_qos_map_set(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_quiet(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEQuiet *pDst) + tDot11fIEQuiet *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4466,7 +4565,8 @@ uint32_t dot11f_unpack_ie_quiet(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_rcpiie(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERCPIIE *pDst) + tDot11fIERCPIIE *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4488,53 +4588,54 @@ static const tFFDefn FFS_RICDataDesc[] = { static const tIEDefn IES_RICDataDesc[] = { { offsetof(tDot11fIERICDataDesc, RICData), offsetof(tDot11fIERICData, present), 0, "RICData", 0, 6, 6, SigIeRICData, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDATA, 1, }, + 0, DOT11F_EID_RICDATA, 0, 1, }, { offsetof(tDot11fIERICDataDesc, RICDescriptor), offsetof(tDot11fIERICDescriptor, present), 0, "RICDescriptor", 0, 3, 258, SigIeRICDescriptor, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDESCRIPTOR, 0, }, + 0, DOT11F_EID_RICDESCRIPTOR, 0, 0, }, { offsetof(tDot11fIERICDataDesc, TSPEC), offsetof(tDot11fIETSPEC, present), 0, "TSPEC", 0, 57, 57, SigIeTSPEC, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TSPEC, 0, }, + 0, DOT11F_EID_TSPEC, 0, 0, }, { offsetof(tDot11fIERICDataDesc, TCLAS), offsetof(tDot11fIETCLAS, present), offsetof(tDot11fIERICDataDesc, num_TCLAS), "TCLAS", - 2, 7, 45, SigIeTCLAS, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TCLAS, 0, }, + 2, 7, 45, SigIeTCLAS, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TCLAS, 0, 0, }, { offsetof(tDot11fIERICDataDesc, TCLASSPROC), offsetof(tDot11fIETCLASSPROC, present), 0, "TCLASSPROC", 0, 3, 3, SigIeTCLASSPROC, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TCLASSPROC, 0, }, + 0, DOT11F_EID_TCLASSPROC, 0, 0, }, { offsetof(tDot11fIERICDataDesc, TSDelay), offsetof(tDot11fIETSDelay, present), 0, "TSDelay", 0, 6, 6, SigIeTSDelay, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TSDELAY, 0, }, + 0, DOT11F_EID_TSDELAY, 0, 0, }, { offsetof(tDot11fIERICDataDesc, Schedule), offsetof(tDot11fIESchedule, present), 0, "Schedule", 0, 16, 16, SigIeSchedule, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SCHEDULE, 0, }, + 0, DOT11F_EID_SCHEDULE, 0, 0, }, { offsetof(tDot11fIERICDataDesc, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), 0, "WMMTSPEC", 0, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 0, }, + 5, DOT11F_EID_WMMTSPEC, 0, 0, }, { offsetof(tDot11fIERICDataDesc, WMMTCLAS), offsetof(tDot11fIEWMMTCLAS, present), offsetof(tDot11fIERICDataDesc, num_WMMTCLAS), "WMMTCLAS", 2, 13, 51, SigIeWMMTCLAS, {0, 80, 242, 2, 6}, - 5, DOT11F_EID_WMMTCLAS, 0, }, + 5, DOT11F_EID_WMMTCLAS, 0, 0, }, { offsetof(tDot11fIERICDataDesc, WMMTCLASPROC), offsetof(tDot11fIEWMMTCLASPROC, present), 0, "WMMTCLASPROC", 0, 9, 9, SigIeWMMTCLASPROC, {0, 80, 242, 2, 7}, - 5, DOT11F_EID_WMMTCLASPROC, 0, }, + 5, DOT11F_EID_WMMTCLASPROC, 0, 0, }, { offsetof(tDot11fIERICDataDesc, WMMTSDelay), offsetof(tDot11fIEWMMTSDelay, present), 0, "WMMTSDelay", 0, 12, 12, SigIeWMMTSDelay, {0, 80, 242, 2, 8}, - 5, DOT11F_EID_WMMTSDELAY, 0, }, + 5, DOT11F_EID_WMMTSDELAY, 0, 0, }, { offsetof(tDot11fIERICDataDesc, WMMSchedule), offsetof(tDot11fIEWMMSchedule, present), 0, "WMMSchedule", 0, 22, 22, SigIeWMMSchedule, {0, 80, 242, 2, 9}, - 5, DOT11F_EID_WMMSCHEDULE, 0, }, + 5, DOT11F_EID_WMMSCHEDULE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_ric_data_desc(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERICDataDesc *pDst) + tDot11fIERICDataDesc *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4548,7 +4649,8 @@ uint32_t dot11f_unpack_ie_ric_data_desc(tpAniSirGlobal pCtx, FFS_RICDataDesc, IES_RICDataDesc, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), + append_ie); return status; } /* End dot11f_unpack_ie_ric_data_desc. */ @@ -4558,7 +4660,8 @@ uint32_t dot11f_unpack_ie_ric_data_desc(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_rsn(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERSN *pDst) + tDot11fIERSN *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4649,7 +4752,8 @@ uint32_t dot11f_unpack_ie_rsn(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_rsniie(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERSNIIE *pDst) + tDot11fIERSNIIE *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4667,7 +4771,8 @@ uint32_t dot11f_unpack_ie_rsniie(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_rsn_opaque(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIERSNOpaque *pDst) + tDot11fIERSNOpaque *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4691,7 +4796,8 @@ uint32_t dot11f_unpack_ie_rsn_opaque(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_supp_channels(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIESuppChannels *pDst) + tDot11fIESuppChannels *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4715,7 +4821,8 @@ uint32_t dot11f_unpack_ie_supp_channels(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_supp_operating_classes(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIESuppOperatingClasses *pDst) + tDot11fIESuppOperatingClasses *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4739,7 +4846,8 @@ uint32_t dot11f_unpack_ie_supp_operating_classes(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_supp_rates(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIESuppRates *pDst) + tDot11fIESuppRates *pDst, + bool append_ie) { uint8_t i; uint8_t rate_indx = 0; @@ -4771,7 +4879,8 @@ uint32_t dot11f_unpack_ie_supp_rates(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_tim(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETIM *pDst) + tDot11fIETIM *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4804,7 +4913,8 @@ uint32_t dot11f_unpack_ie_tim(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_tpc_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETPCReport *pDst) + tDot11fIETPCReport *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4825,7 +4935,8 @@ uint32_t dot11f_unpack_ie_tpc_report(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_tpc_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETPCRequest *pDst) + tDot11fIETPCRequest *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4842,7 +4953,8 @@ uint32_t dot11f_unpack_ie_tpc_request(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_time_advertisement(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETimeAdvertisement *pDst) + tDot11fIETimeAdvertisement *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4866,7 +4978,8 @@ uint32_t dot11f_unpack_ie_time_advertisement(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_timeout_interval(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIETimeoutInterval *pDst) + tDot11fIETimeoutInterval *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4887,7 +5000,8 @@ uint32_t dot11f_unpack_ie_timeout_interval(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_vht_ext_bss_load(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEVHTExtBssLoad *pDst) + tDot11fIEVHTExtBssLoad *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4917,7 +5031,8 @@ uint32_t dot11f_unpack_ie_vht_ext_bss_load(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_vendor1_ie(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEVendor1IE *pDst) + tDot11fIEVendor1IE *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4934,7 +5049,8 @@ uint32_t dot11f_unpack_ie_vendor1_ie(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_vendor3_ie(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEVendor3IE *pDst) + tDot11fIEVendor3IE *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -4951,7 +5067,8 @@ uint32_t dot11f_unpack_ie_vendor3_ie(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wapi(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWAPI *pDst) + tDot11fIEWAPI *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint16_t tmp56__; @@ -5020,7 +5137,8 @@ uint32_t dot11f_unpack_ie_wapi(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wapi_opaque(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWAPIOpaque *pDst) + tDot11fIEWAPIOpaque *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5044,7 +5162,8 @@ uint32_t dot11f_unpack_ie_wapi_opaque(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wfatpc(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWFATPC *pDst) + tDot11fIEWFATPC *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5065,7 +5184,8 @@ uint32_t dot11f_unpack_ie_wfatpc(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wfdie_opaque(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWFDIEOpaque *pDst) + tDot11fIEWFDIEOpaque *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5089,7 +5209,8 @@ uint32_t dot11f_unpack_ie_wfdie_opaque(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmm_caps(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMCaps *pDst) + tDot11fIEWMMCaps *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp57__; @@ -5120,7 +5241,8 @@ uint32_t dot11f_unpack_ie_wmm_caps(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmm_info_ap(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMInfoAp *pDst) + tDot11fIEWMMInfoAp *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp58__; @@ -5145,7 +5267,8 @@ uint32_t dot11f_unpack_ie_wmm_info_ap(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmm_info_station(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMInfoStation *pDst) + tDot11fIEWMMInfoStation *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp59__; @@ -5174,7 +5297,8 @@ uint32_t dot11f_unpack_ie_wmm_info_station(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWMMParams *pDst) + tDot11fIEWMMParams *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp60__; @@ -5270,7 +5394,8 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wpa(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWPA *pDst) + tDot11fIEWPA *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5343,7 +5468,8 @@ uint32_t dot11f_unpack_ie_wpa(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wpa_opaque(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWPAOpaque *pDst) + tDot11fIEWPAOpaque *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5440,7 +5566,8 @@ static const tTLVDefn TLVS_WSC[] = { uint32_t dot11f_unpack_ie_wsc(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWSC *pDst) + tDot11fIEWSC *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -5471,7 +5598,8 @@ static const tTLVDefn TLVS_WscAssocReq[] = { uint32_t dot11f_unpack_ie_wsc_assoc_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWscAssocReq *pDst) + tDot11fIEWscAssocReq *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -5502,7 +5630,8 @@ static const tTLVDefn TLVS_WscAssocRes[] = { uint32_t dot11f_unpack_ie_wsc_assoc_res(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWscAssocRes *pDst) + tDot11fIEWscAssocRes *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -5554,7 +5683,8 @@ static const tTLVDefn TLVS_WscBeacon[] = { uint32_t dot11f_unpack_ie_wsc_beacon(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWscBeacon *pDst) + tDot11fIEWscBeacon *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -5631,7 +5761,8 @@ static const tTLVDefn TLVS_WscBeaconProbeRes[] = { uint32_t dot11f_unpack_ie_wsc_beacon_probe_res(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWscBeaconProbeRes *pDst) + tDot11fIEWscBeaconProbeRes *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -5648,7 +5779,8 @@ uint32_t dot11f_unpack_ie_wsc_beacon_probe_res(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_wsc_ie_opaque(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWscIEOpaque *pDst) + tDot11fIEWscIEOpaque *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5727,7 +5859,8 @@ static const tTLVDefn TLVS_WscProbeReq[] = { uint32_t dot11f_unpack_ie_wsc_probe_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWscProbeReq *pDst) + tDot11fIEWscProbeReq *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -5804,7 +5937,8 @@ static const tTLVDefn TLVS_WscProbeRes[] = { uint32_t dot11f_unpack_ie_wsc_probe_res(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWscProbeRes *pDst) + tDot11fIEWscProbeRes *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -5835,7 +5969,8 @@ static const tTLVDefn TLVS_WscReassocRes[] = { uint32_t dot11f_unpack_ie_wsc_reassoc_res(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEWscReassocRes *pDst) + tDot11fIEWscReassocRes *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void)pBuf; (void)ielen; /* Shutup the compiler */ @@ -5852,7 +5987,8 @@ uint32_t dot11f_unpack_ie_wsc_reassoc_res(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ext_chan_switch_ann(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEext_chan_switch_ann *pDst) + tDot11fIEext_chan_switch_ann *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5876,24 +6012,227 @@ uint32_t dot11f_unpack_ie_ext_chan_switch_ann(tpAniSirGlobal pCtx, #define SigIeext_chan_switch_ann (0x007c) +uint32_t dot11f_unpack_ie_fils_assoc_delay_info(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_assoc_delay_info *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + pDst->assoc_delay_info = *pBuf; + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_assoc_delay_info. */ + +#define SigIefils_assoc_delay_info (0x007d) + + +uint32_t dot11f_unpack_ie_fils_hlp_container(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_hlp_container *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + DOT11F_MEMCPY(pCtx, pDst->dest_mac, pBuf, 6); + pBuf += 6; + ielen -= (uint8_t)6; + DOT11F_MEMCPY(pCtx, pDst->src_mac, pBuf, 6); + pBuf += 6; + ielen -= (uint8_t)6; + pDst->num_hlp_packet = (uint8_t)(ielen); + DOT11F_MEMCPY(pCtx, pDst->hlp_packet, pBuf, (ielen)); + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_hlp_container. */ + +#define SigIefils_hlp_container (0x007e) + + +uint32_t dot11f_unpack_ie_fils_indication(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_indication *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + uint16_t tmp68__; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + framesntohs(pCtx, &tmp68__, pBuf, 0); + pBuf += 2; + ielen -= 2; + pDst->public_key_identifiers_cnt = tmp68__ >> 0 & 0x7; + pDst->realm_identifiers_cnt = tmp68__ >> 3 & 0x7; + pDst->is_ip_config_supported = tmp68__ >> 6 & 0x1; + pDst->is_cache_id_present = tmp68__ >> 7 & 0x1; + pDst->is_hessid_present = tmp68__ >> 8 & 0x1; + pDst->is_fils_sk_auth_supported = tmp68__ >> 9 & 0x1; + pDst->is_fils_sk_auth_pfs_supported = tmp68__ >> 10 & 0x1; + pDst->is_pk_auth_supported = tmp68__ >> 11 & 0x1; + pDst->reserved = tmp68__ >> 12 & 0xf; + pDst->num_variable_data = (uint8_t)(ielen); + DOT11F_MEMCPY(pCtx, pDst->variable_data, pBuf, (ielen)); + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_indication. */ + +#define SigIefils_indication (0x007f) + + +uint32_t dot11f_unpack_ie_fils_kde(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_kde *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + DOT11F_MEMCPY(pCtx, pDst->key_rsc, pBuf, 8); + pBuf += 8; + ielen -= (uint8_t)8; + pDst->num_kde_list = (uint8_t)(ielen); + DOT11F_MEMCPY(pCtx, pDst->kde_list, pBuf, (ielen)); + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_kde. */ + +#define SigIefils_kde (0x0080) + + +uint32_t dot11f_unpack_ie_fils_key_confirmation(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_key_confirmation *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + pDst->num_key_auth = (uint8_t)(ielen); + DOT11F_MEMCPY(pCtx, pDst->key_auth, pBuf, (ielen)); + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_key_confirmation. */ + +#define SigIefils_key_confirmation (0x0081) + + +uint32_t dot11f_unpack_ie_fils_nonce(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_nonce *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + DOT11F_MEMCPY(pCtx, pDst->nonce, pBuf, 16); + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_nonce. */ + +#define SigIefils_nonce (0x0082) + + +uint32_t dot11f_unpack_ie_fils_public_key(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_public_key *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + pDst->key_type = *pBuf; + pBuf += 1; + ielen -= (uint8_t)1; + pDst->num_public_key = (uint8_t)(ielen); + DOT11F_MEMCPY(pCtx, pDst->public_key, pBuf, (ielen)); + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_public_key. */ + +#define SigIefils_public_key (0x0083) + + +uint32_t dot11f_unpack_ie_fils_session(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_session *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + DOT11F_MEMCPY(pCtx, pDst->session, pBuf, 8); + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_session. */ + +#define SigIefils_session (0x0084) + + +uint32_t dot11f_unpack_ie_fils_wrapped_data(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEfils_wrapped_data *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + pDst->num_wrapped_data = (uint8_t)(ielen); + DOT11F_MEMCPY(pCtx, pDst->wrapped_data, pBuf, (ielen)); + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_wrapped_data. */ + +#define SigIefils_wrapped_data (0x0085) + + uint32_t dot11f_unpack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEhs20vendor_ie *pDst) + tDot11fIEhs20vendor_ie *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp68__; + uint8_t tmp69__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp68__ = *pBuf; + tmp69__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->dgaf_dis = tmp68__ >> 0 & 0x1; - pDst->hs_id_present = tmp68__ >> 1 & 0x3; - pDst->reserved = tmp68__ >> 3 & 0x1; - pDst->release_num = tmp68__ >> 4 & 0xf; + pDst->dgaf_dis = tmp69__ >> 0 & 0x1; + pDst->hs_id_present = tmp69__ >> 1 & 0x3; + pDst->reserved = tmp69__ >> 3 & 0x1; + pDst->release_num = tmp69__ >> 4 & 0xf; if (!ielen) { return 0U; } else { @@ -5914,38 +6253,40 @@ uint32_t dot11f_unpack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, return status; } /* End dot11f_unpack_ie_hs20vendor_ie. */ -#define SigIehs20vendor_ie (0x007d) +#define SigIehs20vendor_ie (0x0086) uint32_t dot11f_unpack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEht2040_bss_coexistence *pDst) + tDot11fIEht2040_bss_coexistence *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp69__; + uint8_t tmp70__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp69__ = *pBuf; - pDst->info_request = tmp69__ >> 0 & 0x1; - pDst->forty_mhz_intolerant = tmp69__ >> 1 & 0x1; - pDst->twenty_mhz_bsswidth_req = tmp69__ >> 2 & 0x1; - pDst->obss_scan_exemption_req = tmp69__ >> 3 & 0x1; - pDst->obss_scan_exemption_grant = tmp69__ >> 4 & 0x1; - pDst->unused = tmp69__ >> 5 & 0x7; + tmp70__ = *pBuf; + pDst->info_request = tmp70__ >> 0 & 0x1; + pDst->forty_mhz_intolerant = tmp70__ >> 1 & 0x1; + pDst->twenty_mhz_bsswidth_req = tmp70__ >> 2 & 0x1; + pDst->obss_scan_exemption_req = tmp70__ >> 3 & 0x1; + pDst->obss_scan_exemption_grant = tmp70__ >> 4 & 0x1; + pDst->unused = tmp70__ >> 5 & 0x7; (void)pCtx; return status; } /* End dot11f_unpack_ie_ht2040_bss_coexistence. */ -#define SigIeht2040_bss_coexistence (0x007e) +#define SigIeht2040_bss_coexistence (0x0087) uint32_t dot11f_unpack_ie_ht2040_bss_intolerant_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEht2040_bss_intolerant_report *pDst) + tDot11fIEht2040_bss_intolerant_report *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5966,13 +6307,14 @@ uint32_t dot11f_unpack_ie_ht2040_bss_intolerant_report(tpAniSirGlobal pCtx, return status; } /* End dot11f_unpack_ie_ht2040_bss_intolerant_report. */ -#define SigIeht2040_bss_intolerant_report (0x007f) +#define SigIeht2040_bss_intolerant_report (0x0088) uint32_t dot11f_unpack_ie_sec_chan_offset_ele(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEsec_chan_offset_ele *pDst) + tDot11fIEsec_chan_offset_ele *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -5984,7 +6326,7 @@ uint32_t dot11f_unpack_ie_sec_chan_offset_ele(tpAniSirGlobal pCtx, return status; } /* End dot11f_unpack_ie_sec_chan_offset_ele. */ -#define SigIesec_chan_offset_ele (0x0080) +#define SigIesec_chan_offset_ele (0x0089) static const tFFDefn FFS_vendor_vht_ie[] = { @@ -5994,18 +6336,19 @@ static const tFFDefn FFS_vendor_vht_ie[] = { static const tIEDefn IES_vendor_vht_ie[] = { { offsetof(tDot11fIEvendor_vht_ie, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fIEvendor_vht_ie, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTOPERATION, 0, }, + 0, DOT11F_EID_VHTOPERATION, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_vendor_vht_ie(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEvendor_vht_ie *pDst) + tDot11fIEvendor_vht_ie *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -6025,11 +6368,12 @@ uint32_t dot11f_unpack_ie_vendor_vht_ie(tpAniSirGlobal pCtx, FFS_vendor_vht_ie, IES_vendor_vht_ie, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), + append_ie); return status; } /* End dot11f_unpack_ie_vendor_vht_ie. */ -#define SigIevendor_vht_ie (0x0081) +#define SigIevendor_vht_ie (0x008a) static const tFFDefn FFS_AddTSRequest[] = { @@ -6045,40 +6389,40 @@ static const tFFDefn FFS_AddTSRequest[] = { static const tIEDefn IES_AddTSRequest[] = { { offsetof(tDot11fAddTSRequest, TSPEC), offsetof(tDot11fIETSPEC, present), 0, "TSPEC", 0, 57, 57, SigIeTSPEC, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TSPEC, 1, }, + 0, DOT11F_EID_TSPEC, 0, 1, }, { offsetof(tDot11fAddTSRequest, TCLAS), offsetof(tDot11fIETCLAS, present), offsetof(tDot11fAddTSRequest, num_TCLAS), "TCLAS", 2, 7, 45, SigIeTCLAS, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_TCLAS, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_TCLAS, 0, 0, }, { offsetof(tDot11fAddTSRequest, TCLASSPROC), offsetof(tDot11fIETCLASSPROC, present), 0, "TCLASSPROC", 0, 3, 3, SigIeTCLASSPROC, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TCLASSPROC, 0, }, + 0, DOT11F_EID_TCLASSPROC, 0, 0, }, { offsetof(tDot11fAddTSRequest, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), 0, "WMMTSPEC", 0, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 0, }, + 5, DOT11F_EID_WMMTSPEC, 0, 0, }, { offsetof(tDot11fAddTSRequest, WMMTCLAS), offsetof(tDot11fIEWMMTCLAS, present), offsetof(tDot11fAddTSRequest, num_WMMTCLAS), "WMMTCLAS", 2, 13, 51, SigIeWMMTCLAS, {0, 80, 242, 2, 6}, - 5, DOT11F_EID_WMMTCLAS, 0, }, + 5, DOT11F_EID_WMMTCLAS, 0, 0, }, { offsetof(tDot11fAddTSRequest, WMMTCLASPROC), offsetof(tDot11fIEWMMTCLASPROC, present), 0, "WMMTCLASPROC", 0, 9, 9, SigIeWMMTCLASPROC, {0, 80, 242, 2, 7}, - 5, DOT11F_EID_WMMTCLASPROC, 0, }, + 5, DOT11F_EID_WMMTCLASPROC, 0, 0, }, { offsetof(tDot11fAddTSRequest, ESETrafStrmRateSet), offsetof(tDot11fIEESETrafStrmRateSet, present), 0, "ESETrafStrmRateSet", 0, 7, 15, SigIeESETrafStrmRateSet, {0, 64, 150, 8, 0}, - 4, DOT11F_EID_ESETRAFSTRMRATESET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMRATESET, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_add_ts_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAddTSRequest *pFrm) + tDot11fAddTSRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_AddTSRequest, IES_AddTSRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -6100,54 +6444,54 @@ static const tFFDefn FFS_AddTSResponse[] = { static const tIEDefn IES_AddTSResponse[] = { { offsetof(tDot11fAddTSResponse, TSDelay), offsetof(tDot11fIETSDelay, present), 0, "TSDelay", 0, 6, 6, SigIeTSDelay, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TSDELAY, 1, }, + 0, DOT11F_EID_TSDELAY, 0, 1, }, { offsetof(tDot11fAddTSResponse, TSPEC), offsetof(tDot11fIETSPEC, present), 0, "TSPEC", 0, 57, 57, SigIeTSPEC, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TSPEC, 1, }, + 0, DOT11F_EID_TSPEC, 0, 1, }, { offsetof(tDot11fAddTSResponse, TCLAS), offsetof(tDot11fIETCLAS, present), offsetof(tDot11fAddTSResponse, num_TCLAS), "TCLAS", - 2, 7, 45, SigIeTCLAS, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TCLAS, 0, }, + 2, 7, 45, SigIeTCLAS, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TCLAS, 0, 0, }, { offsetof(tDot11fAddTSResponse, TCLASSPROC), offsetof(tDot11fIETCLASSPROC, present), 0, "TCLASSPROC", 0, 3, 3, SigIeTCLASSPROC, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TCLASSPROC, 0, }, + 0, DOT11F_EID_TCLASSPROC, 0, 0, }, { offsetof(tDot11fAddTSResponse, Schedule), offsetof(tDot11fIESchedule, present), 0, "Schedule", 0, 16, 16, SigIeSchedule, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SCHEDULE, 0, }, + 0, DOT11F_EID_SCHEDULE, 0, 0, }, { offsetof(tDot11fAddTSResponse, WMMTSDelay), offsetof(tDot11fIEWMMTSDelay, present), 0, "WMMTSDelay", 0, 12, 12, SigIeWMMTSDelay, {0, 80, 242, 2, 8}, - 5, DOT11F_EID_WMMTSDELAY, 0, }, + 5, DOT11F_EID_WMMTSDELAY, 0, 0, }, { offsetof(tDot11fAddTSResponse, WMMSchedule), offsetof(tDot11fIEWMMSchedule, present), 0, "WMMSchedule", 0, 22, 22, SigIeWMMSchedule, {0, 80, 242, 2, 9}, - 5, DOT11F_EID_WMMSCHEDULE, 0, }, + 5, DOT11F_EID_WMMSCHEDULE, 0, 0, }, { offsetof(tDot11fAddTSResponse, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), 0, "WMMTSPEC", 0, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 0, }, + 5, DOT11F_EID_WMMTSPEC, 0, 0, }, { offsetof(tDot11fAddTSResponse, WMMTCLAS), offsetof(tDot11fIEWMMTCLAS, present), offsetof(tDot11fAddTSResponse, num_WMMTCLAS), "WMMTCLAS", 2, 13, 51, SigIeWMMTCLAS, {0, 80, 242, 2, 6}, - 5, DOT11F_EID_WMMTCLAS, 0, }, + 5, DOT11F_EID_WMMTCLAS, 0, 0, }, { offsetof(tDot11fAddTSResponse, WMMTCLASPROC), offsetof(tDot11fIEWMMTCLASPROC, present), 0, "WMMTCLASPROC", 0, 9, 9, SigIeWMMTCLASPROC, {0, 80, 242, 2, 7}, - 5, DOT11F_EID_WMMTCLASPROC, 0, }, + 5, DOT11F_EID_WMMTCLASPROC, 0, 0, }, { offsetof(tDot11fAddTSResponse, ESETrafStrmMet), offsetof(tDot11fIEESETrafStrmMet, present), 0, "ESETrafStrmMet", 0, 10, 10, SigIeESETrafStrmMet, {0, 64, 150, 7, 0}, - 4, DOT11F_EID_ESETRAFSTRMMET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMMET, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_add_ts_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAddTSResponse *pFrm) + tDot11fAddTSResponse *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_AddTSResponse, IES_AddTSResponse, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -6164,114 +6508,131 @@ static const tFFDefn FFS_AssocRequest[] = { static const tIEDefn IES_AssocRequest[] = { { offsetof(tDot11fAssocRequest, SSID), offsetof(tDot11fIESSID, present), 0, - "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 1, }, + "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 0, 1, }, { offsetof(tDot11fAssocRequest, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fAssocRequest, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode", 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OPERATINGMODE, 0, }, + 0, DOT11F_EID_OPERATINGMODE, 0, 0, }, { offsetof(tDot11fAssocRequest, PowerCaps), offsetof(tDot11fIEPowerCaps, present), 0, "PowerCaps", 0, 4, 4, SigIePowerCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_POWERCAPS, 0, }, + 0, DOT11F_EID_POWERCAPS, 0, 0, }, { offsetof(tDot11fAssocRequest, SuppChannels), offsetof(tDot11fIESuppChannels, present), 0, "SuppChannels", 0, 4, 98, SigIeSuppChannels, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPCHANNELS, 0, }, + 0, DOT11F_EID_SUPPCHANNELS, 0, 0, }, { offsetof(tDot11fAssocRequest, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fAssocRequest, QOSCapsStation), offsetof(tDot11fIEQOSCapsStation, present), 0, "QOSCapsStation", 0, 3, 3, SigIeQOSCapsStation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QOSCAPSSTATION, 0, }, + 0, DOT11F_EID_QOSCAPSSTATION, 0, 0, }, { offsetof(tDot11fAssocRequest, RSNOpaque), offsetof(tDot11fIERSNOpaque, present), 0, "RSNOpaque", 0, 8, 255, SigIeRSNOpaque, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RSNOPAQUE, 0, }, + 0, DOT11F_EID_RSNOPAQUE, 0, 0, }, { offsetof(tDot11fAssocRequest, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fAssocRequest, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fAssocRequest, SuppOperatingClasses), offsetof(tDot11fIESuppOperatingClasses, present), 0, "SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, }, { offsetof(tDot11fAssocRequest, WAPIOpaque), offsetof(tDot11fIEWAPIOpaque, present), 0, "WAPIOpaque", 0, 8, 255, SigIeWAPIOpaque, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_WAPIOPAQUE, 0, }, + 0, DOT11F_EID_WAPIOPAQUE, 0, 0, }, { offsetof(tDot11fAssocRequest, WAPI), offsetof(tDot11fIEWAPI, present), 0, - "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, 0, DOT11F_EID_WAPI, 0, }, + "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_WAPI, 0, 0, }, { offsetof(tDot11fAssocRequest, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fAssocRequest, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet", 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QOSMAPSET, 0, }, + 0, DOT11F_EID_QOSMAPSET, 0, 0, }, { offsetof(tDot11fAssocRequest, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fAssocRequest, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, + { offsetof(tDot11fAssocRequest, fils_session), + offsetof(tDot11fIEfils_session, present), 0, "fils_session", + 0, 10, 10, SigIefils_session, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_SESSION, 4, 0, }, + { offsetof(tDot11fAssocRequest, fils_public_key), + offsetof(tDot11fIEfils_public_key, present), 0, "fils_public_key", + 0, 3, 258, SigIefils_public_key, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_PUBLIC_KEY, 12, 0, }, + { offsetof(tDot11fAssocRequest, fils_key_confirmation), + offsetof(tDot11fIEfils_key_confirmation, present), 0, + "fils_key_confirmation", 0, 2, 257, SigIefils_key_confirmation, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_FILS_KEY_CONFIRMATION, 3, 0, }, + { offsetof(tDot11fAssocRequest, fils_hlp_container), + offsetof(tDot11fIEfils_hlp_container, present), 0, "fils_hlp_container", + 0, 14, 269, SigIefils_hlp_container, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_HLP_CONTAINER, 5, 0, }, { offsetof(tDot11fAssocRequest, WPAOpaque), offsetof(tDot11fIEWPAOpaque, present), 0, "WPAOpaque", 0, 8, 255, SigIeWPAOpaque, {0, 80, 242, 1, 0}, - 4, DOT11F_EID_WPAOPAQUE, 0, }, + 4, DOT11F_EID_WPAOPAQUE, 0, 0, }, { offsetof(tDot11fAssocRequest, WMMCaps), offsetof(tDot11fIEWMMCaps, present), 0, "WMMCaps", 0, 9, 9, SigIeWMMCaps, {0, 80, 242, 2, 5}, - 5, DOT11F_EID_WMMCAPS, 0, }, + 5, DOT11F_EID_WMMCAPS, 0, 0, }, { offsetof(tDot11fAssocRequest, WMMInfoStation), offsetof(tDot11fIEWMMInfoStation, present), 0, "WMMInfoStation", 0, 9, 9, SigIeWMMInfoStation, {0, 80, 242, 2, 0}, - 5, DOT11F_EID_WMMINFOSTATION, 0, }, + 5, DOT11F_EID_WMMINFOSTATION, 0, 0, }, { offsetof(tDot11fAssocRequest, WscIEOpaque), offsetof(tDot11fIEWscIEOpaque, present), 0, "WscIEOpaque", 0, 8, 255, SigIeWscIEOpaque, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCIEOPAQUE, 0, }, + 4, DOT11F_EID_WSCIEOPAQUE, 0, 0, }, { offsetof(tDot11fAssocRequest, ESERadMgmtCap), offsetof(tDot11fIEESERadMgmtCap, present), 0, "ESERadMgmtCap", 0, 8, 8, SigIeESERadMgmtCap, {0, 64, 150, 1, 0}, - 4, DOT11F_EID_ESERADMGMTCAP, 0, }, + 4, DOT11F_EID_ESERADMGMTCAP, 0, 0, }, { offsetof(tDot11fAssocRequest, ESEVersion), offsetof(tDot11fIEESEVersion, present), 0, "ESEVersion", 0, 7, 7, SigIeESEVersion, {0, 64, 150, 3, 0}, - 4, DOT11F_EID_ESEVERSION, 0, }, + 4, DOT11F_EID_ESEVERSION, 0, 0, }, { offsetof(tDot11fAssocRequest, P2PIEOpaque), offsetof(tDot11fIEP2PIEOpaque, present), 0, "P2PIEOpaque", 0, 8, 255, SigIeP2PIEOpaque, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PIEOPAQUE, 0, }, + 4, DOT11F_EID_P2PIEOPAQUE, 0, 0, }, { offsetof(tDot11fAssocRequest, WFDIEOpaque), offsetof(tDot11fIEWFDIEOpaque, present), 0, "WFDIEOpaque", 0, 8, 255, SigIeWFDIEOpaque, {80, 111, 154, 10, 0}, - 4, DOT11F_EID_WFDIEOPAQUE, 0, }, + 4, DOT11F_EID_WFDIEOPAQUE, 0, 0, }, { offsetof(tDot11fAssocRequest, vendor_vht_ie), offsetof(tDot11fIEvendor_vht_ie, present), 0, "vendor_vht_ie", 0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 0, 0}, - 3, DOT11F_EID_VENDOR_VHT_IE, 0, }, + 3, DOT11F_EID_VENDOR_VHT_IE, 0, 0, }, { offsetof(tDot11fAssocRequest, hs20vendor_ie), offsetof(tDot11fIEhs20vendor_ie, present), 0, "hs20vendor_ie", 0, 7, 9, SigIehs20vendor_ie, {80, 111, 154, 16, 0}, - 4, DOT11F_EID_HS20VENDOR_IE, 0, }, + 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, { offsetof(tDot11fAssocRequest, QCN_IE), offsetof(tDot11fIEQCN_IE, present), 0, "QCN_IE", 0, 10, 10, SigIeQCN_IE, {140, 253, 240, 1, 0}, - 4, DOT11F_EID_QCN_IE, 0, }, + 4, DOT11F_EID_QCN_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_assoc_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAssocRequest *pFrm) + tDot11fAssocRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_AssocRequest, IES_AssocRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -6291,114 +6652,133 @@ static const tFFDefn FFS_AssocResponse[] = { static const tIEDefn IES_AssocResponse[] = { { offsetof(tDot11fAssocResponse, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fAssocResponse, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fAssocResponse, EDCAParamSet), offsetof(tDot11fIEEDCAParamSet, present), 0, "EDCAParamSet", 0, 20, 20, SigIeEDCAParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EDCAPARAMSET, 0, }, + 0, DOT11F_EID_EDCAPARAMSET, 0, 0, }, { offsetof(tDot11fAssocResponse, RCPIIE), offsetof(tDot11fIERCPIIE, present), 0, "RCPIIE", 0, 3, 3, SigIeRCPIIE, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RCPIIE, 0, }, + 0, DOT11F_EID_RCPIIE, 0, 0, }, { offsetof(tDot11fAssocResponse, RSNIIE), offsetof(tDot11fIERSNIIE, present), 0, "RSNIIE", 0, 3, 3, SigIeRSNIIE, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RSNIIE, 0, }, + 0, DOT11F_EID_RSNIIE, 0, 0, }, { offsetof(tDot11fAssocResponse, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fAssocResponse, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fAssocResponse, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fAssocResponse, RICDataDesc), offsetof(tDot11fIERICDataDesc, present), offsetof(tDot11fAssocResponse, num_RICDataDesc), "RICDataDesc", 2, 2, 550, SigIeRICDataDesc, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDATADESC, 0, }, + 0, DOT11F_EID_RICDATADESC, 0, 0, }, { offsetof(tDot11fAssocResponse, WPA), offsetof(tDot11fIEWPA, present), 0, - "WPA", 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, }, + "WPA", 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, 0, }, { offsetof(tDot11fAssocResponse, TimeoutInterval), offsetof(tDot11fIETimeoutInterval, present), 0, "TimeoutInterval", 0, 7, 7, SigIeTimeoutInterval, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TIMEOUTINTERVAL, 0, }, + 0, DOT11F_EID_TIMEOUTINTERVAL, 0, 0, }, { offsetof(tDot11fAssocResponse, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fAssocResponse, HTInfo), offsetof(tDot11fIEHTInfo, present), 0, "HTInfo", 0, 24, 56, SigIeHTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTINFO, 0, }, + 0, DOT11F_EID_HTINFO, 0, 0, }, { offsetof(tDot11fAssocResponse, WMMParams), offsetof(tDot11fIEWMMParams, present), 0, "WMMParams", 0, 26, 26, SigIeWMMParams, {0, 80, 242, 2, 1}, - 5, DOT11F_EID_WMMPARAMS, 0, }, + 5, DOT11F_EID_WMMPARAMS, 0, 0, }, { offsetof(tDot11fAssocResponse, WMMCaps), offsetof(tDot11fIEWMMCaps, present), 0, "WMMCaps", 0, 9, 9, SigIeWMMCaps, {0, 80, 242, 2, 5}, - 5, DOT11F_EID_WMMCAPS, 0, }, + 5, DOT11F_EID_WMMCAPS, 0, 0, }, { offsetof(tDot11fAssocResponse, ESERadMgmtCap), offsetof(tDot11fIEESERadMgmtCap, present), 0, "ESERadMgmtCap", 0, 8, 8, SigIeESERadMgmtCap, {0, 64, 150, 1, 0}, - 4, DOT11F_EID_ESERADMGMTCAP, 0, }, + 4, DOT11F_EID_ESERADMGMTCAP, 0, 0, }, { offsetof(tDot11fAssocResponse, ESETrafStrmMet), offsetof(tDot11fIEESETrafStrmMet, present), 0, "ESETrafStrmMet", 0, 10, 10, SigIeESETrafStrmMet, {0, 64, 150, 7, 0}, - 4, DOT11F_EID_ESETRAFSTRMMET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMMET, 0, 0, }, { offsetof(tDot11fAssocResponse, ESETxmitPower), offsetof(tDot11fIEESETxmitPower, present), 0, "ESETxmitPower", 0, 8, 8, SigIeESETxmitPower, {0, 64, 150, 0, 0}, - 4, DOT11F_EID_ESETXMITPOWER, 0, }, + 4, DOT11F_EID_ESETXMITPOWER, 0, 0, }, { offsetof(tDot11fAssocResponse, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), offsetof(tDot11fAssocResponse, num_WMMTSPEC), "WMMTSPEC", 4, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 0, }, + 5, DOT11F_EID_WMMTSPEC, 0, 0, }, { offsetof(tDot11fAssocResponse, WscAssocRes), offsetof(tDot11fIEWscAssocRes, present), 0, "WscAssocRes", 0, 6, 37, SigIeWscAssocRes, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCASSOCRES, 0, }, + 4, DOT11F_EID_WSCASSOCRES, 0, 0, }, { offsetof(tDot11fAssocResponse, P2PAssocRes), offsetof(tDot11fIEP2PAssocRes, present), 0, "P2PAssocRes", 0, 6, 17, SigIeP2PAssocRes, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PASSOCRES, 0, }, + 4, DOT11F_EID_P2PASSOCRES, 0, 0, }, { offsetof(tDot11fAssocResponse, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fAssocResponse, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTOPERATION, 0, }, + 0, DOT11F_EID_VHTOPERATION, 0, 0, }, { offsetof(tDot11fAssocResponse, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fAssocResponse, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters", 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, + 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, 0, }, { offsetof(tDot11fAssocResponse, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet", 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QOSMAPSET, 0, }, + 0, DOT11F_EID_QOSMAPSET, 0, 0, }, + { offsetof(tDot11fAssocResponse, fils_session), + offsetof(tDot11fIEfils_session, present), 0, "fils_session", + 0, 10, 10, SigIefils_session, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_SESSION, 4, 0, }, + { offsetof(tDot11fAssocResponse, fils_public_key), + offsetof(tDot11fIEfils_public_key, present), 0, "fils_public_key", + 0, 3, 258, SigIefils_public_key, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_PUBLIC_KEY, 12, 0, }, + { offsetof(tDot11fAssocResponse, fils_key_confirmation), + offsetof(tDot11fIEfils_key_confirmation, present), 0, + "fils_key_confirmation", 0, 2, 257, SigIefils_key_confirmation, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_FILS_KEY_CONFIRMATION, 3, 0, }, + { offsetof(tDot11fAssocResponse, fils_hlp_container), + offsetof(tDot11fIEfils_hlp_container, present), 0, "fils_hlp_container", + 0, 14, 269, SigIefils_hlp_container, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_HLP_CONTAINER, 5, 0, }, + { offsetof(tDot11fAssocResponse, fils_kde), offsetof(tDot11fIEfils_kde, + present), 0, "fils_kde", 0, 10, 265, SigIefils_kde, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_KDE, 7, 0, }, { offsetof(tDot11fAssocResponse, vendor_vht_ie), offsetof(tDot11fIEvendor_vht_ie, present), 0, "vendor_vht_ie", 0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 0, 0}, - 3, DOT11F_EID_VENDOR_VHT_IE, 0, }, + 3, DOT11F_EID_VENDOR_VHT_IE, 0, 0, }, { offsetof(tDot11fAssocResponse, QCN_IE), offsetof(tDot11fIEQCN_IE, present), 0, "QCN_IE", 0, 10, 10, SigIeQCN_IE, {140, 253, 240, 1, 0}, - 4, DOT11F_EID_QCN_IE, 0, }, + 4, DOT11F_EID_QCN_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_assoc_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAssocResponse *pFrm) + tDot11fAssocResponse *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_AssocResponse, IES_AssocResponse, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -6419,38 +6799,54 @@ static const tIEDefn IES_Authentication[] = { { offsetof(tDot11fAuthentication, ChallengeText), offsetof(tDot11fIEChallengeText, present), 0, "ChallengeText", 0, 3, 255, SigIeChallengeText, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CHALLENGETEXT, 0, }, + 0, DOT11F_EID_CHALLENGETEXT, 0, 0, }, { offsetof(tDot11fAuthentication, RSNOpaque), offsetof(tDot11fIERSNOpaque, present), 0, "RSNOpaque", 0, 8, 255, SigIeRSNOpaque, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RSNOPAQUE, 0, }, + 0, DOT11F_EID_RSNOPAQUE, 0, 0, }, { offsetof(tDot11fAuthentication, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fAuthentication, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fAuthentication, TimeoutInterval), offsetof(tDot11fIETimeoutInterval, present), 0, "TimeoutInterval", 0, 7, 7, SigIeTimeoutInterval, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TIMEOUTINTERVAL, 0, }, + 0, DOT11F_EID_TIMEOUTINTERVAL, 0, 0, }, { offsetof(tDot11fAuthentication, RICDataDesc), offsetof(tDot11fIERICDataDesc, present), offsetof(tDot11fAuthentication, num_RICDataDesc), "RICDataDesc", 2, 2, 550, SigIeRICDataDesc, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDATADESC, 0, }, + 0, DOT11F_EID_RICDATADESC, 0, 0, }, + { offsetof(tDot11fAuthentication, fils_nonce), + offsetof(tDot11fIEfils_nonce, present), 0, "fils_nonce", + 0, 18, 18, SigIefils_nonce, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_NONCE, 13, 0, }, + { offsetof(tDot11fAuthentication, fils_session), + offsetof(tDot11fIEfils_session, present), 0, "fils_session", + 0, 10, 10, SigIefils_session, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_SESSION, 4, 0, }, + { offsetof(tDot11fAuthentication, fils_wrapped_data), + offsetof(tDot11fIEfils_wrapped_data, present), 0, "fils_wrapped_data", + 0, 2, 257, SigIefils_wrapped_data, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_WRAPPED_DATA, 8, 0, }, + { offsetof(tDot11fAuthentication, fils_assoc_delay_info), + offsetof(tDot11fIEfils_assoc_delay_info, present), 0, + "fils_assoc_delay_info", 0, 3, 3, SigIefils_assoc_delay_info, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_FILS_ASSOC_DELAY_INFO, 1, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_authentication(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fAuthentication *pFrm) + tDot11fAuthentication *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_Authentication, IES_Authentication, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -6469,190 +6865,196 @@ static const tFFDefn FFS_Beacon[] = { static const tIEDefn IES_Beacon[] = { { offsetof(tDot11fBeacon, SSID), offsetof(tDot11fIESSID, present), 0, - "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 1, }, + "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 0, 1, }, { offsetof(tDot11fBeacon, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fBeacon, FHParamSet), offsetof(tDot11fIEFHParamSet, present), 0, "FHParamSet", 0, 7, 7, SigIeFHParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPARAMSET, 0, }, + 0, DOT11F_EID_FHPARAMSET, 0, 0, }, { offsetof(tDot11fBeacon, DSParams), offsetof(tDot11fIEDSParams, present), 0, "DSParams", 0, 3, 3, SigIeDSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_DSPARAMS, 0, }, + 0, DOT11F_EID_DSPARAMS, 0, 0, }, { offsetof(tDot11fBeacon, CFParams), offsetof(tDot11fIECFParams, present), 0, "CFParams", 0, 8, 8, SigIeCFParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CFPARAMS, 0, }, + 0, DOT11F_EID_CFPARAMS, 0, 0, }, { offsetof(tDot11fBeacon, IBSSParams), offsetof(tDot11fIEIBSSParams, present), 0, "IBSSParams", 0, 4, 4, SigIeIBSSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_IBSSPARAMS, 0, }, + 0, DOT11F_EID_IBSSPARAMS, 0, 0, }, { offsetof(tDot11fBeacon, TIM), offsetof(tDot11fIETIM, present), 0, "TIM", - 0, 6, 256, SigIeTIM, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TIM, 0, }, + 0, 6, 256, SigIeTIM, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TIM, 0, 0, }, { offsetof(tDot11fBeacon, Country), offsetof(tDot11fIECountry, present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_COUNTRY, 0, }, + 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fBeacon, FHParams), offsetof(tDot11fIEFHParams, present), 0, "FHParams", 0, 4, 4, SigIeFHParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPARAMS, 0, }, + 0, DOT11F_EID_FHPARAMS, 0, 0, }, { offsetof(tDot11fBeacon, FHPattTable), offsetof(tDot11fIEFHPattTable, present), 0, "FHPattTable", 0, 6, 257, SigIeFHPattTable, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPATTTABLE, 0, }, + 0, DOT11F_EID_FHPATTTABLE, 0, 0, }, { offsetof(tDot11fBeacon, PowerConstraints), offsetof(tDot11fIEPowerConstraints, present), 0, "PowerConstraints", 0, 3, 3, SigIePowerConstraints, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_POWERCONSTRAINTS, 0, }, + 0, DOT11F_EID_POWERCONSTRAINTS, 0, 0, }, { offsetof(tDot11fBeacon, ChanSwitchAnn), offsetof(tDot11fIEChanSwitchAnn, present), 0, "ChanSwitchAnn", 0, 5, 5, SigIeChanSwitchAnn, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CHANSWITCHANN, 0, }, + 0, DOT11F_EID_CHANSWITCHANN, 0, 0, }, { offsetof(tDot11fBeacon, ext_chan_switch_ann), offsetof(tDot11fIEext_chan_switch_ann, present), 0, "ext_chan_switch_ann", 0, 6, 6, SigIeext_chan_switch_ann, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXT_CHAN_SWITCH_ANN, 0, }, + 0, DOT11F_EID_EXT_CHAN_SWITCH_ANN, 0, 0, }, { offsetof(tDot11fBeacon, SuppOperatingClasses), offsetof(tDot11fIESuppOperatingClasses, present), 0, "SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, }, { offsetof(tDot11fBeacon, Quiet), offsetof(tDot11fIEQuiet, present), 0, - "Quiet", 0, 8, 8, SigIeQuiet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QUIET, 0, }, + "Quiet", 0, 8, 8, SigIeQuiet, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_QUIET, 0, 0, }, { offsetof(tDot11fBeacon, TPCReport), offsetof(tDot11fIETPCReport, present), 0, "TPCReport", 0, 4, 4, SigIeTPCReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TPCREPORT, 0, }, + 0, DOT11F_EID_TPCREPORT, 0, 0, }, { offsetof(tDot11fBeacon, ERPInfo), offsetof(tDot11fIEERPInfo, present), 0, "ERPInfo", 0, 3, 3, SigIeERPInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_ERPINFO, 0, }, + 0, DOT11F_EID_ERPINFO, 0, 0, }, { offsetof(tDot11fBeacon, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fBeacon, RSN), offsetof(tDot11fIERSN, present), 0, "RSN", - 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, }, + 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, }, { offsetof(tDot11fBeacon, QBSSLoad), offsetof(tDot11fIEQBSSLoad, present), 0, "QBSSLoad", 0, 7, 7, SigIeQBSSLoad, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QBSSLOAD, 0, }, + 0, DOT11F_EID_QBSSLOAD, 0, 0, }, { offsetof(tDot11fBeacon, EDCAParamSet), offsetof(tDot11fIEEDCAParamSet, present), 0, "EDCAParamSet", 0, 20, 20, SigIeEDCAParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EDCAPARAMSET, 0, }, + 0, DOT11F_EID_EDCAPARAMSET, 0, 0, }, { offsetof(tDot11fBeacon, QOSCapsAp), offsetof(tDot11fIEQOSCapsAp, present), 0, "QOSCapsAp", 0, 3, 3, SigIeQOSCapsAp, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QOSCAPSAP, 0, }, + 0, DOT11F_EID_QOSCAPSAP, 0, 0, }, { offsetof(tDot11fBeacon, APChannelReport), offsetof(tDot11fIEAPChannelReport, present), 0, "APChannelReport", 0, 3, 53, SigIeAPChannelReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_APCHANNELREPORT, 0, }, + 0, DOT11F_EID_APCHANNELREPORT, 0, 0, }, { offsetof(tDot11fBeacon, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fBeacon, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fBeacon, WPA), offsetof(tDot11fIEWPA, present), 0, "WPA", - 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, }, + 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, 0, }, { offsetof(tDot11fBeacon, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fBeacon, HTInfo), offsetof(tDot11fIEHTInfo, present), 0, "HTInfo", 0, 24, 56, SigIeHTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTINFO, 0, }, + 0, DOT11F_EID_HTINFO, 0, 0, }, { offsetof(tDot11fBeacon, sec_chan_offset_ele), offsetof(tDot11fIEsec_chan_offset_ele, present), 0, "sec_chan_offset_ele", 0, 3, 3, SigIesec_chan_offset_ele, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, }, + 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, 0, }, { offsetof(tDot11fBeacon, WMMInfoAp), offsetof(tDot11fIEWMMInfoAp, present), 0, "WMMInfoAp", 0, 9, 9, SigIeWMMInfoAp, {0, 80, 242, 2, 0}, - 5, DOT11F_EID_WMMINFOAP, 0, }, + 5, DOT11F_EID_WMMINFOAP, 0, 0, }, { offsetof(tDot11fBeacon, WMMParams), offsetof(tDot11fIEWMMParams, present), 0, "WMMParams", 0, 26, 26, SigIeWMMParams, {0, 80, 242, 2, 1}, - 5, DOT11F_EID_WMMPARAMS, 0, }, + 5, DOT11F_EID_WMMPARAMS, 0, 0, }, { offsetof(tDot11fBeacon, WMMCaps), offsetof(tDot11fIEWMMCaps, present), 0, "WMMCaps", 0, 9, 9, SigIeWMMCaps, {0, 80, 242, 2, 5}, - 5, DOT11F_EID_WMMCAPS, 0, }, + 5, DOT11F_EID_WMMCAPS, 0, 0, }, { offsetof(tDot11fBeacon, WAPI), offsetof(tDot11fIEWAPI, present), 0, - "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, 0, DOT11F_EID_WAPI, 0, }, + "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_WAPI, 0, 0, }, { offsetof(tDot11fBeacon, ESERadMgmtCap), offsetof(tDot11fIEESERadMgmtCap, present), 0, "ESERadMgmtCap", 0, 8, 8, SigIeESERadMgmtCap, {0, 64, 150, 1, 0}, - 4, DOT11F_EID_ESERADMGMTCAP, 0, }, + 4, DOT11F_EID_ESERADMGMTCAP, 0, 0, }, { offsetof(tDot11fBeacon, ESETrafStrmMet), offsetof(tDot11fIEESETrafStrmMet, present), 0, "ESETrafStrmMet", 0, 10, 10, SigIeESETrafStrmMet, {0, 64, 150, 7, 0}, - 4, DOT11F_EID_ESETRAFSTRMMET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMMET, 0, 0, }, { offsetof(tDot11fBeacon, ESETxmitPower), offsetof(tDot11fIEESETxmitPower, present), 0, "ESETxmitPower", 0, 8, 8, SigIeESETxmitPower, {0, 64, 150, 0, 0}, - 4, DOT11F_EID_ESETXMITPOWER, 0, }, + 4, DOT11F_EID_ESETXMITPOWER, 0, 0, }, { offsetof(tDot11fBeacon, WscBeacon), offsetof(tDot11fIEWscBeacon, present), 0, "WscBeacon", 0, 6, 84, SigIeWscBeacon, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCBEACON, 0, }, + 4, DOT11F_EID_WSCBEACON, 0, 0, }, { offsetof(tDot11fBeacon, P2PBeacon), offsetof(tDot11fIEP2PBeacon, present), 0, "P2PBeacon", 0, 6, 61, SigIeP2PBeacon, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PBEACON, 0, }, + 4, DOT11F_EID_P2PBEACON, 0, 0, }, { offsetof(tDot11fBeacon, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fBeacon, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTOPERATION, 0, }, + 0, DOT11F_EID_VHTOPERATION, 0, 0, }, { offsetof(tDot11fBeacon, VHTExtBssLoad), offsetof(tDot11fIEVHTExtBssLoad, present), 0, "VHTExtBssLoad", 0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTEXTBSSLOAD, 0, }, + 0, DOT11F_EID_VHTEXTBSSLOAD, 0, 0, }, { offsetof(tDot11fBeacon, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fBeacon, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode", 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OPERATINGMODE, 0, }, + 0, DOT11F_EID_OPERATINGMODE, 0, 0, }, { offsetof(tDot11fBeacon, WiderBWChanSwitchAnn), offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn", 0, 5, 5, SigIeWiderBWChanSwitchAnn, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, 0, }, { offsetof(tDot11fBeacon, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters", 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, + 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, 0, }, + { offsetof(tDot11fBeacon, fils_indication), + offsetof(tDot11fIEfils_indication, present), 0, "fils_indication", + 0, 7, 259, SigIefils_indication, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_INDICATION, 0, 0, }, { offsetof(tDot11fBeacon, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE", 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, - 3, DOT11F_EID_VENDOR1IE, 0, }, + 3, DOT11F_EID_VENDOR1IE, 0, 0, }, { offsetof(tDot11fBeacon, vendor_vht_ie), offsetof(tDot11fIEvendor_vht_ie, present), 0, "vendor_vht_ie", 0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 0, 0}, - 3, DOT11F_EID_VENDOR_VHT_IE, 0, }, + 3, DOT11F_EID_VENDOR_VHT_IE, 0, 0, }, { offsetof(tDot11fBeacon, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE", 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, - 3, DOT11F_EID_VENDOR3IE, 0, }, + 3, DOT11F_EID_VENDOR3IE, 0, 0, }, { offsetof(tDot11fBeacon, hs20vendor_ie), offsetof(tDot11fIEhs20vendor_ie, present), 0, "hs20vendor_ie", 0, 7, 9, SigIehs20vendor_ie, {80, 111, 154, 16, 0}, - 4, DOT11F_EID_HS20VENDOR_IE, 0, }, + 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, { offsetof(tDot11fBeacon, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fBeacon, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE", 0, 7, 7, SigIeQComVendorIE, - {0, 160, 198, 0, 0}, 3, DOT11F_EID_QCOMVENDORIE, 0, }, + {0, 160, 198, 0, 0}, 3, DOT11F_EID_QCOMVENDORIE, 0, 0, }, { offsetof(tDot11fBeacon, ESEVersion), offsetof(tDot11fIEESEVersion, present), 0, "ESEVersion", 0, 7, 7, SigIeESEVersion, {0, 64, 150, 3, 0}, - 4, DOT11F_EID_ESEVERSION, 0, }, + 4, DOT11F_EID_ESEVERSION, 0, 0, }, { offsetof(tDot11fBeacon, MBO_IE), offsetof(tDot11fIEMBO_IE, present), 0, "MBO_IE", 0, 9, 12, SigIeMBO_IE, {80, 111, 154, 22, 0}, - 4, DOT11F_EID_MBO_IE, 0, }, + 4, DOT11F_EID_MBO_IE, 0, 0, }, { offsetof(tDot11fBeacon, QCN_IE), offsetof(tDot11fIEQCN_IE, present), 0, "QCN_IE", 0, 10, 10, SigIeQCN_IE, {140, 253, 240, 1, 0}, - 4, DOT11F_EID_QCN_IE, 0, }, + 4, DOT11F_EID_QCN_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_beacon(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fBeacon *pFrm) + tDot11fBeacon *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_Beacon, IES_Beacon, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -6671,27 +7073,27 @@ static const tFFDefn FFS_Beacon1[] = { static const tIEDefn IES_Beacon1[] = { { offsetof(tDot11fBeacon1, SSID), offsetof(tDot11fIESSID, present), 0, - "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 1, }, + "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 0, 1, }, { offsetof(tDot11fBeacon1, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fBeacon1, DSParams), offsetof(tDot11fIEDSParams, present), 0, "DSParams", 0, 3, 3, SigIeDSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_DSPARAMS, 0, }, + 0, DOT11F_EID_DSPARAMS, 0, 0, }, { offsetof(tDot11fBeacon1, IBSSParams), offsetof(tDot11fIEIBSSParams, present), 0, "IBSSParams", 0, 4, 4, SigIeIBSSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_IBSSPARAMS, 0, }, + 0, DOT11F_EID_IBSSPARAMS, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_beacon1(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fBeacon1 *pFrm) + tDot11fBeacon1 *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_Beacon1, IES_Beacon1, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -6705,156 +7107,162 @@ static const tFFDefn FFS_Beacon2[] = { static const tIEDefn IES_Beacon2[] = { { offsetof(tDot11fBeacon2, Country), offsetof(tDot11fIECountry, present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_COUNTRY, 0, }, + 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fBeacon2, PowerConstraints), offsetof(tDot11fIEPowerConstraints, present), 0, "PowerConstraints", 0, 3, 3, SigIePowerConstraints, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_POWERCONSTRAINTS, 0, }, + 0, DOT11F_EID_POWERCONSTRAINTS, 0, 0, }, { offsetof(tDot11fBeacon2, ChanSwitchAnn), offsetof(tDot11fIEChanSwitchAnn, present), 0, "ChanSwitchAnn", 0, 5, 5, SigIeChanSwitchAnn, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CHANSWITCHANN, 0, }, + 0, DOT11F_EID_CHANSWITCHANN, 0, 0, }, { offsetof(tDot11fBeacon2, ext_chan_switch_ann), offsetof(tDot11fIEext_chan_switch_ann, present), 0, "ext_chan_switch_ann", 0, 6, 6, SigIeext_chan_switch_ann, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXT_CHAN_SWITCH_ANN, 0, }, + 0, DOT11F_EID_EXT_CHAN_SWITCH_ANN, 0, 0, }, { offsetof(tDot11fBeacon2, SuppOperatingClasses), offsetof(tDot11fIESuppOperatingClasses, present), 0, "SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, }, { offsetof(tDot11fBeacon2, Quiet), offsetof(tDot11fIEQuiet, present), 0, - "Quiet", 0, 8, 8, SigIeQuiet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QUIET, 0, }, + "Quiet", 0, 8, 8, SigIeQuiet, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_QUIET, 0, 0, }, { offsetof(tDot11fBeacon2, TPCReport), offsetof(tDot11fIETPCReport, present), 0, "TPCReport", 0, 4, 4, SigIeTPCReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TPCREPORT, 0, }, + 0, DOT11F_EID_TPCREPORT, 0, 0, }, { offsetof(tDot11fBeacon2, ERPInfo), offsetof(tDot11fIEERPInfo, present), 0, "ERPInfo", 0, 3, 3, SigIeERPInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_ERPINFO, 0, }, + 0, DOT11F_EID_ERPINFO, 0, 0, }, { offsetof(tDot11fBeacon2, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fBeacon2, RSNOpaque), offsetof(tDot11fIERSNOpaque, present), 0, "RSNOpaque", 0, 8, 255, SigIeRSNOpaque, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RSNOPAQUE, 0, }, + 0, DOT11F_EID_RSNOPAQUE, 0, 0, }, { offsetof(tDot11fBeacon2, EDCAParamSet), offsetof(tDot11fIEEDCAParamSet, present), 0, "EDCAParamSet", 0, 20, 20, SigIeEDCAParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EDCAPARAMSET, 0, }, + 0, DOT11F_EID_EDCAPARAMSET, 0, 0, }, { offsetof(tDot11fBeacon2, APChannelReport), offsetof(tDot11fIEAPChannelReport, present), 0, "APChannelReport", 0, 3, 53, SigIeAPChannelReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_APCHANNELREPORT, 0, }, + 0, DOT11F_EID_APCHANNELREPORT, 0, 0, }, { offsetof(tDot11fBeacon2, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fBeacon2, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fBeacon2, WPA), offsetof(tDot11fIEWPA, present), 0, "WPA", - 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, }, + 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, 0, }, { offsetof(tDot11fBeacon2, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fBeacon2, HTInfo), offsetof(tDot11fIEHTInfo, present), 0, "HTInfo", 0, 24, 56, SigIeHTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTINFO, 0, }, + 0, DOT11F_EID_HTINFO, 0, 0, }, { offsetof(tDot11fBeacon2, sec_chan_offset_ele), offsetof(tDot11fIEsec_chan_offset_ele, present), 0, "sec_chan_offset_ele", 0, 3, 3, SigIesec_chan_offset_ele, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, }, + 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, 0, }, { offsetof(tDot11fBeacon2, WMMInfoAp), offsetof(tDot11fIEWMMInfoAp, present), 0, "WMMInfoAp", 0, 9, 9, SigIeWMMInfoAp, {0, 80, 242, 2, 0}, - 5, DOT11F_EID_WMMINFOAP, 0, }, + 5, DOT11F_EID_WMMINFOAP, 0, 0, }, { offsetof(tDot11fBeacon2, WMMParams), offsetof(tDot11fIEWMMParams, present), 0, "WMMParams", 0, 26, 26, SigIeWMMParams, {0, 80, 242, 2, 1}, - 5, DOT11F_EID_WMMPARAMS, 0, }, + 5, DOT11F_EID_WMMPARAMS, 0, 0, }, { offsetof(tDot11fBeacon2, WMMCaps), offsetof(tDot11fIEWMMCaps, present), 0, "WMMCaps", 0, 9, 9, SigIeWMMCaps, {0, 80, 242, 2, 5}, - 5, DOT11F_EID_WMMCAPS, 0, }, + 5, DOT11F_EID_WMMCAPS, 0, 0, }, { offsetof(tDot11fBeacon2, WscBeacon), offsetof(tDot11fIEWscBeacon, present), 0, "WscBeacon", 0, 6, 84, SigIeWscBeacon, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCBEACON, 0, }, + 4, DOT11F_EID_WSCBEACON, 0, 0, }, { offsetof(tDot11fBeacon2, WAPI), offsetof(tDot11fIEWAPI, present), 0, - "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, 0, DOT11F_EID_WAPI, 0, }, + "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_WAPI, 0, 0, }, { offsetof(tDot11fBeacon2, ESERadMgmtCap), offsetof(tDot11fIEESERadMgmtCap, present), 0, "ESERadMgmtCap", 0, 8, 8, SigIeESERadMgmtCap, {0, 64, 150, 1, 0}, - 4, DOT11F_EID_ESERADMGMTCAP, 0, }, + 4, DOT11F_EID_ESERADMGMTCAP, 0, 0, }, { offsetof(tDot11fBeacon2, ESETrafStrmMet), offsetof(tDot11fIEESETrafStrmMet, present), 0, "ESETrafStrmMet", 0, 10, 10, SigIeESETrafStrmMet, {0, 64, 150, 7, 0}, - 4, DOT11F_EID_ESETRAFSTRMMET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMMET, 0, 0, }, { offsetof(tDot11fBeacon2, ESETxmitPower), offsetof(tDot11fIEESETxmitPower, present), 0, "ESETxmitPower", 0, 8, 8, SigIeESETxmitPower, {0, 64, 150, 0, 0}, - 4, DOT11F_EID_ESETXMITPOWER, 0, }, + 4, DOT11F_EID_ESETXMITPOWER, 0, 0, }, { offsetof(tDot11fBeacon2, P2PBeacon), offsetof(tDot11fIEP2PBeacon, present), 0, "P2PBeacon", 0, 6, 61, SigIeP2PBeacon, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PBEACON, 0, }, + 4, DOT11F_EID_P2PBEACON, 0, 0, }, { offsetof(tDot11fBeacon2, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fBeacon2, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTOPERATION, 0, }, + 0, DOT11F_EID_VHTOPERATION, 0, 0, }, { offsetof(tDot11fBeacon2, VHTExtBssLoad), offsetof(tDot11fIEVHTExtBssLoad, present), 0, "VHTExtBssLoad", 0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTEXTBSSLOAD, 0, }, + 0, DOT11F_EID_VHTEXTBSSLOAD, 0, 0, }, { offsetof(tDot11fBeacon2, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fBeacon2, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode", 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OPERATINGMODE, 0, }, + 0, DOT11F_EID_OPERATINGMODE, 0, 0, }, { offsetof(tDot11fBeacon2, WiderBWChanSwitchAnn), offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn", 0, 5, 5, SigIeWiderBWChanSwitchAnn, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, 0, }, { offsetof(tDot11fBeacon2, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters", 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, + 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, 0, }, + { offsetof(tDot11fBeacon2, fils_indication), + offsetof(tDot11fIEfils_indication, present), 0, "fils_indication", + 0, 7, 259, SigIefils_indication, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_INDICATION, 0, 0, }, { offsetof(tDot11fBeacon2, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE", 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, - 3, DOT11F_EID_VENDOR1IE, 0, }, + 3, DOT11F_EID_VENDOR1IE, 0, 0, }, { offsetof(tDot11fBeacon2, vendor_vht_ie), offsetof(tDot11fIEvendor_vht_ie, present), 0, "vendor_vht_ie", 0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 0, 0}, - 3, DOT11F_EID_VENDOR_VHT_IE, 0, }, + 3, DOT11F_EID_VENDOR_VHT_IE, 0, 0, }, { offsetof(tDot11fBeacon2, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE", 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, - 3, DOT11F_EID_VENDOR3IE, 0, }, + 3, DOT11F_EID_VENDOR3IE, 0, 0, }, { offsetof(tDot11fBeacon2, hs20vendor_ie), offsetof(tDot11fIEhs20vendor_ie, present), 0, "hs20vendor_ie", 0, 7, 9, SigIehs20vendor_ie, {80, 111, 154, 16, 0}, - 4, DOT11F_EID_HS20VENDOR_IE, 0, }, + 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, { offsetof(tDot11fBeacon2, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fBeacon2, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE", 0, 7, 7, SigIeQComVendorIE, - {0, 160, 198, 0, 0}, 3, DOT11F_EID_QCOMVENDORIE, 0, }, + {0, 160, 198, 0, 0}, 3, DOT11F_EID_QCOMVENDORIE, 0, 0, }, { offsetof(tDot11fBeacon2, ESEVersion), offsetof(tDot11fIEESEVersion, present), 0, "ESEVersion", 0, 7, 7, SigIeESEVersion, {0, 64, 150, 3, 0}, - 4, DOT11F_EID_ESEVERSION, 0, }, + 4, DOT11F_EID_ESEVERSION, 0, 0, }, { offsetof(tDot11fBeacon2, QCN_IE), offsetof(tDot11fIEQCN_IE, present), 0, "QCN_IE", 0, 10, 10, SigIeQCN_IE, {140, 253, 240, 1, 0}, - 4, DOT11F_EID_QCN_IE, 0, }, + 4, DOT11F_EID_QCN_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_beacon2(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fBeacon2 *pFrm) + tDot11fBeacon2 *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_Beacon2, IES_Beacon2, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -6867,196 +7275,202 @@ static const tFFDefn FFS_BeaconIEs[] = { static const tIEDefn IES_BeaconIEs[] = { { offsetof(tDot11fBeaconIEs, SSID), offsetof(tDot11fIESSID, present), 0, - "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 1, }, + "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 0, 1, }, { offsetof(tDot11fBeaconIEs, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fBeaconIEs, FHParamSet), offsetof(tDot11fIEFHParamSet, present), 0, "FHParamSet", 0, 7, 7, SigIeFHParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPARAMSET, 0, }, + 0, DOT11F_EID_FHPARAMSET, 0, 0, }, { offsetof(tDot11fBeaconIEs, DSParams), offsetof(tDot11fIEDSParams, present), 0, "DSParams", 0, 3, 3, SigIeDSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_DSPARAMS, 0, }, + 0, DOT11F_EID_DSPARAMS, 0, 0, }, { offsetof(tDot11fBeaconIEs, CFParams), offsetof(tDot11fIECFParams, present), 0, "CFParams", 0, 8, 8, SigIeCFParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CFPARAMS, 0, }, + 0, DOT11F_EID_CFPARAMS, 0, 0, }, { offsetof(tDot11fBeaconIEs, IBSSParams), offsetof(tDot11fIEIBSSParams, present), 0, "IBSSParams", 0, 4, 4, SigIeIBSSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_IBSSPARAMS, 0, }, + 0, DOT11F_EID_IBSSPARAMS, 0, 0, }, { offsetof(tDot11fBeaconIEs, TIM), offsetof(tDot11fIETIM, present), 0, - "TIM", 0, 6, 256, SigIeTIM, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TIM, 0, }, + "TIM", 0, 6, 256, SigIeTIM, {0, 0, 0, 0, 0}, 0, DOT11F_EID_TIM, 0, 0, }, { offsetof(tDot11fBeaconIEs, Country), offsetof(tDot11fIECountry, present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_COUNTRY, 0, }, + 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fBeaconIEs, FHParams), offsetof(tDot11fIEFHParams, present), 0, "FHParams", 0, 4, 4, SigIeFHParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPARAMS, 0, }, + 0, DOT11F_EID_FHPARAMS, 0, 0, }, { offsetof(tDot11fBeaconIEs, FHPattTable), offsetof(tDot11fIEFHPattTable, present), 0, "FHPattTable", 0, 6, 257, SigIeFHPattTable, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPATTTABLE, 0, }, + 0, DOT11F_EID_FHPATTTABLE, 0, 0, }, { offsetof(tDot11fBeaconIEs, PowerConstraints), offsetof(tDot11fIEPowerConstraints, present), 0, "PowerConstraints", 0, 3, 3, SigIePowerConstraints, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_POWERCONSTRAINTS, 0, }, + 0, DOT11F_EID_POWERCONSTRAINTS, 0, 0, }, { offsetof(tDot11fBeaconIEs, ChanSwitchAnn), offsetof(tDot11fIEChanSwitchAnn, present), 0, "ChanSwitchAnn", 0, 5, 5, SigIeChanSwitchAnn, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CHANSWITCHANN, 0, }, + 0, DOT11F_EID_CHANSWITCHANN, 0, 0, }, { offsetof(tDot11fBeaconIEs, ext_chan_switch_ann), offsetof(tDot11fIEext_chan_switch_ann, present), 0, "ext_chan_switch_ann", 0, 6, 6, SigIeext_chan_switch_ann, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXT_CHAN_SWITCH_ANN, 0, }, + 0, DOT11F_EID_EXT_CHAN_SWITCH_ANN, 0, 0, }, { offsetof(tDot11fBeaconIEs, SuppOperatingClasses), offsetof(tDot11fIESuppOperatingClasses, present), 0, "SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, }, { offsetof(tDot11fBeaconIEs, Quiet), offsetof(tDot11fIEQuiet, present), 0, - "Quiet", 0, 8, 8, SigIeQuiet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QUIET, 0, }, + "Quiet", 0, 8, 8, SigIeQuiet, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_QUIET, 0, 0, }, { offsetof(tDot11fBeaconIEs, TPCReport), offsetof(tDot11fIETPCReport, present), 0, "TPCReport", 0, 4, 4, SigIeTPCReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TPCREPORT, 0, }, + 0, DOT11F_EID_TPCREPORT, 0, 0, }, { offsetof(tDot11fBeaconIEs, ERPInfo), offsetof(tDot11fIEERPInfo, present), 0, "ERPInfo", 0, 3, 3, SigIeERPInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_ERPINFO, 0, }, + 0, DOT11F_EID_ERPINFO, 0, 0, }, { offsetof(tDot11fBeaconIEs, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fBeaconIEs, RSN), offsetof(tDot11fIERSN, present), 0, - "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, }, + "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, }, { offsetof(tDot11fBeaconIEs, QBSSLoad), offsetof(tDot11fIEQBSSLoad, present), 0, "QBSSLoad", 0, 7, 7, SigIeQBSSLoad, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QBSSLOAD, 0, }, + 0, DOT11F_EID_QBSSLOAD, 0, 0, }, { offsetof(tDot11fBeaconIEs, EDCAParamSet), offsetof(tDot11fIEEDCAParamSet, present), 0, "EDCAParamSet", 0, 20, 20, SigIeEDCAParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EDCAPARAMSET, 0, }, + 0, DOT11F_EID_EDCAPARAMSET, 0, 0, }, { offsetof(tDot11fBeaconIEs, QOSCapsAp), offsetof(tDot11fIEQOSCapsAp, present), 0, "QOSCapsAp", 0, 3, 3, SigIeQOSCapsAp, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QOSCAPSAP, 0, }, + 0, DOT11F_EID_QOSCAPSAP, 0, 0, }, { offsetof(tDot11fBeaconIEs, APChannelReport), offsetof(tDot11fIEAPChannelReport, present), 0, "APChannelReport", 0, 3, 53, SigIeAPChannelReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_APCHANNELREPORT, 0, }, + 0, DOT11F_EID_APCHANNELREPORT, 0, 0, }, { offsetof(tDot11fBeaconIEs, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fBeaconIEs, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fBeaconIEs, WPA), offsetof(tDot11fIEWPA, present), 0, - "WPA", 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, }, + "WPA", 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, 0, }, { offsetof(tDot11fBeaconIEs, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fBeaconIEs, HTInfo), offsetof(tDot11fIEHTInfo, present), 0, "HTInfo", 0, 24, 56, SigIeHTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTINFO, 0, }, + 0, DOT11F_EID_HTINFO, 0, 0, }, { offsetof(tDot11fBeaconIEs, sec_chan_offset_ele), offsetof(tDot11fIEsec_chan_offset_ele, present), 0, "sec_chan_offset_ele", 0, 3, 3, SigIesec_chan_offset_ele, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, }, + 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, 0, }, { offsetof(tDot11fBeaconIEs, WMMInfoAp), offsetof(tDot11fIEWMMInfoAp, present), 0, "WMMInfoAp", 0, 9, 9, SigIeWMMInfoAp, {0, 80, 242, 2, 0}, - 5, DOT11F_EID_WMMINFOAP, 0, }, + 5, DOT11F_EID_WMMINFOAP, 0, 0, }, { offsetof(tDot11fBeaconIEs, WMMParams), offsetof(tDot11fIEWMMParams, present), 0, "WMMParams", 0, 26, 26, SigIeWMMParams, {0, 80, 242, 2, 1}, - 5, DOT11F_EID_WMMPARAMS, 0, }, + 5, DOT11F_EID_WMMPARAMS, 0, 0, }, { offsetof(tDot11fBeaconIEs, WMMCaps), offsetof(tDot11fIEWMMCaps, present), 0, "WMMCaps", 0, 9, 9, SigIeWMMCaps, {0, 80, 242, 2, 5}, - 5, DOT11F_EID_WMMCAPS, 0, }, + 5, DOT11F_EID_WMMCAPS, 0, 0, }, { offsetof(tDot11fBeaconIEs, WAPI), offsetof(tDot11fIEWAPI, present), 0, - "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, 0, DOT11F_EID_WAPI, 0, }, + "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_WAPI, 0, 0, }, { offsetof(tDot11fBeaconIEs, ESEVersion), offsetof(tDot11fIEESEVersion, present), 0, "ESEVersion", 0, 7, 7, SigIeESEVersion, {0, 64, 150, 3, 0}, - 4, DOT11F_EID_ESEVERSION, 0, }, + 4, DOT11F_EID_ESEVERSION, 0, 0, }, { offsetof(tDot11fBeaconIEs, ESERadMgmtCap), offsetof(tDot11fIEESERadMgmtCap, present), 0, "ESERadMgmtCap", 0, 8, 8, SigIeESERadMgmtCap, {0, 64, 150, 1, 0}, - 4, DOT11F_EID_ESERADMGMTCAP, 0, }, + 4, DOT11F_EID_ESERADMGMTCAP, 0, 0, }, { offsetof(tDot11fBeaconIEs, ESETrafStrmMet), offsetof(tDot11fIEESETrafStrmMet, present), 0, "ESETrafStrmMet", 0, 10, 10, SigIeESETrafStrmMet, {0, 64, 150, 7, 0}, - 4, DOT11F_EID_ESETRAFSTRMMET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMMET, 0, 0, }, { offsetof(tDot11fBeaconIEs, ESETxmitPower), offsetof(tDot11fIEESETxmitPower, present), 0, "ESETxmitPower", 0, 8, 8, SigIeESETxmitPower, {0, 64, 150, 0, 0}, - 4, DOT11F_EID_ESETXMITPOWER, 0, }, + 4, DOT11F_EID_ESETXMITPOWER, 0, 0, }, { offsetof(tDot11fBeaconIEs, WscBeaconProbeRes), offsetof(tDot11fIEWscBeaconProbeRes, present), 0, "WscBeaconProbeRes", 0, 6, 319, SigIeWscBeaconProbeRes, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCBEACONPROBERES, 0, }, + 4, DOT11F_EID_WSCBEACONPROBERES, 0, 0, }, { offsetof(tDot11fBeaconIEs, P2PBeaconProbeRes), offsetof(tDot11fIEP2PBeaconProbeRes, present), 0, "P2PBeaconProbeRes", 0, 6, 1150, SigIeP2PBeaconProbeRes, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PBEACONPROBERES, 0, }, + 4, DOT11F_EID_P2PBEACONPROBERES, 0, 0, }, { offsetof(tDot11fBeaconIEs, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fBeaconIEs, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTOPERATION, 0, }, + 0, DOT11F_EID_VHTOPERATION, 0, 0, }, { offsetof(tDot11fBeaconIEs, VHTExtBssLoad), offsetof(tDot11fIEVHTExtBssLoad, present), 0, "VHTExtBssLoad", 0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTEXTBSSLOAD, 0, }, + 0, DOT11F_EID_VHTEXTBSSLOAD, 0, 0, }, { offsetof(tDot11fBeaconIEs, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fBeaconIEs, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode", 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OPERATINGMODE, 0, }, + 0, DOT11F_EID_OPERATINGMODE, 0, 0, }, { offsetof(tDot11fBeaconIEs, WiderBWChanSwitchAnn), offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn", 0, 5, 5, SigIeWiderBWChanSwitchAnn, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, 0, }, { offsetof(tDot11fBeaconIEs, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters", 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, + 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, 0, }, + { offsetof(tDot11fBeaconIEs, fils_indication), + offsetof(tDot11fIEfils_indication, present), 0, "fils_indication", + 0, 7, 259, SigIefils_indication, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_INDICATION, 0, 0, }, { offsetof(tDot11fBeaconIEs, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE", 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, - 3, DOT11F_EID_VENDOR1IE, 0, }, + 3, DOT11F_EID_VENDOR1IE, 0, 0, }, { offsetof(tDot11fBeaconIEs, vendor_vht_ie), offsetof(tDot11fIEvendor_vht_ie, present), 0, "vendor_vht_ie", 0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 0, 0}, - 3, DOT11F_EID_VENDOR_VHT_IE, 0, }, + 3, DOT11F_EID_VENDOR_VHT_IE, 0, 0, }, { offsetof(tDot11fBeaconIEs, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE", 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, - 3, DOT11F_EID_VENDOR3IE, 0, }, + 3, DOT11F_EID_VENDOR3IE, 0, 0, }, { offsetof(tDot11fBeaconIEs, hs20vendor_ie), offsetof(tDot11fIEhs20vendor_ie, present), 0, "hs20vendor_ie", 0, 7, 9, SigIehs20vendor_ie, {80, 111, 154, 16, 0}, - 4, DOT11F_EID_HS20VENDOR_IE, 0, }, + 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, { offsetof(tDot11fBeaconIEs, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fBeaconIEs, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE", 0, 7, 7, SigIeQComVendorIE, {0, 160, 198, 0, 0}, - 3, DOT11F_EID_QCOMVENDORIE, 0, }, + 3, DOT11F_EID_QCOMVENDORIE, 0, 0, }, { offsetof(tDot11fBeaconIEs, MBO_IE), offsetof(tDot11fIEMBO_IE, present), 0, "MBO_IE", 0, 9, 12, SigIeMBO_IE, {80, 111, 154, 22, 0}, - 4, DOT11F_EID_MBO_IE, 0, }, + 4, DOT11F_EID_MBO_IE, 0, 0, }, { offsetof(tDot11fBeaconIEs, QCN_IE), offsetof(tDot11fIEQCN_IE, present), 0, "QCN_IE", 0, 10, 10, SigIeQCN_IE, {140, 253, 240, 1, 0}, - 4, DOT11F_EID_QCN_IE, 0, }, + 4, DOT11F_EID_QCN_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_beacon_i_es(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fBeaconIEs *pFrm) + tDot11fBeaconIEs *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_BeaconIEs, IES_BeaconIEs, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7075,26 +7489,26 @@ static const tIEDefn IES_ChannelSwitch[] = { { offsetof(tDot11fChannelSwitch, ChanSwitchAnn), offsetof(tDot11fIEChanSwitchAnn, present), 0, "ChanSwitchAnn", 0, 5, 5, SigIeChanSwitchAnn, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CHANSWITCHANN, 1, }, + 0, DOT11F_EID_CHANSWITCHANN, 0, 1, }, { offsetof(tDot11fChannelSwitch, sec_chan_offset_ele), offsetof(tDot11fIEsec_chan_offset_ele, present), 0, "sec_chan_offset_ele", 0, 3, 3, SigIesec_chan_offset_ele, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, }, + 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, 0, }, { offsetof(tDot11fChannelSwitch, WiderBWChanSwitchAnn), offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn", 0, 5, 5, SigIeWiderBWChanSwitchAnn, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_WIDERBWCHANSWITCHANN, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_channel_switch(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fChannelSwitch *pFrm) + tDot11fChannelSwitch *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_ChannelSwitch, IES_ChannelSwitch, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7110,18 +7524,18 @@ static const tFFDefn FFS_DeAuth[] = { static const tIEDefn IES_DeAuth[] = { { offsetof(tDot11fDeAuth, P2PDeAuth), offsetof(tDot11fIEP2PDeAuth, present), 0, "P2PDeAuth", 0, 6, 10, SigIeP2PDeAuth, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PDEAUTH, 0, }, + 4, DOT11F_EID_P2PDEAUTH, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_de_auth(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fDeAuth *pFrm) + tDot11fDeAuth *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_DeAuth, IES_DeAuth, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7145,13 +7559,13 @@ static const tIEDefn IES_DelTS[] = { uint32_t dot11f_unpack_del_ts(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fDelTS *pFrm) + tDot11fDelTS *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_DelTS, IES_DelTS, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7168,18 +7582,18 @@ static const tIEDefn IES_Disassociation[] = { { offsetof(tDot11fDisassociation, P2PDisAssoc), offsetof(tDot11fIEP2PDisAssoc, present), 0, "P2PDisAssoc", 0, 6, 10, SigIeP2PDisAssoc, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PDISASSOC, 0, }, + 4, DOT11F_EID_P2PDISASSOC, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_disassociation(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fDisassociation *pFrm) + tDot11fDisassociation *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_Disassociation, IES_Disassociation, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7217,13 +7631,13 @@ static const tIEDefn IES_LinkMeasurementReport[] = { uint32_t dot11f_unpack_link_measurement_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fLinkMeasurementReport *pFrm) + tDot11fLinkMeasurementReport *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_LinkMeasurementReport, IES_LinkMeasurementReport, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7249,13 +7663,13 @@ static const tIEDefn IES_LinkMeasurementRequest[] = { uint32_t dot11f_unpack_link_measurement_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fLinkMeasurementRequest *pFrm) + tDot11fLinkMeasurementRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_LinkMeasurementRequest, IES_LinkMeasurementRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7276,18 +7690,18 @@ static const tIEDefn IES_MeasurementReport[] = { { offsetof(tDot11fMeasurementReport, MeasurementReport), offsetof(tDot11fIEMeasurementReport, present), 0, "MeasurementReport", 0, 5, 31, SigIeMeasurementReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MEASUREMENTREPORT, 1, }, + 0, DOT11F_EID_MEASUREMENTREPORT, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_measurement_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fMeasurementReport *pFrm) + tDot11fMeasurementReport *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_MeasurementReport, IES_MeasurementReport, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7309,18 +7723,18 @@ static const tIEDefn IES_MeasurementRequest[] = { offsetof(tDot11fIEMeasurementRequest, present), offsetof(tDot11fMeasurementRequest, num_MeasurementRequest), "MeasurementRequest", 4, 6, 18, SigIeMeasurementRequest, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MEASUREMENTREQUEST, 1, }, + 0, DOT11F_EID_MEASUREMENTREQUEST, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_measurement_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fMeasurementRequest *pFrm) + tDot11fMeasurementRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_MeasurementRequest, IES_MeasurementRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7340,18 +7754,18 @@ static const tFFDefn FFS_NeighborReportRequest[] = { static const tIEDefn IES_NeighborReportRequest[] = { { offsetof(tDot11fNeighborReportRequest, SSID), offsetof(tDot11fIESSID, present), 0, "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SSID, 0, }, + 0, DOT11F_EID_SSID, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_neighbor_report_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fNeighborReportRequest *pFrm) + tDot11fNeighborReportRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_NeighborReportRequest, IES_NeighborReportRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7373,18 +7787,18 @@ static const tIEDefn IES_NeighborReportResponse[] = { offsetof(tDot11fIENeighborReport, present), offsetof(tDot11fNeighborReportResponse, num_NeighborReport), "NeighborReport", 15, 15, 548, SigIeNeighborReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_NEIGHBORREPORT, 0, }, + 0, DOT11F_EID_NEIGHBORREPORT, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_neighbor_report_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fNeighborReportResponse *pFrm) + tDot11fNeighborReportResponse *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_NeighborReportResponse, IES_NeighborReportResponse, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7406,13 +7820,13 @@ static const tIEDefn IES_OperatingMode[] = { uint32_t dot11f_unpack_operating_mode(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fOperatingMode *pFrm) + tDot11fOperatingMode *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_OperatingMode, IES_OperatingMode, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7425,55 +7839,55 @@ static const tFFDefn FFS_ProbeRequest[] = { static const tIEDefn IES_ProbeRequest[] = { { offsetof(tDot11fProbeRequest, SSID), offsetof(tDot11fIESSID, present), 0, - "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 1, }, + "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 0, 1, }, { offsetof(tDot11fProbeRequest, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fProbeRequest, RequestedInfo), offsetof(tDot11fIERequestedInfo, present), 0, "RequestedInfo", 0, 2, 257, SigIeRequestedInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_REQUESTEDINFO, 0, }, + 0, DOT11F_EID_REQUESTEDINFO, 0, 0, }, { offsetof(tDot11fProbeRequest, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fProbeRequest, DSParams), offsetof(tDot11fIEDSParams, present), 0, "DSParams", 0, 3, 3, SigIeDSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_DSPARAMS, 0, }, + 0, DOT11F_EID_DSPARAMS, 0, 0, }, { offsetof(tDot11fProbeRequest, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fProbeRequest, WscProbeReq), offsetof(tDot11fIEWscProbeReq, present), 0, "WscProbeReq", 0, 6, 286, SigIeWscProbeReq, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCPROBEREQ, 0, }, + 4, DOT11F_EID_WSCPROBEREQ, 0, 0, }, { offsetof(tDot11fProbeRequest, WFATPC), offsetof(tDot11fIEWFATPC, present), 0, "WFATPC", 0, 9, 9, SigIeWFATPC, {0, 80, 242, 8, 0}, - 5, DOT11F_EID_WFATPC, 0, }, + 5, DOT11F_EID_WFATPC, 0, 0, }, { offsetof(tDot11fProbeRequest, P2PProbeReq), offsetof(tDot11fIEP2PProbeReq, present), 0, "P2PProbeReq", 0, 6, 43, SigIeP2PProbeReq, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PPROBEREQ, 0, }, + 4, DOT11F_EID_P2PPROBEREQ, 0, 0, }, { offsetof(tDot11fProbeRequest, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fProbeRequest, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fProbeRequest, QCN_IE), offsetof(tDot11fIEQCN_IE, present), 0, "QCN_IE", 0, 10, 10, SigIeQCN_IE, {140, 253, 240, 1, 0}, - 4, DOT11F_EID_QCN_IE, 0, }, + 4, DOT11F_EID_QCN_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_probe_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fProbeRequest *pFrm) + tDot11fProbeRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_ProbeRequest, IES_ProbeRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7492,190 +7906,195 @@ static const tFFDefn FFS_ProbeResponse[] = { static const tIEDefn IES_ProbeResponse[] = { { offsetof(tDot11fProbeResponse, SSID), offsetof(tDot11fIESSID, present), - 0, "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 1, }, + 0, "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_SSID, 0, 1, }, { offsetof(tDot11fProbeResponse, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fProbeResponse, FHParamSet), offsetof(tDot11fIEFHParamSet, present), 0, "FHParamSet", 0, 7, 7, SigIeFHParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPARAMSET, 0, }, + 0, DOT11F_EID_FHPARAMSET, 0, 0, }, { offsetof(tDot11fProbeResponse, DSParams), offsetof(tDot11fIEDSParams, present), 0, "DSParams", 0, 3, 3, SigIeDSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_DSPARAMS, 0, }, + 0, DOT11F_EID_DSPARAMS, 0, 0, }, { offsetof(tDot11fProbeResponse, CFParams), offsetof(tDot11fIECFParams, present), 0, "CFParams", 0, 8, 8, SigIeCFParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CFPARAMS, 0, }, + 0, DOT11F_EID_CFPARAMS, 0, 0, }, { offsetof(tDot11fProbeResponse, IBSSParams), offsetof(tDot11fIEIBSSParams, present), 0, "IBSSParams", 0, 4, 4, SigIeIBSSParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_IBSSPARAMS, 0, }, + 0, DOT11F_EID_IBSSPARAMS, 0, 0, }, { offsetof(tDot11fProbeResponse, Country), offsetof(tDot11fIECountry, present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_COUNTRY, 0, }, + 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fProbeResponse, FHParams), offsetof(tDot11fIEFHParams, present), 0, "FHParams", 0, 4, 4, SigIeFHParams, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPARAMS, 0, }, + 0, DOT11F_EID_FHPARAMS, 0, 0, }, { offsetof(tDot11fProbeResponse, FHPattTable), offsetof(tDot11fIEFHPattTable, present), 0, "FHPattTable", 0, 6, 257, SigIeFHPattTable, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FHPATTTABLE, 0, }, + 0, DOT11F_EID_FHPATTTABLE, 0, 0, }, { offsetof(tDot11fProbeResponse, PowerConstraints), offsetof(tDot11fIEPowerConstraints, present), 0, "PowerConstraints", 0, 3, 3, SigIePowerConstraints, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_POWERCONSTRAINTS, 0, }, + 0, DOT11F_EID_POWERCONSTRAINTS, 0, 0, }, { offsetof(tDot11fProbeResponse, ChanSwitchAnn), offsetof(tDot11fIEChanSwitchAnn, present), 0, "ChanSwitchAnn", 0, 5, 5, SigIeChanSwitchAnn, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_CHANSWITCHANN, 0, }, + 0, DOT11F_EID_CHANSWITCHANN, 0, 0, }, { offsetof(tDot11fProbeResponse, ext_chan_switch_ann), offsetof(tDot11fIEext_chan_switch_ann, present), 0, "ext_chan_switch_ann", 0, 6, 6, SigIeext_chan_switch_ann, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXT_CHAN_SWITCH_ANN, 0, }, + 0, DOT11F_EID_EXT_CHAN_SWITCH_ANN, 0, 0, }, { offsetof(tDot11fProbeResponse, SuppOperatingClasses), offsetof(tDot11fIESuppOperatingClasses, present), 0, "SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, }, { offsetof(tDot11fProbeResponse, Quiet), offsetof(tDot11fIEQuiet, present), 0, "Quiet", 0, 8, 8, SigIeQuiet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QUIET, 0, }, + 0, DOT11F_EID_QUIET, 0, 0, }, { offsetof(tDot11fProbeResponse, TPCReport), offsetof(tDot11fIETPCReport, present), 0, "TPCReport", 0, 4, 4, SigIeTPCReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TPCREPORT, 0, }, + 0, DOT11F_EID_TPCREPORT, 0, 0, }, { offsetof(tDot11fProbeResponse, ERPInfo), offsetof(tDot11fIEERPInfo, present), 0, "ERPInfo", 0, 3, 3, SigIeERPInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_ERPINFO, 0, }, + 0, DOT11F_EID_ERPINFO, 0, 0, }, { offsetof(tDot11fProbeResponse, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fProbeResponse, RSNOpaque), offsetof(tDot11fIERSNOpaque, present), 0, "RSNOpaque", 0, 8, 255, SigIeRSNOpaque, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RSNOPAQUE, 0, }, + 0, DOT11F_EID_RSNOPAQUE, 0, 0, }, { offsetof(tDot11fProbeResponse, QBSSLoad), offsetof(tDot11fIEQBSSLoad, present), 0, "QBSSLoad", 0, 7, 7, SigIeQBSSLoad, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QBSSLOAD, 0, }, + 0, DOT11F_EID_QBSSLOAD, 0, 0, }, { offsetof(tDot11fProbeResponse, EDCAParamSet), offsetof(tDot11fIEEDCAParamSet, present), 0, "EDCAParamSet", 0, 20, 20, SigIeEDCAParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EDCAPARAMSET, 0, }, + 0, DOT11F_EID_EDCAPARAMSET, 0, 0, }, { offsetof(tDot11fProbeResponse, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fProbeResponse, APChannelReport), offsetof(tDot11fIEAPChannelReport, present), 0, "APChannelReport", 0, 3, 53, SigIeAPChannelReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_APCHANNELREPORT, 0, }, + 0, DOT11F_EID_APCHANNELREPORT, 0, 0, }, { offsetof(tDot11fProbeResponse, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fProbeResponse, WPA), offsetof(tDot11fIEWPA, present), 0, - "WPA", 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, }, + "WPA", 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, 0, }, { offsetof(tDot11fProbeResponse, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fProbeResponse, HTInfo), offsetof(tDot11fIEHTInfo, present), 0, "HTInfo", 0, 24, 56, SigIeHTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTINFO, 0, }, + 0, DOT11F_EID_HTINFO, 0, 0, }, { offsetof(tDot11fProbeResponse, sec_chan_offset_ele), offsetof(tDot11fIEsec_chan_offset_ele, present), 0, "sec_chan_offset_ele", 0, 3, 3, SigIesec_chan_offset_ele, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, }, + 0, DOT11F_EID_SEC_CHAN_OFFSET_ELE, 0, 0, }, { offsetof(tDot11fProbeResponse, WMMInfoAp), offsetof(tDot11fIEWMMInfoAp, present), 0, "WMMInfoAp", 0, 9, 9, SigIeWMMInfoAp, {0, 80, 242, 2, 0}, - 5, DOT11F_EID_WMMINFOAP, 0, }, + 5, DOT11F_EID_WMMINFOAP, 0, 0, }, { offsetof(tDot11fProbeResponse, WMMParams), offsetof(tDot11fIEWMMParams, present), 0, "WMMParams", 0, 26, 26, SigIeWMMParams, {0, 80, 242, 2, 1}, - 5, DOT11F_EID_WMMPARAMS, 0, }, + 5, DOT11F_EID_WMMPARAMS, 0, 0, }, { offsetof(tDot11fProbeResponse, WMMCaps), offsetof(tDot11fIEWMMCaps, present), 0, "WMMCaps", 0, 9, 9, SigIeWMMCaps, {0, 80, 242, 2, 5}, - 5, DOT11F_EID_WMMCAPS, 0, }, + 5, DOT11F_EID_WMMCAPS, 0, 0, }, { offsetof(tDot11fProbeResponse, WAPI), offsetof(tDot11fIEWAPI, present), 0, "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_WAPI, 0, }, + 0, DOT11F_EID_WAPI, 0, 0, }, { offsetof(tDot11fProbeResponse, ESERadMgmtCap), offsetof(tDot11fIEESERadMgmtCap, present), 0, "ESERadMgmtCap", 0, 8, 8, SigIeESERadMgmtCap, {0, 64, 150, 1, 0}, - 4, DOT11F_EID_ESERADMGMTCAP, 0, }, + 4, DOT11F_EID_ESERADMGMTCAP, 0, 0, }, { offsetof(tDot11fProbeResponse, ESETrafStrmMet), offsetof(tDot11fIEESETrafStrmMet, present), 0, "ESETrafStrmMet", 0, 10, 10, SigIeESETrafStrmMet, {0, 64, 150, 7, 0}, - 4, DOT11F_EID_ESETRAFSTRMMET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMMET, 0, 0, }, { offsetof(tDot11fProbeResponse, ESETxmitPower), offsetof(tDot11fIEESETxmitPower, present), 0, "ESETxmitPower", 0, 8, 8, SigIeESETxmitPower, {0, 64, 150, 0, 0}, - 4, DOT11F_EID_ESETXMITPOWER, 0, }, + 4, DOT11F_EID_ESETXMITPOWER, 0, 0, }, { offsetof(tDot11fProbeResponse, WscProbeRes), offsetof(tDot11fIEWscProbeRes, present), 0, "WscProbeRes", 0, 6, 319, SigIeWscProbeRes, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCPROBERES, 0, }, + 4, DOT11F_EID_WSCPROBERES, 0, 0, }, { offsetof(tDot11fProbeResponse, P2PProbeRes), offsetof(tDot11fIEP2PProbeRes, present), 0, "P2PProbeRes", 0, 6, 1141, SigIeP2PProbeRes, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PPROBERES, 0, }, + 4, DOT11F_EID_P2PPROBERES, 0, 0, }, { offsetof(tDot11fProbeResponse, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fProbeResponse, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTOPERATION, 0, }, + 0, DOT11F_EID_VHTOPERATION, 0, 0, }, { offsetof(tDot11fProbeResponse, VHTExtBssLoad), offsetof(tDot11fIEVHTExtBssLoad, present), 0, "VHTExtBssLoad", 0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTEXTBSSLOAD, 0, }, + 0, DOT11F_EID_VHTEXTBSSLOAD, 0, 0, }, { offsetof(tDot11fProbeResponse, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fProbeResponse, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters", 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, + 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, 0, }, + { offsetof(tDot11fProbeResponse, fils_indication), + offsetof(tDot11fIEfils_indication, present), 0, "fils_indication", + 0, 7, 259, SigIefils_indication, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_FILS_INDICATION, 0, 0, }, { offsetof(tDot11fProbeResponse, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE", 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, - 3, DOT11F_EID_VENDOR1IE, 0, }, + 3, DOT11F_EID_VENDOR1IE, 0, 0, }, { offsetof(tDot11fProbeResponse, vendor_vht_ie), offsetof(tDot11fIEvendor_vht_ie, present), 0, "vendor_vht_ie", 0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 0, 0}, - 3, DOT11F_EID_VENDOR_VHT_IE, 0, }, + 3, DOT11F_EID_VENDOR_VHT_IE, 0, 0, }, { offsetof(tDot11fProbeResponse, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE", 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, - 3, DOT11F_EID_VENDOR3IE, 0, }, + 3, DOT11F_EID_VENDOR3IE, 0, 0, }, { offsetof(tDot11fProbeResponse, hs20vendor_ie), offsetof(tDot11fIEhs20vendor_ie, present), 0, "hs20vendor_ie", 0, 7, 9, SigIehs20vendor_ie, {80, 111, 154, 16, 0}, - 4, DOT11F_EID_HS20VENDOR_IE, 0, }, + 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, { offsetof(tDot11fProbeResponse, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fProbeResponse, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE", 0, 7, 7, SigIeQComVendorIE, {0, 160, 198, 0, 0}, - 3, DOT11F_EID_QCOMVENDORIE, 0, }, + 3, DOT11F_EID_QCOMVENDORIE, 0, 0, }, { offsetof(tDot11fProbeResponse, ESEVersion), offsetof(tDot11fIEESEVersion, present), 0, "ESEVersion", 0, 7, 7, SigIeESEVersion, {0, 64, 150, 3, 0}, - 4, DOT11F_EID_ESEVERSION, 0, }, + 4, DOT11F_EID_ESEVERSION, 0, 0, }, { offsetof(tDot11fProbeResponse, MBO_IE), offsetof(tDot11fIEMBO_IE, present), 0, "MBO_IE", 0, 9, 12, SigIeMBO_IE, {80, 111, 154, 22, 0}, - 4, DOT11F_EID_MBO_IE, 0, }, + 4, DOT11F_EID_MBO_IE, 0, 0, }, { offsetof(tDot11fProbeResponse, QCN_IE), offsetof(tDot11fIEQCN_IE, present), 0, "QCN_IE", 0, 10, 10, SigIeQCN_IE, {140, 253, 240, 1, 0}, - 4, DOT11F_EID_QCN_IE, 0, }, + 4, DOT11F_EID_QCN_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_probe_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fProbeResponse *pFrm) + tDot11fProbeResponse *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_ProbeResponse, IES_ProbeResponse, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7693,18 +8112,19 @@ static const tFFDefn FFS_QosMapConfigure[] = { static const tIEDefn IES_QosMapConfigure[] = { { offsetof(tDot11fQosMapConfigure, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet", - 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QOSMAPSET, 1, }, + 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_QOSMAPSET, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_qos_map_configure(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fQosMapConfigure *pFrm) + tDot11fQosMapConfigure *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_QosMapConfigure, IES_QosMapConfigure, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7726,18 +8146,18 @@ static const tIEDefn IES_RadioMeasurementReport[] = { offsetof(tDot11fIEMeasurementReport, present), offsetof(tDot11fRadioMeasurementReport, num_MeasurementReport), "MeasurementReport", 4, 5, 31, SigIeMeasurementReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MEASUREMENTREPORT, 1, }, + 0, DOT11F_EID_MEASUREMENTREPORT, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_radio_measurement_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fRadioMeasurementReport *pFrm) + tDot11fRadioMeasurementReport *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_RadioMeasurementReport, IES_RadioMeasurementReport, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7762,18 +8182,18 @@ static const tIEDefn IES_RadioMeasurementRequest[] = { offsetof(tDot11fIEMeasurementRequest, present), offsetof(tDot11fRadioMeasurementRequest, num_MeasurementRequest), "MeasurementRequest", 2, 6, 18, SigIeMeasurementRequest, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MEASUREMENTREQUEST, 1, }, + 0, DOT11F_EID_MEASUREMENTREQUEST, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_radio_measurement_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fRadioMeasurementRequest *pFrm) + tDot11fRadioMeasurementRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_RadioMeasurementRequest, IES_RadioMeasurementRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7792,130 +8212,134 @@ static const tFFDefn FFS_ReAssocRequest[] = { static const tIEDefn IES_ReAssocRequest[] = { { offsetof(tDot11fReAssocRequest, SSID), offsetof(tDot11fIESSID, present), - 0, "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SSID, 1, }, + 0, "SSID", 0, 2, 34, SigIeSSID, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_SSID, 0, 1, }, { offsetof(tDot11fReAssocRequest, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", - 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPRATES, 1, }, + 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fReAssocRequest, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fReAssocRequest, PowerCaps), offsetof(tDot11fIEPowerCaps, present), 0, "PowerCaps", - 0, 4, 4, SigIePowerCaps, {0, 0, 0, 0, 0}, 0, DOT11F_EID_POWERCAPS, 0, }, + 0, 4, 4, SigIePowerCaps, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_POWERCAPS, 0, 0, }, { offsetof(tDot11fReAssocRequest, SuppChannels), offsetof(tDot11fIESuppChannels, present), 0, "SuppChannels", 0, 4, 98, SigIeSuppChannels, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPCHANNELS, 0, }, + 0, DOT11F_EID_SUPPCHANNELS, 0, 0, }, { offsetof(tDot11fReAssocRequest, RSNOpaque), offsetof(tDot11fIERSNOpaque, present), 0, "RSNOpaque", 0, 8, 255, SigIeRSNOpaque, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RSNOPAQUE, 0, }, + 0, DOT11F_EID_RSNOPAQUE, 0, 0, }, { offsetof(tDot11fReAssocRequest, QOSCapsStation), offsetof(tDot11fIEQOSCapsStation, present), 0, "QOSCapsStation", 0, 3, 3, SigIeQOSCapsStation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QOSCAPSSTATION, 0, }, + 0, DOT11F_EID_QOSCAPSSTATION, 0, 0, }, { offsetof(tDot11fReAssocRequest, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fReAssocRequest, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fReAssocRequest, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fReAssocRequest, RICDataDesc), offsetof(tDot11fIERICDataDesc, present), offsetof(tDot11fReAssocRequest, num_RICDataDesc), "RICDataDesc", 2, 2, 550, SigIeRICDataDesc, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDATADESC, 0, }, + 0, DOT11F_EID_RICDATADESC, 0, 0, }, { offsetof(tDot11fReAssocRequest, WPAOpaque), offsetof(tDot11fIEWPAOpaque, present), 0, "WPAOpaque", 0, 8, 255, SigIeWPAOpaque, {0, 80, 242, 1, 0}, - 4, DOT11F_EID_WPAOPAQUE, 0, }, + 4, DOT11F_EID_WPAOPAQUE, 0, 0, }, { offsetof(tDot11fReAssocRequest, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fReAssocRequest, WMMCaps), offsetof(tDot11fIEWMMCaps, present), 0, "WMMCaps", 0, 9, 9, SigIeWMMCaps, {0, 80, 242, 2, 5}, - 5, DOT11F_EID_WMMCAPS, 0, }, + 5, DOT11F_EID_WMMCAPS, 0, 0, }, { offsetof(tDot11fReAssocRequest, WMMInfoStation), offsetof(tDot11fIEWMMInfoStation, present), 0, "WMMInfoStation", 0, 9, 9, SigIeWMMInfoStation, {0, 80, 242, 2, 0}, - 5, DOT11F_EID_WMMINFOSTATION, 0, }, + 5, DOT11F_EID_WMMINFOSTATION, 0, 0, }, { offsetof(tDot11fReAssocRequest, WscIEOpaque), offsetof(tDot11fIEWscIEOpaque, present), 0, "WscIEOpaque", 0, 8, 255, SigIeWscIEOpaque, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCIEOPAQUE, 0, }, + 4, DOT11F_EID_WSCIEOPAQUE, 0, 0, }, { offsetof(tDot11fReAssocRequest, WAPIOpaque), offsetof(tDot11fIEWAPIOpaque, present), 0, "WAPIOpaque", 0, 8, 255, SigIeWAPIOpaque, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_WAPIOPAQUE, 0, }, + 0, DOT11F_EID_WAPIOPAQUE, 0, 0, }, { offsetof(tDot11fReAssocRequest, WAPI), offsetof(tDot11fIEWAPI, present), 0, "WAPI", 0, 14, 112, SigIeWAPI, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_WAPI, 0, }, + 0, DOT11F_EID_WAPI, 0, 0, }, { offsetof(tDot11fReAssocRequest, ESERadMgmtCap), offsetof(tDot11fIEESERadMgmtCap, present), 0, "ESERadMgmtCap", 0, 8, 8, SigIeESERadMgmtCap, {0, 64, 150, 1, 0}, - 4, DOT11F_EID_ESERADMGMTCAP, 0, }, + 4, DOT11F_EID_ESERADMGMTCAP, 0, 0, }, { offsetof(tDot11fReAssocRequest, ESEVersion), offsetof(tDot11fIEESEVersion, present), 0, "ESEVersion", 0, 7, 7, SigIeESEVersion, {0, 64, 150, 3, 0}, - 4, DOT11F_EID_ESEVERSION, 0, }, + 4, DOT11F_EID_ESEVERSION, 0, 0, }, { offsetof(tDot11fReAssocRequest, ESECckmOpaque), offsetof(tDot11fIEESECckmOpaque, present), 0, "ESECckmOpaque", 0, 12, 26, SigIeESECckmOpaque, {0, 64, 150, 0, 0}, - 4, DOT11F_EID_ESECCKMOPAQUE, 0, }, + 4, DOT11F_EID_ESECCKMOPAQUE, 0, 0, }, { offsetof(tDot11fReAssocRequest, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), offsetof(tDot11fReAssocRequest, num_WMMTSPEC), "WMMTSPEC", 4, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 0, }, + 5, DOT11F_EID_WMMTSPEC, 0, 0, }, { offsetof(tDot11fReAssocRequest, ESETrafStrmRateSet), offsetof(tDot11fIEESETrafStrmRateSet, present), 0, "ESETrafStrmRateSet", 0, 7, 15, SigIeESETrafStrmRateSet, {0, 64, 150, 8, 0}, - 4, DOT11F_EID_ESETRAFSTRMRATESET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMRATESET, 0, 0, }, { offsetof(tDot11fReAssocRequest, P2PIEOpaque), offsetof(tDot11fIEP2PIEOpaque, present), 0, "P2PIEOpaque", 0, 8, 255, SigIeP2PIEOpaque, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PIEOPAQUE, 0, }, + 4, DOT11F_EID_P2PIEOPAQUE, 0, 0, }, { offsetof(tDot11fReAssocRequest, WFDIEOpaque), offsetof(tDot11fIEWFDIEOpaque, present), 0, "WFDIEOpaque", 0, 8, 255, SigIeWFDIEOpaque, {80, 111, 154, 10, 0}, - 4, DOT11F_EID_WFDIEOPAQUE, 0, }, + 4, DOT11F_EID_WFDIEOPAQUE, 0, 0, }, { offsetof(tDot11fReAssocRequest, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fReAssocRequest, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fReAssocRequest, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode", 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OPERATINGMODE, 0, }, + 0, DOT11F_EID_OPERATINGMODE, 0, 0, }, { offsetof(tDot11fReAssocRequest, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet", - 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QOSMAPSET, 0, }, + 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_QOSMAPSET, 0, 0, }, { offsetof(tDot11fReAssocRequest, vendor_vht_ie), offsetof(tDot11fIEvendor_vht_ie, present), 0, "vendor_vht_ie", 0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 0, 0}, - 3, DOT11F_EID_VENDOR_VHT_IE, 0, }, + 3, DOT11F_EID_VENDOR_VHT_IE, 0, 0, }, { offsetof(tDot11fReAssocRequest, hs20vendor_ie), offsetof(tDot11fIEhs20vendor_ie, present), 0, "hs20vendor_ie", 0, 7, 9, SigIehs20vendor_ie, {80, 111, 154, 16, 0}, - 4, DOT11F_EID_HS20VENDOR_IE, 0, }, + 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_re_assoc_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fReAssocRequest *pFrm) + tDot11fReAssocRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_ReAssocRequest, IES_ReAssocRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -7935,117 +8359,120 @@ static const tFFDefn FFS_ReAssocResponse[] = { static const tIEDefn IES_ReAssocResponse[] = { { offsetof(tDot11fReAssocResponse, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", - 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPRATES, 1, }, + 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fReAssocResponse, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fReAssocResponse, EDCAParamSet), offsetof(tDot11fIEEDCAParamSet, present), 0, "EDCAParamSet", 0, 20, 20, SigIeEDCAParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EDCAPARAMSET, 0, }, + 0, DOT11F_EID_EDCAPARAMSET, 0, 0, }, { offsetof(tDot11fReAssocResponse, RCPIIE), offsetof(tDot11fIERCPIIE, present), 0, "RCPIIE", 0, 3, 3, SigIeRCPIIE, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RCPIIE, 0, }, + 0, DOT11F_EID_RCPIIE, 0, 0, }, { offsetof(tDot11fReAssocResponse, RSNIIE), offsetof(tDot11fIERSNIIE, present), 0, "RSNIIE", 0, 3, 3, SigIeRSNIIE, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RSNIIE, 0, }, + 0, DOT11F_EID_RSNIIE, 0, 0, }, { offsetof(tDot11fReAssocResponse, RRMEnabledCap), offsetof(tDot11fIERRMEnabledCap, present), 0, "RRMEnabledCap", 0, 7, 7, SigIeRRMEnabledCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RRMENABLEDCAP, 0, }, + 0, DOT11F_EID_RRMENABLEDCAP, 0, 0, }, { offsetof(tDot11fReAssocResponse, RSNOpaque), offsetof(tDot11fIERSNOpaque, present), 0, "RSNOpaque", 0, 8, 255, SigIeRSNOpaque, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RSNOPAQUE, 0, }, + 0, DOT11F_EID_RSNOPAQUE, 0, 0, }, { offsetof(tDot11fReAssocResponse, MobilityDomain), offsetof(tDot11fIEMobilityDomain, present), 0, "MobilityDomain", 0, 5, 5, SigIeMobilityDomain, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_MOBILITYDOMAIN, 0, }, + 0, DOT11F_EID_MOBILITYDOMAIN, 0, 0, }, { offsetof(tDot11fReAssocResponse, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fReAssocResponse, RICDataDesc), offsetof(tDot11fIERICDataDesc, present), offsetof(tDot11fReAssocResponse, num_RICDataDesc), "RICDataDesc", 2, 2, 550, SigIeRICDataDesc, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDATADESC, 0, }, + 0, DOT11F_EID_RICDATADESC, 0, 0, }, { offsetof(tDot11fReAssocResponse, WPA), offsetof(tDot11fIEWPA, present), - 0, "WPA", 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, 4, DOT11F_EID_WPA, 0, }, + 0, "WPA", 0, 8, 50, SigIeWPA, {0, 80, 242, 1, 0}, + 4, DOT11F_EID_WPA, 0, 0, }, { offsetof(tDot11fReAssocResponse, TimeoutInterval), offsetof(tDot11fIETimeoutInterval, present), 0, "TimeoutInterval", 0, 7, 7, SigIeTimeoutInterval, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TIMEOUTINTERVAL, 0, }, + 0, DOT11F_EID_TIMEOUTINTERVAL, 0, 0, }, { offsetof(tDot11fReAssocResponse, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fReAssocResponse, HTInfo), offsetof(tDot11fIEHTInfo, present), 0, "HTInfo", 0, 24, 56, SigIeHTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTINFO, 0, }, + 0, DOT11F_EID_HTINFO, 0, 0, }, { offsetof(tDot11fReAssocResponse, WMMParams), offsetof(tDot11fIEWMMParams, present), 0, "WMMParams", 0, 26, 26, SigIeWMMParams, {0, 80, 242, 2, 1}, - 5, DOT11F_EID_WMMPARAMS, 0, }, + 5, DOT11F_EID_WMMPARAMS, 0, 0, }, { offsetof(tDot11fReAssocResponse, ESERadMgmtCap), offsetof(tDot11fIEESERadMgmtCap, present), 0, "ESERadMgmtCap", 0, 8, 8, SigIeESERadMgmtCap, {0, 64, 150, 1, 0}, - 4, DOT11F_EID_ESERADMGMTCAP, 0, }, + 4, DOT11F_EID_ESERADMGMTCAP, 0, 0, }, { offsetof(tDot11fReAssocResponse, ESETrafStrmMet), offsetof(tDot11fIEESETrafStrmMet, present), 0, "ESETrafStrmMet", 0, 10, 10, SigIeESETrafStrmMet, {0, 64, 150, 7, 0}, - 4, DOT11F_EID_ESETRAFSTRMMET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMMET, 0, 0, }, { offsetof(tDot11fReAssocResponse, ESETxmitPower), offsetof(tDot11fIEESETxmitPower, present), 0, "ESETxmitPower", 0, 8, 8, SigIeESETxmitPower, {0, 64, 150, 0, 0}, - 4, DOT11F_EID_ESETXMITPOWER, 0, }, + 4, DOT11F_EID_ESETXMITPOWER, 0, 0, }, { offsetof(tDot11fReAssocResponse, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), offsetof(tDot11fReAssocResponse, num_WMMTSPEC), "WMMTSPEC", 4, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 0, }, + 5, DOT11F_EID_WMMTSPEC, 0, 0, }, { offsetof(tDot11fReAssocResponse, ESETrafStrmRateSet), offsetof(tDot11fIEESETrafStrmRateSet, present), 0, "ESETrafStrmRateSet", 0, 7, 15, SigIeESETrafStrmRateSet, {0, 64, 150, 8, 0}, - 4, DOT11F_EID_ESETRAFSTRMRATESET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMRATESET, 0, 0, }, { offsetof(tDot11fReAssocResponse, WscReassocRes), offsetof(tDot11fIEWscReassocRes, present), 0, "WscReassocRes", 0, 6, 37, SigIeWscReassocRes, {0, 80, 242, 4, 0}, - 4, DOT11F_EID_WSCREASSOCRES, 0, }, + 4, DOT11F_EID_WSCREASSOCRES, 0, 0, }, { offsetof(tDot11fReAssocResponse, P2PAssocRes), offsetof(tDot11fIEP2PAssocRes, present), 0, "P2PAssocRes", 0, 6, 17, SigIeP2PAssocRes, {80, 111, 154, 9, 0}, - 4, DOT11F_EID_P2PASSOCRES, 0, }, + 4, DOT11F_EID_P2PASSOCRES, 0, 0, }, { offsetof(tDot11fReAssocResponse, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fReAssocResponse, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTOPERATION, 0, }, + 0, DOT11F_EID_VHTOPERATION, 0, 0, }, { offsetof(tDot11fReAssocResponse, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fReAssocResponse, OBSSScanParameters), offsetof(tDot11fIEOBSSScanParameters, present), 0, "OBSSScanParameters", 0, 16, 16, SigIeOBSSScanParameters, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, }, + 0, DOT11F_EID_OBSSSCANPARAMETERS, 0, 0, }, { offsetof(tDot11fReAssocResponse, QosMapSet), offsetof(tDot11fIEQosMapSet, present), 0, "QosMapSet", - 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, 0, DOT11F_EID_QOSMAPSET, 0, }, + 0, 2, 62, SigIeQosMapSet, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_QOSMAPSET, 0, 0, }, { offsetof(tDot11fReAssocResponse, vendor_vht_ie), offsetof(tDot11fIEvendor_vht_ie, present), 0, "vendor_vht_ie", 0, 7, 28, SigIevendor_vht_ie, {0, 144, 76, 0, 0}, - 3, DOT11F_EID_VENDOR_VHT_IE, 0, }, + 3, DOT11F_EID_VENDOR_VHT_IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_re_assoc_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fReAssocResponse *pFrm) + tDot11fReAssocResponse *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_ReAssocResponse, IES_ReAssocResponse, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8067,13 +8494,13 @@ static const tIEDefn IES_SMPowerSave[] = { uint32_t dot11f_unpack_sm_power_save(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fSMPowerSave *pFrm) + tDot11fSMPowerSave *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_SMPowerSave, IES_SMPowerSave, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8095,13 +8522,13 @@ static const tIEDefn IES_SaQueryReq[] = { uint32_t dot11f_unpack_sa_query_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fSaQueryReq *pFrm) + tDot11fSaQueryReq *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_SaQueryReq, IES_SaQueryReq, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8123,13 +8550,13 @@ static const tIEDefn IES_SaQueryRsp[] = { uint32_t dot11f_unpack_sa_query_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fSaQueryRsp *pFrm) + tDot11fSaQueryRsp *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_SaQueryRsp, IES_SaQueryRsp, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8150,18 +8577,18 @@ static const tIEDefn IES_TDLSDisReq[] = { { offsetof(tDot11fTDLSDisReq, LinkIdentifier), offsetof(tDot11fIELinkIdentifier, present), 0, "LinkIdentifier", 0, 20, 20, SigIeLinkIdentifier, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_LINKIDENTIFIER, 1, }, + 0, DOT11F_EID_LINKIDENTIFIER, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tdls_dis_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSDisReq *pFrm) + tDot11fTDLSDisReq *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TDLSDisReq, IES_TDLSDisReq, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8183,59 +8610,59 @@ static const tFFDefn FFS_TDLSDisRsp[] = { static const tIEDefn IES_TDLSDisRsp[] = { { offsetof(tDot11fTDLSDisRsp, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fTDLSDisRsp, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, SuppChannels), offsetof(tDot11fIESuppChannels, present), 0, "SuppChannels", 0, 4, 98, SigIeSuppChannels, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPCHANNELS, 0, }, + 0, DOT11F_EID_SUPPCHANNELS, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, SuppOperatingClasses), offsetof(tDot11fIESuppOperatingClasses, present), 0, "SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, RSN), offsetof(tDot11fIERSN, present), 0, - "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, }, + "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, TimeoutInterval), offsetof(tDot11fIETimeoutInterval, present), 0, "TimeoutInterval", 0, 7, 7, SigIeTimeoutInterval, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TIMEOUTINTERVAL, 0, }, + 0, DOT11F_EID_TIMEOUTINTERVAL, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, RICData), offsetof(tDot11fIERICData, present), 0, "RICData", 0, 6, 6, SigIeRICData, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDATA, 0, }, + 0, DOT11F_EID_RICDATA, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, ht2040_bss_coexistence), offsetof(tDot11fIEht2040_bss_coexistence, present), 0, "ht2040_bss_coexistence", 0, 3, 3, SigIeht2040_bss_coexistence, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_HT2040_BSS_COEXISTENCE, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_HT2040_BSS_COEXISTENCE, 0, 0, }, { offsetof(tDot11fTDLSDisRsp, LinkIdentifier), offsetof(tDot11fIELinkIdentifier, present), 0, "LinkIdentifier", 0, 20, 20, SigIeLinkIdentifier, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_LINKIDENTIFIER, 1, }, + 0, DOT11F_EID_LINKIDENTIFIER, 0, 1, }, { offsetof(tDot11fTDLSDisRsp, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tdls_dis_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSDisRsp *pFrm) + tDot11fTDLSDisRsp *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TDLSDisRsp, IES_TDLSDisRsp, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8256,26 +8683,26 @@ static const tIEDefn IES_TDLSPeerTrafficInd[] = { { offsetof(tDot11fTDLSPeerTrafficInd, LinkIdentifier), offsetof(tDot11fIELinkIdentifier, present), 0, "LinkIdentifier", 0, 20, 20, SigIeLinkIdentifier, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_LINKIDENTIFIER, 1, }, + 0, DOT11F_EID_LINKIDENTIFIER, 0, 1, }, { offsetof(tDot11fTDLSPeerTrafficInd, PTIControl), offsetof(tDot11fIEPTIControl, present), 0, "PTIControl", 0, 5, 5, SigIePTIControl, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_PTICONTROL, 0, }, + 0, DOT11F_EID_PTICONTROL, 0, 0, }, { offsetof(tDot11fTDLSPeerTrafficInd, PUBufferStatus), offsetof(tDot11fIEPUBufferStatus, present), 0, "PUBufferStatus", 0, 3, 3, SigIePUBufferStatus, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_PUBUFFERSTATUS, 1, }, + 0, DOT11F_EID_PUBUFFERSTATUS, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tdls_peer_traffic_ind(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSPeerTrafficInd *pFrm) + tDot11fTDLSPeerTrafficInd *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TDLSPeerTrafficInd, IES_TDLSPeerTrafficInd, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8296,18 +8723,18 @@ static const tIEDefn IES_TDLSPeerTrafficRsp[] = { { offsetof(tDot11fTDLSPeerTrafficRsp, LinkIdentifier), offsetof(tDot11fIELinkIdentifier, present), 0, "LinkIdentifier", 0, 20, 20, SigIeLinkIdentifier, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_LINKIDENTIFIER, 1, }, + 0, DOT11F_EID_LINKIDENTIFIER, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tdls_peer_traffic_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSPeerTrafficRsp *pFrm) + tDot11fTDLSPeerTrafficRsp *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TDLSPeerTrafficRsp, IES_TDLSPeerTrafficRsp, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8328,47 +8755,47 @@ static const tFFDefn FFS_TDLSSetupCnf[] = { static const tIEDefn IES_TDLSSetupCnf[] = { { offsetof(tDot11fTDLSSetupCnf, RSN), offsetof(tDot11fIERSN, present), 0, - "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, }, + "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, }, { offsetof(tDot11fTDLSSetupCnf, EDCAParamSet), offsetof(tDot11fIEEDCAParamSet, present), 0, "EDCAParamSet", 0, 20, 20, SigIeEDCAParamSet, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EDCAPARAMSET, 0, }, + 0, DOT11F_EID_EDCAPARAMSET, 0, 0, }, { offsetof(tDot11fTDLSSetupCnf, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fTDLSSetupCnf, TimeoutInterval), offsetof(tDot11fIETimeoutInterval, present), 0, "TimeoutInterval", 0, 7, 7, SigIeTimeoutInterval, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TIMEOUTINTERVAL, 0, }, + 0, DOT11F_EID_TIMEOUTINTERVAL, 0, 0, }, { offsetof(tDot11fTDLSSetupCnf, HTInfo), offsetof(tDot11fIEHTInfo, present), 0, "HTInfo", 0, 24, 56, SigIeHTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTINFO, 0, }, + 0, DOT11F_EID_HTINFO, 0, 0, }, { offsetof(tDot11fTDLSSetupCnf, LinkIdentifier), offsetof(tDot11fIELinkIdentifier, present), 0, "LinkIdentifier", 0, 20, 20, SigIeLinkIdentifier, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_LINKIDENTIFIER, 0, }, + 0, DOT11F_EID_LINKIDENTIFIER, 0, 0, }, { offsetof(tDot11fTDLSSetupCnf, WMMParams), offsetof(tDot11fIEWMMParams, present), 0, "WMMParams", 0, 26, 26, SigIeWMMParams, {0, 80, 242, 2, 1}, - 5, DOT11F_EID_WMMPARAMS, 0, }, + 5, DOT11F_EID_WMMPARAMS, 0, 0, }, { offsetof(tDot11fTDLSSetupCnf, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTOPERATION, 0, }, + 0, DOT11F_EID_VHTOPERATION, 0, 0, }, { offsetof(tDot11fTDLSSetupCnf, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode", 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OPERATINGMODE, 0, }, + 0, DOT11F_EID_OPERATINGMODE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tdls_setup_cnf(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSSetupCnf *pFrm) + tDot11fTDLSSetupCnf *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TDLSSetupCnf, IES_TDLSSetupCnf, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8390,72 +8817,72 @@ static const tFFDefn FFS_TDLSSetupReq[] = { static const tIEDefn IES_TDLSSetupReq[] = { { offsetof(tDot11fTDLSSetupReq, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 1, }, + 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fTDLSSetupReq, Country), offsetof(tDot11fIECountry, present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_COUNTRY, 0, }, + 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, SuppChannels), offsetof(tDot11fIESuppChannels, present), 0, "SuppChannels", 0, 4, 98, SigIeSuppChannels, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPCHANNELS, 0, }, + 0, DOT11F_EID_SUPPCHANNELS, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, RSN), offsetof(tDot11fIERSN, present), 0, - "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, }, + "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, SuppOperatingClasses), offsetof(tDot11fIESuppOperatingClasses, present), 0, "SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, QOSCapsStation), offsetof(tDot11fIEQOSCapsStation, present), 0, "QOSCapsStation", 0, 3, 3, SigIeQOSCapsStation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QOSCAPSSTATION, 0, }, + 0, DOT11F_EID_QOSCAPSSTATION, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, TimeoutInterval), offsetof(tDot11fIETimeoutInterval, present), 0, "TimeoutInterval", 0, 7, 7, SigIeTimeoutInterval, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TIMEOUTINTERVAL, 0, }, + 0, DOT11F_EID_TIMEOUTINTERVAL, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, RICData), offsetof(tDot11fIERICData, present), 0, "RICData", 0, 6, 6, SigIeRICData, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDATA, 0, }, + 0, DOT11F_EID_RICDATA, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, ht2040_bss_coexistence), offsetof(tDot11fIEht2040_bss_coexistence, present), 0, "ht2040_bss_coexistence", 0, 3, 3, SigIeht2040_bss_coexistence, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_HT2040_BSS_COEXISTENCE, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_HT2040_BSS_COEXISTENCE, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, LinkIdentifier), offsetof(tDot11fIELinkIdentifier, present), 0, "LinkIdentifier", 0, 20, 20, SigIeLinkIdentifier, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_LINKIDENTIFIER, 1, }, + 0, DOT11F_EID_LINKIDENTIFIER, 0, 1, }, { offsetof(tDot11fTDLSSetupReq, WMMInfoStation), offsetof(tDot11fIEWMMInfoStation, present), 0, "WMMInfoStation", 0, 9, 9, SigIeWMMInfoStation, {0, 80, 242, 2, 0}, - 5, DOT11F_EID_WMMINFOSTATION, 0, }, + 5, DOT11F_EID_WMMINFOSTATION, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, AID), offsetof(tDot11fIEAID, present), 0, - "AID", 0, 4, 4, SigIeAID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_AID, 0, }, + "AID", 0, 4, 4, SigIeAID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_AID, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tdls_setup_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSSetupReq *pFrm) + tDot11fTDLSSetupReq *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TDLSSetupReq, IES_TDLSSetupReq, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8479,76 +8906,76 @@ static const tFFDefn FFS_TDLSSetupRsp[] = { static const tIEDefn IES_TDLSSetupRsp[] = { { offsetof(tDot11fTDLSSetupRsp, SuppRates), offsetof(tDot11fIESuppRates, present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPRATES, 0, }, + 0, DOT11F_EID_SUPPRATES, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, Country), offsetof(tDot11fIECountry, present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_COUNTRY, 0, }, + 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTSUPPRATES, 0, }, + 0, DOT11F_EID_EXTSUPPRATES, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, SuppChannels), offsetof(tDot11fIESuppChannels, present), 0, "SuppChannels", 0, 4, 98, SigIeSuppChannels, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_SUPPCHANNELS, 0, }, + 0, DOT11F_EID_SUPPCHANNELS, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, RSN), offsetof(tDot11fIERSN, present), 0, - "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, }, + "RSN", 0, 8, 116, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_EXTCAP, 0, }, + 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, SuppOperatingClasses), offsetof(tDot11fIESuppOperatingClasses, present), 0, "SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, QOSCapsStation), offsetof(tDot11fIEQOSCapsStation, present), 0, "QOSCapsStation", 0, 3, 3, SigIeQOSCapsStation, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_QOSCAPSSTATION, 0, }, + 0, DOT11F_EID_QOSCAPSSTATION, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, TimeoutInterval), offsetof(tDot11fIETimeoutInterval, present), 0, "TimeoutInterval", 0, 7, 7, SigIeTimeoutInterval, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TIMEOUTINTERVAL, 0, }, + 0, DOT11F_EID_TIMEOUTINTERVAL, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, RICData), offsetof(tDot11fIERICData, present), 0, "RICData", 0, 6, 6, SigIeRICData, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_RICDATA, 0, }, + 0, DOT11F_EID_RICDATA, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HTCAPS, 0, }, + 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, ht2040_bss_coexistence), offsetof(tDot11fIEht2040_bss_coexistence, present), 0, "ht2040_bss_coexistence", 0, 3, 3, SigIeht2040_bss_coexistence, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_HT2040_BSS_COEXISTENCE, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_HT2040_BSS_COEXISTENCE, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, LinkIdentifier), offsetof(tDot11fIELinkIdentifier, present), 0, "LinkIdentifier", 0, 20, 20, SigIeLinkIdentifier, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_LINKIDENTIFIER, 0, }, + 0, DOT11F_EID_LINKIDENTIFIER, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, WMMInfoStation), offsetof(tDot11fIEWMMInfoStation, present), 0, "WMMInfoStation", 0, 9, 9, SigIeWMMInfoStation, {0, 80, 242, 2, 0}, - 5, DOT11F_EID_WMMINFOSTATION, 0, }, + 5, DOT11F_EID_WMMINFOSTATION, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, AID), offsetof(tDot11fIEAID, present), 0, - "AID", 0, 4, 4, SigIeAID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_AID, 0, }, + "AID", 0, 4, 4, SigIeAID, {0, 0, 0, 0, 0}, 0, DOT11F_EID_AID, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHTCAPS, 0, }, + 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode", 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OPERATINGMODE, 0, }, + 0, DOT11F_EID_OPERATINGMODE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tdls_setup_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSSetupRsp *pFrm) + tDot11fTDLSSetupRsp *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TDLSSetupRsp, IES_TDLSSetupRsp, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8568,22 +8995,22 @@ static const tFFDefn FFS_TDLSTeardown[] = { static const tIEDefn IES_TDLSTeardown[] = { { offsetof(tDot11fTDLSTeardown, FTInfo), offsetof(tDot11fIEFTInfo, present), 0, "FTInfo", 0, 84, 222, SigIeFTInfo, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_FTINFO, 0, }, + 0, DOT11F_EID_FTINFO, 0, 0, }, { offsetof(tDot11fTDLSTeardown, LinkIdentifier), offsetof(tDot11fIELinkIdentifier, present), 0, "LinkIdentifier", 0, 20, 20, SigIeLinkIdentifier, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_LINKIDENTIFIER, 1, }, + 0, DOT11F_EID_LINKIDENTIFIER, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tdls_teardown(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTDLSTeardown *pFrm) + tDot11fTDLSTeardown *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TDLSTeardown, IES_TDLSTeardown, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8603,18 +9030,18 @@ static const tFFDefn FFS_TPCReport[] = { static const tIEDefn IES_TPCReport[] = { { offsetof(tDot11fTPCReport, TPCReport), offsetof(tDot11fIETPCReport, present), 0, "TPCReport", 0, 4, 4, SigIeTPCReport, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TPCREPORT, 1, }, + 0, DOT11F_EID_TPCREPORT, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tpc_report(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTPCReport *pFrm) + tDot11fTPCReport *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TPCReport, IES_TPCReport, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8634,18 +9061,18 @@ static const tFFDefn FFS_TPCRequest[] = { static const tIEDefn IES_TPCRequest[] = { { offsetof(tDot11fTPCRequest, TPCRequest), offsetof(tDot11fIETPCRequest, present), 0, "TPCRequest", 0, 2, 2, SigIeTPCRequest, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TPCREQUEST, 1, }, + 0, DOT11F_EID_TPCREQUEST, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_tpc_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTPCRequest *pFrm) + tDot11fTPCRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TPCRequest, IES_TPCRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8663,37 +9090,37 @@ static const tFFDefn FFS_TimingAdvertisementFrame[] = { static const tIEDefn IES_TimingAdvertisementFrame[] = { { offsetof(tDot11fTimingAdvertisementFrame, Country), offsetof(tDot11fIECountry, present), 0, "Country", 0, 5, 257, SigIeCountry, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fTimingAdvertisementFrame, PowerConstraints), offsetof(tDot11fIEPowerConstraints, present), 0, "PowerConstraints", 0, 3, 3, SigIePowerConstraints, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_POWERCONSTRAINTS, 0, }, + 0, DOT11F_EID_POWERCONSTRAINTS, 0, 0, }, { offsetof(tDot11fTimingAdvertisementFrame, TimeAdvertisement), offsetof(tDot11fIETimeAdvertisement, present), 0, "TimeAdvertisement", 0, 18, 18, SigIeTimeAdvertisement, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_TIMEADVERTISEMENT, 0, }, + 0, DOT11F_EID_TIMEADVERTISEMENT, 0, 0, }, { offsetof(tDot11fTimingAdvertisementFrame, ExtCap), offsetof(tDot11fIEExtCap, present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_EXTCAP, 0, 0, }, { offsetof(tDot11fTimingAdvertisementFrame, Vendor1IE), offsetof(tDot11fIEVendor1IE, present), 0, "Vendor1IE", 0, 5, 5, SigIeVendor1IE, {0, 16, 24, 0, 0}, - 3, DOT11F_EID_VENDOR1IE, 0, }, + 3, DOT11F_EID_VENDOR1IE, 0, 0, }, { offsetof(tDot11fTimingAdvertisementFrame, Vendor3IE), offsetof(tDot11fIEVendor3IE, present), 0, "Vendor3IE", 0, 5, 5, SigIeVendor3IE, {0, 22, 50, 0, 0}, - 3, DOT11F_EID_VENDOR3IE, 0, }, + 3, DOT11F_EID_VENDOR3IE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_timing_advertisement_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fTimingAdvertisementFrame *pFrm) + tDot11fTimingAdvertisementFrame *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_TimingAdvertisementFrame, IES_TimingAdvertisementFrame, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8720,13 +9147,13 @@ static const tIEDefn IES_VHTGidManagementActionFrame[] = { uint32_t dot11f_unpack_vht_gid_management_action_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fVHTGidManagementActionFrame *pFrm) + tDot11fVHTGidManagementActionFrame *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_VHTGidManagementActionFrame, IES_VHTGidManagementActionFrame, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8748,22 +9175,22 @@ static const tFFDefn FFS_WMMAddTSRequest[] = { static const tIEDefn IES_WMMAddTSRequest[] = { { offsetof(tDot11fWMMAddTSRequest, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), 0, "WMMTSPEC", 0, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 1, }, + 5, DOT11F_EID_WMMTSPEC, 0, 1, }, { offsetof(tDot11fWMMAddTSRequest, ESETrafStrmRateSet), offsetof(tDot11fIEESETrafStrmRateSet, present), 0, "ESETrafStrmRateSet", 0, 7, 15, SigIeESETrafStrmRateSet, {0, 64, 150, 8, 0}, - 4, DOT11F_EID_ESETRAFSTRMRATESET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMRATESET, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_wmm_add_ts_request(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fWMMAddTSRequest *pFrm) + tDot11fWMMAddTSRequest *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_WMMAddTSRequest, IES_WMMAddTSRequest, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8786,22 +9213,22 @@ static const tIEDefn IES_WMMAddTSResponse[] = { { offsetof(tDot11fWMMAddTSResponse, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), 0, "WMMTSPEC", 0, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 0, }, + 5, DOT11F_EID_WMMTSPEC, 0, 0, }, { offsetof(tDot11fWMMAddTSResponse, ESETrafStrmMet), offsetof(tDot11fIEESETrafStrmMet, present), 0, "ESETrafStrmMet", 0, 10, 10, SigIeESETrafStrmMet, {0, 64, 150, 7, 0}, - 4, DOT11F_EID_ESETRAFSTRMMET, 0, }, + 4, DOT11F_EID_ESETRAFSTRMMET, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_wmm_add_ts_response(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fWMMAddTSResponse *pFrm) + tDot11fWMMAddTSResponse *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_WMMAddTSResponse, IES_WMMAddTSResponse, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8823,18 +9250,18 @@ static const tFFDefn FFS_WMMDelTS[] = { static const tIEDefn IES_WMMDelTS[] = { { offsetof(tDot11fWMMDelTS, WMMTSPEC), offsetof(tDot11fIEWMMTSPEC, present), 0, "WMMTSPEC", 0, 63, 63, SigIeWMMTSPEC, {0, 80, 242, 2, 2}, - 5, DOT11F_EID_WMMTSPEC, 1, }, + 5, DOT11F_EID_WMMTSPEC, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_wmm_del_ts(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fWMMDelTS *pFrm) + tDot11fWMMDelTS *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_WMMDelTS, IES_WMMDelTS, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8858,13 +9285,13 @@ static const tIEDefn IES_ext_channel_switch_action_frame[] = { uint32_t dot11f_unpack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fext_channel_switch_action_frame *pFrm) + tDot11fext_channel_switch_action_frame *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_ext_channel_switch_action_frame, IES_ext_channel_switch_action_frame, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8884,24 +9311,24 @@ static const tIEDefn IES_ht2040_bss_coexistence_mgmt_action_frame[] = { ht2040_bss_coexistence), offsetof(tDot11fIEht2040_bss_coexistence, present), 0, "ht2040_bss_coexistence", 0, 3, 3, SigIeht2040_bss_coexistence, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HT2040_BSS_COEXISTENCE, 1, }, + 0, DOT11F_EID_HT2040_BSS_COEXISTENCE, 0, 1, }, { offsetof(tDot11fht2040_bss_coexistence_mgmt_action_frame, ht2040_bss_intolerant_report), offsetof(tDot11fIEht2040_bss_intolerant_report, present), 0, "ht2040_bss_intolerant_report", 0, 3, 53, SigIeht2040_bss_intolerant_report, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_HT2040_BSS_INTOLERANT_REPORT, 1, }, + 0, DOT11F_EID_HT2040_BSS_INTOLERANT_REPORT, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_ht2040_bss_coexistence_mgmt_action_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm) + tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_ht2040_bss_coexistence_mgmt_action_frame, IES_ht2040_bss_coexistence_mgmt_action_frame, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -8924,44 +9351,50 @@ static const tFFDefn FFS_p2p_oper_chan_change_confirm[] = { static const tIEDefn IES_p2p_oper_chan_change_confirm[] = { { offsetof(tDot11fp2p_oper_chan_change_confirm, HTCaps), offsetof(tDot11fIEHTCaps, present), 0, "HTCaps", 0, 28, 60, SigIeHTCaps, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_HTCAPS, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_HTCAPS, 0, 0, }, { offsetof(tDot11fp2p_oper_chan_change_confirm, VHTCaps), offsetof(tDot11fIEVHTCaps, present), 0, "VHTCaps", 0, 14, 14, SigIeVHTCaps, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_VHTCAPS, 0, }, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_VHTCAPS, 0, 0, }, { offsetof(tDot11fp2p_oper_chan_change_confirm, OperatingMode), offsetof(tDot11fIEOperatingMode, present), 0, "OperatingMode", 0, 3, 3, SigIeOperatingMode, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_OPERATINGMODE, 0, }, + 0, DOT11F_EID_OPERATINGMODE, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; uint32_t dot11f_unpack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fp2p_oper_chan_change_confirm *pFrm) + tDot11fp2p_oper_chan_change_confirm *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_p2p_oper_chan_change_confirm, IES_p2p_oper_chan_change_confirm, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; } /* End dot11f_unpack_p2p_oper_chan_change_confirm. */ +/** + * Note: If @append_ie is set TRUE, pFrm will not be reset to zero, + * but parsed IE's would be populated to pFrm with already + * populated IE's in pFrm + */ static uint32_t unpack_core(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, const tFFDefn FFs[], const tIEDefn IEs[], uint8_t *pFrm, - size_t nFrm) + size_t nFrm, + bool append_ie) { const tFFDefn *pFf; const tIEDefn *pIe; uint8_t *pBufRemaining; uint32_t nBufRemaining, status; - uint8_t eid, len; + uint8_t eid, len, extn_eid; tFRAMES_BOOL *pfFound; uint32_t countOffset = 0; @@ -8974,7 +9407,7 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, nBufRemaining = nBuf; pIe = &IEs[0]; - while (0xff != pIe->eid) { + while (!append_ie && (0xff != pIe->eid || pIe->extn_eid)) { pfFound = (tFRAMES_BOOL *)(pFrm + pIe->offset + pIe->presenceOffset); *pfFound = 0U; @@ -8984,7 +9417,7 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, } pFf = &FFs[0]; - while (pFf->size) { + while (!append_ie && pFf->size) { if (pFf->size > nBufRemaining) { FRAMES_LOG3(pCtx, FRLOGE, FRFL("Fixed field %s is %d" "bytes in size, but there are only %d bytes left i" @@ -9186,12 +9619,16 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, eid = *pBufRemaining++; --nBufRemaining; len = *pBufRemaining++; --nBufRemaining; + if (pIe && pIe->extn_eid) { + extn_eid = *pBufRemaining++; --nBufRemaining; + len--; + } if (pIe && pIe->noui) { if (pIe->noui > nBufRemaining) { - FRAMES_LOG3(pCtx, FRLOGW, FRFL("IE %d reports " + FRAMES_LOG4(pCtx, FRLOGW, FRFL("IE %d extn id %d reports " "length %d, but it has an OUI of %d bytes.\n"), - eid, len, pIe->noui); + eid, extn_eid, len, pIe->noui); FRAMES_DUMP(pCtx, FRLOG1, pBuf, nBuf); FRAMES_LOG2(pCtx, FRLOG1, FRFL("We've parsed %d by" "tes of this buffer, and show %d left.\n"), @@ -9206,9 +9643,9 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, } if (len > nBufRemaining) { - FRAMES_LOG3(pCtx, FRLOGW, FRFL("IE %d reports length %" + FRAMES_LOG4(pCtx, FRLOGW, FRFL("IE %d extn id %d reports length %" "d, but there are only %d bytes remaining in this" - " frame.\n"), eid, len, nBufRemaining); + " frame.\n"), eid, extn_eid, len, nBufRemaining); FRAMES_DUMP(pCtx, FRLOG1, pBuf, nBuf); FRAMES_LOG2(pCtx, FRLOG1, FRFL("We've parsed %d by" "tes of this buffer, and show %d left.\n"), @@ -9248,7 +9685,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEGTK *) (pFrm + pIe->offset + sizeof(tDot11fIEGTK) * - countOffset)); + countOffset), + append_ie); break; case SigIeIGTK: status |= @@ -9257,7 +9695,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEIGTK *) (pFrm + pIe->offset + sizeof(tDot11fIEIGTK) * - countOffset)); + countOffset), + append_ie); break; case SigIeR0KH_ID: status |= @@ -9266,7 +9705,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIER0KH_ID *) (pFrm + pIe->offset + sizeof(tDot11fIER0KH_ID) * - countOffset)); + countOffset), + append_ie); break; case SigIeR1KH_ID: status |= @@ -9275,7 +9715,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIER1KH_ID *) (pFrm + pIe->offset + sizeof(tDot11fIER1KH_ID) * - countOffset)); + countOffset), + append_ie); break; case SigIeAPChannelReport: status |= @@ -9284,7 +9725,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEAPChannelReport *) (pFrm + pIe->offset + sizeof(tDot11fIEAPChannelReport) * - countOffset)); + countOffset), + append_ie); break; case SigIeBcnReportingDetail: status |= @@ -9293,7 +9735,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEBcnReportingDetail *) (pFrm + pIe->offset + sizeof(tDot11fIEBcnReportingDetail) * - countOffset)); + countOffset), + append_ie); break; case SigIeBeaconReportFrmBody: status |= @@ -9302,7 +9745,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEBeaconReportFrmBody *) (pFrm + pIe->offset + sizeof(tDot11fIEBeaconReportFrmBody) * - countOffset)); + countOffset), + append_ie); break; case SigIeBeaconReporting: status |= @@ -9311,7 +9755,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEBeaconReporting *) (pFrm + pIe->offset + sizeof(tDot11fIEBeaconReporting) * - countOffset)); + countOffset), + append_ie); break; case SigIeCondensedCountryStr: status |= @@ -9320,7 +9765,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIECondensedCountryStr *) (pFrm + pIe->offset + sizeof(tDot11fIECondensedCountryStr) * - countOffset)); + countOffset), + append_ie); break; case SigIeMeasurementPilot: status |= @@ -9329,7 +9775,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMeasurementPilot *) (pFrm + pIe->offset + sizeof(tDot11fIEMeasurementPilot) * - countOffset)); + countOffset), + append_ie); break; case SigIeMultiBssid: status |= @@ -9338,7 +9785,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMultiBssid *) (pFrm + pIe->offset + sizeof(tDot11fIEMultiBssid) * - countOffset)); + countOffset), + append_ie); break; case SigIeRICData: status |= @@ -9347,7 +9795,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERICData *) (pFrm + pIe->offset + sizeof(tDot11fIERICData) * - countOffset)); + countOffset), + append_ie); break; case SigIeRICDescriptor: status |= @@ -9356,7 +9805,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERICDescriptor *) (pFrm + pIe->offset + sizeof(tDot11fIERICDescriptor) * - countOffset)); + countOffset), + append_ie); break; case SigIeRRMEnabledCap: status |= @@ -9365,7 +9815,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERRMEnabledCap *) (pFrm + pIe->offset + sizeof(tDot11fIERRMEnabledCap) * - countOffset)); + countOffset), + append_ie); break; case SigIeRequestedInfo: status |= @@ -9374,7 +9825,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERequestedInfo *) (pFrm + pIe->offset + sizeof(tDot11fIERequestedInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeSSID: status |= @@ -9383,7 +9835,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESSID *) (pFrm + pIe->offset + sizeof(tDot11fIESSID) * - countOffset)); + countOffset), + append_ie); break; case SigIeSchedule: status |= @@ -9392,7 +9845,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESchedule *) (pFrm + pIe->offset + sizeof(tDot11fIESchedule) * - countOffset)); + countOffset), + append_ie); break; case SigIeTCLAS: status |= @@ -9401,7 +9855,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETCLAS *) (pFrm + pIe->offset + sizeof(tDot11fIETCLAS) * - countOffset)); + countOffset), + append_ie); break; case SigIeTCLASSPROC: status |= dot11f_unpack_ie_common_func(pCtx, pBufRemaining, len, @@ -9415,7 +9870,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETSDelay *) (pFrm + pIe->offset + sizeof(tDot11fIETSDelay) * - countOffset)); + countOffset), + append_ie); break; case SigIeTSFInfo: status |= @@ -9424,7 +9880,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETSFInfo *) (pFrm + pIe->offset + sizeof(tDot11fIETSFInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeTSPEC: status |= @@ -9433,7 +9890,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETSPEC *) (pFrm + pIe->offset + sizeof(tDot11fIETSPEC) * - countOffset)); + countOffset), + append_ie); break; case SigIeVHTCaps: status |= @@ -9442,7 +9900,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVHTCaps *) (pFrm + pIe->offset + sizeof(tDot11fIEVHTCaps) * - countOffset)); + countOffset), + append_ie); break; case SigIeVHTOperation: status |= @@ -9451,7 +9910,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVHTOperation *) (pFrm + pIe->offset + sizeof(tDot11fIEVHTOperation) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMSchedule: status |= @@ -9460,7 +9920,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMSchedule *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMSchedule) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMTCLAS: status |= @@ -9469,7 +9930,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMTCLAS *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMTCLAS) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMTCLASPROC: status |= @@ -9478,7 +9940,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMTCLASPROC *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMTCLASPROC) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMTSDelay: status |= @@ -9487,7 +9950,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMTSDelay *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMTSDelay) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMTSPEC: status |= @@ -9496,7 +9960,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMTSPEC *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMTSPEC) * - countOffset)); + countOffset), + append_ie); break; case SigIeWiderBWChanSwitchAnn: status |= @@ -9505,7 +9970,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWiderBWChanSwitchAnn *) (pFrm + pIe->offset + sizeof(tDot11fIEWiderBWChanSwitchAnn) * - countOffset)); + countOffset), + append_ie); break; case SigIeazimuth_req: status |= @@ -9514,7 +9980,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEazimuth_req *) (pFrm + pIe->offset + sizeof(tDot11fIEazimuth_req) * - countOffset)); + countOffset), + append_ie); break; case SigIemax_age: status |= @@ -9523,7 +9990,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEmax_age *) (pFrm + pIe->offset + sizeof(tDot11fIEmax_age) * - countOffset)); + countOffset), + append_ie); break; case SigIeneighbor_rpt: status |= @@ -9532,7 +10000,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEneighbor_rpt *) (pFrm + pIe->offset + sizeof(tDot11fIEneighbor_rpt) * - countOffset)); + countOffset), + append_ie); break; case SigIereq_mac_addr: status |= @@ -9541,7 +10010,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEreq_mac_addr *) (pFrm + pIe->offset + sizeof(tDot11fIEreq_mac_addr) * - countOffset)); + countOffset), + append_ie); break; case SigIetgt_mac_addr: status |= @@ -9550,7 +10020,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEtgt_mac_addr *) (pFrm + pIe->offset + sizeof(tDot11fIEtgt_mac_addr) * - countOffset)); + countOffset), + append_ie); break; case SigIevht_transmit_power_env: status |= @@ -9559,7 +10030,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEvht_transmit_power_env *) (pFrm + pIe->offset + sizeof(tDot11fIEvht_transmit_power_env) * - countOffset)); + countOffset), + append_ie); break; case SigIeAID: status |= @@ -9568,7 +10040,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEAID *) (pFrm + pIe->offset + sizeof(tDot11fIEAID) * - countOffset)); + countOffset), + append_ie); break; case SigIeCFParams: status |= @@ -9577,7 +10050,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIECFParams *) (pFrm + pIe->offset + sizeof(tDot11fIECFParams) * - countOffset)); + countOffset), + append_ie); break; case SigIeChallengeText: status |= @@ -9586,7 +10060,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEChallengeText *) (pFrm + pIe->offset + sizeof(tDot11fIEChallengeText) * - countOffset)); + countOffset), + append_ie); break; case SigIeChanSwitchAnn: status |= @@ -9595,7 +10070,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEChanSwitchAnn *) (pFrm + pIe->offset + sizeof(tDot11fIEChanSwitchAnn) * - countOffset)); + countOffset), + append_ie); break; case SigIeChannelSwitchWrapper: status |= @@ -9604,7 +10080,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEChannelSwitchWrapper *) (pFrm + pIe->offset + sizeof(tDot11fIEChannelSwitchWrapper) * - countOffset)); + countOffset), + append_ie); break; case SigIeCountry: status |= @@ -9613,7 +10090,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIECountry *) (pFrm + pIe->offset + sizeof(tDot11fIECountry) * - countOffset)); + countOffset), + append_ie); break; case SigIeDSParams: status |= dot11f_unpack_ie_common_func(pCtx, pBufRemaining, len, @@ -9627,7 +10105,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEEDCAParamSet *) (pFrm + pIe->offset + sizeof(tDot11fIEEDCAParamSet) * - countOffset)); + countOffset), + append_ie); break; case SigIeERPInfo: status |= @@ -9636,7 +10115,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEERPInfo *) (pFrm + pIe->offset + sizeof(tDot11fIEERPInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeESECckmOpaque: status |= @@ -9645,7 +10125,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESECckmOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEESECckmOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeESERadMgmtCap: status |= @@ -9654,7 +10135,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESERadMgmtCap *) (pFrm + pIe->offset + sizeof(tDot11fIEESERadMgmtCap) * - countOffset)); + countOffset), + append_ie); break; case SigIeESETrafStrmMet: status |= @@ -9663,7 +10145,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESETrafStrmMet *) (pFrm + pIe->offset + sizeof(tDot11fIEESETrafStrmMet) * - countOffset)); + countOffset), + append_ie); break; case SigIeESETrafStrmRateSet: status |= @@ -9672,7 +10155,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESETrafStrmRateSet *) (pFrm + pIe->offset + sizeof(tDot11fIEESETrafStrmRateSet) * - countOffset)); + countOffset), + append_ie); break; case SigIeESETxmitPower: status |= @@ -9681,7 +10165,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESETxmitPower *) (pFrm + pIe->offset + sizeof(tDot11fIEESETxmitPower) * - countOffset)); + countOffset), + append_ie); break; case SigIeESEVersion: status |= @@ -9690,7 +10175,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESEVersion *) (pFrm + pIe->offset + sizeof(tDot11fIEESEVersion) * - countOffset)); + countOffset), + append_ie); break; case SigIeExtCap: status |= @@ -9699,7 +10185,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEExtCap *) (pFrm + pIe->offset + sizeof(tDot11fIEExtCap) * - countOffset)); + countOffset), + append_ie); break; case SigIeExtSuppRates: status |= @@ -9708,7 +10195,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEExtSuppRates *) (pFrm + pIe->offset + sizeof(tDot11fIEExtSuppRates) * - countOffset)); + countOffset), + append_ie); break; case SigIeFHParamSet: status |= @@ -9717,7 +10205,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEFHParamSet *) (pFrm + pIe->offset + sizeof(tDot11fIEFHParamSet) * - countOffset)); + countOffset), + append_ie); break; case SigIeFHParams: status |= @@ -9726,7 +10215,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEFHParams *) (pFrm + pIe->offset + sizeof(tDot11fIEFHParams) * - countOffset)); + countOffset), + append_ie); break; case SigIeFHPattTable: status |= @@ -9735,7 +10225,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEFHPattTable *) (pFrm + pIe->offset + sizeof(tDot11fIEFHPattTable) * - countOffset)); + countOffset), + append_ie); break; case SigIeFTInfo: status |= @@ -9744,7 +10235,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEFTInfo *) (pFrm + pIe->offset + sizeof(tDot11fIEFTInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeHTCaps: status |= @@ -9753,7 +10245,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEHTCaps *) (pFrm + pIe->offset + sizeof(tDot11fIEHTCaps) * - countOffset)); + countOffset), + append_ie); break; case SigIeHTInfo: status |= @@ -9762,7 +10255,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEHTInfo *) (pFrm + pIe->offset + sizeof(tDot11fIEHTInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeIBSSParams: status |= @@ -9771,7 +10265,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEIBSSParams *) (pFrm + pIe->offset + sizeof(tDot11fIEIBSSParams) * - countOffset)); + countOffset), + append_ie); break; case SigIeLinkIdentifier: status |= @@ -9780,7 +10275,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIELinkIdentifier *) (pFrm + pIe->offset + sizeof(tDot11fIELinkIdentifier) * - countOffset)); + countOffset), + append_ie); break; case SigIeMBO_IE: status |= @@ -9789,7 +10285,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMBO_IE *) (pFrm + pIe->offset + sizeof(tDot11fIEMBO_IE) * - countOffset)); + countOffset), + append_ie); break; case SigIeMeasurementReport: status |= @@ -9798,7 +10295,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMeasurementReport *) (pFrm + pIe->offset + sizeof(tDot11fIEMeasurementReport) * - countOffset)); + countOffset), + append_ie); break; case SigIeMeasurementRequest: status |= @@ -9807,7 +10305,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMeasurementRequest *) (pFrm + pIe->offset + sizeof(tDot11fIEMeasurementRequest) * - countOffset)); + countOffset), + append_ie); break; case SigIeMobilityDomain: status |= @@ -9816,7 +10315,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMobilityDomain *) (pFrm + pIe->offset + sizeof(tDot11fIEMobilityDomain) * - countOffset)); + countOffset), + append_ie); break; case SigIeNeighborReport: if (countOffset < MAX_SUPPORTED_NEIGHBOR_RPT) { @@ -9826,7 +10326,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIENeighborReport *) (pFrm + pIe->offset + sizeof(tDot11fIENeighborReport) * - countOffset)); + countOffset), + append_ie); } else { status |= DOT11F_BUFFER_OVERFLOW; } @@ -9838,7 +10339,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEOBSSScanParameters *) (pFrm + pIe->offset + sizeof(tDot11fIEOBSSScanParameters) * - countOffset)); + countOffset), + append_ie); break; case SigIeOperatingMode: status |= @@ -9847,7 +10349,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEOperatingMode *) (pFrm + pIe->offset + sizeof(tDot11fIEOperatingMode) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PAssocReq: status |= @@ -9856,7 +10359,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PAssocReq *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PAssocReq) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PAssocRes: status |= @@ -9865,7 +10369,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PAssocRes *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PAssocRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PBeacon: status |= @@ -9874,7 +10379,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PBeacon *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PBeacon) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PBeaconProbeRes: status |= @@ -9883,7 +10389,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PBeaconProbeRes *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PBeaconProbeRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PDeAuth: status |= @@ -9892,7 +10399,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PDeAuth *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PDeAuth) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PDisAssoc: status |= @@ -9901,7 +10409,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PDisAssoc *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PDisAssoc) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PIEOpaque: status |= @@ -9910,7 +10419,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PIEOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PIEOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PProbeReq: status |= @@ -9919,7 +10429,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PProbeReq *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PProbeReq) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PProbeRes: status |= @@ -9928,7 +10439,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PProbeRes *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PProbeRes) * - countOffset)); + countOffset), + append_ie); break; case SigIePTIControl: status |= @@ -9937,7 +10449,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEPTIControl *) (pFrm + pIe->offset + sizeof(tDot11fIEPTIControl) * - countOffset)); + countOffset), + append_ie); break; case SigIePUBufferStatus: status |= @@ -9946,7 +10459,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEPUBufferStatus *) (pFrm + pIe->offset + sizeof(tDot11fIEPUBufferStatus) * - countOffset)); + countOffset), + append_ie); break; case SigIePowerCaps: status |= @@ -9955,7 +10469,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEPowerCaps *) (pFrm + pIe->offset + sizeof(tDot11fIEPowerCaps) * - countOffset)); + countOffset), + append_ie); break; case SigIePowerConstraints: status |= @@ -9964,7 +10479,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEPowerConstraints *) (pFrm + pIe->offset + sizeof(tDot11fIEPowerConstraints) * - countOffset)); + countOffset), + append_ie); break; case SigIeQBSSLoad: status |= @@ -9973,7 +10489,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQBSSLoad *) (pFrm + pIe->offset + sizeof(tDot11fIEQBSSLoad) * - countOffset)); + countOffset), + append_ie); break; case SigIeQCN_IE: status |= @@ -9982,7 +10499,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQCN_IE *) (pFrm + pIe->offset + sizeof(tDot11fIEQCN_IE) * - countOffset)); + countOffset), + append_ie); break; case SigIeQComVendorIE: status |= @@ -9991,7 +10509,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQComVendorIE *) (pFrm + pIe->offset + sizeof(tDot11fIEQComVendorIE) * - countOffset)); + countOffset), + append_ie); break; case SigIeQOSCapsAp: status |= @@ -10000,7 +10519,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQOSCapsAp *) (pFrm + pIe->offset + sizeof(tDot11fIEQOSCapsAp) * - countOffset)); + countOffset), + append_ie); break; case SigIeQOSCapsStation: status |= @@ -10009,7 +10529,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQOSCapsStation *) (pFrm + pIe->offset + sizeof(tDot11fIEQOSCapsStation) * - countOffset)); + countOffset), + append_ie); break; case SigIeQosMapSet: status |= @@ -10018,7 +10539,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQosMapSet *) (pFrm + pIe->offset + sizeof(tDot11fIEQosMapSet) * - countOffset)); + countOffset), + append_ie); break; case SigIeQuiet: status |= @@ -10027,7 +10549,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQuiet *) (pFrm + pIe->offset + sizeof(tDot11fIEQuiet) * - countOffset)); + countOffset), + append_ie); break; case SigIeRCPIIE: status |= @@ -10036,7 +10559,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERCPIIE *) (pFrm + pIe->offset + sizeof(tDot11fIERCPIIE) * - countOffset)); + countOffset), + append_ie); break; case SigIeRICDataDesc: /* reset the pointers back since this is a container IE and it doesnt have its own EID and Len. */ @@ -10056,7 +10580,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERICDataDesc *) (pFrm + pIe->offset + sizeof(tDot11fIERICDataDesc) * - countOffset)); + countOffset), + append_ie); break; case SigIeRSN: status |= @@ -10065,7 +10590,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERSN *) (pFrm + pIe->offset + sizeof(tDot11fIERSN) * - countOffset)); + countOffset), + append_ie); break; case SigIeRSNIIE: status |= @@ -10074,7 +10600,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERSNIIE *) (pFrm + pIe->offset + sizeof(tDot11fIERSNIIE) * - countOffset)); + countOffset), + append_ie); break; case SigIeRSNOpaque: status |= @@ -10083,7 +10610,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERSNOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIERSNOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeSuppChannels: status |= @@ -10092,7 +10620,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESuppChannels *) (pFrm + pIe->offset + sizeof(tDot11fIESuppChannels) * - countOffset)); + countOffset), + append_ie); break; case SigIeSuppOperatingClasses: status |= @@ -10101,7 +10630,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESuppOperatingClasses *) (pFrm + pIe->offset + sizeof(tDot11fIESuppOperatingClasses) * - countOffset)); + countOffset), + append_ie); break; case SigIeSuppRates: status |= @@ -10110,7 +10640,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESuppRates *) (pFrm + pIe->offset + sizeof(tDot11fIESuppRates) * - countOffset)); + countOffset), + append_ie); break; case SigIeTIM: status |= @@ -10119,7 +10650,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETIM *) (pFrm + pIe->offset + sizeof(tDot11fIETIM) * - countOffset)); + countOffset), + append_ie); break; case SigIeTPCReport: status |= @@ -10128,7 +10660,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETPCReport *) (pFrm + pIe->offset + sizeof(tDot11fIETPCReport) * - countOffset)); + countOffset), + append_ie); break; case SigIeTPCRequest: status |= @@ -10137,7 +10670,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETPCRequest *) (pFrm + pIe->offset + sizeof(tDot11fIETPCRequest) * - countOffset)); + countOffset), + append_ie); break; case SigIeTimeAdvertisement: status |= @@ -10146,7 +10680,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETimeAdvertisement *) (pFrm + pIe->offset + sizeof(tDot11fIETimeAdvertisement) * - countOffset)); + countOffset), + append_ie); break; case SigIeTimeoutInterval: status |= @@ -10155,7 +10690,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETimeoutInterval *) (pFrm + pIe->offset + sizeof(tDot11fIETimeoutInterval) * - countOffset)); + countOffset), + append_ie); break; case SigIeVHTExtBssLoad: status |= @@ -10164,7 +10700,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVHTExtBssLoad *) (pFrm + pIe->offset + sizeof(tDot11fIEVHTExtBssLoad) * - countOffset)); + countOffset), + append_ie); break; case SigIeVendor1IE: status |= @@ -10173,7 +10710,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVendor1IE *) (pFrm + pIe->offset + sizeof(tDot11fIEVendor1IE) * - countOffset)); + countOffset), + append_ie); break; case SigIeVendor3IE: status |= @@ -10182,7 +10720,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVendor3IE *) (pFrm + pIe->offset + sizeof(tDot11fIEVendor3IE) * - countOffset)); + countOffset), + append_ie); break; case SigIeWAPI: status |= @@ -10191,7 +10730,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWAPI *) (pFrm + pIe->offset + sizeof(tDot11fIEWAPI) * - countOffset)); + countOffset), + append_ie); break; case SigIeWAPIOpaque: status |= @@ -10200,7 +10740,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWAPIOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEWAPIOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeWFATPC: status |= @@ -10209,7 +10750,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWFATPC *) (pFrm + pIe->offset + sizeof(tDot11fIEWFATPC) * - countOffset)); + countOffset), + append_ie); break; case SigIeWFDIEOpaque: status |= @@ -10218,7 +10760,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWFDIEOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEWFDIEOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMCaps: status |= @@ -10227,7 +10770,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMCaps *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMCaps) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMInfoAp: status |= @@ -10236,7 +10780,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMInfoAp *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMInfoAp) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMInfoStation: status |= @@ -10245,7 +10790,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMInfoStation *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMInfoStation) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMParams: status |= @@ -10254,7 +10800,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMParams *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMParams) * - countOffset)); + countOffset), + append_ie); break; case SigIeWPA: status |= @@ -10263,7 +10810,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWPA *) (pFrm + pIe->offset + sizeof(tDot11fIEWPA) * - countOffset)); + countOffset), + append_ie); break; case SigIeWPAOpaque: status |= @@ -10272,7 +10820,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWPAOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEWPAOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeWSC: status |= @@ -10281,7 +10830,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWSC *) (pFrm + pIe->offset + sizeof(tDot11fIEWSC) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscAssocReq: status |= @@ -10290,7 +10840,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscAssocReq *) (pFrm + pIe->offset + sizeof(tDot11fIEWscAssocReq) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscAssocRes: status |= @@ -10299,7 +10850,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscAssocRes *) (pFrm + pIe->offset + sizeof(tDot11fIEWscAssocRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscBeacon: status |= @@ -10308,7 +10860,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscBeacon *) (pFrm + pIe->offset + sizeof(tDot11fIEWscBeacon) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscBeaconProbeRes: status |= @@ -10317,7 +10870,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscBeaconProbeRes *) (pFrm + pIe->offset + sizeof(tDot11fIEWscBeaconProbeRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscIEOpaque: status |= @@ -10326,7 +10880,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscIEOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEWscIEOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscProbeReq: status |= @@ -10335,7 +10890,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscProbeReq *) (pFrm + pIe->offset + sizeof(tDot11fIEWscProbeReq) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscProbeRes: status |= @@ -10344,7 +10900,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscProbeRes *) (pFrm + pIe->offset + sizeof(tDot11fIEWscProbeRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscReassocRes: status |= @@ -10353,7 +10910,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscReassocRes *) (pFrm + pIe->offset + sizeof(tDot11fIEWscReassocRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeext_chan_switch_ann: status |= @@ -10362,7 +10920,98 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEext_chan_switch_ann *) (pFrm + pIe->offset + sizeof(tDot11fIEext_chan_switch_ann) * - countOffset)); + countOffset), + append_ie); + break; + case SigIefils_assoc_delay_info: + status |= + dot11f_unpack_ie_fils_assoc_delay_info( + pCtx, pBufRemaining, len, + (tDot11fIEfils_assoc_delay_info *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_assoc_delay_info) * + countOffset), + append_ie); + break; + case SigIefils_hlp_container: + status |= + dot11f_unpack_ie_fils_hlp_container( + pCtx, pBufRemaining, len, + (tDot11fIEfils_hlp_container *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_hlp_container) * + countOffset), + append_ie); + break; + case SigIefils_indication: + status |= + dot11f_unpack_ie_fils_indication( + pCtx, pBufRemaining, len, + (tDot11fIEfils_indication *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_indication) * + countOffset), + append_ie); + break; + case SigIefils_kde: + status |= + dot11f_unpack_ie_fils_kde( + pCtx, pBufRemaining, len, + (tDot11fIEfils_kde *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_kde) * + countOffset), + append_ie); + break; + case SigIefils_key_confirmation: + status |= + dot11f_unpack_ie_fils_key_confirmation( + pCtx, pBufRemaining, len, + (tDot11fIEfils_key_confirmation *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_key_confirmation) * + countOffset), + append_ie); + break; + case SigIefils_nonce: + status |= + dot11f_unpack_ie_fils_nonce( + pCtx, pBufRemaining, len, + (tDot11fIEfils_nonce *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_nonce) * + countOffset), + append_ie); + break; + case SigIefils_public_key: + status |= + dot11f_unpack_ie_fils_public_key( + pCtx, pBufRemaining, len, + (tDot11fIEfils_public_key *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_public_key) * + countOffset), + append_ie); + break; + case SigIefils_session: + status |= + dot11f_unpack_ie_fils_session( + pCtx, pBufRemaining, len, + (tDot11fIEfils_session *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_session) * + countOffset), + append_ie); + break; + case SigIefils_wrapped_data: + status |= + dot11f_unpack_ie_fils_wrapped_data( + pCtx, pBufRemaining, len, + (tDot11fIEfils_wrapped_data *) + (pFrm + pIe->offset + + sizeof(tDot11fIEfils_wrapped_data) * + countOffset), + append_ie); break; case SigIehs20vendor_ie: status |= @@ -10371,7 +11020,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEhs20vendor_ie *) (pFrm + pIe->offset + sizeof(tDot11fIEhs20vendor_ie) * - countOffset)); + countOffset), + append_ie); break; case SigIeht2040_bss_coexistence: status |= @@ -10380,7 +11030,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEht2040_bss_coexistence *) (pFrm + pIe->offset + sizeof(tDot11fIEht2040_bss_coexistence) * - countOffset)); + countOffset), + append_ie); break; case SigIeht2040_bss_intolerant_report: status |= @@ -10389,7 +11040,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEht2040_bss_intolerant_report *) (pFrm + pIe->offset + sizeof(tDot11fIEht2040_bss_intolerant_report) * - countOffset)); + countOffset), + append_ie); break; case SigIesec_chan_offset_ele: status |= @@ -10398,7 +11050,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEsec_chan_offset_ele *) (pFrm + pIe->offset + sizeof(tDot11fIEsec_chan_offset_ele) * - countOffset)); + countOffset), + append_ie); break; case SigIevendor_vht_ie: status |= @@ -10407,7 +11060,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEvendor_vht_ie *) (pFrm + pIe->offset + sizeof(tDot11fIEvendor_vht_ie) * - countOffset)); + countOffset), + append_ie); break; default: FRAMES_LOG1(pCtx, FRLOGE, FRFL("INTERNAL ERROR" @@ -10421,8 +11075,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (++(*(uint16_t *)(pFrm + pIe->countOffset))); } } else { - FRAMES_LOG2(pCtx, FRLOG3, FRFL("Skipping unknown IE %d" - " (length %d)\n"), eid, len); + FRAMES_LOG3(pCtx, FRLOG3, FRFL("Skipping unknown IE %d extn ID %d" + " (length %d)\n"), eid, extn_eid, len); FRAMES_DUMP(pCtx, FRLOG3, pBufRemaining - 2, len); status |= DOT11F_UNKNOWN_IES; } @@ -10445,7 +11099,7 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, MandatoryCheck: pIe = &IEs[0]; - while (0xff != pIe->eid) { + while (0xff != pIe->eid || pIe->extn_eid) { if (pIe->fMandatory) { pfFound = (tFRAMES_BOOL *)(pFrm + pIe->offset + pIe->presenceOffset); @@ -10468,7 +11122,7 @@ static uint32_t unpack_tlv_core(tpAniSirGlobal pCtx, uint32_t nBuf, const tTLVDefn TLVs[], uint8_t *pFrm, - size_t nFrm) + size_t nFrm) { const tTLVDefn *pTlv; uint32_t nBufRemaining, status, npec; @@ -12094,13 +12748,15 @@ static uint32_t get_packed_size_core(tpAniSirGlobal pCtx, i = 0; n = 0; pIe = &(IEs[0]); - while (0xff != pIe->eid) { + while (0xff != pIe->eid || pIe->extn_eid) { pfFound = (tFRAMES_BOOL *)(pFrm + pIe->offset + pIe->presenceOffset); if (*pfFound) { countOffset = ((0 == pIe->arraybound) ? 1 : (*(uint16_t *)(pFrm + pIe->countOffset))); for (i = 0U; i < countOffset; ++i) { *pnNeeded += 2U + pIe->noui; + if (pIe->extn_eid) + (*pnNeeded)++; byteCount = 0; switch (pIe->sig) { case SigIeGTK: @@ -13061,6 +13717,81 @@ static uint32_t get_packed_size_core(tpAniSirGlobal pCtx, (pFrm + pIe->offset + offset * i))-> present; break; + case SigIefils_assoc_delay_info: + offset = sizeof(tDot11fIEfils_assoc_delay_info); + byteCount = 1; + pIePresent = ((tDot11fIEfils_assoc_delay_info *) + (pFrm + pIe->offset + offset * i))-> + present; + break; + case SigIefils_hlp_container: + offset = sizeof(tDot11fIEfils_hlp_container); + byteCount = ((tDot11fIEfils_hlp_container *) + (pFrm + pIe->offset + offset * i))-> + num_hlp_packet + 12; + pIePresent = ((tDot11fIEfils_hlp_container *) + (pFrm + pIe->offset + offset * i))-> + present; + break; + case SigIefils_indication: + offset = sizeof(tDot11fIEfils_indication); + byteCount = ((tDot11fIEfils_indication *) + (pFrm + pIe->offset + offset * i))-> + num_variable_data + 2; + pIePresent = ((tDot11fIEfils_indication *) + (pFrm + pIe->offset + offset * i))-> + present; + break; + case SigIefils_kde: + offset = sizeof(tDot11fIEfils_kde); + byteCount = ((tDot11fIEfils_kde *) + (pFrm + pIe->offset + offset * i))-> + num_kde_list + 8; + pIePresent = ((tDot11fIEfils_kde *) + (pFrm + pIe->offset + offset * i))-> + present; + break; + case SigIefils_key_confirmation: + offset = sizeof(tDot11fIEfils_key_confirmation); + byteCount = ((tDot11fIEfils_key_confirmation *) + (pFrm + pIe->offset + offset * i))-> + num_key_auth; + pIePresent = ((tDot11fIEfils_key_confirmation *) + (pFrm + pIe->offset + offset * i))-> + present; + break; + case SigIefils_nonce: + offset = sizeof(tDot11fIEfils_nonce); + byteCount = 16; + pIePresent = ((tDot11fIEfils_nonce *) + (pFrm + pIe->offset + offset * i))-> + present; + break; + case SigIefils_public_key: + offset = sizeof(tDot11fIEfils_public_key); + byteCount = ((tDot11fIEfils_public_key *) + (pFrm + pIe->offset + offset * i))-> + num_public_key + 1; + pIePresent = ((tDot11fIEfils_public_key *) + (pFrm + pIe->offset + offset * i))-> + present; + break; + case SigIefils_session: + offset = sizeof(tDot11fIEfils_session); + byteCount = 8; + pIePresent = ((tDot11fIEfils_session *) + (pFrm + pIe->offset + offset * i))-> + present; + break; + case SigIefils_wrapped_data: + offset = sizeof(tDot11fIEfils_wrapped_data); + byteCount = ((tDot11fIEfils_wrapped_data *) + (pFrm + pIe->offset + offset * i))-> + num_wrapped_data; + pIePresent = ((tDot11fIEfils_wrapped_data *) + (pFrm + pIe->offset + offset * i))-> + present; + break; case SigIehs20vendor_ie: offset = sizeof(tDot11fIEhs20vendor_ie); status |= @@ -13384,25 +14115,25 @@ void dot11f_pack_ff_capabilities(tpAniSirGlobal pCtx, tDot11fFfCapabilities *pSrc, uint8_t *pBuf) { - uint16_t tmp70__; - tmp70__ = 0U; - tmp70__ |= (pSrc->ess << 0); - tmp70__ |= (pSrc->ibss << 1); - tmp70__ |= (pSrc->cfPollable << 2); - tmp70__ |= (pSrc->cfPollReq << 3); - tmp70__ |= (pSrc->privacy << 4); - tmp70__ |= (pSrc->shortPreamble << 5); - tmp70__ |= (pSrc->pbcc << 6); - tmp70__ |= (pSrc->channelAgility << 7); - tmp70__ |= (pSrc->spectrumMgt << 8); - tmp70__ |= (pSrc->qos << 9); - tmp70__ |= (pSrc->shortSlotTime << 10); - tmp70__ |= (pSrc->apsd << 11); - tmp70__ |= (pSrc->rrm << 12); - tmp70__ |= (pSrc->dsssOfdm << 13); - tmp70__ |= (pSrc->delayedBA << 14); - tmp70__ |= (pSrc->immediateBA << 15); - frameshtons(pCtx, pBuf, tmp70__, 0); + uint16_t tmp71__; + tmp71__ = 0U; + tmp71__ |= (pSrc->ess << 0); + tmp71__ |= (pSrc->ibss << 1); + tmp71__ |= (pSrc->cfPollable << 2); + tmp71__ |= (pSrc->cfPollReq << 3); + tmp71__ |= (pSrc->privacy << 4); + tmp71__ |= (pSrc->shortPreamble << 5); + tmp71__ |= (pSrc->pbcc << 6); + tmp71__ |= (pSrc->channelAgility << 7); + tmp71__ |= (pSrc->spectrumMgt << 8); + tmp71__ |= (pSrc->qos << 9); + tmp71__ |= (pSrc->shortSlotTime << 10); + tmp71__ |= (pSrc->apsd << 11); + tmp71__ |= (pSrc->rrm << 12); + tmp71__ |= (pSrc->dsssOfdm << 13); + tmp71__ |= (pSrc->delayedBA << 14); + tmp71__ |= (pSrc->immediateBA << 15); + frameshtons(pCtx, pBuf, tmp71__, 0); (void)pCtx; } /* End dot11f_pack_ff_capabilities. */ @@ -13466,13 +14197,13 @@ void dot11f_pack_ff_operating_mode(tpAniSirGlobal pCtx, tDot11fFfOperatingMode *pSrc, uint8_t *pBuf) { - uint8_t tmp71__; - tmp71__ = 0U; - tmp71__ |= (pSrc->chanWidth << 0); - tmp71__ |= (pSrc->reserved << 2); - tmp71__ |= (pSrc->rxNSS << 4); - tmp71__ |= (pSrc->rxNSSType << 7); - *pBuf = tmp71__; + uint8_t tmp72__; + tmp72__ = 0U; + tmp72__ |= (pSrc->chanWidth << 0); + tmp72__ |= (pSrc->reserved << 2); + tmp72__ |= (pSrc->rxNSS << 4); + tmp72__ |= (pSrc->rxNSSType << 7); + *pBuf = tmp72__; (void)pCtx; } /* End dot11f_pack_ff_operating_mode. */ @@ -13512,12 +14243,12 @@ void dot11f_pack_ff_sm_power_mode_set(tpAniSirGlobal pCtx, tDot11fFfSMPowerModeSet *pSrc, uint8_t *pBuf) { - uint8_t tmp72__; - tmp72__ = 0U; - tmp72__ |= (pSrc->PowerSave_En << 0); - tmp72__ |= (pSrc->Mode << 1); - tmp72__ |= (pSrc->reserved << 2); - *pBuf = tmp72__; + uint8_t tmp73__; + tmp73__ = 0U; + tmp73__ |= (pSrc->PowerSave_En << 0); + tmp73__ |= (pSrc->Mode << 1); + tmp73__ |= (pSrc->reserved << 2); + *pBuf = tmp73__; (void)pCtx; } /* End dot11f_pack_ff_sm_power_mode_set. */ @@ -13557,19 +14288,19 @@ void dot11f_pack_ff_ts_info(tpAniSirGlobal pCtx, tDot11fFfTSInfo *pSrc, uint8_t *pBuf) { - uint32_t tmp73__; - tmp73__ = 0U; - tmp73__ |= (pSrc->traffic_type << 0); - tmp73__ |= (pSrc->tsid << 1); - tmp73__ |= (pSrc->direction << 5); - tmp73__ |= (pSrc->access_policy << 7); - tmp73__ |= (pSrc->aggregation << 9); - tmp73__ |= (pSrc->psb << 10); - tmp73__ |= (pSrc->user_priority << 11); - tmp73__ |= (pSrc->tsinfo_ack_pol << 14); - tmp73__ |= (pSrc->schedule << 16); - tmp73__ |= (pSrc->unused << 17); - frameshtonl(pCtx, pBuf, tmp73__, 0); + uint32_t tmp74__; + tmp74__ = 0U; + tmp74__ |= (pSrc->traffic_type << 0); + tmp74__ |= (pSrc->tsid << 1); + tmp74__ |= (pSrc->direction << 5); + tmp74__ |= (pSrc->access_policy << 7); + tmp74__ |= (pSrc->aggregation << 9); + tmp74__ |= (pSrc->psb << 10); + tmp74__ |= (pSrc->user_priority << 11); + tmp74__ |= (pSrc->tsinfo_ack_pol << 14); + tmp74__ |= (pSrc->schedule << 16); + tmp74__ |= (pSrc->unused << 17); + frameshtonl(pCtx, pBuf, tmp74__, 0); (void)pCtx; } /* End dot11f_pack_ff_ts_info. */ @@ -13625,13 +14356,13 @@ void dot11f_pack_ff_ext_chan_switch_ann_action(tpAniSirGlobal pCtx, tDot11fFfext_chan_switch_ann_action *pSrc, uint8_t *pBuf) { - uint32_t tmp74__; - tmp74__ = 0U; - tmp74__ |= (pSrc->switch_mode << 0); - tmp74__ |= (pSrc->op_class << 8); - tmp74__ |= (pSrc->new_channel << 16); - tmp74__ |= (pSrc->switch_count << 24); - frameshtonl(pCtx, pBuf, tmp74__, 0); + uint32_t tmp75__; + tmp75__ = 0U; + tmp75__ |= (pSrc->switch_mode << 0); + tmp75__ |= (pSrc->op_class << 8); + tmp75__ |= (pSrc->new_channel << 16); + tmp75__ |= (pSrc->switch_count << 24); + frameshtonl(pCtx, pBuf, tmp75__, 0); (void)pCtx; } /* End dot11f_pack_ff_ext_chan_switch_ann_action. */ @@ -13718,7 +14449,7 @@ uint32_t dot11f_pack_tlv_version2(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp75__; + uint8_t tmp76__; nNeeded += 3; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -13727,10 +14458,10 @@ uint32_t dot11f_pack_tlv_version2(tpAniSirGlobal pCtx, pBuf += 1; *pnConsumed += 1; pTlvLen = pBuf; pBuf += 1; *pnConsumed += 1; - tmp75__ = 0U; - tmp75__ |= (pSrc->minor << 0); - tmp75__ |= (pSrc->major << 4); - *pBuf = tmp75__; + tmp76__ = 0U; + tmp76__ |= (pSrc->minor << 0); + tmp76__ |= (pSrc->major << 4); + *pBuf = tmp76__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -14687,7 +15418,7 @@ uint32_t dot11f_pack_tlv_version(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp76__; + uint8_t tmp77__; nNeeded += 5; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -14696,10 +15427,10 @@ uint32_t dot11f_pack_tlv_version(tpAniSirGlobal pCtx, pBuf += 2; *pnConsumed += 2; pTlvLen = pBuf; pBuf += 2; *pnConsumed += 2; - tmp76__ = 0U; - tmp76__ |= (pSrc->minor << 0); - tmp76__ |= (pSrc->major << 4); - *pBuf = tmp76__; + tmp77__ = 0U; + tmp77__ |= (pSrc->minor << 0); + tmp77__ |= (pSrc->major << 4); + *pBuf = tmp77__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -14808,7 +15539,7 @@ uint32_t dot11f_pack_ie_gtk(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp77__; + uint16_t tmp78__; nNeeded += (pSrc->num_key + 11); while (pSrc->present) { if (nNeeded > nBuf) @@ -14817,10 +15548,10 @@ uint32_t dot11f_pack_ie_gtk(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp77__ = 0U; - tmp77__ |= (pSrc->keyId << 0); - tmp77__ |= (pSrc->reserved << 2); - frameshtons(pCtx, pBuf, tmp77__, 0); + tmp78__ = 0U; + tmp78__ |= (pSrc->keyId << 0); + tmp78__ |= (pSrc->reserved << 2); + frameshtons(pCtx, pBuf, tmp78__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -15229,11 +15960,11 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp78__; uint8_t tmp79__; uint8_t tmp80__; uint8_t tmp81__; uint8_t tmp82__; + uint8_t tmp83__; nNeeded += 5; while (pSrc->present) { if (nNeeded > nBuf) @@ -15242,60 +15973,60 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp78__ = 0U; - tmp78__ |= (pSrc->LinkMeasurement << 0); - tmp78__ |= (pSrc->NeighborRpt << 1); - tmp78__ |= (pSrc->parallel << 2); - tmp78__ |= (pSrc->repeated << 3); - tmp78__ |= (pSrc->BeaconPassive << 4); - tmp78__ |= (pSrc->BeaconActive << 5); - tmp78__ |= (pSrc->BeaconTable << 6); - tmp78__ |= (pSrc->BeaconRepCond << 7); - *pBuf = tmp78__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; tmp79__ = 0U; - tmp79__ |= (pSrc->FrameMeasurement << 0); - tmp79__ |= (pSrc->ChannelLoad << 1); - tmp79__ |= (pSrc->NoiseHistogram << 2); - tmp79__ |= (pSrc->statistics << 3); - tmp79__ |= (pSrc->LCIMeasurement << 4); - tmp79__ |= (pSrc->LCIAzimuth << 5); - tmp79__ |= (pSrc->TCMCapability << 6); - tmp79__ |= (pSrc->triggeredTCM << 7); + tmp79__ |= (pSrc->LinkMeasurement << 0); + tmp79__ |= (pSrc->NeighborRpt << 1); + tmp79__ |= (pSrc->parallel << 2); + tmp79__ |= (pSrc->repeated << 3); + tmp79__ |= (pSrc->BeaconPassive << 4); + tmp79__ |= (pSrc->BeaconActive << 5); + tmp79__ |= (pSrc->BeaconTable << 6); + tmp79__ |= (pSrc->BeaconRepCond << 7); *pBuf = tmp79__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; tmp80__ = 0U; - tmp80__ |= (pSrc->APChanReport << 0); - tmp80__ |= (pSrc->RRMMIBEnabled << 1); - tmp80__ |= (pSrc->operatingChanMax << 2); - tmp80__ |= (pSrc->nonOperatinChanMax << 5); + tmp80__ |= (pSrc->FrameMeasurement << 0); + tmp80__ |= (pSrc->ChannelLoad << 1); + tmp80__ |= (pSrc->NoiseHistogram << 2); + tmp80__ |= (pSrc->statistics << 3); + tmp80__ |= (pSrc->LCIMeasurement << 4); + tmp80__ |= (pSrc->LCIAzimuth << 5); + tmp80__ |= (pSrc->TCMCapability << 6); + tmp80__ |= (pSrc->triggeredTCM << 7); *pBuf = tmp80__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; tmp81__ = 0U; - tmp81__ |= (pSrc->MeasurementPilot << 0); - tmp81__ |= (pSrc->MeasurementPilotEnabled << 3); - tmp81__ |= (pSrc->NeighborTSFOffset << 4); - tmp81__ |= (pSrc->RCPIMeasurement << 5); - tmp81__ |= (pSrc->RSNIMeasurement << 6); - tmp81__ |= (pSrc->BssAvgAccessDelay << 7); + tmp81__ |= (pSrc->APChanReport << 0); + tmp81__ |= (pSrc->RRMMIBEnabled << 1); + tmp81__ |= (pSrc->operatingChanMax << 2); + tmp81__ |= (pSrc->nonOperatinChanMax << 5); *pBuf = tmp81__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; tmp82__ = 0U; - tmp82__ |= (pSrc->BSSAvailAdmission << 0); - tmp82__ |= (pSrc->AntennaInformation << 1); - tmp82__ |= (pSrc->fine_time_meas_rpt << 2); - tmp82__ |= (pSrc->lci_capability << 3); - tmp82__ |= (pSrc->reserved << 4); + tmp82__ |= (pSrc->MeasurementPilot << 0); + tmp82__ |= (pSrc->MeasurementPilotEnabled << 3); + tmp82__ |= (pSrc->NeighborTSFOffset << 4); + tmp82__ |= (pSrc->RCPIMeasurement << 5); + tmp82__ |= (pSrc->RSNIMeasurement << 6); + tmp82__ |= (pSrc->BssAvgAccessDelay << 7); *pBuf = tmp82__; *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp83__ = 0U; + tmp83__ |= (pSrc->BSSAvailAdmission << 0); + tmp83__ |= (pSrc->AntennaInformation << 1); + tmp83__ |= (pSrc->fine_time_meas_rpt << 2); + tmp83__ |= (pSrc->lci_capability << 3); + tmp83__ |= (pSrc->reserved << 4); + *pBuf = tmp83__; + *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; break; @@ -15374,7 +16105,7 @@ uint32_t dot11f_pack_ie_schedule(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp83__; + uint16_t tmp84__; nNeeded += 14; while (pSrc->present) { if (nNeeded > nBuf) @@ -15383,12 +16114,12 @@ uint32_t dot11f_pack_ie_schedule(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp83__ = 0U; - tmp83__ |= (pSrc->aggregation << 0); - tmp83__ |= (pSrc->tsid << 1); - tmp83__ |= (pSrc->direction << 5); - tmp83__ |= (pSrc->reserved << 7); - frameshtons(pCtx, pBuf, tmp83__, 0); + tmp84__ = 0U; + tmp84__ |= (pSrc->aggregation << 0); + tmp84__ |= (pSrc->tsid << 1); + tmp84__ |= (pSrc->direction << 5); + tmp84__ |= (pSrc->reserved << 7); + frameshtons(pCtx, pBuf, tmp84__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -15615,9 +16346,9 @@ uint32_t dot11f_pack_ie_tspec(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp84__; - uint8_t tmp85__; - uint16_t tmp86__; + uint16_t tmp85__; + uint8_t tmp86__; + uint16_t tmp87__; nNeeded += 55; while (pSrc->present) { if (nNeeded > nBuf) @@ -15626,30 +16357,30 @@ uint32_t dot11f_pack_ie_tspec(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp84__ = 0U; - tmp84__ |= (pSrc->traffic_type << 0); - tmp84__ |= (pSrc->tsid << 1); - tmp84__ |= (pSrc->direction << 5); - tmp84__ |= (pSrc->access_policy << 7); - tmp84__ |= (pSrc->aggregation << 9); - tmp84__ |= (pSrc->psb << 10); - tmp84__ |= (pSrc->user_priority << 11); - tmp84__ |= (pSrc->tsinfo_ack_pol << 14); - frameshtons(pCtx, pBuf, tmp84__, 0); + tmp85__ = 0U; + tmp85__ |= (pSrc->traffic_type << 0); + tmp85__ |= (pSrc->tsid << 1); + tmp85__ |= (pSrc->direction << 5); + tmp85__ |= (pSrc->access_policy << 7); + tmp85__ |= (pSrc->aggregation << 9); + tmp85__ |= (pSrc->psb << 10); + tmp85__ |= (pSrc->user_priority << 11); + tmp85__ |= (pSrc->tsinfo_ack_pol << 14); + frameshtons(pCtx, pBuf, tmp85__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp85__ = 0U; - tmp85__ |= (pSrc->schedule << 0); - tmp85__ |= (pSrc->unused << 1); - *pBuf = tmp85__; + tmp86__ = 0U; + tmp86__ |= (pSrc->schedule << 0); + tmp86__ |= (pSrc->unused << 1); + *pBuf = tmp86__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp86__ = 0U; - tmp86__ |= (pSrc->size << 0); - tmp86__ |= (pSrc->fixed << 15); - frameshtons(pCtx, pBuf, tmp86__, 0); + tmp87__ = 0U; + tmp87__ |= (pSrc->size << 0); + tmp87__ |= (pSrc->fixed << 15); + frameshtons(pCtx, pBuf, tmp87__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -15713,9 +16444,9 @@ uint32_t dot11f_pack_ie_vht_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint32_t tmp87__; - uint16_t tmp88__; + uint32_t tmp88__; uint16_t tmp89__; + uint16_t tmp90__; nNeeded += 12; while (pSrc->present) { if (nNeeded > nBuf) @@ -15724,48 +16455,48 @@ uint32_t dot11f_pack_ie_vht_caps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp87__ = 0U; - tmp87__ |= (pSrc->maxMPDULen << 0); - tmp87__ |= (pSrc->supportedChannelWidthSet << 2); - tmp87__ |= (pSrc->ldpcCodingCap << 4); - tmp87__ |= (pSrc->shortGI80MHz << 5); - tmp87__ |= (pSrc->shortGI160and80plus80MHz << 6); - tmp87__ |= (pSrc->txSTBC << 7); - tmp87__ |= (pSrc->rxSTBC << 8); - tmp87__ |= (pSrc->suBeamFormerCap << 11); - tmp87__ |= (pSrc->suBeamformeeCap << 12); - tmp87__ |= (pSrc->csnofBeamformerAntSup << 13); - tmp87__ |= (pSrc->numSoundingDim << 16); - tmp87__ |= (pSrc->muBeamformerCap << 19); - tmp87__ |= (pSrc->muBeamformeeCap << 20); - tmp87__ |= (pSrc->vhtTXOPPS << 21); - tmp87__ |= (pSrc->htcVHTCap << 22); - tmp87__ |= (pSrc->maxAMPDULenExp << 23); - tmp87__ |= (pSrc->vhtLinkAdaptCap << 26); - tmp87__ |= (pSrc->rxAntPattern << 28); - tmp87__ |= (pSrc->txAntPattern << 29); - tmp87__ |= (pSrc->reserved1 << 30); - frameshtonl(pCtx, pBuf, tmp87__, 0); + tmp88__ = 0U; + tmp88__ |= (pSrc->maxMPDULen << 0); + tmp88__ |= (pSrc->supportedChannelWidthSet << 2); + tmp88__ |= (pSrc->ldpcCodingCap << 4); + tmp88__ |= (pSrc->shortGI80MHz << 5); + tmp88__ |= (pSrc->shortGI160and80plus80MHz << 6); + tmp88__ |= (pSrc->txSTBC << 7); + tmp88__ |= (pSrc->rxSTBC << 8); + tmp88__ |= (pSrc->suBeamFormerCap << 11); + tmp88__ |= (pSrc->suBeamformeeCap << 12); + tmp88__ |= (pSrc->csnofBeamformerAntSup << 13); + tmp88__ |= (pSrc->numSoundingDim << 16); + tmp88__ |= (pSrc->muBeamformerCap << 19); + tmp88__ |= (pSrc->muBeamformeeCap << 20); + tmp88__ |= (pSrc->vhtTXOPPS << 21); + tmp88__ |= (pSrc->htcVHTCap << 22); + tmp88__ |= (pSrc->maxAMPDULenExp << 23); + tmp88__ |= (pSrc->vhtLinkAdaptCap << 26); + tmp88__ |= (pSrc->rxAntPattern << 28); + tmp88__ |= (pSrc->txAntPattern << 29); + tmp88__ |= (pSrc->reserved1 << 30); + frameshtonl(pCtx, pBuf, tmp88__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; frameshtons(pCtx, pBuf, pSrc->rxMCSMap, 0); *pnConsumed += 2; pBuf += 2; - tmp88__ = 0U; - tmp88__ |= (pSrc->rxHighSupDataRate << 0); - tmp88__ |= (pSrc->reserved2 << 13); - frameshtons(pCtx, pBuf, tmp88__, 0); + tmp89__ = 0U; + tmp89__ |= (pSrc->rxHighSupDataRate << 0); + tmp89__ |= (pSrc->reserved2 << 13); + frameshtons(pCtx, pBuf, tmp89__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; frameshtons(pCtx, pBuf, pSrc->txMCSMap, 0); *pnConsumed += 2; pBuf += 2; - tmp89__ = 0U; - tmp89__ |= (pSrc->txSupDataRate << 0); - tmp89__ |= (pSrc->reserved3 << 13); - frameshtons(pCtx, pBuf, tmp89__, 0); + tmp90__ = 0U; + tmp90__ |= (pSrc->txSupDataRate << 0); + tmp90__ |= (pSrc->reserved3 << 13); + frameshtons(pCtx, pBuf, tmp90__, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ nBuf -= 2 ; @@ -15825,7 +16556,7 @@ uint32_t dot11f_pack_ie_wmm_schedule(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp90__; + uint16_t tmp91__; nNeeded += 15; while (pSrc->present) { if (nNeeded > nBuf) @@ -15847,12 +16578,12 @@ uint32_t dot11f_pack_ie_wmm_schedule(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); + tmp91__ = 0U; + tmp91__ |= (pSrc->aggregation << 0); + tmp91__ |= (pSrc->tsid << 1); + tmp91__ |= (pSrc->direction << 5); + tmp91__ |= (pSrc->reserved << 7); + frameshtons(pCtx, pBuf, tmp91__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -16086,9 +16817,9 @@ uint32_t dot11f_pack_ie_wmmtspec(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp91__; - uint8_t tmp92__; - uint16_t tmp93__; + uint16_t tmp92__; + uint8_t tmp93__; + uint16_t tmp94__; nNeeded += 38; while (pSrc->present) { if (nNeeded > nBuf) @@ -16110,30 +16841,30 @@ uint32_t dot11f_pack_ie_wmmtspec(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); + tmp92__ = 0U; + tmp92__ |= (pSrc->traffic_type << 0); + tmp92__ |= (pSrc->tsid << 1); + tmp92__ |= (pSrc->direction << 5); + tmp92__ |= (pSrc->access_policy << 7); + tmp92__ |= (pSrc->aggregation << 9); + tmp92__ |= (pSrc->psb << 10); + tmp92__ |= (pSrc->user_priority << 11); + tmp92__ |= (pSrc->tsinfo_ack_pol << 14); + frameshtons(pCtx, pBuf, tmp92__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp92__ = 0U; - tmp92__ |= (pSrc->tsinfo_rsvd << 0); - tmp92__ |= (pSrc->burst_size_defn << 7); - *pBuf = tmp92__; + tmp93__ = 0U; + tmp93__ |= (pSrc->tsinfo_rsvd << 0); + tmp93__ |= (pSrc->burst_size_defn << 7); + *pBuf = tmp93__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp93__ = 0U; - tmp93__ |= (pSrc->size << 0); - tmp93__ |= (pSrc->fixed << 15); - frameshtons(pCtx, pBuf, tmp93__, 0); + tmp94__ = 0U; + tmp94__ |= (pSrc->size << 0); + tmp94__ |= (pSrc->fixed << 15); + frameshtons(pCtx, pBuf, tmp94__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -16290,8 +17021,8 @@ uint32_t dot11f_pack_ie_neighbor_rpt(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp94__; uint8_t tmp95__; + uint8_t tmp96__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_neighbor_rpt(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -16306,24 +17037,24 @@ uint32_t dot11f_pack_ie_neighbor_rpt(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->bssid, 6); *pnConsumed += 6; pBuf += 6; - tmp94__ = 0U; - tmp94__ |= (pSrc->APReachability << 0); - tmp94__ |= (pSrc->Security << 2); - tmp94__ |= (pSrc->KeyScope << 3); - tmp94__ |= (pSrc->SpecMgmtCap << 4); - tmp94__ |= (pSrc->QosCap << 5); - tmp94__ |= (pSrc->apsd << 6); - tmp94__ |= (pSrc->rrm << 7); - *pBuf = tmp94__; + tmp95__ = 0U; + tmp95__ |= (pSrc->APReachability << 0); + tmp95__ |= (pSrc->Security << 2); + tmp95__ |= (pSrc->KeyScope << 3); + tmp95__ |= (pSrc->SpecMgmtCap << 4); + tmp95__ |= (pSrc->QosCap << 5); + tmp95__ |= (pSrc->apsd << 6); + tmp95__ |= (pSrc->rrm << 7); + *pBuf = tmp95__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp95__ = 0U; - tmp95__ |= (pSrc->DelayedBA << 0); - tmp95__ |= (pSrc->ImmBA << 1); - tmp95__ |= (pSrc->MobilityDomain << 2); - tmp95__ |= (pSrc->reserved << 3); - *pBuf = tmp95__; + tmp96__ = 0U; + tmp96__ |= (pSrc->DelayedBA << 0); + tmp96__ |= (pSrc->ImmBA << 1); + tmp96__ |= (pSrc->MobilityDomain << 2); + tmp96__ |= (pSrc->reserved << 3); + *pBuf = tmp96__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -16686,7 +17417,6 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp96__; uint8_t tmp97__; uint8_t tmp98__; uint8_t tmp99__; @@ -16694,6 +17424,7 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, uint8_t tmp101__; uint8_t tmp102__; uint8_t tmp103__; + uint8_t tmp104__; nNeeded += 18; while (pSrc->present) { if (nNeeded > nBuf) @@ -16708,79 +17439,79 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved; *pnConsumed += 1; pBuf += 1; - tmp96__ = 0U; - tmp96__ |= (pSrc->acbe_aifsn << 0); - tmp96__ |= (pSrc->acbe_acm << 4); - tmp96__ |= (pSrc->acbe_aci << 5); - tmp96__ |= (pSrc->unused1 << 7); - *pBuf = tmp96__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; tmp97__ = 0U; - tmp97__ |= (pSrc->acbe_acwmin << 0); - tmp97__ |= (pSrc->acbe_acwmax << 4); + 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 ; - frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); - *pnConsumed += 2; - pBuf += 2; tmp98__ = 0U; - tmp98__ |= (pSrc->acbk_aifsn << 0); - tmp98__ |= (pSrc->acbk_acm << 4); - tmp98__ |= (pSrc->acbk_aci << 5); - tmp98__ |= (pSrc->unused2 << 7); + 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; tmp99__ = 0U; - tmp99__ |= (pSrc->acbk_acwmin << 0); - tmp99__ |= (pSrc->acbk_acwmax << 4); + 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 ; - frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); - *pnConsumed += 2; - pBuf += 2; tmp100__ = 0U; - tmp100__ |= (pSrc->acvi_aifsn << 0); - tmp100__ |= (pSrc->acvi_acm << 4); - tmp100__ |= (pSrc->acvi_aci << 5); - tmp100__ |= (pSrc->unused3 << 7); + 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; tmp101__ = 0U; - tmp101__ |= (pSrc->acvi_acwmin << 0); - tmp101__ |= (pSrc->acvi_acwmax << 4); + 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 ; - frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); - *pnConsumed += 2; - pBuf += 2; tmp102__ = 0U; - tmp102__ |= (pSrc->acvo_aifsn << 0); - tmp102__ |= (pSrc->acvo_acm << 4); - tmp102__ |= (pSrc->acvo_aci << 5); - tmp102__ |= (pSrc->unused4 << 7); + 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; tmp103__ = 0U; - tmp103__ |= (pSrc->acvo_acwmin << 0); - tmp103__ |= (pSrc->acvo_acwmax << 4); + 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 ; + tmp104__ = 0U; + tmp104__ |= (pSrc->acvo_acwmin << 0); + tmp104__ |= (pSrc->acvo_acwmax << 4); + *pBuf = tmp104__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvo_txoplimit, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ @@ -16802,7 +17533,7 @@ uint32_t dot11f_pack_ie_erp_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp104__; + uint8_t tmp105__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -16811,12 +17542,12 @@ uint32_t dot11f_pack_ie_erp_info(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp104__ = 0U; - tmp104__ |= (pSrc->non_erp_present << 0); - tmp104__ |= (pSrc->use_prot << 1); - tmp104__ |= (pSrc->barker_preamble << 2); - tmp104__ |= (pSrc->unused << 3); - *pBuf = tmp104__; + 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 ; @@ -16875,7 +17606,7 @@ uint32_t dot11f_pack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp105__; + uint8_t tmp106__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -16895,10 +17626,10 @@ uint32_t dot11f_pack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, *pBuf = pSrc->mgmt_state; *pnConsumed += 1; pBuf += 1; - tmp105__ = 0U; - tmp105__ |= (pSrc->mbssid_mask << 0); - tmp105__ |= (pSrc->reserved << 3); - *pBuf = tmp105__; + tmp106__ = 0U; + tmp106__ |= (pSrc->mbssid_mask << 0); + tmp106__ |= (pSrc->reserved << 3); + *pBuf = tmp106__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -17249,7 +17980,7 @@ uint32_t dot11f_pack_ie_ft_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp106__; + uint16_t tmp107__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ieft_info(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -17261,10 +17992,10 @@ uint32_t dot11f_pack_ie_ft_info(tpAniSirGlobal pCtx, ++pBuf; --nBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; --nBuf; ++(*pnConsumed); - tmp106__ = 0U; - tmp106__ |= (pSrc->reserved << 0); - tmp106__ |= (pSrc->IECount << 8); - frameshtons(pCtx, pBuf, tmp106__, 0); + tmp107__ = 0U; + tmp107__ |= (pSrc->reserved << 0); + tmp107__ |= (pSrc->IECount << 8); + frameshtons(pCtx, pBuf, tmp107__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -17302,11 +18033,11 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp107__; - uint8_t tmp108__; - uint16_t tmp109__; - uint32_t tmp110__; - uint8_t tmp111__; + uint16_t tmp108__; + uint8_t tmp109__; + uint16_t tmp110__; + uint32_t tmp111__; + uint8_t tmp112__; nNeeded += (pSrc->num_rsvd + 26); while (pSrc->present) { if (nNeeded > nBuf) @@ -17315,77 +18046,77 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp107__ = 0U; - tmp107__ |= (pSrc->advCodingCap << 0); - tmp107__ |= (pSrc->supportedChannelWidthSet << 1); - tmp107__ |= (pSrc->mimoPowerSave << 2); - tmp107__ |= (pSrc->greenField << 4); - tmp107__ |= (pSrc->shortGI20MHz << 5); - tmp107__ |= (pSrc->shortGI40MHz << 6); - tmp107__ |= (pSrc->txSTBC << 7); - tmp107__ |= (pSrc->rxSTBC << 8); - tmp107__ |= (pSrc->delayedBA << 10); - tmp107__ |= (pSrc->maximalAMSDUsize << 11); - tmp107__ |= (pSrc->dsssCckMode40MHz << 12); - tmp107__ |= (pSrc->psmp << 13); - tmp107__ |= (pSrc->stbcControlFrame << 14); - tmp107__ |= (pSrc->lsigTXOPProtection << 15); - frameshtons(pCtx, pBuf, tmp107__, 0); + tmp108__ = 0U; + tmp108__ |= (pSrc->advCodingCap << 0); + tmp108__ |= (pSrc->supportedChannelWidthSet << 1); + tmp108__ |= (pSrc->mimoPowerSave << 2); + tmp108__ |= (pSrc->greenField << 4); + tmp108__ |= (pSrc->shortGI20MHz << 5); + tmp108__ |= (pSrc->shortGI40MHz << 6); + tmp108__ |= (pSrc->txSTBC << 7); + tmp108__ |= (pSrc->rxSTBC << 8); + tmp108__ |= (pSrc->delayedBA << 10); + tmp108__ |= (pSrc->maximalAMSDUsize << 11); + tmp108__ |= (pSrc->dsssCckMode40MHz << 12); + tmp108__ |= (pSrc->psmp << 13); + tmp108__ |= (pSrc->stbcControlFrame << 14); + tmp108__ |= (pSrc->lsigTXOPProtection << 15); + frameshtons(pCtx, pBuf, tmp108__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp108__ = 0U; - tmp108__ |= (pSrc->maxRxAMPDUFactor << 0); - tmp108__ |= (pSrc->mpduDensity << 2); - tmp108__ |= (pSrc->reserved1 << 5); - *pBuf = tmp108__; + tmp109__ = 0U; + tmp109__ |= (pSrc->maxRxAMPDUFactor << 0); + tmp109__ |= (pSrc->mpduDensity << 2); + tmp109__ |= (pSrc->reserved1 << 5); + *pBuf = tmp109__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; DOT11F_MEMCPY(pCtx, pBuf, pSrc->supportedMCSSet, 16); *pnConsumed += 16; pBuf += 16; - tmp109__ = 0U; - tmp109__ |= (pSrc->pco << 0); - tmp109__ |= (pSrc->transitionTime << 1); - tmp109__ |= (pSrc->reserved2 << 3); - tmp109__ |= (pSrc->mcsFeedback << 8); - tmp109__ |= (pSrc->reserved3 << 10); - frameshtons(pCtx, pBuf, tmp109__, 0); + tmp110__ = 0U; + tmp110__ |= (pSrc->pco << 0); + tmp110__ |= (pSrc->transitionTime << 1); + tmp110__ |= (pSrc->reserved2 << 3); + tmp110__ |= (pSrc->mcsFeedback << 8); + tmp110__ |= (pSrc->reserved3 << 10); + frameshtons(pCtx, pBuf, tmp110__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp110__ = 0U; - tmp110__ |= (pSrc->txBF << 0); - tmp110__ |= (pSrc->rxStaggeredSounding << 1); - tmp110__ |= (pSrc->txStaggeredSounding << 2); - tmp110__ |= (pSrc->rxZLF << 3); - tmp110__ |= (pSrc->txZLF << 4); - tmp110__ |= (pSrc->implicitTxBF << 5); - tmp110__ |= (pSrc->calibration << 6); - tmp110__ |= (pSrc->explicitCSITxBF << 8); - tmp110__ |= (pSrc->explicitUncompressedSteeringMatrix << 9); - tmp110__ |= (pSrc->explicitBFCSIFeedback << 10); - tmp110__ |= (pSrc->explicitUncompressedSteeringMatrixFeedback << 13); - tmp110__ |= (pSrc->explicitCompressedSteeringMatrixFeedback << 16); - tmp110__ |= (pSrc->csiNumBFAntennae << 19); - tmp110__ |= (pSrc->uncompressedSteeringMatrixBFAntennae << 21); - tmp110__ |= (pSrc->compressedSteeringMatrixBFAntennae << 23); - tmp110__ |= (pSrc->reserved4 << 25); - frameshtonl(pCtx, pBuf, tmp110__, 0); + tmp111__ = 0U; + tmp111__ |= (pSrc->txBF << 0); + tmp111__ |= (pSrc->rxStaggeredSounding << 1); + tmp111__ |= (pSrc->txStaggeredSounding << 2); + tmp111__ |= (pSrc->rxZLF << 3); + tmp111__ |= (pSrc->txZLF << 4); + tmp111__ |= (pSrc->implicitTxBF << 5); + tmp111__ |= (pSrc->calibration << 6); + tmp111__ |= (pSrc->explicitCSITxBF << 8); + tmp111__ |= (pSrc->explicitUncompressedSteeringMatrix << 9); + tmp111__ |= (pSrc->explicitBFCSIFeedback << 10); + tmp111__ |= (pSrc->explicitUncompressedSteeringMatrixFeedback << 13); + tmp111__ |= (pSrc->explicitCompressedSteeringMatrixFeedback << 16); + tmp111__ |= (pSrc->csiNumBFAntennae << 19); + tmp111__ |= (pSrc->uncompressedSteeringMatrixBFAntennae << 21); + tmp111__ |= (pSrc->compressedSteeringMatrixBFAntennae << 23); + tmp111__ |= (pSrc->reserved4 << 25); + frameshtonl(pCtx, pBuf, tmp111__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; - tmp111__ = 0U; - tmp111__ |= (pSrc->antennaSelection << 0); - tmp111__ |= (pSrc->explicitCSIFeedbackTx << 1); - tmp111__ |= (pSrc->antennaIndicesFeedbackTx << 2); - tmp111__ |= (pSrc->explicitCSIFeedback << 3); - tmp111__ |= (pSrc->antennaIndicesFeedback << 4); - tmp111__ |= (pSrc->rxAS << 5); - tmp111__ |= (pSrc->txSoundingPPDUs << 6); - tmp111__ |= (pSrc->reserved5 << 7); - *pBuf = tmp111__; + tmp112__ = 0U; + tmp112__ |= (pSrc->antennaSelection << 0); + tmp112__ |= (pSrc->explicitCSIFeedbackTx << 1); + tmp112__ |= (pSrc->antennaIndicesFeedbackTx << 2); + tmp112__ |= (pSrc->explicitCSIFeedback << 3); + tmp112__ |= (pSrc->antennaIndicesFeedback << 4); + tmp112__ |= (pSrc->rxAS << 5); + tmp112__ |= (pSrc->txSoundingPPDUs << 6); + tmp112__ |= (pSrc->reserved5 << 7); + *pBuf = tmp112__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -17410,9 +18141,9 @@ uint32_t dot11f_pack_ie_ht_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp112__; - uint16_t tmp113__; + uint8_t tmp113__; uint16_t tmp114__; + uint16_t tmp115__; nNeeded += (pSrc->num_rsvd + 22); while (pSrc->present) { if (nNeeded > nBuf) @@ -17424,35 +18155,35 @@ uint32_t dot11f_pack_ie_ht_info(tpAniSirGlobal pCtx, *pBuf = pSrc->primaryChannel; *pnConsumed += 1; pBuf += 1; - tmp112__ = 0U; - tmp112__ |= (pSrc->secondaryChannelOffset << 0); - tmp112__ |= (pSrc->recommendedTxWidthSet << 2); - tmp112__ |= (pSrc->rifsMode << 3); - tmp112__ |= (pSrc->controlledAccessOnly << 4); - tmp112__ |= (pSrc->serviceIntervalGranularity << 5); - *pBuf = tmp112__; + tmp113__ = 0U; + tmp113__ |= (pSrc->secondaryChannelOffset << 0); + tmp113__ |= (pSrc->recommendedTxWidthSet << 2); + tmp113__ |= (pSrc->rifsMode << 3); + tmp113__ |= (pSrc->controlledAccessOnly << 4); + tmp113__ |= (pSrc->serviceIntervalGranularity << 5); + *pBuf = tmp113__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp113__ = 0U; - tmp113__ |= (pSrc->opMode << 0); - tmp113__ |= (pSrc->nonGFDevicesPresent << 2); - tmp113__ |= (pSrc->transmitBurstLimit << 3); - tmp113__ |= (pSrc->obssNonHTStaPresent << 4); - tmp113__ |= (pSrc->reserved << 5); - frameshtons(pCtx, pBuf, tmp113__, 0); + tmp114__ = 0U; + tmp114__ |= (pSrc->opMode << 0); + tmp114__ |= (pSrc->nonGFDevicesPresent << 2); + tmp114__ |= (pSrc->transmitBurstLimit << 3); + tmp114__ |= (pSrc->obssNonHTStaPresent << 4); + tmp114__ |= (pSrc->reserved << 5); + frameshtons(pCtx, pBuf, tmp114__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp114__ = 0U; - tmp114__ |= (pSrc->basicSTBCMCS << 0); - tmp114__ |= (pSrc->dualCTSProtection << 7); - tmp114__ |= (pSrc->secondaryBeacon << 8); - tmp114__ |= (pSrc->lsigTXOPProtectionFullSupport << 9); - tmp114__ |= (pSrc->pcoActive << 10); - tmp114__ |= (pSrc->pcoPhase << 11); - tmp114__ |= (pSrc->reserved2 << 12); - frameshtons(pCtx, pBuf, tmp114__, 0); + tmp115__ = 0U; + tmp115__ |= (pSrc->basicSTBCMCS << 0); + tmp115__ |= (pSrc->dualCTSProtection << 7); + tmp115__ |= (pSrc->secondaryBeacon << 8); + tmp115__ |= (pSrc->lsigTXOPProtectionFullSupport << 9); + tmp115__ |= (pSrc->pcoActive << 10); + tmp115__ |= (pSrc->pcoPhase << 11); + tmp115__ |= (pSrc->reserved2 << 12); + frameshtons(pCtx, pBuf, tmp115__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -17584,9 +18315,9 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp115__; uint8_t tmp116__; uint8_t tmp117__; + uint8_t tmp118__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_measurement_report(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -17601,12 +18332,12 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, *pBuf = pSrc->token; *pnConsumed += 1; pBuf += 1; - tmp115__ = 0U; - tmp115__ |= (pSrc->late << 0); - tmp115__ |= (pSrc->incapable << 1); - tmp115__ |= (pSrc->refused << 2); - tmp115__ |= (pSrc->unused << 3); - *pBuf = tmp115__; + tmp116__ = 0U; + tmp116__ |= (pSrc->late << 0); + tmp116__ |= (pSrc->incapable << 1); + tmp116__ |= (pSrc->refused << 2); + tmp116__ |= (pSrc->unused << 3); + *pBuf = tmp116__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -17625,14 +18356,14 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Basic.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp116__ = 0U; - tmp116__ |= (pSrc->report.Basic.bss << 0); - tmp116__ |= (pSrc->report.Basic.ofdm_preamble << 1); - tmp116__ |= (pSrc->report.Basic.unid_signal << 2); - tmp116__ |= (pSrc->report.Basic.rader << 3); - tmp116__ |= (pSrc->report.Basic.unmeasured << 4); - tmp116__ |= (pSrc->report.Basic.unused << 5); - *pBuf = tmp116__; + tmp117__ = 0U; + tmp117__ |= (pSrc->report.Basic.bss << 0); + tmp117__ |= (pSrc->report.Basic.ofdm_preamble << 1); + tmp117__ |= (pSrc->report.Basic.unid_signal << 2); + tmp117__ |= (pSrc->report.Basic.rader << 3); + tmp117__ |= (pSrc->report.Basic.unmeasured << 4); + tmp117__ |= (pSrc->report.Basic.unused << 5); + *pBuf = tmp117__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -17699,10 +18430,10 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Beacon.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp117__ = 0U; - tmp117__ |= (pSrc->report.Beacon.condensed_PHY << 0); - tmp117__ |= (pSrc->report.Beacon.reported_frame_type << 7); - *pBuf = tmp117__; + tmp118__ = 0U; + tmp118__ |= (pSrc->report.Beacon.condensed_PHY << 0); + tmp118__ |= (pSrc->report.Beacon.reported_frame_type << 7); + *pBuf = tmp118__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -17751,7 +18482,7 @@ uint32_t dot11f_pack_ie_measurement_request(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp118__; + uint8_t tmp119__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_measurement_request(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -17766,14 +18497,14 @@ uint32_t dot11f_pack_ie_measurement_request(tpAniSirGlobal pCtx, *pBuf = pSrc->measurement_token; *pnConsumed += 1; pBuf += 1; - tmp118__ = 0U; - tmp118__ |= (pSrc->parallel << 0); - tmp118__ |= (pSrc->enable << 1); - tmp118__ |= (pSrc->request << 2); - tmp118__ |= (pSrc->report << 3); - tmp118__ |= (pSrc->durationMandatory << 4); - tmp118__ |= (pSrc->unused << 5); - *pBuf = tmp118__; + tmp119__ = 0U; + tmp119__ |= (pSrc->parallel << 0); + tmp119__ |= (pSrc->enable << 1); + tmp119__ |= (pSrc->request << 2); + tmp119__ |= (pSrc->report << 3); + tmp119__ |= (pSrc->durationMandatory << 4); + tmp119__ |= (pSrc->unused << 5); + *pBuf = tmp119__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -17887,7 +18618,7 @@ uint32_t dot11f_pack_ie_mobility_domain(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp119__; + uint8_t tmp120__; nNeeded += 3; while (pSrc->present) { if (nNeeded > nBuf) @@ -17899,11 +18630,11 @@ uint32_t dot11f_pack_ie_mobility_domain(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->MDID, 0); *pnConsumed += 2; pBuf += 2; - tmp119__ = 0U; - tmp119__ |= (pSrc->overDSCap << 0); - tmp119__ |= (pSrc->resourceReqCap << 1); - tmp119__ |= (pSrc->reserved << 2); - *pBuf = tmp119__; + tmp120__ = 0U; + tmp120__ |= (pSrc->overDSCap << 0); + tmp120__ |= (pSrc->resourceReqCap << 1); + tmp120__ |= (pSrc->reserved << 2); + *pBuf = tmp120__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -17925,8 +18656,8 @@ uint32_t dot11f_pack_ie_neighbor_report(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp120__; uint8_t tmp121__; + uint8_t tmp122__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_neighbor_report(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -17941,24 +18672,24 @@ uint32_t dot11f_pack_ie_neighbor_report(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->bssid, 6); *pnConsumed += 6; pBuf += 6; - tmp120__ = 0U; - tmp120__ |= (pSrc->APReachability << 0); - tmp120__ |= (pSrc->Security << 2); - tmp120__ |= (pSrc->KeyScope << 3); - tmp120__ |= (pSrc->SpecMgmtCap << 4); - tmp120__ |= (pSrc->QosCap << 5); - tmp120__ |= (pSrc->apsd << 6); - tmp120__ |= (pSrc->rrm << 7); - *pBuf = tmp120__; + tmp121__ = 0U; + tmp121__ |= (pSrc->APReachability << 0); + tmp121__ |= (pSrc->Security << 2); + tmp121__ |= (pSrc->KeyScope << 3); + tmp121__ |= (pSrc->SpecMgmtCap << 4); + tmp121__ |= (pSrc->QosCap << 5); + tmp121__ |= (pSrc->apsd << 6); + tmp121__ |= (pSrc->rrm << 7); + *pBuf = tmp121__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp121__ = 0U; - tmp121__ |= (pSrc->DelayedBA << 0); - tmp121__ |= (pSrc->ImmBA << 1); - tmp121__ |= (pSrc->MobilityDomain << 2); - tmp121__ |= (pSrc->reserved << 3); - *pBuf = tmp121__; + tmp122__ = 0U; + tmp122__ |= (pSrc->DelayedBA << 0); + tmp122__ |= (pSrc->ImmBA << 1); + tmp122__ |= (pSrc->MobilityDomain << 2); + tmp122__ |= (pSrc->reserved << 3); + *pBuf = tmp122__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -18046,7 +18777,7 @@ uint32_t dot11f_pack_ie_operating_mode(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp122__; + uint8_t tmp123__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -18055,12 +18786,12 @@ uint32_t dot11f_pack_ie_operating_mode(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp122__ = 0U; - tmp122__ |= (pSrc->chanWidth << 0); - tmp122__ |= (pSrc->reserved << 2); - tmp122__ |= (pSrc->rxNSS << 4); - tmp122__ |= (pSrc->rxNSSType << 7); - *pBuf = tmp122__; + tmp123__ = 0U; + tmp123__ |= (pSrc->chanWidth << 0); + tmp123__ |= (pSrc->reserved << 2); + tmp123__ |= (pSrc->rxNSS << 4); + tmp123__ |= (pSrc->rxNSSType << 7); + *pBuf = tmp123__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18535,7 +19266,7 @@ uint32_t dot11f_pack_ie_pu_buffer_status(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp123__; + uint8_t tmp124__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -18544,13 +19275,13 @@ uint32_t dot11f_pack_ie_pu_buffer_status(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp123__ = 0U; - tmp123__ |= (pSrc->ac_bk_traffic_aval << 0); - tmp123__ |= (pSrc->ac_be_traffic_aval << 1); - tmp123__ |= (pSrc->ac_vi_traffic_aval << 2); - tmp123__ |= (pSrc->ac_vo_traffic_aval << 3); - tmp123__ |= (pSrc->reserved << 4); - *pBuf = tmp123__; + tmp124__ = 0U; + tmp124__ |= (pSrc->ac_bk_traffic_aval << 0); + tmp124__ |= (pSrc->ac_be_traffic_aval << 1); + tmp124__ |= (pSrc->ac_vi_traffic_aval << 2); + tmp124__ |= (pSrc->ac_vo_traffic_aval << 3); + tmp124__ |= (pSrc->reserved << 4); + *pBuf = tmp124__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18743,7 +19474,7 @@ uint32_t dot11f_pack_ie_qos_caps_ap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp124__; + uint8_t tmp125__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -18752,13 +19483,13 @@ uint32_t dot11f_pack_ie_qos_caps_ap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp124__ = 0U; - tmp124__ |= (pSrc->count << 0); - tmp124__ |= (pSrc->qack << 4); - tmp124__ |= (pSrc->qreq << 5); - tmp124__ |= (pSrc->txopreq << 6); - tmp124__ |= (pSrc->reserved << 7); - *pBuf = tmp124__; + tmp125__ = 0U; + tmp125__ |= (pSrc->count << 0); + tmp125__ |= (pSrc->qack << 4); + tmp125__ |= (pSrc->qreq << 5); + tmp125__ |= (pSrc->txopreq << 6); + tmp125__ |= (pSrc->reserved << 7); + *pBuf = tmp125__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18780,7 +19511,7 @@ uint32_t dot11f_pack_ie_qos_caps_station(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp125__; + uint8_t tmp126__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -18789,15 +19520,15 @@ uint32_t dot11f_pack_ie_qos_caps_station(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp125__ = 0U; - tmp125__ |= (pSrc->acvo_uapsd << 0); - tmp125__ |= (pSrc->acvi_uapsd << 1); - tmp125__ |= (pSrc->acbk_uapsd << 2); - tmp125__ |= (pSrc->acbe_uapsd << 3); - tmp125__ |= (pSrc->qack << 4); - tmp125__ |= (pSrc->max_sp_length << 5); - tmp125__ |= (pSrc->more_data_ack << 7); - *pBuf = tmp125__; + tmp126__ = 0U; + tmp126__ |= (pSrc->acvo_uapsd << 0); + tmp126__ |= (pSrc->acvi_uapsd << 1); + tmp126__ |= (pSrc->acbk_uapsd << 2); + tmp126__ |= (pSrc->acbe_uapsd << 3); + tmp126__ |= (pSrc->qack << 4); + tmp126__ |= (pSrc->max_sp_length << 5); + tmp126__ |= (pSrc->more_data_ack << 7); + *pBuf = tmp126__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -19434,7 +20165,7 @@ uint32_t dot11f_pack_ie_wapi(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp126__; + uint16_t tmp127__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_iewapi(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -19464,10 +20195,10 @@ uint32_t dot11f_pack_ie_wapi(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->multicast_cipher_suite, 4); *pnConsumed += 4; pBuf += 4; - tmp126__ = 0U; - tmp126__ |= (pSrc->preauth << 0); - tmp126__ |= (pSrc->reserved << 1); - frameshtons(pCtx, pBuf, tmp126__, 0); + tmp127__ = 0U; + tmp127__ |= (pSrc->preauth << 0); + tmp127__ |= (pSrc->reserved << 1); + frameshtons(pCtx, pBuf, tmp127__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -19607,7 +20338,7 @@ uint32_t dot11f_pack_ie_wmm_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp127__; + uint8_t tmp128__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -19629,13 +20360,13 @@ uint32_t dot11f_pack_ie_wmm_caps(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp127__ = 0U; - tmp127__ |= (pSrc->reserved << 0); - tmp127__ |= (pSrc->qack << 4); - tmp127__ |= (pSrc->queue_request << 5); - tmp127__ |= (pSrc->txop_request << 6); - tmp127__ |= (pSrc->more_ack << 7); - *pBuf = tmp127__; + tmp128__ = 0U; + tmp128__ |= (pSrc->reserved << 0); + tmp128__ |= (pSrc->qack << 4); + tmp128__ |= (pSrc->queue_request << 5); + tmp128__ |= (pSrc->txop_request << 6); + tmp128__ |= (pSrc->more_ack << 7); + *pBuf = tmp128__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -19657,7 +20388,7 @@ uint32_t dot11f_pack_ie_wmm_info_ap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp128__; + uint8_t tmp129__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -19679,11 +20410,11 @@ uint32_t dot11f_pack_ie_wmm_info_ap(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp128__ = 0U; - tmp128__ |= (pSrc->param_set_count << 0); - tmp128__ |= (pSrc->reserved << 4); - tmp128__ |= (pSrc->uapsd << 7); - *pBuf = tmp128__; + tmp129__ = 0U; + tmp129__ |= (pSrc->param_set_count << 0); + tmp129__ |= (pSrc->reserved << 4); + tmp129__ |= (pSrc->uapsd << 7); + *pBuf = tmp129__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -19705,7 +20436,7 @@ uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp129__; + uint8_t tmp130__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -19727,15 +20458,15 @@ uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp129__ = 0U; - tmp129__ |= (pSrc->acvo_uapsd << 0); - tmp129__ |= (pSrc->acvi_uapsd << 1); - tmp129__ |= (pSrc->acbk_uapsd << 2); - tmp129__ |= (pSrc->acbe_uapsd << 3); - tmp129__ |= (pSrc->reserved1 << 4); - tmp129__ |= (pSrc->max_sp_length << 5); - tmp129__ |= (pSrc->reserved2 << 7); - *pBuf = tmp129__; + tmp130__ = 0U; + tmp130__ |= (pSrc->acvo_uapsd << 0); + tmp130__ |= (pSrc->acvi_uapsd << 1); + tmp130__ |= (pSrc->acbk_uapsd << 2); + tmp130__ |= (pSrc->acbe_uapsd << 3); + tmp130__ |= (pSrc->reserved1 << 4); + tmp130__ |= (pSrc->max_sp_length << 5); + tmp130__ |= (pSrc->reserved2 << 7); + *pBuf = tmp130__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -19757,7 +20488,6 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp130__; uint8_t tmp131__; uint8_t tmp132__; uint8_t tmp133__; @@ -19765,6 +20495,7 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t tmp135__; uint8_t tmp136__; uint8_t tmp137__; + uint8_t tmp138__; nNeeded += 19; while (pSrc->present) { if (nNeeded > nBuf) @@ -19792,79 +20523,79 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved2; *pnConsumed += 1; pBuf += 1; - tmp130__ = 0U; - tmp130__ |= (pSrc->acbe_aifsn << 0); - tmp130__ |= (pSrc->acbe_acm << 4); - tmp130__ |= (pSrc->acbe_aci << 5); - tmp130__ |= (pSrc->unused1 << 7); - *pBuf = tmp130__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; tmp131__ = 0U; - tmp131__ |= (pSrc->acbe_acwmin << 0); - tmp131__ |= (pSrc->acbe_acwmax << 4); + tmp131__ |= (pSrc->acbe_aifsn << 0); + tmp131__ |= (pSrc->acbe_acm << 4); + tmp131__ |= (pSrc->acbe_aci << 5); + tmp131__ |= (pSrc->unused1 << 7); *pBuf = tmp131__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); - *pnConsumed += 2; - pBuf += 2; tmp132__ = 0U; - tmp132__ |= (pSrc->acbk_aifsn << 0); - tmp132__ |= (pSrc->acbk_acm << 4); - tmp132__ |= (pSrc->acbk_aci << 5); - tmp132__ |= (pSrc->unused2 << 7); + tmp132__ |= (pSrc->acbe_acwmin << 0); + tmp132__ |= (pSrc->acbe_acwmax << 4); *pBuf = tmp132__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); + *pnConsumed += 2; + pBuf += 2; tmp133__ = 0U; - tmp133__ |= (pSrc->acbk_acwmin << 0); - tmp133__ |= (pSrc->acbk_acwmax << 4); + tmp133__ |= (pSrc->acbk_aifsn << 0); + tmp133__ |= (pSrc->acbk_acm << 4); + tmp133__ |= (pSrc->acbk_aci << 5); + tmp133__ |= (pSrc->unused2 << 7); *pBuf = tmp133__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); - *pnConsumed += 2; - pBuf += 2; tmp134__ = 0U; - tmp134__ |= (pSrc->acvi_aifsn << 0); - tmp134__ |= (pSrc->acvi_acm << 4); - tmp134__ |= (pSrc->acvi_aci << 5); - tmp134__ |= (pSrc->unused3 << 7); + tmp134__ |= (pSrc->acbk_acwmin << 0); + tmp134__ |= (pSrc->acbk_acwmax << 4); *pBuf = tmp134__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); + *pnConsumed += 2; + pBuf += 2; tmp135__ = 0U; - tmp135__ |= (pSrc->acvi_acwmin << 0); - tmp135__ |= (pSrc->acvi_acwmax << 4); + tmp135__ |= (pSrc->acvi_aifsn << 0); + tmp135__ |= (pSrc->acvi_acm << 4); + tmp135__ |= (pSrc->acvi_aci << 5); + tmp135__ |= (pSrc->unused3 << 7); *pBuf = tmp135__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); - *pnConsumed += 2; - pBuf += 2; tmp136__ = 0U; - tmp136__ |= (pSrc->acvo_aifsn << 0); - tmp136__ |= (pSrc->acvo_acm << 4); - tmp136__ |= (pSrc->acvo_aci << 5); - tmp136__ |= (pSrc->unused4 << 7); + tmp136__ |= (pSrc->acvi_acwmin << 0); + tmp136__ |= (pSrc->acvi_acwmax << 4); *pBuf = tmp136__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); + *pnConsumed += 2; + pBuf += 2; tmp137__ = 0U; - tmp137__ |= (pSrc->acvo_acwmin << 0); - tmp137__ |= (pSrc->acvo_acwmax << 4); + tmp137__ |= (pSrc->acvo_aifsn << 0); + tmp137__ |= (pSrc->acvo_acm << 4); + tmp137__ |= (pSrc->acvo_aci << 5); + tmp137__ |= (pSrc->unused4 << 7); *pBuf = tmp137__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + tmp138__ = 0U; + tmp138__ |= (pSrc->acvo_acwmin << 0); + tmp138__ |= (pSrc->acvo_acwmax << 4); + *pBuf = tmp138__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvo_txoplimit, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ @@ -20447,6 +21178,310 @@ uint32_t dot11f_pack_ie_ext_chan_switch_ann(tpAniSirGlobal pCtx, return DOT11F_PARSE_SUCCESS; } /* End dot11f_pack_ie_ext_chan_switch_ann. */ +uint32_t dot11f_pack_ie_fils_assoc_delay_info(tpAniSirGlobal pCtx, + tDot11fIEfils_assoc_delay_info *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + nNeeded += 1; + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 255; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 1; + ++pBuf; ++(*pnConsumed); + *pBuf = pSrc->assoc_delay_info; + *pnConsumed += 1; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_assoc_delay_info. */ + +uint32_t dot11f_pack_ie_fils_hlp_container(tpAniSirGlobal pCtx, + tDot11fIEfils_hlp_container *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + nNeeded += (pSrc->num_hlp_packet + 12); + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 255; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 5; + ++pBuf; ++(*pnConsumed); + DOT11F_MEMCPY(pCtx, pBuf, pSrc->dest_mac, 6); + *pnConsumed += 6; + pBuf += 6; + DOT11F_MEMCPY(pCtx, pBuf, pSrc->src_mac, 6); + *pnConsumed += 6; + pBuf += 6; + DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->hlp_packet), pSrc->num_hlp_packet); + *pnConsumed += pSrc->num_hlp_packet; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_hlp_container. */ + +uint32_t dot11f_pack_ie_fils_indication(tpAniSirGlobal pCtx, + tDot11fIEfils_indication *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + uint16_t tmp139__; + nNeeded += (pSrc->num_variable_data + 2); + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 240; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + tmp139__ = 0U; + tmp139__ |= (pSrc->public_key_identifiers_cnt << 0); + tmp139__ |= (pSrc->realm_identifiers_cnt << 3); + tmp139__ |= (pSrc->is_ip_config_supported << 6); + tmp139__ |= (pSrc->is_cache_id_present << 7); + tmp139__ |= (pSrc->is_hessid_present << 8); + tmp139__ |= (pSrc->is_fils_sk_auth_supported << 9); + tmp139__ |= (pSrc->is_fils_sk_auth_pfs_supported << 10); + tmp139__ |= (pSrc->is_pk_auth_supported << 11); + tmp139__ |= (pSrc->reserved << 12); + frameshtons(pCtx, pBuf, tmp139__, 0); + *pnConsumed += 2; + pBuf += 2; + nBuf -= 2 ; + DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->variable_data), pSrc->num_variable_data); + *pnConsumed += pSrc->num_variable_data; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_indication. */ + +uint32_t dot11f_pack_ie_fils_kde(tpAniSirGlobal pCtx, + tDot11fIEfils_kde *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + nNeeded += (pSrc->num_kde_list + 8); + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 255; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 7; + ++pBuf; ++(*pnConsumed); + DOT11F_MEMCPY(pCtx, pBuf, pSrc->key_rsc, 8); + *pnConsumed += 8; + pBuf += 8; + DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->kde_list), pSrc->num_kde_list); + *pnConsumed += pSrc->num_kde_list; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_kde. */ + +uint32_t dot11f_pack_ie_fils_key_confirmation(tpAniSirGlobal pCtx, + tDot11fIEfils_key_confirmation *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + nNeeded += pSrc->num_key_auth; + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 255; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 3; + ++pBuf; ++(*pnConsumed); + DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->key_auth), pSrc->num_key_auth); + *pnConsumed += pSrc->num_key_auth; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_key_confirmation. */ + +uint32_t dot11f_pack_ie_fils_nonce(tpAniSirGlobal pCtx, + tDot11fIEfils_nonce *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + nNeeded += 16; + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 255; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 13; + ++pBuf; ++(*pnConsumed); + DOT11F_MEMCPY(pCtx, pBuf, pSrc->nonce, 16); + *pnConsumed += 16; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_nonce. */ + +uint32_t dot11f_pack_ie_fils_public_key(tpAniSirGlobal pCtx, + tDot11fIEfils_public_key *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + nNeeded += (pSrc->num_public_key + 1); + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 255; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 12; + ++pBuf; ++(*pnConsumed); + *pBuf = pSrc->key_type; + *pnConsumed += 1; + pBuf += 1; + DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->public_key), pSrc->num_public_key); + *pnConsumed += pSrc->num_public_key; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_public_key. */ + +uint32_t dot11f_pack_ie_fils_session(tpAniSirGlobal pCtx, + tDot11fIEfils_session *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + nNeeded += 8; + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 255; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 4; + ++pBuf; ++(*pnConsumed); + DOT11F_MEMCPY(pCtx, pBuf, pSrc->session, 8); + *pnConsumed += 8; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_session. */ + +uint32_t dot11f_pack_ie_fils_wrapped_data(tpAniSirGlobal pCtx, + tDot11fIEfils_wrapped_data *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + nNeeded += pSrc->num_wrapped_data; + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 255; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 8; + ++pBuf; ++(*pnConsumed); + DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->wrapped_data), pSrc->num_wrapped_data); + *pnConsumed += pSrc->num_wrapped_data; + /* fieldsEndFlag = 1 */ + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_fils_wrapped_data. */ + uint32_t dot11f_pack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, tDot11fIEhs20vendor_ie *pSrc, uint8_t *pBuf, @@ -20456,7 +21491,7 @@ uint32_t dot11f_pack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp138__; + uint8_t tmp140__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_hs20vendor_ie(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -20476,12 +21511,12 @@ uint32_t dot11f_pack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); *pBuf = 0x10; ++pBuf; ++(*pnConsumed); - tmp138__ = 0U; - tmp138__ |= (pSrc->dgaf_dis << 0); - tmp138__ |= (pSrc->hs_id_present << 1); - tmp138__ |= (pSrc->reserved << 3); - tmp138__ |= (pSrc->release_num << 4); - *pBuf = tmp138__; + tmp140__ = 0U; + tmp140__ |= (pSrc->dgaf_dis << 0); + tmp140__ |= (pSrc->hs_id_present << 1); + tmp140__ |= (pSrc->reserved << 3); + tmp140__ |= (pSrc->release_num << 4); + *pBuf = tmp140__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -20519,7 +21554,7 @@ uint32_t dot11f_pack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp139__; + uint8_t tmp141__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -20528,14 +21563,14 @@ uint32_t dot11f_pack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp139__ = 0U; - tmp139__ |= (pSrc->info_request << 0); - tmp139__ |= (pSrc->forty_mhz_intolerant << 1); - tmp139__ |= (pSrc->twenty_mhz_bsswidth_req << 2); - tmp139__ |= (pSrc->obss_scan_exemption_req << 3); - tmp139__ |= (pSrc->obss_scan_exemption_grant << 4); - tmp139__ |= (pSrc->unused << 5); - *pBuf = tmp139__; + tmp141__ = 0U; + tmp141__ |= (pSrc->info_request << 0); + tmp141__ |= (pSrc->forty_mhz_intolerant << 1); + tmp141__ |= (pSrc->twenty_mhz_bsswidth_req << 2); + tmp141__ |= (pSrc->obss_scan_exemption_req << 3); + tmp141__ |= (pSrc->obss_scan_exemption_grant << 4); + tmp141__ |= (pSrc->unused << 5); + *pBuf = tmp141__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -21592,7 +22627,7 @@ static uint32_t pack_core(tpAniSirGlobal pCtx, } pIe = &(IEs[0]); - while (0xff != pIe->eid) { + while (0xff != pIe->eid || pIe->extn_eid) { pfFound = (tFRAMES_BOOL *)(pSrc + pIe->offset + pIe->presenceOffset); if (*pfFound && pIe->minSize > nBufRemaining) { @@ -22599,6 +23634,78 @@ static uint32_t pack_core(tpAniSirGlobal pCtx, sizeof(tDot11fIEext_chan_switch_ann) * i), pBufRemaining, nBufRemaining, &len); break; + case SigIefils_assoc_delay_info: + status |= + dot11f_pack_ie_fils_assoc_delay_info( + pCtx, (tDot11fIEfils_assoc_delay_info *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_assoc_delay_info) * i), + pBufRemaining, nBufRemaining, &len); + break; + case SigIefils_hlp_container: + status |= + dot11f_pack_ie_fils_hlp_container( + pCtx, (tDot11fIEfils_hlp_container *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_hlp_container) * i), + pBufRemaining, nBufRemaining, &len); + break; + case SigIefils_indication: + status |= + dot11f_pack_ie_fils_indication( + pCtx, (tDot11fIEfils_indication *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_indication) * i), + pBufRemaining, nBufRemaining, &len); + break; + case SigIefils_kde: + status |= + dot11f_pack_ie_fils_kde( + pCtx, (tDot11fIEfils_kde *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_kde) * i), + pBufRemaining, nBufRemaining, &len); + break; + case SigIefils_key_confirmation: + status |= + dot11f_pack_ie_fils_key_confirmation( + pCtx, (tDot11fIEfils_key_confirmation *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_key_confirmation) * i), + pBufRemaining, nBufRemaining, &len); + break; + case SigIefils_nonce: + status |= + dot11f_pack_ie_fils_nonce( + pCtx, (tDot11fIEfils_nonce *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_nonce) * i), + pBufRemaining, nBufRemaining, &len); + break; + case SigIefils_public_key: + status |= + dot11f_pack_ie_fils_public_key( + pCtx, (tDot11fIEfils_public_key *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_public_key) * i), + pBufRemaining, nBufRemaining, &len); + break; + case SigIefils_session: + status |= + dot11f_pack_ie_fils_session( + pCtx, (tDot11fIEfils_session *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_session) * i), + pBufRemaining, nBufRemaining, &len); + break; + case SigIefils_wrapped_data: + status |= + dot11f_pack_ie_fils_wrapped_data( + pCtx, (tDot11fIEfils_wrapped_data *) + (pSrc + pIe->offset + + sizeof(tDot11fIEfils_wrapped_data) * i), + pBufRemaining, nBufRemaining, &len); + break; case SigIehs20vendor_ie: status |= dot11f_pack_ie_hs20vendor_ie( |
