wifi: Notify EMLSR Manager of TXOP end only if TXOP actually started

This commit is contained in:
Stefano Avallone
2023-09-20 17:56:20 +02:00
committed by Stefano Avallone
parent 8cbcd0cb96
commit 5c2da745c3

View File

@@ -681,9 +681,16 @@ EhtFrameExchangeManager::NotifyChannelReleased(Ptr<Txop> txop)
}
else if (m_staMac && m_staMac->IsEmlsrLink(m_linkId))
{
// notify the EMLSR Manager of the UL TXOP end
// notify the EMLSR Manager of the UL TXOP end, if the TXOP included the transmission of
// at least a frame
NS_ASSERT(m_staMac->GetEmlsrManager());
m_staMac->GetEmlsrManager()->NotifyTxopEnd(m_linkId);
auto edca = DynamicCast<QosTxop>(txop);
NS_ASSERT(edca);
if (auto txopStart = edca->GetTxopStartTime(m_linkId);
txopStart && Simulator::Now() > *txopStart)
{
m_staMac->GetEmlsrManager()->NotifyTxopEnd(m_linkId);
}
}
HeFrameExchangeManager::NotifyChannelReleased(txop);