From 5128d699f4d742b0918a2a3db89a9b64cc31328d Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Sat, 10 May 2025 12:47:13 +0200 Subject: [PATCH] wifi: WifiMacQueue Remove() shall remove items from blocked container queues otherwise, we are unable to completely flush a queue --- src/wifi/model/wifi-mac-queue.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/wifi/model/wifi-mac-queue.cc b/src/wifi/model/wifi-mac-queue.cc index be133a40d..a35d647d0 100644 --- a/src/wifi/model/wifi-mac-queue.cc +++ b/src/wifi/model/wifi-mac-queue.cc @@ -387,7 +387,13 @@ WifiMacQueue::PeekFirstAvailable(uint8_t linkId, Ptr item) const Ptr WifiMacQueue::Remove() { - return Remove(Peek()); + if (auto queueId = m_scheduler->GetNext(m_ac, std::nullopt, false)) + { + return Remove(GetContainer().GetQueue(queueId.value()).cbegin()->mpdu); + } + + NS_LOG_DEBUG("The queue is empty"); + return nullptr; } Ptr