tcc translates configuration scripts from the tcng language into a multitude of output formats used to configure traffic control subsystems.
As shown in figure 1.1, tcc takes its input from a script or program, invokes the appropriate input parser to translate the configuration data into a common internal data structure, and then invokes one or more output generators (called ``targets'') to issue commands to the corresponding output processor(s).
Output processors translate the output from tcc into actions understood by lower-level components, e.g. with the tc target, tc sends configuration messages over the netlink interface. For the c target, gcc builds a customized loadable kernel module, a tc module, plus the tc commands necessary to activate the kernel module. For the external target, tcc generates a simplified representation of the configuration, and passes this to an external program, which in turn may translate it to instructions for hardware accelerators, such as a network processor.
tcc currently only supports static configurations. Dynamic configuration will be studied in the future.