[Ns-bugs] [Bug 730] Enabling fragmentation at run-time breaks simulation

code@nsnam.ece.gatech.edu code at nsnam.ece.gatech.edu
Thu Apr 22 00:19:01 PDT 2010


http://www.nsnam.org/bugzilla/show_bug.cgi?id=730





--- Comment #7 from Christian <c.facchini at gmail.com>  2010-04-22 03:19:01 EDT ---
The bug seems related to the TCP variable DelAckCount.
Here's a matrix of tests I performed with different numbers of nodes and
different DelAckCount values:
+--------------+----+----+----+----+ 
|      nNodes= |  2 |  3 |  4 |  5 | 
+--------------+----+----+----+----+ 
|DelAckCount=1 | 10 |  - | 10 | 26 | 
+--------------+----+----+----+----+ 
|DelAckCount=2 |  - | 10 |  - |  - | 
+--------------+----+----+----+----+ 
|DelAckCount=3 | 10 |  - |  - |  - | 
+--------------+----+----+----+----+ 
|DelAckCount=5 | 10 |  - | 10 |  - | 
+--------------+----+----+----+----+ 

Numbers in the table stand for "the second in which the simulation breaks".
No number means the simulation seems not to break.

I further investigated the case in which DelAckCount=1 and nNodes=2.
After fragmentation is enabled, when sending a TCP data packet, the sender
seems to repeatedly enter the if-test at internet-stack/tcp-socket-impl.cc:416
(rev a6ee8748aee7), reported hereunder for convenience:
if (p->GetSize() > GetTxAvailable ())
{
  m_errno = ERROR_MSGSIZE;
  return -1;
}

The sink stops sending new ACKs, thus preventing the source to send new packets
(m_highestRxAck stays the same and, accordingly, GetTxAvailable ()).
However, it is not clear to me why the sink stops sending ACKs.

-- 
Configure bugmail: http://www.nsnam.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the Ns-bugs mailing list