removes dead code from a Click configuration


click-undead [param=value ...] [options] [router-file]


The click-undead tool speeds up some Click configurations by removing dead code. This includes:

click-undead will not remove any information elements. Connections to removed elements are rerouted appropriately.

For example, click-undead will transform this configuration,

   Idle -> Counter -> td1 :: ToDump(a);
   InfiniteSource -> ss :: StaticSwitch(1);
     ss[0] -> ToDump(c);
     ss[1] -> Queue -> rr :: RoundRobinSched;
     Idle -> [1]rr;
     rr -> td2 :: ToDump(b);
into this configuration:

   InfiniteSource -> Queue -> td2 :: ToDump(b);
Note that the resulting configuration is not guaranteed to have the same semantics as the input configuration. Here, for example, the result configuration does not truncate the files ‘a’ and ‘c’.

The resulting configuration is written to the standard output.


If any filename argument is a single dash "-", click-undead will use the standard input or output instead, as appropriate.

-f file
--file file
Read the router configuration to transform from file. The default is the standard input.

-e expr
--expression expr
Use expr, a string in the Click language, as the router configuration to transform.

-o file
--output file
Write the output router configuration to file. The default is the standard output.

-k, --kernel
Check the configuration only for the click.o(8) Linux kernel module driver.

-u, --user
Check the configuration only for the click(1) user-level driver.

-c, --config
Output only the new configuration, not any archived packages.

-V, --verbose
Print debugging information about the transformation—for example, which elements are chosen as sources and sinks.

Print usage information and exit.

Print the version number and some quickie warranty information and exit.


click(1), click-install(1), click(5), click.o(8), Discard(n), FromDevice(n), InfiniteSource(n), ToDump(n), ToDevice(n)


Eddie Kohler, [email protected]