Skip to content

rahpaere/tcpr

Repository files navigation

The TCPR home page, <http://www.cs.cornell.edu/~burgess/tcpr/>, provides
information about the people involved in the project, the code development
repository, and TCPR's design and ongoing research.  This document aims
to guide someone new to the project from first cloning the code repository
through conducting a live demonstration and developing new applications.

TCPR uses the GNU autotools build system and links with the xtables
library.  On an Ubuntu system, the `autoconf', `libtool', and
`iptables-dev' packages provide the necessary dependencies.

  # apt-get install autoconf libtool iptables-dev

The repository does not contain any autotools generated files, so once,
right after cloning, you must set up some infrastructure.

  $ autoreconf -i

Then, you can build the userspace programs and iptables extension library.

  $ mkdir ../tcpr-build
  $ cd ../tcpr-build
  $ ../tcpr/configure
  $ make
  # make install

The kernel module must be built separately, using the kernel build system.
I usually find it is necessary to run depmod manually.

  $ cd module
  $ make
  # make install
  # depmod

You can check whether the kernel module is successfully built from the
output of `modinfo tcpr'.

The scripts in the `examples' directory provide a simple demonstration
of TCPR.  Start with `examples/recovery', which demonstrates simple
failure and recovery.  First, inspect the scripts to get a feel for what
is about to happen, then open up two terminals.

  # ./setup-network
  # ./setup-tcpr
  				# ./peer
  # ./application

	... type back and forth ...
  ^C

  # ./recover

	... more typing ...
  ^D				^D

  # ./teardown-tcpr
  # ./teardown-network