Bugzilla – Bug 239
tcp has no finite size rcv buffer.
Last modified: 2008-09-07 20:33:04 EDT
i.e., m_rcvBufSize is never used.
This was an oversight on my part. I guess I'll assign it to myself...
http://code.nsnam.org/raj/ns-3-dev-bug239/ Needs testing and review.
If you have done basic testing on this code (i.e., it does not crash and seems to work), then, please commit: it will be easier to do more testing of the code once it lands in ns-3-dev.
(In reply to comment #3) > If you have done basic testing on this code (i.e., it does not crash and seems > to work), then, please commit: it will be easier to do more testing of the code > once it lands in ns-3-dev. > It doesn't crash, but not all of the behavior seems to work. I don't think its ready to merge, I just wanted to push an update to the tracker to keep you all posted.
Bump priority so this makes ns3.2 The repo is a little stale, but it works now. I did some unnecessary hacking, so instead of having this show up in our history I'm going to rebase, and roll this into one patch.
Created attachment 241 [details] rebase of ns-3-dev-bug239 + changes
Created attachment 242 [details] example script that exercises the new code Unfortunately, I hacked a new API into the packet sink to make it NOT perform any reads until a specified time. This show's the following behavior: 1. The receiver advertised window continues to dwindle until a read is performed and some buffer space clears up. 2. When the sender learns there is no buffer space via a zerowindow, he goes into the persist state of sending zerowindow probes of one byte. 3. The receiver can't buffer the 1 byte probes but ACKs anyway, and after the read is performed and buffer space clears up, it sends a new ACK. 4. The receipt of the new ACK kicks the sender out of the persist state and it resumes transmission of regular sized segments. This patch however is not recommended for merging, but is proof positive that the code does what I think it does. Last step is to turn this example into a unit test.
Slightly modified patch applied, along with a unit test which exercises the new code. ns-3-dev 3644:5d836ab1523b