|
|
| 128 |
m_cWnd -= seq - m_txBuffer.HeadSequence (); |
128 |
m_cWnd -= seq - m_txBuffer.HeadSequence (); |
| 129 |
m_cWnd += m_segmentSize; // increase cwnd |
129 |
m_cWnd += m_segmentSize; // increase cwnd |
| 130 |
NS_LOG_INFO ("Partial ACK in fast recovery: cwnd set to " << m_cWnd); |
130 |
NS_LOG_INFO ("Partial ACK in fast recovery: cwnd set to " << m_cWnd); |
|
|
131 |
m_txBuffer.DiscardUpTo(seq); // Bug 1850: retransmit before NewAck() |
| 132 |
DoRetransmit (); // Assume the next seq is lost. Retransmit lost packet |
| 131 |
TcpSocketBase::NewAck (seq); // update m_nextTxSequence and send new data if allowed by window |
133 |
TcpSocketBase::NewAck (seq); // update m_nextTxSequence and send new data if allowed by window |
| 132 |
DoRetransmit (); // Assume the next seq is lost. Retransmit lost packet |
|
|
| 133 |
return; |
134 |
return; |
| 134 |
} |
135 |
} |
| 135 |
else if (m_inFastRec && seq >= m_recover) |
136 |
else if (m_inFastRec && seq >= m_recover) |