Instructions to install the Wimax extension for NS-2
Content
I - Disclaimer
II - Version
III - Installation using the patch file
IV - Manual installation
V - Compilation options
VI - Running examples
VII - Version history
I- Disclaimer
This software was developed at the National Institute of Standards and
Technology by employees of the Federal Government in the course of
their official duties. Pursuant to title 17 Section 105 of the United
States Code this software is not subject to copyright protection and
is in the public domain.
NIST assumes no responsibility whatsoever for its use by other parties,
and makes no guarantees, expressed or implied, about its quality,
reliability, or any other characteristic.
<BR>
We would appreciate acknowledgement if the software is used.
<BR>
NIST ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION AND
DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING
FROM THE USE OF THIS SOFTWARE.
II- Version
This documentation is based on the following versions:
- pre-release2 of the wimax model developed by NIST
- ns-2.29/ns-2.30/ns-2.31
III- Installation using the patch file
The patch file is only provided for ns-2.31. Use manual installation for other
versions.
a- Using the ns-allinone installation
step1: install the patch by running "patch -p0 <patch-ns-2.31-041707" from the ns-allinone-2.31 directory.
step2: re-run "./configure ; make clean ; make" in the ns-2.31 directory.
b- From the ns-2.31 directory
step1: install the patch by running "patch -p1 <patch-ns-2.31-041707"
step2: re-run "./configure ; make clean ; make" in the ns-2.31 directory.
IV- Manual installation
The source code provided works with some earlier versions (ns-2.28 for example).
The following steps need to be followed to install the wimax extension:
step1: add the wimax directory in the ns installation
step2: add the tcl/wimax directory
step3: add the tcl/lib/ns-wimax.tcl file
step4: add the mac/mac-stat.h file
step5: edit Makefile.in and:
* add -I ./wimax to the list of directories to include (in the definition of INCLUDE)
* add the object files before the last line (@V_STLOBJ@) of the OBJ_CC list:
wimax/ofdmphy.o \
wimax/mac802_16pkt.o \
wimax/serviceflowqos.o \
wimax/serviceflow.o \
wimax/serviceflowhandler.o \
wimax/connection.o \
wimax/connectionmanager.o \
wimax/peernode.o \
wimax/mac802_16.o \
wimax/mac802_16SS.o \
wimax/mac802_16BS.o \
wimax/sduclassifier.o \
wimax/destclassifier.o \
wimax/mac802_16timer.o \
wimax/wimaxneighborentry.o \
wimax/neighbordb.o \
wimax/scheduling/wimaxscheduler.o \
wimax/scheduling/bsscheduler.o \
wimax/scheduling/ssscheduler.o \
wimax/scheduling/ulsubframetimer.o \
wimax/scheduling/dlsubframetimer.o \
wimax/scheduling/burst.o \
wimax/scheduling/contentionslot.o \
wimax/scheduling/contentionrequest.o \
wimax/scheduling/contentiontimer.o \
wimax/scheduling/dlburst.o \
wimax/scheduling/ulburst.o \
wimax/scheduling/framemap.o \
wimax/scheduling/phypdu.o \
wimax/scheduling/profile.o \
wimax/scheduling/subframe.o \
wimax/scheduling/scanningstation.o \
wimax/scheduling/wimaxctrlagent.o \
* add the ns-wimax.tcl entry before (@V_NS_TCL_LIB_STL@):
tcl/lib/ns-wimax.tcl \
step6: edit the file common/packet.h and add a new packet type PT_WIMAXBS into the packet_t enumeration and "name_[PT_WIMAXBS]="wimaxCtrl";" to the class p_info
step7: edit the file tcl/lib/ns-lib.tcl and add the line "source ns-wimax.tcl"
step8: edit the file tcl/lib/ns-packet.tcl and add "802_16" to the list defined in the list of packets (look for "foreach prot")
step9: re-run "./configure ; make clean ; make" in the ns-2.31 directory.
V- Compilation options
After using the patch or manual installation, you need to recompile the code. To do so, execute "make clean; ./configure ; make" in the ns-2.31 directory.
To debug the wimax code, edit the Makefile and add the -DDEBUG_WIMAX switch in the DEFINE entry.
VI- Running examples
There are 3 examples located in the tcl/wimax directory:
- wimax1.tcl: example where one or more MNs communicate with a sink node through a BS.
- test-be.tcl: shows multiple nodes communicating via one BS. When synchronizing traffic or increasing the number of nodes, bandwidth requests collide and packets are dropped.
- l2handover.tcl: a MN is loosing connection with its current BS and scans to find another point of attachment.
- datarate.tcl: shows an evaluation of the performance in 802.16 for different modulations. (run sh datarate802.16 to run the scripts or specify the 2 parameters:profile and cyclic prefix)
VII - Version history
prerelease-092206: Initial pre-release
prerelease-041507: Updated pre-release
- Updated install document.
- Increased robustness for failure during scanning or handover.
- Extended support for MIH.
- Renamed class NeighborEntry to WimaxNeighborEntry to fix name conflict with another class defined in diffusion3 directory.
- Fixed bugs to enable computation of statistics (printed when "Mac/802_16 set printf_stats_ 1" is used).
- Updated l2handover script where RXThreshold_ was not properly set. Updated script to also show scanning/handover configuration.
- Fixed traces to show reception of management packets.
- Developed new scheduler using bandwidth requests.
- Move state machines from schedulers to MAC classes
- Provides patch and source for ns-2.31.