diff --git a/core/mac/src/cfg/cfgUtil/dot11f.frms b/core/mac/src/cfg/cfgUtil/dot11f.frms index e6f562074629..cec72154471c 100644 --- a/core/mac/src/cfg/cfgUtil/dot11f.frms +++ b/core/mac/src/cfg/cfgUtil/dot11f.frms @@ -114,7 +114,7 @@ const EID_AID = 197; const EID_EXT_CAP = 127; const EID_OPERATING_MODE = 199; const EID_WIDER_BW_CHANNEL_SWITCH_ANN= 194; -const VHT_TRANSMIT_POWER_ENVELOPE = 195; +const EID_TRANSMIT_POWER_ENVELOPE = 195; const EID_CHANNEL_SWITCH_WRAPPER = 196; const EID_VENDOR_SPECIFIC = 221; const EID_FILS_INDICATION = 240; @@ -1332,7 +1332,8 @@ IE RequestedInfo (EID_REQUEST) // 7.3.2.12 IE Country (EID_COUNTRY) // 7.3.2.9 { country[3]; - OPTIONAL triplets[3][0..84]; + first_triplet[3]; + OPTIONAL more_triplets[3][0..80]; } IE FHParams (EID_FH_PATTERN) // 7.3.2.10 @@ -2448,15 +2449,20 @@ IE WiderBWChanSwitchAnn (EID_WIDER_BW_CHANNEL_SWITCH_ANN) newCenterChanFreq1, 1; } -IE vht_transmit_power_env (VHT_TRANSMIT_POWER_ENVELOPE) +IE transmit_power_env (EID_TRANSMIT_POWER_ENVELOPE) { - bytes[2..5]; + { + max_tx_pwr_count: 3; + max_tx_pwr_interpret: 3; + max_tx_pwr_category: 2; + } + tx_power[1..8]; } IE ChannelSwitchWrapper (EID_CHANNEL_SWITCH_WRAPPER) { OPTIE IE WiderBWChanSwitchAnn; - OPTIE IE vht_transmit_power_env; + OPTIE IE transmit_power_env; } IE ExtCap (EID_EXT_CAP) { @@ -3134,7 +3140,8 @@ IE he_op (EID_EXTN_ID_ELEMENT) OUI (0x24) { // control ch_width: 2; dup_bcon: 1; - reserved: 5; + reg_info: 3; + reserved: 2; } center_freq_seg0, 1; center_freq_seg1, 1; @@ -3701,7 +3708,7 @@ FRAME Beacon2 OPTIE P2PBeacon; OPTIE VHTCaps; OPTIE VHTOperation; - OPTIE vht_transmit_power_env; + OPTIE transmit_power_env[0..8]; OPTIE ChannelSwitchWrapper; OPTIE VHTExtBssLoad; OPTIE ExtCap; @@ -4038,7 +4045,7 @@ FRAME ProbeResponse // 7.2.3.9 OPTIE VHTCaps; OPTIE VHTOperation; - OPTIE vht_transmit_power_env; + OPTIE transmit_power_env[0..8]; OPTIE ChannelSwitchWrapper; OPTIE VHTExtBssLoad; OPTIE ExtCap; @@ -4083,6 +4090,7 @@ FRAME DeAuth // 7.2.3.11 OPTIE P2PDeAuth; } + FRAME AddTSRequest // 7.4.2.1 { diff --git a/core/mac/src/include/dot11f.h b/core/mac/src/include/dot11f.h index 18b5b8a2ca9d..63a4f951e0a3 100644 --- a/core/mac/src/include/dot11f.h +++ b/core/mac/src/include/dot11f.h @@ -26,7 +26,7 @@ * * * This file was automatically generated by 'framesc' - * Tue Oct 27 21:57:51 2020 from the following file(s): + * Mon Dec 7 14:06:11 2020 from the following file(s): * * dot11f.frms * @@ -4701,39 +4701,42 @@ uint32_t dot11f_get_packed_ie_tgt_mac_addr( #endif /* C++ */ /* EID 195 (0xc3) */ -typedef struct sDot11fIEvht_transmit_power_env { +typedef struct sDot11fIEtransmit_power_env { uint8_t present; - uint8_t num_bytes; - uint8_t bytes[5]; -} tDot11fIEvht_transmit_power_env; + uint8_t max_tx_pwr_count:3; + uint8_t max_tx_pwr_interpret:3; + uint8_t max_tx_pwr_category:2; + uint8_t num_tx_power; + uint8_t tx_power[8]; +} tDot11fIEtransmit_power_env; -#define DOT11F_EID_VHT_TRANSMIT_POWER_ENV (195) +#define DOT11F_EID_TRANSMIT_POWER_ENV (195) /* N.B. These #defines do *not* include the EID & length */ -#define DOT11F_IE_VHT_TRANSMIT_POWER_ENV_MIN_LEN (2) +#define DOT11F_IE_TRANSMIT_POWER_ENV_MIN_LEN (2) -#define DOT11F_IE_VHT_TRANSMIT_POWER_ENV_MAX_LEN (5) +#define DOT11F_IE_TRANSMIT_POWER_ENV_MAX_LEN (9) #ifdef __cplusplus extern "C" { #endif /* C++ */ -__must_check uint32_t dot11f_unpack_ie_vht_transmit_power_env( +__must_check uint32_t dot11f_unpack_ie_transmit_power_env( tpAniSirGlobal, uint8_t *, uint8_t, - tDot11fIEvht_transmit_power_env*, + tDot11fIEtransmit_power_env*, bool); -uint32_t dot11f_pack_ie_vht_transmit_power_env( +uint32_t dot11f_pack_ie_transmit_power_env( tpAniSirGlobal, - tDot11fIEvht_transmit_power_env *, + tDot11fIEtransmit_power_env *, uint8_t *, uint32_t, uint32_t*); -uint32_t dot11f_get_packed_ie_vht_transmit_power_env( +uint32_t dot11f_get_packed_ie_transmit_power_env( tpAniSirGlobal, - tDot11fIEvht_transmit_power_env *, + tDot11fIEtransmit_power_env *, uint32_t*); #ifdef __cplusplus @@ -4904,9 +4907,9 @@ uint32_t dot11f_get_packed_ie_ChanSwitchAnn( /* EID 196 (0xc4) */ typedef struct sDot11fIEChannelSwitchWrapper { - uint8_t present; - tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; - tDot11fIEvht_transmit_power_env vht_transmit_power_env; + uint8_t present; + tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; + tDot11fIEtransmit_power_env transmit_power_env; } tDot11fIEChannelSwitchWrapper; #define DOT11F_EID_CHANNELSWITCHWRAPPER (196) @@ -4914,7 +4917,7 @@ typedef struct sDot11fIEChannelSwitchWrapper { /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_CHANNELSWITCHWRAPPER_MIN_LEN (0) -#define DOT11F_IE_CHANNELSWITCHWRAPPER_MAX_LEN (12) +#define DOT11F_IE_CHANNELSWITCHWRAPPER_MAX_LEN (16) #ifdef __cplusplus extern "C" { @@ -4946,16 +4949,17 @@ uint32_t dot11f_get_packed_ie_channel_switch_wrapper( typedef struct sDot11fIECountry { uint8_t present; uint8_t country[3]; - uint8_t num_triplets; - uint8_t triplets[84][3]; + uint8_t first_triplet[3]; + uint8_t num_more_triplets; + uint8_t more_triplets[80][3]; } tDot11fIECountry; #define DOT11F_EID_COUNTRY (7) /* N.B. These #defines do *not* include the EID & length */ -#define DOT11F_IE_COUNTRY_MIN_LEN (3) +#define DOT11F_IE_COUNTRY_MIN_LEN (6) -#define DOT11F_IE_COUNTRY_MAX_LEN (255) +#define DOT11F_IE_COUNTRY_MAX_LEN (246) #ifdef __cplusplus extern "C" { @@ -9463,7 +9467,8 @@ typedef struct sDot11fIEhe_op { uint8_t primary_ch; uint8_t ch_width:2; uint8_t dup_bcon:1; - uint8_t reserved:5; + uint8_t reg_info:3; + uint8_t reserved:2; uint8_t center_freq_seg0; uint8_t center_freq_seg1; uint8_t min_rate; @@ -10317,56 +10322,57 @@ uint32_t dot11f_get_packed_beacon1_size(tpAniSirGlobal pCtx, #endif /* C++ */ typedef struct sDot11fBeacon2{ - tDot11fIECountry Country; - tDot11fIEPowerConstraints PowerConstraints; - tDot11fIEChanSwitchAnn ChanSwitchAnn; - tDot11fIEext_chan_switch_ann ext_chan_switch_ann; - tDot11fIESuppOperatingClasses SuppOperatingClasses; - tDot11fIEQuiet Quiet; - tDot11fIETPCReport TPCReport; - tDot11fIEERPInfo ERPInfo; - tDot11fIEExtSuppRates ExtSuppRates; - tDot11fIERSNOpaque RSNOpaque; - tDot11fIEEDCAParamSet EDCAParamSet; - tDot11fIEAPChannelReport APChannelReport; - tDot11fIERRMEnabledCap RRMEnabledCap; - tDot11fIEMobilityDomain MobilityDomain; - tDot11fIEWPA WPA; - tDot11fIEHTCaps HTCaps; - tDot11fIEHTInfo HTInfo; - tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; - tDot11fIEWMMInfoAp WMMInfoAp; - tDot11fIEWMMParams WMMParams; - tDot11fIEWMMCaps WMMCaps; - tDot11fIEWscBeacon WscBeacon; - tDot11fIEWAPI WAPI; - tDot11fIEESERadMgmtCap ESERadMgmtCap; - tDot11fIEESETrafStrmMet ESETrafStrmMet; - tDot11fIEESETxmitPower ESETxmitPower; - tDot11fIEP2PBeacon P2PBeacon; - tDot11fIEVHTCaps VHTCaps; - tDot11fIEVHTOperation VHTOperation; - tDot11fIEvht_transmit_power_env vht_transmit_power_env; - tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; - tDot11fIEVHTExtBssLoad VHTExtBssLoad; - tDot11fIEExtCap ExtCap; - tDot11fIEOperatingMode OperatingMode; - tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; - tDot11fIEOBSSScanParameters OBSSScanParameters; - tDot11fIEfils_indication fils_indication; - tDot11fIEVendor1IE Vendor1IE; - tDot11fIEvendor_vht_ie vendor_vht_ie; - tDot11fIEVendor3IE Vendor3IE; - tDot11fIEhs20vendor_ie hs20vendor_ie; - tDot11fIEQComVendorIE QComVendorIE; - tDot11fIEESEVersion ESEVersion; - tDot11fIEqcn_ie qcn_ie; - tDot11fIEhe_cap he_cap; - tDot11fIEhe_op he_op; - tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; - tDot11fIEbss_color_change bss_color_change; - tDot11fIEmu_edca_param_set mu_edca_param_set; - tDot11fIEesp_information esp_information; + tDot11fIECountry Country; + tDot11fIEPowerConstraints PowerConstraints; + tDot11fIEChanSwitchAnn ChanSwitchAnn; + tDot11fIEext_chan_switch_ann ext_chan_switch_ann; + tDot11fIESuppOperatingClasses SuppOperatingClasses; + tDot11fIEQuiet Quiet; + tDot11fIETPCReport TPCReport; + tDot11fIEERPInfo ERPInfo; + tDot11fIEExtSuppRates ExtSuppRates; + tDot11fIERSNOpaque RSNOpaque; + tDot11fIEEDCAParamSet EDCAParamSet; + tDot11fIEAPChannelReport APChannelReport; + tDot11fIERRMEnabledCap RRMEnabledCap; + tDot11fIEMobilityDomain MobilityDomain; + tDot11fIEWPA WPA; + tDot11fIEHTCaps HTCaps; + tDot11fIEHTInfo HTInfo; + tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; + tDot11fIEWMMInfoAp WMMInfoAp; + tDot11fIEWMMParams WMMParams; + tDot11fIEWMMCaps WMMCaps; + tDot11fIEWscBeacon WscBeacon; + tDot11fIEWAPI WAPI; + tDot11fIEESERadMgmtCap ESERadMgmtCap; + tDot11fIEESETrafStrmMet ESETrafStrmMet; + tDot11fIEESETxmitPower ESETxmitPower; + tDot11fIEP2PBeacon P2PBeacon; + tDot11fIEVHTCaps VHTCaps; + tDot11fIEVHTOperation VHTOperation; + uint16_t num_transmit_power_env; + tDot11fIEtransmit_power_env transmit_power_env[8]; + tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; + tDot11fIEVHTExtBssLoad VHTExtBssLoad; + tDot11fIEExtCap ExtCap; + tDot11fIEOperatingMode OperatingMode; + tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; + tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; + tDot11fIEVendor1IE Vendor1IE; + tDot11fIEvendor_vht_ie vendor_vht_ie; + tDot11fIEVendor3IE Vendor3IE; + tDot11fIEhs20vendor_ie hs20vendor_ie; + tDot11fIEQComVendorIE QComVendorIE; + tDot11fIEESEVersion ESEVersion; + tDot11fIEqcn_ie qcn_ie; + tDot11fIEhe_cap he_cap; + tDot11fIEhe_op he_op; + tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; + tDot11fIEbss_color_change bss_color_change; + tDot11fIEmu_edca_param_set mu_edca_param_set; + tDot11fIEesp_information esp_information; } tDot11fBeacon2; #define DOT11F_BEACON2 (8) @@ -10813,66 +10819,67 @@ uint32_t dot11f_get_packed_probe_request_size(tpAniSirGlobal pCtx, #endif /* C++ */ typedef struct sDot11fProbeResponse{ - tDot11fFfTimeStamp TimeStamp; - tDot11fFfBeaconInterval BeaconInterval; - tDot11fFfCapabilities Capabilities; - tDot11fIESSID SSID; - tDot11fIESuppRates SuppRates; - tDot11fIEFHParamSet FHParamSet; - tDot11fIEDSParams DSParams; - tDot11fIECFParams CFParams; - tDot11fIECountry Country; - tDot11fIEFHParams FHParams; - tDot11fIEFHPattTable FHPattTable; - tDot11fIEPowerConstraints PowerConstraints; - tDot11fIEChanSwitchAnn ChanSwitchAnn; - tDot11fIEext_chan_switch_ann ext_chan_switch_ann; - tDot11fIESuppOperatingClasses SuppOperatingClasses; - tDot11fIEQuiet Quiet; - tDot11fIETPCReport TPCReport; - tDot11fIEERPInfo ERPInfo; - tDot11fIEExtSuppRates ExtSuppRates; - tDot11fIERSNOpaque RSNOpaque; - tDot11fIEQBSSLoad QBSSLoad; - tDot11fIEEDCAParamSet EDCAParamSet; - tDot11fIERRMEnabledCap RRMEnabledCap; - tDot11fIEAPChannelReport APChannelReport; - tDot11fIEMobilityDomain MobilityDomain; - tDot11fIEWPA WPA; - tDot11fIEHTCaps HTCaps; - tDot11fIEHTInfo HTInfo; - tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; - tDot11fIEWMMInfoAp WMMInfoAp; - tDot11fIEWMMParams WMMParams; - tDot11fIEWMMCaps WMMCaps; - tDot11fIEWAPI WAPI; - tDot11fIEESERadMgmtCap ESERadMgmtCap; - tDot11fIEESETrafStrmMet ESETrafStrmMet; - tDot11fIEESETxmitPower ESETxmitPower; - tDot11fIEWscProbeRes WscProbeRes; - tDot11fIEP2PProbeRes P2PProbeRes; - tDot11fIEVHTCaps VHTCaps; - tDot11fIEVHTOperation VHTOperation; - tDot11fIEvht_transmit_power_env vht_transmit_power_env; - tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; - tDot11fIEVHTExtBssLoad VHTExtBssLoad; - tDot11fIEExtCap ExtCap; - tDot11fIEOBSSScanParameters OBSSScanParameters; - tDot11fIEfils_indication fils_indication; - tDot11fIEVendor1IE Vendor1IE; - tDot11fIEvendor_vht_ie vendor_vht_ie; - tDot11fIEVendor3IE Vendor3IE; - tDot11fIEhs20vendor_ie hs20vendor_ie; - tDot11fIEQComVendorIE QComVendorIE; - tDot11fIEESEVersion ESEVersion; - tDot11fIEMBO_IE MBO_IE; - tDot11fIEqcn_ie qcn_ie; - tDot11fIEhe_cap he_cap; - tDot11fIEhe_op he_op; - tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; - tDot11fIEbss_color_change bss_color_change; - tDot11fIEmu_edca_param_set mu_edca_param_set; - tDot11fIEesp_information esp_information; + tDot11fFfTimeStamp TimeStamp; + tDot11fFfBeaconInterval BeaconInterval; + tDot11fFfCapabilities Capabilities; + tDot11fIESSID SSID; + tDot11fIESuppRates SuppRates; + tDot11fIEFHParamSet FHParamSet; + tDot11fIEDSParams DSParams; + tDot11fIECFParams CFParams; + tDot11fIECountry Country; + tDot11fIEFHParams FHParams; + tDot11fIEFHPattTable FHPattTable; + tDot11fIEPowerConstraints PowerConstraints; + tDot11fIEChanSwitchAnn ChanSwitchAnn; + tDot11fIEext_chan_switch_ann ext_chan_switch_ann; + tDot11fIESuppOperatingClasses SuppOperatingClasses; + tDot11fIEQuiet Quiet; + tDot11fIETPCReport TPCReport; + tDot11fIEERPInfo ERPInfo; + tDot11fIEExtSuppRates ExtSuppRates; + tDot11fIERSNOpaque RSNOpaque; + tDot11fIEQBSSLoad QBSSLoad; + tDot11fIEEDCAParamSet EDCAParamSet; + tDot11fIERRMEnabledCap RRMEnabledCap; + tDot11fIEAPChannelReport APChannelReport; + tDot11fIEMobilityDomain MobilityDomain; + tDot11fIEWPA WPA; + tDot11fIEHTCaps HTCaps; + tDot11fIEHTInfo HTInfo; + tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; + tDot11fIEWMMInfoAp WMMInfoAp; + tDot11fIEWMMParams WMMParams; + tDot11fIEWMMCaps WMMCaps; + tDot11fIEWAPI WAPI; + tDot11fIEESERadMgmtCap ESERadMgmtCap; + tDot11fIEESETrafStrmMet ESETrafStrmMet; + tDot11fIEESETxmitPower ESETxmitPower; + tDot11fIEWscProbeRes WscProbeRes; + tDot11fIEP2PProbeRes P2PProbeRes; + tDot11fIEVHTCaps VHTCaps; + tDot11fIEVHTOperation VHTOperation; + uint16_t num_transmit_power_env; + tDot11fIEtransmit_power_env transmit_power_env[8]; + tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; + tDot11fIEVHTExtBssLoad VHTExtBssLoad; + tDot11fIEExtCap ExtCap; + tDot11fIEOBSSScanParameters OBSSScanParameters; + tDot11fIEfils_indication fils_indication; + tDot11fIEVendor1IE Vendor1IE; + tDot11fIEvendor_vht_ie vendor_vht_ie; + tDot11fIEVendor3IE Vendor3IE; + tDot11fIEhs20vendor_ie hs20vendor_ie; + tDot11fIEQComVendorIE QComVendorIE; + tDot11fIEESEVersion ESEVersion; + tDot11fIEMBO_IE MBO_IE; + tDot11fIEqcn_ie qcn_ie; + tDot11fIEhe_cap he_cap; + tDot11fIEhe_op he_op; + tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; + tDot11fIEbss_color_change bss_color_change; + tDot11fIEmu_edca_param_set mu_edca_param_set; + tDot11fIEesp_information esp_information; } tDot11fProbeResponse; #define DOT11F_PROBERESPONSE (22) diff --git a/core/mac/src/include/parser_api.h b/core/mac/src/include/parser_api.h index 068fab32c8b9..ca2b2400aa56 100644 --- a/core/mac/src/include/parser_api.h +++ b/core/mac/src/include/parser_api.h @@ -700,9 +700,11 @@ populate_dot_11_f_ext_chann_switch_ann(struct mac_context *mac_ptr, struct pe_session *session_entry); void -populate_dot11f_vht_tx_power_env(struct mac_context *mac, - tDot11fIEvht_transmit_power_env *pDot11f, - enum phy_ch_width ch_width, uint32_t chan_freq); +populate_dot11f_tx_power_env(struct mac_context *mac, + tDot11fIEtransmit_power_env *pDot11f, + enum phy_ch_width ch_width, uint32_t chan_freq, + uint16_t *num_tpe, bool is_ch_switch); + /* / Populate a tDot11fIEChannelSwitchWrapper */ void populate_dot11f_chan_switch_wrapper(struct mac_context *mac, diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c index 6059e3e5797c..26afbc8fb1aa 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/core/mac/src/pe/lim/lim_send_management_frames.c @@ -696,11 +696,12 @@ lim_send_probe_rsp_mgmt_frame(struct mac_context *mac_ctx, populate_dot11f_vht_caps(mac_ctx, pe_session, &frm->VHTCaps); populate_dot11f_vht_operation(mac_ctx, pe_session, &frm->VHTOperation); - populate_dot11f_vht_tx_power_env( - mac_ctx, - &frm->vht_transmit_power_env, - pe_session->ch_width, - pe_session->curr_op_freq); + populate_dot11f_tx_power_env(mac_ctx, + &frm->transmit_power_env[0], + pe_session->ch_width, + pe_session->curr_op_freq, + &frm->num_transmit_power_env, + false); /* * we do not support multi users yet. * populate_dot11f_vht_ext_bss_load( mac_ctx, diff --git a/core/mac/src/pe/sch/sch_beacon_gen.c b/core/mac/src/pe/sch/sch_beacon_gen.c index 7e30bf7b7f47..2354913dc1e8 100644 --- a/core/mac/src/pe/sch/sch_beacon_gen.c +++ b/core/mac/src/pe/sch/sch_beacon_gen.c @@ -464,10 +464,12 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess /* populate_dot11f_vht_ext_bss_load( mac_ctx, &bcn2.VHTExtBssLoad); */ - populate_dot11f_vht_tx_power_env(mac_ctx, - &bcn_2->vht_transmit_power_env, - session->ch_width, - session->curr_op_freq); + populate_dot11f_tx_power_env(mac_ctx, + &bcn_2->transmit_power_env[0], + session->ch_width, + session->curr_op_freq, + &bcn_2->num_transmit_power_env, + false); populate_dot11f_qcn_ie(mac_ctx, session, &bcn_2->qcn_ie, QCN_IE_ATTR_ID_ALL); } @@ -484,7 +486,6 @@ sch_set_fixed_beacon_fields(struct mac_context *mac_ctx, struct pe_session *sess &bcn_2->bss_color_change); } - populate_dot11f_ext_cap(mac_ctx, is_vht_enabled, &bcn_2->ExtCap, session); @@ -733,6 +734,8 @@ void lim_update_probe_rsp_template_ie_bitmap_beacon2(struct mac_context *mac, uint32_t *DefProbeRspIeBitmap, tDot11fProbeResponse *prb_rsp) { + uint8_t i; + uint16_t num_tpe = beacon2->num_transmit_power_env; if (beacon2->Country.present) { set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, WLAN_ELEMID_COUNTRY); @@ -860,13 +863,17 @@ void lim_update_probe_rsp_template_ie_bitmap_beacon2(struct mac_context *mac, (void *)&beacon2->VHTOperation, sizeof(beacon2->VHTOperation)); } - if (beacon2->vht_transmit_power_env.present) { - set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, - WLAN_ELEMID_VHT_TX_PWR_ENVLP); - qdf_mem_copy((void *)&prb_rsp->vht_transmit_power_env, - (void *)&beacon2->vht_transmit_power_env, - sizeof(beacon2->vht_transmit_power_env)); + + for (i = 0; i < num_tpe; i++) { + if (beacon2->transmit_power_env[i].present) { + set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, + WLAN_ELEMID_VHT_TX_PWR_ENVLP); + qdf_mem_copy((void *)&prb_rsp->transmit_power_env[i], + (void *)&beacon2->transmit_power_env[i], + sizeof(beacon2->transmit_power_env[i])); + } } + if (beacon2->VHTExtBssLoad.present) { set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap, WLAN_ELEMID_EXT_BSS_LOAD); 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 eb11c3e55b4f..f4c22f8682a7 100644 --- a/core/mac/src/sys/legacy/src/utils/src/dot11f.c +++ b/core/mac/src/sys/legacy/src/utils/src/dot11f.c @@ -24,7 +24,7 @@ * * * This file was automatically generated by 'framesc' - * Fri Oct 9 22:48:44 2020 from the following file(s): + * Mon Dec 7 14:06:11 2020 from the following file(s): * * dot11f.frms * @@ -4000,29 +4000,41 @@ uint32_t dot11f_unpack_ie_tgt_mac_addr(tpAniSirGlobal pCtx, #define SigIetgt_mac_addr (0x0027) -uint32_t dot11f_unpack_ie_vht_transmit_power_env(tpAniSirGlobal pCtx, - uint8_t *pBuf, - uint8_t ielen, - tDot11fIEvht_transmit_power_env *pDst, - bool append_ie) +uint32_t dot11f_unpack_ie_transmit_power_env(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEtransmit_power_env *pDst, + bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; + uint8_t tmp32__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; pDst->present = 1; - pDst->num_bytes = (uint8_t)(ielen); - if (ielen > 5) { + if (unlikely(ielen < 1)) { + pDst->present = 0; + return DOT11F_INCOMPLETE_IE; + } + + tmp32__ = *pBuf; + pBuf += 1; + ielen -= 1; + pDst->max_tx_pwr_count = tmp32__ >> 0 & 0x7; + pDst->max_tx_pwr_interpret = tmp32__ >> 3 & 0x7; + pDst->max_tx_pwr_category = tmp32__ >> 6 & 0x3; + pDst->num_tx_power = (uint8_t)(ielen); + if (ielen > 8) { pDst->present = 0; return DOT11F_SKIPPED_BAD_IE; } - DOT11F_MEMCPY(pCtx, pDst->bytes, pBuf, (ielen)); + DOT11F_MEMCPY(pCtx, pDst->tx_power, pBuf, (ielen)); (void)pCtx; return status; -} /* End dot11f_unpack_ie_vht_transmit_power_env. */ +} /* End dot11f_unpack_ie_transmit_power_env. */ -#define SigIevht_transmit_power_env (0x0028) +#define SigIetransmit_power_env (0x0028) uint32_t dot11f_unpack_ie_aid(tpAniSirGlobal pCtx, @@ -4171,10 +4183,10 @@ static const tIEDefn IES_ChannelSwitchWrapper[] = { offsetof(tDot11fIEWiderBWChanSwitchAnn, present), 0, "WiderBWChanSwitchAnn", 0, 5, 5, SigIeWiderBWChanSwitchAnn, {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, }, + { offsetof(tDot11fIEChannelSwitchWrapper, transmit_power_env), + offsetof(tDot11fIEtransmit_power_env, present), 0, "transmit_power_env", + 0, 4, 11, SigIetransmit_power_env, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_TRANSMIT_POWER_ENV, 0, 0, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, }, }; @@ -4223,17 +4235,25 @@ uint32_t dot11f_unpack_ie_country(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pDst->country, pBuf, 3); pBuf += 3; ielen -= (uint8_t)3; + if (unlikely(ielen < 3)) { + pDst->present = 0; + return DOT11F_INCOMPLETE_IE; + } + + DOT11F_MEMCPY(pCtx, pDst->first_triplet, pBuf, 3); + pBuf += 3; + ielen -= (uint8_t)3; if (!ielen) { - pDst->num_triplets = 0U; + pDst->num_more_triplets = 0U; return 0U; } else { - pDst->num_triplets = (uint8_t)(ielen / 3); - if (ielen > 84 * 3) { - pDst->present = 0; - return DOT11F_SKIPPED_BAD_IE; + pDst->num_more_triplets = (uint8_t)(ielen / 3); + if (ielen / 3 > 80) { + pDst->present = 0; + return DOT11F_SKIPPED_BAD_IE; } - DOT11F_MEMCPY(pCtx, pDst->triplets, pBuf, (ielen)); + DOT11F_MEMCPY(pCtx, pDst->more_triplets, pBuf, (ielen)); } (void)pCtx; return status; @@ -4252,7 +4272,6 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp32__; uint8_t tmp33__; uint8_t tmp34__; uint8_t tmp35__; @@ -4260,6 +4279,7 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, uint8_t tmp37__; uint8_t tmp38__; uint8_t tmp39__; + uint8_t tmp40__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -4285,23 +4305,23 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp32__ = *pBuf; + tmp33__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_aifsn = tmp32__ >> 0 & 0xf; - pDst->acbe_acm = tmp32__ >> 4 & 0x1; - pDst->acbe_aci = tmp32__ >> 5 & 0x3; - pDst->unused1 = tmp32__ >> 7 & 0x1; + pDst->acbe_aifsn = tmp33__ >> 0 & 0xf; + pDst->acbe_acm = tmp33__ >> 4 & 0x1; + pDst->acbe_aci = tmp33__ >> 5 & 0x3; + pDst->unused1 = tmp33__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp33__ = *pBuf; + tmp34__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_acwmin = tmp33__ >> 0 & 0xf; - pDst->acbe_acwmax = tmp33__ >> 4 & 0xf; + pDst->acbe_acwmin = tmp34__ >> 0 & 0xf; + pDst->acbe_acwmax = tmp34__ >> 4 & 0xf; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -4315,23 +4335,23 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp34__ = *pBuf; + tmp35__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_aifsn = tmp34__ >> 0 & 0xf; - pDst->acbk_acm = tmp34__ >> 4 & 0x1; - pDst->acbk_aci = tmp34__ >> 5 & 0x3; - pDst->unused2 = tmp34__ >> 7 & 0x1; + pDst->acbk_aifsn = tmp35__ >> 0 & 0xf; + pDst->acbk_acm = tmp35__ >> 4 & 0x1; + pDst->acbk_aci = tmp35__ >> 5 & 0x3; + pDst->unused2 = tmp35__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp35__ = *pBuf; + tmp36__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_acwmin = tmp35__ >> 0 & 0xf; - pDst->acbk_acwmax = tmp35__ >> 4 & 0xf; + pDst->acbk_acwmin = tmp36__ >> 0 & 0xf; + pDst->acbk_acwmax = tmp36__ >> 4 & 0xf; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -4345,23 +4365,23 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp36__ = *pBuf; + tmp37__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_aifsn = tmp36__ >> 0 & 0xf; - pDst->acvi_acm = tmp36__ >> 4 & 0x1; - pDst->acvi_aci = tmp36__ >> 5 & 0x3; - pDst->unused3 = tmp36__ >> 7 & 0x1; + pDst->acvi_aifsn = tmp37__ >> 0 & 0xf; + pDst->acvi_acm = tmp37__ >> 4 & 0x1; + pDst->acvi_aci = tmp37__ >> 5 & 0x3; + pDst->unused3 = tmp37__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp37__ = *pBuf; + tmp38__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_acwmin = tmp37__ >> 0 & 0xf; - pDst->acvi_acwmax = tmp37__ >> 4 & 0xf; + pDst->acvi_acwmin = tmp38__ >> 0 & 0xf; + pDst->acvi_acwmax = tmp38__ >> 4 & 0xf; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -4375,23 +4395,23 @@ uint32_t dot11f_unpack_ie_edca_param_set(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp38__ = *pBuf; + tmp39__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_aifsn = tmp38__ >> 0 & 0xf; - pDst->acvo_acm = tmp38__ >> 4 & 0x1; - pDst->acvo_aci = tmp38__ >> 5 & 0x3; - pDst->unused4 = tmp38__ >> 7 & 0x1; + pDst->acvo_aifsn = tmp39__ >> 0 & 0xf; + pDst->acvo_acm = tmp39__ >> 4 & 0x1; + pDst->acvo_aci = tmp39__ >> 5 & 0x3; + pDst->unused4 = tmp39__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp39__ = *pBuf; + tmp40__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_acwmin = tmp39__ >> 0 & 0xf; - pDst->acvo_acwmax = tmp39__ >> 4 & 0xf; + pDst->acvo_acwmin = tmp40__ >> 0 & 0xf; + pDst->acvo_acwmax = tmp40__ >> 4 & 0xf; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -4412,7 +4432,7 @@ uint32_t dot11f_unpack_ie_erp_info(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp40__; + uint8_t tmp41__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -4422,11 +4442,11 @@ uint32_t dot11f_unpack_ie_erp_info(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp40__ = *pBuf; - pDst->non_erp_present = tmp40__ >> 0 & 0x1; - pDst->use_prot = tmp40__ >> 1 & 0x1; - pDst->barker_preamble = tmp40__ >> 2 & 0x1; - pDst->unused = tmp40__ >> 3 & 0x1f; + tmp41__ = *pBuf; + pDst->non_erp_present = tmp41__ >> 0 & 0x1; + pDst->use_prot = tmp41__ >> 1 & 0x1; + pDst->barker_preamble = tmp41__ >> 2 & 0x1; + pDst->unused = tmp41__ >> 3 & 0x1f; (void)pCtx; return status; } /* End dot11f_unpack_ie_erp_info. */ @@ -4466,7 +4486,7 @@ uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp41__; + uint8_t tmp42__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -4484,9 +4504,9 @@ uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp41__ = *pBuf; - pDst->mbssid_mask = tmp41__ >> 0 & 0x7; - pDst->reserved = tmp41__ >> 3 & 0x1f; + tmp42__ = *pBuf; + pDst->mbssid_mask = tmp42__ >> 0 & 0x7; + pDst->reserved = tmp42__ >> 3 & 0x1f; (void)pCtx; return status; } /* End dot11f_unpack_ie_ese_rad_mgmt_cap. */ @@ -4849,7 +4869,7 @@ uint32_t dot11f_unpack_ie_ft_info(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp42__; + uint16_t tmp43__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -4859,11 +4879,11 @@ uint32_t dot11f_unpack_ie_ft_info(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp42__, pBuf, 0); + framesntohs(pCtx, &tmp43__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->reserved = tmp42__ >> 0 & 0xff; - pDst->IECount = tmp42__ >> 8 & 0xff; + pDst->reserved = tmp43__ >> 0 & 0xff; + pDst->IECount = tmp43__ >> 8 & 0xff; if (unlikely(ielen < 16)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -4910,11 +4930,11 @@ uint32_t dot11f_unpack_ie_ht_caps(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp43__; - uint8_t tmp44__; - uint16_t tmp45__; - uint32_t tmp46__; - uint8_t tmp47__; + uint16_t tmp44__; + uint8_t tmp45__; + uint16_t tmp46__; + uint32_t tmp47__; + uint8_t tmp48__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -4924,34 +4944,34 @@ uint32_t dot11f_unpack_ie_ht_caps(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp43__, pBuf, 0); + framesntohs(pCtx, &tmp44__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->advCodingCap = tmp43__ >> 0 & 0x1; - pDst->supportedChannelWidthSet = tmp43__ >> 1 & 0x1; - pDst->mimoPowerSave = tmp43__ >> 2 & 0x3; - pDst->greenField = tmp43__ >> 4 & 0x1; - pDst->shortGI20MHz = tmp43__ >> 5 & 0x1; - pDst->shortGI40MHz = tmp43__ >> 6 & 0x1; - pDst->txSTBC = tmp43__ >> 7 & 0x1; - pDst->rxSTBC = tmp43__ >> 8 & 0x3; - pDst->delayedBA = tmp43__ >> 10 & 0x1; - pDst->maximalAMSDUsize = tmp43__ >> 11 & 0x1; - pDst->dsssCckMode40MHz = tmp43__ >> 12 & 0x1; - pDst->psmp = tmp43__ >> 13 & 0x1; - pDst->stbcControlFrame = tmp43__ >> 14 & 0x1; - pDst->lsigTXOPProtection = tmp43__ >> 15 & 0x1; + pDst->advCodingCap = tmp44__ >> 0 & 0x1; + pDst->supportedChannelWidthSet = tmp44__ >> 1 & 0x1; + pDst->mimoPowerSave = tmp44__ >> 2 & 0x3; + pDst->greenField = tmp44__ >> 4 & 0x1; + pDst->shortGI20MHz = tmp44__ >> 5 & 0x1; + pDst->shortGI40MHz = tmp44__ >> 6 & 0x1; + pDst->txSTBC = tmp44__ >> 7 & 0x1; + pDst->rxSTBC = tmp44__ >> 8 & 0x3; + pDst->delayedBA = tmp44__ >> 10 & 0x1; + pDst->maximalAMSDUsize = tmp44__ >> 11 & 0x1; + pDst->dsssCckMode40MHz = tmp44__ >> 12 & 0x1; + pDst->psmp = tmp44__ >> 13 & 0x1; + pDst->stbcControlFrame = tmp44__ >> 14 & 0x1; + pDst->lsigTXOPProtection = tmp44__ >> 15 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp44__ = *pBuf; + tmp45__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->maxRxAMPDUFactor = tmp44__ >> 0 & 0x3; - pDst->mpduDensity = tmp44__ >> 2 & 0x7; - pDst->reserved1 = tmp44__ >> 5 & 0x7; + pDst->maxRxAMPDUFactor = tmp45__ >> 0 & 0x3; + pDst->mpduDensity = tmp45__ >> 2 & 0x7; + pDst->reserved1 = tmp45__ >> 5 & 0x7; if (unlikely(ielen < 16)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -4965,54 +4985,54 @@ uint32_t dot11f_unpack_ie_ht_caps(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp45__, pBuf, 0); + framesntohs(pCtx, &tmp46__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->pco = tmp45__ >> 0 & 0x1; - pDst->transitionTime = tmp45__ >> 1 & 0x3; - pDst->reserved2 = tmp45__ >> 3 & 0x1f; - pDst->mcsFeedback = tmp45__ >> 8 & 0x3; - pDst->reserved3 = tmp45__ >> 10 & 0x3f; + pDst->pco = tmp46__ >> 0 & 0x1; + pDst->transitionTime = tmp46__ >> 1 & 0x3; + pDst->reserved2 = tmp46__ >> 3 & 0x1f; + pDst->mcsFeedback = tmp46__ >> 8 & 0x3; + pDst->reserved3 = tmp46__ >> 10 & 0x3f; if (unlikely(ielen < 4)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - framesntohl(pCtx, &tmp46__, pBuf, 0); + framesntohl(pCtx, &tmp47__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->txBF = tmp46__ >> 0 & 0x1; - pDst->rxStaggeredSounding = tmp46__ >> 1 & 0x1; - pDst->txStaggeredSounding = tmp46__ >> 2 & 0x1; - pDst->rxZLF = tmp46__ >> 3 & 0x1; - pDst->txZLF = tmp46__ >> 4 & 0x1; - pDst->implicitTxBF = tmp46__ >> 5 & 0x1; - pDst->calibration = tmp46__ >> 6 & 0x3; - pDst->explicitCSITxBF = tmp46__ >> 8 & 0x1; - pDst->explicitUncompressedSteeringMatrix = tmp46__ >> 9 & 0x1; - pDst->explicitBFCSIFeedback = tmp46__ >> 10 & 0x7; - pDst->explicitUncompressedSteeringMatrixFeedback = tmp46__ >> 13 & 0x7; - pDst->explicitCompressedSteeringMatrixFeedback = tmp46__ >> 16 & 0x7; - pDst->csiNumBFAntennae = tmp46__ >> 19 & 0x3; - pDst->uncompressedSteeringMatrixBFAntennae = tmp46__ >> 21 & 0x3; - pDst->compressedSteeringMatrixBFAntennae = tmp46__ >> 23 & 0x3; - pDst->reserved4 = tmp46__ >> 25 & 0x7f; + pDst->txBF = tmp47__ >> 0 & 0x1; + pDst->rxStaggeredSounding = tmp47__ >> 1 & 0x1; + pDst->txStaggeredSounding = tmp47__ >> 2 & 0x1; + pDst->rxZLF = tmp47__ >> 3 & 0x1; + pDst->txZLF = tmp47__ >> 4 & 0x1; + pDst->implicitTxBF = tmp47__ >> 5 & 0x1; + pDst->calibration = tmp47__ >> 6 & 0x3; + pDst->explicitCSITxBF = tmp47__ >> 8 & 0x1; + pDst->explicitUncompressedSteeringMatrix = tmp47__ >> 9 & 0x1; + pDst->explicitBFCSIFeedback = tmp47__ >> 10 & 0x7; + pDst->explicitUncompressedSteeringMatrixFeedback = tmp47__ >> 13 & 0x7; + pDst->explicitCompressedSteeringMatrixFeedback = tmp47__ >> 16 & 0x7; + pDst->csiNumBFAntennae = tmp47__ >> 19 & 0x3; + pDst->uncompressedSteeringMatrixBFAntennae = tmp47__ >> 21 & 0x3; + pDst->compressedSteeringMatrixBFAntennae = tmp47__ >> 23 & 0x3; + pDst->reserved4 = tmp47__ >> 25 & 0x7f; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp47__ = *pBuf; + tmp48__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->antennaSelection = tmp47__ >> 0 & 0x1; - pDst->explicitCSIFeedbackTx = tmp47__ >> 1 & 0x1; - pDst->antennaIndicesFeedbackTx = tmp47__ >> 2 & 0x1; - pDst->explicitCSIFeedback = tmp47__ >> 3 & 0x1; - pDst->antennaIndicesFeedback = tmp47__ >> 4 & 0x1; - pDst->rxAS = tmp47__ >> 5 & 0x1; - pDst->txSoundingPPDUs = tmp47__ >> 6 & 0x1; - pDst->reserved5 = tmp47__ >> 7 & 0x1; + pDst->antennaSelection = tmp48__ >> 0 & 0x1; + pDst->explicitCSIFeedbackTx = tmp48__ >> 1 & 0x1; + pDst->antennaIndicesFeedbackTx = tmp48__ >> 2 & 0x1; + pDst->explicitCSIFeedback = tmp48__ >> 3 & 0x1; + pDst->antennaIndicesFeedback = tmp48__ >> 4 & 0x1; + pDst->rxAS = tmp48__ >> 5 & 0x1; + pDst->txSoundingPPDUs = tmp48__ >> 6 & 0x1; + pDst->reserved5 = tmp48__ >> 7 & 0x1; pDst->num_rsvd = (uint8_t)(ielen); if (ielen > 32) { pDst->present = 0; @@ -5034,9 +5054,9 @@ uint32_t dot11f_unpack_ie_ht_info(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp48__; - uint16_t tmp49__; + uint8_t tmp49__; uint16_t tmp50__; + uint16_t tmp51__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -5054,28 +5074,14 @@ uint32_t dot11f_unpack_ie_ht_info(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp48__ = *pBuf; + tmp49__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->secondaryChannelOffset = tmp48__ >> 0 & 0x3; - pDst->recommendedTxWidthSet = tmp48__ >> 2 & 0x1; - pDst->rifsMode = tmp48__ >> 3 & 0x1; - pDst->controlledAccessOnly = tmp48__ >> 4 & 0x1; - pDst->serviceIntervalGranularity = tmp48__ >> 5 & 0x7; - if (unlikely(ielen < 2)) { - pDst->present = 0; - return DOT11F_INCOMPLETE_IE; - } - - framesntohs(pCtx, &tmp49__, pBuf, 0); - pBuf += 2; - ielen -= 2; - pDst->opMode = tmp49__ >> 0 & 0x3; - pDst->nonGFDevicesPresent = tmp49__ >> 2 & 0x1; - pDst->transmitBurstLimit = tmp49__ >> 3 & 0x1; - pDst->obssNonHTStaPresent = tmp49__ >> 4 & 0x1; - pDst->chan_center_freq_seg2 = tmp49__ >> 5 & 0xff; - pDst->reserved = tmp49__ >> 13 & 0x7; + pDst->secondaryChannelOffset = tmp49__ >> 0 & 0x3; + pDst->recommendedTxWidthSet = tmp49__ >> 2 & 0x1; + pDst->rifsMode = tmp49__ >> 3 & 0x1; + pDst->controlledAccessOnly = tmp49__ >> 4 & 0x1; + pDst->serviceIntervalGranularity = tmp49__ >> 5 & 0x7; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -5084,13 +5090,27 @@ uint32_t dot11f_unpack_ie_ht_info(tpAniSirGlobal pCtx, framesntohs(pCtx, &tmp50__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->basicSTBCMCS = tmp50__ >> 0 & 0x7f; - pDst->dualCTSProtection = tmp50__ >> 7 & 0x1; - pDst->secondaryBeacon = tmp50__ >> 8 & 0x1; - pDst->lsigTXOPProtectionFullSupport = tmp50__ >> 9 & 0x1; - pDst->pcoActive = tmp50__ >> 10 & 0x1; - pDst->pcoPhase = tmp50__ >> 11 & 0x1; - pDst->reserved2 = tmp50__ >> 12 & 0xf; + pDst->opMode = tmp50__ >> 0 & 0x3; + pDst->nonGFDevicesPresent = tmp50__ >> 2 & 0x1; + pDst->transmitBurstLimit = tmp50__ >> 3 & 0x1; + pDst->obssNonHTStaPresent = tmp50__ >> 4 & 0x1; + pDst->chan_center_freq_seg2 = tmp50__ >> 5 & 0xff; + pDst->reserved = tmp50__ >> 13 & 0x7; + if (unlikely(ielen < 2)) { + pDst->present = 0; + return DOT11F_INCOMPLETE_IE; + } + + framesntohs(pCtx, &tmp51__, pBuf, 0); + pBuf += 2; + ielen -= 2; + pDst->basicSTBCMCS = tmp51__ >> 0 & 0x7f; + pDst->dualCTSProtection = tmp51__ >> 7 & 0x1; + pDst->secondaryBeacon = tmp51__ >> 8 & 0x1; + pDst->lsigTXOPProtectionFullSupport = tmp51__ >> 9 & 0x1; + pDst->pcoActive = tmp51__ >> 10 & 0x1; + pDst->pcoPhase = tmp51__ >> 11 & 0x1; + pDst->reserved2 = tmp51__ >> 12 & 0xf; if (unlikely(ielen < 16)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -5248,9 +5268,9 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp51__; uint8_t tmp52__; uint8_t tmp53__; + uint8_t tmp54__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -5268,13 +5288,13 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp51__ = *pBuf; + tmp52__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->late = tmp51__ >> 0 & 0x1; - pDst->incapable = tmp51__ >> 1 & 0x1; - pDst->refused = tmp51__ >> 2 & 0x1; - pDst->unused = tmp51__ >> 3 & 0x1f; + pDst->late = tmp52__ >> 0 & 0x1; + pDst->incapable = tmp52__ >> 1 & 0x1; + pDst->refused = tmp52__ >> 2 & 0x1; + pDst->unused = tmp52__ >> 3 & 0x1f; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -5317,15 +5337,15 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp52__ = *pBuf; + tmp53__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->report.Basic.bss = tmp52__ >> 0 & 0x1; - pDst->report.Basic.ofdm_preamble = tmp52__ >> 1 & 0x1; - pDst->report.Basic.unid_signal = tmp52__ >> 2 & 0x1; - pDst->report.Basic.rader = tmp52__ >> 3 & 0x1; - pDst->report.Basic.unmeasured = tmp52__ >> 4 & 0x1; - pDst->report.Basic.unused = tmp52__ >> 5 & 0x7; + pDst->report.Basic.bss = tmp53__ >> 0 & 0x1; + pDst->report.Basic.ofdm_preamble = tmp53__ >> 1 & 0x1; + pDst->report.Basic.unid_signal = tmp53__ >> 2 & 0x1; + pDst->report.Basic.rader = tmp53__ >> 3 & 0x1; + pDst->report.Basic.unmeasured = tmp53__ >> 4 & 0x1; + pDst->report.Basic.unused = tmp53__ >> 5 & 0x7; break; case 1: if (unlikely(ielen < 1)) { @@ -5489,11 +5509,11 @@ uint32_t dot11f_unpack_ie_measurement_report(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp53__ = *pBuf; + tmp54__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->report.Beacon.condensed_PHY = tmp53__ >> 0 & 0x7f; - pDst->report.Beacon.reported_frame_type = tmp53__ >> 7 & 0x1; + pDst->report.Beacon.condensed_PHY = tmp54__ >> 0 & 0x7f; + pDst->report.Beacon.reported_frame_type = tmp54__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -5634,7 +5654,7 @@ uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp54__; + uint8_t tmp55__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -5652,15 +5672,15 @@ uint32_t dot11f_unpack_ie_measurement_request(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp54__ = *pBuf; + tmp55__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->parallel = tmp54__ >> 0 & 0x1; - pDst->enable = tmp54__ >> 1 & 0x1; - pDst->request = tmp54__ >> 2 & 0x1; - pDst->report = tmp54__ >> 3 & 0x1; - pDst->durationMandatory = tmp54__ >> 4 & 0x1; - pDst->unused = tmp54__ >> 5 & 0x7; + pDst->parallel = tmp55__ >> 0 & 0x1; + pDst->enable = tmp55__ >> 1 & 0x1; + pDst->request = tmp55__ >> 2 & 0x1; + pDst->report = tmp55__ >> 3 & 0x1; + pDst->durationMandatory = tmp55__ >> 4 & 0x1; + pDst->unused = tmp55__ >> 5 & 0x7; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -5862,7 +5882,7 @@ uint32_t dot11f_unpack_ie_mobility_domain(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp55__; + uint8_t tmp56__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -5880,10 +5900,10 @@ uint32_t dot11f_unpack_ie_mobility_domain(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp55__ = *pBuf; - pDst->overDSCap = tmp55__ >> 0 & 0x1; - pDst->resourceReqCap = tmp55__ >> 1 & 0x1; - pDst->reserved = tmp55__ >> 2 & 0x3f; + tmp56__ = *pBuf; + pDst->overDSCap = tmp56__ >> 0 & 0x1; + pDst->resourceReqCap = tmp56__ >> 1 & 0x1; + pDst->reserved = tmp56__ >> 2 & 0x3f; (void)pCtx; return status; } /* End dot11f_unpack_ie_mobility_domain. */ @@ -5925,8 +5945,8 @@ uint32_t dot11f_unpack_ie_neighbor_report(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp56__; uint8_t tmp57__; + uint8_t tmp58__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -5944,28 +5964,28 @@ uint32_t dot11f_unpack_ie_neighbor_report(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp56__ = *pBuf; + tmp57__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->APReachability = tmp56__ >> 0 & 0x3; - pDst->Security = tmp56__ >> 2 & 0x1; - pDst->KeyScope = tmp56__ >> 3 & 0x1; - pDst->SpecMgmtCap = tmp56__ >> 4 & 0x1; - pDst->QosCap = tmp56__ >> 5 & 0x1; - pDst->apsd = tmp56__ >> 6 & 0x1; - pDst->rrm = tmp56__ >> 7 & 0x1; + pDst->APReachability = tmp57__ >> 0 & 0x3; + pDst->Security = tmp57__ >> 2 & 0x1; + pDst->KeyScope = tmp57__ >> 3 & 0x1; + pDst->SpecMgmtCap = tmp57__ >> 4 & 0x1; + pDst->QosCap = tmp57__ >> 5 & 0x1; + pDst->apsd = tmp57__ >> 6 & 0x1; + pDst->rrm = tmp57__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp57__ = *pBuf; + tmp58__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->DelayedBA = tmp57__ >> 0 & 0x1; - pDst->ImmBA = tmp57__ >> 1 & 0x1; - pDst->MobilityDomain = tmp57__ >> 2 & 0x1; - pDst->reserved = tmp57__ >> 3 & 0x1f; + pDst->DelayedBA = tmp58__ >> 0 & 0x1; + pDst->ImmBA = tmp58__ >> 1 & 0x1; + pDst->MobilityDomain = tmp58__ >> 2 & 0x1; + pDst->reserved = tmp58__ >> 3 & 0x1f; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -6092,7 +6112,7 @@ uint32_t dot11f_unpack_ie_operating_mode(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp58__; + uint8_t tmp59__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -6102,12 +6122,12 @@ uint32_t dot11f_unpack_ie_operating_mode(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp58__ = *pBuf; - pDst->chanWidth = tmp58__ >> 0 & 0x3; - pDst->vht_160_80p80_supp = tmp58__ >> 2 & 0x1; - pDst->no_ldpc = tmp58__ >> 3 & 0x1; - pDst->rxNSS = tmp58__ >> 4 & 0x7; - pDst->rxNSSType = tmp58__ >> 7 & 0x1; + tmp59__ = *pBuf; + pDst->chanWidth = tmp59__ >> 0 & 0x3; + pDst->vht_160_80p80_supp = tmp59__ >> 2 & 0x1; + pDst->no_ldpc = tmp59__ >> 3 & 0x1; + pDst->rxNSS = tmp59__ >> 4 & 0x7; + pDst->rxNSSType = tmp59__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_operating_mode. */ @@ -6444,7 +6464,7 @@ uint32_t dot11f_unpack_ie_pu_buffer_status(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp59__; + uint8_t tmp60__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -6454,12 +6474,12 @@ uint32_t dot11f_unpack_ie_pu_buffer_status(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp59__ = *pBuf; - pDst->ac_bk_traffic_aval = tmp59__ >> 0 & 0x1; - pDst->ac_be_traffic_aval = tmp59__ >> 1 & 0x1; - pDst->ac_vi_traffic_aval = tmp59__ >> 2 & 0x1; - pDst->ac_vo_traffic_aval = tmp59__ >> 3 & 0x1; - pDst->reserved = tmp59__ >> 4 & 0xf; + tmp60__ = *pBuf; + pDst->ac_bk_traffic_aval = tmp60__ >> 0 & 0x1; + pDst->ac_be_traffic_aval = tmp60__ >> 1 & 0x1; + pDst->ac_vi_traffic_aval = tmp60__ >> 2 & 0x1; + pDst->ac_vo_traffic_aval = tmp60__ >> 3 & 0x1; + pDst->reserved = tmp60__ >> 4 & 0xf; (void)pCtx; return status; } /* End dot11f_unpack_ie_pu_buffer_status. */ @@ -6602,7 +6622,7 @@ uint32_t dot11f_unpack_ie_qos_caps_ap(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp60__; + uint8_t tmp61__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -6612,12 +6632,12 @@ uint32_t dot11f_unpack_ie_qos_caps_ap(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp60__ = *pBuf; - pDst->count = tmp60__ >> 0 & 0xf; - pDst->qack = tmp60__ >> 4 & 0x1; - pDst->qreq = tmp60__ >> 5 & 0x1; - pDst->txopreq = tmp60__ >> 6 & 0x1; - pDst->reserved = tmp60__ >> 7 & 0x1; + tmp61__ = *pBuf; + pDst->count = tmp61__ >> 0 & 0xf; + pDst->qack = tmp61__ >> 4 & 0x1; + pDst->qreq = tmp61__ >> 5 & 0x1; + pDst->txopreq = tmp61__ >> 6 & 0x1; + pDst->reserved = tmp61__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_qos_caps_ap. */ @@ -6632,7 +6652,7 @@ uint32_t dot11f_unpack_ie_qos_caps_station(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp61__; + uint8_t tmp62__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -6642,14 +6662,14 @@ uint32_t dot11f_unpack_ie_qos_caps_station(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp61__ = *pBuf; - pDst->acvo_uapsd = tmp61__ >> 0 & 0x1; - pDst->acvi_uapsd = tmp61__ >> 1 & 0x1; - pDst->acbk_uapsd = tmp61__ >> 2 & 0x1; - pDst->acbe_uapsd = tmp61__ >> 3 & 0x1; - pDst->qack = tmp61__ >> 4 & 0x1; - pDst->max_sp_length = tmp61__ >> 5 & 0x3; - pDst->more_data_ack = tmp61__ >> 7 & 0x1; + tmp62__ = *pBuf; + pDst->acvo_uapsd = tmp62__ >> 0 & 0x1; + pDst->acvi_uapsd = tmp62__ >> 1 & 0x1; + pDst->acbk_uapsd = tmp62__ >> 2 & 0x1; + pDst->acbe_uapsd = tmp62__ >> 3 & 0x1; + pDst->qack = tmp62__ >> 4 & 0x1; + pDst->max_sp_length = tmp62__ >> 5 & 0x3; + pDst->more_data_ack = tmp62__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_qos_caps_station. */ @@ -7407,7 +7427,7 @@ uint32_t dot11f_unpack_ie_wapi(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp62__; + uint16_t tmp63__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -7479,11 +7499,11 @@ uint32_t dot11f_unpack_ie_wapi(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp62__, pBuf, 0); + framesntohs(pCtx, &tmp63__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->preauth = tmp62__ >> 0 & 0x1; - pDst->reserved = tmp62__ >> 1 & 0x7fff; + pDst->preauth = tmp63__ >> 0 & 0x1; + pDst->reserved = tmp63__ >> 1 & 0x7fff; if (!ielen) { pDst->bkid_count = 0U; return 0U; @@ -7604,7 +7624,7 @@ uint32_t dot11f_unpack_ie_wmm_caps(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp63__; + uint8_t tmp64__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -7626,12 +7646,12 @@ uint32_t dot11f_unpack_ie_wmm_caps(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp63__ = *pBuf; - pDst->reserved = tmp63__ >> 0 & 0xf; - pDst->qack = tmp63__ >> 4 & 0x1; - pDst->queue_request = tmp63__ >> 5 & 0x1; - pDst->txop_request = tmp63__ >> 6 & 0x1; - pDst->more_ack = tmp63__ >> 7 & 0x1; + tmp64__ = *pBuf; + pDst->reserved = tmp64__ >> 0 & 0xf; + pDst->qack = tmp64__ >> 4 & 0x1; + pDst->queue_request = tmp64__ >> 5 & 0x1; + pDst->txop_request = tmp64__ >> 6 & 0x1; + pDst->more_ack = tmp64__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_wmm_caps. */ @@ -7644,42 +7664,6 @@ uint32_t dot11f_unpack_ie_wmm_info_ap(tpAniSirGlobal pCtx, uint8_t ielen, tDot11fIEWMMInfoAp *pDst, bool append_ie) -{ - uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp64__; - (void) pBuf; (void)ielen; /* Shutup the compiler */ - if (pDst->present) - return DOT11F_DUPLICATE_IE; - pDst->present = 1; - if (unlikely(ielen < 1)) { - pDst->present = 0; - return DOT11F_INCOMPLETE_IE; - } - - pDst->version = *pBuf; - pBuf += 1; - ielen -= (uint8_t)1; - if (unlikely(ielen < 1)) { - pDst->present = 0; - return DOT11F_INCOMPLETE_IE; - } - - tmp64__ = *pBuf; - pDst->param_set_count = tmp64__ >> 0 & 0xf; - pDst->reserved = tmp64__ >> 4 & 0x7; - pDst->uapsd = tmp64__ >> 7 & 0x1; - (void)pCtx; - return status; -} /* End dot11f_unpack_ie_wmm_info_ap. */ - -#define SigIeWMMInfoAp (0x0070) - - -uint32_t dot11f_unpack_ie_wmm_info_station(tpAniSirGlobal pCtx, - uint8_t *pBuf, - uint8_t ielen, - tDot11fIEWMMInfoStation *pDst, - bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; uint8_t tmp65__; @@ -7701,13 +7685,49 @@ uint32_t dot11f_unpack_ie_wmm_info_station(tpAniSirGlobal pCtx, } tmp65__ = *pBuf; - pDst->acvo_uapsd = tmp65__ >> 0 & 0x1; - pDst->acvi_uapsd = tmp65__ >> 1 & 0x1; - pDst->acbk_uapsd = tmp65__ >> 2 & 0x1; - pDst->acbe_uapsd = tmp65__ >> 3 & 0x1; - pDst->reserved1 = tmp65__ >> 4 & 0x1; - pDst->max_sp_length = tmp65__ >> 5 & 0x3; - pDst->reserved2 = tmp65__ >> 7 & 0x1; + pDst->param_set_count = tmp65__ >> 0 & 0xf; + pDst->reserved = tmp65__ >> 4 & 0x7; + pDst->uapsd = tmp65__ >> 7 & 0x1; + (void)pCtx; + return status; +} /* End dot11f_unpack_ie_wmm_info_ap. */ + +#define SigIeWMMInfoAp (0x0070) + + +uint32_t dot11f_unpack_ie_wmm_info_station(tpAniSirGlobal pCtx, + uint8_t *pBuf, + uint8_t ielen, + tDot11fIEWMMInfoStation *pDst, + bool append_ie) +{ + uint32_t status = DOT11F_PARSE_SUCCESS; + uint8_t tmp66__; + (void) pBuf; (void)ielen; /* Shutup the compiler */ + if (pDst->present) + return DOT11F_DUPLICATE_IE; + pDst->present = 1; + if (unlikely(ielen < 1)) { + pDst->present = 0; + return DOT11F_INCOMPLETE_IE; + } + + pDst->version = *pBuf; + pBuf += 1; + ielen -= (uint8_t)1; + if (unlikely(ielen < 1)) { + pDst->present = 0; + return DOT11F_INCOMPLETE_IE; + } + + tmp66__ = *pBuf; + pDst->acvo_uapsd = tmp66__ >> 0 & 0x1; + pDst->acvi_uapsd = tmp66__ >> 1 & 0x1; + pDst->acbk_uapsd = tmp66__ >> 2 & 0x1; + pDst->acbe_uapsd = tmp66__ >> 3 & 0x1; + pDst->reserved1 = tmp66__ >> 4 & 0x1; + pDst->max_sp_length = tmp66__ >> 5 & 0x3; + pDst->reserved2 = tmp66__ >> 7 & 0x1; (void)pCtx; return status; } /* End dot11f_unpack_ie_wmm_info_station. */ @@ -7722,7 +7742,6 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp66__; uint8_t tmp67__; uint8_t tmp68__; uint8_t tmp69__; @@ -7730,6 +7749,7 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t tmp71__; uint8_t tmp72__; uint8_t tmp73__; + uint8_t tmp74__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -7767,23 +7787,23 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp66__ = *pBuf; + tmp67__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_aifsn = tmp66__ >> 0 & 0xf; - pDst->acbe_acm = tmp66__ >> 4 & 0x1; - pDst->acbe_aci = tmp66__ >> 5 & 0x3; - pDst->unused1 = tmp66__ >> 7 & 0x1; + pDst->acbe_aifsn = tmp67__ >> 0 & 0xf; + pDst->acbe_acm = tmp67__ >> 4 & 0x1; + pDst->acbe_aci = tmp67__ >> 5 & 0x3; + pDst->unused1 = tmp67__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp67__ = *pBuf; + tmp68__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_acwmin = tmp67__ >> 0 & 0xf; - pDst->acbe_acwmax = tmp67__ >> 4 & 0xf; + pDst->acbe_acwmin = tmp68__ >> 0 & 0xf; + pDst->acbe_acwmax = tmp68__ >> 4 & 0xf; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -7797,23 +7817,23 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp68__ = *pBuf; + tmp69__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_aifsn = tmp68__ >> 0 & 0xf; - pDst->acbk_acm = tmp68__ >> 4 & 0x1; - pDst->acbk_aci = tmp68__ >> 5 & 0x3; - pDst->unused2 = tmp68__ >> 7 & 0x1; + pDst->acbk_aifsn = tmp69__ >> 0 & 0xf; + pDst->acbk_acm = tmp69__ >> 4 & 0x1; + pDst->acbk_aci = tmp69__ >> 5 & 0x3; + pDst->unused2 = tmp69__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp69__ = *pBuf; + tmp70__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_acwmin = tmp69__ >> 0 & 0xf; - pDst->acbk_acwmax = tmp69__ >> 4 & 0xf; + pDst->acbk_acwmin = tmp70__ >> 0 & 0xf; + pDst->acbk_acwmax = tmp70__ >> 4 & 0xf; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -7827,23 +7847,23 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp70__ = *pBuf; + tmp71__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_aifsn = tmp70__ >> 0 & 0xf; - pDst->acvi_acm = tmp70__ >> 4 & 0x1; - pDst->acvi_aci = tmp70__ >> 5 & 0x3; - pDst->unused3 = tmp70__ >> 7 & 0x1; + pDst->acvi_aifsn = tmp71__ >> 0 & 0xf; + pDst->acvi_acm = tmp71__ >> 4 & 0x1; + pDst->acvi_aci = tmp71__ >> 5 & 0x3; + pDst->unused3 = tmp71__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp71__ = *pBuf; + tmp72__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_acwmin = tmp71__ >> 0 & 0xf; - pDst->acvi_acwmax = tmp71__ >> 4 & 0xf; + pDst->acvi_acwmin = tmp72__ >> 0 & 0xf; + pDst->acvi_acwmax = tmp72__ >> 4 & 0xf; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -7857,23 +7877,23 @@ uint32_t dot11f_unpack_ie_wmm_params(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp72__ = *pBuf; + tmp73__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_aifsn = tmp72__ >> 0 & 0xf; - pDst->acvo_acm = tmp72__ >> 4 & 0x1; - pDst->acvo_aci = tmp72__ >> 5 & 0x3; - pDst->unused4 = tmp72__ >> 7 & 0x1; + pDst->acvo_aifsn = tmp73__ >> 0 & 0xf; + pDst->acvo_acm = tmp73__ >> 4 & 0x1; + pDst->acvo_aci = tmp73__ >> 5 & 0x3; + pDst->unused4 = tmp73__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp73__ = *pBuf; + tmp74__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_acwmin = tmp73__ >> 0 & 0xf; - pDst->acvo_acwmax = tmp73__ >> 4 & 0xf; + pDst->acvo_acwmin = tmp74__ >> 0 & 0xf; + pDst->acvo_acwmax = tmp74__ >> 4 & 0xf; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -8522,7 +8542,7 @@ uint32_t dot11f_unpack_ie_addba_extn_element(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp74__; + uint8_t tmp75__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -8532,10 +8552,10 @@ uint32_t dot11f_unpack_ie_addba_extn_element(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp74__ = *pBuf; - pDst->no_fragmentation = tmp74__ >> 0 & 0x1; - pDst->he_frag_operation = tmp74__ >> 1 & 0x3; - pDst->reserved = tmp74__ >> 3 & 0x1f; + tmp75__ = *pBuf; + pDst->no_fragmentation = tmp75__ >> 0 & 0x1; + pDst->he_frag_operation = tmp75__ >> 1 & 0x3; + pDst->reserved = tmp75__ >> 3 & 0x1f; (void)pCtx; return status; } /* End dot11f_unpack_ie_addba_extn_element. */ @@ -8550,7 +8570,7 @@ uint32_t dot11f_unpack_ie_bss_color_change(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp75__; + uint8_t tmp76__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -8568,9 +8588,9 @@ uint32_t dot11f_unpack_ie_bss_color_change(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp75__ = *pBuf; - pDst->new_color = tmp75__ >> 0 & 0x3f; - pDst->reserved = tmp75__ >> 6 & 0x3; + tmp76__ = *pBuf; + pDst->new_color = tmp76__ >> 0 & 0x3f; + pDst->reserved = tmp76__ >> 6 & 0x3; (void)pCtx; return status; } /* End dot11f_unpack_ie_bss_color_change. */ @@ -8812,7 +8832,7 @@ uint32_t dot11f_unpack_ie_fils_indication(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp76__; + uint16_t tmp77__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -8822,18 +8842,18 @@ uint32_t dot11f_unpack_ie_fils_indication(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp76__, pBuf, 0); + framesntohs(pCtx, &tmp77__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->public_key_identifiers_cnt = tmp76__ >> 0 & 0x7; - pDst->realm_identifiers_cnt = tmp76__ >> 3 & 0x7; - pDst->is_ip_config_supported = tmp76__ >> 6 & 0x1; - pDst->is_cache_id_present = tmp76__ >> 7 & 0x1; - pDst->is_hessid_present = tmp76__ >> 8 & 0x1; - pDst->is_fils_sk_auth_supported = tmp76__ >> 9 & 0x1; - pDst->is_fils_sk_auth_pfs_supported = tmp76__ >> 10 & 0x1; - pDst->is_pk_auth_supported = tmp76__ >> 11 & 0x1; - pDst->reserved = tmp76__ >> 12 & 0xf; + pDst->public_key_identifiers_cnt = tmp77__ >> 0 & 0x7; + pDst->realm_identifiers_cnt = tmp77__ >> 3 & 0x7; + pDst->is_ip_config_supported = tmp77__ >> 6 & 0x1; + pDst->is_cache_id_present = tmp77__ >> 7 & 0x1; + pDst->is_hessid_present = tmp77__ >> 8 & 0x1; + pDst->is_fils_sk_auth_supported = tmp77__ >> 9 & 0x1; + pDst->is_fils_sk_auth_pfs_supported = tmp77__ >> 10 & 0x1; + pDst->is_pk_auth_supported = tmp77__ >> 11 & 0x1; + pDst->reserved = tmp77__ >> 12 & 0xf; pDst->num_variable_data = (uint8_t)(ielen); DOT11F_MEMCPY(pCtx, pDst->variable_data, pBuf, (ielen)); (void)pCtx; @@ -9014,7 +9034,7 @@ uint32_t dot11f_unpack_ie_he_6ghz_band_cap(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp77__; + uint16_t tmp78__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -9024,15 +9044,15 @@ uint32_t dot11f_unpack_ie_he_6ghz_band_cap(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp77__, pBuf, 0); - pDst->min_mpdu_start_spacing = tmp77__ >> 0 & 0x7; - pDst->max_ampdu_len_exp = tmp77__ >> 3 & 0x7; - pDst->max_mpdu_len = tmp77__ >> 6 & 0x7; - pDst->sm_pow_save = tmp77__ >> 9 & 0x3; - pDst->rd_responder = tmp77__ >> 11 & 0x1; - pDst->rx_ant_pattern_consistency = tmp77__ >> 12 & 0x1; - pDst->tx_ant_pattern_consistency = tmp77__ >> 13 & 0x1; - pDst->reserved = tmp77__ >> 14 & 0x3; + framesntohs(pCtx, &tmp78__, pBuf, 0); + pDst->min_mpdu_start_spacing = tmp78__ >> 0 & 0x7; + pDst->max_ampdu_len_exp = tmp78__ >> 3 & 0x7; + pDst->max_mpdu_len = tmp78__ >> 6 & 0x7; + pDst->sm_pow_save = tmp78__ >> 9 & 0x3; + pDst->rd_responder = tmp78__ >> 11 & 0x1; + pDst->rx_ant_pattern_consistency = tmp78__ >> 12 & 0x1; + pDst->tx_ant_pattern_consistency = tmp78__ >> 13 & 0x1; + pDst->reserved = tmp78__ >> 14 & 0x3; (void)pCtx; return status; } /* End dot11f_unpack_ie_he_6ghz_band_cap. */ @@ -9047,11 +9067,11 @@ uint32_t dot11f_unpack_ie_he_cap(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint32_t tmp78__; - uint16_t tmp79__; - uint32_t tmp80__; + uint32_t tmp79__; + uint16_t tmp80__; uint32_t tmp81__; - uint16_t tmp82__; + uint32_t tmp82__; + uint16_t tmp83__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -9061,84 +9081,54 @@ uint32_t dot11f_unpack_ie_he_cap(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - framesntohl(pCtx, &tmp78__, pBuf, 0); + framesntohl(pCtx, &tmp79__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->htc_he = tmp78__ >> 0 & 0x1; - pDst->twt_request = tmp78__ >> 1 & 0x1; - pDst->twt_responder = tmp78__ >> 2 & 0x1; - pDst->fragmentation = tmp78__ >> 3 & 0x3; - pDst->max_num_frag_msdu_amsdu_exp = tmp78__ >> 5 & 0x7; - pDst->min_frag_size = tmp78__ >> 8 & 0x3; - pDst->trigger_frm_mac_pad = tmp78__ >> 10 & 0x3; - pDst->multi_tid_aggr_rx_supp = tmp78__ >> 12 & 0x7; - pDst->he_link_adaptation = tmp78__ >> 15 & 0x3; - pDst->all_ack = tmp78__ >> 17 & 0x1; - pDst->trigd_rsp_sched = tmp78__ >> 18 & 0x1; - pDst->a_bsr = tmp78__ >> 19 & 0x1; - pDst->broadcast_twt = tmp78__ >> 20 & 0x1; - pDst->ba_32bit_bitmap = tmp78__ >> 21 & 0x1; - pDst->mu_cascade = tmp78__ >> 22 & 0x1; - pDst->ack_enabled_multitid = tmp78__ >> 23 & 0x1; - pDst->reserved = tmp78__ >> 24 & 0x1; - pDst->omi_a_ctrl = tmp78__ >> 25 & 0x1; - pDst->ofdma_ra = tmp78__ >> 26 & 0x1; - pDst->max_ampdu_len_exp_ext = tmp78__ >> 27 & 0x3; - pDst->amsdu_frag = tmp78__ >> 29 & 0x1; - pDst->flex_twt_sched = tmp78__ >> 30 & 0x1; - pDst->rx_ctrl_frame = tmp78__ >> 31 & 0x1; + pDst->htc_he = tmp79__ >> 0 & 0x1; + pDst->twt_request = tmp79__ >> 1 & 0x1; + pDst->twt_responder = tmp79__ >> 2 & 0x1; + pDst->fragmentation = tmp79__ >> 3 & 0x3; + pDst->max_num_frag_msdu_amsdu_exp = tmp79__ >> 5 & 0x7; + pDst->min_frag_size = tmp79__ >> 8 & 0x3; + pDst->trigger_frm_mac_pad = tmp79__ >> 10 & 0x3; + pDst->multi_tid_aggr_rx_supp = tmp79__ >> 12 & 0x7; + pDst->he_link_adaptation = tmp79__ >> 15 & 0x3; + pDst->all_ack = tmp79__ >> 17 & 0x1; + pDst->trigd_rsp_sched = tmp79__ >> 18 & 0x1; + pDst->a_bsr = tmp79__ >> 19 & 0x1; + pDst->broadcast_twt = tmp79__ >> 20 & 0x1; + pDst->ba_32bit_bitmap = tmp79__ >> 21 & 0x1; + pDst->mu_cascade = tmp79__ >> 22 & 0x1; + pDst->ack_enabled_multitid = tmp79__ >> 23 & 0x1; + pDst->reserved = tmp79__ >> 24 & 0x1; + pDst->omi_a_ctrl = tmp79__ >> 25 & 0x1; + pDst->ofdma_ra = tmp79__ >> 26 & 0x1; + pDst->max_ampdu_len_exp_ext = tmp79__ >> 27 & 0x3; + pDst->amsdu_frag = tmp79__ >> 29 & 0x1; + pDst->flex_twt_sched = tmp79__ >> 30 & 0x1; + pDst->rx_ctrl_frame = tmp79__ >> 31 & 0x1; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp79__, pBuf, 0); + framesntohs(pCtx, &tmp80__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->bsrp_ampdu_aggr = tmp79__ >> 0 & 0x1; - pDst->qtp = tmp79__ >> 1 & 0x1; - pDst->a_bqr = tmp79__ >> 2 & 0x1; - pDst->spatial_reuse_param_rspder = tmp79__ >> 3 & 0x1; - pDst->ndp_feedback_supp = tmp79__ >> 4 & 0x1; - pDst->ops_supp = tmp79__ >> 5 & 0x1; - pDst->amsdu_in_ampdu = tmp79__ >> 6 & 0x1; - pDst->multi_tid_aggr_tx_supp = tmp79__ >> 7 & 0x7; - pDst->he_sub_ch_sel_tx_supp = tmp79__ >> 10 & 0x1; - pDst->ul_2x996_tone_ru_supp = tmp79__ >> 11 & 0x1; - pDst->om_ctrl_ul_mu_data_dis_rx = tmp79__ >> 12 & 0x1; - pDst->he_dynamic_smps = tmp79__ >> 13 & 0x1; - pDst->punctured_sounding_supp = tmp79__ >> 14 & 0x1; - pDst->ht_vht_trg_frm_rx_supp = tmp79__ >> 15 & 0x1; - if (unlikely(ielen < 4)) { - pDst->present = 0; - return DOT11F_INCOMPLETE_IE; - } - - framesntohl(pCtx, &tmp80__, pBuf, 0); - pBuf += 4; - ielen -= 4; - pDst->reserved2 = tmp80__ >> 0 & 0x1; - pDst->chan_width_0 = tmp80__ >> 1 & 0x1; - pDst->chan_width_1 = tmp80__ >> 2 & 0x1; - pDst->chan_width_2 = tmp80__ >> 3 & 0x1; - pDst->chan_width_3 = tmp80__ >> 4 & 0x1; - pDst->chan_width_4 = tmp80__ >> 5 & 0x1; - pDst->chan_width_5 = tmp80__ >> 6 & 0x1; - pDst->chan_width_6 = tmp80__ >> 7 & 0x1; - pDst->rx_pream_puncturing = tmp80__ >> 8 & 0xf; - pDst->device_class = tmp80__ >> 12 & 0x1; - pDst->ldpc_coding = tmp80__ >> 13 & 0x1; - pDst->he_1x_ltf_800_gi_ppdu = tmp80__ >> 14 & 0x1; - pDst->midamble_tx_rx_max_nsts = tmp80__ >> 15 & 0x3; - pDst->he_4x_ltf_3200_gi_ndp = tmp80__ >> 17 & 0x1; - pDst->tb_ppdu_tx_stbc_lt_80mhz = tmp80__ >> 18 & 0x1; - pDst->rx_stbc_lt_80mhz = tmp80__ >> 19 & 0x1; - pDst->doppler = tmp80__ >> 20 & 0x3; - pDst->ul_mu = tmp80__ >> 22 & 0x3; - pDst->dcm_enc_tx = tmp80__ >> 24 & 0x7; - pDst->dcm_enc_rx = tmp80__ >> 27 & 0x7; - pDst->ul_he_mu = tmp80__ >> 30 & 0x1; - pDst->su_beamformer = tmp80__ >> 31 & 0x1; + pDst->bsrp_ampdu_aggr = tmp80__ >> 0 & 0x1; + pDst->qtp = tmp80__ >> 1 & 0x1; + pDst->a_bqr = tmp80__ >> 2 & 0x1; + pDst->spatial_reuse_param_rspder = tmp80__ >> 3 & 0x1; + pDst->ndp_feedback_supp = tmp80__ >> 4 & 0x1; + pDst->ops_supp = tmp80__ >> 5 & 0x1; + pDst->amsdu_in_ampdu = tmp80__ >> 6 & 0x1; + pDst->multi_tid_aggr_tx_supp = tmp80__ >> 7 & 0x7; + pDst->he_sub_ch_sel_tx_supp = tmp80__ >> 10 & 0x1; + pDst->ul_2x996_tone_ru_supp = tmp80__ >> 11 & 0x1; + pDst->om_ctrl_ul_mu_data_dis_rx = tmp80__ >> 12 & 0x1; + pDst->he_dynamic_smps = tmp80__ >> 13 & 0x1; + pDst->punctured_sounding_supp = tmp80__ >> 14 & 0x1; + pDst->ht_vht_trg_frm_rx_supp = tmp80__ >> 15 & 0x1; if (unlikely(ielen < 4)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -9147,48 +9137,78 @@ uint32_t dot11f_unpack_ie_he_cap(tpAniSirGlobal pCtx, framesntohl(pCtx, &tmp81__, pBuf, 0); pBuf += 4; ielen -= 4; - pDst->su_beamformee = tmp81__ >> 0 & 0x1; - pDst->mu_beamformer = tmp81__ >> 1 & 0x1; - pDst->bfee_sts_lt_80 = tmp81__ >> 2 & 0x7; - pDst->bfee_sts_gt_80 = tmp81__ >> 5 & 0x7; - pDst->num_sounding_lt_80 = tmp81__ >> 8 & 0x7; - pDst->num_sounding_gt_80 = tmp81__ >> 11 & 0x7; - pDst->su_feedback_tone16 = tmp81__ >> 14 & 0x1; - pDst->mu_feedback_tone16 = tmp81__ >> 15 & 0x1; - pDst->codebook_su = tmp81__ >> 16 & 0x1; - pDst->codebook_mu = tmp81__ >> 17 & 0x1; - pDst->beamforming_feedback = tmp81__ >> 18 & 0x7; - pDst->he_er_su_ppdu = tmp81__ >> 21 & 0x1; - pDst->dl_mu_mimo_part_bw = tmp81__ >> 22 & 0x1; - pDst->ppet_present = tmp81__ >> 23 & 0x1; - pDst->srp = tmp81__ >> 24 & 0x1; - pDst->power_boost = tmp81__ >> 25 & 0x1; - pDst->he_ltf_800_gi_4x = tmp81__ >> 26 & 0x1; - pDst->max_nc = tmp81__ >> 27 & 0x7; - pDst->tb_ppdu_tx_stbc_gt_80mhz = tmp81__ >> 30 & 0x1; - pDst->rx_stbc_gt_80mhz = tmp81__ >> 31 & 0x1; + pDst->reserved2 = tmp81__ >> 0 & 0x1; + pDst->chan_width_0 = tmp81__ >> 1 & 0x1; + pDst->chan_width_1 = tmp81__ >> 2 & 0x1; + pDst->chan_width_2 = tmp81__ >> 3 & 0x1; + pDst->chan_width_3 = tmp81__ >> 4 & 0x1; + pDst->chan_width_4 = tmp81__ >> 5 & 0x1; + pDst->chan_width_5 = tmp81__ >> 6 & 0x1; + pDst->chan_width_6 = tmp81__ >> 7 & 0x1; + pDst->rx_pream_puncturing = tmp81__ >> 8 & 0xf; + pDst->device_class = tmp81__ >> 12 & 0x1; + pDst->ldpc_coding = tmp81__ >> 13 & 0x1; + pDst->he_1x_ltf_800_gi_ppdu = tmp81__ >> 14 & 0x1; + pDst->midamble_tx_rx_max_nsts = tmp81__ >> 15 & 0x3; + pDst->he_4x_ltf_3200_gi_ndp = tmp81__ >> 17 & 0x1; + pDst->tb_ppdu_tx_stbc_lt_80mhz = tmp81__ >> 18 & 0x1; + pDst->rx_stbc_lt_80mhz = tmp81__ >> 19 & 0x1; + pDst->doppler = tmp81__ >> 20 & 0x3; + pDst->ul_mu = tmp81__ >> 22 & 0x3; + pDst->dcm_enc_tx = tmp81__ >> 24 & 0x7; + pDst->dcm_enc_rx = tmp81__ >> 27 & 0x7; + pDst->ul_he_mu = tmp81__ >> 30 & 0x1; + pDst->su_beamformer = tmp81__ >> 31 & 0x1; + if (unlikely(ielen < 4)) { + pDst->present = 0; + return DOT11F_INCOMPLETE_IE; + } + + framesntohl(pCtx, &tmp82__, pBuf, 0); + pBuf += 4; + ielen -= 4; + pDst->su_beamformee = tmp82__ >> 0 & 0x1; + pDst->mu_beamformer = tmp82__ >> 1 & 0x1; + pDst->bfee_sts_lt_80 = tmp82__ >> 2 & 0x7; + pDst->bfee_sts_gt_80 = tmp82__ >> 5 & 0x7; + pDst->num_sounding_lt_80 = tmp82__ >> 8 & 0x7; + pDst->num_sounding_gt_80 = tmp82__ >> 11 & 0x7; + pDst->su_feedback_tone16 = tmp82__ >> 14 & 0x1; + pDst->mu_feedback_tone16 = tmp82__ >> 15 & 0x1; + pDst->codebook_su = tmp82__ >> 16 & 0x1; + pDst->codebook_mu = tmp82__ >> 17 & 0x1; + pDst->beamforming_feedback = tmp82__ >> 18 & 0x7; + pDst->he_er_su_ppdu = tmp82__ >> 21 & 0x1; + pDst->dl_mu_mimo_part_bw = tmp82__ >> 22 & 0x1; + pDst->ppet_present = tmp82__ >> 23 & 0x1; + pDst->srp = tmp82__ >> 24 & 0x1; + pDst->power_boost = tmp82__ >> 25 & 0x1; + pDst->he_ltf_800_gi_4x = tmp82__ >> 26 & 0x1; + pDst->max_nc = tmp82__ >> 27 & 0x7; + pDst->tb_ppdu_tx_stbc_gt_80mhz = tmp82__ >> 30 & 0x1; + pDst->rx_stbc_gt_80mhz = tmp82__ >> 31 & 0x1; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp82__, pBuf, 0); + framesntohs(pCtx, &tmp83__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->er_he_ltf_800_gi_4x = tmp82__ >> 0 & 0x1; - pDst->he_ppdu_20_in_40Mhz_2G = tmp82__ >> 1 & 0x1; - pDst->he_ppdu_20_in_160_80p80Mhz = tmp82__ >> 2 & 0x1; - pDst->he_ppdu_80_in_160_80p80Mhz = tmp82__ >> 3 & 0x1; - pDst->er_1x_he_ltf_gi = tmp82__ >> 4 & 0x1; - pDst->midamble_tx_rx_1x_he_ltf = tmp82__ >> 5 & 0x1; - pDst->dcm_max_bw = tmp82__ >> 6 & 0x3; - pDst->longer_than_16_he_sigb_ofdm_sym = tmp82__ >> 8 & 0x1; - pDst->non_trig_cqi_feedback = tmp82__ >> 9 & 0x1; - pDst->tx_1024_qam_lt_242_tone_ru = tmp82__ >> 10 & 0x1; - pDst->rx_1024_qam_lt_242_tone_ru = tmp82__ >> 11 & 0x1; - pDst->rx_full_bw_su_he_mu_compress_sigb = tmp82__ >> 12 & 0x1; - pDst->rx_full_bw_su_he_mu_non_cmpr_sigb = tmp82__ >> 13 & 0x1; - pDst->reserved3 = tmp82__ >> 14 & 0x3; + pDst->er_he_ltf_800_gi_4x = tmp83__ >> 0 & 0x1; + pDst->he_ppdu_20_in_40Mhz_2G = tmp83__ >> 1 & 0x1; + pDst->he_ppdu_20_in_160_80p80Mhz = tmp83__ >> 2 & 0x1; + pDst->he_ppdu_80_in_160_80p80Mhz = tmp83__ >> 3 & 0x1; + pDst->er_1x_he_ltf_gi = tmp83__ >> 4 & 0x1; + pDst->midamble_tx_rx_1x_he_ltf = tmp83__ >> 5 & 0x1; + pDst->dcm_max_bw = tmp83__ >> 6 & 0x3; + pDst->longer_than_16_he_sigb_ofdm_sym = tmp83__ >> 8 & 0x1; + pDst->non_trig_cqi_feedback = tmp83__ >> 9 & 0x1; + pDst->tx_1024_qam_lt_242_tone_ru = tmp83__ >> 10 & 0x1; + pDst->rx_1024_qam_lt_242_tone_ru = tmp83__ >> 11 & 0x1; + pDst->rx_full_bw_su_he_mu_compress_sigb = tmp83__ >> 12 & 0x1; + pDst->rx_full_bw_su_he_mu_non_cmpr_sigb = tmp83__ >> 13 & 0x1; + pDst->reserved3 = tmp83__ >> 14 & 0x3; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -9292,10 +9312,10 @@ uint32_t dot11f_unpack_ie_he_op(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint16_t tmp83__; - uint8_t tmp84__; + uint16_t tmp84__; uint8_t tmp85__; uint8_t tmp86__; + uint8_t tmp87__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -9305,25 +9325,14 @@ uint32_t dot11f_unpack_ie_he_op(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - framesntohs(pCtx, &tmp83__, pBuf, 0); + framesntohs(pCtx, &tmp84__, pBuf, 0); pBuf += 2; ielen -= 2; - pDst->default_pe = tmp83__ >> 0 & 0x7; - pDst->twt_required = tmp83__ >> 3 & 0x1; - pDst->txop_rts_threshold = tmp83__ >> 4 & 0x3ff; - pDst->vht_oper_present = tmp83__ >> 14 & 0x1; - pDst->co_located_bss = tmp83__ >> 15 & 0x1; - if (unlikely(ielen < 1)) { - pDst->present = 0; - return DOT11F_INCOMPLETE_IE; - } - - tmp84__ = *pBuf; - pBuf += 1; - ielen -= 1; - pDst->er_su_disable = tmp84__ >> 0 & 0x1; - pDst->oper_info_6g_present = tmp84__ >> 1 & 0x1; - pDst->reserved2 = tmp84__ >> 2 & 0x3f; + pDst->default_pe = tmp84__ >> 0 & 0x7; + pDst->twt_required = tmp84__ >> 3 & 0x1; + pDst->txop_rts_threshold = tmp84__ >> 4 & 0x3ff; + pDst->vht_oper_present = tmp84__ >> 14 & 0x1; + pDst->co_located_bss = tmp84__ >> 15 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -9332,9 +9341,20 @@ uint32_t dot11f_unpack_ie_he_op(tpAniSirGlobal pCtx, tmp85__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->bss_color = tmp85__ >> 0 & 0x3f; - pDst->partial_bss_col = tmp85__ >> 6 & 0x1; - pDst->bss_col_disabled = tmp85__ >> 7 & 0x1; + pDst->er_su_disable = tmp85__ >> 0 & 0x1; + pDst->oper_info_6g_present = tmp85__ >> 1 & 0x1; + pDst->reserved2 = tmp85__ >> 2 & 0x3f; + if (unlikely(ielen < 1)) { + pDst->present = 0; + return DOT11F_INCOMPLETE_IE; + } + + tmp86__ = *pBuf; + pBuf += 1; + ielen -= 1; + pDst->bss_color = tmp86__ >> 0 & 0x3f; + pDst->partial_bss_col = tmp86__ >> 6 & 0x1; + pDst->bss_col_disabled = tmp86__ >> 7 & 0x1; if (unlikely(ielen < 2)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -9398,12 +9418,13 @@ uint32_t dot11f_unpack_ie_he_op(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp86__ = *pBuf; + tmp87__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->oper_info_6g.info.ch_width = tmp86__ >> 0 & 0x3; - pDst->oper_info_6g.info.dup_bcon = tmp86__ >> 2 & 0x1; - pDst->oper_info_6g.info.reserved = tmp86__ >> 3 & 0x1f; + pDst->oper_info_6g.info.ch_width = tmp87__ >> 0 & 0x3; + pDst->oper_info_6g.info.dup_bcon = tmp87__ >> 2 & 0x1; + pDst->oper_info_6g.info.reg_info = tmp87__ >> 3 & 0x7; + pDst->oper_info_6g.info.reserved = tmp87__ >> 6 & 0x3; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -9444,7 +9465,7 @@ uint32_t dot11f_unpack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp87__; + uint8_t tmp88__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -9454,13 +9475,13 @@ uint32_t dot11f_unpack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp87__ = *pBuf; + tmp88__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->dgaf_dis = tmp87__ >> 0 & 0x1; - pDst->hs_id_present = tmp87__ >> 1 & 0x3; - pDst->reserved = tmp87__ >> 3 & 0x1; - pDst->release_num = tmp87__ >> 4 & 0xf; + pDst->dgaf_dis = tmp88__ >> 0 & 0x1; + pDst->hs_id_present = tmp88__ >> 1 & 0x3; + pDst->reserved = tmp88__ >> 3 & 0x1; + pDst->release_num = tmp88__ >> 4 & 0xf; if (!ielen) { return 0U; } else { @@ -9501,7 +9522,7 @@ uint32_t dot11f_unpack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp88__; + uint8_t tmp89__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -9511,13 +9532,13 @@ uint32_t dot11f_unpack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp88__ = *pBuf; - pDst->info_request = tmp88__ >> 0 & 0x1; - pDst->forty_mhz_intolerant = tmp88__ >> 1 & 0x1; - pDst->twenty_mhz_bsswidth_req = tmp88__ >> 2 & 0x1; - pDst->obss_scan_exemption_req = tmp88__ >> 3 & 0x1; - pDst->obss_scan_exemption_grant = tmp88__ >> 4 & 0x1; - pDst->unused = tmp88__ >> 5 & 0x7; + tmp89__ = *pBuf; + pDst->info_request = tmp89__ >> 0 & 0x1; + pDst->forty_mhz_intolerant = tmp89__ >> 1 & 0x1; + pDst->twenty_mhz_bsswidth_req = tmp89__ >> 2 & 0x1; + pDst->obss_scan_exemption_req = tmp89__ >> 3 & 0x1; + pDst->obss_scan_exemption_grant = tmp89__ >> 4 & 0x1; + pDst->unused = tmp89__ >> 5 & 0x7; (void)pCtx; return status; } /* End dot11f_unpack_ie_ht2040_bss_coexistence. */ @@ -9565,7 +9586,6 @@ uint32_t dot11f_unpack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, bool append_ie) { uint32_t status = DOT11F_PARSE_SUCCESS; - uint8_t tmp89__; uint8_t tmp90__; uint8_t tmp91__; uint8_t tmp92__; @@ -9573,6 +9593,7 @@ uint32_t dot11f_unpack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, uint8_t tmp94__; uint8_t tmp95__; uint8_t tmp96__; + uint8_t tmp97__; (void) pBuf; (void)ielen; /* Shutup the compiler */ if (pDst->present) return DOT11F_DUPLICATE_IE; @@ -9590,23 +9611,23 @@ uint32_t dot11f_unpack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp89__ = *pBuf; + tmp90__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_aifsn = tmp89__ >> 0 & 0xf; - pDst->acbe_acm = tmp89__ >> 4 & 0x1; - pDst->acbe_aci = tmp89__ >> 5 & 0x3; - pDst->unused1 = tmp89__ >> 7 & 0x1; + pDst->acbe_aifsn = tmp90__ >> 0 & 0xf; + pDst->acbe_acm = tmp90__ >> 4 & 0x1; + pDst->acbe_aci = tmp90__ >> 5 & 0x3; + pDst->unused1 = tmp90__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp90__ = *pBuf; + tmp91__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbe_acwmin = tmp90__ >> 0 & 0xf; - pDst->acbe_acwmax = tmp90__ >> 4 & 0xf; + pDst->acbe_acwmin = tmp91__ >> 0 & 0xf; + pDst->acbe_acwmax = tmp91__ >> 4 & 0xf; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -9620,23 +9641,23 @@ uint32_t dot11f_unpack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp91__ = *pBuf; + tmp92__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_aifsn = tmp91__ >> 0 & 0xf; - pDst->acbk_acm = tmp91__ >> 4 & 0x1; - pDst->acbk_aci = tmp91__ >> 5 & 0x3; - pDst->unused2 = tmp91__ >> 7 & 0x1; + pDst->acbk_aifsn = tmp92__ >> 0 & 0xf; + pDst->acbk_acm = tmp92__ >> 4 & 0x1; + pDst->acbk_aci = tmp92__ >> 5 & 0x3; + pDst->unused2 = tmp92__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp92__ = *pBuf; + tmp93__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acbk_acwmin = tmp92__ >> 0 & 0xf; - pDst->acbk_acwmax = tmp92__ >> 4 & 0xf; + pDst->acbk_acwmin = tmp93__ >> 0 & 0xf; + pDst->acbk_acwmax = tmp93__ >> 4 & 0xf; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -9650,23 +9671,23 @@ uint32_t dot11f_unpack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp93__ = *pBuf; + tmp94__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_aifsn = tmp93__ >> 0 & 0xf; - pDst->acvi_acm = tmp93__ >> 4 & 0x1; - pDst->acvi_aci = tmp93__ >> 5 & 0x3; - pDst->unused3 = tmp93__ >> 7 & 0x1; + pDst->acvi_aifsn = tmp94__ >> 0 & 0xf; + pDst->acvi_acm = tmp94__ >> 4 & 0x1; + pDst->acvi_aci = tmp94__ >> 5 & 0x3; + pDst->unused3 = tmp94__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp94__ = *pBuf; + tmp95__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvi_acwmin = tmp94__ >> 0 & 0xf; - pDst->acvi_acwmax = tmp94__ >> 4 & 0xf; + pDst->acvi_acwmin = tmp95__ >> 0 & 0xf; + pDst->acvi_acwmax = tmp95__ >> 4 & 0xf; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -9680,23 +9701,23 @@ uint32_t dot11f_unpack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, return DOT11F_INCOMPLETE_IE; } - tmp95__ = *pBuf; + tmp96__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_aifsn = tmp95__ >> 0 & 0xf; - pDst->acvo_acm = tmp95__ >> 4 & 0x1; - pDst->acvo_aci = tmp95__ >> 5 & 0x3; - pDst->unused4 = tmp95__ >> 7 & 0x1; + pDst->acvo_aifsn = tmp96__ >> 0 & 0xf; + pDst->acvo_acm = tmp96__ >> 4 & 0x1; + pDst->acvo_aci = tmp96__ >> 5 & 0x3; + pDst->unused4 = tmp96__ >> 7 & 0x1; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; } - tmp96__ = *pBuf; + tmp97__ = *pBuf; pBuf += 1; ielen -= 1; - pDst->acvo_acwmin = tmp96__ >> 0 & 0xf; - pDst->acvo_acwmax = tmp96__ >> 4 & 0xf; + pDst->acvo_acwmin = tmp97__ >> 0 & 0xf; + pDst->acvo_acwmax = tmp97__ >> 4 & 0xf; if (unlikely(ielen < 1)) { pDst->present = 0; return DOT11F_INCOMPLETE_IE; @@ -10473,7 +10494,7 @@ static const tIEDefn IES_Beacon[] = { { offsetof(tDot11fBeacon, TIM), offsetof(tDot11fIETIM, present), 0, "TIM", 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}, + "Country", 0, 8, 248, SigIeCountry, {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fBeacon, FHParams), offsetof(tDot11fIEFHParams, present), 0, "FHParams", 0, 4, 4, SigIeFHParams, {0, 0, 0, 0, 0}, @@ -10619,7 +10640,7 @@ static const tIEDefn IES_Beacon[] = { 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, { offsetof(tDot11fBeacon, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, - "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, + "ChannelSwitchWrapper", 0, 2, 18, SigIeChannelSwitchWrapper, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fBeacon, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE", 0, 7, 7, SigIeQComVendorIE, @@ -10714,7 +10735,7 @@ 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, "Country", 0, 8, 248, SigIeCountry, {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fBeacon2, PowerConstraints), offsetof(tDot11fIEPowerConstraints, present), 0, "PowerConstraints", @@ -10810,13 +10831,14 @@ static const tIEDefn IES_Beacon2[] = { { offsetof(tDot11fBeacon2, VHTOperation), offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, 0, DOT11F_EID_VHTOPERATION, 0, 0, }, - { offsetof(tDot11fBeacon2, 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, }, + { offsetof(tDot11fBeacon2, transmit_power_env), + offsetof(tDot11fIEtransmit_power_env, present), + offsetof(tDot11fBeacon2, num_transmit_power_env), "transmit_power_env", + 8, 4, 11, SigIetransmit_power_env, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_TRANSMIT_POWER_ENV, 0, 0, }, { offsetof(tDot11fBeacon2, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, - "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, + "ChannelSwitchWrapper", 0, 2, 18, SigIeChannelSwitchWrapper, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fBeacon2, VHTExtBssLoad), offsetof(tDot11fIEVHTExtBssLoad, present), 0, "VHTExtBssLoad", @@ -10925,7 +10947,7 @@ static const tIEDefn IES_BeaconIEs[] = { { offsetof(tDot11fBeaconIEs, TIM), offsetof(tDot11fIETIM, present), 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}, + present), 0, "Country", 0, 8, 248, SigIeCountry, {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fBeaconIEs, FHParams), offsetof(tDot11fIEFHParams, present), 0, "FHParams", 0, 4, 4, SigIeFHParams, {0, 0, 0, 0, 0}, @@ -11079,7 +11101,7 @@ static const tIEDefn IES_BeaconIEs[] = { 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, { offsetof(tDot11fBeaconIEs, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, - "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, + "ChannelSwitchWrapper", 0, 2, 18, SigIeChannelSwitchWrapper, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fBeaconIEs, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE", @@ -11582,7 +11604,7 @@ static const tIEDefn IES_ProbeResponse[] = { present), 0, "CFParams", 0, 8, 8, SigIeCFParams, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CFPARAMS, 0, 0, }, { offsetof(tDot11fProbeResponse, Country), offsetof(tDot11fIECountry, - present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, + present), 0, "Country", 0, 8, 248, SigIeCountry, {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fProbeResponse, FHParams), offsetof(tDot11fIEFHParams, present), 0, "FHParams", 0, 4, 4, SigIeFHParams, {0, 0, 0, 0, 0}, @@ -11693,13 +11715,14 @@ static const tIEDefn IES_ProbeResponse[] = { offsetof(tDot11fIEVHTOperation, present), 0, "VHTOperation", 0, 7, 7, SigIeVHTOperation, {0, 0, 0, 0, 0}, 0, DOT11F_EID_VHTOPERATION, 0, 0, }, - { offsetof(tDot11fProbeResponse, 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, }, + { offsetof(tDot11fProbeResponse, transmit_power_env), + offsetof(tDot11fIEtransmit_power_env, present), + offsetof(tDot11fProbeResponse, num_transmit_power_env), + "transmit_power_env", 8, 4, 11, SigIetransmit_power_env, {0, 0, 0, 0, 0}, + 0, DOT11F_EID_TRANSMIT_POWER_ENV, 0, 0, }, { offsetof(tDot11fProbeResponse, ChannelSwitchWrapper), offsetof(tDot11fIEChannelSwitchWrapper, present), 0, - "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, + "ChannelSwitchWrapper", 0, 2, 18, SigIeChannelSwitchWrapper, {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fProbeResponse, VHTExtBssLoad), offsetof(tDot11fIEVHTExtBssLoad, present), 0, "VHTExtBssLoad", @@ -11827,7 +11850,7 @@ static const tIEDefn IES_RadioMeasurementReport[] = { { offsetof(tDot11fRadioMeasurementReport, MeasurementReport), offsetof(tDot11fIEMeasurementReport, present), offsetof(tDot11fRadioMeasurementReport, num_MeasurementReport), - "MeasurementReport", 7, 5, 31, SigIeMeasurementReport, {0, 0, 0, 0, 0}, + "MeasurementReport", 1, 5, 31, SigIeMeasurementReport, {0, 0, 0, 0, 0}, 0, DOT11F_EID_MEASUREMENTREPORT, 0, 1, }, {0, 0, 0, NULL, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0xff, 0, },}; @@ -12537,7 +12560,7 @@ static const tIEDefn IES_TDLSSetupReq[] = { present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPRATES, 0, 1, }, { offsetof(tDot11fTDLSSetupReq, Country), offsetof(tDot11fIECountry, - present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, + present), 0, "Country", 0, 8, 248, SigIeCountry, {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fTDLSSetupReq, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", @@ -12626,7 +12649,7 @@ static const tIEDefn IES_TDLSSetupRsp[] = { present), 0, "SuppRates", 0, 2, 14, SigIeSuppRates, {0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPRATES, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, Country), offsetof(tDot11fIECountry, - present), 0, "Country", 0, 5, 257, SigIeCountry, {0, 0, 0, 0, 0}, + present), 0, "Country", 0, 8, 248, SigIeCountry, {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fTDLSSetupRsp, ExtSuppRates), offsetof(tDot11fIEExtSuppRates, present), 0, "ExtSuppRates", @@ -12807,7 +12830,7 @@ static const tFFDefn FFS_TimingAdvertisementFrame[] = { static const tIEDefn IES_TimingAdvertisementFrame[] = { { offsetof(tDot11fTimingAdvertisementFrame, Country), - offsetof(tDot11fIECountry, present), 0, "Country", 0, 5, 257, SigIeCountry, + offsetof(tDot11fIECountry, present), 0, "Country", 0, 8, 248, SigIeCountry, {0, 0, 0, 0, 0}, 0, DOT11F_EID_COUNTRY, 0, 0, }, { offsetof(tDot11fTimingAdvertisementFrame, PowerConstraints), offsetof(tDot11fIEPowerConstraints, present), 0, "PowerConstraints", @@ -13995,13 +14018,13 @@ static uint32_t unpack_core(tpAniSirGlobal pCtx, countOffset), append_ie); break; - case SigIevht_transmit_power_env: + case SigIetransmit_power_env: status |= - dot11f_unpack_ie_vht_transmit_power_env( + dot11f_unpack_ie_transmit_power_env( pCtx, pBufRemaining, len, - (tDot11fIEvht_transmit_power_env *) + (tDot11fIEtransmit_power_env *) (pFrm + pIe->offset + - sizeof(tDot11fIEvht_transmit_power_env) * + sizeof(tDot11fIEtransmit_power_env) * countOffset), append_ie); break; @@ -16027,8 +16050,9 @@ uint32_t dot11f_get_packed_ie_country(tpAniSirGlobal pCtx, (void)pCtx; while (pIe->present) { *pnNeeded += 3; - if (pIe->num_triplets) { - *pnNeeded += (pIe->num_triplets * 3); + *pnNeeded += 3; + if (pIe->num_more_triplets) { + *pnNeeded += (pIe->num_more_triplets * 3); } else { break; } @@ -17521,12 +17545,12 @@ static uint32_t get_packed_size_core(tpAniSirGlobal pCtx, (pFrm + pIe->offset + offset * i))-> present; break; - case SigIevht_transmit_power_env: - offset = sizeof(tDot11fIEvht_transmit_power_env); - byteCount = ((tDot11fIEvht_transmit_power_env *) + case SigIetransmit_power_env: + offset = sizeof(tDot11fIEtransmit_power_env); + byteCount = ((tDot11fIEtransmit_power_env *) (pFrm + pIe->offset + offset * i))-> - num_bytes; - pIePresent = ((tDot11fIEvht_transmit_power_env *) + num_tx_power + 1; + pIePresent = ((tDot11fIEtransmit_power_env *) (pFrm + pIe->offset + offset * i))-> present; break; @@ -18808,25 +18832,25 @@ void dot11f_pack_ff_capabilities(tpAniSirGlobal pCtx, tDot11fFfCapabilities *pSrc, uint8_t *pBuf) { - uint16_t tmp97__; - tmp97__ = 0U; - tmp97__ |= (pSrc->ess << 0); - tmp97__ |= (pSrc->ibss << 1); - tmp97__ |= (pSrc->cfPollable << 2); - tmp97__ |= (pSrc->cfPollReq << 3); - tmp97__ |= (pSrc->privacy << 4); - tmp97__ |= (pSrc->shortPreamble << 5); - tmp97__ |= (pSrc->pbcc << 6); - tmp97__ |= (pSrc->channelAgility << 7); - tmp97__ |= (pSrc->spectrumMgt << 8); - tmp97__ |= (pSrc->qos << 9); - tmp97__ |= (pSrc->shortSlotTime << 10); - tmp97__ |= (pSrc->apsd << 11); - tmp97__ |= (pSrc->rrm << 12); - tmp97__ |= (pSrc->dsssOfdm << 13); - tmp97__ |= (pSrc->delayedBA << 14); - tmp97__ |= (pSrc->immediateBA << 15); - frameshtons(pCtx, pBuf, tmp97__, 0); + uint16_t tmp98__; + tmp98__ = 0U; + tmp98__ |= (pSrc->ess << 0); + tmp98__ |= (pSrc->ibss << 1); + tmp98__ |= (pSrc->cfPollable << 2); + tmp98__ |= (pSrc->cfPollReq << 3); + tmp98__ |= (pSrc->privacy << 4); + tmp98__ |= (pSrc->shortPreamble << 5); + tmp98__ |= (pSrc->pbcc << 6); + tmp98__ |= (pSrc->channelAgility << 7); + tmp98__ |= (pSrc->spectrumMgt << 8); + tmp98__ |= (pSrc->qos << 9); + tmp98__ |= (pSrc->shortSlotTime << 10); + tmp98__ |= (pSrc->apsd << 11); + tmp98__ |= (pSrc->rrm << 12); + tmp98__ |= (pSrc->dsssOfdm << 13); + tmp98__ |= (pSrc->delayedBA << 14); + tmp98__ |= (pSrc->immediateBA << 15); + frameshtons(pCtx, pBuf, tmp98__, 0); (void)pCtx; } /* End dot11f_pack_ff_capabilities. */ @@ -18890,13 +18914,13 @@ void dot11f_pack_ff_operating_mode(tpAniSirGlobal pCtx, tDot11fFfOperatingMode *pSrc, uint8_t *pBuf) { - uint8_t tmp98__; - tmp98__ = 0U; - tmp98__ |= (pSrc->chanWidth << 0); - tmp98__ |= (pSrc->reserved << 2); - tmp98__ |= (pSrc->rxNSS << 4); - tmp98__ |= (pSrc->rxNSSType << 7); - *pBuf = tmp98__; + uint8_t tmp99__; + tmp99__ = 0U; + tmp99__ |= (pSrc->chanWidth << 0); + tmp99__ |= (pSrc->reserved << 2); + tmp99__ |= (pSrc->rxNSS << 4); + tmp99__ |= (pSrc->rxNSSType << 7); + *pBuf = tmp99__; (void)pCtx; } /* End dot11f_pack_ff_operating_mode. */ @@ -18936,12 +18960,12 @@ void dot11f_pack_ff_sm_power_mode_set(tpAniSirGlobal pCtx, tDot11fFfSMPowerModeSet *pSrc, uint8_t *pBuf) { - uint8_t tmp99__; - tmp99__ = 0U; - tmp99__ |= (pSrc->PowerSave_En << 0); - tmp99__ |= (pSrc->Mode << 1); - tmp99__ |= (pSrc->reserved << 2); - *pBuf = tmp99__; + uint8_t tmp100__; + tmp100__ = 0U; + tmp100__ |= (pSrc->PowerSave_En << 0); + tmp100__ |= (pSrc->Mode << 1); + tmp100__ |= (pSrc->reserved << 2); + *pBuf = tmp100__; (void)pCtx; } /* End dot11f_pack_ff_sm_power_mode_set. */ @@ -18981,19 +19005,19 @@ void dot11f_pack_ff_ts_info(tpAniSirGlobal pCtx, tDot11fFfTSInfo *pSrc, uint8_t *pBuf) { - uint32_t tmp100__; - 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); - tmp100__ |= (pSrc->schedule << 16); - tmp100__ |= (pSrc->unused << 17); - frameshtonl(pCtx, pBuf, tmp100__, 0); + uint32_t tmp101__; + tmp101__ = 0U; + tmp101__ |= (pSrc->traffic_type << 0); + tmp101__ |= (pSrc->tsid << 1); + tmp101__ |= (pSrc->direction << 5); + tmp101__ |= (pSrc->access_policy << 7); + tmp101__ |= (pSrc->aggregation << 9); + tmp101__ |= (pSrc->psb << 10); + tmp101__ |= (pSrc->user_priority << 11); + tmp101__ |= (pSrc->tsinfo_ack_pol << 14); + tmp101__ |= (pSrc->schedule << 16); + tmp101__ |= (pSrc->unused << 17); + frameshtonl(pCtx, pBuf, tmp101__, 0); (void)pCtx; } /* End dot11f_pack_ff_ts_info. */ @@ -19049,13 +19073,13 @@ void dot11f_pack_ff_addba_param_set(tpAniSirGlobal pCtx, tDot11fFfaddba_param_set *pSrc, uint8_t *pBuf) { - uint16_t tmp101__; - tmp101__ = 0U; - tmp101__ |= (pSrc->amsdu_supp << 0); - tmp101__ |= (pSrc->policy << 1); - tmp101__ |= (pSrc->tid << 2); - tmp101__ |= (pSrc->buff_size << 6); - frameshtons(pCtx, pBuf, tmp101__, 0); + uint16_t tmp102__; + tmp102__ = 0U; + tmp102__ |= (pSrc->amsdu_supp << 0); + tmp102__ |= (pSrc->policy << 1); + tmp102__ |= (pSrc->tid << 2); + tmp102__ |= (pSrc->buff_size << 6); + frameshtons(pCtx, pBuf, tmp102__, 0); (void)pCtx; } /* End dot11f_pack_ff_addba_param_set. */ @@ -19063,11 +19087,11 @@ void dot11f_pack_ff_ba_start_seq_ctrl(tpAniSirGlobal pCtx, tDot11fFfba_start_seq_ctrl *pSrc, uint8_t *pBuf) { - uint16_t tmp102__; - tmp102__ = 0U; - tmp102__ |= (pSrc->frag_number << 0); - tmp102__ |= (pSrc->ssn << 4); - frameshtons(pCtx, pBuf, tmp102__, 0); + uint16_t tmp103__; + tmp103__ = 0U; + tmp103__ |= (pSrc->frag_number << 0); + tmp103__ |= (pSrc->ssn << 4); + frameshtons(pCtx, pBuf, tmp103__, 0); (void)pCtx; } /* End dot11f_pack_ff_ba_start_seq_ctrl. */ @@ -19083,12 +19107,12 @@ void dot11f_pack_ff_delba_param_set(tpAniSirGlobal pCtx, tDot11fFfdelba_param_set *pSrc, uint8_t *pBuf) { - uint16_t tmp103__; - tmp103__ = 0U; - tmp103__ |= (pSrc->reserved << 0); - tmp103__ |= (pSrc->initiator << 11); - tmp103__ |= (pSrc->tid << 12); - frameshtons(pCtx, pBuf, tmp103__, 0); + uint16_t tmp104__; + tmp104__ = 0U; + tmp104__ |= (pSrc->reserved << 0); + tmp104__ |= (pSrc->initiator << 11); + tmp104__ |= (pSrc->tid << 12); + frameshtons(pCtx, pBuf, tmp104__, 0); (void)pCtx; } /* End dot11f_pack_ff_delba_param_set. */ @@ -19096,13 +19120,13 @@ void dot11f_pack_ff_ext_chan_switch_ann_action(tpAniSirGlobal pCtx, tDot11fFfext_chan_switch_ann_action *pSrc, uint8_t *pBuf) { - uint32_t tmp104__; - tmp104__ = 0U; - tmp104__ |= (pSrc->switch_mode << 0); - tmp104__ |= (pSrc->op_class << 8); - tmp104__ |= (pSrc->new_channel << 16); - tmp104__ |= (pSrc->switch_count << 24); - frameshtonl(pCtx, pBuf, tmp104__, 0); + uint32_t tmp105__; + tmp105__ = 0U; + tmp105__ |= (pSrc->switch_mode << 0); + tmp105__ |= (pSrc->op_class << 8); + tmp105__ |= (pSrc->new_channel << 16); + tmp105__ |= (pSrc->switch_count << 24); + frameshtonl(pCtx, pBuf, tmp105__, 0); (void)pCtx; } /* End dot11f_pack_ff_ext_chan_switch_ann_action. */ @@ -19205,7 +19229,7 @@ uint32_t dot11f_pack_tlv_version2(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp105__; + uint8_t tmp106__; nNeeded += 3; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -19214,13 +19238,13 @@ uint32_t dot11f_pack_tlv_version2(tpAniSirGlobal pCtx, pBuf += 1; *pnConsumed += 1; pTlvLen = pBuf; pBuf += 1; *pnConsumed += 1; - tmp105__ = 0U; - tmp105__ |= (pSrc->minor << 0); - tmp105__ |= (pSrc->major << 4); + tmp106__ = 0U; + tmp106__ |= (pSrc->minor << 0); + tmp106__ |= (pSrc->major << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp105__; + *pBuf = tmp106__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -20177,7 +20201,7 @@ uint32_t dot11f_pack_tlv_version(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp106__; + uint8_t tmp107__; nNeeded += 5; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -20186,13 +20210,13 @@ uint32_t dot11f_pack_tlv_version(tpAniSirGlobal pCtx, pBuf += 2; *pnConsumed += 2; pTlvLen = pBuf; pBuf += 2; *pnConsumed += 2; - tmp106__ = 0U; - tmp106__ |= (pSrc->minor << 0); - tmp106__ |= (pSrc->major << 4); + tmp107__ = 0U; + tmp107__ |= (pSrc->minor << 0); + tmp107__ |= (pSrc->major << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp106__; + *pBuf = tmp107__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -20575,7 +20599,7 @@ uint32_t dot11f_pack_tlv_oce_cap(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp107__; + uint8_t tmp108__; nNeeded += 3; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -20584,15 +20608,15 @@ uint32_t dot11f_pack_tlv_oce_cap(tpAniSirGlobal pCtx, pBuf += 1; *pnConsumed += 1; pTlvLen = pBuf; pBuf += 1; *pnConsumed += 1; - tmp107__ = 0U; - tmp107__ |= (pSrc->oce_release << 0); - tmp107__ |= (pSrc->is_sta_cfon << 3); - tmp107__ |= (pSrc->non_oce_ap_present << 4); - tmp107__ |= (pSrc->reserved << 5); + tmp108__ = 0U; + tmp108__ |= (pSrc->oce_release << 0); + tmp108__ |= (pSrc->is_sta_cfon << 3); + tmp108__ |= (pSrc->non_oce_ap_present << 4); + tmp108__ |= (pSrc->reserved << 5); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp107__; + *pBuf = tmp108__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -20646,7 +20670,7 @@ uint32_t dot11f_pack_tlv_reduced_wan_metrics(tpAniSirGlobal pCtx, uint8_t *pTlvLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp108__; + uint8_t tmp109__; nNeeded += 3; if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -20655,13 +20679,13 @@ uint32_t dot11f_pack_tlv_reduced_wan_metrics(tpAniSirGlobal pCtx, pBuf += 1; *pnConsumed += 1; pTlvLen = pBuf; pBuf += 1; *pnConsumed += 1; - tmp108__ = 0U; - tmp108__ |= (pSrc->downlink_av_cap << 0); - tmp108__ |= (pSrc->uplink_av_cap << 4); + tmp109__ = 0U; + tmp109__ |= (pSrc->downlink_av_cap << 0); + tmp109__ |= (pSrc->uplink_av_cap << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp108__; + *pBuf = tmp109__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -20918,7 +20942,7 @@ uint32_t dot11f_pack_ie_gtk(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp109__; + uint16_t tmp110__; nNeeded += (pSrc->num_key + 11); while (pSrc->present) { if (nNeeded > nBuf) @@ -20927,13 +20951,13 @@ uint32_t dot11f_pack_ie_gtk(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp109__ = 0U; - tmp109__ |= (pSrc->keyId << 0); - tmp109__ |= (pSrc->reserved << 2); + tmp110__ = 0U; + tmp110__ |= (pSrc->keyId << 0); + tmp110__ |= (pSrc->reserved << 2); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp109__, 0); + frameshtons(pCtx, pBuf, tmp110__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -21342,11 +21366,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 tmp110__; uint8_t tmp111__; uint8_t tmp112__; uint8_t tmp113__; uint8_t tmp114__; + uint8_t tmp115__; nNeeded += 5; while (pSrc->present) { if (nNeeded > nBuf) @@ -21355,31 +21379,15 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp110__ = 0U; - tmp110__ |= (pSrc->LinkMeasurement << 0); - tmp110__ |= (pSrc->NeighborRpt << 1); - tmp110__ |= (pSrc->parallel << 2); - tmp110__ |= (pSrc->repeated << 3); - tmp110__ |= (pSrc->BeaconPassive << 4); - tmp110__ |= (pSrc->BeaconActive << 5); - tmp110__ |= (pSrc->BeaconTable << 6); - tmp110__ |= (pSrc->BeaconRepCond << 7); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp110__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; tmp111__ = 0U; - tmp111__ |= (pSrc->FrameMeasurement << 0); - tmp111__ |= (pSrc->ChannelLoad << 1); - tmp111__ |= (pSrc->NoiseHistogram << 2); - tmp111__ |= (pSrc->statistics << 3); - tmp111__ |= (pSrc->LCIMeasurement << 4); - tmp111__ |= (pSrc->LCIAzimuth << 5); - tmp111__ |= (pSrc->TCMCapability << 6); - tmp111__ |= (pSrc->triggeredTCM << 7); + tmp111__ |= (pSrc->LinkMeasurement << 0); + tmp111__ |= (pSrc->NeighborRpt << 1); + tmp111__ |= (pSrc->parallel << 2); + tmp111__ |= (pSrc->repeated << 3); + tmp111__ |= (pSrc->BeaconPassive << 4); + tmp111__ |= (pSrc->BeaconActive << 5); + tmp111__ |= (pSrc->BeaconTable << 6); + tmp111__ |= (pSrc->BeaconRepCond << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -21388,10 +21396,14 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp112__ = 0U; - tmp112__ |= (pSrc->APChanReport << 0); - tmp112__ |= (pSrc->RRMMIBEnabled << 1); - tmp112__ |= (pSrc->operatingChanMax << 2); - tmp112__ |= (pSrc->nonOperatinChanMax << 5); + tmp112__ |= (pSrc->FrameMeasurement << 0); + tmp112__ |= (pSrc->ChannelLoad << 1); + tmp112__ |= (pSrc->NoiseHistogram << 2); + tmp112__ |= (pSrc->statistics << 3); + tmp112__ |= (pSrc->LCIMeasurement << 4); + tmp112__ |= (pSrc->LCIAzimuth << 5); + tmp112__ |= (pSrc->TCMCapability << 6); + tmp112__ |= (pSrc->triggeredTCM << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -21400,12 +21412,10 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp113__ = 0U; - tmp113__ |= (pSrc->MeasurementPilot << 0); - tmp113__ |= (pSrc->MeasurementPilotEnabled << 3); - tmp113__ |= (pSrc->NeighborTSFOffset << 4); - tmp113__ |= (pSrc->RCPIMeasurement << 5); - tmp113__ |= (pSrc->RSNIMeasurement << 6); - tmp113__ |= (pSrc->BssAvgAccessDelay << 7); + tmp113__ |= (pSrc->APChanReport << 0); + tmp113__ |= (pSrc->RRMMIBEnabled << 1); + tmp113__ |= (pSrc->operatingChanMax << 2); + tmp113__ |= (pSrc->nonOperatinChanMax << 5); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -21414,16 +21424,30 @@ uint32_t dot11f_pack_ie_rrm_enabled_cap(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp114__ = 0U; - tmp114__ |= (pSrc->BSSAvailAdmission << 0); - tmp114__ |= (pSrc->AntennaInformation << 1); - tmp114__ |= (pSrc->fine_time_meas_rpt << 2); - tmp114__ |= (pSrc->lci_capability << 3); - tmp114__ |= (pSrc->reserved << 4); + tmp114__ |= (pSrc->MeasurementPilot << 0); + tmp114__ |= (pSrc->MeasurementPilotEnabled << 3); + tmp114__ |= (pSrc->NeighborTSFOffset << 4); + tmp114__ |= (pSrc->RCPIMeasurement << 5); + tmp114__ |= (pSrc->RSNIMeasurement << 6); + tmp114__ |= (pSrc->BssAvgAccessDelay << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; *pBuf = tmp114__; *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp115__ = 0U; + tmp115__ |= (pSrc->BSSAvailAdmission << 0); + tmp115__ |= (pSrc->AntennaInformation << 1); + tmp115__ |= (pSrc->fine_time_meas_rpt << 2); + tmp115__ |= (pSrc->lci_capability << 3); + tmp115__ |= (pSrc->reserved << 4); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp115__; + *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; break; @@ -21502,7 +21526,7 @@ uint32_t dot11f_pack_ie_schedule(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp115__; + uint16_t tmp116__; nNeeded += 14; while (pSrc->present) { if (nNeeded > nBuf) @@ -21511,15 +21535,15 @@ uint32_t dot11f_pack_ie_schedule(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp115__ = 0U; - tmp115__ |= (pSrc->aggregation << 0); - tmp115__ |= (pSrc->tsid << 1); - tmp115__ |= (pSrc->direction << 5); - tmp115__ |= (pSrc->reserved << 7); + tmp116__ = 0U; + tmp116__ |= (pSrc->aggregation << 0); + tmp116__ |= (pSrc->tsid << 1); + tmp116__ |= (pSrc->direction << 5); + tmp116__ |= (pSrc->reserved << 7); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp115__, 0); + frameshtons(pCtx, pBuf, tmp116__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -21746,9 +21770,9 @@ uint32_t dot11f_pack_ie_tspec(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp116__; - uint8_t tmp117__; - uint16_t tmp118__; + uint16_t tmp117__; + uint8_t tmp118__; + uint16_t tmp119__; nNeeded += 55; while (pSrc->present) { if (nNeeded > nBuf) @@ -21757,39 +21781,39 @@ uint32_t dot11f_pack_ie_tspec(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp116__ = 0U; - tmp116__ |= (pSrc->traffic_type << 0); - tmp116__ |= (pSrc->tsid << 1); - tmp116__ |= (pSrc->direction << 5); - tmp116__ |= (pSrc->access_policy << 7); - tmp116__ |= (pSrc->aggregation << 9); - tmp116__ |= (pSrc->psb << 10); - tmp116__ |= (pSrc->user_priority << 11); - tmp116__ |= (pSrc->tsinfo_ack_pol << 14); + tmp117__ = 0U; + tmp117__ |= (pSrc->traffic_type << 0); + tmp117__ |= (pSrc->tsid << 1); + tmp117__ |= (pSrc->direction << 5); + tmp117__ |= (pSrc->access_policy << 7); + tmp117__ |= (pSrc->aggregation << 9); + tmp117__ |= (pSrc->psb << 10); + tmp117__ |= (pSrc->user_priority << 11); + tmp117__ |= (pSrc->tsinfo_ack_pol << 14); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp116__, 0); + frameshtons(pCtx, pBuf, tmp117__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp117__ = 0U; - tmp117__ |= (pSrc->schedule << 0); - tmp117__ |= (pSrc->unused << 1); + tmp118__ = 0U; + tmp118__ |= (pSrc->schedule << 0); + tmp118__ |= (pSrc->unused << 1); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp117__; + *pBuf = tmp118__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp118__ = 0U; - tmp118__ |= (pSrc->size << 0); - tmp118__ |= (pSrc->fixed << 15); + tmp119__ = 0U; + tmp119__ |= (pSrc->size << 0); + tmp119__ |= (pSrc->fixed << 15); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp118__, 0); + frameshtons(pCtx, pBuf, tmp119__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -21853,9 +21877,9 @@ uint32_t dot11f_pack_ie_vht_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint32_t tmp119__; - uint16_t tmp120__; + uint32_t tmp120__; uint16_t tmp121__; + uint16_t tmp122__; nNeeded += 12; while (pSrc->present) { if (nNeeded > nBuf) @@ -21864,58 +21888,58 @@ uint32_t dot11f_pack_ie_vht_caps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp119__ = 0U; - tmp119__ |= (pSrc->maxMPDULen << 0); - tmp119__ |= (pSrc->supportedChannelWidthSet << 2); - tmp119__ |= (pSrc->ldpcCodingCap << 4); - tmp119__ |= (pSrc->shortGI80MHz << 5); - tmp119__ |= (pSrc->shortGI160and80plus80MHz << 6); - tmp119__ |= (pSrc->txSTBC << 7); - tmp119__ |= (pSrc->rxSTBC << 8); - tmp119__ |= (pSrc->suBeamFormerCap << 11); - tmp119__ |= (pSrc->suBeamformeeCap << 12); - tmp119__ |= (pSrc->csnofBeamformerAntSup << 13); - tmp119__ |= (pSrc->numSoundingDim << 16); - tmp119__ |= (pSrc->muBeamformerCap << 19); - tmp119__ |= (pSrc->muBeamformeeCap << 20); - tmp119__ |= (pSrc->vhtTXOPPS << 21); - tmp119__ |= (pSrc->htcVHTCap << 22); - tmp119__ |= (pSrc->maxAMPDULenExp << 23); - tmp119__ |= (pSrc->vhtLinkAdaptCap << 26); - tmp119__ |= (pSrc->rxAntPattern << 28); - tmp119__ |= (pSrc->txAntPattern << 29); - tmp119__ |= (pSrc->extended_nss_bw_supp << 30); + tmp120__ = 0U; + tmp120__ |= (pSrc->maxMPDULen << 0); + tmp120__ |= (pSrc->supportedChannelWidthSet << 2); + tmp120__ |= (pSrc->ldpcCodingCap << 4); + tmp120__ |= (pSrc->shortGI80MHz << 5); + tmp120__ |= (pSrc->shortGI160and80plus80MHz << 6); + tmp120__ |= (pSrc->txSTBC << 7); + tmp120__ |= (pSrc->rxSTBC << 8); + tmp120__ |= (pSrc->suBeamFormerCap << 11); + tmp120__ |= (pSrc->suBeamformeeCap << 12); + tmp120__ |= (pSrc->csnofBeamformerAntSup << 13); + tmp120__ |= (pSrc->numSoundingDim << 16); + tmp120__ |= (pSrc->muBeamformerCap << 19); + tmp120__ |= (pSrc->muBeamformeeCap << 20); + tmp120__ |= (pSrc->vhtTXOPPS << 21); + tmp120__ |= (pSrc->htcVHTCap << 22); + tmp120__ |= (pSrc->maxAMPDULenExp << 23); + tmp120__ |= (pSrc->vhtLinkAdaptCap << 26); + tmp120__ |= (pSrc->rxAntPattern << 28); + tmp120__ |= (pSrc->txAntPattern << 29); + tmp120__ |= (pSrc->extended_nss_bw_supp << 30); if (unlikely(nBuf < 4)) return DOT11F_INCOMPLETE_IE; - frameshtonl(pCtx, pBuf, tmp119__, 0); + frameshtonl(pCtx, pBuf, tmp120__, 0); *pnConsumed += 4; pBuf += 4; nBuf -= 4 ; frameshtons(pCtx, pBuf, pSrc->rxMCSMap, 0); *pnConsumed += 2; pBuf += 2; - tmp120__ = 0U; - tmp120__ |= (pSrc->rxHighSupDataRate << 0); - tmp120__ |= (pSrc->max_nsts_total << 13); + tmp121__ = 0U; + tmp121__ |= (pSrc->rxHighSupDataRate << 0); + tmp121__ |= (pSrc->max_nsts_total << 13); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp120__, 0); + frameshtons(pCtx, pBuf, tmp121__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; frameshtons(pCtx, pBuf, pSrc->txMCSMap, 0); *pnConsumed += 2; pBuf += 2; - tmp121__ = 0U; - tmp121__ |= (pSrc->txSupDataRate << 0); - tmp121__ |= (pSrc->vht_extended_nss_bw_cap << 13); - tmp121__ |= (pSrc->reserved << 14); + tmp122__ = 0U; + tmp122__ |= (pSrc->txSupDataRate << 0); + tmp122__ |= (pSrc->vht_extended_nss_bw_cap << 13); + tmp122__ |= (pSrc->reserved << 14); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp121__, 0); + frameshtons(pCtx, pBuf, tmp122__, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ nBuf -= 2 ; @@ -21975,7 +21999,7 @@ uint32_t dot11f_pack_ie_wmm_schedule(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp122__; + uint16_t tmp123__; nNeeded += 15; while (pSrc->present) { if (nNeeded > nBuf) @@ -21997,15 +22021,15 @@ uint32_t dot11f_pack_ie_wmm_schedule(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp122__ = 0U; - tmp122__ |= (pSrc->aggregation << 0); - tmp122__ |= (pSrc->tsid << 1); - tmp122__ |= (pSrc->direction << 5); - tmp122__ |= (pSrc->reserved << 7); + tmp123__ = 0U; + tmp123__ |= (pSrc->aggregation << 0); + tmp123__ |= (pSrc->tsid << 1); + tmp123__ |= (pSrc->direction << 5); + tmp123__ |= (pSrc->reserved << 7); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp122__, 0); + frameshtons(pCtx, pBuf, tmp123__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -22239,9 +22263,9 @@ uint32_t dot11f_pack_ie_wmmtspec(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp123__; - uint8_t tmp124__; - uint16_t tmp125__; + uint16_t tmp124__; + uint8_t tmp125__; + uint16_t tmp126__; nNeeded += 38; while (pSrc->present) { if (nNeeded > nBuf) @@ -22263,39 +22287,39 @@ uint32_t dot11f_pack_ie_wmmtspec(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp123__ = 0U; - tmp123__ |= (pSrc->traffic_type << 0); - tmp123__ |= (pSrc->tsid << 1); - tmp123__ |= (pSrc->direction << 5); - tmp123__ |= (pSrc->access_policy << 7); - tmp123__ |= (pSrc->aggregation << 9); - tmp123__ |= (pSrc->psb << 10); - tmp123__ |= (pSrc->user_priority << 11); - tmp123__ |= (pSrc->tsinfo_ack_pol << 14); + tmp124__ = 0U; + tmp124__ |= (pSrc->traffic_type << 0); + tmp124__ |= (pSrc->tsid << 1); + tmp124__ |= (pSrc->direction << 5); + tmp124__ |= (pSrc->access_policy << 7); + tmp124__ |= (pSrc->aggregation << 9); + tmp124__ |= (pSrc->psb << 10); + tmp124__ |= (pSrc->user_priority << 11); + tmp124__ |= (pSrc->tsinfo_ack_pol << 14); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp123__, 0); + frameshtons(pCtx, pBuf, tmp124__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp124__ = 0U; - tmp124__ |= (pSrc->tsinfo_rsvd << 0); - tmp124__ |= (pSrc->burst_size_defn << 7); + tmp125__ = 0U; + tmp125__ |= (pSrc->tsinfo_rsvd << 0); + tmp125__ |= (pSrc->burst_size_defn << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp124__; + *pBuf = tmp125__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp125__ = 0U; - tmp125__ |= (pSrc->size << 0); - tmp125__ |= (pSrc->fixed << 15); + tmp126__ = 0U; + tmp126__ |= (pSrc->size << 0); + tmp126__ |= (pSrc->fixed << 15); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp125__, 0); + frameshtons(pCtx, pBuf, tmp126__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -22423,7 +22447,7 @@ uint32_t dot11f_pack_ie_beacon_report_frm_body_fragment_id(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp126__; + uint16_t tmp127__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -22432,14 +22456,14 @@ uint32_t dot11f_pack_ie_beacon_report_frm_body_fragment_id(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp126__ = 0U; - tmp126__ |= (pSrc->beacon_report_id << 0); - tmp126__ |= (pSrc->fragment_id_number << 8); - tmp126__ |= (pSrc->more_fragments << 15); + tmp127__ = 0U; + tmp127__ |= (pSrc->beacon_report_id << 0); + tmp127__ |= (pSrc->fragment_id_number << 8); + tmp127__ |= (pSrc->more_fragments << 15); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp126__, 0); + frameshtons(pCtx, pBuf, tmp127__, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ nBuf -= 2 ; @@ -22548,8 +22572,8 @@ uint32_t dot11f_pack_ie_neighbor_rpt(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp127__; uint8_t tmp128__; + uint8_t tmp129__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_neighbor_rpt(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -22564,26 +22588,14 @@ uint32_t dot11f_pack_ie_neighbor_rpt(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->bssid, 6); *pnConsumed += 6; pBuf += 6; - tmp127__ = 0U; - tmp127__ |= (pSrc->APReachability << 0); - tmp127__ |= (pSrc->Security << 2); - tmp127__ |= (pSrc->KeyScope << 3); - tmp127__ |= (pSrc->SpecMgmtCap << 4); - tmp127__ |= (pSrc->QosCap << 5); - tmp127__ |= (pSrc->apsd << 6); - tmp127__ |= (pSrc->rrm << 7); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp127__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; tmp128__ = 0U; - tmp128__ |= (pSrc->DelayedBA << 0); - tmp128__ |= (pSrc->ImmBA << 1); - tmp128__ |= (pSrc->MobilityDomain << 2); - tmp128__ |= (pSrc->reserved << 3); + tmp128__ |= (pSrc->APReachability << 0); + tmp128__ |= (pSrc->Security << 2); + tmp128__ |= (pSrc->KeyScope << 3); + tmp128__ |= (pSrc->SpecMgmtCap << 4); + tmp128__ |= (pSrc->QosCap << 5); + tmp128__ |= (pSrc->apsd << 6); + tmp128__ |= (pSrc->rrm << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -22591,6 +22603,18 @@ uint32_t dot11f_pack_ie_neighbor_rpt(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + tmp129__ = 0U; + tmp129__ |= (pSrc->DelayedBA << 0); + tmp129__ |= (pSrc->ImmBA << 1); + tmp129__ |= (pSrc->MobilityDomain << 2); + tmp129__ |= (pSrc->reserved << 3); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp129__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->reserved1, 0); *pnConsumed += 2; pBuf += 2; @@ -22769,16 +22793,17 @@ uint32_t dot11f_pack_ie_tgt_mac_addr(tpAniSirGlobal pCtx, return DOT11F_PARSE_SUCCESS; } /* End dot11f_pack_ie_tgt_mac_addr. */ -uint32_t dot11f_pack_ie_vht_transmit_power_env(tpAniSirGlobal pCtx, - tDot11fIEvht_transmit_power_env *pSrc, - uint8_t *pBuf, - uint32_t nBuf, - uint32_t *pnConsumed) +uint32_t dot11f_pack_ie_transmit_power_env(tpAniSirGlobal pCtx, + tDot11fIEtransmit_power_env *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_bytes; + uint8_t tmp130__; + nNeeded += (pSrc->num_tx_power + 1); while (pSrc->present) { if (nNeeded > nBuf) return DOT11F_BUFFER_OVERFLOW; @@ -22786,8 +22811,19 @@ uint32_t dot11f_pack_ie_vht_transmit_power_env(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->bytes), pSrc->num_bytes); - *pnConsumed += pSrc->num_bytes; + tmp130__ = 0U; + tmp130__ |= (pSrc->max_tx_pwr_count << 0); + tmp130__ |= (pSrc->max_tx_pwr_interpret << 3); + tmp130__ |= (pSrc->max_tx_pwr_category << 6); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp130__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->tx_power), pSrc->num_tx_power); + *pnConsumed += pSrc->num_tx_power; /* fieldsEndFlag = 1 */ break; } @@ -22796,7 +22832,7 @@ uint32_t dot11f_pack_ie_vht_transmit_power_env(tpAniSirGlobal pCtx, *pIeLen = *pnConsumed - nConsumedOnEntry - 2; } return DOT11F_PARSE_SUCCESS; -} /* End dot11f_pack_ie_vht_transmit_power_env. */ +} /* End dot11f_pack_ie_transmit_power_env. */ uint32_t dot11f_pack_ie_aid(tpAniSirGlobal pCtx, tDot11fIEAID *pSrc, @@ -22988,9 +23024,12 @@ uint32_t dot11f_pack_ie_country(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->country, 3); *pnConsumed += 3; pBuf += 3; - if (pSrc->num_triplets) { - DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->triplets), (pSrc->num_triplets * 3)); - *pnConsumed += (pSrc->num_triplets * 3); + DOT11F_MEMCPY(pCtx, pBuf, pSrc->first_triplet, 3); + *pnConsumed += 3; + pBuf += 3; + if (pSrc->num_more_triplets) { + DOT11F_MEMCPY(pCtx, pBuf, &(pSrc->more_triplets), (pSrc->num_more_triplets * 3)); + *pnConsumed += (pSrc->num_more_triplets * 3); /* fieldsEndFlag = 1 */ } else { break; @@ -23042,14 +23081,14 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp129__; - uint8_t tmp130__; uint8_t tmp131__; uint8_t tmp132__; uint8_t tmp133__; uint8_t tmp134__; uint8_t tmp135__; uint8_t tmp136__; + uint8_t tmp137__; + uint8_t tmp138__; nNeeded += 18; while (pSrc->present) { if (nNeeded > nBuf) @@ -23064,36 +23103,11 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved; *pnConsumed += 1; pBuf += 1; - tmp129__ = 0U; - tmp129__ |= (pSrc->acbe_aifsn << 0); - tmp129__ |= (pSrc->acbe_acm << 4); - tmp129__ |= (pSrc->acbe_aci << 5); - tmp129__ |= (pSrc->unused1 << 7); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp129__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; - tmp130__ = 0U; - tmp130__ |= (pSrc->acbe_acwmin << 0); - tmp130__ |= (pSrc->acbe_acwmax << 4); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp130__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); - *pnConsumed += 2; - pBuf += 2; tmp131__ = 0U; - tmp131__ |= (pSrc->acbk_aifsn << 0); - tmp131__ |= (pSrc->acbk_acm << 4); - tmp131__ |= (pSrc->acbk_aci << 5); - tmp131__ |= (pSrc->unused2 << 7); + tmp131__ |= (pSrc->acbe_aifsn << 0); + tmp131__ |= (pSrc->acbe_acm << 4); + tmp131__ |= (pSrc->acbe_aci << 5); + tmp131__ |= (pSrc->unused1 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -23102,8 +23116,8 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp132__ = 0U; - tmp132__ |= (pSrc->acbk_acwmin << 0); - tmp132__ |= (pSrc->acbk_acwmax << 4); + tmp132__ |= (pSrc->acbe_acwmin << 0); + tmp132__ |= (pSrc->acbe_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -23111,14 +23125,14 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); + frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); *pnConsumed += 2; pBuf += 2; tmp133__ = 0U; - tmp133__ |= (pSrc->acvi_aifsn << 0); - tmp133__ |= (pSrc->acvi_acm << 4); - tmp133__ |= (pSrc->acvi_aci << 5); - tmp133__ |= (pSrc->unused3 << 7); + tmp133__ |= (pSrc->acbk_aifsn << 0); + tmp133__ |= (pSrc->acbk_acm << 4); + tmp133__ |= (pSrc->acbk_aci << 5); + tmp133__ |= (pSrc->unused2 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -23127,8 +23141,8 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp134__ = 0U; - tmp134__ |= (pSrc->acvi_acwmin << 0); - tmp134__ |= (pSrc->acvi_acwmax << 4); + tmp134__ |= (pSrc->acbk_acwmin << 0); + tmp134__ |= (pSrc->acbk_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -23136,14 +23150,14 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); + frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); *pnConsumed += 2; pBuf += 2; tmp135__ = 0U; - tmp135__ |= (pSrc->acvo_aifsn << 0); - tmp135__ |= (pSrc->acvo_acm << 4); - tmp135__ |= (pSrc->acvo_aci << 5); - tmp135__ |= (pSrc->unused4 << 7); + tmp135__ |= (pSrc->acvi_aifsn << 0); + tmp135__ |= (pSrc->acvi_acm << 4); + tmp135__ |= (pSrc->acvi_aci << 5); + tmp135__ |= (pSrc->unused3 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -23152,8 +23166,8 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp136__ = 0U; - tmp136__ |= (pSrc->acvo_acwmin << 0); - tmp136__ |= (pSrc->acvo_acwmax << 4); + tmp136__ |= (pSrc->acvi_acwmin << 0); + tmp136__ |= (pSrc->acvi_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -23161,6 +23175,31 @@ uint32_t dot11f_pack_ie_edca_param_set(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); + *pnConsumed += 2; + pBuf += 2; + tmp137__ = 0U; + tmp137__ |= (pSrc->acvo_aifsn << 0); + tmp137__ |= (pSrc->acvo_acm << 4); + tmp137__ |= (pSrc->acvo_aci << 5); + tmp137__ |= (pSrc->unused4 << 7); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp137__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp138__ = 0U; + tmp138__ |= (pSrc->acvo_acwmin << 0); + tmp138__ |= (pSrc->acvo_acwmax << 4); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp138__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvo_txoplimit, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ @@ -23182,7 +23221,7 @@ uint32_t dot11f_pack_ie_erp_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp137__; + uint8_t tmp139__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -23191,15 +23230,15 @@ uint32_t dot11f_pack_ie_erp_info(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp137__ = 0U; - tmp137__ |= (pSrc->non_erp_present << 0); - tmp137__ |= (pSrc->use_prot << 1); - tmp137__ |= (pSrc->barker_preamble << 2); - tmp137__ |= (pSrc->unused << 3); + tmp139__ = 0U; + tmp139__ |= (pSrc->non_erp_present << 0); + tmp139__ |= (pSrc->use_prot << 1); + tmp139__ |= (pSrc->barker_preamble << 2); + tmp139__ |= (pSrc->unused << 3); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp137__; + *pBuf = tmp139__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -23258,7 +23297,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 tmp138__; + uint8_t tmp140__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -23278,13 +23317,13 @@ uint32_t dot11f_pack_ie_ese_rad_mgmt_cap(tpAniSirGlobal pCtx, *pBuf = pSrc->mgmt_state; *pnConsumed += 1; pBuf += 1; - tmp138__ = 0U; - tmp138__ |= (pSrc->mbssid_mask << 0); - tmp138__ |= (pSrc->reserved << 3); + tmp140__ = 0U; + tmp140__ |= (pSrc->mbssid_mask << 0); + tmp140__ |= (pSrc->reserved << 3); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp138__; + *pBuf = tmp140__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -23635,7 +23674,7 @@ uint32_t dot11f_pack_ie_ft_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp139__; + uint16_t tmp141__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ieft_info(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -23647,13 +23686,13 @@ uint32_t dot11f_pack_ie_ft_info(tpAniSirGlobal pCtx, ++pBuf; --nBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; --nBuf; ++(*pnConsumed); - tmp139__ = 0U; - tmp139__ |= (pSrc->reserved << 0); - tmp139__ |= (pSrc->IECount << 8); + tmp141__ = 0U; + tmp141__ |= (pSrc->reserved << 0); + tmp141__ |= (pSrc->IECount << 8); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp139__, 0); + frameshtons(pCtx, pBuf, tmp141__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -23691,11 +23730,11 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp140__; - uint8_t tmp141__; uint16_t tmp142__; - uint32_t tmp143__; - uint8_t tmp144__; + uint8_t tmp143__; + uint16_t tmp144__; + uint32_t tmp145__; + uint8_t tmp146__; nNeeded += (pSrc->num_rsvd + 26); while (pSrc->present) { if (nNeeded > nBuf) @@ -23704,48 +23743,21 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp140__ = 0U; - tmp140__ |= (pSrc->advCodingCap << 0); - tmp140__ |= (pSrc->supportedChannelWidthSet << 1); - tmp140__ |= (pSrc->mimoPowerSave << 2); - tmp140__ |= (pSrc->greenField << 4); - tmp140__ |= (pSrc->shortGI20MHz << 5); - tmp140__ |= (pSrc->shortGI40MHz << 6); - tmp140__ |= (pSrc->txSTBC << 7); - tmp140__ |= (pSrc->rxSTBC << 8); - tmp140__ |= (pSrc->delayedBA << 10); - tmp140__ |= (pSrc->maximalAMSDUsize << 11); - tmp140__ |= (pSrc->dsssCckMode40MHz << 12); - tmp140__ |= (pSrc->psmp << 13); - tmp140__ |= (pSrc->stbcControlFrame << 14); - tmp140__ |= (pSrc->lsigTXOPProtection << 15); - if (unlikely(nBuf < 2)) - return DOT11F_INCOMPLETE_IE; - - frameshtons(pCtx, pBuf, tmp140__, 0); - *pnConsumed += 2; - pBuf += 2; - nBuf -= 2 ; - tmp141__ = 0U; - tmp141__ |= (pSrc->maxRxAMPDUFactor << 0); - tmp141__ |= (pSrc->mpduDensity << 2); - tmp141__ |= (pSrc->reserved1 << 5); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp141__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; - DOT11F_MEMCPY(pCtx, pBuf, pSrc->supportedMCSSet, 16); - *pnConsumed += 16; - pBuf += 16; tmp142__ = 0U; - tmp142__ |= (pSrc->pco << 0); - tmp142__ |= (pSrc->transitionTime << 1); - tmp142__ |= (pSrc->reserved2 << 3); - tmp142__ |= (pSrc->mcsFeedback << 8); - tmp142__ |= (pSrc->reserved3 << 10); + tmp142__ |= (pSrc->advCodingCap << 0); + tmp142__ |= (pSrc->supportedChannelWidthSet << 1); + tmp142__ |= (pSrc->mimoPowerSave << 2); + tmp142__ |= (pSrc->greenField << 4); + tmp142__ |= (pSrc->shortGI20MHz << 5); + tmp142__ |= (pSrc->shortGI40MHz << 6); + tmp142__ |= (pSrc->txSTBC << 7); + tmp142__ |= (pSrc->rxSTBC << 8); + tmp142__ |= (pSrc->delayedBA << 10); + tmp142__ |= (pSrc->maximalAMSDUsize << 11); + tmp142__ |= (pSrc->dsssCckMode40MHz << 12); + tmp142__ |= (pSrc->psmp << 13); + tmp142__ |= (pSrc->stbcControlFrame << 14); + tmp142__ |= (pSrc->lsigTXOPProtection << 15); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; @@ -23754,42 +23766,69 @@ uint32_t dot11f_pack_ie_ht_caps(tpAniSirGlobal pCtx, pBuf += 2; nBuf -= 2 ; tmp143__ = 0U; - tmp143__ |= (pSrc->txBF << 0); - tmp143__ |= (pSrc->rxStaggeredSounding << 1); - tmp143__ |= (pSrc->txStaggeredSounding << 2); - tmp143__ |= (pSrc->rxZLF << 3); - tmp143__ |= (pSrc->txZLF << 4); - tmp143__ |= (pSrc->implicitTxBF << 5); - tmp143__ |= (pSrc->calibration << 6); - tmp143__ |= (pSrc->explicitCSITxBF << 8); - tmp143__ |= (pSrc->explicitUncompressedSteeringMatrix << 9); - tmp143__ |= (pSrc->explicitBFCSIFeedback << 10); - tmp143__ |= (pSrc->explicitUncompressedSteeringMatrixFeedback << 13); - tmp143__ |= (pSrc->explicitCompressedSteeringMatrixFeedback << 16); - tmp143__ |= (pSrc->csiNumBFAntennae << 19); - tmp143__ |= (pSrc->uncompressedSteeringMatrixBFAntennae << 21); - tmp143__ |= (pSrc->compressedSteeringMatrixBFAntennae << 23); - tmp143__ |= (pSrc->reserved4 << 25); - if (unlikely(nBuf < 4)) - return DOT11F_INCOMPLETE_IE; - - frameshtonl(pCtx, pBuf, tmp143__, 0); - *pnConsumed += 4; - pBuf += 4; - nBuf -= 4 ; - tmp144__ = 0U; - tmp144__ |= (pSrc->antennaSelection << 0); - tmp144__ |= (pSrc->explicitCSIFeedbackTx << 1); - tmp144__ |= (pSrc->antennaIndicesFeedbackTx << 2); - tmp144__ |= (pSrc->explicitCSIFeedback << 3); - tmp144__ |= (pSrc->antennaIndicesFeedback << 4); - tmp144__ |= (pSrc->rxAS << 5); - tmp144__ |= (pSrc->txSoundingPPDUs << 6); - tmp144__ |= (pSrc->reserved5 << 7); + tmp143__ |= (pSrc->maxRxAMPDUFactor << 0); + tmp143__ |= (pSrc->mpduDensity << 2); + tmp143__ |= (pSrc->reserved1 << 5); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp144__; + *pBuf = tmp143__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + DOT11F_MEMCPY(pCtx, pBuf, pSrc->supportedMCSSet, 16); + *pnConsumed += 16; + pBuf += 16; + tmp144__ = 0U; + tmp144__ |= (pSrc->pco << 0); + tmp144__ |= (pSrc->transitionTime << 1); + tmp144__ |= (pSrc->reserved2 << 3); + tmp144__ |= (pSrc->mcsFeedback << 8); + tmp144__ |= (pSrc->reserved3 << 10); + if (unlikely(nBuf < 2)) + return DOT11F_INCOMPLETE_IE; + + frameshtons(pCtx, pBuf, tmp144__, 0); + *pnConsumed += 2; + pBuf += 2; + nBuf -= 2 ; + tmp145__ = 0U; + tmp145__ |= (pSrc->txBF << 0); + tmp145__ |= (pSrc->rxStaggeredSounding << 1); + tmp145__ |= (pSrc->txStaggeredSounding << 2); + tmp145__ |= (pSrc->rxZLF << 3); + tmp145__ |= (pSrc->txZLF << 4); + tmp145__ |= (pSrc->implicitTxBF << 5); + tmp145__ |= (pSrc->calibration << 6); + tmp145__ |= (pSrc->explicitCSITxBF << 8); + tmp145__ |= (pSrc->explicitUncompressedSteeringMatrix << 9); + tmp145__ |= (pSrc->explicitBFCSIFeedback << 10); + tmp145__ |= (pSrc->explicitUncompressedSteeringMatrixFeedback << 13); + tmp145__ |= (pSrc->explicitCompressedSteeringMatrixFeedback << 16); + tmp145__ |= (pSrc->csiNumBFAntennae << 19); + tmp145__ |= (pSrc->uncompressedSteeringMatrixBFAntennae << 21); + tmp145__ |= (pSrc->compressedSteeringMatrixBFAntennae << 23); + tmp145__ |= (pSrc->reserved4 << 25); + if (unlikely(nBuf < 4)) + return DOT11F_INCOMPLETE_IE; + + frameshtonl(pCtx, pBuf, tmp145__, 0); + *pnConsumed += 4; + pBuf += 4; + nBuf -= 4 ; + tmp146__ = 0U; + tmp146__ |= (pSrc->antennaSelection << 0); + tmp146__ |= (pSrc->explicitCSIFeedbackTx << 1); + tmp146__ |= (pSrc->antennaIndicesFeedbackTx << 2); + tmp146__ |= (pSrc->explicitCSIFeedback << 3); + tmp146__ |= (pSrc->antennaIndicesFeedback << 4); + tmp146__ |= (pSrc->rxAS << 5); + tmp146__ |= (pSrc->txSoundingPPDUs << 6); + tmp146__ |= (pSrc->reserved5 << 7); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp146__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -23814,9 +23853,9 @@ uint32_t dot11f_pack_ie_ht_info(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp145__; - uint16_t tmp146__; - uint16_t tmp147__; + uint8_t tmp147__; + uint16_t tmp148__; + uint16_t tmp149__; nNeeded += (pSrc->num_rsvd + 22); while (pSrc->present) { if (nNeeded > nBuf) @@ -23828,45 +23867,45 @@ uint32_t dot11f_pack_ie_ht_info(tpAniSirGlobal pCtx, *pBuf = pSrc->primaryChannel; *pnConsumed += 1; pBuf += 1; - tmp145__ = 0U; - tmp145__ |= (pSrc->secondaryChannelOffset << 0); - tmp145__ |= (pSrc->recommendedTxWidthSet << 2); - tmp145__ |= (pSrc->rifsMode << 3); - tmp145__ |= (pSrc->controlledAccessOnly << 4); - tmp145__ |= (pSrc->serviceIntervalGranularity << 5); + tmp147__ = 0U; + tmp147__ |= (pSrc->secondaryChannelOffset << 0); + tmp147__ |= (pSrc->recommendedTxWidthSet << 2); + tmp147__ |= (pSrc->rifsMode << 3); + tmp147__ |= (pSrc->controlledAccessOnly << 4); + tmp147__ |= (pSrc->serviceIntervalGranularity << 5); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp145__; + *pBuf = tmp147__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp146__ = 0U; - tmp146__ |= (pSrc->opMode << 0); - tmp146__ |= (pSrc->nonGFDevicesPresent << 2); - tmp146__ |= (pSrc->transmitBurstLimit << 3); - tmp146__ |= (pSrc->obssNonHTStaPresent << 4); - tmp146__ |= (pSrc->chan_center_freq_seg2 << 5); - tmp146__ |= (pSrc->reserved << 13); + tmp148__ = 0U; + tmp148__ |= (pSrc->opMode << 0); + tmp148__ |= (pSrc->nonGFDevicesPresent << 2); + tmp148__ |= (pSrc->transmitBurstLimit << 3); + tmp148__ |= (pSrc->obssNonHTStaPresent << 4); + tmp148__ |= (pSrc->chan_center_freq_seg2 << 5); + tmp148__ |= (pSrc->reserved << 13); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp146__, 0); + frameshtons(pCtx, pBuf, tmp148__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp147__ = 0U; - tmp147__ |= (pSrc->basicSTBCMCS << 0); - tmp147__ |= (pSrc->dualCTSProtection << 7); - tmp147__ |= (pSrc->secondaryBeacon << 8); - tmp147__ |= (pSrc->lsigTXOPProtectionFullSupport << 9); - tmp147__ |= (pSrc->pcoActive << 10); - tmp147__ |= (pSrc->pcoPhase << 11); - tmp147__ |= (pSrc->reserved2 << 12); + tmp149__ = 0U; + tmp149__ |= (pSrc->basicSTBCMCS << 0); + tmp149__ |= (pSrc->dualCTSProtection << 7); + tmp149__ |= (pSrc->secondaryBeacon << 8); + tmp149__ |= (pSrc->lsigTXOPProtectionFullSupport << 9); + tmp149__ |= (pSrc->pcoActive << 10); + tmp149__ |= (pSrc->pcoPhase << 11); + tmp149__ |= (pSrc->reserved2 << 12); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp147__, 0); + frameshtons(pCtx, pBuf, tmp149__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -23977,9 +24016,9 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp148__; - uint8_t tmp149__; uint8_t tmp150__; + uint8_t tmp151__; + uint8_t tmp152__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_measurement_report(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -23994,15 +24033,15 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, *pBuf = pSrc->token; *pnConsumed += 1; pBuf += 1; - tmp148__ = 0U; - tmp148__ |= (pSrc->late << 0); - tmp148__ |= (pSrc->incapable << 1); - tmp148__ |= (pSrc->refused << 2); - tmp148__ |= (pSrc->unused << 3); + tmp150__ = 0U; + tmp150__ |= (pSrc->late << 0); + tmp150__ |= (pSrc->incapable << 1); + tmp150__ |= (pSrc->refused << 2); + tmp150__ |= (pSrc->unused << 3); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp148__; + *pBuf = tmp150__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -24021,17 +24060,17 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Basic.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp149__ = 0U; - tmp149__ |= (pSrc->report.Basic.bss << 0); - tmp149__ |= (pSrc->report.Basic.ofdm_preamble << 1); - tmp149__ |= (pSrc->report.Basic.unid_signal << 2); - tmp149__ |= (pSrc->report.Basic.rader << 3); - tmp149__ |= (pSrc->report.Basic.unmeasured << 4); - tmp149__ |= (pSrc->report.Basic.unused << 5); + tmp151__ = 0U; + tmp151__ |= (pSrc->report.Basic.bss << 0); + tmp151__ |= (pSrc->report.Basic.ofdm_preamble << 1); + tmp151__ |= (pSrc->report.Basic.unid_signal << 2); + tmp151__ |= (pSrc->report.Basic.rader << 3); + tmp151__ |= (pSrc->report.Basic.unmeasured << 4); + tmp151__ |= (pSrc->report.Basic.unused << 5); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp149__; + *pBuf = tmp151__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -24098,13 +24137,13 @@ uint32_t dot11f_pack_ie_measurement_report(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->report.Beacon.meas_duration, 0); *pnConsumed += 2; pBuf += 2; - tmp150__ = 0U; - tmp150__ |= (pSrc->report.Beacon.condensed_PHY << 0); - tmp150__ |= (pSrc->report.Beacon.reported_frame_type << 7); + tmp152__ = 0U; + tmp152__ |= (pSrc->report.Beacon.condensed_PHY << 0); + tmp152__ |= (pSrc->report.Beacon.reported_frame_type << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp150__; + *pBuf = tmp152__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -24153,7 +24192,7 @@ uint32_t dot11f_pack_ie_measurement_request(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp151__; + uint8_t tmp153__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_measurement_request(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -24168,17 +24207,17 @@ uint32_t dot11f_pack_ie_measurement_request(tpAniSirGlobal pCtx, *pBuf = pSrc->measurement_token; *pnConsumed += 1; pBuf += 1; - tmp151__ = 0U; - tmp151__ |= (pSrc->parallel << 0); - tmp151__ |= (pSrc->enable << 1); - tmp151__ |= (pSrc->request << 2); - tmp151__ |= (pSrc->report << 3); - tmp151__ |= (pSrc->durationMandatory << 4); - tmp151__ |= (pSrc->unused << 5); + tmp153__ = 0U; + tmp153__ |= (pSrc->parallel << 0); + tmp153__ |= (pSrc->enable << 1); + tmp153__ |= (pSrc->request << 2); + tmp153__ |= (pSrc->report << 3); + tmp153__ |= (pSrc->durationMandatory << 4); + tmp153__ |= (pSrc->unused << 5); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp151__; + *pBuf = tmp153__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -24292,7 +24331,7 @@ uint32_t dot11f_pack_ie_mobility_domain(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp152__; + uint8_t tmp154__; nNeeded += 3; while (pSrc->present) { if (nNeeded > nBuf) @@ -24304,14 +24343,14 @@ uint32_t dot11f_pack_ie_mobility_domain(tpAniSirGlobal pCtx, frameshtons(pCtx, pBuf, pSrc->MDID, 0); *pnConsumed += 2; pBuf += 2; - tmp152__ = 0U; - tmp152__ |= (pSrc->overDSCap << 0); - tmp152__ |= (pSrc->resourceReqCap << 1); - tmp152__ |= (pSrc->reserved << 2); + tmp154__ = 0U; + tmp154__ |= (pSrc->overDSCap << 0); + tmp154__ |= (pSrc->resourceReqCap << 1); + tmp154__ |= (pSrc->reserved << 2); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp152__; + *pBuf = tmp154__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -24333,8 +24372,8 @@ uint32_t dot11f_pack_ie_neighbor_report(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp153__; - uint8_t tmp154__; + uint8_t tmp155__; + uint8_t tmp156__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_neighbor_report(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -24349,30 +24388,30 @@ uint32_t dot11f_pack_ie_neighbor_report(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->bssid, 6); *pnConsumed += 6; pBuf += 6; - tmp153__ = 0U; - tmp153__ |= (pSrc->APReachability << 0); - tmp153__ |= (pSrc->Security << 2); - tmp153__ |= (pSrc->KeyScope << 3); - tmp153__ |= (pSrc->SpecMgmtCap << 4); - tmp153__ |= (pSrc->QosCap << 5); - tmp153__ |= (pSrc->apsd << 6); - tmp153__ |= (pSrc->rrm << 7); + tmp155__ = 0U; + tmp155__ |= (pSrc->APReachability << 0); + tmp155__ |= (pSrc->Security << 2); + tmp155__ |= (pSrc->KeyScope << 3); + tmp155__ |= (pSrc->SpecMgmtCap << 4); + tmp155__ |= (pSrc->QosCap << 5); + tmp155__ |= (pSrc->apsd << 6); + tmp155__ |= (pSrc->rrm << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp153__; + *pBuf = tmp155__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp154__ = 0U; - tmp154__ |= (pSrc->DelayedBA << 0); - tmp154__ |= (pSrc->ImmBA << 1); - tmp154__ |= (pSrc->MobilityDomain << 2); - tmp154__ |= (pSrc->reserved << 3); + tmp156__ = 0U; + tmp156__ |= (pSrc->DelayedBA << 0); + tmp156__ |= (pSrc->ImmBA << 1); + tmp156__ |= (pSrc->MobilityDomain << 2); + tmp156__ |= (pSrc->reserved << 3); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp154__; + *pBuf = tmp156__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -24460,7 +24499,7 @@ uint32_t dot11f_pack_ie_operating_mode(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp155__; + uint8_t tmp157__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -24469,16 +24508,16 @@ uint32_t dot11f_pack_ie_operating_mode(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp155__ = 0U; - tmp155__ |= (pSrc->chanWidth << 0); - tmp155__ |= (pSrc->vht_160_80p80_supp << 2); - tmp155__ |= (pSrc->no_ldpc << 3); - tmp155__ |= (pSrc->rxNSS << 4); - tmp155__ |= (pSrc->rxNSSType << 7); + tmp157__ = 0U; + tmp157__ |= (pSrc->chanWidth << 0); + tmp157__ |= (pSrc->vht_160_80p80_supp << 2); + tmp157__ |= (pSrc->no_ldpc << 3); + tmp157__ |= (pSrc->rxNSS << 4); + tmp157__ |= (pSrc->rxNSSType << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp155__; + *pBuf = tmp157__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -24953,7 +24992,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 tmp156__; + uint8_t tmp158__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -24962,16 +25001,16 @@ uint32_t dot11f_pack_ie_pu_buffer_status(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp156__ = 0U; - tmp156__ |= (pSrc->ac_bk_traffic_aval << 0); - tmp156__ |= (pSrc->ac_be_traffic_aval << 1); - tmp156__ |= (pSrc->ac_vi_traffic_aval << 2); - tmp156__ |= (pSrc->ac_vo_traffic_aval << 3); - tmp156__ |= (pSrc->reserved << 4); + tmp158__ = 0U; + tmp158__ |= (pSrc->ac_bk_traffic_aval << 0); + tmp158__ |= (pSrc->ac_be_traffic_aval << 1); + tmp158__ |= (pSrc->ac_vi_traffic_aval << 2); + tmp158__ |= (pSrc->ac_vo_traffic_aval << 3); + tmp158__ |= (pSrc->reserved << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp156__; + *pBuf = tmp158__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -25127,7 +25166,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 tmp157__; + uint8_t tmp159__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -25136,16 +25175,16 @@ uint32_t dot11f_pack_ie_qos_caps_ap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp157__ = 0U; - tmp157__ |= (pSrc->count << 0); - tmp157__ |= (pSrc->qack << 4); - tmp157__ |= (pSrc->qreq << 5); - tmp157__ |= (pSrc->txopreq << 6); - tmp157__ |= (pSrc->reserved << 7); + tmp159__ = 0U; + tmp159__ |= (pSrc->count << 0); + tmp159__ |= (pSrc->qack << 4); + tmp159__ |= (pSrc->qreq << 5); + tmp159__ |= (pSrc->txopreq << 6); + tmp159__ |= (pSrc->reserved << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp157__; + *pBuf = tmp159__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -25167,7 +25206,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 tmp158__; + uint8_t tmp160__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -25176,18 +25215,18 @@ uint32_t dot11f_pack_ie_qos_caps_station(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp158__ = 0U; - tmp158__ |= (pSrc->acvo_uapsd << 0); - tmp158__ |= (pSrc->acvi_uapsd << 1); - tmp158__ |= (pSrc->acbk_uapsd << 2); - tmp158__ |= (pSrc->acbe_uapsd << 3); - tmp158__ |= (pSrc->qack << 4); - tmp158__ |= (pSrc->max_sp_length << 5); - tmp158__ |= (pSrc->more_data_ack << 7); + tmp160__ = 0U; + tmp160__ |= (pSrc->acvo_uapsd << 0); + tmp160__ |= (pSrc->acvi_uapsd << 1); + tmp160__ |= (pSrc->acbk_uapsd << 2); + tmp160__ |= (pSrc->acbe_uapsd << 3); + tmp160__ |= (pSrc->qack << 4); + tmp160__ |= (pSrc->max_sp_length << 5); + tmp160__ |= (pSrc->more_data_ack << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp158__; + *pBuf = tmp160__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -25832,7 +25871,7 @@ uint32_t dot11f_pack_ie_wapi(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp159__; + uint16_t tmp161__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_iewapi(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -25862,13 +25901,13 @@ uint32_t dot11f_pack_ie_wapi(tpAniSirGlobal pCtx, DOT11F_MEMCPY(pCtx, pBuf, pSrc->multicast_cipher_suite, 4); *pnConsumed += 4; pBuf += 4; - tmp159__ = 0U; - tmp159__ |= (pSrc->preauth << 0); - tmp159__ |= (pSrc->reserved << 1); + tmp161__ = 0U; + tmp161__ |= (pSrc->preauth << 0); + tmp161__ |= (pSrc->reserved << 1); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp159__, 0); + frameshtons(pCtx, pBuf, tmp161__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -26008,7 +26047,7 @@ uint32_t dot11f_pack_ie_wmm_caps(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp160__; + uint8_t tmp162__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -26030,16 +26069,16 @@ uint32_t dot11f_pack_ie_wmm_caps(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp160__ = 0U; - tmp160__ |= (pSrc->reserved << 0); - tmp160__ |= (pSrc->qack << 4); - tmp160__ |= (pSrc->queue_request << 5); - tmp160__ |= (pSrc->txop_request << 6); - tmp160__ |= (pSrc->more_ack << 7); + tmp162__ = 0U; + tmp162__ |= (pSrc->reserved << 0); + tmp162__ |= (pSrc->qack << 4); + tmp162__ |= (pSrc->queue_request << 5); + tmp162__ |= (pSrc->txop_request << 6); + tmp162__ |= (pSrc->more_ack << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp160__; + *pBuf = tmp162__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -26061,7 +26100,7 @@ uint32_t dot11f_pack_ie_wmm_info_ap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp161__; + uint8_t tmp163__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -26083,14 +26122,14 @@ uint32_t dot11f_pack_ie_wmm_info_ap(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp161__ = 0U; - tmp161__ |= (pSrc->param_set_count << 0); - tmp161__ |= (pSrc->reserved << 4); - tmp161__ |= (pSrc->uapsd << 7); + tmp163__ = 0U; + tmp163__ |= (pSrc->param_set_count << 0); + tmp163__ |= (pSrc->reserved << 4); + tmp163__ |= (pSrc->uapsd << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp161__; + *pBuf = tmp163__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -26112,7 +26151,7 @@ uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp162__; + uint8_t tmp164__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -26134,18 +26173,18 @@ uint32_t dot11f_pack_ie_wmm_info_station(tpAniSirGlobal pCtx, *pBuf = pSrc->version; *pnConsumed += 1; pBuf += 1; - tmp162__ = 0U; - tmp162__ |= (pSrc->acvo_uapsd << 0); - tmp162__ |= (pSrc->acvi_uapsd << 1); - tmp162__ |= (pSrc->acbk_uapsd << 2); - tmp162__ |= (pSrc->acbe_uapsd << 3); - tmp162__ |= (pSrc->reserved1 << 4); - tmp162__ |= (pSrc->max_sp_length << 5); - tmp162__ |= (pSrc->reserved2 << 7); + tmp164__ = 0U; + tmp164__ |= (pSrc->acvo_uapsd << 0); + tmp164__ |= (pSrc->acvi_uapsd << 1); + tmp164__ |= (pSrc->acbk_uapsd << 2); + tmp164__ |= (pSrc->acbe_uapsd << 3); + tmp164__ |= (pSrc->reserved1 << 4); + tmp164__ |= (pSrc->max_sp_length << 5); + tmp164__ |= (pSrc->reserved2 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp162__; + *pBuf = tmp164__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -26167,14 +26206,14 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp163__; - uint8_t tmp164__; uint8_t tmp165__; uint8_t tmp166__; uint8_t tmp167__; uint8_t tmp168__; uint8_t tmp169__; uint8_t tmp170__; + uint8_t tmp171__; + uint8_t tmp172__; nNeeded += 19; while (pSrc->present) { if (nNeeded > nBuf) @@ -26202,36 +26241,11 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, *pBuf = pSrc->reserved2; *pnConsumed += 1; pBuf += 1; - tmp163__ = 0U; - tmp163__ |= (pSrc->acbe_aifsn << 0); - tmp163__ |= (pSrc->acbe_acm << 4); - tmp163__ |= (pSrc->acbe_aci << 5); - tmp163__ |= (pSrc->unused1 << 7); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp163__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; - tmp164__ = 0U; - tmp164__ |= (pSrc->acbe_acwmin << 0); - tmp164__ |= (pSrc->acbe_acwmax << 4); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp164__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); - *pnConsumed += 2; - pBuf += 2; tmp165__ = 0U; - tmp165__ |= (pSrc->acbk_aifsn << 0); - tmp165__ |= (pSrc->acbk_acm << 4); - tmp165__ |= (pSrc->acbk_aci << 5); - tmp165__ |= (pSrc->unused2 << 7); + tmp165__ |= (pSrc->acbe_aifsn << 0); + tmp165__ |= (pSrc->acbe_acm << 4); + tmp165__ |= (pSrc->acbe_aci << 5); + tmp165__ |= (pSrc->unused1 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -26240,8 +26254,8 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp166__ = 0U; - tmp166__ |= (pSrc->acbk_acwmin << 0); - tmp166__ |= (pSrc->acbk_acwmax << 4); + tmp166__ |= (pSrc->acbe_acwmin << 0); + tmp166__ |= (pSrc->acbe_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -26249,14 +26263,14 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); + frameshtons(pCtx, pBuf, pSrc->acbe_txoplimit, 0); *pnConsumed += 2; pBuf += 2; tmp167__ = 0U; - tmp167__ |= (pSrc->acvi_aifsn << 0); - tmp167__ |= (pSrc->acvi_acm << 4); - tmp167__ |= (pSrc->acvi_aci << 5); - tmp167__ |= (pSrc->unused3 << 7); + tmp167__ |= (pSrc->acbk_aifsn << 0); + tmp167__ |= (pSrc->acbk_acm << 4); + tmp167__ |= (pSrc->acbk_aci << 5); + tmp167__ |= (pSrc->unused2 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -26265,8 +26279,8 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp168__ = 0U; - tmp168__ |= (pSrc->acvi_acwmin << 0); - tmp168__ |= (pSrc->acvi_acwmax << 4); + tmp168__ |= (pSrc->acbk_acwmin << 0); + tmp168__ |= (pSrc->acbk_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -26274,14 +26288,14 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); + frameshtons(pCtx, pBuf, pSrc->acbk_txoplimit, 0); *pnConsumed += 2; pBuf += 2; tmp169__ = 0U; - tmp169__ |= (pSrc->acvo_aifsn << 0); - tmp169__ |= (pSrc->acvo_acm << 4); - tmp169__ |= (pSrc->acvo_aci << 5); - tmp169__ |= (pSrc->unused4 << 7); + tmp169__ |= (pSrc->acvi_aifsn << 0); + tmp169__ |= (pSrc->acvi_acm << 4); + tmp169__ |= (pSrc->acvi_aci << 5); + tmp169__ |= (pSrc->unused3 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -26290,8 +26304,8 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp170__ = 0U; - tmp170__ |= (pSrc->acvo_acwmin << 0); - tmp170__ |= (pSrc->acvo_acwmax << 4); + tmp170__ |= (pSrc->acvi_acwmin << 0); + tmp170__ |= (pSrc->acvi_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -26299,6 +26313,31 @@ uint32_t dot11f_pack_ie_wmm_params(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + frameshtons(pCtx, pBuf, pSrc->acvi_txoplimit, 0); + *pnConsumed += 2; + pBuf += 2; + tmp171__ = 0U; + tmp171__ |= (pSrc->acvo_aifsn << 0); + tmp171__ |= (pSrc->acvo_acm << 4); + tmp171__ |= (pSrc->acvo_aci << 5); + tmp171__ |= (pSrc->unused4 << 7); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp171__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp172__ = 0U; + tmp172__ |= (pSrc->acvo_acwmin << 0); + tmp172__ |= (pSrc->acvo_acwmax << 4); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp172__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; frameshtons(pCtx, pBuf, pSrc->acvo_txoplimit, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ @@ -26852,7 +26891,7 @@ uint32_t dot11f_pack_ie_addba_extn_element(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp171__; + uint8_t tmp173__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -26861,14 +26900,14 @@ uint32_t dot11f_pack_ie_addba_extn_element(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp171__ = 0U; - tmp171__ |= (pSrc->no_fragmentation << 0); - tmp171__ |= (pSrc->he_frag_operation << 1); - tmp171__ |= (pSrc->reserved << 3); + tmp173__ = 0U; + tmp173__ |= (pSrc->no_fragmentation << 0); + tmp173__ |= (pSrc->he_frag_operation << 1); + tmp173__ |= (pSrc->reserved << 3); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp171__; + *pBuf = tmp173__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -26890,7 +26929,7 @@ uint32_t dot11f_pack_ie_bss_color_change(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp172__; + uint8_t tmp174__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -26904,13 +26943,13 @@ uint32_t dot11f_pack_ie_bss_color_change(tpAniSirGlobal pCtx, *pBuf = pSrc->countdown; *pnConsumed += 1; pBuf += 1; - tmp172__ = 0U; - tmp172__ |= (pSrc->new_color << 0); - tmp172__ |= (pSrc->reserved << 6); + tmp174__ = 0U; + tmp174__ |= (pSrc->new_color << 0); + tmp174__ |= (pSrc->reserved << 6); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp172__; + *pBuf = tmp174__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -27150,7 +27189,7 @@ uint32_t dot11f_pack_ie_fils_indication(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp173__; + uint16_t tmp175__; nNeeded += (pSrc->num_variable_data + 2); while (pSrc->present) { if (nNeeded > nBuf) @@ -27159,20 +27198,20 @@ uint32_t dot11f_pack_ie_fils_indication(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp173__ = 0U; - tmp173__ |= (pSrc->public_key_identifiers_cnt << 0); - tmp173__ |= (pSrc->realm_identifiers_cnt << 3); - tmp173__ |= (pSrc->is_ip_config_supported << 6); - tmp173__ |= (pSrc->is_cache_id_present << 7); - tmp173__ |= (pSrc->is_hessid_present << 8); - tmp173__ |= (pSrc->is_fils_sk_auth_supported << 9); - tmp173__ |= (pSrc->is_fils_sk_auth_pfs_supported << 10); - tmp173__ |= (pSrc->is_pk_auth_supported << 11); - tmp173__ |= (pSrc->reserved << 12); + tmp175__ = 0U; + tmp175__ |= (pSrc->public_key_identifiers_cnt << 0); + tmp175__ |= (pSrc->realm_identifiers_cnt << 3); + tmp175__ |= (pSrc->is_ip_config_supported << 6); + tmp175__ |= (pSrc->is_cache_id_present << 7); + tmp175__ |= (pSrc->is_hessid_present << 8); + tmp175__ |= (pSrc->is_fils_sk_auth_supported << 9); + tmp175__ |= (pSrc->is_fils_sk_auth_pfs_supported << 10); + tmp175__ |= (pSrc->is_pk_auth_supported << 11); + tmp175__ |= (pSrc->reserved << 12); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp173__, 0); + frameshtons(pCtx, pBuf, tmp175__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -27418,7 +27457,7 @@ uint32_t dot11f_pack_ie_he_6ghz_band_cap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp174__; + uint16_t tmp176__; nNeeded += 2; while (pSrc->present) { if (nNeeded > nBuf) @@ -27429,19 +27468,19 @@ uint32_t dot11f_pack_ie_he_6ghz_band_cap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); *pBuf = 59; ++pBuf; ++(*pnConsumed); - tmp174__ = 0U; - tmp174__ |= (pSrc->min_mpdu_start_spacing << 0); - tmp174__ |= (pSrc->max_ampdu_len_exp << 3); - tmp174__ |= (pSrc->max_mpdu_len << 6); - tmp174__ |= (pSrc->sm_pow_save << 9); - tmp174__ |= (pSrc->rd_responder << 11); - tmp174__ |= (pSrc->rx_ant_pattern_consistency << 12); - tmp174__ |= (pSrc->tx_ant_pattern_consistency << 13); - tmp174__ |= (pSrc->reserved << 14); + tmp176__ = 0U; + tmp176__ |= (pSrc->min_mpdu_start_spacing << 0); + tmp176__ |= (pSrc->max_ampdu_len_exp << 3); + tmp176__ |= (pSrc->max_mpdu_len << 6); + tmp176__ |= (pSrc->sm_pow_save << 9); + tmp176__ |= (pSrc->rd_responder << 11); + tmp176__ |= (pSrc->rx_ant_pattern_consistency << 12); + tmp176__ |= (pSrc->tx_ant_pattern_consistency << 13); + tmp176__ |= (pSrc->reserved << 14); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp174__, 0); + frameshtons(pCtx, pBuf, tmp176__, 0); *pnConsumed += 2; /* fieldsEndFlag = 1 */ nBuf -= 2 ; @@ -27463,11 +27502,11 @@ uint32_t dot11f_pack_ie_he_cap(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint32_t tmp175__; - uint16_t tmp176__; uint32_t tmp177__; - uint32_t tmp178__; - uint16_t tmp179__; + uint16_t tmp178__; + uint32_t tmp179__; + uint32_t tmp180__; + uint16_t tmp181__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_he_cap(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -27481,82 +27520,30 @@ uint32_t dot11f_pack_ie_he_cap(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); *pBuf = 35; ++pBuf; ++(*pnConsumed); - tmp175__ = 0U; - tmp175__ |= (pSrc->htc_he << 0); - tmp175__ |= (pSrc->twt_request << 1); - tmp175__ |= (pSrc->twt_responder << 2); - tmp175__ |= (pSrc->fragmentation << 3); - tmp175__ |= (pSrc->max_num_frag_msdu_amsdu_exp << 5); - tmp175__ |= (pSrc->min_frag_size << 8); - tmp175__ |= (pSrc->trigger_frm_mac_pad << 10); - tmp175__ |= (pSrc->multi_tid_aggr_rx_supp << 12); - tmp175__ |= (pSrc->he_link_adaptation << 15); - tmp175__ |= (pSrc->all_ack << 17); - tmp175__ |= (pSrc->trigd_rsp_sched << 18); - tmp175__ |= (pSrc->a_bsr << 19); - tmp175__ |= (pSrc->broadcast_twt << 20); - tmp175__ |= (pSrc->ba_32bit_bitmap << 21); - tmp175__ |= (pSrc->mu_cascade << 22); - tmp175__ |= (pSrc->ack_enabled_multitid << 23); - tmp175__ |= (pSrc->reserved << 24); - tmp175__ |= (pSrc->omi_a_ctrl << 25); - tmp175__ |= (pSrc->ofdma_ra << 26); - tmp175__ |= (pSrc->max_ampdu_len_exp_ext << 27); - tmp175__ |= (pSrc->amsdu_frag << 29); - tmp175__ |= (pSrc->flex_twt_sched << 30); - tmp175__ |= (pSrc->rx_ctrl_frame << 31); - if (unlikely(nBuf < 4)) - return DOT11F_INCOMPLETE_IE; - - frameshtonl(pCtx, pBuf, tmp175__, 0); - *pnConsumed += 4; - pBuf += 4; - nBuf -= 4 ; - tmp176__ = 0U; - tmp176__ |= (pSrc->bsrp_ampdu_aggr << 0); - tmp176__ |= (pSrc->qtp << 1); - tmp176__ |= (pSrc->a_bqr << 2); - tmp176__ |= (pSrc->spatial_reuse_param_rspder << 3); - tmp176__ |= (pSrc->ndp_feedback_supp << 4); - tmp176__ |= (pSrc->ops_supp << 5); - tmp176__ |= (pSrc->amsdu_in_ampdu << 6); - tmp176__ |= (pSrc->multi_tid_aggr_tx_supp << 7); - tmp176__ |= (pSrc->he_sub_ch_sel_tx_supp << 10); - tmp176__ |= (pSrc->ul_2x996_tone_ru_supp << 11); - tmp176__ |= (pSrc->om_ctrl_ul_mu_data_dis_rx << 12); - tmp176__ |= (pSrc->he_dynamic_smps << 13); - tmp176__ |= (pSrc->punctured_sounding_supp << 14); - tmp176__ |= (pSrc->ht_vht_trg_frm_rx_supp << 15); - if (unlikely(nBuf < 2)) - return DOT11F_INCOMPLETE_IE; - - frameshtons(pCtx, pBuf, tmp176__, 0); - *pnConsumed += 2; - pBuf += 2; - nBuf -= 2 ; tmp177__ = 0U; - tmp177__ |= (pSrc->reserved2 << 0); - tmp177__ |= (pSrc->chan_width_0 << 1); - tmp177__ |= (pSrc->chan_width_1 << 2); - tmp177__ |= (pSrc->chan_width_2 << 3); - tmp177__ |= (pSrc->chan_width_3 << 4); - tmp177__ |= (pSrc->chan_width_4 << 5); - tmp177__ |= (pSrc->chan_width_5 << 6); - tmp177__ |= (pSrc->chan_width_6 << 7); - tmp177__ |= (pSrc->rx_pream_puncturing << 8); - tmp177__ |= (pSrc->device_class << 12); - tmp177__ |= (pSrc->ldpc_coding << 13); - tmp177__ |= (pSrc->he_1x_ltf_800_gi_ppdu << 14); - tmp177__ |= (pSrc->midamble_tx_rx_max_nsts << 15); - tmp177__ |= (pSrc->he_4x_ltf_3200_gi_ndp << 17); - tmp177__ |= (pSrc->tb_ppdu_tx_stbc_lt_80mhz << 18); - tmp177__ |= (pSrc->rx_stbc_lt_80mhz << 19); - tmp177__ |= (pSrc->doppler << 20); - tmp177__ |= (pSrc->ul_mu << 22); - tmp177__ |= (pSrc->dcm_enc_tx << 24); - tmp177__ |= (pSrc->dcm_enc_rx << 27); - tmp177__ |= (pSrc->ul_he_mu << 30); - tmp177__ |= (pSrc->su_beamformer << 31); + tmp177__ |= (pSrc->htc_he << 0); + tmp177__ |= (pSrc->twt_request << 1); + tmp177__ |= (pSrc->twt_responder << 2); + tmp177__ |= (pSrc->fragmentation << 3); + tmp177__ |= (pSrc->max_num_frag_msdu_amsdu_exp << 5); + tmp177__ |= (pSrc->min_frag_size << 8); + tmp177__ |= (pSrc->trigger_frm_mac_pad << 10); + tmp177__ |= (pSrc->multi_tid_aggr_rx_supp << 12); + tmp177__ |= (pSrc->he_link_adaptation << 15); + tmp177__ |= (pSrc->all_ack << 17); + tmp177__ |= (pSrc->trigd_rsp_sched << 18); + tmp177__ |= (pSrc->a_bsr << 19); + tmp177__ |= (pSrc->broadcast_twt << 20); + tmp177__ |= (pSrc->ba_32bit_bitmap << 21); + tmp177__ |= (pSrc->mu_cascade << 22); + tmp177__ |= (pSrc->ack_enabled_multitid << 23); + tmp177__ |= (pSrc->reserved << 24); + tmp177__ |= (pSrc->omi_a_ctrl << 25); + tmp177__ |= (pSrc->ofdma_ra << 26); + tmp177__ |= (pSrc->max_ampdu_len_exp_ext << 27); + tmp177__ |= (pSrc->amsdu_frag << 29); + tmp177__ |= (pSrc->flex_twt_sched << 30); + tmp177__ |= (pSrc->rx_ctrl_frame << 31); if (unlikely(nBuf < 4)) return DOT11F_INCOMPLETE_IE; @@ -27565,52 +27552,104 @@ uint32_t dot11f_pack_ie_he_cap(tpAniSirGlobal pCtx, pBuf += 4; nBuf -= 4 ; tmp178__ = 0U; - tmp178__ |= (pSrc->su_beamformee << 0); - tmp178__ |= (pSrc->mu_beamformer << 1); - tmp178__ |= (pSrc->bfee_sts_lt_80 << 2); - tmp178__ |= (pSrc->bfee_sts_gt_80 << 5); - tmp178__ |= (pSrc->num_sounding_lt_80 << 8); - tmp178__ |= (pSrc->num_sounding_gt_80 << 11); - tmp178__ |= (pSrc->su_feedback_tone16 << 14); - tmp178__ |= (pSrc->mu_feedback_tone16 << 15); - tmp178__ |= (pSrc->codebook_su << 16); - tmp178__ |= (pSrc->codebook_mu << 17); - tmp178__ |= (pSrc->beamforming_feedback << 18); - tmp178__ |= (pSrc->he_er_su_ppdu << 21); - tmp178__ |= (pSrc->dl_mu_mimo_part_bw << 22); - tmp178__ |= (pSrc->ppet_present << 23); - tmp178__ |= (pSrc->srp << 24); - tmp178__ |= (pSrc->power_boost << 25); - tmp178__ |= (pSrc->he_ltf_800_gi_4x << 26); - tmp178__ |= (pSrc->max_nc << 27); - tmp178__ |= (pSrc->tb_ppdu_tx_stbc_gt_80mhz << 30); - tmp178__ |= (pSrc->rx_stbc_gt_80mhz << 31); - if (unlikely(nBuf < 4)) - return DOT11F_INCOMPLETE_IE; - - frameshtonl(pCtx, pBuf, tmp178__, 0); - *pnConsumed += 4; - pBuf += 4; - nBuf -= 4 ; - tmp179__ = 0U; - tmp179__ |= (pSrc->er_he_ltf_800_gi_4x << 0); - tmp179__ |= (pSrc->he_ppdu_20_in_40Mhz_2G << 1); - tmp179__ |= (pSrc->he_ppdu_20_in_160_80p80Mhz << 2); - tmp179__ |= (pSrc->he_ppdu_80_in_160_80p80Mhz << 3); - tmp179__ |= (pSrc->er_1x_he_ltf_gi << 4); - tmp179__ |= (pSrc->midamble_tx_rx_1x_he_ltf << 5); - tmp179__ |= (pSrc->dcm_max_bw << 6); - tmp179__ |= (pSrc->longer_than_16_he_sigb_ofdm_sym << 8); - tmp179__ |= (pSrc->non_trig_cqi_feedback << 9); - tmp179__ |= (pSrc->tx_1024_qam_lt_242_tone_ru << 10); - tmp179__ |= (pSrc->rx_1024_qam_lt_242_tone_ru << 11); - tmp179__ |= (pSrc->rx_full_bw_su_he_mu_compress_sigb << 12); - tmp179__ |= (pSrc->rx_full_bw_su_he_mu_non_cmpr_sigb << 13); - tmp179__ |= (pSrc->reserved3 << 14); + tmp178__ |= (pSrc->bsrp_ampdu_aggr << 0); + tmp178__ |= (pSrc->qtp << 1); + tmp178__ |= (pSrc->a_bqr << 2); + tmp178__ |= (pSrc->spatial_reuse_param_rspder << 3); + tmp178__ |= (pSrc->ndp_feedback_supp << 4); + tmp178__ |= (pSrc->ops_supp << 5); + tmp178__ |= (pSrc->amsdu_in_ampdu << 6); + tmp178__ |= (pSrc->multi_tid_aggr_tx_supp << 7); + tmp178__ |= (pSrc->he_sub_ch_sel_tx_supp << 10); + tmp178__ |= (pSrc->ul_2x996_tone_ru_supp << 11); + tmp178__ |= (pSrc->om_ctrl_ul_mu_data_dis_rx << 12); + tmp178__ |= (pSrc->he_dynamic_smps << 13); + tmp178__ |= (pSrc->punctured_sounding_supp << 14); + tmp178__ |= (pSrc->ht_vht_trg_frm_rx_supp << 15); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp179__, 0); + frameshtons(pCtx, pBuf, tmp178__, 0); + *pnConsumed += 2; + pBuf += 2; + nBuf -= 2 ; + tmp179__ = 0U; + tmp179__ |= (pSrc->reserved2 << 0); + tmp179__ |= (pSrc->chan_width_0 << 1); + tmp179__ |= (pSrc->chan_width_1 << 2); + tmp179__ |= (pSrc->chan_width_2 << 3); + tmp179__ |= (pSrc->chan_width_3 << 4); + tmp179__ |= (pSrc->chan_width_4 << 5); + tmp179__ |= (pSrc->chan_width_5 << 6); + tmp179__ |= (pSrc->chan_width_6 << 7); + tmp179__ |= (pSrc->rx_pream_puncturing << 8); + tmp179__ |= (pSrc->device_class << 12); + tmp179__ |= (pSrc->ldpc_coding << 13); + tmp179__ |= (pSrc->he_1x_ltf_800_gi_ppdu << 14); + tmp179__ |= (pSrc->midamble_tx_rx_max_nsts << 15); + tmp179__ |= (pSrc->he_4x_ltf_3200_gi_ndp << 17); + tmp179__ |= (pSrc->tb_ppdu_tx_stbc_lt_80mhz << 18); + tmp179__ |= (pSrc->rx_stbc_lt_80mhz << 19); + tmp179__ |= (pSrc->doppler << 20); + tmp179__ |= (pSrc->ul_mu << 22); + tmp179__ |= (pSrc->dcm_enc_tx << 24); + tmp179__ |= (pSrc->dcm_enc_rx << 27); + tmp179__ |= (pSrc->ul_he_mu << 30); + tmp179__ |= (pSrc->su_beamformer << 31); + if (unlikely(nBuf < 4)) + return DOT11F_INCOMPLETE_IE; + + frameshtonl(pCtx, pBuf, tmp179__, 0); + *pnConsumed += 4; + pBuf += 4; + nBuf -= 4 ; + tmp180__ = 0U; + tmp180__ |= (pSrc->su_beamformee << 0); + tmp180__ |= (pSrc->mu_beamformer << 1); + tmp180__ |= (pSrc->bfee_sts_lt_80 << 2); + tmp180__ |= (pSrc->bfee_sts_gt_80 << 5); + tmp180__ |= (pSrc->num_sounding_lt_80 << 8); + tmp180__ |= (pSrc->num_sounding_gt_80 << 11); + tmp180__ |= (pSrc->su_feedback_tone16 << 14); + tmp180__ |= (pSrc->mu_feedback_tone16 << 15); + tmp180__ |= (pSrc->codebook_su << 16); + tmp180__ |= (pSrc->codebook_mu << 17); + tmp180__ |= (pSrc->beamforming_feedback << 18); + tmp180__ |= (pSrc->he_er_su_ppdu << 21); + tmp180__ |= (pSrc->dl_mu_mimo_part_bw << 22); + tmp180__ |= (pSrc->ppet_present << 23); + tmp180__ |= (pSrc->srp << 24); + tmp180__ |= (pSrc->power_boost << 25); + tmp180__ |= (pSrc->he_ltf_800_gi_4x << 26); + tmp180__ |= (pSrc->max_nc << 27); + tmp180__ |= (pSrc->tb_ppdu_tx_stbc_gt_80mhz << 30); + tmp180__ |= (pSrc->rx_stbc_gt_80mhz << 31); + if (unlikely(nBuf < 4)) + return DOT11F_INCOMPLETE_IE; + + frameshtonl(pCtx, pBuf, tmp180__, 0); + *pnConsumed += 4; + pBuf += 4; + nBuf -= 4 ; + tmp181__ = 0U; + tmp181__ |= (pSrc->er_he_ltf_800_gi_4x << 0); + tmp181__ |= (pSrc->he_ppdu_20_in_40Mhz_2G << 1); + tmp181__ |= (pSrc->he_ppdu_20_in_160_80p80Mhz << 2); + tmp181__ |= (pSrc->he_ppdu_80_in_160_80p80Mhz << 3); + tmp181__ |= (pSrc->er_1x_he_ltf_gi << 4); + tmp181__ |= (pSrc->midamble_tx_rx_1x_he_ltf << 5); + tmp181__ |= (pSrc->dcm_max_bw << 6); + tmp181__ |= (pSrc->longer_than_16_he_sigb_ofdm_sym << 8); + tmp181__ |= (pSrc->non_trig_cqi_feedback << 9); + tmp181__ |= (pSrc->tx_1024_qam_lt_242_tone_ru << 10); + tmp181__ |= (pSrc->rx_1024_qam_lt_242_tone_ru << 11); + tmp181__ |= (pSrc->rx_full_bw_su_he_mu_compress_sigb << 12); + tmp181__ |= (pSrc->rx_full_bw_su_he_mu_non_cmpr_sigb << 13); + tmp181__ |= (pSrc->reserved3 << 14); + if (unlikely(nBuf < 2)) + return DOT11F_INCOMPLETE_IE; + + frameshtons(pCtx, pBuf, tmp181__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; @@ -27664,10 +27703,10 @@ uint32_t dot11f_pack_ie_he_op(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint16_t tmp180__; - uint8_t tmp181__; - uint8_t tmp182__; + uint16_t tmp182__; uint8_t tmp183__; + uint8_t tmp184__; + uint8_t tmp185__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_he_op(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -27681,38 +27720,38 @@ uint32_t dot11f_pack_ie_he_op(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); *pBuf = 36; ++pBuf; ++(*pnConsumed); - tmp180__ = 0U; - tmp180__ |= (pSrc->default_pe << 0); - tmp180__ |= (pSrc->twt_required << 3); - tmp180__ |= (pSrc->txop_rts_threshold << 4); - tmp180__ |= (pSrc->vht_oper_present << 14); - tmp180__ |= (pSrc->co_located_bss << 15); + tmp182__ = 0U; + tmp182__ |= (pSrc->default_pe << 0); + tmp182__ |= (pSrc->twt_required << 3); + tmp182__ |= (pSrc->txop_rts_threshold << 4); + tmp182__ |= (pSrc->vht_oper_present << 14); + tmp182__ |= (pSrc->co_located_bss << 15); if (unlikely(nBuf < 2)) return DOT11F_INCOMPLETE_IE; - frameshtons(pCtx, pBuf, tmp180__, 0); + frameshtons(pCtx, pBuf, tmp182__, 0); *pnConsumed += 2; pBuf += 2; nBuf -= 2 ; - tmp181__ = 0U; - tmp181__ |= (pSrc->er_su_disable << 0); - tmp181__ |= (pSrc->oper_info_6g_present << 1); - tmp181__ |= (pSrc->reserved2 << 2); + tmp183__ = 0U; + tmp183__ |= (pSrc->er_su_disable << 0); + tmp183__ |= (pSrc->oper_info_6g_present << 1); + tmp183__ |= (pSrc->reserved2 << 2); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp181__; + *pBuf = tmp183__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - tmp182__ = 0U; - tmp182__ |= (pSrc->bss_color << 0); - tmp182__ |= (pSrc->partial_bss_col << 6); - tmp182__ |= (pSrc->bss_col_disabled << 7); + tmp184__ = 0U; + tmp184__ |= (pSrc->bss_color << 0); + tmp184__ |= (pSrc->partial_bss_col << 6); + tmp184__ |= (pSrc->bss_col_disabled << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp182__; + *pBuf = tmp184__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -27749,14 +27788,15 @@ uint32_t dot11f_pack_ie_he_op(tpAniSirGlobal pCtx, *pBuf = pSrc->oper_info_6g.info.primary_ch; *pnConsumed += 1; pBuf += 1; - tmp183__ = 0U; - tmp183__ |= (pSrc->oper_info_6g.info.ch_width << 0); - tmp183__ |= (pSrc->oper_info_6g.info.dup_bcon << 2); - tmp183__ |= (pSrc->oper_info_6g.info.reserved << 3); + tmp185__ = 0U; + tmp185__ |= (pSrc->oper_info_6g.info.ch_width << 0); + tmp185__ |= (pSrc->oper_info_6g.info.dup_bcon << 2); + tmp185__ |= (pSrc->oper_info_6g.info.reg_info << 3); + tmp185__ |= (pSrc->oper_info_6g.info.reserved << 6); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp183__; + *pBuf = tmp185__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -27790,7 +27830,7 @@ uint32_t dot11f_pack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp184__; + uint8_t tmp186__; uint32_t status = DOT11F_PARSE_SUCCESS; status = dot11f_get_packed_ie_hs20vendor_ie(pCtx, pSrc, &nNeeded); if (!DOT11F_SUCCEEDED(status)) @@ -27810,15 +27850,15 @@ uint32_t dot11f_pack_ie_hs20vendor_ie(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); *pBuf = 0x10; ++pBuf; ++(*pnConsumed); - tmp184__ = 0U; - tmp184__ |= (pSrc->dgaf_dis << 0); - tmp184__ |= (pSrc->hs_id_present << 1); - tmp184__ |= (pSrc->reserved << 3); - tmp184__ |= (pSrc->release_num << 4); + tmp186__ = 0U; + tmp186__ |= (pSrc->dgaf_dis << 0); + tmp186__ |= (pSrc->hs_id_present << 1); + tmp186__ |= (pSrc->reserved << 3); + tmp186__ |= (pSrc->release_num << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp184__; + *pBuf = tmp186__; *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; @@ -27856,7 +27896,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 tmp185__; + uint8_t tmp187__; nNeeded += 1; while (pSrc->present) { if (nNeeded > nBuf) @@ -27865,17 +27905,17 @@ uint32_t dot11f_pack_ie_ht2040_bss_coexistence(tpAniSirGlobal pCtx, ++pBuf; ++(*pnConsumed); pIeLen = pBuf; ++pBuf; ++(*pnConsumed); - tmp185__ = 0U; - tmp185__ |= (pSrc->info_request << 0); - tmp185__ |= (pSrc->forty_mhz_intolerant << 1); - tmp185__ |= (pSrc->twenty_mhz_bsswidth_req << 2); - tmp185__ |= (pSrc->obss_scan_exemption_req << 3); - tmp185__ |= (pSrc->obss_scan_exemption_grant << 4); - tmp185__ |= (pSrc->unused << 5); + tmp187__ = 0U; + tmp187__ |= (pSrc->info_request << 0); + tmp187__ |= (pSrc->forty_mhz_intolerant << 1); + tmp187__ |= (pSrc->twenty_mhz_bsswidth_req << 2); + tmp187__ |= (pSrc->obss_scan_exemption_req << 3); + tmp187__ |= (pSrc->obss_scan_exemption_grant << 4); + tmp187__ |= (pSrc->unused << 5); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; - *pBuf = tmp185__; + *pBuf = tmp187__; *pnConsumed += 1; /* fieldsEndFlag = 1 */ nBuf -= 1 ; @@ -27929,14 +27969,14 @@ uint32_t dot11f_pack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, uint8_t *pIeLen = 0; uint32_t nConsumedOnEntry = *pnConsumed; uint32_t nNeeded = 0U; - uint8_t tmp186__; - uint8_t tmp187__; uint8_t tmp188__; uint8_t tmp189__; uint8_t tmp190__; uint8_t tmp191__; uint8_t tmp192__; uint8_t tmp193__; + uint8_t tmp194__; + uint8_t tmp195__; nNeeded += 13; while (pSrc->present) { if (nNeeded > nBuf) @@ -27950,36 +27990,11 @@ uint32_t dot11f_pack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, *pBuf = pSrc->qos; *pnConsumed += 1; pBuf += 1; - tmp186__ = 0U; - tmp186__ |= (pSrc->acbe_aifsn << 0); - tmp186__ |= (pSrc->acbe_acm << 4); - tmp186__ |= (pSrc->acbe_aci << 5); - tmp186__ |= (pSrc->unused1 << 7); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp186__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; - tmp187__ = 0U; - tmp187__ |= (pSrc->acbe_acwmin << 0); - tmp187__ |= (pSrc->acbe_acwmax << 4); - if (unlikely(nBuf < 1)) - return DOT11F_INCOMPLETE_IE; - - *pBuf = tmp187__; - *pnConsumed += 1; - pBuf += 1; - nBuf -= 1 ; - *pBuf = pSrc->acbe_muedca_timer; - *pnConsumed += 1; - pBuf += 1; tmp188__ = 0U; - tmp188__ |= (pSrc->acbk_aifsn << 0); - tmp188__ |= (pSrc->acbk_acm << 4); - tmp188__ |= (pSrc->acbk_aci << 5); - tmp188__ |= (pSrc->unused2 << 7); + tmp188__ |= (pSrc->acbe_aifsn << 0); + tmp188__ |= (pSrc->acbe_acm << 4); + tmp188__ |= (pSrc->acbe_aci << 5); + tmp188__ |= (pSrc->unused1 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -27988,8 +28003,8 @@ uint32_t dot11f_pack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp189__ = 0U; - tmp189__ |= (pSrc->acbk_acwmin << 0); - tmp189__ |= (pSrc->acbk_acwmax << 4); + tmp189__ |= (pSrc->acbe_acwmin << 0); + tmp189__ |= (pSrc->acbe_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -27997,14 +28012,14 @@ uint32_t dot11f_pack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - *pBuf = pSrc->acbk_muedca_timer; + *pBuf = pSrc->acbe_muedca_timer; *pnConsumed += 1; pBuf += 1; tmp190__ = 0U; - tmp190__ |= (pSrc->acvi_aifsn << 0); - tmp190__ |= (pSrc->acvi_acm << 4); - tmp190__ |= (pSrc->acvi_aci << 5); - tmp190__ |= (pSrc->unused3 << 7); + tmp190__ |= (pSrc->acbk_aifsn << 0); + tmp190__ |= (pSrc->acbk_acm << 4); + tmp190__ |= (pSrc->acbk_aci << 5); + tmp190__ |= (pSrc->unused2 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -28013,8 +28028,8 @@ uint32_t dot11f_pack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp191__ = 0U; - tmp191__ |= (pSrc->acvi_acwmin << 0); - tmp191__ |= (pSrc->acvi_acwmax << 4); + tmp191__ |= (pSrc->acbk_acwmin << 0); + tmp191__ |= (pSrc->acbk_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -28022,14 +28037,14 @@ uint32_t dot11f_pack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; - *pBuf = pSrc->acvi_muedca_timer; + *pBuf = pSrc->acbk_muedca_timer; *pnConsumed += 1; pBuf += 1; tmp192__ = 0U; - tmp192__ |= (pSrc->acvo_aifsn << 0); - tmp192__ |= (pSrc->acvo_acm << 4); - tmp192__ |= (pSrc->acvo_aci << 5); - tmp192__ |= (pSrc->unused4 << 7); + tmp192__ |= (pSrc->acvi_aifsn << 0); + tmp192__ |= (pSrc->acvi_acm << 4); + tmp192__ |= (pSrc->acvi_aci << 5); + tmp192__ |= (pSrc->unused3 << 7); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -28038,8 +28053,8 @@ uint32_t dot11f_pack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, pBuf += 1; nBuf -= 1 ; tmp193__ = 0U; - tmp193__ |= (pSrc->acvo_acwmin << 0); - tmp193__ |= (pSrc->acvo_acwmax << 4); + tmp193__ |= (pSrc->acvi_acwmin << 0); + tmp193__ |= (pSrc->acvi_acwmax << 4); if (unlikely(nBuf < 1)) return DOT11F_INCOMPLETE_IE; @@ -28047,6 +28062,31 @@ uint32_t dot11f_pack_ie_mu_edca_param_set(tpAniSirGlobal pCtx, *pnConsumed += 1; pBuf += 1; nBuf -= 1 ; + *pBuf = pSrc->acvi_muedca_timer; + *pnConsumed += 1; + pBuf += 1; + tmp194__ = 0U; + tmp194__ |= (pSrc->acvo_aifsn << 0); + tmp194__ |= (pSrc->acvo_acm << 4); + tmp194__ |= (pSrc->acvo_aci << 5); + tmp194__ |= (pSrc->unused4 << 7); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp194__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; + tmp195__ = 0U; + tmp195__ |= (pSrc->acvo_acwmin << 0); + tmp195__ |= (pSrc->acvo_acwmax << 4); + if (unlikely(nBuf < 1)) + return DOT11F_INCOMPLETE_IE; + + *pBuf = tmp195__; + *pnConsumed += 1; + pBuf += 1; + nBuf -= 1 ; *pBuf = pSrc->acvo_muedca_timer; *pnConsumed += 1; /* fieldsEndFlag = 1 */ @@ -29661,12 +29701,12 @@ static uint32_t pack_core(tpAniSirGlobal pCtx, sizeof(tDot11fIEtgt_mac_addr) * i), pBufRemaining, nBufRemaining, &len); break; - case SigIevht_transmit_power_env: + case SigIetransmit_power_env: status |= - dot11f_pack_ie_vht_transmit_power_env( - pCtx, (tDot11fIEvht_transmit_power_env *) + dot11f_pack_ie_transmit_power_env( + pCtx, (tDot11fIEtransmit_power_env *) (pSrc + pIe->offset + - sizeof(tDot11fIEvht_transmit_power_env) * i), + sizeof(tDot11fIEtransmit_power_env) * i), pBufRemaining, nBufRemaining, &len); break; case SigIeAID: diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c index 16d333d45275..a60d658bf65d 100644 --- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c +++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c @@ -264,13 +264,17 @@ populate_dot11_supp_operating_classes(struct mac_context *mac_ptr, } void -populate_dot11f_vht_tx_power_env(struct mac_context *mac, - tDot11fIEvht_transmit_power_env *pDot11f, - enum phy_ch_width ch_width, uint32_t chan_freq) +populate_dot11f_tx_power_env(struct mac_context *mac, + tDot11fIEtransmit_power_env *pDot11f, + enum phy_ch_width ch_width, uint32_t chan_freq, + uint16_t *num_tpe, bool is_ch_switch) { uint8_t num_tx_power, i, tx_power; int reg_max; + if (!is_ch_switch) + *num_tpe = 1; + switch (ch_width) { case CH_WIDTH_20MHZ: /* Max Transmit Power count = 0 (20 MHz) */ @@ -310,15 +314,15 @@ populate_dot11f_vht_tx_power_env(struct mac_context *mac, tx_power = reg_max; /* Ignore EID field */ - pDot11f->present = 1; - pDot11f->num_bytes = num_tx_power + 2; + pDot11f[0].present = 1; + pDot11f[0].num_tx_power = num_tx_power + 2; /* * Max Transmit Power count and * Max Transmit Power units = 0 (EIRP) */ - pDot11f->bytes[0] = num_tx_power; + pDot11f[0].tx_power[0] = num_tx_power; for (i = 0; i <= num_tx_power; i++) - pDot11f->bytes[i + 1] = tx_power; + pDot11f[0].tx_power[i + 1] = tx_power; } void @@ -356,13 +360,14 @@ populate_dot11f_chan_switch_wrapper(struct mac_context *mac, pDot11f->WiderBWChanSwitchAnn.present = 1; /* - * Add the VHT Transmit power Envelope Sublement. + * Add the Transmit power Envelope Sublement. */ if (pe_session->vhtCapability) { - populate_dot11f_vht_tx_power_env(mac, - &pDot11f->vht_transmit_power_env, + populate_dot11f_tx_power_env(mac, + &pDot11f->transmit_power_env, pe_session->gLimChannelSwitch.ch_width, - pe_session->gLimChannelSwitch.primaryChannel); + pe_session->gLimChannelSwitch.primaryChannel, + NULL, true); } } @@ -394,6 +399,8 @@ populate_dot11f_country(struct mac_context *mac, enum reg_wifi_band cur_triplet_band; int chan_enum; struct regulatory_channel *cur_chan_list; + uint8_t buffer_triplets[81][3]; + uint8_t i, j, num_triplets = 0; QDF_STATUS status; cur_chan_list = qdf_mem_malloc(NUM_CHANNELS * sizeof(*cur_chan_list)); @@ -414,19 +421,18 @@ populate_dot11f_country(struct mac_context *mac, ctry_ie->country[REG_ALPHA2_LEN] = 0x04; cur_triplet_valid = false; - ctry_ie->num_triplets = 0; for (chan_enum = 0; chan_enum < NUM_CHANNELS; chan_enum++) { if (wlan_reg_is_6ghz_chan_freq( cur_chan_list[chan_enum].center_freq)) { if (cur_triplet_valid) { - ctry_ie->triplets[ctry_ie->num_triplets][0] = + buffer_triplets[num_triplets][0] = wlan_reg_freq_to_chan(mac->pdev, cur_triplet_freq); - ctry_ie->triplets[ctry_ie->num_triplets][1] = + buffer_triplets[num_triplets][1] = cur_triplet_num_chans; - ctry_ie->triplets[ctry_ie->num_triplets][2] = + buffer_triplets[num_triplets][2] = cur_triplet_tx_power; - ctry_ie->num_triplets++; + num_triplets++; cur_triplet_valid = false; } break; @@ -435,14 +441,14 @@ populate_dot11f_country(struct mac_context *mac, if (cur_chan_list[chan_enum].chan_flags & REGULATORY_CHAN_DISABLED) { if (cur_triplet_valid) { - ctry_ie->triplets[ctry_ie->num_triplets][0] = + buffer_triplets[num_triplets][0] = wlan_reg_freq_to_chan(mac->pdev, cur_triplet_freq); - ctry_ie->triplets[ctry_ie->num_triplets][1] = + buffer_triplets[num_triplets][1] = cur_triplet_num_chans; - ctry_ie->triplets[ctry_ie->num_triplets][2] = + buffer_triplets[num_triplets][2] = cur_triplet_tx_power; - ctry_ie->num_triplets++; + num_triplets++; cur_triplet_valid = false; } continue; @@ -455,14 +461,14 @@ populate_dot11f_country(struct mac_context *mac, wlan_reg_freq_to_band(cur_chan_list[chan_enum].center_freq))) cur_triplet_num_chans++; else { - ctry_ie->triplets[ctry_ie->num_triplets][0] = + buffer_triplets[num_triplets][0] = wlan_reg_freq_to_chan(mac->pdev, cur_triplet_freq); - ctry_ie->triplets[ctry_ie->num_triplets][1] = + buffer_triplets[num_triplets][1] = cur_triplet_num_chans; - ctry_ie->triplets[ctry_ie->num_triplets][2] = + buffer_triplets[num_triplets][2] = cur_triplet_tx_power; - ctry_ie->num_triplets++; + num_triplets++; cur_triplet_freq = cur_chan_list[chan_enum].center_freq; @@ -481,12 +487,22 @@ populate_dot11f_country(struct mac_context *mac, } } - if (ctry_ie->num_triplets == 0) { + if (num_triplets == 0) { /* at-least one triplet should be present */ qdf_mem_free(cur_chan_list); return QDF_STATUS_SUCCESS; } + ctry_ie->num_more_triplets = num_triplets - 1; + ctry_ie->first_triplet[0] = buffer_triplets[0][0]; + ctry_ie->first_triplet[1] = buffer_triplets[0][1]; + ctry_ie->first_triplet[2] = buffer_triplets[0][2]; + + for (i = 0; i < ctry_ie->num_more_triplets; i++) { + for (j = 0; j < 3; j++) + ctry_ie->more_triplets[i][j] = + buffer_triplets[i + 1][j]; + } ctry_ie->present = 1; qdf_mem_free(cur_chan_list); @@ -6024,10 +6040,7 @@ QDF_STATUS populate_dot11f_timing_advert_frame(struct mac_context *mac_ctx, tDot11fTimingAdvertisementFrame *frame) { - uint32_t val, len, j = 0; - uint8_t temp[CFG_MAX_STR_LEN], code[3]; - tSirMacChanInfo *max_tx_power_data; - int32_t rem_length = 0, copied_length = 0; + uint32_t val = 0; /* Capabilities */ val = mac_ctx->mlme_cfg->wep_params.is_privacy_enabled; @@ -6053,30 +6066,7 @@ populate_dot11f_timing_advert_frame(struct mac_context *mac_ctx, (uint16_t)((val >> WNI_CFG_BLOCK_ACK_ENABLED_IMMEDIATE) & 1); /* Country */ - len = mac_ctx->mlme_cfg->power.max_tx_power_5.len; - max_tx_power_data = - (tSirMacChanInfo *)mac_ctx->mlme_cfg->power.max_tx_power_5.data; - rem_length = len; - while (rem_length >= (sizeof(tSirMacChanInfo))) { - temp[copied_length++] = - (uint8_t)wlan_reg_freq_to_chan( - mac_ctx->pdev, - max_tx_power_data[j].first_freq); - - temp[copied_length++] = max_tx_power_data[j].numChannels; - temp[copied_length++] = max_tx_power_data[j].maxTxPower; - j++; - rem_length -= (sizeof(tSirMacChanInfo)); - } - - wlan_reg_read_current_country(mac_ctx->psoc, code); - qdf_mem_copy(&frame->Country, code, 2); - if (copied_length > MAX_SIZE_OF_TRIPLETS_IN_COUNTRY_IE) - copied_length = MAX_SIZE_OF_TRIPLETS_IN_COUNTRY_IE; - - frame->Country.num_triplets = (uint8_t)(copied_length / 3); - qdf_mem_copy((uint8_t *)&frame->Country.triplets, temp, copied_length); - frame->Country.present = 1; + populate_dot11f_country(mac_ctx, &frame->Country, NULL); /* PowerConstraints */ frame->PowerConstraints.localPowerConstraints = diff --git a/core/mac/src/sys/legacy/src/utils/src/utils_parser.c b/core/mac/src/sys/legacy/src/utils/src/utils_parser.c index c4b8cc82ed40..0a57b71b399d 100644 --- a/core/mac/src/sys/legacy/src/utils/src/utils_parser.c +++ b/core/mac/src/sys/legacy/src/utils/src/utils_parser.c @@ -265,18 +265,23 @@ void convert_tim(struct mac_context *mac, tSirMacTim *pOld, tDot11fIETIM *pNew) void convert_country(struct mac_context *mac, tSirCountryInformation *pOld, tDot11fIECountry *pNew) { - int i; + uint8_t i = 0; qdf_mem_copy(pOld->countryString, pNew->country, COUNTRY_STRING_LENGTH); - pOld->numIntervals = pNew->num_triplets; + pOld->numIntervals = pNew->num_more_triplets; - for (i = 0; i < pNew->num_triplets; ++i) { - pOld->channelTransmitPower[i].channelNumber = - pNew->triplets[i][0]; - pOld->channelTransmitPower[i].numChannel = pNew->triplets[i][1]; - pOld->channelTransmitPower[i].maxTransmitPower = - pNew->triplets[i][2]; + pOld->channelTransmitPower[i].channelNumber = pNew->first_triplet[0]; + pOld->channelTransmitPower[i].numChannel = pNew->first_triplet[1]; + pOld->channelTransmitPower[i].maxTransmitPower = pNew->first_triplet[2]; + + for (i = 0; i < pNew->num_more_triplets; i++) { + pOld->channelTransmitPower[i + 1].channelNumber = + pNew->more_triplets[i][0]; + pOld->channelTransmitPower[i + 1].numChannel = + pNew->more_triplets[i][1]; + pOld->channelTransmitPower[i + 1].maxTransmitPower = + pNew->more_triplets[i][2]; } } diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 24ef38ab2196..b3c27640f529 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -15449,17 +15449,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId, csr_join_req->txLdpcIniFeatureEnabled = (uint8_t)mac->mlme_cfg->ht_caps.tx_ldpc_enable; - if ((csr_is11h_supported(mac)) && - (WLAN_REG_IS_5GHZ_CH_FREQ(bss_freq)) && - (pIes->Country.present) && - (!mac->mlme_cfg->sap_cfg.country_code_priority)) { - csr_save_to_channel_power2_g_5_g(mac, - pIes->Country.num_triplets * - sizeof(tSirMacChanInfo), - (tSirMacChanInfo *) - (&pIes->Country.triplets[0])); - csr_apply_power2_current(mac); - } /* * If RX LDPC has been disabled for 2.4GHz channels and enabled * for 5Ghz for STA like persona then here is how to handle