tcsim is used to simulate the behaviour of Linux Traffic Control at a very high level of detail. This is used mainly for the following purposes:
tcsim directly supports configuration using the old (tc) configuration language, and it supports the new (tcng) language by automatically invoking tcc, and integrating its output.
tcsim combines the original traffic control code from the Linux kernel with the user-space code of the configuration utility tc, and adds the framework for communication among the two, plus an event-driven simulation engine.
The resulting program runs entirely in user space, but executes almost exactly the same code as a ``real'' system (it even mimics loadable kernel modules), approximating the behaviour of traffic control in a Linux system much more accurately than a more general simulator (e.g. ns-2) would.
As shown in figure 1.2, tcsim processes a script defining the system configuration and the data to send, and generates a message trace, which can then be processed to obtain statistics or graphs. Interaction among individual traffic control components can be included in trace output.
tcsim is also useful when developing new traffic control configurations, be it in the old or in the new language.