wifi: Cleanup MU user infos map from HePpdu

This commit is contained in:
Sébastien Deronne
2022-11-08 22:06:26 +01:00
committed by Sebastien Deronne
parent 0d7bd988e0
commit 06fe860a17
3 changed files with 5 additions and 28 deletions

View File

@@ -56,7 +56,7 @@ EhtPpdu::EhtPpdu(const WifiConstPsduMap& psdus,
WifiPpduType
EhtPpdu::GetType() const
{
if (m_muUserInfos.empty())
if (m_psdus.count(SU_STA_ID) > 0)
{
return WIFI_PPDU_TYPE_SU;
}
@@ -75,13 +75,13 @@ EhtPpdu::GetType() const
bool
EhtPpdu::IsDlMu() const
{
return (m_preamble == WIFI_PREAMBLE_EHT_MU) && !m_muUserInfos.empty();
return (m_preamble == WIFI_PREAMBLE_EHT_MU) && (m_psdus.count(SU_STA_ID) == 0);
}
bool
EhtPpdu::IsUlMu() const
{
return (m_preamble == WIFI_PREAMBLE_EHT_TB) && !m_muUserInfos.empty();
return (m_preamble == WIFI_PREAMBLE_EHT_TB) && (m_psdus.count(SU_STA_ID) == 0);
}
void
@@ -99,13 +99,7 @@ EhtPpdu::SetTxVectorFromPhyHeaders(WifiTxVector& txVector,
txVector.SetEhtPpduType(m_ehtPpduType); // FIXME: PPDU type should be read from U-SIG
if (txVector.IsDlMu())
{
auto copyTxVector = txVector;
for (const auto& muUserInfo : m_muUserInfos)
{
txVector.SetHeMuUserInfo(muUserInfo.first, muUserInfo.second);
}
SetHeMuUserInfos(copyTxVector, heSig);
NS_ASSERT(txVector.GetHeMuUserInfoMap() == copyTxVector.GetHeMuUserInfoMap());
SetHeMuUserInfos(txVector, heSig);
}
if (ns3::IsDlMu(m_preamble))
{

View File

@@ -68,14 +68,6 @@ HePpdu::HePpdu(const WifiConstPsduMap& psdus,
m_psdus.begin()->second = nullptr;
m_psdus.clear();
m_psdus = psdus;
if (txVector.IsMu())
{
for (const auto& heMuUserInfo : txVector.GetHeMuUserInfoMap())
{
auto [it, ret] = m_muUserInfos.emplace(heMuUserInfo);
NS_ABORT_MSG_IF(!ret, "STA-ID " << heMuUserInfo.first << " already present");
}
}
SetPhyHeaders(txVector, ppduDuration);
}
@@ -223,13 +215,7 @@ HePpdu::SetTxVectorFromPhyHeaders(WifiTxVector& txVector,
}
if (IsDlMu())
{
auto copyTxVector = txVector;
for (const auto& muUserInfo : m_muUserInfos)
{
txVector.SetHeMuUserInfo(muUserInfo.first, muUserInfo.second);
}
SetHeMuUserInfos(copyTxVector, heSig);
NS_ASSERT(txVector.GetHeMuUserInfoMap() == copyTxVector.GetHeMuUserInfoMap());
SetHeMuUserInfos(txVector, heSig);
}
if (txVector.IsDlMu())
{

View File

@@ -383,9 +383,6 @@ class HePpdu : public OfdmPpdu
#endif
mutable TxPsdFlag m_txPsdFlag; //!< the transmit power spectral density flag
WifiTxVector::HeMuUserInfoMap m_muUserInfos; //!< HE MU specific per-user information (to be
//!< removed once HE-SIG-B headers are implemented)
private:
std::string PrintPayload() const override;
WifiTxVector DoGetTxVector() const override;