[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.)