|
|
| 3152 |
return; |
3152 |
return; |
| 3153 |
} |
3153 |
} |
| 3154 |
|
3154 |
|
|
|
3155 |
uint32_t inFlightBeforeRto = BytesInFlight(); |
| 3156 |
|
| 3155 |
// From RFC 6675, Section 5.1 |
3157 |
// From RFC 6675, Section 5.1 |
| 3156 |
// [RFC2018] suggests that a TCP sender SHOULD expunge the SACK |
3158 |
// [RFC2018] suggests that a TCP sender SHOULD expunge the SACK |
| 3157 |
// information gathered from a receiver upon a retransmission timeout |
3159 |
// information gathered from a receiver upon a retransmission timeout |
|
|
| 3204 |
// retransmission timer, decrease ssThresh |
3206 |
// retransmission timer, decrease ssThresh |
| 3205 |
if (m_tcb->m_congState != TcpSocketState::CA_LOSS || !m_txBuffer->IsHeadRetransmitted ()) |
3207 |
if (m_tcb->m_congState != TcpSocketState::CA_LOSS || !m_txBuffer->IsHeadRetransmitted ()) |
| 3206 |
{ |
3208 |
{ |
| 3207 |
m_tcb->m_ssThresh = m_congestionControl->GetSsThresh (m_tcb, BytesInFlight ()); |
3209 |
m_tcb->m_ssThresh = m_congestionControl->GetSsThresh (m_tcb, inFlightBeforeRto); |
| 3208 |
} |
3210 |
} |
| 3209 |
|
3211 |
|
| 3210 |
// Cwnd set to 1 MSS |
3212 |
// Cwnd set to 1 MSS |