wifi: MLDs are indexed by MLD address in the Buffer Status map
This commit is contained in:
committed by
Stefano Avallone
parent
97ade1957c
commit
bfcc5b71fa
@@ -394,22 +394,23 @@ RrMultiUserScheduler::TrySendingBasicTf()
|
||||
|
||||
for (const auto& candidate : txVector.GetHeMuUserInfoMap())
|
||||
{
|
||||
auto staIt = m_apMac->GetStaList().find(candidate.first);
|
||||
NS_ASSERT(staIt != m_apMac->GetStaList().end());
|
||||
uint8_t queueSize = m_apMac->GetMaxBufferStatus(staIt->second);
|
||||
auto address = m_apMac->GetMldOrLinkAddressByAid(candidate.first);
|
||||
NS_ASSERT_MSG(address, "AID " << candidate.first << " not found");
|
||||
|
||||
uint8_t queueSize = m_apMac->GetMaxBufferStatus(*address);
|
||||
if (queueSize == 255)
|
||||
{
|
||||
NS_LOG_DEBUG("Buffer status of station " << staIt->second << " is unknown");
|
||||
NS_LOG_DEBUG("Buffer status of station " << *address << " is unknown");
|
||||
maxBufferSize = std::max(maxBufferSize, m_ulPsduSize);
|
||||
}
|
||||
else if (queueSize == 254)
|
||||
{
|
||||
NS_LOG_DEBUG("Buffer status of station " << staIt->second << " is not limited");
|
||||
NS_LOG_DEBUG("Buffer status of station " << *address << " is not limited");
|
||||
maxBufferSize = 0xffffffff;
|
||||
}
|
||||
else
|
||||
{
|
||||
NS_LOG_DEBUG("Buffer status of station " << staIt->second << " is " << +queueSize);
|
||||
NS_LOG_DEBUG("Buffer status of station " << *address << " is " << +queueSize);
|
||||
maxBufferSize = std::max(maxBufferSize, static_cast<uint32_t>(queueSize * 256));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -658,9 +658,10 @@ QosFrameExchangeManager::PreProcessFrame(Ptr<const WifiPsdu> psdu, const WifiTxV
|
||||
NS_LOG_DEBUG("Station " << hdr.GetAddr2() << " reported a buffer status of "
|
||||
<< +hdr.GetQosQueueSize()
|
||||
<< " for tid=" << +hdr.GetQosTid());
|
||||
StaticCast<ApWifiMac>(m_mac)->SetBufferStatus(hdr.GetQosTid(),
|
||||
hdr.GetAddr2(),
|
||||
hdr.GetQosQueueSize());
|
||||
StaticCast<ApWifiMac>(m_mac)->SetBufferStatus(
|
||||
hdr.GetQosTid(),
|
||||
mpdu->GetOriginal()->GetHeader().GetAddr2(),
|
||||
hdr.GetQosQueueSize());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user