ppp.Systems - PPP neighboring systems description file format
The file /etc/ppp/Systems describes how to connect with neighboring
systems via PPP.
Entries are one to a line; blank lines are ignored. Comments begin
with a `#' and extend to the end of the line. Upper/lower case
distinctions are ignored in hostname specifications, but are
significant elsewhere. Fields on a line are separated by horizontal
white space (blanks or tabs). If a chat script ends with a backslash
(`\'), the next line is considered a continuation of the chat script.
Continuations may only occur in the midst of a chat script.
Each entry must contain six fields, in the following order:
name The hostname or IP address of the destination machine, which
should be resolvable locally.
when A string that indicates the days of the week and the times
of day when the system can be called (for example,
MoTuTh0800-1740). The day portion may be a list containing
any of Su, Mo, Tu, We, Th, Fr or Sa. The day may also be Wk
for any weekday (same as MoTuWeThFr) or Any for any day
(same as SuMoTuWeThFrSa).
You can indicate hours in a range (for example, 0800-1230).
If you do not specify a time, calls will be allowed at any
Note that a time range that spans 0000 is permitted. For
example, 0800-0600 means that all times are allowed except
times between 6 AM and 8 AM.
Multiple date specifications that are separated by a
vertical bar (|) are allowed. For example, Any0100-
0600|Sa|Su means that the system can be called any day
between 1 AM and 6 AM or any time on Saturday and Sunday.
The entire (sequence of) days and times may be followed by a
semicolon and up to three decimal numbers separated by
one If only one number follows the semicolon, it is used
as the redial delay, which is the initial time (in
seconds) before a failed call will be retried. For
example, Any;60 means call any time, but wait at
least 60 seconds after a failure has occurred before
trying to call again. If a call retry fails, pppd
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
will double the delay before trying again. If no
initial retry delay is specified, 10 seconds is
two If two numbers follow the semicolon, the second
number is used as the maximum redial delay, which is
the maximum time (in seconds) to delay before
retrying a call. The retry time will double with
each unsuccessful call until it reaches this value,
after which the call will be retried every time the
maximum number of seconds passes. If no maximum
retry delay is specified, 3600 seconds is assumed.
three If three numbers follow the semicolon, the first is
used as the callback delay, the second as the redial
delay, and the third as the maximum redial delay.
The callback delay is the time (in seconds) to wait
before attempting to re-establish a previously
active connection that ended because of an abrupt
line disconnection (a Hangup or SIGHUP event in the
log file). The default is not to delay before
During the delay following an unsuccessful call, any level 7
debugging messages written to pppd.log will have the message
`dial failed' appended.
device If set to `ACU', any device in Devices with a matching speed
may be used. The device's dialer chat script will be
executed first, followed by the Systems chat script.
If set to the name of a device in the /dev directory (tty00,
cua, etc.), then there may be an optional corresponding
Direct entry in Devices, Dialers will not be consulted, and
only the Systems chat script will be executed.
If set to `tcp', then it must be followed by a slash, then
the hostname or IP address of the system that will serve as
the destination of the PPP link, then another slash, then
the socket number on which to contact the remote PPP daemon.
speed The speed of the connection. If the device field is ACU,
the speed field will be string matched against entries in
Devices. Speeds must either be valid speed numbers or must
begin with them (2400, 38400, 19200-PEP, etc.). If the
device field is `tcp...' or `telnet...', the speed field is
ignored, but must be present as a place-holder.
The value to replace the \T escape sequence in the dialer
script. If the device field names an entry in /dev, the
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000
phone number field is optional. If the device field is
`tcp...' or `telnet...', the phone number field is ignored
if present, but must be present as a placeholder.
A description of the conversation that pppd holds with the
Chat Script Particulars
A chat script takes the form of a word to expect the remote end to
send, followed by a word to send in response. Unless a `send' string
ends with \c, pppd will follow it by sending a carriage return
character (ASCII 0x0d).
Chat scripts are `expect send expect send ...' or `expect-send-expect
send ...', where the send following the hyphen is executed if the
preceding expect fails to match received text.
Certain special words may be used in chat script `send' strings to
control the behavior of pppd as it attempts to dial. Both ABORT and
TIMEOUT must be in the `expect' phase of the chat script.
ABORT abort-string If pppd sees abort-string while
executing the remainder of the chat
script, abort the dialing attempt and
note the failure in the log file.
TIMEOUT timeout-time While executing the current chat script,
wait timeout-time seconds for an
expected response before regarding the
dialing attempt as having failed.
Writes have a fixed 60-second timeout.
The expect-send couplet of '"' P_WORD sets the line parity
P_AUTO Set transmission parity based on the parity observed in
characters received in `expect' strings. This is the
P_ZERO Transmit characters with the parity bit set to zero (8
bits, no parity).
P_ONE Transmit characters with the parity bit set to one.
P_EVEN Transmit characters with even parity.
P_ODD Transmit characters with odd parity.
The backquote character (`) surrounds the name of a program that is to
be run before proceeding. If the program is run in the `send' phase
Hewlett-Packard Company - 3 - HP-UX Release 11i: November 2000
of a chat script couplet, its standard output will be sent to the peer
when the program exits. Chat script processing continues when the
In the midst of either an `expect' string or a `send' string, ^x gets
translated into the appropriate control character, and \x gets
translated into x. Other special sequences are:
\s Send or receive a space character (ASCII 0x20).
\t Send or receive a horizontal tab character (ASCII
\n Send or receive a line feed character (ASCII 0x0a).
\r Send or receive a carriage return character (ASCII
\\ Send or receive a backslash character (ASCII 0x5c).
\^ Send or receive a carat character (ASCII 0x5e).
^character Send or receive the single character Ctrl-character
(ASCII 0x00 through 0x1f).
\ddd Send or receive a character, specified in octal
\p Pause for .25 second before proceeding (send only).
\d Delay for two seconds before proceeding (send only).
\K Send a break (.25 second of zero bits).
\M Disable hangups (sets CLOCAL or LNOHANG).
\m enable hangups (unsets CLOCAL or LNOHANG) (the
\c Don't append a carriage return character after
sending the preceding string (send only).
\q Don't print following send strings (e.g. a password)
in any debugging or logging output. Subsequent \q
sequences toggle `quiet' mode.
\A Parse the incoming string as an IP address, written
as four decimal numbers separated by periods, and use
it for the local end of the point-to-point connection
Hewlett-Packard Company - 4 - HP-UX Release 11i: November 2000
In the example below, we call host `everyone' using a Telebit PEP
modem with its DTE interface set at 19200 bps. We call host `nobody'
using a V.32/V.42/V.42bis modem that's capable of driving a 38400 DTE,
and we are connected to host `someone' via a direct cable attached to
/dev/ttya, running asynchronous PPP. We talk to `anyone' via a T1
CSU/DSU attached to port 0 on a SnapLink. And we connect with
pseudo-one via a PPP connection tunneled across a TCP stream to port
77 on realone.somewhere.com.
If we are unsuccessful at connecting with `someone' we will try again
in two seconds. If that attempt fails, we will wait four seconds
before the next attempt; then eight, then sixteen, then thirty two,
then forty seconds. We will continue attempting to contact `someone'
every forty seconds. Our retry intervals and maximum backoff values
for `everyone' and `nobody' are the default `10-3600'.
The notation "" "" means to expect nothing, then send nothing
(followed by a carriage return). The implicit carriage return is
often useful for eliciting a response from a remote system.
# Systems - PPP systems file
everyone Any ACU 19200-PEP 5551212 in:--in: Pwe word: \qfoObar
nobody Any ACU 38400 5551213 in:--in: Pthey word: \qbaZz1ng
someone Any;2-40 cua 38400 0 in:--in: Pthem word: \qmeumBle
anyone Any rsd0a/0 1536000
pseudo-one Any;2-2 tcp/realone.somewhere.com/57
The default retry time and backoff (i.e. Any;10-3600) are appropriate
for use with dialup connections where the PPP connection must be
reestablished as quickly as possible after an interruption but where
it is not desirable to continuously redial a host that may be down. A
much shorter maximum would be appropriate for a dedicated line between
two systems, or where call attempts cost nothing.
Moderate call retry times, such as 60 seconds, work well on systems
that can establish connections in either direction using dialup
modems, to avoid deadlocks waiting for telephone busy signals from
each calling the other at the same time. Because of the difference
between the behaviors of originating and answering modems, the 60-
second clocks will usually start ticking at different times, allowing
one side to call the other without interference. Alternatively,
different call retry times may be specified at either end of a link to
help keep the two systems from calling each other simultaneously.
If you specify host names, be sure that their addresses are available
locally, even with the connection down. If you find that you must
bring up a connection to resolve a domain name, consider using that
Hewlett-Packard Company - 5 - HP-UX Release 11i: November 2000
host's IP address (decimal numbers separated by periods) in both
Filter and Systems instead.
Automatic failover recovery can be arranged between systems that each
have multiple modems, or multiple connection methods. If two systems
are connected via a dedicated line (sync or async), that entry should
be first in Systems, followed by another entry describing an on-demand
dial-up connection. See the HP PPP User Guide for more details.
The file /etc/ppp/Systems should be mode 600.
ppp.Systems was developed by the Progressive Systems.
tun(4), ppp.Auth(4), ppp.Services(4), ppp.Dialers(4), ppp.Filter(4),
ppp.Keys(4), pppd(1), RFC 1548, RFC 1332, RFC 1144, RFC 1055.
Hewlett-Packard Company - 6 - HP-UX Release 11i: November 2000