ppd(1M) ppd(1M)
NAME
ppd - PPP control daemon
SYNOPSIS
/opt/bin/ppd [-WDT] [-C configfile] [hostname]
DESCRIPTION
ppd manages the establishment and control of a PPP (Point to Point
Protocol) connection between two host entities.
There are two modes of operation, the first is as active process which
actively creates a connection to a host. The name of the host is
looked up in the PPP configuration file /usr/lib/ppp/ppp.config where
it is used to define a connection request. The hostname is normally
also used as an index into the dialer database (which is also used by
UUCP). The information returned is used to try to make a connection to
the remote host. The format and use of the dialer package is described
in the UUCP documentation.
The second mode of the daemon is as a passive process. In this mode,
the daemon is started as the login shell of an inbound connection
request. It then uses its user-id to determine who it was called as.
It then looks up the user name in the PPP configuration file
/usr/lib/ppp/ppp.config. If the user name is not found in the confi-
guration file, then ppd will exit.
An active session is started if a hostname parameter is given. If no
hostname parameter is given then ppd assumes that it is a passive con-
nection attempt.
OPTIONS
-C configfile
The -C parameter changes the name of the configuration file used
by ppd from the default to the one given as a parameter. This is
useful to test a new connection etc.
-T This option enables tracing in ppd. It prints out the protocol
negotiation at connection setup. Diagnostics are sent to standard
error for an active connection and to the file /tmp/ppd.trace for
a passive connection.
-D This option enables debug messages to be sent to the diagnostic
output. Trace messages are also output. If -D is repeated, then
more diagnostics are produced.
-W This option enables the wait for packet mode of ppd. This option
is only valid for an active connection attempt. In this mode ppd
will not try to make a connection immediately but will wait for
an IP packet to be sent to the remote host before trying to make
a connection. When using this mode with the timeout facility (see
later), a "dial on demand" mode of operation can be implemented.
Page 1 Reliant UNIX 5.44 Printed 11/98
ppd(1M) ppd(1M)
Note: When using this mode, The local AND remote IP addresses
must be given for the connection.
CONFIGURATION
The operation of ppd is controlled via a configuration file. This is
normally /usr/lib/ppp/ppd.config but can be changed by the use of the
-C option.
The configuration file consists of entries for protocol specific
parameters and for host specific parameters. All keywords are case
independent. Comments are started by a # character and continue to the
end of the logical line. Long lines can be continued onto the next
line by placing a backslash at the end of the line. A backslash at the
end of a comment line continues the comment line onto the next line.
Items can be quoted by placing them between double quotes.
A host specific entry has the following form.
HOST hostname
host specific key-value pairs
END
The host specific entries are lines of "key value" pairs. Each key-
value pair must be on a separate line. Boolean values can be either
yes or no or true or false. If no boolean value is supplied, it is
defaulted to be true. I.e. to turn on PFC, one can say:
PFC true,
PFC on
or
PFC
If a protocol-id parameter is needed, it can either be the name of the
protocol, i.e. CHAP or LQM, or it can be number which is the protocol
id of the protocol. ppd recognized most but not all the protocol names
specified in RFC1331.
The following host specific keywords are currently defined.
DEVICE host
host is the name to be used when calling the dialup routines. If
no device is specified the current hostname is used instead.
DIALIN [booleanflag]
Incoming connections with this hostname are allowed if this flag
is true.
DIALOUT [booleanflag]
Outgoing connections are allowed to this host if this flag is
true.
Page 2 Reliant UNIX 5.44 Printed 11/98
ppd(1M) ppd(1M)
TIMEOUT secs
If the connection is idle for secs seconds, then the connection
will be closed. This is useful in connection with the -W flag, so
that dial on demand PPP can be implemented. The connection is
said to be idle if no PPP frame is sent or received, it is not
related to IP traffic, thus if a second protocol is transmitting
on the link, the connection will not be closed.
PROTOCOL protocolname [protocolspecificoptions]
This option allows host specific protocol configuration options.
The protocol specific options are interpreted by the protocol
when it is started. This option allows a host to override a gen-
eral protocol parameter. (Examples include the secrethost option
used by CHAP.)
If the keyword is not recognized, then it is assumed to be a pro-
tocol specific keyword and it will be processed when the relevant
protocol is started.
A protocol specific entry can have one of two forms. The first
form has the following format:
PROTOCOL protocolname
protocol specific key-value pairs
END
The protocolname is the name of a protocol i.e. CHAP or LQM or
LCP, or a numeric value for the protocol id of the protocol used
by PPP. The following protocol independent key-value pairs are
defined.
LIBRARY libraryname
The protocol specific code for this protocol is to be found in
the libraryname file. If libraryname is not a full pathname
then it is taken as being relative to the library directory.
ACTIVE
If this parameter is given, the protocol will operate in an
active mode.
PASSIVE
If this parameter is given, the protocol will operate in a pas-
sive mode. The definition of active and passive needs clarifying.
INITIAL
With this flag set the protocol is started when LCP enters the
OPEN state.
Page 3 Reliant UNIX 5.44 Printed 11/98
ppd(1M) ppd(1M)
!INITIAL
If this flag is set, the protocol will only be started if the
peer sends a packet for this protocol. This could be used if the
server can support more than one protocol, but does not know if
the client will want to use the protocol.
DISABLED
If this parameter is supplied, the protocol is disabled. It can-
not be used but it could be loaded into core.
If the keyword is not one of the above, then the keyword is assumed to
be for a protocol specific value and the line will be processed when
the protocol is started.
There is a second form for the protocol parameter and is used when
there are no protocol specific parameters required. This has the form
PROTOCOL protocolid [genericprotocoloptions]
Only the generic protocol options above are recognized in this mode.
The LIBDIR parameter specifies in which directory the protocol exten-
sion libraries are found. By default this is /usr/lib/ppp.
EXTENSIONS
To transport IP frames over PPP, two protocols are required. These are
LCP and IPCP. The IP encapsulation is also handled internally as a
separate protocol. These three protocols are statically linked into
ppd and are always available. Other protocols such as CHAP or PAP can
be added dynamically under the control of the configuration file. Each
additional protocol resides in a dynamically loadable library (which
by default are in /usr/lib/ppp). More than one protocol can reside in
a single library. When ppd is started, all configured protocols are
loaded but are not started.
Page 4 Reliant UNIX 5.44 Printed 11/98
ppd(1M) ppd(1M)
PROTOCOL CONFIGURATION
Each protocol has its own set of configuration parameters. Some of the
more common are:
LCP PROTOCOL OPTIONS
The LCP protocol controls the setup of the link and the arbitration of
various generic options.
MTU This option sets the maximum transmitted packet size. The PPP
default is 1500 bytes. This value can vary this from 100 to 1540
bytes, the higher value can be used if using a bridging protocol.
This value will be negotiated downwards if the peer cannot handle
a larger value.
CHARMAP, RCVMAP, SNDMAP
These options specify the Asynchronous Character Map value. This
is a map of 32 bits that is used to map the first 32 ascii char-
acters to a higher value. This is so that PPP can transfer data
over a non 8bit clean path (such as terminal concentrators that
eat CTRL-S/CTRL-Q). These maps are negotiated between the two
entities and a value is used which is the inclusive-OR of the two
maps. The value passed to charmap can either be a number which
specifies the full map, or it can be a list of characters which
need to be mapped. The characters are the normal characters which
will be converted in the control characters. I.e. to map out
CTRL-S/CTRL-Q, the parameter would be "QS".
CHARMAP sets both the receive and transmit maps, while RCVMAP
sets only the receive map, and SNDMAP sets only the transmit map.
By default the transmit map is zero and the receive map is map
all chars.
charmap 0x000A0000 (hexadecimal)
charmap 000002400000 (octal)
charmap 655360 (decimal)
charmap "QS" (string)
PFC This option is a boolean which controls the use of protocol field
compression on transmission. It is a good idea to enable it on
slow links.
ACFC This option is a boolean which controls the use of Address and
Control field compression on transmission. It is a good idea to
enable it on slow links. By default PFC and ACFC are disabled.
RCVPFC, RCVACFC
These two options control whether to accept PFC and ACFC options.
(This is just used to control the peer, since when a compressed
packet is received, it will always be processed correctly, even
if the option has need negotiated off).
Page 5 Reliant UNIX 5.44 Printed 11/98
ppd(1M) ppd(1M)
AUTH protocol-id
This option informs LCP that the user wants to use an Authoriza-
tion protocol which can be either PAP or CHAP. The further param-
eters for these protocols are defined be a normal protocol
specifier.
QUALITY protocol-id repeat-time
This option enables the use of a link quality protocol. The only
protocol currently defined is LQM. The repeat-time is used to
define the length of time between LQM reports. A value of zero,
means send no reports unless the peer sends one to you.
Really, the AUTH and QUALITY options should not be part of LCP
but they are there for historical reasons. It would be cleaner if
they were handled separately from LCP.
IPCP PROTOCOL OPTIONS
The IPCP controls negotiates IP specific options.
VJC This boolean enables the transmission of Van-Jacobson compressed
TCP frames. This is very useful on slow links as it cuts the
standard TCP/IP header of 40 bytes down to about 4 bytes!
RECVVJC
This option allows the reception of VJ compressed TCP frames. The
default value is true.
ADDR This option sets the local IP address of the connection. If no
value is supplied, PPP will request an address from it's peer.
REMOTEADDR
This specifies the remote IP address of the connection. It is
needed if the peer has not specified an IP address, or when using
the -W flag. Since the daemon must have a destination address so
that the IP layer can route packets through the PPP interface.
This value can be a standard dotted IP address or an IP host
name.
IP PROTOCOL OPTIONS
IP only has one option, and that is the route option. This has the
same syntax as the route(1M) command except that if the forth parame-
ter is not supplied, it is defaulted to be one.
OTHER PROTOCOLS
The LQM protocol is used to monitor the state of the link. It is not
needed in normal use and the current implementation is very basic. The
PAP and CHAP protocols are used to provide authorization of the host
to the peer, see RFC1334 for more details.
Page 6 Reliant UNIX 5.44 Printed 11/98
ppd(1M) ppd(1M)
DIAGNOSTICS
Should be self explanatory. When using an active connection, the diag-
nostic output is stderr. When ppd is being used passively, the diag-
nostic output is sent to the file /tmp/ppd.log.
FILES
/usr/lib/ppp/ppd.config
/tmp/ppd.log
/dev/ppp
SEE ALSO
pppoff(1M), ppp(7).
Page 7 Reliant UNIX 5.44 Printed 11/98