tcp: (fixes #2769) Set ssthresh correctly upon RTO
This commit is contained in:
@@ -116,6 +116,7 @@ Bugs fixed
|
||||
- Bug 2761 - Packet has no Traffic ID for CTS frames when A-MPDU is used
|
||||
- Bug 2762 - BindToNetDevice behaviour is not coherent with Linux
|
||||
- Bug 2763 - wifi management packets in the PCAPs are all marked as wrong by Wireshark
|
||||
- Bug 2769 - Set ssthresh correctly upon RTO
|
||||
|
||||
Known issues
|
||||
------------
|
||||
|
||||
@@ -3152,6 +3152,8 @@ TcpSocketBase::ReTxTimeout ()
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t inFlightBeforeRto = BytesInFlight();
|
||||
|
||||
// From RFC 6675, Section 5.1
|
||||
// [RFC2018] suggests that a TCP sender SHOULD expunge the SACK
|
||||
// information gathered from a receiver upon a retransmission timeout
|
||||
@@ -3204,7 +3206,7 @@ TcpSocketBase::ReTxTimeout ()
|
||||
// retransmission timer, decrease ssThresh
|
||||
if (m_tcb->m_congState != TcpSocketState::CA_LOSS || !m_txBuffer->IsHeadRetransmitted ())
|
||||
{
|
||||
m_tcb->m_ssThresh = m_congestionControl->GetSsThresh (m_tcb, BytesInFlight ());
|
||||
m_tcb->m_ssThresh = m_congestionControl->GetSsThresh (m_tcb, inFlightBeforeRto);
|
||||
}
|
||||
|
||||
// Cwnd set to 1 MSS
|
||||
|
||||
Reference in New Issue
Block a user