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] [sizebytes
[k|m] files n]] [nostamp]trace_options
[excepttrace_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
Defines 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 protocol 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 for a description of setting
trace options with -t
.
Some trace options are useful only 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.