THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Auto Rate Fall Back Algorithm for ns-2.26 Beside, the physical interface has been changed in order to give to different rates a different transmission range. Now physical interface model Cisco Aironet parameters. Software realized by Luigi Iannone This software works only for ns version 2.26 INSTALL 1. Uncompress files: # gunzip ARFB.tar.gz # tar -vxf ARFB.tar 2. Copy all diff files in the ns-2 directory # cp -v *.diff {NS-HOME} 3. Go in the ns-2 directory and apply patches # cd {NS-HOME} # patch -d mac < mac-arfb.diff # patch -d common < common-arfb.diff # patch tcl/lib/ns-default.tcl ns-default-arfb.diff 4. Edit your Makefile.in adding -DGgX compile define DEFINE = -DGgX -DTCP_DELAY_BIND_ALL -DNO_TK @V_DEFINE@.... 5 Recompile ns: # ./configure # make depend # make DONE now your ns should be able to use ARF. If your run wlan1.tcl script you should obtain something like wlan1.ps. In wlan1.tcl two nodes exchange UDP traffic. One of the nodes moves away from the other. wlan1.ps shows how the throughput lowers when node is so far that a lower rate should be used. The plot is twofold, it shows how ARF well changes the rate and it shows how the physical interface is more real and has different tx ranges for different tx rates. For a complete of the commands available get a look to the modification in the "command" routine of "mobilenode.cc" file. For any other question... mail me.