Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
What is supported:

* Automatic creation of an experiment of any number of nodes

* Running experiments on the real PlanetLab or a 'fake' PlanetLab inside
  of Emulab - or both in the same experiment

* Automatic tcpdumps of emulab-side traffic

* Automatic collection of log files at the end of an experiment

* Easy starting/restarting of stubs and monitors

What is not supported:

* Automatic tcpdump on the real PlanetLab (planned)

* Running test clients (ie. 'iperf -c') for you (planned)

* Asking for specific planetlab nodes (planned)

* Specifying point to point traffic shaping for the Elab initial conditions
  and for fake planetlabs. This should be taken care of by whatever
  mechanisms are used to fetch wanetmon data

Running an experiment with the auto-pelab scripts:

1) Create a tarball of the version of the pelab software (monitor, stub, etc.)
   that you'd like to test:
     Go to your testbed source tree
     Run 'cvs up'!!!
     Run 'gmake' in pelab/stub and pelab/libnetmon (on a DevBox machine)
     From the root of your source tree, run:
         tar czvf /proj/tbres/my-pelab.tar.gz pelab
     Of course, don't name it 'my-plab.tar.gz'! You can put this file in
       a subdirectory if you want, but it must be somewhere in
     Put the path to your tarball in the pelab_tar variable in auto-pelab.ns 

2) Read the user-settable options at the top of auto-pelab.ns and change them
   to your preferences.
3) Use auto-pelab.ns to create an experiment

4) Once it has swapped in, and you're ready to start an experiment, run the
   'start-experiment' script on ops. It will
     Restart monitors and stubs
     Reset ALL link shaping to the defaults from the NS file
     Clean logfiles
     Restart iperf servers on all 'elab-*' nodes

5) Log into the 'elab-*' node or nodes, and run your experiment (ie. one run
   of iperf). Make sure to run them with ''.

6) When your're done with your experiment, run 'stop-experiment' on ops. It
    Stop the stubs, monitors, and iperf servers
    Collect logfiles from all of the nodes in the experiment, including
      stub/monitor logs, tcpdumps, delay agent logs, and so on
    Run tcptrace on all tcpdump logs to produce xplot graphs
    Put all of these things in a zip file for you in the experiment's log
      directory (/proj/PID/exp/EID/logs)

7) If you want to look at the logs, unzip the .zip file somewhere, and see
   the description of the files it contains below

Important places:

* Logfiles from the monitors, stubs, etc. can all be found in /local/logs
  on the node while the experiment runs. You can tail the .out or .err
  files to see the stdout and stderr of these processes

* Inside the archive zip file you will find:
  elab-*/ - Logifles from the emulator hosts (more detail below)
  even-sched.log - Log of all events (including dummynet control events) sent
      during the experiment
  plab-*/ - Logfiles from the FAKE plabnetlab nodes
  planet-*/ - Logifles from the REAL planetlab nodes
  tbsdelay*/ - Logs from the delay nodes, including tcpdump traces