diff --git a/core/mac/src/cfg/cfgUtil/dot11f.frms b/core/mac/src/cfg/cfgUtil/dot11f.frms index 61fda2349e..d847db6da9 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; @@ -2472,6 +2489,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; @@ -3120,6 +3199,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; @@ -3212,6 +3292,7 @@ FRAME Beacon2 OPTIE OperatingMode; OPTIE WiderBWChanSwitchAnn; OPTIE OBSSScanParameters; + OPTIE fils_indication; OPTIE Vendor1IE; OPTIE vendor_vht_ie; OPTIE Vendor3IE; @@ -3280,6 +3361,7 @@ FRAME BeaconIEs OPTIE OperatingMode; OPTIE WiderBWChanSwitchAnn; OPTIE OBSSScanParameters; + OPTIE fils_indication; OPTIE Vendor1IE; OPTIE vendor_vht_ie; OPTIE Vendor3IE; @@ -3319,6 +3401,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; @@ -3364,6 +3450,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; OPTIE vendor_he_cap; @@ -3511,6 +3602,7 @@ FRAME ProbeResponse // 7.2.3.9 OPTIE VHTExtBssLoad; OPTIE ExtCap; OPTIE OBSSScanParameters; + OPTIE fils_indication; OPTIE Vendor1IE; OPTIE vendor_vht_ie; OPTIE Vendor3IE; @@ -3535,6 +3627,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 683599dfe0..2894b6f2f0 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' - * Fri Apr 14 18:11:09 2017 from the following file(s): + * Sat Apr 15 13:21:13 2017 from the following file(s): * * dot11f.frms * @@ -2140,7 +2140,8 @@ uint32_t dot11f_unpack_ie_gtk( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEGTK*); + tDot11fIEGTK*, + bool); uint32_t dot11f_pack_ie_gtk( tpAniSirGlobal, @@ -2181,7 +2182,8 @@ uint32_t dot11f_unpack_ie_igtk( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEIGTK*); + tDot11fIEIGTK*, + bool); uint32_t dot11f_pack_ie_igtk( tpAniSirGlobal, @@ -2220,7 +2222,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, @@ -2258,7 +2261,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, @@ -2300,7 +2304,8 @@ uint32_t dot11f_unpack_ie_ppe_threshold( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEppe_threshold*); + tDot11fIEppe_threshold*, + bool); uint32_t dot11f_pack_ie_ppe_threshold( tpAniSirGlobal, @@ -2340,7 +2345,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, @@ -2378,7 +2384,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, @@ -2417,7 +2424,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, @@ -2456,7 +2464,8 @@ uint32_t dot11f_unpack_ie_beacon_reporting( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEBeaconReporting*); + tDot11fIEBeaconReporting*, + bool); uint32_t dot11f_pack_ie_beacon_reporting( tpAniSirGlobal, @@ -2494,7 +2503,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, @@ -2534,7 +2544,8 @@ uint32_t dot11f_unpack_ie_measurement_pilot( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMeasurementPilot*); + tDot11fIEMeasurementPilot*, + bool); uint32_t dot11f_pack_ie_measurement_pilot( tpAniSirGlobal, @@ -2574,7 +2585,8 @@ uint32_t dot11f_unpack_ie_multi_bssid( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMultiBssid*); + tDot11fIEMultiBssid*, + bool); uint32_t dot11f_pack_ie_multi_bssid( tpAniSirGlobal, @@ -2614,7 +2626,8 @@ uint32_t dot11f_unpack_ie_ric_data( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERICData*); + tDot11fIERICData*, + bool); uint32_t dot11f_pack_ie_ric_data( tpAniSirGlobal, @@ -2654,7 +2667,8 @@ uint32_t dot11f_unpack_ie_ric_descriptor( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERICDescriptor*); + tDot11fIERICDescriptor*, + bool); uint32_t dot11f_pack_ie_ric_descriptor( tpAniSirGlobal, @@ -2722,7 +2736,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, @@ -2761,7 +2776,8 @@ uint32_t dot11f_unpack_ie_requested_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERequestedInfo*); + tDot11fIERequestedInfo*, + bool); uint32_t dot11f_pack_ie_requested_info( tpAniSirGlobal, @@ -2800,7 +2816,8 @@ uint32_t dot11f_unpack_ie_ssid( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESSID*); + tDot11fIESSID*, + bool); uint32_t dot11f_pack_ie_ssid( tpAniSirGlobal, @@ -2845,7 +2862,8 @@ uint32_t dot11f_unpack_ie_schedule( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESchedule*); + tDot11fIESchedule*, + bool); uint32_t dot11f_pack_ie_schedule( tpAniSirGlobal, @@ -2916,7 +2934,8 @@ uint32_t dot11f_unpack_ie_tclas( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETCLAS*); + tDot11fIETCLAS*, + bool); uint32_t dot11f_pack_ie_tclas( tpAniSirGlobal, @@ -2954,7 +2973,8 @@ uint32_t dot11f_unpack_ie_tclasSPROC( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETCLASSPROC*); + tDot11fIETCLASSPROC*, + bool); uint32_t dot11f_pack_ie_tclassproc( tpAniSirGlobal, @@ -2992,7 +3012,8 @@ uint32_t dot11f_unpack_ie_ts_delay( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETSDelay*); + tDot11fIETSDelay*, + bool); uint32_t dot11f_pack_ie_ts_delay( tpAniSirGlobal, @@ -3031,7 +3052,8 @@ uint32_t dot11f_unpack_ie_tsf_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETSFInfo*); + tDot11fIETSFInfo*, + bool); uint32_t dot11f_pack_ie_tsf_info( tpAniSirGlobal, @@ -3094,7 +3116,8 @@ uint32_t dot11f_unpack_ie_tspec( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETSPEC*); + tDot11fIETSPEC*, + bool); uint32_t dot11f_pack_ie_tspec( tpAniSirGlobal, @@ -3157,7 +3180,8 @@ uint32_t dot11f_unpack_ie_vht_caps( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVHTCaps*); + tDot11fIEVHTCaps*, + bool); uint32_t dot11f_pack_ie_vht_caps( tpAniSirGlobal, @@ -3198,7 +3222,8 @@ uint32_t dot11f_unpack_ie_vht_operation( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVHTOperation*); + tDot11fIEVHTOperation*, + bool); uint32_t dot11f_pack_ie_vht_operation( tpAniSirGlobal, @@ -3244,7 +3269,8 @@ uint32_t dot11f_unpack_ie_wmm_schedule( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMSchedule*); + tDot11fIEWMMSchedule*, + bool); uint32_t dot11f_pack_ie_wmm_schedule( tpAniSirGlobal, @@ -3316,7 +3342,8 @@ uint32_t dot11f_unpack_ie_wmmtclas( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMTCLAS*); + tDot11fIEWMMTCLAS*, + bool); uint32_t dot11f_pack_ie_wmmtclas( tpAniSirGlobal, @@ -3355,7 +3382,8 @@ uint32_t dot11f_unpack_ie_wmmtclasproc( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMTCLASPROC*); + tDot11fIEWMMTCLASPROC*, + bool); uint32_t dot11f_pack_ie_wmmtclasproc( tpAniSirGlobal, @@ -3394,7 +3422,8 @@ uint32_t dot11f_unpack_ie_wmmts_delay( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMTSDelay*); + tDot11fIEWMMTSDelay*, + bool); uint32_t dot11f_pack_ie_wmmts_delay( tpAniSirGlobal, @@ -3458,7 +3487,8 @@ uint32_t dot11f_unpack_ie_wmmtspec( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMTSPEC*); + tDot11fIEWMMTSPEC*, + bool); uint32_t dot11f_pack_ie_wmmtspec( tpAniSirGlobal, @@ -3498,7 +3528,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, @@ -3536,7 +3567,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, @@ -3574,7 +3606,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, @@ -3632,7 +3665,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, @@ -3670,7 +3704,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, @@ -3708,7 +3743,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, @@ -3748,7 +3784,8 @@ uint32_t dot11f_unpack_ie_vht_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEvht_info*); + tDot11fIEvht_info*, + bool); uint32_t dot11f_pack_ie_vht_info( tpAniSirGlobal, @@ -3787,7 +3824,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, @@ -3825,7 +3863,8 @@ uint32_t dot11f_unpack_ie_aid( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEAID*); + tDot11fIEAID*, + bool); uint32_t dot11f_pack_ie_aid( tpAniSirGlobal, @@ -3866,7 +3905,8 @@ uint32_t dot11f_unpack_ie_cf_params( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIECFParams*); + tDot11fIECFParams*, + bool); uint32_t dot11f_pack_ie_cf_params( tpAniSirGlobal, @@ -3905,7 +3945,8 @@ uint32_t dot11f_unpack_ie_challenge_text( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEChallengeText*); + tDot11fIEChallengeText*, + bool); uint32_t dot11f_pack_ie_challenge_text( tpAniSirGlobal, @@ -3945,7 +3986,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, @@ -3984,7 +4026,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, @@ -4024,7 +4067,8 @@ uint32_t dot11f_unpack_ie_country( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIECountry*); + tDot11fIECountry*, + bool); uint32_t dot11f_pack_ie_country( tpAniSirGlobal, @@ -4062,7 +4106,8 @@ uint32_t dot11f_unpack_ie_DSParams( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEDSParams*); + tDot11fIEDSParams*, + bool); uint32_t dot11f_pack_ie_ds_params( tpAniSirGlobal, @@ -4129,7 +4174,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, @@ -4170,7 +4216,8 @@ uint32_t dot11f_unpack_ie_erp_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEERPInfo*); + tDot11fIEERPInfo*, + bool); uint32_t dot11f_pack_ie_erp_info( tpAniSirGlobal, @@ -4209,7 +4256,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, @@ -4249,7 +4297,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, @@ -4289,7 +4338,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, @@ -4329,7 +4379,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, @@ -4368,7 +4419,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, @@ -4406,7 +4458,8 @@ uint32_t dot11f_unpack_ie_ese_version( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEESEVersion*); + tDot11fIEESEVersion*, + bool); uint32_t dot11f_pack_ie_ese_version( tpAniSirGlobal, @@ -4445,7 +4498,8 @@ uint32_t dot11f_unpack_ie_ext_cap( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEExtCap*); + tDot11fIEExtCap*, + bool); uint32_t dot11f_pack_ie_ext_cap( tpAniSirGlobal, @@ -4484,7 +4538,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, @@ -4525,7 +4580,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, @@ -4564,7 +4620,8 @@ uint32_t dot11f_unpack_ie_fh_params( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEFHParams*); + tDot11fIEFHParams*, + bool); uint32_t dot11f_pack_ie_fh_params( tpAniSirGlobal, @@ -4607,7 +4664,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, @@ -4653,7 +4711,8 @@ uint32_t dot11f_unpack_ie_ft_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEFTInfo*); + tDot11fIEFTInfo*, + bool); uint32_t dot11f_pack_ie_ft_info( tpAniSirGlobal, @@ -4739,7 +4798,8 @@ uint32_t dot11f_unpack_ie_ht_caps( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEHTCaps*); + tDot11fIEHTCaps*, + bool); uint32_t dot11f_pack_ie_ht_caps( tpAniSirGlobal, @@ -4797,7 +4857,8 @@ uint32_t dot11f_unpack_ie_ht_info( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEHTInfo*); + tDot11fIEHTInfo*, + bool); uint32_t dot11f_pack_ie_ht_info( tpAniSirGlobal, @@ -4835,7 +4896,8 @@ uint32_t dot11f_unpack_ie_ibss_params( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEIBSSParams*); + tDot11fIEIBSSParams*, + bool); uint32_t dot11f_pack_ie_ibss_params( tpAniSirGlobal, @@ -4875,7 +4937,8 @@ uint32_t dot11f_unpack_ie_link_identifier( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIELinkIdentifier*); + tDot11fIELinkIdentifier*, + bool); uint32_t dot11f_pack_ie_link_identifier( tpAniSirGlobal, @@ -4915,7 +4978,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, @@ -5004,7 +5068,8 @@ uint32_t dot11f_unpack_ie_measurement_report( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMeasurementReport*); + tDot11fIEMeasurementReport*, + bool); uint32_t dot11f_pack_ie_measurement_report( tpAniSirGlobal, @@ -5093,7 +5158,8 @@ uint32_t dot11f_unpack_ie_measurement_request( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMeasurementRequest*); + tDot11fIEMeasurementRequest*, + bool); uint32_t dot11f_pack_ie_measurement_request( tpAniSirGlobal, @@ -5134,7 +5200,8 @@ uint32_t dot11f_unpack_ie_mobility_domain( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEMobilityDomain*); + tDot11fIEMobilityDomain*, + bool); uint32_t dot11f_pack_ie_mobility_domain( tpAniSirGlobal, @@ -5192,7 +5259,8 @@ uint32_t dot11f_unpack_ie_neighbor_report( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIENeighborReport*); + tDot11fIENeighborReport*, + bool); uint32_t dot11f_pack_ie_neighbor_report( tpAniSirGlobal, @@ -5236,7 +5304,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, @@ -5277,7 +5346,8 @@ uint32_t dot11f_unpack_ie_operating_mode( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEOperatingMode*); + tDot11fIEOperatingMode*, + bool); uint32_t dot11f_pack_ie_operating_mode( tpAniSirGlobal, @@ -5317,7 +5387,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, @@ -5356,7 +5427,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, @@ -5396,7 +5468,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, @@ -5439,7 +5512,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, @@ -5477,7 +5551,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, @@ -5515,7 +5590,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, @@ -5554,7 +5630,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, @@ -5596,7 +5673,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, @@ -5638,7 +5716,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, @@ -5677,7 +5756,8 @@ uint32_t dot11f_unpack_ie_pti_control( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEPTIControl*); + tDot11fIEPTIControl*, + bool); uint32_t dot11f_pack_ie_pti_control( tpAniSirGlobal, @@ -5719,7 +5799,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, @@ -5758,7 +5839,8 @@ uint32_t dot11f_unpack_ie_power_caps( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEPowerCaps*); + tDot11fIEPowerCaps*, + bool); uint32_t dot11f_pack_ie_power_caps( tpAniSirGlobal, @@ -5796,7 +5878,8 @@ uint32_t dot11f_unpack_ie_power_constraints( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEPowerConstraints*); + tDot11fIEPowerConstraints*, + bool); uint32_t dot11f_pack_ie_power_constraints( tpAniSirGlobal, @@ -5836,7 +5919,8 @@ uint32_t dot11f_unpack_ie_qbss_load( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQBSSLoad*); + tDot11fIEQBSSLoad*, + bool); uint32_t dot11f_pack_ie_qbss_load( tpAniSirGlobal, @@ -5874,7 +5958,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, @@ -5913,7 +5998,8 @@ uint32_t dot11f_unpack_ie_QComVendorIE( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQComVendorIE*); + tDot11fIEQComVendorIE*, + bool); uint32_t dot11f_pack_ie_QComVendorIE( tpAniSirGlobal, @@ -5955,7 +6041,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, @@ -5999,7 +6086,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, @@ -6038,7 +6126,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, @@ -6079,7 +6168,8 @@ uint32_t dot11f_unpack_ie_quiet( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEQuiet*); + tDot11fIEQuiet*, + bool); uint32_t dot11f_pack_ie_quiet( tpAniSirGlobal, @@ -6117,7 +6207,8 @@ uint32_t dot11f_unpack_ie_rcpiie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERCPIIE*); + tDot11fIERCPIIE*, + bool); uint32_t dot11f_pack_ie_rcpiie( tpAniSirGlobal, @@ -6168,7 +6259,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, @@ -6215,7 +6307,8 @@ uint32_t dot11f_unpack_ie_rsn( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERSN*); + tDot11fIERSN*, + bool); uint32_t dot11f_pack_ie_rsn( tpAniSirGlobal, @@ -6253,7 +6346,8 @@ uint32_t dot11f_unpack_ie_rsniie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERSNIIE*); + tDot11fIERSNIIE*, + bool); uint32_t dot11f_pack_ie_rsniie( tpAniSirGlobal, @@ -6292,7 +6386,8 @@ uint32_t dot11f_unpack_ie_rsn_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIERSNOpaque*); + tDot11fIERSNOpaque*, + bool); uint32_t dot11f_pack_ie_rsn_opaque( tpAniSirGlobal, @@ -6331,7 +6426,8 @@ uint32_t dot11f_unpack_ie_supp_channels( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESuppChannels*); + tDot11fIESuppChannels*, + bool); uint32_t dot11f_pack_ie_supp_channels( tpAniSirGlobal, @@ -6370,7 +6466,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, @@ -6422,7 +6519,8 @@ uint32_t dot11f_unpack_ie_supp_rates( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIESuppRates*); + tDot11fIESuppRates*, + bool); uint32_t dot11f_pack_ie_supp_rates( tpAniSirGlobal, @@ -6464,7 +6562,8 @@ uint32_t dot11f_unpack_ie_tim( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETIM*); + tDot11fIETIM*, + bool); uint32_t dot11f_pack_ie_tim( tpAniSirGlobal, @@ -6503,7 +6602,8 @@ uint32_t dot11f_unpack_ie_tpc_report( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETPCReport*); + tDot11fIETPCReport*, + bool); uint32_t dot11f_pack_ie_tpc_report( tpAniSirGlobal, @@ -6540,7 +6640,8 @@ uint32_t dot11f_unpack_ie_tpc_request( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETPCRequest*); + tDot11fIETPCRequest*, + bool); uint32_t dot11f_pack_ie_tpc_request( tpAniSirGlobal, @@ -6580,7 +6681,8 @@ uint32_t dot11f_unpack_ie_time_advertisement( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETimeAdvertisement*); + tDot11fIETimeAdvertisement*, + bool); uint32_t dot11f_pack_ie_time_advertisement( tpAniSirGlobal, @@ -6619,7 +6721,8 @@ uint32_t dot11f_unpack_ie_timeout_interval( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIETimeoutInterval*); + tDot11fIETimeoutInterval*, + bool); uint32_t dot11f_pack_ie_timeout_interval( tpAniSirGlobal, @@ -6661,7 +6764,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, @@ -6698,7 +6802,8 @@ uint32_t dot11f_unpack_ie_vendor1_ie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVendor1IE*); + tDot11fIEVendor1IE*, + bool); uint32_t dot11f_pack_ie_vendor1_ie( tpAniSirGlobal, @@ -6735,7 +6840,8 @@ uint32_t dot11f_unpack_ie_vendor3_ie( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEVendor3IE*); + tDot11fIEVendor3IE*, + bool); uint32_t dot11f_pack_ie_vendor3_ie( tpAniSirGlobal, @@ -6782,7 +6888,8 @@ uint32_t dot11f_unpack_ie_wapi( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWAPI*); + tDot11fIEWAPI*, + bool); uint32_t dot11f_pack_ie_wapi( tpAniSirGlobal, @@ -6821,7 +6928,8 @@ uint32_t dot11f_unpack_ie_wapi_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWAPIOpaque*); + tDot11fIEWAPIOpaque*, + bool); uint32_t dot11f_pack_ie_wapi_opaque( tpAniSirGlobal, @@ -6860,7 +6968,8 @@ uint32_t dot11f_unpack_ie_wfatpc( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWFATPC*); + tDot11fIEWFATPC*, + bool); uint32_t dot11f_pack_ie_wfatpc( tpAniSirGlobal, @@ -6899,7 +7008,8 @@ uint32_t dot11f_unpack_ie_wfdie_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWFDIEOpaque*); + tDot11fIEWFDIEOpaque*, + bool); uint32_t dot11f_pack_ie_wfdie_opaque( tpAniSirGlobal, @@ -6942,7 +7052,8 @@ uint32_t dot11f_unpack_ie_wmm_caps( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMCaps*); + tDot11fIEWMMCaps*, + bool); uint32_t dot11f_pack_ie_wmm_caps( tpAniSirGlobal, @@ -6983,7 +7094,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, @@ -7028,7 +7140,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, @@ -7096,7 +7209,8 @@ uint32_t dot11f_unpack_ie_wmm_params( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWMMParams*); + tDot11fIEWMMParams*, + bool); uint32_t dot11f_pack_ie_wmm_params( tpAniSirGlobal, @@ -7142,7 +7256,8 @@ uint32_t dot11f_unpack_ie_wpa( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWPA*); + tDot11fIEWPA*, + bool); uint32_t dot11f_pack_ie_wpa( tpAniSirGlobal, @@ -7181,7 +7296,8 @@ uint32_t dot11f_unpack_ie_wpa_opaque( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWPAOpaque*); + tDot11fIEWPAOpaque*, + bool); uint32_t dot11f_pack_ie_wpa_opaque( tpAniSirGlobal, @@ -7240,7 +7356,8 @@ uint32_t dot11f_unpack_ie_wsc( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWSC*); + tDot11fIEWSC*, + bool); uint32_t dot11f_pack_ie_wsc( tpAniSirGlobal, @@ -7280,7 +7397,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, @@ -7320,7 +7438,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, @@ -7366,7 +7485,8 @@ uint32_t dot11f_unpack_ie_wsc_beacon( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEWscBeacon*); + tDot11fIEWscBeacon*, + bool); uint32_t dot11f_pack_ie_wsc_beacon( tpAniSirGlobal, @@ -7420,7 +7540,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, @@ -7459,7 +7580,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, @@ -7511,7 +7633,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, @@ -7565,7 +7688,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, @@ -7605,7 +7729,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, @@ -7646,7 +7771,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, @@ -7664,6 +7790,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; @@ -7695,7 +8191,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, @@ -7738,7 +8235,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, @@ -7778,7 +8276,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, @@ -7816,7 +8315,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, @@ -7919,7 +8419,8 @@ uint32_t dot11f_unpack_ie_vendor_he_cap( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEvendor_he_cap*); + tDot11fIEvendor_he_cap*, + bool); uint32_t dot11f_pack_ie_vendor_he_cap( tpAniSirGlobal, @@ -7967,7 +8468,8 @@ uint32_t dot11f_unpack_ie_vendor_he_op( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEvendor_he_op*); + tDot11fIEvendor_he_op*, + bool); uint32_t dot11f_pack_ie_vendor_he_op( tpAniSirGlobal, @@ -8008,7 +8510,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, @@ -8052,7 +8555,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); @@ -8092,7 +8595,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); @@ -8105,37 +8608,41 @@ 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; - tDot11fIEvendor_he_cap vendor_he_cap; + 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; + tDot11fIEvendor_he_cap vendor_he_cap; } tDot11fAssocRequest; #define DOT11F_ASSOCREQUEST (3) @@ -8146,7 +8653,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); @@ -8159,41 +8666,46 @@ 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; - tDot11fIEvendor_he_cap vendor_he_cap; - tDot11fIEvendor_he_op vendor_he_op; + 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; + tDot11fIEvendor_he_cap vendor_he_cap; + tDot11fIEvendor_he_op vendor_he_op; } tDot11fAssocResponse; #define DOT11F_ASSOCRESPONSE (4) @@ -8204,7 +8716,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); @@ -8217,16 +8729,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) @@ -8237,7 +8753,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); @@ -8298,6 +8814,7 @@ typedef struct sDot11fBeacon{ tDot11fIEOperatingMode OperatingMode; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; @@ -8319,7 +8836,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); @@ -8349,7 +8866,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); @@ -8396,6 +8913,7 @@ typedef struct sDot11fBeacon2{ tDot11fIEOperatingMode OperatingMode; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; @@ -8416,7 +8934,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); @@ -8475,6 +8993,7 @@ typedef struct sDot11fBeaconIEs{ tDot11fIEOperatingMode OperatingMode; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; @@ -8495,7 +9014,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); @@ -8523,7 +9042,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); @@ -8548,7 +9067,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); @@ -8575,7 +9094,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); @@ -8600,7 +9119,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); @@ -8634,7 +9153,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); @@ -8662,7 +9181,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); @@ -8689,7 +9208,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); @@ -8717,7 +9236,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); @@ -8744,7 +9263,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); @@ -8772,7 +9291,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); @@ -8798,7 +9317,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); @@ -8834,7 +9353,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); @@ -8891,6 +9410,7 @@ typedef struct sDot11fProbeResponse{ tDot11fIEVHTExtBssLoad VHTExtBssLoad; tDot11fIEExtCap ExtCap; tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; @@ -8912,7 +9432,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); @@ -8938,7 +9458,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); @@ -8966,7 +9486,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); @@ -8995,7 +9515,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); @@ -9055,7 +9575,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); @@ -9113,7 +9633,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); @@ -9139,7 +9659,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); @@ -9165,7 +9685,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); @@ -9191,7 +9711,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); @@ -9218,7 +9738,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); @@ -9258,7 +9778,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); @@ -9287,7 +9807,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); @@ -9314,7 +9834,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); @@ -9350,7 +9870,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); @@ -9394,7 +9914,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); @@ -9440,7 +9960,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); @@ -9468,7 +9988,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); @@ -9495,7 +10015,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); @@ -9522,7 +10042,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); @@ -9553,7 +10073,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); @@ -9580,7 +10100,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); @@ -9609,7 +10129,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); @@ -9638,7 +10158,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); @@ -9666,7 +10186,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); @@ -9695,7 +10215,7 @@ extern "C" { uint32_t dot11f_unpack_addba_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11faddba_req * pFrm); + tDot11faddba_req * pFrm, bool append_ie); uint32_t dot11f_pack_addba_req(tpAniSirGlobal pCtx, tDot11faddba_req *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9724,7 +10244,7 @@ extern "C" { uint32_t dot11f_unpack_addba_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11faddba_rsp * pFrm); + tDot11faddba_rsp * pFrm, bool append_ie); uint32_t dot11f_pack_addba_rsp(tpAniSirGlobal pCtx, tDot11faddba_rsp *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9751,7 +10271,7 @@ extern "C" { uint32_t dot11f_unpack_delba_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fdelba_req * pFrm); + tDot11fdelba_req * pFrm, bool append_ie); uint32_t dot11f_pack_delba_req(tpAniSirGlobal pCtx, tDot11fdelba_req *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); @@ -9777,7 +10297,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); @@ -9804,7 +10324,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); @@ -9834,7 +10354,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 3c367eebea..722a296343 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' - * Fri Apr 14 18:11:09 2017 from the following file(s): + * Sat Apr 15 13:21:13 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, @@ -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, @@ -1395,7 +1403,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 tmp10__; @@ -1431,7 +1440,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 */ @@ -1458,7 +1468,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 */ @@ -1482,7 +1493,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 */ @@ -1500,7 +1512,8 @@ uint32_t dot11f_unpack_ie_r1_kh_id(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_ppe_threshold(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEppe_threshold *pDst) + tDot11fIEppe_threshold *pDst, + bool append_ie) { uint8_t ru_mask, ru_count; uint32_t status = DOT11F_PARSE_SUCCESS; @@ -1538,7 +1551,8 @@ uint32_t dot11f_unpack_ie_ppe_threshold(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 */ @@ -1565,7 +1579,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 */ @@ -1583,7 +1598,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 */ @@ -1607,7 +1623,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 */ @@ -1628,7 +1645,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 */ @@ -1646,7 +1664,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 */ @@ -1668,7 +1687,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 */ @@ -1690,7 +1710,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 */ @@ -1714,7 +1735,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 */ @@ -1736,7 +1758,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 tmp12__; @@ -1802,7 +1825,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 */ @@ -1821,7 +1845,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 */ @@ -1847,7 +1872,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 tmp17__; @@ -1882,7 +1908,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 */ @@ -1976,7 +2003,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 */ @@ -1994,7 +2022,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 */ @@ -2015,7 +2044,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 tmp18__; @@ -2096,7 +2126,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 tmp21__; @@ -2153,7 +2184,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 */ @@ -2180,7 +2212,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 tmp24__; @@ -2222,7 +2255,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 */ @@ -2320,7 +2354,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 */ @@ -2345,7 +2380,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 */ @@ -2370,7 +2406,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 tmp25__; @@ -2458,7 +2495,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 */ @@ -2482,7 +2520,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 */ @@ -2500,7 +2539,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 */ @@ -2522,30 +2562,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 tmp28__; @@ -2593,7 +2634,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. */ @@ -2603,7 +2645,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 */ @@ -2621,7 +2664,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 */ @@ -2639,7 +2683,8 @@ uint32_t dot11f_unpack_ie_tgt_mac_addr(tpAniSirGlobal pCtx, uint32_t dot11f_unpack_ie_vht_info(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEvht_info *pDst) + tDot11fIEvht_info *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; (void) pBuf; (void)ielen; /* Shutup the compiler */ @@ -2663,7 +2708,8 @@ uint32_t dot11f_unpack_ie_vht_info(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 */ @@ -2687,7 +2733,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 */ @@ -2705,7 +2752,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 */ @@ -2732,7 +2780,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 */ @@ -2756,7 +2805,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 */ @@ -2785,18 +2835,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 */ @@ -2810,7 +2861,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. */ @@ -2820,7 +2872,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 */ @@ -2855,7 +2908,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 tmp30__; @@ -2944,7 +2998,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 tmp38__; @@ -2967,7 +3022,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 */ @@ -2991,7 +3047,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 tmp39__; @@ -3015,7 +3072,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 */ @@ -3039,7 +3097,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 */ @@ -3066,7 +3125,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 */ @@ -3087,7 +3147,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 */ @@ -3105,7 +3166,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 */ @@ -3134,7 +3196,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; @@ -3166,7 +3229,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 */ @@ -3193,7 +3257,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 */ @@ -3214,7 +3279,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 */ @@ -3254,21 +3320,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 tmp40__; @@ -3297,7 +3365,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. */ @@ -3307,7 +3376,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 tmp41__; @@ -3400,7 +3470,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 tmp46__; @@ -3459,7 +3530,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 */ @@ -3477,7 +3549,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 */ @@ -3501,7 +3574,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 */ @@ -3534,14 +3608,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 tmp49__; @@ -3676,7 +3751,7 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, FFS_reportBeacon, IES_reportBeacon, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), append_ie); break; } } @@ -3694,26 +3769,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, }, }; @@ -3725,19 +3800,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, }, }; @@ -3749,18 +3824,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 tmp52__; @@ -3842,7 +3918,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; @@ -3854,7 +3930,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); @@ -3869,7 +3945,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; @@ -3882,7 +3958,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 tmp53__; @@ -3911,30 +3988,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 tmp54__; @@ -3982,7 +4060,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. */ @@ -3992,7 +4071,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 */ @@ -4028,7 +4108,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 tmp56__; @@ -4065,7 +4146,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 */ @@ -4093,7 +4175,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 */ @@ -4124,7 +4207,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 */ @@ -4165,7 +4249,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 */ @@ -4190,7 +4275,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 */ @@ -4215,7 +4301,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 */ @@ -4232,7 +4319,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 */ @@ -4277,7 +4365,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 */ @@ -4315,7 +4404,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 */ @@ -4332,7 +4422,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 */ @@ -4353,7 +4444,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 tmp57__; @@ -4377,7 +4469,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 */ @@ -4398,7 +4491,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 */ @@ -4416,7 +4510,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 */ @@ -4440,7 +4535,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 */ @@ -4458,7 +4554,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 */ @@ -4479,7 +4576,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 tmp58__; @@ -4503,7 +4601,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 tmp59__; @@ -4529,7 +4628,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 */ @@ -4553,7 +4653,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 */ @@ -4580,7 +4681,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 */ @@ -4602,53 +4704,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 */ @@ -4662,7 +4765,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. */ @@ -4672,7 +4776,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 */ @@ -4763,7 +4868,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 */ @@ -4781,7 +4887,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 */ @@ -4805,7 +4912,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 */ @@ -4829,7 +4937,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 */ @@ -4853,7 +4962,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; @@ -4885,7 +4995,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 */ @@ -4918,7 +5029,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 */ @@ -4939,7 +5051,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 */ @@ -4956,7 +5069,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 */ @@ -4980,7 +5094,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 */ @@ -5001,7 +5116,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 */ @@ -5031,7 +5147,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 */ @@ -5048,7 +5165,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 */ @@ -5065,7 +5183,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 tmp60__; @@ -5134,7 +5253,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 */ @@ -5158,7 +5278,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 */ @@ -5179,7 +5300,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 */ @@ -5203,7 +5325,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 tmp61__; @@ -5234,7 +5357,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 tmp62__; @@ -5259,7 +5383,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 tmp63__; @@ -5288,7 +5413,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 tmp64__; @@ -5384,7 +5510,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 */ @@ -5457,7 +5584,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 */ @@ -5554,7 +5682,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 */ @@ -5585,7 +5714,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 */ @@ -5616,7 +5746,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 */ @@ -5668,7 +5799,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 */ @@ -5745,7 +5877,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 */ @@ -5762,7 +5895,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 */ @@ -5841,7 +5975,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 */ @@ -5918,7 +6053,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 */ @@ -5949,7 +6085,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 */ @@ -5966,7 +6103,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 */ @@ -5990,24 +6128,227 @@ uint32_t dot11f_unpack_ie_ext_chan_switch_ann(tpAniSirGlobal pCtx, #define SigIeext_chan_switch_ann (0x007e) -uint32_t dot11f_unpack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, - uint8_t *pBuf, - uint8_t ielen, - tDot11fIEhs20vendor_ie *pDst) +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; - uint8_t tmp72__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp72__ = *pBuf; + pDst->assoc_delay_info = *pBuf; + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_fils_assoc_delay_info. */ + +#define SigIefils_assoc_delay_info (0x007f) + + +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 (0x0080) + + +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 tmp72__; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + framesntohs(pCtx, &tmp72__, pBuf, 0); + pBuf += 2; + ielen -= 2; + pDst->public_key_identifiers_cnt = tmp72__ >> 0 & 0x7; + pDst->realm_identifiers_cnt = tmp72__ >> 3 & 0x7; + pDst->is_ip_config_supported = tmp72__ >> 6 & 0x1; + pDst->is_cache_id_present = tmp72__ >> 7 & 0x1; + pDst->is_hessid_present = tmp72__ >> 8 & 0x1; + pDst->is_fils_sk_auth_supported = tmp72__ >> 9 & 0x1; + pDst->is_fils_sk_auth_pfs_supported = tmp72__ >> 10 & 0x1; + pDst->is_pk_auth_supported = tmp72__ >> 11 & 0x1; + pDst->reserved = tmp72__ >> 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 (0x0081) + + +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 (0x0082) + + +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 (0x0083) + + +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 (0x0084) + + +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 (0x0085) + + +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 (0x0086) + + +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 (0x0087) + + +uint32_t dot11f_unpack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEhs20vendor_ie *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + uint8_t tmp73__; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + status = DOT11F_DUPLICATE_IE; + pDst->present = 1; + tmp73__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->dgaf_dis = tmp72__ >> 0 & 0x1; - pDst->hs_id_present = tmp72__ >> 1 & 0x3; - pDst->reserved = tmp72__ >> 3 & 0x1; - pDst->release_num = tmp72__ >> 4 & 0xf; + pDst->dgaf_dis = tmp73__ >> 0 & 0x1; + pDst->hs_id_present = tmp73__ >> 1 & 0x3; + pDst->reserved = tmp73__ >> 3 & 0x1; + pDst->release_num = tmp73__ >> 4 & 0xf; if (!ielen) { return 0U; } else { @@ -6028,38 +6369,40 @@ uint32_t dot11f_unpack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, return status; } /* End dot11f_unpack_ie_hs20vendor_ie. */ -#define SigIehs20vendor_ie (0x007f) +#define SigIehs20vendor_ie (0x0088) 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 tmp73__; + uint8_t tmp74__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - tmp73__ = *pBuf; - pDst->info_request = tmp73__ >> 0 & 0x1; - pDst->forty_mhz_intolerant = tmp73__ >> 1 & 0x1; - pDst->twenty_mhz_bsswidth_req = tmp73__ >> 2 & 0x1; - pDst->obss_scan_exemption_req = tmp73__ >> 3 & 0x1; - pDst->obss_scan_exemption_grant = tmp73__ >> 4 & 0x1; - pDst->unused = tmp73__ >> 5 & 0x7; + tmp74__ = *pBuf; + pDst->info_request = tmp74__ >> 0 & 0x1; + pDst->forty_mhz_intolerant = tmp74__ >> 1 & 0x1; + pDst->twenty_mhz_bsswidth_req = tmp74__ >> 2 & 0x1; + pDst->obss_scan_exemption_req = tmp74__ >> 3 & 0x1; + pDst->obss_scan_exemption_grant = tmp74__ >> 4 & 0x1; + pDst->unused = tmp74__ >> 5 & 0x7; (void)pCtx; return status; } /* End dot11f_unpack_ie_ht2040_bss_coexistence. */ -#define SigIeht2040_bss_coexistence (0x0080) +#define SigIeht2040_bss_coexistence (0x0089) 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 */ @@ -6080,13 +6423,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 (0x0081) +#define SigIeht2040_bss_intolerant_report (0x008a) 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 */ @@ -6098,7 +6442,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 (0x0082) +#define SigIesec_chan_offset_ele (0x008b) static const tFFDefn FFS_vendor_he_cap[] = { @@ -6109,109 +6453,110 @@ static const tIEDefn IES_vendor_he_cap[] = { { offsetof(tDot11fIEvendor_he_cap, ppe_threshold), offsetof(tDot11fIEppe_threshold, present), 0, "ppe_threshold", 0, 4, 27, SigIeppe_threshold, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_PPE_THRESHOLD, 0, }, + 0, DOT11F_EID_PPE_THRESHOLD, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_vendor_he_cap(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEvendor_he_cap *pDst) + tDot11fIEvendor_he_cap *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint32_t tmp74__; - uint8_t tmp75__; - uint32_t tmp76__; + uint32_t tmp75__; + uint8_t tmp76__; uint32_t tmp77__; - uint8_t tmp78__; - uint16_t tmp79__; + uint32_t tmp78__; + uint8_t tmp79__; + uint16_t tmp80__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohl(pCtx, &tmp74__, pBuf, 0); + framesntohl(pCtx, &tmp75__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->htc_he = tmp74__ >> 0 & 0x1; - pDst->twt_request = tmp74__ >> 1 & 0x1; - pDst->twt_responder = tmp74__ >> 2 & 0x1; - pDst->fragmentation = tmp74__ >> 3 & 0x3; - pDst->max_num_frag_msdu = tmp74__ >> 5 & 0x7; - pDst->min_frag_size = tmp74__ >> 8 & 0x3; - pDst->trigger_frm_mac_pad = tmp74__ >> 10 & 0x3; - pDst->multi_tid_aggr = tmp74__ >> 12 & 0x7; - pDst->he_link_adaptation = tmp74__ >> 15 & 0x3; - pDst->all_ack = tmp74__ >> 17 & 0x1; - pDst->ul_mu_rsp_sched = tmp74__ >> 18 & 0x1; - pDst->a_bsr = tmp74__ >> 19 & 0x1; - pDst->broadcast_twt = tmp74__ >> 20 & 0x1; - pDst->ba_32bit_bitmap = tmp74__ >> 21 & 0x1; - pDst->mu_cascade = tmp74__ >> 22 & 0x1; - pDst->ack_enabled_multitid = tmp74__ >> 23 & 0x1; - pDst->dl_mu_ba = tmp74__ >> 24 & 0x1; - pDst->omi_a_ctrl = tmp74__ >> 25 & 0x1; - pDst->ofdma_ra = tmp74__ >> 26 & 0x1; - pDst->max_ampdu_len = tmp74__ >> 27 & 0x3; - pDst->amsdu_frag = tmp74__ >> 29 & 0x1; - pDst->flex_twt_sched = tmp74__ >> 30 & 0x1; - pDst->rx_ctrl_frame = tmp74__ >> 31 & 0x1; - tmp75__ = *pBuf; + pDst->htc_he = tmp75__ >> 0 & 0x1; + pDst->twt_request = tmp75__ >> 1 & 0x1; + pDst->twt_responder = tmp75__ >> 2 & 0x1; + pDst->fragmentation = tmp75__ >> 3 & 0x3; + pDst->max_num_frag_msdu = tmp75__ >> 5 & 0x7; + pDst->min_frag_size = tmp75__ >> 8 & 0x3; + pDst->trigger_frm_mac_pad = tmp75__ >> 10 & 0x3; + pDst->multi_tid_aggr = tmp75__ >> 12 & 0x7; + pDst->he_link_adaptation = tmp75__ >> 15 & 0x3; + pDst->all_ack = tmp75__ >> 17 & 0x1; + pDst->ul_mu_rsp_sched = tmp75__ >> 18 & 0x1; + pDst->a_bsr = tmp75__ >> 19 & 0x1; + pDst->broadcast_twt = tmp75__ >> 20 & 0x1; + pDst->ba_32bit_bitmap = tmp75__ >> 21 & 0x1; + pDst->mu_cascade = tmp75__ >> 22 & 0x1; + pDst->ack_enabled_multitid = tmp75__ >> 23 & 0x1; + pDst->dl_mu_ba = tmp75__ >> 24 & 0x1; + pDst->omi_a_ctrl = tmp75__ >> 25 & 0x1; + pDst->ofdma_ra = tmp75__ >> 26 & 0x1; + pDst->max_ampdu_len = tmp75__ >> 27 & 0x3; + pDst->amsdu_frag = tmp75__ >> 29 & 0x1; + pDst->flex_twt_sched = tmp75__ >> 30 & 0x1; + pDst->rx_ctrl_frame = tmp75__ >> 31 & 0x1; + tmp76__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->bsrp_ampdu_aggr = tmp75__ >> 0 & 0x1; - pDst->qtp = tmp75__ >> 1 & 0x1; - pDst->a_bqr = tmp75__ >> 2 & 0x1; - pDst->reserved1 = tmp75__ >> 3 & 0x1f; - framesntohl(pCtx, &tmp76__, pBuf, 0); - pBuf += 4; - ielen -= 4; - pDst->dual_band = tmp76__ >> 0 & 0x1; - pDst->chan_width = tmp76__ >> 1 & 0x7f; - pDst->rx_pream_puncturing = tmp76__ >> 8 & 0xf; - pDst->device_class = tmp76__ >> 12 & 0x1; - pDst->ldpc_coding = tmp76__ >> 13 & 0x1; - pDst->he_ltf_gi_ppdu = tmp76__ >> 14 & 0x3; - pDst->he_ltf_gi_ndp = tmp76__ >> 16 & 0x3; - pDst->stbc = tmp76__ >> 18 & 0x3; - pDst->doppler = tmp76__ >> 20 & 0x3; - pDst->ul_mu = tmp76__ >> 22 & 0x3; - pDst->dcm_enc_tx = tmp76__ >> 24 & 0x7; - pDst->dcm_enc_rx = tmp76__ >> 27 & 0x7; - pDst->ul_he_mu = tmp76__ >> 30 & 0x1; - pDst->su_beamformer = tmp76__ >> 31 & 0x1; + pDst->bsrp_ampdu_aggr = tmp76__ >> 0 & 0x1; + pDst->qtp = tmp76__ >> 1 & 0x1; + pDst->a_bqr = tmp76__ >> 2 & 0x1; + pDst->reserved1 = tmp76__ >> 3 & 0x1f; framesntohl(pCtx, &tmp77__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->su_beamformee = tmp77__ >> 0 & 0x1; - pDst->mu_beamformer = tmp77__ >> 1 & 0x1; - pDst->bfee_sts_lt_80 = tmp77__ >> 2 & 0x7; - pDst->nsts_tol_lt_80 = tmp77__ >> 5 & 0x7; - pDst->bfee_sta_gt_80 = tmp77__ >> 8 & 0x7; - pDst->nsts_tot_gt_80 = tmp77__ >> 11 & 0x7; - pDst->num_sounding_lt_80 = tmp77__ >> 14 & 0x7; - pDst->num_sounding_gt_80 = tmp77__ >> 17 & 0x7; - pDst->su_feedback_tone16 = tmp77__ >> 20 & 0x1; - pDst->mu_feedback_tone16 = tmp77__ >> 21 & 0x1; - pDst->codebook_su = tmp77__ >> 22 & 0x1; - pDst->codebook_mu = tmp77__ >> 23 & 0x1; - pDst->beamforming_feedback = tmp77__ >> 24 & 0x7; - pDst->he_er_su_ppdu = tmp77__ >> 27 & 0x1; - pDst->dl_mu_mimo_part_bw = tmp77__ >> 28 & 0x1; - pDst->ppet_present = tmp77__ >> 29 & 0x1; - pDst->srp = tmp77__ >> 30 & 0x1; - pDst->power_boost = tmp77__ >> 31 & 0x1; - tmp78__ = *pBuf; + pDst->dual_band = tmp77__ >> 0 & 0x1; + pDst->chan_width = tmp77__ >> 1 & 0x7f; + pDst->rx_pream_puncturing = tmp77__ >> 8 & 0xf; + pDst->device_class = tmp77__ >> 12 & 0x1; + pDst->ldpc_coding = tmp77__ >> 13 & 0x1; + pDst->he_ltf_gi_ppdu = tmp77__ >> 14 & 0x3; + pDst->he_ltf_gi_ndp = tmp77__ >> 16 & 0x3; + pDst->stbc = tmp77__ >> 18 & 0x3; + pDst->doppler = tmp77__ >> 20 & 0x3; + pDst->ul_mu = tmp77__ >> 22 & 0x3; + pDst->dcm_enc_tx = tmp77__ >> 24 & 0x7; + pDst->dcm_enc_rx = tmp77__ >> 27 & 0x7; + pDst->ul_he_mu = tmp77__ >> 30 & 0x1; + pDst->su_beamformer = tmp77__ >> 31 & 0x1; + framesntohl(pCtx, &tmp78__, pBuf, 0); + pBuf += 4; + ielen -= 4; + pDst->su_beamformee = tmp78__ >> 0 & 0x1; + pDst->mu_beamformer = tmp78__ >> 1 & 0x1; + pDst->bfee_sts_lt_80 = tmp78__ >> 2 & 0x7; + pDst->nsts_tol_lt_80 = tmp78__ >> 5 & 0x7; + pDst->bfee_sta_gt_80 = tmp78__ >> 8 & 0x7; + pDst->nsts_tot_gt_80 = tmp78__ >> 11 & 0x7; + pDst->num_sounding_lt_80 = tmp78__ >> 14 & 0x7; + pDst->num_sounding_gt_80 = tmp78__ >> 17 & 0x7; + pDst->su_feedback_tone16 = tmp78__ >> 20 & 0x1; + pDst->mu_feedback_tone16 = tmp78__ >> 21 & 0x1; + pDst->codebook_su = tmp78__ >> 22 & 0x1; + pDst->codebook_mu = tmp78__ >> 23 & 0x1; + pDst->beamforming_feedback = tmp78__ >> 24 & 0x7; + pDst->he_er_su_ppdu = tmp78__ >> 27 & 0x1; + pDst->dl_mu_mimo_part_bw = tmp78__ >> 28 & 0x1; + pDst->ppet_present = tmp78__ >> 29 & 0x1; + pDst->srp = tmp78__ >> 30 & 0x1; + pDst->power_boost = tmp78__ >> 31 & 0x1; + tmp79__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->he_ltf_gi_4x = tmp78__ >> 0 & 0x1; - pDst->reserved2 = tmp78__ >> 1 & 0x7f; - framesntohs(pCtx, &tmp79__, pBuf, 0); + pDst->he_ltf_gi_4x = tmp79__ >> 0 & 0x1; + pDst->reserved2 = tmp79__ >> 1 & 0x7f; + framesntohs(pCtx, &tmp80__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->nss_supported = tmp79__ >> 0 & 0x7; - pDst->mcs_supported = tmp79__ >> 3 & 0x7; - pDst->tx_bw_bitmap = tmp79__ >> 6 & 0x1f; - pDst->rx_bw_bitmap = tmp79__ >> 11 & 0x1f; + pDst->nss_supported = tmp80__ >> 0 & 0x7; + pDst->mcs_supported = tmp80__ >> 3 & 0x7; + pDst->tx_bw_bitmap = tmp80__ >> 6 & 0x1f; + pDst->rx_bw_bitmap = tmp80__ >> 11 & 0x1f; (void)pCtx; if (!pDst->ppet_present) @@ -6223,11 +6568,12 @@ uint32_t dot11f_unpack_ie_vendor_he_cap(tpAniSirGlobal pCtx, FFS_vendor_he_cap, IES_vendor_he_cap, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), + append_ie); return status; } /* End dot11f_unpack_ie_vendor_he_cap. */ -#define SigIevendor_he_cap (0x0083) +#define SigIevendor_he_cap (0x008c) static const tFFDefn FFS_vendor_he_op[] = { @@ -6237,33 +6583,34 @@ static const tFFDefn FFS_vendor_he_op[] = { static const tIEDefn IES_vendor_he_op[] = { { offsetof(tDot11fIEvendor_he_op, vht_info), offsetof(tDot11fIEvht_info, present), 0, "vht_info", 0, 5, 5, SigIevht_info, {0, 0, 0, 0, 0}, - 0, DOT11F_EID_VHT_INFO, 1, }, + 0, DOT11F_EID_VHT_INFO, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; uint32_t dot11f_unpack_ie_vendor_he_op(tpAniSirGlobal pCtx, uint8_t *pBuf, uint8_t ielen, - tDot11fIEvendor_he_op *pDst) + tDot11fIEvendor_he_op *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint32_t tmp80__; + uint32_t tmp81__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) status = DOT11F_DUPLICATE_IE; pDst->present = 1; - framesntohl(pCtx, &tmp80__, pBuf, 0); + framesntohl(pCtx, &tmp81__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->bss_color = tmp80__ >> 0 & 0x3f; - pDst->default_pe = tmp80__ >> 6 & 0x7; - pDst->twt_required = tmp80__ >> 9 & 0x1; - pDst->rts_threshold = tmp80__ >> 10 & 0x3ff; - pDst->partial_bss_col = tmp80__ >> 20 & 0x1; - pDst->maxbssid_ind = tmp80__ >> 21 & 0xff; - pDst->tx_bssid_ind = tmp80__ >> 29 & 0x1; - pDst->bss_col_disabled = tmp80__ >> 30 & 0x1; - pDst->dual_beacon = tmp80__ >> 31 & 0x1; + pDst->bss_color = tmp81__ >> 0 & 0x3f; + pDst->default_pe = tmp81__ >> 6 & 0x7; + pDst->twt_required = tmp81__ >> 9 & 0x1; + pDst->rts_threshold = tmp81__ >> 10 & 0x3ff; + pDst->partial_bss_col = tmp81__ >> 20 & 0x1; + pDst->maxbssid_ind = tmp81__ >> 21 & 0xff; + pDst->tx_bssid_ind = tmp81__ >> 29 & 0x1; + pDst->bss_col_disabled = tmp81__ >> 30 & 0x1; + pDst->dual_beacon = tmp81__ >> 31 & 0x1; DOT11F_MEMCPY(pCtx, pDst->basic_mcs_nss, pBuf, 3); pBuf += 3; ielen -= (uint8_t)3; @@ -6274,11 +6621,12 @@ uint32_t dot11f_unpack_ie_vendor_he_op(tpAniSirGlobal pCtx, FFS_vendor_he_op, IES_vendor_he_op, (uint8_t *)pDst, - sizeof(*pDst)); + sizeof(*pDst), + append_ie); return status; } /* End dot11f_unpack_ie_vendor_he_op. */ -#define SigIevendor_he_op (0x0084) +#define SigIevendor_he_op (0x008d) static const tFFDefn FFS_vendor_vht_ie[] = { @@ -6288,18 +6636,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 */ @@ -6319,11 +6668,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 (0x0085) +#define SigIevendor_vht_ie (0x008e) static const tFFDefn FFS_AddTSRequest[] = { @@ -6339,40 +6689,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; @@ -6394,54 +6744,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; @@ -6458,118 +6808,135 @@ 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, }, { offsetof(tDot11fAssocRequest, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 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; @@ -6589,122 +6956,141 @@ 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, }, { offsetof(tDot11fAssocResponse, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 0, 0, }, { offsetof(tDot11fAssocResponse, vendor_he_op), offsetof(tDot11fIEvendor_he_op, present), 0, "vendor_he_op", 0, 13, 18, SigIevendor_he_op, {0, 19, 116, 2, 0}, - 4, DOT11F_EID_VENDOR_HE_OP, 0, }, + 4, DOT11F_EID_VENDOR_HE_OP, 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; @@ -6725,38 +7111,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; @@ -6775,197 +7177,203 @@ 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, }, { offsetof(tDot11fBeacon, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 0, 0, }, { offsetof(tDot11fBeacon, vendor_he_op), offsetof(tDot11fIEvendor_he_op, present), 0, "vendor_he_op", 0, 13, 18, SigIevendor_he_op, - {0, 19, 116, 2, 0}, 4, DOT11F_EID_VENDOR_HE_OP, 0, }, + {0, 19, 116, 2, 0}, 4, DOT11F_EID_VENDOR_HE_OP, 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; @@ -6984,27 +7392,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; @@ -7018,163 +7426,169 @@ 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, }, { offsetof(tDot11fBeacon2, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 0, 0, }, { offsetof(tDot11fBeacon2, vendor_he_op), offsetof(tDot11fIEvendor_he_op, present), 0, "vendor_he_op", 0, 13, 18, SigIevendor_he_op, - {0, 19, 116, 2, 0}, 4, DOT11F_EID_VENDOR_HE_OP, 0, }, + {0, 19, 116, 2, 0}, 4, DOT11F_EID_VENDOR_HE_OP, 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; @@ -7187,204 +7601,210 @@ 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, }, { offsetof(tDot11fBeaconIEs, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 0, 0, }, { offsetof(tDot11fBeaconIEs, vendor_he_op), offsetof(tDot11fIEvendor_he_op, present), 0, "vendor_he_op", 0, 13, 18, SigIevendor_he_op, {0, 19, 116, 2, 0}, - 4, DOT11F_EID_VENDOR_HE_OP, 0, }, + 4, DOT11F_EID_VENDOR_HE_OP, 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; @@ -7403,26 +7823,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; @@ -7438,18 +7858,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; @@ -7473,13 +7893,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; @@ -7496,18 +7916,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; @@ -7545,13 +7965,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; @@ -7577,13 +7997,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; @@ -7604,18 +8024,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; @@ -7637,18 +8057,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; @@ -7668,18 +8088,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; @@ -7701,18 +8121,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; @@ -7734,13 +8154,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; @@ -7753,59 +8173,59 @@ 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, }, { offsetof(tDot11fProbeRequest, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 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; @@ -7824,198 +8244,203 @@ 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, }, { offsetof(tDot11fProbeResponse, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 0, 0, }, { offsetof(tDot11fProbeResponse, vendor_he_op), offsetof(tDot11fIEvendor_he_op, present), 0, "vendor_he_op", 0, 13, 18, SigIevendor_he_op, {0, 19, 116, 2, 0}, - 4, DOT11F_EID_VENDOR_HE_OP, 0, }, + 4, DOT11F_EID_VENDOR_HE_OP, 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; @@ -8033,18 +8458,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; @@ -8066,18 +8492,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; @@ -8102,18 +8528,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; @@ -8132,134 +8558,138 @@ 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, }, { offsetof(tDot11fReAssocRequest, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 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; @@ -8279,125 +8709,128 @@ 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, }, { offsetof(tDot11fReAssocResponse, vendor_he_cap), offsetof(tDot11fIEvendor_he_cap, present), 0, "vendor_he_cap", 0, 22, 49, SigIevendor_he_cap, {0, 19, 116, 1, 0}, - 4, DOT11F_EID_VENDOR_HE_CAP, 0, }, + 4, DOT11F_EID_VENDOR_HE_CAP, 0, 0, }, { offsetof(tDot11fReAssocResponse, vendor_he_op), offsetof(tDot11fIEvendor_he_op, present), 0, "vendor_he_op", 0, 13, 18, SigIevendor_he_op, {0, 19, 116, 2, 0}, - 4, DOT11F_EID_VENDOR_HE_OP, 0, }, + 4, DOT11F_EID_VENDOR_HE_OP, 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; @@ -8419,13 +8852,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; @@ -8447,13 +8880,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; @@ -8475,13 +8908,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; @@ -8502,18 +8935,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; @@ -8535,59 +8968,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; @@ -8608,26 +9041,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; @@ -8648,18 +9081,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; @@ -8680,47 +9113,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; @@ -8742,72 +9175,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; @@ -8831,76 +9264,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; @@ -8920,22 +9353,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; @@ -8955,18 +9388,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; @@ -8986,18 +9419,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; @@ -9015,37 +9448,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; @@ -9072,13 +9505,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; @@ -9100,22 +9533,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; @@ -9138,22 +9571,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; @@ -9175,18 +9608,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; @@ -9214,13 +9647,13 @@ static const tIEDefn IES_addba_req[] = { uint32_t dot11f_unpack_addba_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11faddba_req *pFrm) + tDot11faddba_req *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_addba_req, IES_addba_req, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -9248,13 +9681,13 @@ static const tIEDefn IES_addba_rsp[] = { uint32_t dot11f_unpack_addba_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11faddba_rsp *pFrm) + tDot11faddba_rsp *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_addba_rsp, IES_addba_rsp, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -9278,13 +9711,13 @@ static const tIEDefn IES_delba_req[] = { uint32_t dot11f_unpack_delba_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, - tDot11fdelba_req *pFrm) + tDot11fdelba_req *pFrm, bool append_ie) { uint32_t i = 0; uint32_t status = 0; status = unpack_core(pCtx, pBuf, nBuf, FFS_delba_req, IES_delba_req, - (uint8_t *)pFrm, sizeof(*pFrm)); + (uint8_t *)pFrm, sizeof(*pFrm), append_ie); (void)i; return status; @@ -9308,13 +9741,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; @@ -9334,24 +9767,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; @@ -9374,44 +9807,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; @@ -9424,7 +9863,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; @@ -9434,7 +9873,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" @@ -9656,12 +10095,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"), @@ -9676,9 +10119,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"), @@ -9718,7 +10161,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEGTK *) (pFrm + pIe->offset + sizeof(tDot11fIEGTK) * - countOffset)); + countOffset), + append_ie); break; case SigIeIGTK: status |= @@ -9727,7 +10171,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEIGTK *) (pFrm + pIe->offset + sizeof(tDot11fIEIGTK) * - countOffset)); + countOffset), + append_ie); break; case SigIeR0KH_ID: status |= @@ -9736,7 +10181,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 |= @@ -9745,7 +10191,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIER1KH_ID *) (pFrm + pIe->offset + sizeof(tDot11fIER1KH_ID) * - countOffset)); + countOffset), + append_ie); break; case SigIeppe_threshold: status |= @@ -9754,7 +10201,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEppe_threshold *) (pFrm + pIe->offset + sizeof(tDot11fIEppe_threshold) * - countOffset)); + countOffset), + append_ie); break; case SigIeAPChannelReport: status |= @@ -9763,7 +10211,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEAPChannelReport *) (pFrm + pIe->offset + sizeof(tDot11fIEAPChannelReport) * - countOffset)); + countOffset), + append_ie); break; case SigIeBcnReportingDetail: status |= @@ -9772,7 +10221,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEBcnReportingDetail *) (pFrm + pIe->offset + sizeof(tDot11fIEBcnReportingDetail) * - countOffset)); + countOffset), + append_ie); break; case SigIeBeaconReportFrmBody: status |= @@ -9781,7 +10231,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEBeaconReportFrmBody *) (pFrm + pIe->offset + sizeof(tDot11fIEBeaconReportFrmBody) * - countOffset)); + countOffset), + append_ie); break; case SigIeBeaconReporting: status |= @@ -9790,7 +10241,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEBeaconReporting *) (pFrm + pIe->offset + sizeof(tDot11fIEBeaconReporting) * - countOffset)); + countOffset), + append_ie); break; case SigIeCondensedCountryStr: status |= @@ -9799,7 +10251,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIECondensedCountryStr *) (pFrm + pIe->offset + sizeof(tDot11fIECondensedCountryStr) * - countOffset)); + countOffset), + append_ie); break; case SigIeMeasurementPilot: status |= @@ -9808,7 +10261,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMeasurementPilot *) (pFrm + pIe->offset + sizeof(tDot11fIEMeasurementPilot) * - countOffset)); + countOffset), + append_ie); break; case SigIeMultiBssid: status |= @@ -9817,7 +10271,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMultiBssid *) (pFrm + pIe->offset + sizeof(tDot11fIEMultiBssid) * - countOffset)); + countOffset), + append_ie); break; case SigIeRICData: status |= @@ -9826,7 +10281,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERICData *) (pFrm + pIe->offset + sizeof(tDot11fIERICData) * - countOffset)); + countOffset), + append_ie); break; case SigIeRICDescriptor: status |= @@ -9835,7 +10291,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERICDescriptor *) (pFrm + pIe->offset + sizeof(tDot11fIERICDescriptor) * - countOffset)); + countOffset), + append_ie); break; case SigIeRRMEnabledCap: status |= @@ -9844,7 +10301,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERRMEnabledCap *) (pFrm + pIe->offset + sizeof(tDot11fIERRMEnabledCap) * - countOffset)); + countOffset), + append_ie); break; case SigIeRequestedInfo: status |= @@ -9853,7 +10311,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERequestedInfo *) (pFrm + pIe->offset + sizeof(tDot11fIERequestedInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeSSID: status |= @@ -9862,7 +10321,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESSID *) (pFrm + pIe->offset + sizeof(tDot11fIESSID) * - countOffset)); + countOffset), + append_ie); break; case SigIeSchedule: status |= @@ -9871,7 +10331,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESchedule *) (pFrm + pIe->offset + sizeof(tDot11fIESchedule) * - countOffset)); + countOffset), + append_ie); break; case SigIeTCLAS: status |= @@ -9880,7 +10341,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, @@ -9894,7 +10356,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETSDelay *) (pFrm + pIe->offset + sizeof(tDot11fIETSDelay) * - countOffset)); + countOffset), + append_ie); break; case SigIeTSFInfo: status |= @@ -9903,7 +10366,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETSFInfo *) (pFrm + pIe->offset + sizeof(tDot11fIETSFInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeTSPEC: status |= @@ -9912,7 +10376,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETSPEC *) (pFrm + pIe->offset + sizeof(tDot11fIETSPEC) * - countOffset)); + countOffset), + append_ie); break; case SigIeVHTCaps: status |= @@ -9921,7 +10386,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVHTCaps *) (pFrm + pIe->offset + sizeof(tDot11fIEVHTCaps) * - countOffset)); + countOffset), + append_ie); break; case SigIeVHTOperation: status |= @@ -9930,7 +10396,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVHTOperation *) (pFrm + pIe->offset + sizeof(tDot11fIEVHTOperation) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMSchedule: status |= @@ -9939,7 +10406,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMSchedule *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMSchedule) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMTCLAS: status |= @@ -9948,7 +10416,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMTCLAS *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMTCLAS) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMTCLASPROC: status |= @@ -9957,7 +10426,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMTCLASPROC *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMTCLASPROC) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMTSDelay: status |= @@ -9966,7 +10436,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMTSDelay *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMTSDelay) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMTSPEC: status |= @@ -9975,7 +10446,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMTSPEC *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMTSPEC) * - countOffset)); + countOffset), + append_ie); break; case SigIeWiderBWChanSwitchAnn: status |= @@ -9984,7 +10456,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWiderBWChanSwitchAnn *) (pFrm + pIe->offset + sizeof(tDot11fIEWiderBWChanSwitchAnn) * - countOffset)); + countOffset), + append_ie); break; case SigIeazimuth_req: status |= @@ -9993,7 +10466,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 |= @@ -10002,7 +10476,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 |= @@ -10011,7 +10486,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 |= @@ -10020,7 +10496,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 |= @@ -10029,7 +10506,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_info: status |= @@ -10038,7 +10516,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEvht_info *) (pFrm + pIe->offset + sizeof(tDot11fIEvht_info) * - countOffset)); + countOffset), + append_ie); break; case SigIevht_transmit_power_env: status |= @@ -10047,7 +10526,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 |= @@ -10056,7 +10536,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEAID *) (pFrm + pIe->offset + sizeof(tDot11fIEAID) * - countOffset)); + countOffset), + append_ie); break; case SigIeCFParams: status |= @@ -10065,7 +10546,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIECFParams *) (pFrm + pIe->offset + sizeof(tDot11fIECFParams) * - countOffset)); + countOffset), + append_ie); break; case SigIeChallengeText: status |= @@ -10074,7 +10556,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEChallengeText *) (pFrm + pIe->offset + sizeof(tDot11fIEChallengeText) * - countOffset)); + countOffset), + append_ie); break; case SigIeChanSwitchAnn: status |= @@ -10083,7 +10566,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEChanSwitchAnn *) (pFrm + pIe->offset + sizeof(tDot11fIEChanSwitchAnn) * - countOffset)); + countOffset), + append_ie); break; case SigIeChannelSwitchWrapper: status |= @@ -10092,7 +10576,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEChannelSwitchWrapper *) (pFrm + pIe->offset + sizeof(tDot11fIEChannelSwitchWrapper) * - countOffset)); + countOffset), + append_ie); break; case SigIeCountry: status |= @@ -10101,7 +10586,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, @@ -10115,7 +10601,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEEDCAParamSet *) (pFrm + pIe->offset + sizeof(tDot11fIEEDCAParamSet) * - countOffset)); + countOffset), + append_ie); break; case SigIeERPInfo: status |= @@ -10124,7 +10611,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEERPInfo *) (pFrm + pIe->offset + sizeof(tDot11fIEERPInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeESECckmOpaque: status |= @@ -10133,7 +10621,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESECckmOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEESECckmOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeESERadMgmtCap: status |= @@ -10142,7 +10631,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESERadMgmtCap *) (pFrm + pIe->offset + sizeof(tDot11fIEESERadMgmtCap) * - countOffset)); + countOffset), + append_ie); break; case SigIeESETrafStrmMet: status |= @@ -10151,7 +10641,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESETrafStrmMet *) (pFrm + pIe->offset + sizeof(tDot11fIEESETrafStrmMet) * - countOffset)); + countOffset), + append_ie); break; case SigIeESETrafStrmRateSet: status |= @@ -10160,7 +10651,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESETrafStrmRateSet *) (pFrm + pIe->offset + sizeof(tDot11fIEESETrafStrmRateSet) * - countOffset)); + countOffset), + append_ie); break; case SigIeESETxmitPower: status |= @@ -10169,7 +10661,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESETxmitPower *) (pFrm + pIe->offset + sizeof(tDot11fIEESETxmitPower) * - countOffset)); + countOffset), + append_ie); break; case SigIeESEVersion: status |= @@ -10178,7 +10671,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEESEVersion *) (pFrm + pIe->offset + sizeof(tDot11fIEESEVersion) * - countOffset)); + countOffset), + append_ie); break; case SigIeExtCap: status |= @@ -10187,7 +10681,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEExtCap *) (pFrm + pIe->offset + sizeof(tDot11fIEExtCap) * - countOffset)); + countOffset), + append_ie); break; case SigIeExtSuppRates: status |= @@ -10196,7 +10691,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEExtSuppRates *) (pFrm + pIe->offset + sizeof(tDot11fIEExtSuppRates) * - countOffset)); + countOffset), + append_ie); break; case SigIeFHParamSet: status |= @@ -10205,7 +10701,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEFHParamSet *) (pFrm + pIe->offset + sizeof(tDot11fIEFHParamSet) * - countOffset)); + countOffset), + append_ie); break; case SigIeFHParams: status |= @@ -10214,7 +10711,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEFHParams *) (pFrm + pIe->offset + sizeof(tDot11fIEFHParams) * - countOffset)); + countOffset), + append_ie); break; case SigIeFHPattTable: status |= @@ -10223,7 +10721,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEFHPattTable *) (pFrm + pIe->offset + sizeof(tDot11fIEFHPattTable) * - countOffset)); + countOffset), + append_ie); break; case SigIeFTInfo: status |= @@ -10232,7 +10731,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEFTInfo *) (pFrm + pIe->offset + sizeof(tDot11fIEFTInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeHTCaps: status |= @@ -10241,7 +10741,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEHTCaps *) (pFrm + pIe->offset + sizeof(tDot11fIEHTCaps) * - countOffset)); + countOffset), + append_ie); break; case SigIeHTInfo: status |= @@ -10250,7 +10751,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEHTInfo *) (pFrm + pIe->offset + sizeof(tDot11fIEHTInfo) * - countOffset)); + countOffset), + append_ie); break; case SigIeIBSSParams: status |= @@ -10259,7 +10761,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEIBSSParams *) (pFrm + pIe->offset + sizeof(tDot11fIEIBSSParams) * - countOffset)); + countOffset), + append_ie); break; case SigIeLinkIdentifier: status |= @@ -10268,7 +10771,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIELinkIdentifier *) (pFrm + pIe->offset + sizeof(tDot11fIELinkIdentifier) * - countOffset)); + countOffset), + append_ie); break; case SigIeMBO_IE: status |= @@ -10277,7 +10781,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMBO_IE *) (pFrm + pIe->offset + sizeof(tDot11fIEMBO_IE) * - countOffset)); + countOffset), + append_ie); break; case SigIeMeasurementReport: status |= @@ -10286,7 +10791,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMeasurementReport *) (pFrm + pIe->offset + sizeof(tDot11fIEMeasurementReport) * - countOffset)); + countOffset), + append_ie); break; case SigIeMeasurementRequest: status |= @@ -10295,7 +10801,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEMeasurementRequest *) (pFrm + pIe->offset + sizeof(tDot11fIEMeasurementRequest) * - countOffset)); + countOffset), + append_ie); break; case SigIeMobilityDomain: status |= @@ -10304,7 +10811,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) { @@ -10314,7 +10822,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIENeighborReport *) (pFrm + pIe->offset + sizeof(tDot11fIENeighborReport) * - countOffset)); + countOffset), + append_ie); } else { status |= DOT11F_BUFFER_OVERFLOW; } @@ -10326,7 +10835,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEOBSSScanParameters *) (pFrm + pIe->offset + sizeof(tDot11fIEOBSSScanParameters) * - countOffset)); + countOffset), + append_ie); break; case SigIeOperatingMode: status |= @@ -10335,7 +10845,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEOperatingMode *) (pFrm + pIe->offset + sizeof(tDot11fIEOperatingMode) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PAssocReq: status |= @@ -10344,7 +10855,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PAssocReq *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PAssocReq) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PAssocRes: status |= @@ -10353,7 +10865,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PAssocRes *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PAssocRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PBeacon: status |= @@ -10362,7 +10875,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PBeacon *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PBeacon) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PBeaconProbeRes: status |= @@ -10371,7 +10885,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PBeaconProbeRes *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PBeaconProbeRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PDeAuth: status |= @@ -10380,7 +10895,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PDeAuth *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PDeAuth) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PDisAssoc: status |= @@ -10389,7 +10905,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PDisAssoc *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PDisAssoc) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PIEOpaque: status |= @@ -10398,7 +10915,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PIEOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PIEOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PProbeReq: status |= @@ -10407,7 +10925,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PProbeReq *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PProbeReq) * - countOffset)); + countOffset), + append_ie); break; case SigIeP2PProbeRes: status |= @@ -10416,7 +10935,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEP2PProbeRes *) (pFrm + pIe->offset + sizeof(tDot11fIEP2PProbeRes) * - countOffset)); + countOffset), + append_ie); break; case SigIePTIControl: status |= @@ -10425,7 +10945,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEPTIControl *) (pFrm + pIe->offset + sizeof(tDot11fIEPTIControl) * - countOffset)); + countOffset), + append_ie); break; case SigIePUBufferStatus: status |= @@ -10434,7 +10955,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEPUBufferStatus *) (pFrm + pIe->offset + sizeof(tDot11fIEPUBufferStatus) * - countOffset)); + countOffset), + append_ie); break; case SigIePowerCaps: status |= @@ -10443,7 +10965,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEPowerCaps *) (pFrm + pIe->offset + sizeof(tDot11fIEPowerCaps) * - countOffset)); + countOffset), + append_ie); break; case SigIePowerConstraints: status |= @@ -10452,7 +10975,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEPowerConstraints *) (pFrm + pIe->offset + sizeof(tDot11fIEPowerConstraints) * - countOffset)); + countOffset), + append_ie); break; case SigIeQBSSLoad: status |= @@ -10461,7 +10985,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQBSSLoad *) (pFrm + pIe->offset + sizeof(tDot11fIEQBSSLoad) * - countOffset)); + countOffset), + append_ie); break; case SigIeQCN_IE: status |= @@ -10470,7 +10995,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQCN_IE *) (pFrm + pIe->offset + sizeof(tDot11fIEQCN_IE) * - countOffset)); + countOffset), + append_ie); break; case SigIeQComVendorIE: status |= @@ -10479,7 +11005,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQComVendorIE *) (pFrm + pIe->offset + sizeof(tDot11fIEQComVendorIE) * - countOffset)); + countOffset), + append_ie); break; case SigIeQOSCapsAp: status |= @@ -10488,7 +11015,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQOSCapsAp *) (pFrm + pIe->offset + sizeof(tDot11fIEQOSCapsAp) * - countOffset)); + countOffset), + append_ie); break; case SigIeQOSCapsStation: status |= @@ -10497,7 +11025,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQOSCapsStation *) (pFrm + pIe->offset + sizeof(tDot11fIEQOSCapsStation) * - countOffset)); + countOffset), + append_ie); break; case SigIeQosMapSet: status |= @@ -10506,7 +11035,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQosMapSet *) (pFrm + pIe->offset + sizeof(tDot11fIEQosMapSet) * - countOffset)); + countOffset), + append_ie); break; case SigIeQuiet: status |= @@ -10515,7 +11045,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEQuiet *) (pFrm + pIe->offset + sizeof(tDot11fIEQuiet) * - countOffset)); + countOffset), + append_ie); break; case SigIeRCPIIE: status |= @@ -10524,7 +11055,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. */ @@ -10544,7 +11076,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERICDataDesc *) (pFrm + pIe->offset + sizeof(tDot11fIERICDataDesc) * - countOffset)); + countOffset), + append_ie); break; case SigIeRSN: status |= @@ -10553,7 +11086,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERSN *) (pFrm + pIe->offset + sizeof(tDot11fIERSN) * - countOffset)); + countOffset), + append_ie); break; case SigIeRSNIIE: status |= @@ -10562,7 +11096,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERSNIIE *) (pFrm + pIe->offset + sizeof(tDot11fIERSNIIE) * - countOffset)); + countOffset), + append_ie); break; case SigIeRSNOpaque: status |= @@ -10571,7 +11106,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIERSNOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIERSNOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeSuppChannels: status |= @@ -10580,7 +11116,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESuppChannels *) (pFrm + pIe->offset + sizeof(tDot11fIESuppChannels) * - countOffset)); + countOffset), + append_ie); break; case SigIeSuppOperatingClasses: status |= @@ -10589,7 +11126,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESuppOperatingClasses *) (pFrm + pIe->offset + sizeof(tDot11fIESuppOperatingClasses) * - countOffset)); + countOffset), + append_ie); break; case SigIeSuppRates: status |= @@ -10598,7 +11136,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIESuppRates *) (pFrm + pIe->offset + sizeof(tDot11fIESuppRates) * - countOffset)); + countOffset), + append_ie); break; case SigIeTIM: status |= @@ -10607,7 +11146,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETIM *) (pFrm + pIe->offset + sizeof(tDot11fIETIM) * - countOffset)); + countOffset), + append_ie); break; case SigIeTPCReport: status |= @@ -10616,7 +11156,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETPCReport *) (pFrm + pIe->offset + sizeof(tDot11fIETPCReport) * - countOffset)); + countOffset), + append_ie); break; case SigIeTPCRequest: status |= @@ -10625,7 +11166,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETPCRequest *) (pFrm + pIe->offset + sizeof(tDot11fIETPCRequest) * - countOffset)); + countOffset), + append_ie); break; case SigIeTimeAdvertisement: status |= @@ -10634,7 +11176,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETimeAdvertisement *) (pFrm + pIe->offset + sizeof(tDot11fIETimeAdvertisement) * - countOffset)); + countOffset), + append_ie); break; case SigIeTimeoutInterval: status |= @@ -10643,7 +11186,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIETimeoutInterval *) (pFrm + pIe->offset + sizeof(tDot11fIETimeoutInterval) * - countOffset)); + countOffset), + append_ie); break; case SigIeVHTExtBssLoad: status |= @@ -10652,7 +11196,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVHTExtBssLoad *) (pFrm + pIe->offset + sizeof(tDot11fIEVHTExtBssLoad) * - countOffset)); + countOffset), + append_ie); break; case SigIeVendor1IE: status |= @@ -10661,7 +11206,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVendor1IE *) (pFrm + pIe->offset + sizeof(tDot11fIEVendor1IE) * - countOffset)); + countOffset), + append_ie); break; case SigIeVendor3IE: status |= @@ -10670,7 +11216,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEVendor3IE *) (pFrm + pIe->offset + sizeof(tDot11fIEVendor3IE) * - countOffset)); + countOffset), + append_ie); break; case SigIeWAPI: status |= @@ -10679,7 +11226,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWAPI *) (pFrm + pIe->offset + sizeof(tDot11fIEWAPI) * - countOffset)); + countOffset), + append_ie); break; case SigIeWAPIOpaque: status |= @@ -10688,7 +11236,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWAPIOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEWAPIOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeWFATPC: status |= @@ -10697,7 +11246,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWFATPC *) (pFrm + pIe->offset + sizeof(tDot11fIEWFATPC) * - countOffset)); + countOffset), + append_ie); break; case SigIeWFDIEOpaque: status |= @@ -10706,7 +11256,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWFDIEOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEWFDIEOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMCaps: status |= @@ -10715,7 +11266,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMCaps *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMCaps) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMInfoAp: status |= @@ -10724,7 +11276,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMInfoAp *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMInfoAp) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMInfoStation: status |= @@ -10733,7 +11286,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMInfoStation *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMInfoStation) * - countOffset)); + countOffset), + append_ie); break; case SigIeWMMParams: status |= @@ -10742,7 +11296,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWMMParams *) (pFrm + pIe->offset + sizeof(tDot11fIEWMMParams) * - countOffset)); + countOffset), + append_ie); break; case SigIeWPA: status |= @@ -10751,7 +11306,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWPA *) (pFrm + pIe->offset + sizeof(tDot11fIEWPA) * - countOffset)); + countOffset), + append_ie); break; case SigIeWPAOpaque: status |= @@ -10760,7 +11316,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWPAOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEWPAOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeWSC: status |= @@ -10769,7 +11326,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWSC *) (pFrm + pIe->offset + sizeof(tDot11fIEWSC) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscAssocReq: status |= @@ -10778,7 +11336,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscAssocReq *) (pFrm + pIe->offset + sizeof(tDot11fIEWscAssocReq) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscAssocRes: status |= @@ -10787,7 +11346,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscAssocRes *) (pFrm + pIe->offset + sizeof(tDot11fIEWscAssocRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscBeacon: status |= @@ -10796,7 +11356,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscBeacon *) (pFrm + pIe->offset + sizeof(tDot11fIEWscBeacon) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscBeaconProbeRes: status |= @@ -10805,7 +11366,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscBeaconProbeRes *) (pFrm + pIe->offset + sizeof(tDot11fIEWscBeaconProbeRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscIEOpaque: status |= @@ -10814,7 +11376,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscIEOpaque *) (pFrm + pIe->offset + sizeof(tDot11fIEWscIEOpaque) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscProbeReq: status |= @@ -10823,7 +11386,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscProbeReq *) (pFrm + pIe->offset + sizeof(tDot11fIEWscProbeReq) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscProbeRes: status |= @@ -10832,7 +11396,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEWscProbeRes *) (pFrm + pIe->offset + sizeof(tDot11fIEWscProbeRes) * - countOffset)); + countOffset), + append_ie); break; case SigIeWscReassocRes: status |= @@ -10841,7 +11406,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 |= @@ -10850,7 +11416,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 |= @@ -10859,7 +11516,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 |= @@ -10868,7 +11526,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 |= @@ -10877,7 +11536,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 |= @@ -10886,7 +11546,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_he_cap: status |= @@ -10895,7 +11556,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEvendor_he_cap *) (pFrm + pIe->offset + sizeof(tDot11fIEvendor_he_cap) * - countOffset)); + countOffset), + append_ie); break; case SigIevendor_he_op: status |= @@ -10904,7 +11566,8 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, (tDot11fIEvendor_he_op *) (pFrm + pIe->offset + sizeof(tDot11fIEvendor_he_op) * - countOffset)); + countOffset), + append_ie); break; case SigIevendor_vht_ie: status |= @@ -10913,7 +11576,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" @@ -10927,8 +11591,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; } @@ -10951,7 +11615,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); @@ -10974,7 +11638,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; @@ -12664,13 +13328,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: @@ -13647,6 +14313,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 |= @@ -13986,25 +14727,25 @@ void dot11f_pack_ff_capabilities(tpAniSirGlobal pCtx, tDot11fFfCapabilities *pSrc, uint8_t *pBuf) { - uint16_t tmp81__; - tmp81__ = 0U; - tmp81__ |= (pSrc->ess << 0); - tmp81__ |= (pSrc->ibss << 1); - tmp81__ |= (pSrc->cfPollable << 2); - tmp81__ |= (pSrc->cfPollReq << 3); - tmp81__ |= (pSrc->privacy << 4); - tmp81__ |= (pSrc->shortPreamble << 5); - tmp81__ |= (pSrc->pbcc << 6); - tmp81__ |= (pSrc->channelAgility << 7); - tmp81__ |= (pSrc->spectrumMgt << 8); - tmp81__ |= (pSrc->qos << 9); - tmp81__ |= (pSrc->shortSlotTime << 10); - tmp81__ |= (pSrc->apsd << 11); - tmp81__ |= (pSrc->rrm << 12); - tmp81__ |= (pSrc->dsssOfdm << 13); - tmp81__ |= (pSrc->delayedBA << 14); - tmp81__ |= (pSrc->immediateBA << 15); - frameshtons(pCtx, pBuf, tmp81__, 0); + uint16_t tmp82__; + tmp82__ = 0U; + tmp82__ |= (pSrc->ess << 0); + tmp82__ |= (pSrc->ibss << 1); + tmp82__ |= (pSrc->cfPollable << 2); + tmp82__ |= (pSrc->cfPollReq << 3); + tmp82__ |= (pSrc->privacy << 4); + tmp82__ |= (pSrc->shortPreamble << 5); + tmp82__ |= (pSrc->pbcc << 6); + tmp82__ |= (pSrc->channelAgility << 7); + tmp82__ |= (pSrc->spectrumMgt << 8); + tmp82__ |= (pSrc->qos << 9); + tmp82__ |= (pSrc->shortSlotTime << 10); + tmp82__ |= (pSrc->apsd << 11); + tmp82__ |= (pSrc->rrm << 12); + tmp82__ |= (pSrc->dsssOfdm << 13); + tmp82__ |= (pSrc->delayedBA << 14); + tmp82__ |= (pSrc->immediateBA << 15); + frameshtons(pCtx, pBuf, tmp82__, 0); (void)pCtx; } /* End dot11f_pack_ff_capabilities. */ @@ -14068,13 +14809,13 @@ void dot11f_pack_ff_operating_mode(tpAniSirGlobal pCtx, tDot11fFfOperatingMode *pSrc, uint8_t *pBuf) { - uint8_t tmp82__; - tmp82__ = 0U; - tmp82__ |= (pSrc->chanWidth << 0); - tmp82__ |= (pSrc->reserved << 2); - tmp82__ |= (pSrc->rxNSS << 4); - tmp82__ |= (pSrc->rxNSSType << 7); - *pBuf = tmp82__; + uint8_t tmp83__; + tmp83__ = 0U; + tmp83__ |= (pSrc->chanWidth << 0); + tmp83__ |= (pSrc->reserved << 2); + tmp83__ |= (pSrc->rxNSS << 4); + tmp83__ |= (pSrc->rxNSSType << 7); + *pBuf = tmp83__; (void)pCtx; } /* End dot11f_pack_ff_operating_mode. */ @@ -14114,12 +14855,12 @@ void dot11f_pack_ff_sm_power_mode_set(tpAniSirGlobal pCtx, tDot11fFfSMPowerModeSet *pSrc, uint8_t *pBuf) { - uint8_t tmp83__; - tmp83__ = 0U; - tmp83__ |= (pSrc->PowerSave_En << 0); - tmp83__ |= (pSrc->Mode << 1); - tmp83__ |= (pSrc->reserved << 2); - *pBuf = tmp83__; + uint8_t tmp84__; + tmp84__ = 0U; + tmp84__ |= (pSrc->PowerSave_En << 0); + tmp84__ |= (pSrc->Mode << 1); + tmp84__ |= (pSrc->reserved << 2); + *pBuf = tmp84__; (void)pCtx; } /* End dot11f_pack_ff_sm_power_mode_set. */ @@ -14159,19 +14900,19 @@ void dot11f_pack_ff_ts_info(tpAniSirGlobal pCtx, tDot11fFfTSInfo *pSrc, uint8_t *pBuf) { - uint32_t tmp84__; - 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); - tmp84__ |= (pSrc->schedule << 16); - tmp84__ |= (pSrc->unused << 17); - frameshtonl(pCtx, pBuf, tmp84__, 0); + uint32_t tmp85__; + 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); + tmp85__ |= (pSrc->schedule << 16); + tmp85__ |= (pSrc->unused << 17); + frameshtonl(pCtx, pBuf, tmp85__, 0); (void)pCtx; } /* End dot11f_pack_ff_ts_info. */ @@ -14227,13 +14968,13 @@ void dot11f_pack_ff_addba_param_set(tpAniSirGlobal pCtx, tDot11fFfaddba_param_set *pSrc, uint8_t *pBuf) { - uint16_t tmp85__; - tmp85__ = 0U; - tmp85__ |= (pSrc->amsdu_supp << 0); - tmp85__ |= (pSrc->policy << 1); - tmp85__ |= (pSrc->tid << 2); - tmp85__ |= (pSrc->buff_size << 6); - frameshtons(pCtx, pBuf, tmp85__, 0); + uint16_t tmp86__; + tmp86__ = 0U; + tmp86__ |= (pSrc->amsdu_supp << 0); + tmp86__ |= (pSrc->policy << 1); + tmp86__ |= (pSrc->tid << 2); + tmp86__ |= (pSrc->buff_size << 6); + frameshtons(pCtx, pBuf, tmp86__, 0); (void)pCtx; } /* End dot11f_pack_ff_addba_param_set. */ @@ -14241,11 +14982,11 @@ void dot11f_pack_ff_ba_start_seq_ctrl(tpAniSirGlobal pCtx, tDot11fFfba_start_seq_ctrl *pSrc, uint8_t *pBuf) { - uint16_t tmp86__; - tmp86__ = 0U; - tmp86__ |= (pSrc->frag_number << 0); - tmp86__ |= (pSrc->ssn << 4); - frameshtons(pCtx, pBuf, tmp86__, 0); + uint16_t tmp87__; + tmp87__ = 0U; + tmp87__ |= (pSrc->frag_number << 0); + tmp87__ |= (pSrc->ssn << 4); + frameshtons(pCtx, pBuf, tmp87__, 0); (void)pCtx; } /* End dot11f_pack_ff_ba_start_seq_ctrl. */ @@ -14261,12 +15002,12 @@ void dot11f_pack_ff_delba_param_set(tpAniSirGlobal pCtx, tDot11fFfdelba_param_set *pSrc, uint8_t *pBuf) { - uint16_t tmp87__; - tmp87__ = 0U; - tmp87__ |= (pSrc->reserved << 0); - tmp87__ |= (pSrc->initiator << 11); - tmp87__ |= (pSrc->tid << 12); - frameshtons(pCtx, pBuf, tmp87__, 0); + uint16_t tmp88__; + tmp88__ = 0U; + tmp88__ |= (pSrc->reserved << 0); + tmp88__ |= (pSrc->initiator << 11); + tmp88__ |= (pSrc->tid << 12); + frameshtons(pCtx, pBuf, tmp88__, 0); (void)pCtx; } /* End dot11f_pack_ff_delba_param_set. */ @@ -14274,13 +15015,13 @@ void dot11f_pack_ff_ext_chan_switch_ann_action(tpAniSirGlobal pCtx, tDot11fFfext_chan_switch_ann_action *pSrc, uint8_t *pBuf) { - uint32_t tmp88__; - tmp88__ = 0U; - tmp88__ |= (pSrc->switch_mode << 0); - tmp88__ |= (pSrc->op_class << 8); - tmp88__ |= (pSrc->new_channel << 16); - tmp88__ |= (pSrc->switch_count << 24); - frameshtonl(pCtx, pBuf, tmp88__, 0); + uint32_t tmp89__; + tmp89__ = 0U; + tmp89__ |= (pSrc->switch_mode << 0); + tmp89__ |= (pSrc->op_class << 8); + tmp89__ |= (pSrc->new_channel << 16); + tmp89__ |= (pSrc->switch_count << 24); + frameshtonl(pCtx, pBuf, tmp89__, 0); (void)pCtx; } /* End dot11f_pack_ff_ext_chan_switch_ann_action. */ @@ -14367,7 +15108,7 @@ uint32_t dot11f_pack_tlv_version2(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp89__; + uint8_t tmp90__; nNeeded += 3; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -14376,10 +15117,10 @@ uint32_t dot11f_pack_tlv_version2(tpAniSirGlobal pCtx, pBuf += 1; *pnConsumed += 1; pTlvLen = pBuf; pBuf += 1; *pnConsumed += 1; - tmp89__ = 0U; - tmp89__ |= (pSrc->minor << 0); - tmp89__ |= (pSrc->major << 4); - *pBuf = tmp89__; + tmp90__ = 0U; + tmp90__ |= (pSrc->minor << 0); + tmp90__ |= (pSrc->major << 4); + *pBuf = tmp90__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -15336,7 +16077,7 @@ uint32_t dot11f_pack_tlv_version(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp90__; + uint8_t tmp91__; nNeeded += 5; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -15345,10 +16086,10 @@ uint32_t dot11f_pack_tlv_version(tpAniSirGlobal pCtx, pBuf += 2; *pnConsumed += 2; pTlvLen = pBuf; pBuf += 2; *pnConsumed += 2; - tmp90__ = 0U; - tmp90__ |= (pSrc->minor << 0); - tmp90__ |= (pSrc->major << 4); - *pBuf = tmp90__; + tmp91__ = 0U; + tmp91__ |= (pSrc->minor << 0); + tmp91__ |= (pSrc->major << 4); + *pBuf = tmp91__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -15457,7 +16198,7 @@ uint32_t dot11f_pack_ie_gtk(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp91__; + uint16_t tmp92__; nNeeded += (pSrc->num_key + 11); while (pSrc->present) { if (nNeeded > nBuf) @@ -15466,10 +16207,10 @@ uint32_t dot11f_pack_ie_gtk(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp91__ = 0U; - tmp91__ |= (pSrc->keyId << 0); - tmp91__ |= (pSrc->reserved << 2); - frameshtons(pCtx, pBuf, tmp91__, 0); + tmp92__ = 0U; + tmp92__ |= (pSrc->keyId << 0); + tmp92__ |= (pSrc->reserved << 2); + frameshtons(pCtx, pBuf, tmp92__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -15597,7 +16338,7 @@ uint32_t dot11f_pack_ie_ppe_threshold(tpAniSirGlobal pCtx, uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; uint8_t ru_mask, ru_count; - uint8_t tmp92__; + uint8_t tmp93__; nNeeded += (pSrc->num_ppet + 1); while (pSrc->present) { if (nNeeded > nBuf) @@ -15606,11 +16347,11 @@ uint32_t dot11f_pack_ie_ppe_threshold(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp92__ = 0U; - tmp92__ |= (pSrc->nss_count << 0); - tmp92__ |= (pSrc->ru_idx_mask << 3); - tmp92__ |= (pSrc->ppet_b1 << 7); - *pBuf = tmp92__; + tmp93__ = 0U; + tmp93__ |= (pSrc->nss_count << 0); + tmp93__ |= (pSrc->ru_idx_mask << 3); + tmp93__ |= (pSrc->ppet_b1 << 7); + *pBuf = tmp93__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -15925,11 +16666,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 tmp93__; uint8_t tmp94__; uint8_t tmp95__; uint8_t tmp96__; uint8_t tmp97__; + uint8_t tmp98__; nNeeded += 5; while (pSrc->present) { if (nNeeded > nBuf) @@ -15938,60 +16679,60 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp93__ = 0U; - tmp93__ |= (pSrc->LinkMeasurement << 0); - tmp93__ |= (pSrc->NeighborRpt << 1); - tmp93__ |= (pSrc->parallel << 2); - tmp93__ |= (pSrc->repeated << 3); - tmp93__ |= (pSrc->BeaconPassive << 4); - tmp93__ |= (pSrc->BeaconActive << 5); - tmp93__ |= (pSrc->BeaconTable << 6); - tmp93__ |= (pSrc->BeaconRepCond << 7); - *pBuf = tmp93__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; tmp94__ = 0U; - tmp94__ |= (pSrc->FrameMeasurement << 0); - tmp94__ |= (pSrc->ChannelLoad << 1); - tmp94__ |= (pSrc->NoiseHistogram << 2); - tmp94__ |= (pSrc->statistics << 3); - tmp94__ |= (pSrc->LCIMeasurement << 4); - tmp94__ |= (pSrc->LCIAzimuth << 5); - tmp94__ |= (pSrc->TCMCapability << 6); - tmp94__ |= (pSrc->triggeredTCM << 7); + tmp94__ |= (pSrc->LinkMeasurement << 0); + tmp94__ |= (pSrc->NeighborRpt << 1); + tmp94__ |= (pSrc->parallel << 2); + tmp94__ |= (pSrc->repeated << 3); + tmp94__ |= (pSrc->BeaconPassive << 4); + tmp94__ |= (pSrc->BeaconActive << 5); + tmp94__ |= (pSrc->BeaconTable << 6); + tmp94__ |= (pSrc->BeaconRepCond << 7); *pBuf = tmp94__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; tmp95__ = 0U; - tmp95__ |= (pSrc->APChanReport << 0); - tmp95__ |= (pSrc->RRMMIBEnabled << 1); - tmp95__ |= (pSrc->operatingChanMax << 2); - tmp95__ |= (pSrc->nonOperatinChanMax << 5); + tmp95__ |= (pSrc->FrameMeasurement << 0); + tmp95__ |= (pSrc->ChannelLoad << 1); + tmp95__ |= (pSrc->NoiseHistogram << 2); + tmp95__ |= (pSrc->statistics << 3); + tmp95__ |= (pSrc->LCIMeasurement << 4); + tmp95__ |= (pSrc->LCIAzimuth << 5); + tmp95__ |= (pSrc->TCMCapability << 6); + tmp95__ |= (pSrc->triggeredTCM << 7); *pBuf = tmp95__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; tmp96__ = 0U; - tmp96__ |= (pSrc->MeasurementPilot << 0); - tmp96__ |= (pSrc->MeasurementPilotEnabled << 3); - tmp96__ |= (pSrc->NeighborTSFOffset << 4); - tmp96__ |= (pSrc->RCPIMeasurement << 5); - tmp96__ |= (pSrc->RSNIMeasurement << 6); - tmp96__ |= (pSrc->BssAvgAccessDelay << 7); + tmp96__ |= (pSrc->APChanReport << 0); + tmp96__ |= (pSrc->RRMMIBEnabled << 1); + tmp96__ |= (pSrc->operatingChanMax << 2); + tmp96__ |= (pSrc->nonOperatinChanMax << 5); *pBuf = tmp96__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; tmp97__ = 0U; - tmp97__ |= (pSrc->BSSAvailAdmission << 0); - tmp97__ |= (pSrc->AntennaInformation << 1); - tmp97__ |= (pSrc->fine_time_meas_rpt << 2); - tmp97__ |= (pSrc->lci_capability << 3); - tmp97__ |= (pSrc->reserved << 4); + tmp97__ |= (pSrc->MeasurementPilot << 0); + tmp97__ |= (pSrc->MeasurementPilotEnabled << 3); + tmp97__ |= (pSrc->NeighborTSFOffset << 4); + tmp97__ |= (pSrc->RCPIMeasurement << 5); + tmp97__ |= (pSrc->RSNIMeasurement << 6); + tmp97__ |= (pSrc->BssAvgAccessDelay << 7); *pBuf = tmp97__; *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp98__ = 0U; + tmp98__ |= (pSrc->BSSAvailAdmission << 0); + tmp98__ |= (pSrc->AntennaInformation << 1); + tmp98__ |= (pSrc->fine_time_meas_rpt << 2); + tmp98__ |= (pSrc->lci_capability << 3); + tmp98__ |= (pSrc->reserved << 4); + *pBuf = tmp98__; + *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; break; @@ -16070,7 +16811,7 @@ uint32_t dot11f_pack_ie_schedule(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp98__; + uint16_t tmp99__; nNeeded += 14; while (pSrc->present) { if (nNeeded > nBuf) @@ -16079,12 +16820,12 @@ uint32_t dot11f_pack_ie_schedule(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp98__ = 0U; - tmp98__ |= (pSrc->aggregation << 0); - tmp98__ |= (pSrc->tsid << 1); - tmp98__ |= (pSrc->direction << 5); - tmp98__ |= (pSrc->reserved << 7); - frameshtons(pCtx, pBuf, tmp98__, 0); + tmp99__ = 0U; + tmp99__ |= (pSrc->aggregation << 0); + tmp99__ |= (pSrc->tsid << 1); + tmp99__ |= (pSrc->direction << 5); + tmp99__ |= (pSrc->reserved << 7); + frameshtons(pCtx, pBuf, tmp99__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -16311,9 +17052,9 @@ uint32_t dot11f_pack_ie_tspec(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp99__; - uint8_t tmp100__; - uint16_t tmp101__; + uint16_t tmp100__; + uint8_t tmp101__; + uint16_t tmp102__; nNeeded += 55; while (pSrc->present) { if (nNeeded > nBuf) @@ -16322,30 +17063,30 @@ uint32_t dot11f_pack_ie_tspec(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp99__ = 0U; - tmp99__ |= (pSrc->traffic_type << 0); - tmp99__ |= (pSrc->tsid << 1); - tmp99__ |= (pSrc->direction << 5); - tmp99__ |= (pSrc->access_policy << 7); - tmp99__ |= (pSrc->aggregation << 9); - tmp99__ |= (pSrc->psb << 10); - tmp99__ |= (pSrc->user_priority << 11); - tmp99__ |= (pSrc->tsinfo_ack_pol << 14); - frameshtons(pCtx, pBuf, tmp99__, 0); + tmp100__ = 0U; + tmp100__ |= (pSrc->traffic_type << 0); + tmp100__ |= (pSrc->tsid << 1); + tmp100__ |= (pSrc->direction << 5); + tmp100__ |= (pSrc->access_policy << 7); + tmp100__ |= (pSrc->aggregation << 9); + tmp100__ |= (pSrc->psb << 10); + tmp100__ |= (pSrc->user_priority << 11); + tmp100__ |= (pSrc->tsinfo_ack_pol << 14); + frameshtons(pCtx, pBuf, tmp100__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp100__ = 0U; - tmp100__ |= (pSrc->schedule << 0); - tmp100__ |= (pSrc->unused << 1); - *pBuf = tmp100__; + tmp101__ = 0U; + tmp101__ |= (pSrc->schedule << 0); + tmp101__ |= (pSrc->unused << 1); + *pBuf = tmp101__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp101__ = 0U; - tmp101__ |= (pSrc->size << 0); - tmp101__ |= (pSrc->fixed << 15); - frameshtons(pCtx, pBuf, tmp101__, 0); + tmp102__ = 0U; + tmp102__ |= (pSrc->size << 0); + tmp102__ |= (pSrc->fixed << 15); + frameshtons(pCtx, pBuf, tmp102__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -16409,9 +17150,9 @@ uint32_t dot11f_pack_ie_vht_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint32_t tmp102__; - uint16_t tmp103__; + uint32_t tmp103__; uint16_t tmp104__; + uint16_t tmp105__; nNeeded += 12; while (pSrc->present) { if (nNeeded > nBuf) @@ -16420,48 +17161,48 @@ uint32_t dot11f_pack_ie_vht_caps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp102__ = 0U; - tmp102__ |= (pSrc->maxMPDULen << 0); - tmp102__ |= (pSrc->supportedChannelWidthSet << 2); - tmp102__ |= (pSrc->ldpcCodingCap << 4); - tmp102__ |= (pSrc->shortGI80MHz << 5); - tmp102__ |= (pSrc->shortGI160and80plus80MHz << 6); - tmp102__ |= (pSrc->txSTBC << 7); - tmp102__ |= (pSrc->rxSTBC << 8); - tmp102__ |= (pSrc->suBeamFormerCap << 11); - tmp102__ |= (pSrc->suBeamformeeCap << 12); - tmp102__ |= (pSrc->csnofBeamformerAntSup << 13); - tmp102__ |= (pSrc->numSoundingDim << 16); - tmp102__ |= (pSrc->muBeamformerCap << 19); - tmp102__ |= (pSrc->muBeamformeeCap << 20); - tmp102__ |= (pSrc->vhtTXOPPS << 21); - tmp102__ |= (pSrc->htcVHTCap << 22); - tmp102__ |= (pSrc->maxAMPDULenExp << 23); - tmp102__ |= (pSrc->vhtLinkAdaptCap << 26); - tmp102__ |= (pSrc->rxAntPattern << 28); - tmp102__ |= (pSrc->txAntPattern << 29); - tmp102__ |= (pSrc->reserved1 << 30); - frameshtonl(pCtx, pBuf, tmp102__, 0); + tmp103__ = 0U; + tmp103__ |= (pSrc->maxMPDULen << 0); + tmp103__ |= (pSrc->supportedChannelWidthSet << 2); + tmp103__ |= (pSrc->ldpcCodingCap << 4); + tmp103__ |= (pSrc->shortGI80MHz << 5); + tmp103__ |= (pSrc->shortGI160and80plus80MHz << 6); + tmp103__ |= (pSrc->txSTBC << 7); + tmp103__ |= (pSrc->rxSTBC << 8); + tmp103__ |= (pSrc->suBeamFormerCap << 11); + tmp103__ |= (pSrc->suBeamformeeCap << 12); + tmp103__ |= (pSrc->csnofBeamformerAntSup << 13); + tmp103__ |= (pSrc->numSoundingDim << 16); + tmp103__ |= (pSrc->muBeamformerCap << 19); + tmp103__ |= (pSrc->muBeamformeeCap << 20); + tmp103__ |= (pSrc->vhtTXOPPS << 21); + tmp103__ |= (pSrc->htcVHTCap << 22); + tmp103__ |= (pSrc->maxAMPDULenExp << 23); + tmp103__ |= (pSrc->vhtLinkAdaptCap << 26); + tmp103__ |= (pSrc->rxAntPattern << 28); + tmp103__ |= (pSrc->txAntPattern << 29); + tmp103__ |= (pSrc->reserved1 << 30); + frameshtonl(pCtx, pBuf, tmp103__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; frameshtons(pCtx, pBuf, pSrc->rxMCSMap, 0); *pnConsumed += 2; pBuf += 2; - tmp103__ = 0U; - tmp103__ |= (pSrc->rxHighSupDataRate << 0); - tmp103__ |= (pSrc->reserved2 << 13); - frameshtons(pCtx, pBuf, tmp103__, 0); + tmp104__ = 0U; + tmp104__ |= (pSrc->rxHighSupDataRate << 0); + tmp104__ |= (pSrc->reserved2 << 13); + frameshtons(pCtx, pBuf, tmp104__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; frameshtons(pCtx, pBuf, pSrc->txMCSMap, 0); *pnConsumed += 2; pBuf += 2; - tmp104__ = 0U; - tmp104__ |= (pSrc->txSupDataRate << 0); - tmp104__ |= (pSrc->reserved3 << 13); - frameshtons(pCtx, pBuf, tmp104__, 0); + tmp105__ = 0U; + tmp105__ |= (pSrc->txSupDataRate << 0); + tmp105__ |= (pSrc->reserved3 << 13); + frameshtons(pCtx, pBuf, tmp105__, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ nBuf -= 2 ; @@ -16521,7 +17262,7 @@ uint32_t dot11f_pack_ie_wmm_schedule(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp105__; + uint16_t tmp106__; nNeeded += 15; while (pSrc->present) { if (nNeeded > nBuf) @@ -16543,12 +17284,12 @@ uint32_t dot11f_pack_ie_wmm_schedule(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp105__ = 0U; - tmp105__ |= (pSrc->aggregation << 0); - tmp105__ |= (pSrc->tsid << 1); - tmp105__ |= (pSrc->direction << 5); - tmp105__ |= (pSrc->reserved << 7); - frameshtons(pCtx, pBuf, tmp105__, 0); + tmp106__ = 0U; + tmp106__ |= (pSrc->aggregation << 0); + tmp106__ |= (pSrc->tsid << 1); + tmp106__ |= (pSrc->direction << 5); + tmp106__ |= (pSrc->reserved << 7); + frameshtons(pCtx, pBuf, tmp106__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -16782,9 +17523,9 @@ uint32_t dot11f_pack_ie_wmmtspec(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp106__; - uint8_t tmp107__; - uint16_t tmp108__; + uint16_t tmp107__; + uint8_t tmp108__; + uint16_t tmp109__; nNeeded += 38; while (pSrc->present) { if (nNeeded > nBuf) @@ -16806,30 +17547,30 @@ uint32_t dot11f_pack_ie_wmmtspec(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp106__ = 0U; - tmp106__ |= (pSrc->traffic_type << 0); - tmp106__ |= (pSrc->tsid << 1); - tmp106__ |= (pSrc->direction << 5); - tmp106__ |= (pSrc->access_policy << 7); - tmp106__ |= (pSrc->aggregation << 9); - tmp106__ |= (pSrc->psb << 10); - tmp106__ |= (pSrc->user_priority << 11); - tmp106__ |= (pSrc->tsinfo_ack_pol << 14); - frameshtons(pCtx, pBuf, tmp106__, 0); + tmp107__ = 0U; + tmp107__ |= (pSrc->traffic_type << 0); + tmp107__ |= (pSrc->tsid << 1); + tmp107__ |= (pSrc->direction << 5); + tmp107__ |= (pSrc->access_policy << 7); + tmp107__ |= (pSrc->aggregation << 9); + tmp107__ |= (pSrc->psb << 10); + tmp107__ |= (pSrc->user_priority << 11); + tmp107__ |= (pSrc->tsinfo_ack_pol << 14); + frameshtons(pCtx, pBuf, tmp107__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp107__ = 0U; - tmp107__ |= (pSrc->tsinfo_rsvd << 0); - tmp107__ |= (pSrc->burst_size_defn << 7); - *pBuf = tmp107__; + tmp108__ = 0U; + tmp108__ |= (pSrc->tsinfo_rsvd << 0); + tmp108__ |= (pSrc->burst_size_defn << 7); + *pBuf = tmp108__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp108__ = 0U; - tmp108__ |= (pSrc->size << 0); - tmp108__ |= (pSrc->fixed << 15); - frameshtons(pCtx, pBuf, tmp108__, 0); + tmp109__ = 0U; + tmp109__ |= (pSrc->size << 0); + tmp109__ |= (pSrc->fixed << 15); + frameshtons(pCtx, pBuf, tmp109__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -16986,8 +17727,8 @@ uint32_t dot11f_pack_ie_neighbor_rpt(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp109__; uint8_t tmp110__; + uint8_t tmp111__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_neighbor_rpt(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -17002,24 +17743,24 @@ uint32_t dot11f_pack_ie_neighbor_rpt(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->bssid, 6); *pnConsumed += 6; pBuf += 6; - tmp109__ = 0U; - tmp109__ |= (pSrc->APReachability << 0); - tmp109__ |= (pSrc->Security << 2); - tmp109__ |= (pSrc->KeyScope << 3); - tmp109__ |= (pSrc->SpecMgmtCap << 4); - tmp109__ |= (pSrc->QosCap << 5); - tmp109__ |= (pSrc->apsd << 6); - tmp109__ |= (pSrc->rrm << 7); - *pBuf = tmp109__; + tmp110__ = 0U; + tmp110__ |= (pSrc->APReachability << 0); + tmp110__ |= (pSrc->Security << 2); + tmp110__ |= (pSrc->KeyScope << 3); + tmp110__ |= (pSrc->SpecMgmtCap << 4); + tmp110__ |= (pSrc->QosCap << 5); + tmp110__ |= (pSrc->apsd << 6); + tmp110__ |= (pSrc->rrm << 7); + *pBuf = tmp110__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp110__ = 0U; - tmp110__ |= (pSrc->DelayedBA << 0); - tmp110__ |= (pSrc->ImmBA << 1); - tmp110__ |= (pSrc->MobilityDomain << 2); - tmp110__ |= (pSrc->reserved << 3); - *pBuf = tmp110__; + tmp111__ = 0U; + tmp111__ |= (pSrc->DelayedBA << 0); + tmp111__ |= (pSrc->ImmBA << 1); + tmp111__ |= (pSrc->MobilityDomain << 2); + tmp111__ |= (pSrc->reserved << 3); + *pBuf = tmp111__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -17417,7 +18158,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 tmp111__; uint8_t tmp112__; uint8_t tmp113__; uint8_t tmp114__; @@ -17425,6 +18165,7 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, uint8_t tmp116__; uint8_t tmp117__; uint8_t tmp118__; + uint8_t tmp119__; nNeeded += 18; while (pSrc->present) { if (nNeeded > nBuf) @@ -17439,76 +18180,76 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved; *pnConsumed += 1; pBuf += 1; - tmp111__ = 0U; - tmp111__ |= (pSrc->acbe_aifsn << 0); - tmp111__ |= (pSrc->acbe_acm << 4); - tmp111__ |= (pSrc->acbe_aci << 5); - tmp111__ |= (pSrc->unused1 << 7); - *pBuf = tmp111__; + tmp112__ = 0U; + tmp112__ |= (pSrc->acbe_aifsn << 0); + tmp112__ |= (pSrc->acbe_acm << 4); + tmp112__ |= (pSrc->acbe_aci << 5); + tmp112__ |= (pSrc->unused1 << 7); + *pBuf = tmp112__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp112__ = 0U; - tmp112__ |= (pSrc->acbe_acwmin << 0); - tmp112__ |= (pSrc->acbe_acwmax << 4); - *pBuf = tmp112__; + tmp113__ = 0U; + tmp113__ |= (pSrc->acbe_acwmin << 0); + tmp113__ |= (pSrc->acbe_acwmax << 4); + *pBuf = tmp113__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp113__ = 0U; - tmp113__ |= (pSrc->acbk_aifsn << 0); - tmp113__ |= (pSrc->acbk_acm << 4); - tmp113__ |= (pSrc->acbk_aci << 5); - tmp113__ |= (pSrc->unused2 << 7); - *pBuf = tmp113__; + tmp114__ = 0U; + tmp114__ |= (pSrc->acbk_aifsn << 0); + tmp114__ |= (pSrc->acbk_acm << 4); + tmp114__ |= (pSrc->acbk_aci << 5); + tmp114__ |= (pSrc->unused2 << 7); + *pBuf = tmp114__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp114__ = 0U; - tmp114__ |= (pSrc->acbk_acwmin << 0); - tmp114__ |= (pSrc->acbk_acwmax << 4); - *pBuf = tmp114__; + tmp115__ = 0U; + tmp115__ |= (pSrc->acbk_acwmin << 0); + tmp115__ |= (pSrc->acbk_acwmax << 4); + *pBuf = tmp115__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp115__ = 0U; - tmp115__ |= (pSrc->acvi_aifsn << 0); - tmp115__ |= (pSrc->acvi_acm << 4); - tmp115__ |= (pSrc->acvi_aci << 5); - tmp115__ |= (pSrc->unused3 << 7); - *pBuf = tmp115__; + tmp116__ = 0U; + tmp116__ |= (pSrc->acvi_aifsn << 0); + tmp116__ |= (pSrc->acvi_acm << 4); + tmp116__ |= (pSrc->acvi_aci << 5); + tmp116__ |= (pSrc->unused3 << 7); + *pBuf = tmp116__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp116__ = 0U; - tmp116__ |= (pSrc->acvi_acwmin << 0); - tmp116__ |= (pSrc->acvi_acwmax << 4); - *pBuf = tmp116__; + tmp117__ = 0U; + tmp117__ |= (pSrc->acvi_acwmin << 0); + tmp117__ |= (pSrc->acvi_acwmax << 4); + *pBuf = tmp117__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp117__ = 0U; - tmp117__ |= (pSrc->acvo_aifsn << 0); - tmp117__ |= (pSrc->acvo_acm << 4); - tmp117__ |= (pSrc->acvo_aci << 5); - tmp117__ |= (pSrc->unused4 << 7); - *pBuf = tmp117__; + tmp118__ = 0U; + tmp118__ |= (pSrc->acvo_aifsn << 0); + tmp118__ |= (pSrc->acvo_acm << 4); + tmp118__ |= (pSrc->acvo_aci << 5); + tmp118__ |= (pSrc->unused4 << 7); + *pBuf = tmp118__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp118__ = 0U; - tmp118__ |= (pSrc->acvo_acwmin << 0); - tmp118__ |= (pSrc->acvo_acwmax << 4); - *pBuf = tmp118__; + tmp119__ = 0U; + tmp119__ |= (pSrc->acvo_acwmin << 0); + tmp119__ |= (pSrc->acvo_acwmax << 4); + *pBuf = tmp119__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -17533,7 +18274,7 @@ uint32_t dot11f_pack_ie_erp_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp119__; + uint8_t tmp120__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -17542,12 +18283,12 @@ uint32_t dot11f_pack_ie_erp_info(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp119__ = 0U; - tmp119__ |= (pSrc->non_erp_present << 0); - tmp119__ |= (pSrc->use_prot << 1); - tmp119__ |= (pSrc->barker_preamble << 2); - tmp119__ |= (pSrc->unused << 3); - *pBuf = tmp119__; + tmp120__ = 0U; + tmp120__ |= (pSrc->non_erp_present << 0); + tmp120__ |= (pSrc->use_prot << 1); + tmp120__ |= (pSrc->barker_preamble << 2); + tmp120__ |= (pSrc->unused << 3); + *pBuf = tmp120__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -17606,7 +18347,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 tmp120__; + uint8_t tmp121__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -17626,10 +18367,10 @@ uint32_t dot11f_pack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, *pBuf = pSrc->mgmt_state; *pnConsumed += 1; pBuf += 1; - tmp120__ = 0U; - tmp120__ |= (pSrc->mbssid_mask << 0); - tmp120__ |= (pSrc->reserved << 3); - *pBuf = tmp120__; + tmp121__ = 0U; + tmp121__ |= (pSrc->mbssid_mask << 0); + tmp121__ |= (pSrc->reserved << 3); + *pBuf = tmp121__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -17980,7 +18721,7 @@ uint32_t dot11f_pack_ie_ft_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp121__; + uint16_t tmp122__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ieft_info(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -17992,10 +18733,10 @@ uint32_t dot11f_pack_ie_ft_info(tpAniSirGlobal pCtx, ++pBuf; --nBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; --nBuf; ++(*pnConsumed); - tmp121__ = 0U; - tmp121__ |= (pSrc->reserved << 0); - tmp121__ |= (pSrc->IECount << 8); - frameshtons(pCtx, pBuf, tmp121__, 0); + tmp122__ = 0U; + tmp122__ |= (pSrc->reserved << 0); + tmp122__ |= (pSrc->IECount << 8); + frameshtons(pCtx, pBuf, tmp122__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -18033,11 +18774,11 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp122__; - uint8_t tmp123__; - uint16_t tmp124__; - uint32_t tmp125__; - uint8_t tmp126__; + uint16_t tmp123__; + uint8_t tmp124__; + uint16_t tmp125__; + uint32_t tmp126__; + uint8_t tmp127__; nNeeded += (pSrc->num_rsvd + 26); while (pSrc->present) { if (nNeeded > nBuf) @@ -18046,77 +18787,77 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp122__ = 0U; - tmp122__ |= (pSrc->advCodingCap << 0); - tmp122__ |= (pSrc->supportedChannelWidthSet << 1); - tmp122__ |= (pSrc->mimoPowerSave << 2); - tmp122__ |= (pSrc->greenField << 4); - tmp122__ |= (pSrc->shortGI20MHz << 5); - tmp122__ |= (pSrc->shortGI40MHz << 6); - tmp122__ |= (pSrc->txSTBC << 7); - tmp122__ |= (pSrc->rxSTBC << 8); - tmp122__ |= (pSrc->delayedBA << 10); - tmp122__ |= (pSrc->maximalAMSDUsize << 11); - tmp122__ |= (pSrc->dsssCckMode40MHz << 12); - tmp122__ |= (pSrc->psmp << 13); - tmp122__ |= (pSrc->stbcControlFrame << 14); - tmp122__ |= (pSrc->lsigTXOPProtection << 15); - frameshtons(pCtx, pBuf, tmp122__, 0); + tmp123__ = 0U; + tmp123__ |= (pSrc->advCodingCap << 0); + tmp123__ |= (pSrc->supportedChannelWidthSet << 1); + tmp123__ |= (pSrc->mimoPowerSave << 2); + tmp123__ |= (pSrc->greenField << 4); + tmp123__ |= (pSrc->shortGI20MHz << 5); + tmp123__ |= (pSrc->shortGI40MHz << 6); + tmp123__ |= (pSrc->txSTBC << 7); + tmp123__ |= (pSrc->rxSTBC << 8); + tmp123__ |= (pSrc->delayedBA << 10); + tmp123__ |= (pSrc->maximalAMSDUsize << 11); + tmp123__ |= (pSrc->dsssCckMode40MHz << 12); + tmp123__ |= (pSrc->psmp << 13); + tmp123__ |= (pSrc->stbcControlFrame << 14); + tmp123__ |= (pSrc->lsigTXOPProtection << 15); + frameshtons(pCtx, pBuf, tmp123__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp123__ = 0U; - tmp123__ |= (pSrc->maxRxAMPDUFactor << 0); - tmp123__ |= (pSrc->mpduDensity << 2); - tmp123__ |= (pSrc->reserved1 << 5); - *pBuf = tmp123__; + tmp124__ = 0U; + tmp124__ |= (pSrc->maxRxAMPDUFactor << 0); + tmp124__ |= (pSrc->mpduDensity << 2); + tmp124__ |= (pSrc->reserved1 << 5); + *pBuf = tmp124__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; DOT11F_MEMCPY(pCtx, pBuf, pSrc->supportedMCSSet, 16); *pnConsumed += 16; pBuf += 16; - tmp124__ = 0U; - tmp124__ |= (pSrc->pco << 0); - tmp124__ |= (pSrc->transitionTime << 1); - tmp124__ |= (pSrc->reserved2 << 3); - tmp124__ |= (pSrc->mcsFeedback << 8); - tmp124__ |= (pSrc->reserved3 << 10); - frameshtons(pCtx, pBuf, tmp124__, 0); + tmp125__ = 0U; + tmp125__ |= (pSrc->pco << 0); + tmp125__ |= (pSrc->transitionTime << 1); + tmp125__ |= (pSrc->reserved2 << 3); + tmp125__ |= (pSrc->mcsFeedback << 8); + tmp125__ |= (pSrc->reserved3 << 10); + frameshtons(pCtx, pBuf, tmp125__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp125__ = 0U; - tmp125__ |= (pSrc->txBF << 0); - tmp125__ |= (pSrc->rxStaggeredSounding << 1); - tmp125__ |= (pSrc->txStaggeredSounding << 2); - tmp125__ |= (pSrc->rxZLF << 3); - tmp125__ |= (pSrc->txZLF << 4); - tmp125__ |= (pSrc->implicitTxBF << 5); - tmp125__ |= (pSrc->calibration << 6); - tmp125__ |= (pSrc->explicitCSITxBF << 8); - tmp125__ |= (pSrc->explicitUncompressedSteeringMatrix << 9); - tmp125__ |= (pSrc->explicitBFCSIFeedback << 10); - tmp125__ |= (pSrc->explicitUncompressedSteeringMatrixFeedback << 13); - tmp125__ |= (pSrc->explicitCompressedSteeringMatrixFeedback << 16); - tmp125__ |= (pSrc->csiNumBFAntennae << 19); - tmp125__ |= (pSrc->uncompressedSteeringMatrixBFAntennae << 21); - tmp125__ |= (pSrc->compressedSteeringMatrixBFAntennae << 23); - tmp125__ |= (pSrc->reserved4 << 25); - frameshtonl(pCtx, pBuf, tmp125__, 0); + tmp126__ = 0U; + tmp126__ |= (pSrc->txBF << 0); + tmp126__ |= (pSrc->rxStaggeredSounding << 1); + tmp126__ |= (pSrc->txStaggeredSounding << 2); + tmp126__ |= (pSrc->rxZLF << 3); + tmp126__ |= (pSrc->txZLF << 4); + tmp126__ |= (pSrc->implicitTxBF << 5); + tmp126__ |= (pSrc->calibration << 6); + tmp126__ |= (pSrc->explicitCSITxBF << 8); + tmp126__ |= (pSrc->explicitUncompressedSteeringMatrix << 9); + tmp126__ |= (pSrc->explicitBFCSIFeedback << 10); + tmp126__ |= (pSrc->explicitUncompressedSteeringMatrixFeedback << 13); + tmp126__ |= (pSrc->explicitCompressedSteeringMatrixFeedback << 16); + tmp126__ |= (pSrc->csiNumBFAntennae << 19); + tmp126__ |= (pSrc->uncompressedSteeringMatrixBFAntennae << 21); + tmp126__ |= (pSrc->compressedSteeringMatrixBFAntennae << 23); + tmp126__ |= (pSrc->reserved4 << 25); + frameshtonl(pCtx, pBuf, tmp126__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; - tmp126__ = 0U; - tmp126__ |= (pSrc->antennaSelection << 0); - tmp126__ |= (pSrc->explicitCSIFeedbackTx << 1); - tmp126__ |= (pSrc->antennaIndicesFeedbackTx << 2); - tmp126__ |= (pSrc->explicitCSIFeedback << 3); - tmp126__ |= (pSrc->antennaIndicesFeedback << 4); - tmp126__ |= (pSrc->rxAS << 5); - tmp126__ |= (pSrc->txSoundingPPDUs << 6); - tmp126__ |= (pSrc->reserved5 << 7); - *pBuf = tmp126__; + tmp127__ = 0U; + tmp127__ |= (pSrc->antennaSelection << 0); + tmp127__ |= (pSrc->explicitCSIFeedbackTx << 1); + tmp127__ |= (pSrc->antennaIndicesFeedbackTx << 2); + tmp127__ |= (pSrc->explicitCSIFeedback << 3); + tmp127__ |= (pSrc->antennaIndicesFeedback << 4); + tmp127__ |= (pSrc->rxAS << 5); + tmp127__ |= (pSrc->txSoundingPPDUs << 6); + tmp127__ |= (pSrc->reserved5 << 7); + *pBuf = tmp127__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -18141,9 +18882,9 @@ uint32_t dot11f_pack_ie_ht_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp127__; - uint16_t tmp128__; + uint8_t tmp128__; uint16_t tmp129__; + uint16_t tmp130__; nNeeded += (pSrc->num_rsvd + 22); while (pSrc->present) { if (nNeeded > nBuf) @@ -18155,35 +18896,35 @@ uint32_t dot11f_pack_ie_ht_info(tpAniSirGlobal pCtx, *pBuf = pSrc->primaryChannel; *pnConsumed += 1; pBuf += 1; - tmp127__ = 0U; - tmp127__ |= (pSrc->secondaryChannelOffset << 0); - tmp127__ |= (pSrc->recommendedTxWidthSet << 2); - tmp127__ |= (pSrc->rifsMode << 3); - tmp127__ |= (pSrc->controlledAccessOnly << 4); - tmp127__ |= (pSrc->serviceIntervalGranularity << 5); - *pBuf = tmp127__; + tmp128__ = 0U; + tmp128__ |= (pSrc->secondaryChannelOffset << 0); + tmp128__ |= (pSrc->recommendedTxWidthSet << 2); + tmp128__ |= (pSrc->rifsMode << 3); + tmp128__ |= (pSrc->controlledAccessOnly << 4); + tmp128__ |= (pSrc->serviceIntervalGranularity << 5); + *pBuf = tmp128__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp128__ = 0U; - tmp128__ |= (pSrc->opMode << 0); - tmp128__ |= (pSrc->nonGFDevicesPresent << 2); - tmp128__ |= (pSrc->transmitBurstLimit << 3); - tmp128__ |= (pSrc->obssNonHTStaPresent << 4); - tmp128__ |= (pSrc->reserved << 5); - frameshtons(pCtx, pBuf, tmp128__, 0); + tmp129__ = 0U; + tmp129__ |= (pSrc->opMode << 0); + tmp129__ |= (pSrc->nonGFDevicesPresent << 2); + tmp129__ |= (pSrc->transmitBurstLimit << 3); + tmp129__ |= (pSrc->obssNonHTStaPresent << 4); + tmp129__ |= (pSrc->reserved << 5); + frameshtons(pCtx, pBuf, tmp129__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp129__ = 0U; - tmp129__ |= (pSrc->basicSTBCMCS << 0); - tmp129__ |= (pSrc->dualCTSProtection << 7); - tmp129__ |= (pSrc->secondaryBeacon << 8); - tmp129__ |= (pSrc->lsigTXOPProtectionFullSupport << 9); - tmp129__ |= (pSrc->pcoActive << 10); - tmp129__ |= (pSrc->pcoPhase << 11); - tmp129__ |= (pSrc->reserved2 << 12); - frameshtons(pCtx, pBuf, tmp129__, 0); + tmp130__ = 0U; + tmp130__ |= (pSrc->basicSTBCMCS << 0); + tmp130__ |= (pSrc->dualCTSProtection << 7); + tmp130__ |= (pSrc->secondaryBeacon << 8); + tmp130__ |= (pSrc->lsigTXOPProtectionFullSupport << 9); + tmp130__ |= (pSrc->pcoActive << 10); + tmp130__ |= (pSrc->pcoPhase << 11); + tmp130__ |= (pSrc->reserved2 << 12); + frameshtons(pCtx, pBuf, tmp130__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -18315,9 +19056,9 @@ uint32_t dot11f_pack_ie_measurement_report(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__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_measurement_report(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -18332,12 +19073,12 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, *pBuf = pSrc->token; *pnConsumed += 1; pBuf += 1; - tmp130__ = 0U; - tmp130__ |= (pSrc->late << 0); - tmp130__ |= (pSrc->incapable << 1); - tmp130__ |= (pSrc->refused << 2); - tmp130__ |= (pSrc->unused << 3); - *pBuf = tmp130__; + tmp131__ = 0U; + tmp131__ |= (pSrc->late << 0); + tmp131__ |= (pSrc->incapable << 1); + tmp131__ |= (pSrc->refused << 2); + tmp131__ |= (pSrc->unused << 3); + *pBuf = tmp131__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -18356,14 +19097,14 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Basic.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp131__ = 0U; - tmp131__ |= (pSrc->report.Basic.bss << 0); - tmp131__ |= (pSrc->report.Basic.ofdm_preamble << 1); - tmp131__ |= (pSrc->report.Basic.unid_signal << 2); - tmp131__ |= (pSrc->report.Basic.rader << 3); - tmp131__ |= (pSrc->report.Basic.unmeasured << 4); - tmp131__ |= (pSrc->report.Basic.unused << 5); - *pBuf = tmp131__; + tmp132__ = 0U; + tmp132__ |= (pSrc->report.Basic.bss << 0); + tmp132__ |= (pSrc->report.Basic.ofdm_preamble << 1); + tmp132__ |= (pSrc->report.Basic.unid_signal << 2); + tmp132__ |= (pSrc->report.Basic.rader << 3); + tmp132__ |= (pSrc->report.Basic.unmeasured << 4); + tmp132__ |= (pSrc->report.Basic.unused << 5); + *pBuf = tmp132__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18430,10 +19171,10 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Beacon.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp132__ = 0U; - tmp132__ |= (pSrc->report.Beacon.condensed_PHY << 0); - tmp132__ |= (pSrc->report.Beacon.reported_frame_type << 7); - *pBuf = tmp132__; + tmp133__ = 0U; + tmp133__ |= (pSrc->report.Beacon.condensed_PHY << 0); + tmp133__ |= (pSrc->report.Beacon.reported_frame_type << 7); + *pBuf = tmp133__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -18482,7 +19223,7 @@ uint32_t dot11f_pack_ie_measurement_request(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp133__; + uint8_t tmp134__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_measurement_request(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -18497,14 +19238,14 @@ uint32_t dot11f_pack_ie_measurement_request(tpAniSirGlobal pCtx, *pBuf = pSrc->measurement_token; *pnConsumed += 1; pBuf += 1; - tmp133__ = 0U; - tmp133__ |= (pSrc->parallel << 0); - tmp133__ |= (pSrc->enable << 1); - tmp133__ |= (pSrc->request << 2); - tmp133__ |= (pSrc->report << 3); - tmp133__ |= (pSrc->durationMandatory << 4); - tmp133__ |= (pSrc->unused << 5); - *pBuf = tmp133__; + tmp134__ = 0U; + tmp134__ |= (pSrc->parallel << 0); + tmp134__ |= (pSrc->enable << 1); + tmp134__ |= (pSrc->request << 2); + tmp134__ |= (pSrc->report << 3); + tmp134__ |= (pSrc->durationMandatory << 4); + tmp134__ |= (pSrc->unused << 5); + *pBuf = tmp134__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -18618,7 +19359,7 @@ uint32_t dot11f_pack_ie_mobility_domain(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp134__; + uint8_t tmp135__; nNeeded += 3; while (pSrc->present) { if (nNeeded > nBuf) @@ -18630,11 +19371,11 @@ uint32_t dot11f_pack_ie_mobility_domain(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->MDID, 0); *pnConsumed += 2; pBuf += 2; - tmp134__ = 0U; - tmp134__ |= (pSrc->overDSCap << 0); - tmp134__ |= (pSrc->resourceReqCap << 1); - tmp134__ |= (pSrc->reserved << 2); - *pBuf = tmp134__; + tmp135__ = 0U; + tmp135__ |= (pSrc->overDSCap << 0); + tmp135__ |= (pSrc->resourceReqCap << 1); + tmp135__ |= (pSrc->reserved << 2); + *pBuf = tmp135__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -18656,8 +19397,8 @@ uint32_t dot11f_pack_ie_neighbor_report(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp135__; uint8_t tmp136__; + uint8_t tmp137__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_neighbor_report(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -18672,24 +19413,24 @@ uint32_t dot11f_pack_ie_neighbor_report(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->bssid, 6); *pnConsumed += 6; pBuf += 6; - tmp135__ = 0U; - tmp135__ |= (pSrc->APReachability << 0); - tmp135__ |= (pSrc->Security << 2); - tmp135__ |= (pSrc->KeyScope << 3); - tmp135__ |= (pSrc->SpecMgmtCap << 4); - tmp135__ |= (pSrc->QosCap << 5); - tmp135__ |= (pSrc->apsd << 6); - tmp135__ |= (pSrc->rrm << 7); - *pBuf = tmp135__; + tmp136__ = 0U; + tmp136__ |= (pSrc->APReachability << 0); + tmp136__ |= (pSrc->Security << 2); + tmp136__ |= (pSrc->KeyScope << 3); + tmp136__ |= (pSrc->SpecMgmtCap << 4); + tmp136__ |= (pSrc->QosCap << 5); + tmp136__ |= (pSrc->apsd << 6); + tmp136__ |= (pSrc->rrm << 7); + *pBuf = tmp136__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp136__ = 0U; - tmp136__ |= (pSrc->DelayedBA << 0); - tmp136__ |= (pSrc->ImmBA << 1); - tmp136__ |= (pSrc->MobilityDomain << 2); - tmp136__ |= (pSrc->reserved << 3); - *pBuf = tmp136__; + tmp137__ = 0U; + tmp137__ |= (pSrc->DelayedBA << 0); + tmp137__ |= (pSrc->ImmBA << 1); + tmp137__ |= (pSrc->MobilityDomain << 2); + tmp137__ |= (pSrc->reserved << 3); + *pBuf = tmp137__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -18777,7 +19518,7 @@ uint32_t dot11f_pack_ie_operating_mode(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp137__; + uint8_t tmp138__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -18786,12 +19527,12 @@ uint32_t dot11f_pack_ie_operating_mode(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp137__ = 0U; - tmp137__ |= (pSrc->chanWidth << 0); - tmp137__ |= (pSrc->reserved << 2); - tmp137__ |= (pSrc->rxNSS << 4); - tmp137__ |= (pSrc->rxNSSType << 7); - *pBuf = tmp137__; + tmp138__ = 0U; + tmp138__ |= (pSrc->chanWidth << 0); + tmp138__ |= (pSrc->reserved << 2); + tmp138__ |= (pSrc->rxNSS << 4); + tmp138__ |= (pSrc->rxNSSType << 7); + *pBuf = tmp138__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -19266,7 +20007,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 tmp138__; + uint8_t tmp139__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -19275,13 +20016,13 @@ uint32_t dot11f_pack_ie_pu_buffer_status(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp138__ = 0U; - tmp138__ |= (pSrc->ac_bk_traffic_aval << 0); - tmp138__ |= (pSrc->ac_be_traffic_aval << 1); - tmp138__ |= (pSrc->ac_vi_traffic_aval << 2); - tmp138__ |= (pSrc->ac_vo_traffic_aval << 3); - tmp138__ |= (pSrc->reserved << 4); - *pBuf = tmp138__; + tmp139__ = 0U; + tmp139__ |= (pSrc->ac_bk_traffic_aval << 0); + tmp139__ |= (pSrc->ac_be_traffic_aval << 1); + tmp139__ |= (pSrc->ac_vi_traffic_aval << 2); + tmp139__ |= (pSrc->ac_vo_traffic_aval << 3); + tmp139__ |= (pSrc->reserved << 4); + *pBuf = tmp139__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -19474,7 +20215,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 tmp139__; + uint8_t tmp140__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -19483,13 +20224,13 @@ uint32_t dot11f_pack_ie_qos_caps_ap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp139__ = 0U; - tmp139__ |= (pSrc->count << 0); - tmp139__ |= (pSrc->qack << 4); - tmp139__ |= (pSrc->qreq << 5); - tmp139__ |= (pSrc->txopreq << 6); - tmp139__ |= (pSrc->reserved << 7); - *pBuf = tmp139__; + tmp140__ = 0U; + tmp140__ |= (pSrc->count << 0); + tmp140__ |= (pSrc->qack << 4); + tmp140__ |= (pSrc->qreq << 5); + tmp140__ |= (pSrc->txopreq << 6); + tmp140__ |= (pSrc->reserved << 7); + *pBuf = tmp140__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -19511,7 +20252,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 tmp140__; + uint8_t tmp141__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -19520,15 +20261,15 @@ uint32_t dot11f_pack_ie_qos_caps_station(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp140__ = 0U; - tmp140__ |= (pSrc->acvo_uapsd << 0); - tmp140__ |= (pSrc->acvi_uapsd << 1); - tmp140__ |= (pSrc->acbk_uapsd << 2); - tmp140__ |= (pSrc->acbe_uapsd << 3); - tmp140__ |= (pSrc->qack << 4); - tmp140__ |= (pSrc->max_sp_length << 5); - tmp140__ |= (pSrc->more_data_ack << 7); - *pBuf = tmp140__; + tmp141__ = 0U; + tmp141__ |= (pSrc->acvo_uapsd << 0); + tmp141__ |= (pSrc->acvi_uapsd << 1); + tmp141__ |= (pSrc->acbk_uapsd << 2); + tmp141__ |= (pSrc->acbe_uapsd << 3); + tmp141__ |= (pSrc->qack << 4); + tmp141__ |= (pSrc->max_sp_length << 5); + tmp141__ |= (pSrc->more_data_ack << 7); + *pBuf = tmp141__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -20165,7 +20906,7 @@ uint32_t dot11f_pack_ie_wapi(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp141__; + uint16_t tmp142__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_iewapi(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -20195,10 +20936,10 @@ uint32_t dot11f_pack_ie_wapi(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->multicast_cipher_suite, 4); *pnConsumed += 4; pBuf += 4; - tmp141__ = 0U; - tmp141__ |= (pSrc->preauth << 0); - tmp141__ |= (pSrc->reserved << 1); - frameshtons(pCtx, pBuf, tmp141__, 0); + tmp142__ = 0U; + tmp142__ |= (pSrc->preauth << 0); + tmp142__ |= (pSrc->reserved << 1); + frameshtons(pCtx, pBuf, tmp142__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -20338,7 +21079,7 @@ uint32_t dot11f_pack_ie_wmm_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp142__; + uint8_t tmp143__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -20360,13 +21101,13 @@ uint32_t dot11f_pack_ie_wmm_caps(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp142__ = 0U; - tmp142__ |= (pSrc->reserved << 0); - tmp142__ |= (pSrc->qack << 4); - tmp142__ |= (pSrc->queue_request << 5); - tmp142__ |= (pSrc->txop_request << 6); - tmp142__ |= (pSrc->more_ack << 7); - *pBuf = tmp142__; + tmp143__ = 0U; + tmp143__ |= (pSrc->reserved << 0); + tmp143__ |= (pSrc->qack << 4); + tmp143__ |= (pSrc->queue_request << 5); + tmp143__ |= (pSrc->txop_request << 6); + tmp143__ |= (pSrc->more_ack << 7); + *pBuf = tmp143__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -20384,54 +21125,6 @@ uint32_t dot11f_pack_ie_wmm_info_ap(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed) -{ - uint8_t *pIeLen = 0; - uint32_t nConsumedOnEntry = *pnConsumed; - uint32_t nNeeded = 0U; - uint8_t tmp143__; - nNeeded += 2; - while (pSrc->present) { - if (nNeeded > nBuf) - return DOT11F_BUFFER_OVERFLOW; - *pBuf = 221; - ++pBuf; ++(*pnConsumed); - pIeLen = pBuf; - ++pBuf; ++(*pnConsumed); - *pBuf = 0x0; - ++pBuf; ++(*pnConsumed); - *pBuf = 0x50; - ++pBuf; ++(*pnConsumed); - *pBuf = 0xf2; - ++pBuf; ++(*pnConsumed); - *pBuf = 0x2; - ++pBuf; ++(*pnConsumed); - *pBuf = 0x0; - ++pBuf; ++(*pnConsumed); - *pBuf = pSrc->version; - *pnConsumed += 1; - pBuf += 1; - tmp143__ = 0U; - tmp143__ |= (pSrc->param_set_count << 0); - tmp143__ |= (pSrc->reserved << 4); - tmp143__ |= (pSrc->uapsd << 7); - *pBuf = tmp143__; - *pnConsumed += 1; - /* fieldsEndFlag = 1 */ - nBuf -= 1 ; - break; - } - (void)pCtx; - if (pIeLen) { - *pIeLen = *pnConsumed - nConsumedOnEntry - 2; - } - return DOT11F_PARSE_SUCCESS; -} /* End dot11f_pack_ie_wmm_info_ap. */ - -uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, - tDot11fIEWMMInfoStation *pSrc, - uint8_t *pBuf, - uint32_t nBuf, - uint32_t *pnConsumed) { uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; @@ -20459,13 +21152,9 @@ uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; tmp144__ = 0U; - tmp144__ |= (pSrc->acvo_uapsd << 0); - tmp144__ |= (pSrc->acvi_uapsd << 1); - tmp144__ |= (pSrc->acbk_uapsd << 2); - tmp144__ |= (pSrc->acbe_uapsd << 3); - tmp144__ |= (pSrc->reserved1 << 4); - tmp144__ |= (pSrc->max_sp_length << 5); - tmp144__ |= (pSrc->reserved2 << 7); + tmp144__ |= (pSrc->param_set_count << 0); + tmp144__ |= (pSrc->reserved << 4); + tmp144__ |= (pSrc->uapsd << 7); *pBuf = tmp144__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ @@ -20477,6 +21166,58 @@ uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, *pIeLen = *pnConsumed - nConsumedOnEntry - 2; } return DOT11F_PARSE_SUCCESS; +} /* End dot11f_pack_ie_wmm_info_ap. */ + +uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, + tDot11fIEWMMInfoStation *pSrc, + uint8_t *pBuf, + uint32_t nBuf, + uint32_t *pnConsumed) +{ + uint8_t *pIeLen = 0; + uint32_t nConsumedOnEntry = *pnConsumed; + uint32_t nNeeded = 0U; + uint8_t tmp145__; + nNeeded += 2; + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 221; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + *pBuf = 0x0; + ++pBuf; ++(*pnConsumed); + *pBuf = 0x50; + ++pBuf; ++(*pnConsumed); + *pBuf = 0xf2; + ++pBuf; ++(*pnConsumed); + *pBuf = 0x2; + ++pBuf; ++(*pnConsumed); + *pBuf = 0x0; + ++pBuf; ++(*pnConsumed); + *pBuf = pSrc->version; + *pnConsumed += 1; + pBuf += 1; + tmp145__ = 0U; + tmp145__ |= (pSrc->acvo_uapsd << 0); + tmp145__ |= (pSrc->acvi_uapsd << 1); + tmp145__ |= (pSrc->acbk_uapsd << 2); + tmp145__ |= (pSrc->acbe_uapsd << 3); + tmp145__ |= (pSrc->reserved1 << 4); + tmp145__ |= (pSrc->max_sp_length << 5); + tmp145__ |= (pSrc->reserved2 << 7); + *pBuf = tmp145__; + *pnConsumed += 1; + /* fieldsEndFlag = 1 */ + nBuf -= 1 ; + break; + } + (void)pCtx; + if (pIeLen) { + *pIeLen = *pnConsumed - nConsumedOnEntry - 2; + } + return DOT11F_PARSE_SUCCESS; } /* End dot11f_pack_ie_wmm_info_station. */ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, @@ -20488,7 +21229,6 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp145__; uint8_t tmp146__; uint8_t tmp147__; uint8_t tmp148__; @@ -20496,6 +21236,7 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t tmp150__; uint8_t tmp151__; uint8_t tmp152__; + uint8_t tmp153__; nNeeded += 19; while (pSrc->present) { if (nNeeded > nBuf) @@ -20523,76 +21264,76 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved2; *pnConsumed += 1; pBuf += 1; - tmp145__ = 0U; - tmp145__ |= (pSrc->acbe_aifsn << 0); - tmp145__ |= (pSrc->acbe_acm << 4); - tmp145__ |= (pSrc->acbe_aci << 5); - tmp145__ |= (pSrc->unused1 << 7); - *pBuf = tmp145__; + tmp146__ = 0U; + tmp146__ |= (pSrc->acbe_aifsn << 0); + tmp146__ |= (pSrc->acbe_acm << 4); + tmp146__ |= (pSrc->acbe_aci << 5); + tmp146__ |= (pSrc->unused1 << 7); + *pBuf = tmp146__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp146__ = 0U; - tmp146__ |= (pSrc->acbe_acwmin << 0); - tmp146__ |= (pSrc->acbe_acwmax << 4); - *pBuf = tmp146__; + tmp147__ = 0U; + tmp147__ |= (pSrc->acbe_acwmin << 0); + tmp147__ |= (pSrc->acbe_acwmax << 4); + *pBuf = tmp147__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp147__ = 0U; - tmp147__ |= (pSrc->acbk_aifsn << 0); - tmp147__ |= (pSrc->acbk_acm << 4); - tmp147__ |= (pSrc->acbk_aci << 5); - tmp147__ |= (pSrc->unused2 << 7); - *pBuf = tmp147__; + tmp148__ = 0U; + tmp148__ |= (pSrc->acbk_aifsn << 0); + tmp148__ |= (pSrc->acbk_acm << 4); + tmp148__ |= (pSrc->acbk_aci << 5); + tmp148__ |= (pSrc->unused2 << 7); + *pBuf = tmp148__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp148__ = 0U; - tmp148__ |= (pSrc->acbk_acwmin << 0); - tmp148__ |= (pSrc->acbk_acwmax << 4); - *pBuf = tmp148__; + tmp149__ = 0U; + tmp149__ |= (pSrc->acbk_acwmin << 0); + tmp149__ |= (pSrc->acbk_acwmax << 4); + *pBuf = tmp149__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp149__ = 0U; - tmp149__ |= (pSrc->acvi_aifsn << 0); - tmp149__ |= (pSrc->acvi_acm << 4); - tmp149__ |= (pSrc->acvi_aci << 5); - tmp149__ |= (pSrc->unused3 << 7); - *pBuf = tmp149__; + tmp150__ = 0U; + tmp150__ |= (pSrc->acvi_aifsn << 0); + tmp150__ |= (pSrc->acvi_acm << 4); + tmp150__ |= (pSrc->acvi_aci << 5); + tmp150__ |= (pSrc->unused3 << 7); + *pBuf = tmp150__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp150__ = 0U; - tmp150__ |= (pSrc->acvi_acwmin << 0); - tmp150__ |= (pSrc->acvi_acwmax << 4); - *pBuf = tmp150__; + tmp151__ = 0U; + tmp151__ |= (pSrc->acvi_acwmin << 0); + tmp151__ |= (pSrc->acvi_acwmax << 4); + *pBuf = tmp151__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); *pnConsumed += 2; pBuf += 2; - tmp151__ = 0U; - tmp151__ |= (pSrc->acvo_aifsn << 0); - tmp151__ |= (pSrc->acvo_acm << 4); - tmp151__ |= (pSrc->acvo_aci << 5); - tmp151__ |= (pSrc->unused4 << 7); - *pBuf = tmp151__; + tmp152__ = 0U; + tmp152__ |= (pSrc->acvo_aifsn << 0); + tmp152__ |= (pSrc->acvo_acm << 4); + tmp152__ |= (pSrc->acvo_aci << 5); + tmp152__ |= (pSrc->unused4 << 7); + *pBuf = tmp152__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp152__ = 0U; - tmp152__ |= (pSrc->acvo_acwmin << 0); - tmp152__ |= (pSrc->acvo_acwmax << 4); - *pBuf = tmp152__; + tmp153__ = 0U; + tmp153__ |= (pSrc->acvo_acwmin << 0); + tmp153__ |= (pSrc->acvo_acwmax << 4); + *pBuf = tmp153__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -21178,6 +21919,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 tmp154__; + nNeeded += (pSrc->num_variable_data + 2); + while (pSrc->present) { + if (nNeeded > nBuf) + return DOT11F_BUFFER_OVERFLOW; + *pBuf = 240; + ++pBuf; ++(*pnConsumed); + pIeLen = pBuf; + ++pBuf; ++(*pnConsumed); + tmp154__ = 0U; + tmp154__ |= (pSrc->public_key_identifiers_cnt << 0); + tmp154__ |= (pSrc->realm_identifiers_cnt << 3); + tmp154__ |= (pSrc->is_ip_config_supported << 6); + tmp154__ |= (pSrc->is_cache_id_present << 7); + tmp154__ |= (pSrc->is_hessid_present << 8); + tmp154__ |= (pSrc->is_fils_sk_auth_supported << 9); + tmp154__ |= (pSrc->is_fils_sk_auth_pfs_supported << 10); + tmp154__ |= (pSrc->is_pk_auth_supported << 11); + tmp154__ |= (pSrc->reserved << 12); + frameshtons(pCtx, pBuf, tmp154__, 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, @@ -21187,7 +22232,7 @@ uint32_t dot11f_pack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp153__; + uint8_t tmp155__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_hs20vendor_ie(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -21207,12 +22252,12 @@ uint32_t dot11f_pack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); *pBuf = 0x10; ++pBuf; ++(*pnConsumed); - tmp153__ = 0U; - tmp153__ |= (pSrc->dgaf_dis << 0); - tmp153__ |= (pSrc->hs_id_present << 1); - tmp153__ |= (pSrc->reserved << 3); - tmp153__ |= (pSrc->release_num << 4); - *pBuf = tmp153__; + tmp155__ = 0U; + tmp155__ |= (pSrc->dgaf_dis << 0); + tmp155__ |= (pSrc->hs_id_present << 1); + tmp155__ |= (pSrc->reserved << 3); + tmp155__ |= (pSrc->release_num << 4); + *pBuf = tmp155__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -21250,7 +22295,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 tmp154__; + uint8_t tmp156__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -21259,14 +22304,14 @@ uint32_t dot11f_pack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp154__ = 0U; - tmp154__ |= (pSrc->info_request << 0); - tmp154__ |= (pSrc->forty_mhz_intolerant << 1); - tmp154__ |= (pSrc->twenty_mhz_bsswidth_req << 2); - tmp154__ |= (pSrc->obss_scan_exemption_req << 3); - tmp154__ |= (pSrc->obss_scan_exemption_grant << 4); - tmp154__ |= (pSrc->unused << 5); - *pBuf = tmp154__; + tmp156__ = 0U; + tmp156__ |= (pSrc->info_request << 0); + tmp156__ |= (pSrc->forty_mhz_intolerant << 1); + tmp156__ |= (pSrc->twenty_mhz_bsswidth_req << 2); + tmp156__ |= (pSrc->obss_scan_exemption_req << 3); + tmp156__ |= (pSrc->obss_scan_exemption_grant << 4); + tmp156__ |= (pSrc->unused << 5); + *pBuf = tmp156__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -21349,12 +22394,12 @@ uint32_t dot11f_pack_ie_vendor_he_cap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint32_t tmp155__; - uint8_t tmp156__; uint32_t tmp157__; - uint32_t tmp158__; - uint8_t tmp159__; - uint16_t tmp160__; + uint8_t tmp158__; + uint32_t tmp159__; + uint32_t tmp160__; + uint8_t tmp161__; + uint16_t tmp162__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_vendor_he_cap(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -21374,105 +22419,101 @@ uint32_t dot11f_pack_ie_vendor_he_cap(tpAniSirGlobal pCtx, ++pBuf; --nBuf; ++(*pnConsumed); *pBuf = 0x1; ++pBuf; --nBuf; ++(*pnConsumed); - tmp155__ = 0U; - tmp155__ |= (pSrc->htc_he << 0); - tmp155__ |= (pSrc->twt_request << 1); - tmp155__ |= (pSrc->twt_responder << 2); - tmp155__ |= (pSrc->fragmentation << 3); - tmp155__ |= (pSrc->max_num_frag_msdu << 5); - tmp155__ |= (pSrc->min_frag_size << 8); - tmp155__ |= (pSrc->trigger_frm_mac_pad << 10); - tmp155__ |= (pSrc->multi_tid_aggr << 12); - tmp155__ |= (pSrc->he_link_adaptation << 15); - tmp155__ |= (pSrc->all_ack << 17); - tmp155__ |= (pSrc->ul_mu_rsp_sched << 18); - tmp155__ |= (pSrc->a_bsr << 19); - tmp155__ |= (pSrc->broadcast_twt << 20); - tmp155__ |= (pSrc->ba_32bit_bitmap << 21); - tmp155__ |= (pSrc->mu_cascade << 22); - tmp155__ |= (pSrc->ack_enabled_multitid << 23); - tmp155__ |= (pSrc->dl_mu_ba << 24); - tmp155__ |= (pSrc->omi_a_ctrl << 25); - tmp155__ |= (pSrc->ofdma_ra << 26); - tmp155__ |= (pSrc->max_ampdu_len << 27); - tmp155__ |= (pSrc->amsdu_frag << 29); - tmp155__ |= (pSrc->flex_twt_sched << 30); - tmp155__ |= (pSrc->rx_ctrl_frame << 31); - frameshtonl(pCtx, pBuf, tmp155__, 0); - *pnConsumed += 4; - pBuf += 4; - nBuf -= 4 ; - tmp156__ = 0U; - tmp156__ |= (pSrc->bsrp_ampdu_aggr << 0); - tmp156__ |= (pSrc->qtp << 1); - tmp156__ |= (pSrc->a_bqr << 2); - tmp156__ |= (pSrc->reserved1 << 3); - *pBuf = tmp156__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; tmp157__ = 0U; - tmp157__ |= (pSrc->dual_band << 0); - tmp157__ |= (pSrc->chan_width << 1); - tmp157__ |= (pSrc->rx_pream_puncturing << 8); - tmp157__ |= (pSrc->device_class << 12); - tmp157__ |= (pSrc->ldpc_coding << 13); - tmp157__ |= (pSrc->he_ltf_gi_ppdu << 14); - tmp157__ |= (pSrc->he_ltf_gi_ndp << 16); - tmp157__ |= (pSrc->stbc << 18); - tmp157__ |= (pSrc->doppler << 20); - tmp157__ |= (pSrc->ul_mu << 22); - tmp157__ |= (pSrc->dcm_enc_tx << 24); - tmp157__ |= (pSrc->dcm_enc_rx << 27); - tmp157__ |= (pSrc->ul_he_mu << 30); - tmp157__ |= (pSrc->su_beamformer << 31); + tmp157__ |= (pSrc->htc_he << 0); + tmp157__ |= (pSrc->twt_request << 1); + tmp157__ |= (pSrc->twt_responder << 2); + tmp157__ |= (pSrc->fragmentation << 3); + tmp157__ |= (pSrc->max_num_frag_msdu << 5); + tmp157__ |= (pSrc->min_frag_size << 8); + tmp157__ |= (pSrc->trigger_frm_mac_pad << 10); + tmp157__ |= (pSrc->multi_tid_aggr << 12); + tmp157__ |= (pSrc->he_link_adaptation << 15); + tmp157__ |= (pSrc->all_ack << 17); + tmp157__ |= (pSrc->ul_mu_rsp_sched << 18); + tmp157__ |= (pSrc->a_bsr << 19); + tmp157__ |= (pSrc->broadcast_twt << 20); + tmp157__ |= (pSrc->ba_32bit_bitmap << 21); + tmp157__ |= (pSrc->mu_cascade << 22); + tmp157__ |= (pSrc->ack_enabled_multitid << 23); + tmp157__ |= (pSrc->dl_mu_ba << 24); + tmp157__ |= (pSrc->omi_a_ctrl << 25); + tmp157__ |= (pSrc->ofdma_ra << 26); + tmp157__ |= (pSrc->max_ampdu_len << 27); + tmp157__ |= (pSrc->amsdu_frag << 29); + tmp157__ |= (pSrc->flex_twt_sched << 30); + tmp157__ |= (pSrc->rx_ctrl_frame << 31); frameshtonl(pCtx, pBuf, tmp157__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; tmp158__ = 0U; - tmp158__ |= (pSrc->su_beamformee << 0); - tmp158__ |= (pSrc->mu_beamformer << 1); - tmp158__ |= (pSrc->bfee_sts_lt_80 << 2); - tmp158__ |= (pSrc->nsts_tol_lt_80 << 5); - tmp158__ |= (pSrc->bfee_sta_gt_80 << 8); - tmp158__ |= (pSrc->nsts_tot_gt_80 << 11); - tmp158__ |= (pSrc->num_sounding_lt_80 << 14); - tmp158__ |= (pSrc->num_sounding_gt_80 << 17); - tmp158__ |= (pSrc->su_feedback_tone16 << 20); - tmp158__ |= (pSrc->mu_feedback_tone16 << 21); - tmp158__ |= (pSrc->codebook_su << 22); - tmp158__ |= (pSrc->codebook_mu << 23); - tmp158__ |= (pSrc->beamforming_feedback << 24); - tmp158__ |= (pSrc->he_er_su_ppdu << 27); - tmp158__ |= (pSrc->dl_mu_mimo_part_bw << 28); - tmp158__ |= (pSrc->ppet_present << 29); - tmp158__ |= (pSrc->srp << 30); - tmp158__ |= (pSrc->power_boost << 31); - frameshtonl(pCtx, pBuf, tmp158__, 0); - *pnConsumed += 4; - pBuf += 4; - nBuf -= 4 ; - tmp159__ = 0U; - tmp159__ |= (pSrc->he_ltf_gi_4x << 0); - tmp159__ |= (pSrc->reserved2 << 1); - *pBuf = tmp159__; + tmp158__ |= (pSrc->bsrp_ampdu_aggr << 0); + tmp158__ |= (pSrc->qtp << 1); + tmp158__ |= (pSrc->a_bqr << 2); + tmp158__ |= (pSrc->reserved1 << 3); + *pBuf = tmp158__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + tmp159__ = 0U; + tmp159__ |= (pSrc->dual_band << 0); + tmp159__ |= (pSrc->chan_width << 1); + tmp159__ |= (pSrc->rx_pream_puncturing << 8); + tmp159__ |= (pSrc->device_class << 12); + tmp159__ |= (pSrc->ldpc_coding << 13); + tmp159__ |= (pSrc->he_ltf_gi_ppdu << 14); + tmp159__ |= (pSrc->he_ltf_gi_ndp << 16); + tmp159__ |= (pSrc->stbc << 18); + tmp159__ |= (pSrc->doppler << 20); + tmp159__ |= (pSrc->ul_mu << 22); + tmp159__ |= (pSrc->dcm_enc_tx << 24); + tmp159__ |= (pSrc->dcm_enc_rx << 27); + tmp159__ |= (pSrc->ul_he_mu << 30); + tmp159__ |= (pSrc->su_beamformer << 31); + frameshtonl(pCtx, pBuf, tmp159__, 0); + *pnConsumed += 4; + pBuf += 4; + nBuf -= 4 ; tmp160__ = 0U; - tmp160__ |= (pSrc->nss_supported << 0); - tmp160__ |= (pSrc->mcs_supported << 3); - tmp160__ |= (pSrc->tx_bw_bitmap << 6); - tmp160__ |= (pSrc->rx_bw_bitmap << 11); - frameshtons(pCtx, pBuf, tmp160__, 0); + tmp160__ |= (pSrc->su_beamformee << 0); + tmp160__ |= (pSrc->mu_beamformer << 1); + tmp160__ |= (pSrc->bfee_sts_lt_80 << 2); + tmp160__ |= (pSrc->nsts_tol_lt_80 << 5); + tmp160__ |= (pSrc->bfee_sta_gt_80 << 8); + tmp160__ |= (pSrc->nsts_tot_gt_80 << 11); + tmp160__ |= (pSrc->num_sounding_lt_80 << 14); + tmp160__ |= (pSrc->num_sounding_gt_80 << 17); + tmp160__ |= (pSrc->su_feedback_tone16 << 20); + tmp160__ |= (pSrc->mu_feedback_tone16 << 21); + tmp160__ |= (pSrc->codebook_su << 22); + tmp160__ |= (pSrc->codebook_mu << 23); + tmp160__ |= (pSrc->beamforming_feedback << 24); + tmp160__ |= (pSrc->he_er_su_ppdu << 27); + tmp160__ |= (pSrc->dl_mu_mimo_part_bw << 28); + tmp160__ |= (pSrc->ppet_present << 29); + tmp160__ |= (pSrc->srp << 30); + tmp160__ |= (pSrc->power_boost << 31); + frameshtonl(pCtx, pBuf, tmp160__, 0); + *pnConsumed += 4; + pBuf += 4; + nBuf -= 4 ; + tmp161__ = 0U; + tmp161__ |= (pSrc->he_ltf_gi_4x << 0); + tmp161__ |= (pSrc->reserved2 << 1); + *pBuf = tmp161__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp162__ = 0U; + tmp162__ |= (pSrc->nss_supported << 0); + tmp162__ |= (pSrc->mcs_supported << 3); + tmp162__ |= (pSrc->tx_bw_bitmap << 6); + tmp162__ |= (pSrc->rx_bw_bitmap << 11); + frameshtons(pCtx, pBuf, tmp162__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - - if (!pSrc->ppet_present) - break; - status = pack_core(pCtx, (uint8_t *)pSrc, pBuf, @@ -21498,7 +22539,7 @@ uint32_t dot11f_pack_ie_vendor_he_op(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint32_t tmp161__; + uint32_t tmp163__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_vendor_he_op(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -21518,17 +22559,17 @@ uint32_t dot11f_pack_ie_vendor_he_op(tpAniSirGlobal pCtx, ++pBuf; --nBuf; ++(*pnConsumed); *pBuf = 0x2; ++pBuf; --nBuf; ++(*pnConsumed); - tmp161__ = 0U; - tmp161__ |= (pSrc->bss_color << 0); - tmp161__ |= (pSrc->default_pe << 6); - tmp161__ |= (pSrc->twt_required << 9); - tmp161__ |= (pSrc->rts_threshold << 10); - tmp161__ |= (pSrc->partial_bss_col << 20); - tmp161__ |= (pSrc->maxbssid_ind << 21); - tmp161__ |= (pSrc->tx_bssid_ind << 29); - tmp161__ |= (pSrc->bss_col_disabled << 30); - tmp161__ |= (pSrc->dual_beacon << 31); - frameshtonl(pCtx, pBuf, tmp161__, 0); + tmp163__ = 0U; + tmp163__ |= (pSrc->bss_color << 0); + tmp163__ |= (pSrc->default_pe << 6); + tmp163__ |= (pSrc->twt_required << 9); + tmp163__ |= (pSrc->rts_threshold << 10); + tmp163__ |= (pSrc->partial_bss_col << 20); + tmp163__ |= (pSrc->maxbssid_ind << 21); + tmp163__ |= (pSrc->tx_bssid_ind << 29); + tmp163__ |= (pSrc->bss_col_disabled << 30); + tmp163__ |= (pSrc->dual_beacon << 31); + frameshtonl(pCtx, pBuf, tmp163__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; @@ -22599,7 +23640,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) { @@ -23622,6 +24663,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(