diff --git a/core/mac/inc/sir_mac_prot_def.h b/core/mac/inc/sir_mac_prot_def.h index 13436dc962c6..45ec349cb627 100644 --- a/core/mac/inc/sir_mac_prot_def.h +++ b/core/mac/inc/sir_mac_prot_def.h @@ -199,6 +199,8 @@ #define SIR_MAC_VHT_GID_NOTIFICATION 1 #define SIR_MAC_VHT_OPMODE_NOTIFICATION 2 +#define SIR_MAC_VHT_OPMODE_SIZE 3 + #define NUM_OF_SOUNDING_DIMENSIONS 1 /*Nss - 1, (Nss = 2 for 2x2)*/ /* HT Action Field Codes */ #define SIR_MAC_SM_POWER_SAVE 1 diff --git a/core/mac/src/pe/sch/sch_beacon_gen.c b/core/mac/src/pe/sch/sch_beacon_gen.c index f6b04a759564..53e2f68ee905 100644 --- a/core/mac/src/pe/sch/sch_beacon_gen.c +++ b/core/mac/src/pe/sch/sch_beacon_gen.c @@ -457,9 +457,6 @@ sch_set_fixed_beacon_fields(tpAniSirGlobal mac_ctx, tpPESession session) /* populate_dot11f_vht_ext_bss_load( mac_ctx, &bcn2.VHTExtBssLoad); */ - if (session->gLimOperatingMode.present) - populate_dot11f_operating_mode(mac_ctx, - &bcn_2->OperatingMode, session); } if (lim_is_session_he_capable(session)) { @@ -583,6 +580,14 @@ sch_set_fixed_beacon_fields(tpAniSirGlobal mac_ctx, tpPESession session) } + if (session->vhtCapability && session->gLimOperatingMode.present) { + populate_dot11f_operating_mode(mac_ctx, &bcn_2->OperatingMode, + session); + lim_strip_ie(mac_ctx, addn_ie, &addn_ielen, + SIR_MAC_VHT_OPMODE_EID, ONE_BYTE, NULL, 0, + NULL, SIR_MAC_VHT_OPMODE_SIZE - 2); + } + n_status = dot11f_pack_beacon2(mac_ctx, bcn_2, session->pSchBeaconFrameEnd, SCH_MAX_BEACON_SIZE, &n_bytes);