diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 967c39891..54ca21876 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -32,6 +32,7 @@ New user-visible features Bugs fixed ---------- +- Bug 2914 - Adv Win resilience to SequenceNumber wrap-around - Bug 2921 - tcp: Add min_cwnd variable to LEDBAT - Bug 2911 - aodv: Binary exponential backoff can become unlimited - Bug 2901 - Add CommandLine::Parse (const std::vector> args) diff --git a/src/internet/model/tcp-socket-base.cc b/src/internet/model/tcp-socket-base.cc index 14383f2ea..b2777e98a 100644 --- a/src/internet/model/tcp-socket-base.cc +++ b/src/internet/model/tcp-socket-base.cc @@ -2957,9 +2957,9 @@ TcpSocketBase::AdvertisedWindowSize (bool scale) const } else { - uint32_t max = m_rxBuffer->MaxRxSequence ().GetValue (); - uint32_t next = m_rxBuffer->NextRxSequence ().GetValue (); - w = ( max > next ) ? max - next : 0; + NS_ASSERT_MSG (m_rxBuffer->MaxRxSequence () - m_rxBuffer->NextRxSequence () >= 0, + "Unexpected sequence number values"); + w = static_cast (m_rxBuffer->MaxRxSequence () - m_rxBuffer->NextRxSequence ()); } // Ugly, but we are not modifying the state, that variable