r2 - 11 Dec 2007 - 18:01:34 - Main.acwarrieYou are here: TWiki >  Main Web > Projects > DiffQ > DiffQScripts

Running DiffQ on WiSeNet?

This page provides documentation on various scripts needed to run diffq and other wireless congestion control (CC) algorithms on WiSeNet?.

Loading and unloading Modules

The algoCtl script in /wisenet/devel/videos-scripts loads and unloads diffq (and other modules) on a set of nodes.

algoCtl [algorithm] [start/stop] [set of nodes]

  • algorithm: can be one of diffq, swan, fixedprio, or default (802.11).
  • start/stop: loads and unloads modules respectively.
  • set of nodes: could be
    • floor1e/floor1w: nodes on first floor east and west wing respectively.
    • floor2: nodes on 2nd floor.
    • floor3: nodes on 3rd floor.
    • all: all nodes on testbed.

Running a set of BE (best-effort) flows on the testbed

The runBETest.py in /wisenet/devel/videos-scripts starts a set of BE flows on the testbed.

runBETest.py [number of runs] [protocol] [useSWAN] [useFixedPrio] [useDiffq] [useDefault]

  • number of runs: number of experiment runs to be executed.
  • protocol: could be one of:
    • DCCP: the DCCP CC algorithm.
    • TCP-N: TCP-Reno.
    • TCP-F: TCP-FeW.
    • TCP-S: TCP with SWAN.
    • DF-T: DiffQ with TCP.
    • DF-U: DiffQ with UDP.
  • useSWAN: (1/0) enable/disable swan scheduling.
  • useFixedPrio: (1/0) enable/disable fixed priority scheduling in MAC.
  • useDiffq: (1/0) enable/disable diffq scheduling.
  • useDefault: (1/0) enable/disable default scheduling (802.11).

On running the script, all output from transmitter and receiver of each flow will be stored in [protocol]_[run]_[src]_[dst] files.

The script looks for files beFileRun0, beFileRun1, ... beFileRun[number of runs - 1] in the current directory. These files contain the information about the flows.Sample beFileRunXX file contents:

sn1e04 sn2e01 22346 120

sn1e02 sn3e17 22347 120

sn2e07 sn3e18 22348 120

...

Each line represents the information for one flow - [src] [dst] [port] [duration]:

  • src, dst: source and destination node of the flow.
  • port: port number to be used for this flow.
  • duration: duration in seconds for this flow.

Generating a set of BE (best-effort) flows

Flow files for the BE experiment can be generated automatically with randomly selected sources and destinations using the script genBEFlows2.py in /wisenet/devel/videos-scripts:

genBEFlows2.py [number of flows] [number of runs] [duration]

  • number of flows: number of flows in each run.
  • number of runs: total number of experiments.
  • duration: duration in seconds.

Getting statistcs for a BE (best-effort) experiment

After the experiment is completed, statistics about throughput of each flow can be obtained by running the script getBEStats.py in /wisenet/devel/videos-scripts:

getBEStats.py [number of runs] [duration] [protocol]

All the parameters are same as above. The script generates cdf_allRates_[protocol] files which contain the CDF of throughputs of all flows in the experiment across all runs.

Getting realtime view of CDF statistics for a BE (best-effort) experiment

The script realTimeViewCDF.py in /wisenet/devel/videos-scripts will produce a realtime view of the CDF statistics generated above:

realTimeViewCDF.py [sleep time] | gnuplot -persist -noraise

  • sleep time: time to update CDF in seconds

This script uses the getBEStats.py script above to generate statistics for all experiment output files in the current directory, and this is done every [sleep time] seconds. The output of the script is a set of gnuplot commands, which when piped to gnuplot generate the CDF graph.

The script assumes that another script is running one run of a BE experiment for three protocols TCP-N, TCP-F and DF-T for a duration of 120s. The script beTestScript.sh does this automatically. The scenario for this experiment may be changed by modifying the beFileRun0.txt file in the current directory.

beTestScript.sh

Getting realtime view of each flow a BE (best-effort) experiment

Instead of CDF if the actual realtime throughput of each flow needs to be viewed, the script plotThrRealTime3.py in /wisenet/devel/videos-scripts can be used:

plotThrRealTime3.py [sleep time] [protocol] | gnuplot -persist -noraise

All the parameters are the same as above. The script will print out the realtime throughput of all flows in one BE experiment over time. Internally it stores the realtime throughput of each flow in files [protocol]_[src]_[dst]_tmp. It assumes that another script will run the actual BE experiment.

-- Main.acwarrie - 10 Dec 2007

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback