tcng(1) TCNG tcng(1) NAME tcng - Traffic control compiler SYNOPSIS tcng [ -c ] [ -d ... ] [ -E ] [ -i <default_interface> ] [ -l <loca- tion_file> ] [ -n ] [ -q ] [ -r ] [ -w ] [ -W [no]<condition> ] [ -O [no]<option> ] [ -x <element>:<ext_target> ... ] [ -t [no]<target> ... ] [ -u <var_use_file> ] [ -X <phase>,<argument> ] [ <cpp_option> ] [ <file> ] DESCRIPTION The tcng language is extensively described in several formats, you can find these files in /usr/share/doc/tcng. This manpage describes noth- ing but command-line arguments. tcng reads traffic control specifications in the tcng language and gen- erates command or files for a number of mechanisms that are used to implement traffic control functionality. -c only check validity of input, don't build a configuration. If requested, the location file and the variable use file are also generated when using -c -d increase debugging level -E only run cpp, and send its output to standard output. This is useful for separately running files through cpp, while using the default includes added by tcng. -i <default_interface> interface to use if none is specified in the description file. See section "Interfaces revisited" for further details. -l <location_file> write a list of source code locations of traffic control ele- ments to the specified file. See section "Location map" for details. Using the special file name "stderr" sends the output to standard error. -n do not include "default.tc". By default, tcng includes this file, which in turn includes the files described in section "Include files". This can be undesirable, e.g. if operating in a non-TCP/IP context, or if using a different default include file with application-specific definitions. In the latter case, the following options should be used: tcng ... -n ... -Xp,--include -Xp,/<directory>/<file> ... -O[no]<option> enable or disable the specified optimization. The following optimizations are recognized: "cse" common subexpression elimination "ne" turn != into multiple ==s "prefix" generate prefix matches instead of bit tests By default, all optimizations except "cse" are turned off. -q quiet, produce terse output -r remove old queuing disciplines before adding new ones ("tc" only) -t [<elem:>][no]<target> ... enable or disable target (see section "Targets"). The only ele- ment currently supported is "if". Supported targets are "all", "tc" (default), "c", and "ext". The -t options can be repeated to enable or disable multiple targets. -u<var_use_file> for each variable, write its name and value to the specified file. See section "Variable use list" for details. Using the special file name "stderr" sends the output to standard error. -V print version number and exit -w suppress all warnings -W[no]<condition> enable or disable issuing a warning message on the specified condition. The following conditions are recognized: "constpfx" warn if using the / (mask) operator on a constant IPv4 or IPv6 address, as in ip_src == 1.2.3.0/24, which should probably be ip_src/24 == 1.2.3.0 "expensive" generate warnings when encountering "expensive" con- structs in "if" classifier. A construct is considered "expen- sive" if processing it may take tcng an unusual amount of time. Operations like negation, certain tests for non-equality, or static classification that follows metering, are "expensive". Because "expensive" may be overly pessimistic, "exppostopt" should be used whenever possible. "experror" turns warnings from "expensive" or "exppostopt" into fatal errors. Setting "experror" without also setting "expen- sive" or "exppostopt" has no effect. "explicit" warn if a class if explicitly specified for the inner queuing discipline of "dsmark", "egress", or "ingress" "exppostopt" like "expensive", but test for "expensive" con- structs after trying to optimize the expression, which may elim- inate some apparently expensive constructs. "exppostopt" can only indicate in which "if" classifier the expression occurred, not in which selector of that classifier. "expensive" has no effect if "exppostopt" is set. Note that neither "expensive" nor "exppostopt" are useful when using "nocombine" (see sectionbarriers). "redefine" warn if re-defining variables "truncate" warn if truncating values, e.g. when converting a floating-point number to an integer "unused" report unused variables By default, all warnings except "explicit" and "unused" are turned off. -x <element>:<ext_target> ... register external target (see section "Targets"). The -x option can be repeated to register multiple external targets. -X<phase>,<argument> verbatim argument for specific build phase. See section "Phases underneath tcng" for details. <cpp_option> one of the following options for the C pre-processor: -I<dir> , -D<name>[=<value>] , or -U<name> tcng also recognizes a number of undocumented options, such as -B and -N. These options usually enable experimental features, like alterna- tive algorithms for processing "if" expressions, and they are not rec- ommended for normal use of tcng. Changes to undocumented options are mentioned in tcng's change log (file /usr/share/doc/tcng/CHANGES). Debian 2007-11-15 tcng(1) |