The models sub-package
This has an implementation of an emulator to emulate wide-area
traffic (latency/losses) on a set of machines -- possibly all in the
same LAN. The emulator setup is shown in the picture below.
The files in this sub-package are:
- fwdRaw: This is the emulator software. It is compiled
for functionality only when the IP_TUNNEL option is set during
compilation (see here). Also, for
normal operation, the MEAS_FWDRAW option should not be defined.
The MEAS_FWDRAW option is to be defined when measuring the
capacity of the emulator, not during normal operation. The
MEAS_FWDRAW option is in Makefile.am, and should be
defined/undefined before running automake (see here).
- PktDrop: This class defines the routines for introducing
packet drops, and overlay link outages, according to a given
distribution (specified in a file).
- Genlat: This defines the class for introducing latencies
at the emulator.
- DetFail: This class is used when an overlay link has to
be failed deterministically.
- pdf2cdf.pl: This is a perl script to convert a file
giving a PDF of outage periods, to a CDF (see the examples in
the udp-distributions sub-directory).
- measFwdRaw: Program to measure the capacity of the
emulator setup. This compiles when the configure time option
MEAS_FWDRAW is defined in Makefile.am.
- diff-meas-fwd.pl: Perl script to analyse the outputs of
fwdRaw, and measFwdRaw, when measuring the capacity of the
emulator.
The outage distribution files
In addition, the sub-directory udp-distributions and
ping-distributions have the distributions of outage periods on
wide-area Internet paths -- based on UDP measurements, and ping
measurements respectively. The "*.density" files are the PDFs, and
the "*.density.cdf" files are the CDFs of the same distribution -- the
result of running pdf2cdf.pl on the "*.density" files. Each PDF file
has three columns:
- The outage period in ms
- The absolute count of the outages in this range, during the
experiment, and
- The relative frequency of the outages in this range.
Introducing deterministic failures:
det-fail.cfg
Deterministic failures in the overlay links can be introduced by
configuring the fwdRaw program. When the fwdRaw program gets a
Ctrl-C, it looks for a "det-fail.cfg" file, to read the deterministic
outages it is supposed to emulate. NOTE: if the fwdRaw program cannot
find a det-fail.cfg file, and receives Ctrl-C, it exits. A nice way
to do this would be have a soft-link named det-fail.cfg to the actual
config files in the det-fail-cfgs sub-directory. The soft-link can
exist when you hit Ctrl-C, and you can remove it before hitting
another Ctrl-C to terminate the fwdRaw program.
The format of "det-fail.cfg" is that it has a set of lines, each
specifying a deterministic outage of an overlay link. Each line has 4
columns:
- The destination service-cluster ID (SCID) of the overlay link to
be failed.
- The origin SCID of the overlay link to be failed.
- The start time, in ms, of the failure. The failure is started
after this duration, after a Ctrl-C has been hit, on the
fwdRaw program.
- The duration of the failure, in ms.
Compile-time configurations
Here are the compile-time options, and hardcoded values:
- The file to which the packet size distributions is written out
-- default: /tmp/pkt-dist.out -- see the printPktDist routine in
fwdRaw.cpp
- The file from which deterministic failure configuration is read
-- default: det-fail.cfg -- see the readDet routine in
fwdRaw.cpp
- The list of outage distribution density files to be used --
the numDist and densityFiles variables in Emulator::Emulator in
fwdRaw.cpp
- The factor for normalizing the maximum overlay link one-way
delay emulator by the emulator: normalizedMaxCost variable in
Emulator::Emulator in fwdRaw.cpp
- The log file for the emulator -- default: /tmp/fwd-log.0 -- see
the main routine in fwdRaw.cpp
Command-line arguments
- The fwdRaw program has to be given the SCID-Mapping file and the
graph-config file as arguments. Both are explained in the serv-comp sub-package documentation.
Bhaskaran Raman, bhaskar@cs.berkeley.edu
Last modified: Tue Jan 22 15:38:52 PST 2002