48 wifiMacQueue->SetMaxSize(
QueueSize(
"5p"));
51 wifiMacScheduler->m_perAcInfo[
AC_BE].wifiMacQueue = wifiMacQueue;
52 wifiMacQueue->SetScheduler(wifiMacScheduler);
57 std::list<uint64_t> packetUids;
66 wifiMacQueue->Enqueue(item);
68 packetUids.push_back(packet->GetUid());
72 auto mpdu = wifiMacQueue->PeekByTidAndAddress(0, addr1);
75 "Queue has unexpected number of elements");
76 for (
auto packetUid : packetUids)
80 "Stored packet is not the expected one");
81 mpdu = wifiMacQueue->PeekByTidAndAddress(0, addr1, mpdu);
91 wifiMacQueue->Enqueue(item);
94 packetUids.pop_front();
95 packetUids.push_back(packet->GetUid());
98 mpdu = wifiMacQueue->PeekByTidAndAddress(0, addr1);
101 "Queue has unexpected number of elements");
102 for (
auto packetUid : packetUids)
106 "Stored packet is not the expected one");
107 mpdu = wifiMacQueue->PeekByTidAndAddress(0, addr1, mpdu);
110 wifiMacScheduler->Dispose();
224 auto [first1, last1] =
m_container.ExtractExpiredMpdus(queueId1);
229 "Unexpected extracted MPDU");
235 "Unexpected extracted MPDU");
249 auto [first2, last2] =
m_container.ExtractExpiredMpdus(queueId2);
254 "Unexpected extracted MPDU");
289 std::set<uint16_t> expectedSeqNo{5, 7, 8, 14, 17};
290 std::set<uint16_t> actualSeqNo;
292 std::transform(
first, last, std::inserter(actualSeqNo, actualSeqNo.end()), [](
auto& elem) {
293 return elem.mpdu->GetHeader().GetSequenceNumber();
298 "Unexpected number of MPDUs extracted");
300 for (
auto expectedIt = expectedSeqNo.begin(), actualIt = actualSeqNo.begin();
301 expectedIt != expectedSeqNo.end();
302 ++expectedIt, ++actualIt)
316 auto elemIt =
m_container.GetQueue(queueId1).begin();
320 "There should be other MPDU(s) in container queue 1");
323 "Unexpected queued MPDU");
327 "There should be other MPDU(s) in container queue 1");
330 "Unexpected queued MPDU");
334 "There should be other MPDU(s) in container queue 1");
337 "Unexpected queued MPDU");
341 "There should be other MPDU(s) in container queue 1");
344 "Unexpected queued MPDU");
348 "There should be other MPDU(s) in container queue 1");
351 "Unexpected queued MPDU");
355 "There should be other MPDU(s) in container queue 1");
358 "Unexpected queued MPDU");
362 "There should be no other MPDU in container queue 1");
371 "There should be other MPDU(s) in container queue 2");
374 "Unexpected queued MPDU");
378 "There should be other MPDU(s) in container queue 2");
381 "Unexpected queued MPDU");
385 "There should be other MPDU(s) in container queue 2");
388 "Unexpected queued MPDU");
392 "There should be other MPDU(s) in container queue 2");
395 "Unexpected queued MPDU");
399 "There should be other MPDU(s) in container queue 2");
402 "Unexpected queued MPDU");
406 "There should be other MPDU(s) in container queue 2");
409 "Unexpected queued MPDU");
413 "There should be no other MPDU in container queue 2");
std:: tuple< WifiContainerQueueType, WifiReceiverAddressType, Mac48Address, std::optional< uint8_t > > WifiContainerQueueId
Tuple (queue type, receiver address type, Address, TID) identifying a container queue.