diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 95634adb8..702936280 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -61,6 +61,7 @@ The required Doxygen version for documentation generation is version 1.11. - (wifi) Fix S-MPDU TX duration computation with BlockAck ack policy - (wifi) Fix missing DSSS Param Set in Probe Request sent over 2.4 GHz links - (spectrum) Trigger 3GPP channel updates after changes to antenna attributes +- (wifi) #1104 - Fix wrong calculation of start sequence number ## Release 3.43 diff --git a/src/wifi/model/recipient-block-ack-agreement.cc b/src/wifi/model/recipient-block-ack-agreement.cc index c98b03604..2cb41ec92 100644 --- a/src/wifi/model/recipient-block-ack-agreement.cc +++ b/src/wifi/model/recipient-block-ack-agreement.cc @@ -159,8 +159,10 @@ RecipientBlockAckAgreement::NotifyReceivedMpdu(Ptr mpdu) // MAC process in order of increasing Sequence Number subfield value. Gaps may // exist in the Sequence Number subfield values of the MSDUs or A-MSDUs that are // passed up to the next MAC process. - PassBufferedMpdusWithSeqNumberLessThan(mpdu->GetHeader().GetSequenceNumber() - m_winSizeB + - 1); + const uint16_t newWinStartB = + (mpdu->GetHeader().GetSequenceNumber() - m_winSizeB + 1 + SEQNO_SPACE_SIZE) % + SEQNO_SPACE_SIZE; + PassBufferedMpdusWithSeqNumberLessThan(newWinStartB); // 5. Pass MSDUs or A-MSDUs stored in the buffer up to the next MAC process in // order of increasing value of the Sequence Number subfield starting with