diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 639ba7f3d..ff515cc5a 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -95,6 +95,7 @@ Bugs fixed - Bug 2468 - Simulation with A-MPDU enabled hangs when fragmentation threshold is smaller than MSDU size - Bug 2469 - send Block Ack Request upon short/long retry failures - Bug 2479 - Flow monitor does not a have a "DROP_QUEUE_DISC" drop reason +- Bug 2484 - Corrected the exit from CA_LOSS state in TCP - Bug 2486 - NextTxSequence was not traced back from TCB Known issues diff --git a/src/internet/model/tcp-socket-base.cc b/src/internet/model/tcp-socket-base.cc index cc0bb3bad..ef5048959 100644 --- a/src/internet/model/tcp-socket-base.cc +++ b/src/internet/model/tcp-socket-base.cc @@ -1683,9 +1683,12 @@ TcpSocketBase::ReceivedAck (Ptr packet, const TcpHeader& tcpHeader) m_congestionControl->PktsAcked (m_tcb, segsAcked, m_lastRtt); m_dupAckCount = 0; m_retransOut = 0; - m_congestionControl->CongestionStateSet (m_tcb, TcpSocketState::CA_OPEN); - m_tcb->m_congState = TcpSocketState::CA_OPEN; - NS_LOG_DEBUG ("LOSS -> OPEN"); + if(ackNumber >= m_recover + 1) + { + m_congestionControl->CongestionStateSet (m_tcb, TcpSocketState::CA_OPEN); + m_tcb->m_congState = TcpSocketState::CA_OPEN; + NS_LOG_DEBUG ("LOSS -> OPEN"); + } } if (callCongestionControl)