ns-2 Scripts

The scripts required to run the experiments described here are available by downloading scripts-ns2.1b7a.tar.gz for ns vesions 2.1b7a and higher, and scripts.tar.gz for prior versions. If you gunzip and untar the file you should get the following directories and files:
  1. ./CSFQ/util - this contains a series of utility used by scripts run_* (see below) to post-process trace data. These are:
    • parse_bwidth.c - compute the average bandwidth over a user defined interval
    • op_col.c - change the specified column of a file by adding/subtracting/multiplying a constant.
    • max_2ndcol.c - compute the maximum between two columns of a file and write the result in another file
    • Makefile - creates the executable for the above files.

  2. ./CSFQ/{my_links.tcl,my_sources.tcl} - these files implement generic methods for building various links and traffic sources.

  3. ./CSFQ/Simple3Link - this directory contains all files required to run Experiment 1:
    • Simple3Links.tcp.tcl - set up the TCP experiment
    • Simpl3Links.udp.tcl - set up the UDP experiment
    • Simpl3Links.tcp.g, Simpl3Links.udp.g - gnuplot files which create figures showing the flows' throughputs along each congested link.
    • run-Simpl3Links - script which run the entire experiments.
    By running "run-Simpl3Links" you should obtain a series of .dat files and four postscript figures, one for each combination between link 1 and link 2 on one hand and the experiment type (e.g., UDP or TCP) on the other hand. Also as the output you should obtain average throughputs similar to the ones found in Table 4.

  4. ./CSFQ/SharedLink - this directory contains all files required to run Experiment 2:
    • SharedLink.tcl - set up all experiments
    • SharedLink-alludp.g,SharedLink-onetcp.g,SharedLink-oneudp.g - gnuplot files which creates Figures 3.a, 3.b and 4, respectively.
    • run-SharedLink - script which run the entire experiments.
    By running "run-SharedLink" you should obtain three postscript files: SharedLink-alludp.ps (Figure 3.a), SharedLink-oneudp.ps (Figure 3.b) and SharedLink-onetcp.ps (Figure 4).
    Warning: This experiment may take up to several hours depending on the platform!

  5. ./CSFQ/SerialLinks - this directory contains all files required to run Experiment 3:
    • SerialLinks.tcl - set up all experiments
    • SerialLinks-udp.g,SerialLinks-tcp.g - gnuplot files which creates Figures 6.a, 6.b.
    • run-SerialLinks - script which run the entire experiments.
    By running "run-SerialLinks" you should obtain two postscript files: SerialLinks-udp.ps SerialLinks-tcp.ps (Figure 6.a) and SerialLinks-tcp.ps (Figure 6.b).

  6. ./CSFQ/TcpUdp - this directory contains all files required to run Experiment 4:
    • TcpUdp.tcl - set up the experiment
    • TcpUdp-TCP-csfq.g, TcpUdp-Sack-csfq.g, TcpUdp-Reno-csfq.g, TcpUdp-Newreno-csfq.g - gnuplot files which create figures showing the flows' throughputs along each congested link.
    • run-TcpUdp - script which run the entire experiments.
    By running "run-TcpUdp" you should obtain a series of .dat files and four postscript figures, one for each TCP type. Also as the output you should obtain average throughputs for each case.
Note: The run_* files are written to work when the current directory is the ns-2 directory. Otherwise the variable "ns_dir" in each of these files should be changed accordingly.
Ion Stoica
Last modified: Sat Jan 15 15:45:08 EST 2000