diff --git a/core/mac/src/cfg/cfgUtil/dot11f.frms b/core/mac/src/cfg/cfgUtil/dot11f.frms index 32c084761aba..b19b54951930 100644 --- a/core/mac/src/cfg/cfgUtil/dot11f.frms +++ b/core/mac/src/cfg/cfgUtil/dot11f.frms @@ -3939,6 +3939,8 @@ FRAME ProbeResponse // 7.2.3.9 OPTIE VHTCaps; OPTIE VHTOperation; + OPTIE vht_transmit_power_env; + OPTIE ChannelSwitchWrapper; OPTIE VHTExtBssLoad; OPTIE ExtCap; OPTIE OBSSScanParameters; @@ -3947,7 +3949,6 @@ FRAME ProbeResponse // 7.2.3.9 OPTIE vendor_vht_ie; OPTIE Vendor3IE; OPTIE hs20vendor_ie; - OPTIE ChannelSwitchWrapper; OPTIE QComVendorIE; OPTIE ESEVersion; OPTIE MBO_IE; diff --git a/core/mac/src/include/dot11f.h b/core/mac/src/include/dot11f.h index 464512175008..4169fd9073e1 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' - * Mon Mar 16 12:19:32 2020 from the following file(s): + * Wed Apr 15 11:04:38 2020 from the following file(s): * * dot11f.frms * @@ -10474,6 +10474,8 @@ typedef struct sDot11fProbeResponse{ tDot11fIEP2PProbeRes P2PProbeRes; tDot11fIEVHTCaps VHTCaps; tDot11fIEVHTOperation VHTOperation; + tDot11fIEvht_transmit_power_env vht_transmit_power_env; + tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEVHTExtBssLoad VHTExtBssLoad; tDot11fIEExtCap ExtCap; tDot11fIEOBSSScanParameters OBSSScanParameters; @@ -10482,7 +10484,6 @@ typedef struct sDot11fProbeResponse{ tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEhs20vendor_ie hs20vendor_ie; - tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEQComVendorIE QComVendorIE; tDot11fIEESEVersion ESEVersion; tDot11fIEMBO_IE MBO_IE; 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 87f2ee95bb6b..579b9ed6b8cc 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/core/mac/src/pe/lim/lim_send_management_frames.c @@ -692,6 +692,11 @@ 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); /* * 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 44b0f86ec7a7..fc436c7b1d30 100644 --- a/core/mac/src/pe/sch/sch_beacon_gen.c +++ b/core/mac/src/pe/sch/sch_beacon_gen.c @@ -856,6 +856,13 @@ 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)); + } 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 0c7e6d941d20..b39ef278865e 100644 --- a/core/mac/src/sys/legacy/src/utils/src/dot11f.c +++ b/core/mac/src/sys/legacy/src/utils/src/dot11f.c @@ -11392,6 +11392,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, ChannelSwitchWrapper), + offsetof(tDot11fIEChannelSwitchWrapper, present), 0, + "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, + {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fProbeResponse, VHTExtBssLoad), offsetof(tDot11fIEVHTExtBssLoad, present), 0, "VHTExtBssLoad", 0, 7, 7, SigIeVHTExtBssLoad, {0, 0, 0, 0, 0}, @@ -11421,10 +11429,6 @@ static const tIEDefn IES_ProbeResponse[] = { offsetof(tDot11fIEhs20vendor_ie, present), 0, "hs20vendor_ie", 0, 7, 9, SigIehs20vendor_ie, {80, 111, 154, 16, 0}, 4, DOT11F_EID_HS20VENDOR_IE, 0, 0, }, - { offsetof(tDot11fProbeResponse, ChannelSwitchWrapper), - offsetof(tDot11fIEChannelSwitchWrapper, present), 0, - "ChannelSwitchWrapper", 0, 2, 14, SigIeChannelSwitchWrapper, - {0, 0, 0, 0, 0}, 0, DOT11F_EID_CHANNELSWITCHWRAPPER, 0, 0, }, { offsetof(tDot11fProbeResponse, QComVendorIE), offsetof(tDot11fIEQComVendorIE, present), 0, "QComVendorIE", 0, 7, 7, SigIeQComVendorIE, {0, 160, 198, 0, 0},