802.11b implementation + grey model packet loss + ARF v.6 (5/10/2007) Wireless & Networking Systems Group at CS UW-Madison Overview: This code is pulled from a research project and (despite my best efforts) my contain code not relevant to the goals listed. The package has been tested, but testing mainly focused on my research. It is highly likely that this code will break other areas of ns2(wired connections, satellite connections, etc.). Due to scope issues the multiple interface code has been removed. Please use v.4 at your own risk if you require multiple interfaces. By design NS2 routing is based on node ID, not interface IPs. When modifying NS2 to use IPs I ended up rewriting much more than I had time to. This was dropped due to time constraints. History: This code uses Vivek Shrivastava's 802.11b channel bleed calcuations -v.1 released spring 2006 -v.3 released November 2nd, 2006 -v.4 released January 17th, 2007 -v.6 released May 10th, 2007 Author: Kevin Springborn springbo[at]cs[dot]wisc[dot]edu Install: The tgz contains a number of files that are meant to replace files from a working ns-allinone-2.28 installation. I do not see any problems with making similar changes to ns 2.30. I just haven't had the time to go though and modify the code. Steps: copy SNR.tgz to #main#/ns-allinone-2.28/ns-2.28 Change directory to #main#/ns-allinone-2.28/ns-2.28 Enter "tar zxvf SNR.tgz" Note: Install will overwrite a number of files. You will lose any changes you made to those files. Functionality provided: -Basic signal-to-noise calculations for reception. Note: Capture functionality (when one transmission captures the channel from an already on-going transmission) is currently broken. Also reception success is determined at the time the packet begins reception. A burst of noise during reception will have no effect in the simulator. -Channel Switching. An interface can switch which channel it is on. Switching takes a set amount of time. During which all outgoing transmissions will be delayed, and incoming transmissions will fail. -Auto Rate Fallback. The default algorithm increases the data rate if 4 consecutive transmissions succeed, decreases the data rate if 2 consecutive transmissions fail, and uses 1 trail packet when switching to a higher data rate. TCL Commands ------------------------------------------------------------ set err [new ErrorModel/CL] Creates a new instance of the channel and location specific error model. See example for more details. Node/MobileNode set error_ .10 Sets an error rate of 10% for all wireless transmissions Node/MobileNode set clear_rt_on_switch_ 1 Sets routing tables to be cleared when the interface's channel is changed. Node/MobileNode set switch_time_ .001 Sets the time to switch between channels to be .001 seconds. $node switch-channel 11 Changes the node's wireless interface to channel 11. $node enable-arf Enables Auto Rate Fallback on this node $node dump-arf-rate Returns the current data rate of the wireless interface of this node ------------------------------------------------------------ Bugs: -Mid transmission interference is disregarded -I haven't verified my math for error probs of 5.5 and 11Mbps (CCK). What I have is a better approximator than nothing -I bet the cmu tracing functionality does not work correctly. -I am sure there are some, but none to list right now. Please report bugs to springbo[at]cs[dot]wisc[dot]edu Future work (in order of likely completion): Upgrade to 2.31 Fix mid-transmission bug Rework code for modularity and clarity Allow for FEC with SNR error