1998-09-15 08:23:17 +00:00
|
|
|
.\"
|
|
|
|
.\" ===================================
|
|
|
|
.\" HARP | Host ATM Research Platform
|
|
|
|
.\" ===================================
|
|
|
|
.\"
|
|
|
|
.\"
|
|
|
|
.\" This Host ATM Research Platform ("HARP") file (the "Software") is
|
|
|
|
.\" made available by Network Computing Services, Inc. ("NetworkCS")
|
|
|
|
.\" "AS IS". NetworkCS does not provide maintenance, improvements or
|
|
|
|
.\" support of any kind.
|
|
|
|
.\"
|
|
|
|
.\" NETWORKCS MAKES NO WARRANTIES OR REPRESENTATIONS, EXPRESS OR IMPLIED,
|
|
|
|
.\" INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
|
|
.\" AND FITNESS FOR A PARTICULAR PURPOSE, AS TO ANY ELEMENT OF THE
|
|
|
|
.\" SOFTWARE OR ANY SUPPORT PROVIDED IN CONNECTION WITH THIS SOFTWARE.
|
|
|
|
.\" In no event shall NetworkCS be responsible for any damages, including
|
|
|
|
.\" but not limited to consequential damages, arising from or relating to
|
|
|
|
.\" any use of the Software or related support.
|
|
|
|
.\"
|
|
|
|
.\" Copyright 1994-1998 Network Computing Services, Inc.
|
|
|
|
.\"
|
|
|
|
.\" Copies of this Software may be made, however, the above copyright
|
|
|
|
.\" notice must be reproduced on all copies.
|
|
|
|
.\"
|
1999-08-28 01:35:59 +00:00
|
|
|
.\" @(#) $FreeBSD$
|
1998-09-15 08:23:17 +00:00
|
|
|
.\"
|
|
|
|
.\"
|
|
|
|
.de EX \"Begin example
|
|
|
|
.ne 5
|
|
|
|
.if n .sp 1
|
|
|
|
.if t .sp .5
|
|
|
|
.nf
|
|
|
|
.in +.5i
|
|
|
|
..
|
|
|
|
.de EE
|
|
|
|
.fi
|
|
|
|
.in -.5i
|
|
|
|
.if n .sp 1
|
|
|
|
.if t .sp .5
|
|
|
|
..
|
|
|
|
.TH SCSPD 8 "1998-08-21" "HARP"
|
|
|
|
|
|
|
|
.SH NAME
|
|
|
|
scspd \- SCSP daemon
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B scspd
|
|
|
|
[\fB-f\fP <cfg-file>]
|
|
|
|
[\fB-d\fP]
|
|
|
|
[\fB-T\fP<options>]
|
|
|
|
|
|
|
|
.SH DESCRIPTION
|
|
|
|
\fIScspd\fP is an implementation of the Server Cache Synchronization
|
|
|
|
Protocol (SCSP) for the Host ATM Research Platform (HARP)
|
|
|
|
networking software.
|
|
|
|
\fIScspd\fP synchronizes the cache(s) of server(s)
|
|
|
|
running on a host with the caches of servers on remote hosts.
|
|
|
|
SCSP is defined for a number of different protocols, but the present
|
|
|
|
version of \fIscspd\fP only supports ATMARP.
|
|
|
|
.PP
|
|
|
|
By using \fIscspd\fP and \fIatmarpd\fP, one can provide multiple
|
|
|
|
ATMARP servers in a single ATM LIS.
|
|
|
|
This might be useful, for example, when a LIS consists of a number of
|
|
|
|
local-area ATM networks connected by long-distance links.
|
|
|
|
Each local-area network could have its own ATMARP server, with all the
|
|
|
|
servers' caches being synchronized by SCSP.
|
|
|
|
Then, if a long-distance link fails, hosts on a local-area network
|
|
|
|
will still have connectivity to other local hosts (since they all use
|
|
|
|
the local ATMARP server); when the long-distance link is restored,
|
|
|
|
SCSP will re-synchronize the servers' caches, restoring
|
|
|
|
connectivity to remote hosts.
|
|
|
|
Both \fIscspd\fP and \fIatmarpd\fP must be running before any ATMARP
|
|
|
|
cache synchronization can take place.
|
|
|
|
.PP
|
|
|
|
\fIScspd\fP implements SCSP as specified in RFC 2334, \fIServer Cache
|
|
|
|
Synchronization Protocol (SCSP)\fP and
|
|
|
|
draft-ietf-ion-scspd-atmarpd-00.txt, \fIA Distributed ATMARP Service
|
|
|
|
using SCSP\fP.
|
|
|
|
|
|
|
|
When \fIscspd\fP starts, it parses its command line and puts
|
|
|
|
itself into the background.
|
|
|
|
|
|
|
|
.SH TERMINOLOGY
|
|
|
|
Some of the vocabulary associated with SCSP can be confusing.
|
|
|
|
In this document, the following definitions are used:
|
|
|
|
|
|
|
|
\fBClient server\fP or \fBlocal server\fP means the server running on
|
|
|
|
the same host as \fIscspd\fP whose cache is to be synchronized with that
|
|
|
|
of one or more remote servers.
|
|
|
|
When the word \fBserver\fP is used alone, it means "client server".
|
|
|
|
|
|
|
|
\fBRemote server\fP means a server running on some host other than
|
|
|
|
the one where \fIscspd\fP is running.
|
|
|
|
|
|
|
|
\fBDirectly Connected Server\fP (DCS) means a remote server that
|
|
|
|
\fIscspd\fP communicates with directly.
|
|
|
|
The remote server will also be running an implementation of SCSP.
|
|
|
|
|
|
|
|
\fBCache Alignment\fP (CA) has two meanings.
|
|
|
|
The Cache Alignment protocol is a part of the SCSP protocol
|
|
|
|
specification, and the Cache Alignment finite state machine (FSM)
|
|
|
|
is a finite state machine that implements the Cache Alignment
|
|
|
|
protocol.
|
|
|
|
|
|
|
|
.SH OPTIONS
|
|
|
|
The command-line options are:
|
|
|
|
.IP "\fB-f\fP <cfg-file>" 15
|
|
|
|
Specifies the name of the configuration file.
|
|
|
|
If this option is not specified, \fIscspd\fP looks for the
|
|
|
|
file /etc/scspd.conf.
|
|
|
|
.IP "\fB-d\fP" 15
|
|
|
|
Specifies that \fIscspd\fP is to be run in debug mode.
|
|
|
|
In debug mode, the daemon is not put into the background.
|
|
|
|
Log messages are written to standard output instead of to
|
|
|
|
the log file specified in the configuration file.
|
|
|
|
.IP "\fB-T\fP<options>" 15
|
|
|
|
Specifies that \fIscspd\fP will trace specified events and messages
|
|
|
|
as it executes.
|
|
|
|
The \fB-T\fP flag is followed by one or more of the following
|
|
|
|
options:
|
|
|
|
.in +4
|
|
|
|
.ti -4
|
|
|
|
\fBc\fP\ -\ trace \fIscspd\fP's CA Finite State Machine (FSM),
|
|
|
|
.ti -4
|
|
|
|
\fBh\fP\ -\ trace \fIscspd\fP's Hello FSM,
|
|
|
|
.ti -4
|
|
|
|
\fBi\fP\ -\ trace \fIscspd\fP's Client Interface FSM,
|
|
|
|
.ti -4
|
|
|
|
\fBC\fP\ -\ trace CA, CSUS, CSU Request, and CSU Reply messages,
|
|
|
|
.ti -4
|
|
|
|
\fBH\fP\ -\ trace Hello messages,
|
|
|
|
.ti -4
|
|
|
|
\fBI\fP\ -\ trace interface messages to and from \fIscspd\fP's
|
|
|
|
clients.
|
|
|
|
.in -4
|
|
|
|
.SH CONFIGURATION
|
|
|
|
|
|
|
|
The configuration file consists of a sequence of configuration
|
|
|
|
statements.
|
|
|
|
These statements specify information about the servers,
|
|
|
|
both local and remote, whose
|
|
|
|
caches are to be synchronized by \fIscspd\fP.
|
|
|
|
RFC 2334, \fIServer Cache
|
|
|
|
Synchronization Protocol (SCSP)\fP and
|
|
|
|
draft-ietf-ion-scspd-atmarpd-00.txt, \fIA Distributed ATMARP Service
|
|
|
|
using SCSP\fP
|
|
|
|
will be valuable in understanding how to configure \fIscspd\fP.
|
|
|
|
|
|
|
|
A configuration statement other than a comment is terminated by a
|
|
|
|
semicolon.
|
|
|
|
Some statements contain blocks, delimited by braces ("{" and "}").
|
|
|
|
Configuration statement keywords are not case-sensitive,
|
|
|
|
but some parameters (e.g. interface names) are.
|
|
|
|
Configuration statments can span multiple lines.
|
|
|
|
|
|
|
|
.SS Comments
|
|
|
|
Three types of comments are allowed:
|
|
|
|
|
|
|
|
\fB# comments\fP:
|
|
|
|
any characters from "#" to the end of the line are ignored.
|
|
|
|
|
|
|
|
\fBC comments\fP:
|
|
|
|
any characters between "/*" and "*/" are ignored.
|
|
|
|
|
|
|
|
\fBC++ comments\fP:
|
|
|
|
any characters from "//" to the end of the line are ignored.
|
|
|
|
|
|
|
|
.SS "Statements"
|
|
|
|
The configuration statements recognized by \fIscspd\fP are:
|
|
|
|
|
|
|
|
Server <name> {
|
|
|
|
.in +5
|
|
|
|
Protocol <protocol ID>;
|
|
|
|
.br
|
|
|
|
Netif <if_name>;
|
|
|
|
.br
|
|
|
|
ServerGroupID <ID>;
|
|
|
|
.br
|
|
|
|
FamilyID <ID>;
|
|
|
|
.br
|
|
|
|
DCS {
|
|
|
|
.in +5
|
|
|
|
ATMaddr <ATM address>;
|
|
|
|
.br
|
|
|
|
ID <host>;
|
|
|
|
.br
|
|
|
|
CAReXmitInt <int>;
|
|
|
|
.br
|
|
|
|
CSUSReXmitInt <int>;
|
|
|
|
.br
|
|
|
|
CSUReXmitInt <int>;
|
|
|
|
.br
|
|
|
|
CSUReXmitMax <cnt>;
|
|
|
|
.br
|
|
|
|
HelloDead <cnt>;
|
|
|
|
.br
|
|
|
|
HelloInt <int>;
|
|
|
|
.br
|
|
|
|
Hops <cnt>;
|
|
|
|
.in -5
|
|
|
|
};
|
|
|
|
.in -5
|
|
|
|
};
|
|
|
|
.sp
|
|
|
|
Log {
|
|
|
|
.in +5
|
|
|
|
File <file name>;
|
|
|
|
.br
|
|
|
|
Syslog;
|
|
|
|
.in -5
|
|
|
|
};
|
|
|
|
.PP
|
|
|
|
Where a host address needs to be specified in the configuration file,
|
|
|
|
either a DNS name or an IP address in dotted decimal format can
|
|
|
|
be used.
|
|
|
|
.PP
|
|
|
|
ATM addresses are specified as strings of hex digits, with an
|
|
|
|
optional leading "0x".
|
|
|
|
Fields within the address may be separated by periods, but periods
|
|
|
|
are for readability only and are ignored.
|
|
|
|
ATM addresses are 20 bytes long.
|
|
|
|
The full address, including any leading zeroes, must be given.
|
|
|
|
For example:
|
|
|
|
.in +5
|
|
|
|
0x47.0005.80.ffe100.0000.f21a.0170.0020481a0170.00
|
|
|
|
.in -5
|
|
|
|
|
|
|
|
.SS "Server Statement"
|
|
|
|
The \fBserver\fP statement specifies a client server whose cache
|
|
|
|
to be synchronized with the caches of other servers
|
|
|
|
running on remote hosts.
|
|
|
|
There will be one \fBserver\fP statement in the configuration file
|
|
|
|
for each client server whose cache is to be synchronized by \fIscspd\fP.
|
|
|
|
The format of the \fBserver\fP statement is:
|
|
|
|
.ti +5
|
|
|
|
\fBServer <name> { <statements> };\fP
|
|
|
|
|
|
|
|
A name must be specified on the \fBserver\fP statement, but it is
|
|
|
|
not used by \fIscspd\fP.
|
|
|
|
It is expected to give a brief description of the server's purpose.
|
|
|
|
|
|
|
|
The \fBserver\fP statement has several sub-statements
|
|
|
|
that specify the details of the \fIscspd\fP's configuration.
|
|
|
|
They are:
|
|
|
|
.IP "\fBProtocol ATMARP;\fP" 5
|
|
|
|
The only protocol supported by the current version of \fIscspd\fP
|
|
|
|
is ATMARP.
|
|
|
|
The \fBprotocol\fP statement must always be specified.
|
|
|
|
.IP "\fBNetif <intf>;\fP" 5
|
|
|
|
The \fBnetif\fP statement specifies the name of the ATM network
|
|
|
|
interface on which a client server is providing service.
|
|
|
|
The \fBnetif\fP statement must always be specified.
|
|
|
|
.IP "\fBServerGroupID <ID>;\fP" 5
|
|
|
|
The \fBServerGroupID\fP statement specifies an identifier for the
|
|
|
|
group of servers being synchronized by \fIscspd\fP.
|
|
|
|
The ID is specified as a decimal number in the range 0 - 65,535.
|
|
|
|
The server group ID must be the same for all servers whose caches
|
|
|
|
are being synchronized by an SCSP session.
|
|
|
|
That is, the server group ID for a host must be the same for all
|
|
|
|
Directly Connected Servers (DCSs) pointed to within a
|
|
|
|
\fBserver\fP statement.
|
|
|
|
The \fBServerGroupID\fP statement must always be specified.
|
|
|
|
.IP "\fBFamilyID <ID>;\fP" 5
|
|
|
|
The \fBfamilyID\fP statement specifies an identifier for a family
|
|
|
|
of parallel SCSP sessions running between a group of hosts (i.e. a
|
|
|
|
set of SCSP sessions with different protocol IDs but the same set
|
|
|
|
of servers).
|
|
|
|
The ID is specified as a decimal number in the range 0 - 65,535.
|
|
|
|
The family ID is currently not used by \fIscspd\fP.
|
|
|
|
|
|
|
|
.SS "DCS Statement"
|
|
|
|
The \fBDCS\fP statement is a sub-statement of the \fBserver\fP statement
|
|
|
|
that specifies the characteristics of a Directly Connected Server (DCS).
|
|
|
|
The \fBserver\fP statement will have one \fBDCS\fP statement for
|
|
|
|
each DCS that \fIscspd\fP is to exchange information with.
|
|
|
|
The \fBDCS\fP statement has a number of sub-statements that specify the
|
|
|
|
details of the configuration for the DCS. They are:
|
|
|
|
.IP "\fBATMaddr <ATM address>;\fP" 5
|
|
|
|
The \fBATMaddr\fP statement specifies the ATM address of the DCS.
|
|
|
|
The \fBATMaddr\fP statement must always be specified.
|
|
|
|
.IP "\fBID <host>;\fP" 5
|
|
|
|
The \fBID\fP statement specifies the SCSP identifier of the DCS.
|
|
|
|
For ATMARP, the ID is the IP address or DNS name associated with the
|
|
|
|
ATM interface of the DCS.
|
|
|
|
The \fBID\fP statement must always be specified.
|
|
|
|
.IP "\fBCAReXmitInt <int>;\fP" 5
|
|
|
|
The \fBCAReXmitInt\fP statement specifies the interval that is
|
|
|
|
allowed to elapse between retransmissions of CA messages.
|
|
|
|
If a CA message is sent and an acknowledgement is not received within
|
|
|
|
CAReXmitInt seconds, the message will be retransmitted.
|
|
|
|
The default value for \fBCAReXmitInt\fP is 3 seconds.
|
|
|
|
.IP "\fBCSUSReXmitInt <int>;\fP" 5
|
|
|
|
The \fBCSUSReXmitInt\fP statement specifies the interval that is
|
|
|
|
allowed to elapse between retransmissions of CSU Solicit messages.
|
|
|
|
When a CSUS message is sent, any Cache State Advertisements (CSAs)
|
|
|
|
requested by the CSUS that have
|
|
|
|
not been received within CSUSReXmitInt seconds will be requested
|
|
|
|
again by another CSUS message.
|
|
|
|
The default value for \fBCSUSReXmitInt\fP is 3 seconds.
|
|
|
|
Be careful not to confuse \fBCSUSReXmitInt\fP and \fBCSUReXmitInt\fP.
|
|
|
|
.IP "\fBCSUReXmitInt <int>;\fP" 5
|
|
|
|
The \fBCSUReXmitInt\fP statement specifies the interval that is
|
|
|
|
allowed to elapse between retransmissions of CSU Request messages.
|
|
|
|
When a CSU Request message is sent, any CSAs that are not acknowledged
|
|
|
|
by a CSU Reply message within CSUReXmitInt seconds will
|
|
|
|
be retransmitted.
|
|
|
|
The default value for \fBCSUReXmitInt\fP is 2 seconds.
|
|
|
|
Be careful not to confuse \fBCSUReXmitInt\fP and \fBCSUSReXmitInt\fP.
|
|
|
|
.IP "\fBCSUReXmitMax <cnt>;\fP" 5
|
|
|
|
The \fBCSUReXmitMax\fP statement specifies the number of times that
|
|
|
|
a CSA will be retransmitted as described above before SCSP gives up
|
|
|
|
on the CSA and discards it.
|
|
|
|
The default value for \fBCSUReXmitMax\fP is 5.
|
|
|
|
.IP "\fBHelloDead <cnt>;\fP" 5
|
|
|
|
The \fBHelloDead\fP statement specifies the Hello Dead Factor that
|
|
|
|
will be sent to the DCS in Hello messages.
|
|
|
|
A "DCS down" condition will be detected when nothing is received from
|
|
|
|
a DCS in HelloDead * HelloInt seconds.
|
|
|
|
The default value for \fBHelloDead\fP is 3.
|
|
|
|
.IP "\fBHelloInt <int>;\fP" 5
|
|
|
|
The \fBHelloInt\fP statement specifies the Hello Interval that
|
|
|
|
will be sent to the DCS in Hello messages.
|
|
|
|
The default value for \fBHelloInt\fP is 3 seconds.
|
|
|
|
.IP "\fBHops <cnt>;\fP" 5
|
|
|
|
The \fBHops\fP statement specifies the number of hops (DCS to DCS)
|
|
|
|
that will be specified in CSAs originating from the local server.
|
|
|
|
This number must be at least as large as the diameter of the
|
|
|
|
server group.
|
|
|
|
That is, it must be large enough for a CSA to be propagated from
|
|
|
|
server to server all the way across the server group.
|
|
|
|
The default value for \fBHops\fP is 3.
|
|
|
|
|
|
|
|
.SS "Log Statement"
|
|
|
|
The \fBlog\fP statement specifies how \fIscspd\fP is to log
|
|
|
|
information about its operation.
|
|
|
|
\fIScspd\fP can write log information to a file, to the system log,
|
|
|
|
or both.
|
|
|
|
.IP "\fBFile <file name>;\fP" 5
|
|
|
|
The \fBfile\fP statement specifies that \fIscspd\fP is to write
|
|
|
|
its log messages to the named file.
|
|
|
|
Log messages will be appended to the end of the file if
|
|
|
|
it already exists.
|
|
|
|
.IP "\fBSyslog;\fP" 5
|
|
|
|
The \fBsyslog\fP statement specifies that \fIscspd\fP is to write
|
|
|
|
its log messages to the syslog facility.
|
|
|
|
\fIScspd\fP writes its messages to syslog with a facility code
|
|
|
|
of LOG_DAEMON.
|
|
|
|
|
|
|
|
.in -5
|
|
|
|
If no \fBlog\fP statement is specified, \fIscspd\fP writes log
|
|
|
|
messages to the system log.
|
|
|
|
If both \fBfile\fP and \fBsyslog\fP are specified, \fIscspd\fP will
|
|
|
|
write log messages to both the named file and the system log.
|
|
|
|
|
|
|
|
.SS Examples
|
|
|
|
|
|
|
|
An example of a simple configuration file for \fIscspd\fP might be:
|
|
|
|
.in +5
|
|
|
|
server atmarp_ni0 {
|
|
|
|
.in +5
|
|
|
|
protocol ATMARP;
|
|
|
|
.br
|
|
|
|
netif ni0;
|
|
|
|
.br
|
|
|
|
ServerGroupID 23;
|
|
|
|
.br
|
|
|
|
DCS {
|
|
|
|
.in +5
|
|
|
|
.br
|
|
|
|
ID 10.1.1.2;
|
|
|
|
.br
|
|
|
|
ATMaddr 0x47.0005.80.ffdc00.0000.0002.0001.002048061de7.00;
|
|
|
|
.br
|
|
|
|
hops 2;
|
|
|
|
.in -5
|
|
|
|
};
|
|
|
|
.in -5
|
|
|
|
};
|
|
|
|
.in -5
|
|
|
|
|
|
|
|
This configuration would synchronize the cache of the ATMARP server
|
|
|
|
operating on network interface ni0 with the cache of a second server
|
|
|
|
running on a host whose IP address is 10.1.1.2.
|
|
|
|
Log messages would be written to the system log.
|
|
|
|
|
|
|
|
|
|
|
|
.SH SIGNAL PROCESSING
|
|
|
|
The following signals can be used to control \fIscspd\fP:
|
|
|
|
|
|
|
|
.IP \fBSIGHUP\fP 10
|
|
|
|
Reread the configuration file and restart \fIscspd\fP.
|
|
|
|
|
|
|
|
.IP \fBSIGINT\fP 10
|
|
|
|
Dump debugging information to a file.
|
|
|
|
When it receives a SIGINT signal, \fIscspd\fP dumps a summary of
|
|
|
|
its control blocks to a text file (see "\fBFILES\fP").
|
|
|
|
|
|
|
|
.SH FILES
|
|
|
|
|
|
|
|
.IP "/etc/scspd.conf"
|
|
|
|
\fIScspd\fP default configuration file name.
|
|
|
|
A different file name can be specified with the \fB-f\fP command-line
|
|
|
|
option.
|
|
|
|
|
|
|
|
.IP "/tmp/scspd.<pid>.<seq>.out"
|
|
|
|
Debugging information dump file name.
|
|
|
|
\fIScspd\fP writes a summary of its control blocks to this file
|
|
|
|
when it receives a SIGINT signal.
|
|
|
|
<pid> is the process ID of the daemon and <seq> is a sequence
|
|
|
|
number which is incremented every time a dump is taken.
|
|
|
|
|
|
|
|
.IP "/tmp/scspd.<pid>.trace"
|
|
|
|
Trace file.
|
|
|
|
\fIScspd\fP writes trace information to this file if the \fB-T\fP
|
|
|
|
option is specified on the command line.
|
|
|
|
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
\fIatm\fP (8);
|
|
|
|
\fIatmarpd\fP (8);
|
|
|
|
RFC 2334, \fIServer Cache Synchronization Protocol (SCSP)\fP;
|
|
|
|
draft-ietf-ion-scsp-atmarpd-00.txt, \fIA Distributed ATMARP Service
|
|
|
|
Using SCSP\fP.
|
|
|
|
|
|
|
|
|
|
|
|
.SH BUGS
|
|
|
|
If \fIscspd\fP terminates and is restarted, there will be a period of
|
|
|
|
instability while previously-synchronized cache entries time out and are
|
|
|
|
refreshed.
|
|
|
|
|
|
|
|
Please report any bugs to harp-bugs@magic.net.
|
|
|
|
|
|
|
|
.SH COPYRIGHT
|
|
|
|
Copyright (c) 1994-1998, Network Computing Services, Inc.
|
|
|
|
|
|
|
|
.SH AUTHORS
|
|
|
|
John Cavanaugh, Network Computing Services, Inc.
|
|
|
|
.br
|
|
|
|
Mike Spengler, Network Computing Services, Inc.
|
|
|
|
.br
|
|
|
|
Joe Thomas, Network Computing Services, Inc.
|
|
|
|
.fi
|
|
|
|
.SH ACKNOWLEDGMENTS
|
|
|
|
This software was developed with the support of the Defense
|
|
|
|
Advanced Research Projects Agency (DARPA).
|