|
Lines 2346-2358
TcpSocketBase::SendDataPacket (SequenceNumber32 seq, uint32_t maxSize, bool with
|
Link Here
|
|---|
|
| 2346 |
header.SetWindowSize (AdvertisedWindowSize ()); |
2346 |
header.SetWindowSize (AdvertisedWindowSize ()); |
| 2347 |
AddOptions (header); |
2347 |
AddOptions (header); |
| 2348 |
|
2348 |
|
| 2349 |
if (m_retxEvent.IsExpired () ) |
2349 |
if (m_retxEvent.IsExpired ()) |
| 2350 |
{ |
2350 |
{ |
| 2351 |
// RFC 6298, clause 2.5 |
2351 |
// Schedules retransmit timeout. If this is a retransmission, double the timer |
| 2352 |
Time doubledRto = m_rto + m_rto; |
|
|
| 2353 |
m_rto = Min (doubledRto, Time::FromDouble (60, Time::S)); |
| 2354 |
|
2352 |
|
| 2355 |
// Schedules retransmit |
2353 |
if (seq != m_highTxMark) |
|
|
2354 |
{ // This is a retransmit |
| 2355 |
// RFC 6298, clause 2.5 |
| 2356 |
Time doubledRto = m_rto + m_rto; |
| 2357 |
m_rto = Min (doubledRto, Time::FromDouble (60, Time::S)); |
| 2358 |
} |
| 2356 |
|
2359 |
|
| 2357 |
NS_LOG_LOGIC (this << " SendDataPacket Schedule ReTxTimeout at time " << |
2360 |
NS_LOG_LOGIC (this << " SendDataPacket Schedule ReTxTimeout at time " << |
| 2358 |
Simulator::Now ().GetSeconds () << " to expire at time " << |
2361 |
Simulator::Now ().GetSeconds () << " to expire at time " << |