DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

ppp(ADMP)


ppp -- Point-to-Point Protocol (PPP) and driver

Description

The Point-to-Point Protocol (PPP) is a method for transmitting datagrams over point-to-point serial links. This implementation of PPP is compliant with RFC 1548, RFC 1332, and RFC 1334 with the following exception: Link Quality Control Protocol negotiation described in RFC 1548 is always rejected. PPP is not IP specific like SLIP, but the current implementation only supports transmission of IP datagrams over serial links.

This PPP implementation involves the following programs, STREAMS drivers, and STREAMS modules:

PPP driver,
ppp(ADMP)

PPP daemon,
pppd(ADMN)

PPP login script,
ppp(ADMN)

pppattach command,
pppattach(ADMN)

STREAMS message to clist conversion driver,
mbcl(ADMP)

asynchronous High-level Data Link Control (HDLC) protocol module,
asyhdlc(ADMP)

packet filter module,
bpf(ADMP)

PPP interface statistics display,
pppstat(ADMN)

There are also several configuration files used in this implementation:

PPP link configuration file,
ppphosts(SFF)

packet filter file,
packetfilter(SFF)

PPP authentication file,
pppauth(SFF)

IP address pool,
ppppool(SFF)

The PPP daemon manages PPP connections. See pppd(ADMN) for a description of how PPP connections are established.

NOTE: This implementation permits the use of an asynchronous driver that can perform the packetization and framing required by PPP to send data over a smart third-party serial port device. Such a driver offloads this processing from PPP onto the hardware. The third-party driver and module(s) are specified in the /etc/pppstack file (see pppstack(SFF)). If this file exists, the PPP daemon configures the PPP stack with the named driver and module(s). If the file does not exist, the PPP daemon configures the default PPP stack by linking the asyhdlc(ADMP) module with the mbcl(ADMP) driver.

PPP driver

The PPP STREAMS driver provides the following functions:

The PPP driver implements a two-level priority scheme in the handling of packets. Given highest priority over other packets, but equal priority amongst themselves, are rlogin, telnet, and ftp control packets. All other packets, including ftp data packets, are handled as a lower priority.

PPP driver MIB support

The PPP driver supports SNMP queries regarding two PPP MIBs (Management Information Bases): Link Control Protocol of PPP MIB and Internet Protocol Network Control Protocol of PPP MIB.

Statistics can be gathered on both MIBs by sending an I_STR ioctl command (see streamio(M)) to the driver. The following structure is passed as an argument to the I_STR ioctl to extract the desired information:

   struct  tablerd {
   	 int     ifIndex;
   	 union {
   		 struct  linkstatus lks;
   		 struct  linkconfig lkc;
   		 struct  secconfig  secc;
   		 struct  secsecret  secs;
   		 struct  ipstatus   ips;
   		 struct  ipconfig   ipc;
   	 } u_val;
   };
The secc and secs structures are not supported at this time. The other four structures are defined in ppp.h. The user must fill the ifIndex element, which specifies the corresponding PPP interface. The return value is stored in u_val.

The following internal ioctl commands, passed to the I_STR ioctl and defined in <netinet/ppp.h>, are supported by the PPP driver to gather MIB statistics:


SIOCGLKS
to extract PPP link status information

SIOCGLKC
to extract PPP link configuration information

SIOCGIPS
to extract PPP IP status information

SIOCGIPC
to extract PPP IP configuration information

Files

/usr/include/sys/netinet/ppp.h
/dev/ppp
/dev/ppcid

See also

asyhdlc(ADMP), hosts(SFF), ifconfig(ADMN), mbcl(ADMP), packetfilter(SFF), ppp(ADMN), pppattach(ADMN), pppauth(SFF), pppd(ADMN), ppphosts(SFF), ppppool(SFF), pppstack(SFF), pppstat(ADMN), slink(ADMN), strcf(SFF), streamio(M)

Standards conformance

PPP is conformant with:

RFC 1144, RFC 1332, RFC 1334, RFC 1471, RFC 1473, RFC 1548


© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003