tcng manpage

Search topic Section

tcng(1)				     TCNG			       tcng(1)

       tcng - Traffic control compiler

       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> ]

       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> ...

	      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"

       -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.

	      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

	      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 ==,	 which	should
	      probably be ip_src/24 ==
	      "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.

	      verbatim argument for specific build phase. See section  "Phases
	      underneath tcng" for details.

	      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)