wifi: RR MU scheduler sets the preamble type of DL MU PPDUs earlier

This commit is contained in:
Stefano Avallone
2023-07-05 17:43:16 +02:00
committed by Stefano Avallone
parent caf9e4547f
commit a8237503c8

View File

@@ -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++;
}