diff --git a/src/wifi/model/he/rr-multi-user-scheduler.cc b/src/wifi/model/he/rr-multi-user-scheduler.cc index b1af13d1e..d3ec4de77 100644 --- a/src/wifi/model/he/rr-multi-user-scheduler.cc +++ b/src/wifi/model/he/rr-multi-user-scheduler.cc @@ -708,8 +708,17 @@ RrMultiUserScheduler::TrySendingDlMuPpdu() WifiTxVector suTxVector = GetWifiRemoteStationManager(m_linkId)->GetDataTxVector(mpdu->GetHeader(), m_allowedWidth); + WifiTxVector txVectorCopy = m_txParams.m_txVector; + // the first candidate STA determines the preamble type for the DL MU PPDU + if (m_candidates.empty() && + suTxVector.GetPreambleType() == WIFI_PREAMBLE_EHT_MU) + { + m_txParams.m_txVector.SetPreambleType(WIFI_PREAMBLE_EHT_MU); + m_txParams.m_txVector.SetEhtPpduType(0); // indicates DL OFDMA transmission + } + m_txParams.m_txVector.SetHeMuUserInfo(staIt->aid, {{currRuType, 1, true}, suTxVector.GetMode().GetMcsValue(), @@ -737,17 +746,6 @@ RrMultiUserScheduler::TrySendingDlMuPpdu() } } - // the first candidate STA determines the preamble type for the DL MU PPDU - if (m_candidates.size() == 1) - { - if (m_apMac->GetEhtSupported() && m_apMac->GetEhtSupported(staIt->address)) - { - m_txParams.m_txVector.SetPreambleType(WIFI_PREAMBLE_EHT_MU); - m_txParams.m_txVector.SetEhtPpduType(0); // indicates DL OFDMA transmission - } - // TODO otherwise, make sure the TX width does not exceed 160 MHz - } - // move to the next station in the list staIt++; }