home  /  howto  /  faq  /  mailing list  /  screenshot  /  contact

p2psim: howto

This is an alpha release of p2psim. We would value your feedback with suggestions and improvements.

Latest version:
p2psim-0.3.tar.gz (April 18, 2005)

Older (unsupported) versions:
p2psim-0.2.tar.gz (July 28, 2004)
p2psim-0.1.tar.gz (dark ages)

We compile and run p2psim on Linux and FreeBSD with GCC 2.95.3 and GCC 3.3.5. However, we recommend using GCC 2.95.3. In addition, you need the openssl header files, and you need libcrypto and libgmp.

Download and untar the tarball, then configure and make:

$ wget http://pdos.lcs.mit.edu/p2psim/p2psim-0.3.tar.gz 
$ tar xvfz p2psim-0.3.tar.gz
$ cd p2psim-0.3
$ ./configure
$ make

You'll need to create 3 files first. A topology file, a protocol file, and an events file.

Look at example/topology.txt for the syntax and an example of a topology file.
Look at example/protocol.txt for the syntax and an example of a protocol file.
Look at example/events.txt for the syntax and an example of an events file.

Then run p2psim. For example:

  p2psim/p2psim example/protocol.txt example/topology.txt example/events.txt
The output will be:
  average RTT = 30ms
  #  1: k
  #  2: k_tell
  #  3: alpha
  #  4: stabilize_timer
  #  5: refresh_timer
  #  6: learn
  #  7: rcache
  FAILED_LOOKUPS:: lookup_10th:0 lookup_mean:0.000 lookup_median:0
  lookup_90th:0 stretch_10th:0.000 stretch_mean:0.000 stretch_median:0.000
  stretch_90th:0.000 hops_10th:0 hops_mean:0.000 hops_median:0 hops_90th:0
  OVERALL_LOOKUPS:: lookup_10th:8 lookup_mean:19.273 lookup_median:22
  lookup_90th:26 stretch_10th:1.000 stretch_mean:2.182 stretch_median:1.000
  stretch_90th:1.000 hops_10th:0 hops_mean:0.091 hops_median:0 hops_90th:0
  TIMEOUTS_PER_LOOKUP:: time_timeout_10th:0 time_timeout_mean:0.000
  time_timeout_median:0 time_timeout_90th:0 num_timeout_10th:0.000
  num_timeout_mean:0.000 num_timeout_median:0.000 num_timeout_90th:0.000
  WORST_BURST:: in:0 out:0
... or something very similar.

First check out the faq. If you still have problems, please see our contact page.