ToMaTo - Link Emulation

ToMaTo, Topology Management Tool

ToMaTo is topology-oriented, i.e. users build topologies for their experiments.

Devices

Connectors

Three kinds of devices

Two kinds of connectors

Delay and jitter

Delay

Delay can be added to a link by buffering each packet for a certain time before processing it. Delay can be configured in milliseconds but also fractions can be specified. The resolution depends on the timer resolution of the kernel but is very accurate in general.

Jitter

Jitter is a deviation applied to the per packet delay. Like the delay, jitter can also be specified in milliseconds but also fractions will work. The meaning of the jitter value depends on the selected statistical delay distribution but the jitter is applied in an average-neutral way.

Packet reordering

Packet reordering can be a result of high jitter values. If a packet gets a high delay value and the next packet a low value due to jitter, the later packet could leave the buffer first.

Statistical delay distribution

Uniform distribution

Normal distribution

Pareto distribution

Paretonormal distribution

Other characteristics

Bandwidth limitation

Packet loss

Packet duplication

Packet corruption

Characteristics configuration

The link emulation properties can be changed on the link properties page for each link. The link characteristics can even be changed for running connections.

Characteristics are additive

Characteristics are additive

The configured link emulation settings are applied additionally to the existing characteristics of the underlying link.

Continous measurements

To help users estimate the resulting link characteristics the links between all sites are continously measured and long-time statistics are provided.

Complex link emulation

Sometimes a more complicated link emulation or traffic shaping is needed on links. This can be done by using a link with a device in the middle.

OpenVZ

KVM

Programmable devices

Obtaining and contributing

How to get ToMaTo

ToMaTo is Open-Source! It can be simply downloaded from the Github page. There is also a step-by-step tutorial on how to setup ToMaTo in a testbed. ToMaTo includes some nice features that make it pretty easy to install it in an experimental facility:

How to contribute to ToMaTo

As an Open-Source project ToMaTo is open for hints and contributions.

/

#