|
Lines 1373-1378
TcpSocketBase::ProcessEstablished (Ptr<Packet> packet, const TcpHeader& tcpHeade
|
Link Here
|
|---|
|
| 1373 |
} |
1373 |
} |
| 1374 |
} |
1374 |
} |
| 1375 |
|
1375 |
|
|
|
1376 |
void |
| 1377 |
TcpSocketBase::ReadOptions (const TcpHeader &tcpHeader) |
| 1378 |
{ |
| 1379 |
NS_LOG_FUNCTION (this << tcpHeader); |
| 1380 |
TcpHeader::TcpOptionList::const_iterator it; |
| 1381 |
const TcpHeader::TcpOptionList options = tcpHeader.GetOptionList (); |
| 1382 |
|
| 1383 |
for (it = options.begin (); it != options.end (); ++it) |
| 1384 |
{ |
| 1385 |
const Ptr<TcpOption> option = (*it); |
| 1386 |
// Placeholder for a switch statement |
| 1387 |
} |
| 1388 |
} |
| 1389 |
|
| 1376 |
/* Process the newly received ACK */ |
1390 |
/* Process the newly received ACK */ |
| 1377 |
void |
1391 |
void |
| 1378 |
TcpSocketBase::ReceivedAck (Ptr<Packet> packet, const TcpHeader& tcpHeader) |
1392 |
TcpSocketBase::ReceivedAck (Ptr<Packet> packet, const TcpHeader& tcpHeader) |
|
Lines 1382-1387
TcpSocketBase::ReceivedAck (Ptr<Packet> packet, const TcpHeader& tcpHeader)
|
Link Here
|
|---|
|
| 1382 |
NS_ASSERT (0 != (tcpHeader.GetFlags () & TcpHeader::ACK)); |
1396 |
NS_ASSERT (0 != (tcpHeader.GetFlags () & TcpHeader::ACK)); |
| 1383 |
NS_ASSERT (m_tcb->m_segmentSize > 0); |
1397 |
NS_ASSERT (m_tcb->m_segmentSize > 0); |
| 1384 |
|
1398 |
|
|
|
1399 |
ReadOptions (tcpHeader); |
| 1400 |
|
| 1385 |
SequenceNumber32 ackNumber = tcpHeader.GetAckNumber (); |
1401 |
SequenceNumber32 ackNumber = tcpHeader.GetAckNumber (); |
| 1386 |
uint32_t bytesAcked = ackNumber - m_txBuffer->HeadSequence (); |
1402 |
uint32_t bytesAcked = ackNumber - m_txBuffer->HeadSequence (); |
| 1387 |
uint32_t segsAcked = bytesAcked / m_tcb->m_segmentSize; |
1403 |
uint32_t segsAcked = bytesAcked / m_tcb->m_segmentSize; |