[Ns-bugs] [Bug 287] New: Simple device/channel call stack issue

bugzilla-daemon@nsnam-www.ece.gatech.edu bugzilla-daemon at nsnam-www.ece.gatech.edu
Thu Aug 14 17:51:22 PDT 2008


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

           Summary: Simple device/channel call stack issue
           Product: ns-3
           Version: ns-3.1
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P3
         Component: devices
        AssignedTo: ns-bugs at isi.edu
        ReportedBy: raj.b at gatech.edu


The SimpleChannel and SimpleNetDevice are forwarding devices such that
SimpleNetDevice::Send calls SimpleChannel::Send, which calls
SimpleNetDevice::Receive on the other end.  This means that the call stack
resulting from invoking a Scheduler event can contain all the calls down the
network stack AND all the upcalls up the network stack on the other side.  So
potentially, packets can be received at the other node before the state on the
sender side has been fully updated to reflect having sent the data.  E.g. in
the case of TCP, the ACK comes back before the call to Socket::Send completes,
wreaking havoc.

There is a potential stack overflow issue as well if both sides send data back
in response.

It seems to make sense to break this call stack issue at the line between the
Channel::Send and the NetDevice::Receive on the other end.  The
NetDevice::Receive could be scheduled with Simulator::ScheduleNow(...) so that
it logically occurs at the "now" time, but allows the call stack to unravel up
to the next Scheduler event.


-- 
Configure bugmail: http://www.nsnam.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


More information about the Ns-bugs mailing list