From 804b76574b2b2e8337231a3329041ff6e783d85c Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Thu, 11 Apr 2019 14:22:45 +0300 Subject: [PATCH] wifi: fix condition for old packets in BlockAckManager::NeedBarRetransmission Sequence numbers should be compared modulo 4096. Also, window size may not be equal to 64. Fixes issue #48 --- src/wifi/model/block-ack-manager.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wifi/model/block-ack-manager.cc b/src/wifi/model/block-ack-manager.cc index 5bf21b86b..f6319558c 100644 --- a/src/wifi/model/block-ack-manager.cc +++ b/src/wifi/model/block-ack-manager.cc @@ -824,7 +824,7 @@ bool BlockAckManager::NeedBarRetransmission (uint8_t tid, uint16_t seqNumber, Ma AgreementsI it = m_agreements.find (std::make_pair (recipient, tid)); NS_ASSERT (it != m_agreements.end ()); CleanupBuffers (); - if ((seqNumber + 63) < it->second.first.GetStartingSequence ()) + if (QosUtilsIsOldPacket (it->second.first.GetStartingSequence (), seqNumber)) { return false; }