Man Linux: Main Page and Category List

NAME

       tcng - Traffic control compiler

SYNOPSIS

       tcng  [  -c  ]  [  -d  ...   ]  [  -E ] [ -i <default_interface> ] [ -l
       <location_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
       nothing but command-line arguments.

       tcng  reads  traffic  control  specifications  in the tcng language and
       generates 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
              elements  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
              element 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”
              constructs  in  “if”  classifier.  A  construct  is   considered
              “expensive”  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
              “expensive” 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”
              constructs  after  trying  to optimize the expression, which may
              eliminate 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
       alternative  algorithms  for  processing “if” expressions, and they are
       not recommended for normal use of tcng. Changes to undocumented options
       are  mentioned in tcng’s change log (file /usr/share/doc/tcng/CHANGES).