Trace statements allow you to control the trace file and its contents
from within the
gated.conf
file. The trace statement is:
traceoptions
[
"
trace_file
"
[
replace
] [
size
bytes
[
k
|
m
]
files
n
]] [
nostamp
]
trace_options
[
except
trace_options
]
;
Its components are as follows:
-
trace_file
-
Identifies the file that receives the trace output. It has exactly
the same function as the
trace_file
argument on the
gated
command line.
-
replace
-
Replaces the existing trace file. If you do not use this keyword, the
trace output is appended to the current contents of the file.
-
size
bytes
[
k
|
m
] [
files
n
]
-
Limits the trace file to a maximum size of
bytes
. The optional
k
or
m
indicates thousands (
k
) or millions (
m
)
of bytes. Thus 1000000 and 10m are equivalent entries. The size of the
trace file cannot be less than 10k bytes.
n
defines the maximum
number of trace files that should be saved. When the trace file reaches
the maximum size, it is saved as
trace_file
.0,
trace_file
.1,
trace_file
.2 up to
trace_file
.
n
. The next save then
overwrites
trace_file
.0. The value for
n
must be at least 2.
-
nostamp
-
Specifies that trace lines should not begin with a timestamp.
Timestamping each line of trace data is the default.
-
trace_options
-
Define the events to be traced by
gated
. Each trace option is
specified by a keyword name. The available trace options are:
-
none
-
Turns off all tracing.
-
all
-
Turns on all types of global tracing.
-
general
-
Turns on both
normal
and
route
tracing.
-
state
-
Traces state machine transitions for protocols such as OSPF and BGP.
The RFCs describe these protocols using
finite state machine
(FSM) diagrams or tables. The protocols transition from one state to
another based on the occurrence of certain events. For example, the
state might change from
idle
to
connect
when a
connection open
event occurs. This is a highly specialized trace
flag, useful only to those who have a thorough understanding of the
protocols involved. Use this option within the protocol statement to
trace a specific protocol's transitions.
-
normal
-
Traces normal protocols interactions. Errors are always traced.
-
policy
-
Traces the application of routing policies. Use this to check that you
have properly configured your routing policy.
-
task
-
Traces system-level processing.
-
timer
-
Traces the various timers used by a protocol or peer.
-
route
-
Traces routing table changes. Use this to check that routes are
properly installed by the protocol.
-
detail
-
Traces the contents of the packets exchanged by the router. Must be
specified before
send
or
recv
.
-
send
-
Limits the
detail
trace to packets sent by this router.
-
recv
-
Limits the
detail
trace to packets received by this router.
Without these two options, all packets are traced when
detail
is
specified.
-
symbols
-
Traces the symbols read from the kernel at startup. See the
-t
command-line argument.
-
iflist
-
Traces the kernel interface list. See the
-t
command-line argument.
-
parse
-
Traces the lexical analyzer and parser.
-
adv
-
Traces the allocation and release of blocks.
-
except
trace_options
-
Disables specific trace options. Must be used in conjunction with
trace_options
that enable a wide variety of tracing. For example:
traceoptions all except state
turns on all traces except for
finite state machine tracing.
gated
provides the flexibility for you to choose where you want
to control tracing - on the command line or in the configuration file.
By and large, the same trace options can be set on the
gated
command line or in the configuration file.
detail
,
send
and
recv
can be set only in the configuration file.
Two others,
symbols
and
iflist
, are primarily used on the
command line. Refer to the section on the
gated
command line
for a description of setting trace options with
-t
.
Some trace options
are only useful for protocol developers and other
experts. For most of us,
general
, which enables
normal
and
route
tracing, is an appropriate level of information for
debugging routing problems. Occasionally
policy
is useful for
testing a routing policy. Most of the time, however, no tracing is
needed.