wifi: Cleanup MU user infos map from HePpdu
This commit is contained in:
committed by
Sebastien Deronne
parent
0d7bd988e0
commit
06fe860a17
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user