===============================================================================

 15-441 Spring 2008
 Project 2: OPTIONAL TOOLS

 Lead TA: Xin Zhang <xzhang1@cs.cmu.edu>
 Original Author: Jeff Pang <jeffpang@cs.cmu.edu>

===============================================================================

This archive contains optional tools that may help you generate network
topologies for testing. It contains a GUI for generating simple graphs
called GraphThing which is derived from this project:

http://graph.seul.org/

This archive also contains scripts to convert graphs into configuration files 
for your nodes.

To generate a graph:

(1) Run the graphthing program at a X-Windows enabled terminal on an Andrew
    Linux machine. See the website above for documentation about how to draw
    your graph.

(2) Then save the graph in *.gt format.

(3) Next run the gtconvert.pl script on the saved graph file. Read the top of
    the script for documentation. In short, run:

    ./gtconvert.pl <group_num> <hostname> <graphthing.gt file>
 
    Where <group_num> is your group number, <hostname> is the hostname you will
    run your servers on (e.g., localhost), and <graphthing.gt file> is the
    *.gt file you saved from the gt program.

===============================================================================

NOTE: We don't guarantee that this will work 100% of the time since we didn't
      write the GraphThing program. We haven't experienced any bugs, but if you
      make very esoteric or large graphs, you might want to just make sure your
      config files look sane.

NOTE: The graphthing program (actually a script) will probably only work on
      the Andrew Linux machines (or possibly other Linux x86 machines that 
      have AFS mounted). The graphthing program is actually just a shell 
      script that calls the program:

      /afs/andrew.cmu.edu/usr12/dcraft/public/15-441/graphthing-linux-x86

      so it will not work if AFS is not mounted. You are free to copy that 
      program to another Linux machine, but it is statically linked so it is 
      22MB large. If you have your own Linux machine you can compile and 
      install software on, you can download the source code to the tweaked 
      version of GraphThing on the project page (the tweaked version is the 
      same as the original on the GraphThing website but assigns numbers to 
      new vertices instead of letters).
