
STCP 3.2.4
==========

Version history
---------------

stcp 1.0:

    Basic TCP simulator

stcp 2.0:

    Basic TCP simulator with ABT/VT and ABR

stcp 2.1:

    Leaky buckets
    Bugs fixed in markov chain traffic generation

stcp 2.2:

    - Explicit routes
    - Verbose routeing options
    - More intelligent routeing algorithm that looks for shortest route
      instead of first route.

stcp 2.4.0:

    - Bug fixes.  local_dest field not initialised in background traffic
      causing problems when fed into an ABR or ABT/VT subnetwork.
    - Constant bitrate sources

stcp 3.0:

    - Revised implementation of queueing system allowing for
      multiple time priority queueing.
    - Re-implementation of the ABR switch mechanism incorporating
      the ERICA and ERICA+ algorithms and more realistic line-card and
      switch fabric model.
    - Introduction of constant bitrate and deterministic sojourn-time
      burst traffic models.
    - More measurement information.
    - More intelligent queue occupancy and ABR explicit rate tracing
      algorithm.
    - Additional command line options for debugging, including dumping
      of workstation status and TCP states at the end of batches and
      the possibility to write call-level events to the standard
      output.
    - End-of-call call shutdown synchronisation between source and
      destination to avoid long waits in the TCP TIME\_WAIT state.
    - Minor bug fixes.

stcp 3.2.3:

    - Infinite sources fixed.

stcp.3.2.4:

    - Old installation script tidied up


Agreement
---------

The development of this work has been funded by Swiss Telecom.
It is distributed in the hope that it will be of use to others,
but with absolutely NO WARRANTY whatsoever.  Neither the author, 
EPFL, nor the University of California will be held liable for 
any direct, indirect, incidental, special, exemplary or 
consequentiial damages, however caused, arising in any way out 
of used of this software.

Installing STCP
---------------

STCP is provided as a compressed .tar file.  Copy the file to where you
would like the STCP directory to appear and decompress it using:

    gunzip stcp.tar.gz

Then extract the stcp directory structure and files using:

    tar xf stcp.tar

tar will create a directory called stcp which contains
all the necessary stcp files, contained in the following sub-directories:

    README      file containing details of the current version.
    docs	Contails STCP documentation in Postscript format
    examples 	Contains some example simulation configuration files.
    install	script for installation
    src 	Contains all the source files for the simulator, and a
    ssim 	Contains the SSIM library source code.
    man 	Contains the man pages for stcp

To install the simulator, become root, go to the STCP directory
and run the install script.

Before installing STCP, you may want to check some compilation
flags.  Enter the src directory and confirm the flags of the
makefile for the STCP source code.  The header of the makefile
is as follows:

CC = gcc

# SIMTRACE      =  -D_DEBUG_TESTS -D_SIM_TRACE -D_SIM_TRACE_L2
SIMTRACE      = -D_DEBUG_TESTS 

COMPFLAGS     = -ansi -O3 -D__STDC__ $(SIMTRACE) -Dinline= \
                 -DKERNEL -D_LINUX -I$(HOME)/sim/ssim

If your system does not have gcc, remove the first line.

The variable SIMTRACE contains the options for simulation
compilation, which have the following functions:

_DEBUG\_TESTS} Compile STCP with internal checks for bugs.  It is
    recommended to use this flag, to detect possible bugs in the
    simulator and to check problems due to incorrectly configured
    model networks.  Although the configuration file and resulting
    model are validated, the validation is not foolproof and it is
    possible that a bad simulation model may cause internal errors
    in the simulator.
\_SIM\_TRACE Compile STCP so that it creates a trace output
    of all workstation level events and writes it to stdout.  Useful
    for debugging simulation models.  For normal use, this flag
    (and the following) need not be used.  
\_SIM\_TRACE\_L2 As above, except ``low-level'' events relating
    to cell movement are listed to stdout.

To start with, I recommend that these flags are left as they are, i.e.
just \_DEBUG\_TESTS.

COMPFLAGS contains the other compilation flags for the gcc
compiler.  The standard set of options contains the -O3
option to optimize the code.  For debugging, the -g option
may be added, in which case it is receommended to remove -O3.
Apart from this, none of the standard flags should be removed.
This release of STCP compiles for Solaris2.4 and for Linux.  The
_LINUX option is required for compilation for Linux,
but the code will compile for Solaris even with this option, for
historical reasons.

Once the required flags have been confirmed (to start with, it should
not be necessary to change these flags), the source dependancies must
be updated using `make depend' as with the SSIM libraries above.
This is done automatically by the installation script.

----
Sam Manthorpe.
Wed Sep 25 13:13:35 MET DST 1996

