Ultra-wide band MAC and PHY layer for ns-2


Step-by-step installation instructions (old version)

The patch contains the old code that was used for the simulations in J. Y. Le Boudec, R. Merz, B. Radunovic, J. Widmer "A MAC protocol for UWB Very Low Power Mobile Ad-hoc Networks based on Dynamic Channel Coding with Interference Mitigation" Technical report No. IC/2004/02, January 2004. It is for an unmodified ns-2.26.

Download noah. In your ns-2.26 directoy, uncompress and untar:

$ tar xvfz noah.tar.gz
...

Download this set of patches. In your ns-2.26 directory, uncompress and untar:

$ tar xvfz patch-ns-2.26-uwb.tar.gz
...
You should have a set of 7 patch files in your ns-2.26 directory:
$ ls patch*
patch.common  patch.mac  patch.Makefile  patch.mobile  patch.tcl.lan  patch.tcl.lib  patch.tcl.mobility
Now you are ready to patch your ns-2.26:
$ patch -Np0 < patch.common

patching file common/packet.h

$ patch -Np0 < patch.tcl.lan

patching file tcl/lan/ns-mac.tcl

$ patch -Np0 < patch.tcl.lib

patching file tcl/lib/ns-default.tcl
patching file tcl/lib/ns-lib.tcl
patching file tcl/lib/ns-mobilenode.tcl
patching file tcl/lib/ns-packet.tcl

$ patch -Np0 < patch.tcl.mobility

patching file tcl/mobility/noah.tcl

$ patch -Np0 < patch.Makefile

patching file Makefile.in

$ patch -Np0 < patch.mobile

patching file mobile/mod_codedppm.cc
patching file mobile/mod_codedppm.h
patching file mobile/modulation.cc
patching file mobile/modulation.h
patching file mobile/ppm.cc
patching file mobile/propagation-tarokh.cc
patching file mobile/propagation-tarokh.h
patching file mobile/prop_ricean.cc
patching file mobile/prop_ricean.h

$ patch -Np0 < patch.mac

patching file mac/interference-phy.cc
patching file mac/interference-phy.h
patching file mac/mac-802_11.h
patching file mac/mac-802_11-if.cc
patching file mac/mac-802_11-if.h
patching file mac/mac-ifcontrol.cc
patching file mac/mac-ifcontrol.h
patching file mac/mac-timers-if.cc
patching file mac/mac-timers-if.h
patching file mac/phy.h
patching file mac/wireless-phy.h
And the final step:
$ make clean; ./configure; make
...