atmsigd(1M)atmsigd(1M)NAMEatmsigd - signalling daemon for ATM switched virtual circuits
SYNOPSIS
/usr/etc/atmsigd [ -d ]
DESCRIPTION
The atmsigd is a daemon which works in conjunction with the atm driver to
set up and tear down switched virtual circuits over ATM. The daemon can
be configured to support the signalling protocol as defined in either
version 3.0 or 3.1 of the ATM Forum's User-Network Interface (UNI)
specification.
The only command line option for atmsigd is:
-d which runs it in daemon mode, i.e. as a background process without
standard input or output, logging only critical errors to
/usr/adm/SYSLOG. Without the -d option, atmsigd runs in interactive
mode, with a higher (controllable) level of verbosity. Typically
atmsigd is invoked at system boot from /etc/init.d/atm in daemon
mode.
When run in interactive mode (without the -d option), the atmsigd takes
its commands, phrased in TCL syntax, from stdin. When running in daemon
mode, there is no standard input, and the daemon reads the file
/var/atm/atmsigd.tcl instead, so all configuration commands for the
daemon should be placed in that file. In interactive mode, the atmsigd
does not automatically read that file, but will do so if it receives the
command "source /var/atm/atmsigd.tcl" from stdin.
Running the atmsigd in interactive mode is helpful when debugging but
should rarely be required. If you need to do so, proceed with extreme
caution. In order to run the atmsigd in interactive mode, you first need
to kill the daemon-mode atmsigd that was started at boot time by
/etc/init.d/atm. But before you issue the command to "killall atmsigd",
make sure that all applications using SVCs are first killed. Also make
sure that all IP ATM network interfaces using SVCs are ifconfig-ed down
first. To start up a new atmsigd in interactive mode, invoke the command
/usr/etc/atmsigd. You will see a % prompt on your screen, which is your
cue to enter commands to the atmsigd. If you want it to execute the usual
commands, type source /var/atm/atmsigd.tcl at the prompt. Then continue
with any other special commands you may have. Once the signalling stacks
are built, you can restart any applications using SVCs as well as
ifconfig up all the IP network interfaces that you took down earlier.
If you just want to turn on tracing in the atmsigd, and don't want to
have to kill and restart the atmsigd by hand, you can do so by adding
verbosity commands (described below) to the command file
/var/atm/atmsigd.tcl and changing the startup script. Make sure that the
verbosity commands are added after the build commands as they must apply
to existing layers. After you have edited the atmsigd.tcl command file,
Page 1
atmsigd(1M)atmsigd(1M)
change the line in /etc/init.d/atm that reads
/usr/etc/atmsigd -d
so that it runs non-daemon mode, in the background, with output
redirected to a suitable tracefile. For example:
echo 'source /var/atm/atmsigd.tcl' | /usr/etc/atmsigd \
> /usr/tmp/sigd.trace &
Make very sure that the final '&' background character is present because
running in the foreground will hang everything after it in the boot
process. This can generate a fair amount of output as well as slow down
signalling, so should not be left turned on permanently. Note that if
verbosity commands are left in the tcl file, but the atmsigd is run in
daemon-mode, there is no stdout and hence no output, but the tracing
overhead is still there, so it is recommended that the verbosity commands
be removed when not needed.
The atmsigd has a number of internal modules:
aal5atm This is the layer that deals with sending and receiving AAL5
frames on the signalling channel for that UNI. The ATM Forum
has defined VPI 0, VCI 5 as the standard signalling channel.
qsaal This module enforces the Service Specific Connection Oriented
Protocol (SSCOP) specification. SSCOP is a reliable
connection-oriented protocol which includes retransmission of
messages that are not acknowledged. This layer can be
configured, see build TCL commands below, to run supporting
either the UNI 3.0 referenced version of the specification,
i.e. ITU Documents DT/11/3-28 (Q.SAAL1), DT/11/3-XX (Q.SAAL2),
May 17 1993, or the UNI 3.1 referenced version, i.e. ITU-T
Recommendation Q.2110.
q93b This layer handles the actual signalling protocol as defined by
ATM Forum UNI version 3.0 or 3.1.
hcc This Host Call Control module is the interface to the atm
driver for requests on call setup and teardown. For instance,
when a user application issues a call setup request to the atm
driver, this request is forwarded to the hcc module, which
later notifies the driver once the call is completed (or
rejected).
Configuration commands define stack(s) of these 4 layers to be built by
atmsigd. The atmsigd should be instructed to build an aal5-qsaal-q93b
stack, identified by a unique stackid, for each port on the system. After
all the stacks are built, it should be given the command to build a
single hcc layer over all the stacks. Stacks must be built from bottom up
(i.e. starting from the aal5 layer).
Besides the standard TCL library commands, atmsigd understands the
following application-specific ones:
Page 2
atmsigd(1M)atmsigd(1M)
BUILD COMMANDS
These commands are used for building module stacks to run over specific
ATM ports. The general syntax is build <layer> <arglist>, where <arglist>
is dependent on <layer>. Specifically,
build aal5atm <stackid> <device name> <VPI> <VCI>
e.g. build aal5atm 1 /hw/atm/0 0 5
where
<stackid> some non-zero stack identifier
<device name> the device name of the ATM port to open
<VPI> the Virtual Path Identifier to use for signalling messages
<VCI> the Virtual Channel Identifier to use for signalling
messages
build qsaal <version> <stackid>
e.g. build qsaal AF30 1
where
<version> one of AF30 or AF31 for the ATM Forum's UNI 3.0 or UNI 3.1
specification of the qsaal layer. Note that the 2 are not
compatible as most implementations of 3.0 start sequence
numbering at 0, whereas 3.1 requires the numbering to
start with 1. If the port is attached to a switch running
UNI 3.0 software, set this to AF30. Otherwise, use AF31.
<stackid> a non-zero stack identifier. This should be the same as
the stackid used in the build aal5atm command for the
underlying aal5 layer for this port.
build q93b <version> <stackid>
e.g. build q93b AF31 1
where
<version> one of AF30 or AF31 for the ATM Forum's UNI 3.0 or UNI 3.1
specification of the q93b layer.
<stackid> a non-zero stack identifier. This should be the same as
the stackid used in the build aal5atm and build qsaal
commands for the underlying layers on this port.
Page 3
atmsigd(1M)atmsigd(1M)
build hcc
with no further arguments. This command must be issued after all the
underlying stacks are completely built. Hcc will not know about any
stacks built after its own existence.
build status
This command causes atmsigd to display the currently built stacks. Note
that, because the build display goes to standard output, this command is
a no-op if placed in a TCL script sourced by the atmsigd running in
daemon mode.
For convenience, a buildstack procedure is defined in the TCL script
/var/atm/atmsigd.tcl installed with atmsigd:
proc buildstack { stackID devname qsaalVersion q93bVersion } {
build aal5atm $stackID $devname 0 5
build qsaal $qsaalVersion $stackID
build q93b $q93bVersion $stackID
}
This procedure can be invoked, for instance, as follows:
buildstack 1 /hw/atm/0 AF30 AF30
buildstack 2 /hw/atm/1 AF30 AF31
buildstack 3 /hw/atm/2 AF31 AF31
build hcc
which will cause 3 stacks to be built. On the interface atm0, atmsigd
will run 3.0 versions of qsaal and q93b, over atm1 it will run the 3.0
version of qsaal and 3.1 version of q93b, and atm2 will have UNI 3.1
versions of both. When all 3 stacks are built, the hcc layer is built to
run over all of them.
If for any reason you need to run signalling over some VPI/VCI pair other
than 0/5, avoid using the buildstack procedure for that stack and
instead, expressly issue the command to build each layer. For example in
the above example, if the port on /hw/atm/2 is attached to a switch that
expects signalling on VPI=2,VCI=5, then you would replace the call to
buildstack 3 /hw/atm/2 AF31 AF31
with the lines
build aal5atm 3 /hw/atm/2 2 5
build qsaal AF31 3
build q93b AF31 3
VERBOSITY-CONTROL COMMANDS
These control the level of output generated by atmsigd when running in
interactive mode. When running in daemon mode (with the -d option),
atmsigd does not generate any output at all, except for critical error
messages logged with syslogd (i.e. check /usr/adm/SYSLOG). So verbosity
is only useful if running the atmsigd in interactive mode. Print levels
settable with the verbosity-control commands are
Page 4
atmsigd(1M)atmsigd(1M)
1 ERROR messages only
2 TERSE informational messages
3 VERBOSE informational messages, pretty much every PDU sent and received.
(Warning: VERBOSE in the qsaal layer traces every poll message and there
are lots of these.)
Verbosity can be independently controlled for each stack module. The
module must exist before its verbosity level can be set i.e. the build
command for a module must preceded its verbosity-setting command, The
default verbosity-level is 1 (ERROR). To raise these levels, use one of
the following commands:
hcc pl <printlevel>
q93b pl <stackid> <printlevel>
qsaal pl <stackid> <printlevel>
aal5 pl <stackid> <printlevel>
If running in interactive mode, stdout should be redirected to some
appropriate disk file as output can be fairly heavy. This mode should
only be used if needed to debug cause of failure of connection setups.
OTHER CONTROL COMMANDS
These are listed here for completeness but are not recommended for
general use.
The atmsigd also has a manager module in it, through which it is possible
to issue commands to clear or restart specific VCs or even the entire
interface. These commands are:
mngr clear <stackid> <vpi> <vci>
clear a particular VC.
mngr restart <stackid>
restart the entire interface (this tears down all existing VCs).
mngr pl <printlevel> set verbosity level for the manager module
The qsaal layer has a number of tweakable parameters, and these should
only be changed with extreme caution and a good understanding of the
SSCOP protocol. Qsaal layer commands include:
qsaal est <stackid>
initiate SSCOP connection to switch
qsaal rel <stackid>
Page 5
atmsigd(1M)atmsigd(1M)
tear down SSCOP connection to switch
qsaal credit <stack-id> <+/-number>
qsaal cc-interval <stack-id> <secs> <usecs>
qsaal poll-interval <stack-id> <secs> <usecs>
qsaal keepalive-interval <stack-id> <secs> <usecs>
qsaal noresp-interval <stack-id> <secs> <usecs>
qsaal stat-length <stack-id> <length>
GENERAL TCL COMMANDS
A couple of useful ones are:
exit
Ask atmsigd to terminate.
source <filename>
If running the atmsigd in interactive mode, to avoid having to enter all
the usual stackbuilding commands, just use source /var/atm/atmsigd.tcl.
FILES
/usr/etc/atmsigd
/var/atm/atmsigd.tcl
SEE ALSOatm(7M), if_atm(7M), atmilmid(1M), atmconfig(1M), atmstat(1M),
ifatmconfig(1M)
Page 6