ppp(7) ppp(7)
NAME
ppp - PPP streams module
DESCRIPTION
ppp is the driver that handles the demultiplexing of incoming PPP
packets based on the protocol id included in the header of a PPP
packet. The packet is then processed by a protocol-specific function.
If no function is defined for the stream, the packet is passed up
transparently. Most of the work of this driver is in handling the DLPI
interface needed for an IP packet provider.
On output ppp adds the PPP protocol header and passes the packet down
the stream.
When a process first opens the driver, a PPP device block is allocated
to the process, this is associated with the process until the control
stream is closed. A PPP device block has one lower stream to which a
serial line controller stream can be ILINKed. When a process opens
the driver a second time, a second upper stream is created to the same
lower stream. Input and output processing are upper stream dependent.
They can be changed by the use of ioctls.
IOCTLS
The operation of the multiplexer is controlled by a series of ioctls
which pass the following ppioctl union.
typedef unsigned long pppcharmap;
long ppisap;
long ppiindx;
long ppiflags;
long ppimtu;
long ppitimeout;
ppacntt ppicnt;
pppcharmap ppicharmap;
struct ppisetstropts {
long ppssap;
long ppsflags;
} ppistropts;
The following options are permitted.
PPPGETDEV
This command returns the device number of connection in ppiindx.
It is used to make a name for IP connections.
PPPADDSAP
This command adds a SAP (PPP protocol id used on reception to
demultiplex incoming packets) supplied in ppisap to the current
stream. If the SAP is already in use on the current device then
an error results.
Page 1 Reliant UNIX 5.44 Printed 11/98
ppp(7) ppp(7)
PPPDELSAP
This command deletes a given SAP from the current stream. (This
is not currently used by PPD and is not guaranteed to work).
PPPSETSAPFLAGS
This sets the flags for the supplied SAP. The only flag currently
recognized is the PPPSAPVALID flag. If this flag is set, the
SAP is used for demultiplexing, if it is not set, the SAP is
ignored.
PPPGETSAPFLAGS
This command returns the current SAP's flag word.
PPPSETQUEFLAGS
This command sets the current streams flags. The valid flags are
given below:
PPPDATACHAN 0x2
PPPOUTENABLE 0x4
PPPOUTSAPSET 0x8
PPPPFCCOMPRESS 0x10
PPPACFCCOMPRESS 0x20
PPPVJCOMPRESS 0x40
PPPWAITOUTPUT 0x80
PPPOUTSAPENABLE 0x8000
The PPPDATACHAN flag informs the system that this stream will
carry data and that netstat(1M) statistics for the connection
should be kept.
The PPPOUTENABLE flag enables transmission on this stream. If
this bit is not set, then no output will be sent.
The PPPOUTSAPSET flag is used to specify the SAP that is to be
used when a packet is transmitted on the stream. This only needs
to be set if the stream has more than one SAP associated with it.
This bit is only checked if the PPPOUTSAPENABLE is set. If
this bit is not set then the current value of PPPOUTSAPSET is
used.
The PPPPFCCOMPRESS and PPPACFCCOMPRESS flags are used to
enable the compression of PPP frames on compression.
The PPPVJCOMPRESS flag enables the transmission of VJ com-
pressed TCP/IP frames. This bit is only valid for streams with an
IP protocol outbound SAP.
The PPPWAITOUTPUT flag is used by the -W flag of PPD. It
enables a special short circuit of IP frames to be set up. It is
not for normal use.
Page 2 Reliant UNIX 5.44 Printed 11/98
ppp(7) ppp(7)
PPPGETQUEFLAGS
This command returns the current set of stream flags as described
above.
PPPSETDEVFUNC
This command sets the function to be used when data is received.
The currently defined values are:
PPPPROTOFUNC 1
PPPIPDATAFUNC 2
PPPDATAFUNC 3
If no function is specified, the packet is passed up raw. A value
of -1 for the function resets the connection to the default
state.
The PPPPROTOFUNC is used by PPD for most protocols. The inbound
frame is split into two parts: a control message with the length
of a long, which contains the protocol id of the packet received,
and the data part which contains the data part of the packet.
The PPPIPDATAFUNC is used by IP to encapsulate the data in a
DLPI message. PPPDATAFUNC also encapsulates the data in a DLPI
message. The difference is that PPPIPDATAFUNC also handles VJ
compressed packets.
PPPSETTIMER
This option sets the length of time (in seconds) for which the
connection can be idle before it is closed. This is achieved by
sending a HUP message up the controlling stream.
PPPSETCTRL
This command is used to set the controlling stream of the lower
device. This is normally the first stream opened but in some cir-
cumstances this must be changed. The controlling stream is spe-
cial in that if it is closed, all other streams associated with
the current device are disconnected from the lower stream. The
controlling stream also receives all packets with unknown SAPS,
and any hangup messages from the lower stream.
FILES
/dev/ppp
SEE ALSO
ppd(1M).
Page 3 Reliant UNIX 5.44 Printed 11/98