[Bug Report] ----------------------------- Category: Other Package: ns 2.33 OS: WindowsXP Environment Variables: LD_LIBRARY_PATH= TCL_LIBRARY= TK_LIBRARY=
----------------------------- Description: Description of Problem: The 802.11 implementations of ShortRetryLimit_ and LongRetryLimit_ are incorrect: if you set the ShortRetryLimit_ to 7, you would expect the STA to retry for 7 times (total number of transmissions of 8). However, ns-2.33 STA only retransmits 6 times (total number of transmissions of 7). The same happens to LongRetryLimit_. This doesn't conform to the IEEE 802.11 standard which specifies STA to give up "when SLRC reaches aLongRetryLimit, or when SSRC reaches dot11ShortRetryLimit." In the case of ns-2.33, STA give up before reaching the RetryLimit! The problem is in mac-802_11.cc: Mac802_11::RetransmitRTS() {... if(ssrc_ >= macmib_.getShortRetryLimit()) ...} Mac802_11::RetransmitDATA() {... if(*rcount >= thresh) ...} Fix: The conditions should be ">" instead of ">=", as follows: Mac802_11::RetransmitRTS() {... if(ssrc_ > macmib_.getShortRetryLimit()) ...} Mac802_11::RetransmitDATA() {... if(*rcount > thresh) ...} How Easily Reproducible: (e.g. every time, intermittent, once only, etc.) every time. Steps to Reproduce: (describe the minimal set of steps necessary to trigger the bug) 1. 2. 3. Actual Results: (describe what the application did after performing the above steps) Expected Results: (describe what the application should have done, were the bug not present) Additional Information: (the following infomation is helpful to debug: 1. simulation script, detailed output files, packet trace 2. patch file if you modify some source code 3. a backtrace from gdb if you get a segment fault If they are big files, PLEASE put them in your web space and include the URL here.)