Home
Members
itmBench
SaTS
Archive

Step-by-step ns-2 Code Installation


Note: All the code here should be running under ns-2.1b8a (04/25/2002). We ran it under linux, and if you do the same thing, applying Tom Kelly's patch may be helpful.

The following modules are to be added to the ns-2 original package:
  • Size-aware classifier (classifier-hash.cc/h, classifier-port.cc/h), the classifier that differentiates flows based on how many packets they have sent.
  • Proportional dropping AQMs (myred.cc/h, myrio.cc/h, PIred.cc/h, dualPIred.cc/h), AQM schemes that provide differentiated dropping. Most of the simulations are done with RIO-PS queue (myrio). You can write your own if you want.
The following modules are modified for the convenience of monitoring, or for fixing buggy implementations:
  • TCP (tcp.cc/tcp.h)
  • Queue Monitor (queue-monitor.cc/h)
  • TCL scripts (ns-default.tcl, ns-lib.tcl)
  • Web Traffic Profile (webtraf.cc/h/tcl)
Assume now you have got ns-2.1b8a package and installed it under /foo/bar/ns/, here are the steps you need to follow to install the above packages:
  1. Download size-aware-v1.0.tar.gz, and unpack it under a separate directory, say /foo/bar/size/
  2. Under /foot/bar/size/share/, there should be a file named dup.conf-size. This is the configuration file for dup operation, a convenient tool created by Haobo Yu. Put it under your home directory and name it as .dup.conf-size (don't forget the dot in front of dup).
  3. Change the fields in the configuration file if you put the package under different directories. $SRCDIR is the directory where you put the original ns package, and the first entry in %MYSRCDIR is where you put the source code of the size-aware package.
  4. Create a duplicated ns directory as follows:

    • # /foo/bar/size/bin/dup size size-ns sizeaware
  5. Now you should have a directory called size-ns, which looks almost identical to /foo/bar/ns/, but with all related files being updated.
  6. Compile this new package and name the executable size-ns.
We now have a ns-2 simulator that is capable of performing size-aware scheduling.