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. Third-party drivers and modules are specified by a push option specified for a link (physical device) definition in the PPP configuration (see ppptalk(1M)). The PPP daemon configures the PPP stack with the named drivers and modules by pushing them in the specified order onto the STREAMS stack below the PPP Control Driver (PCID). The pop option may be used to remove drivers and modules. If push or pop options are not specified for a device, the PPP daemon configures the default PPP stack for its type.
The PPP Control Driver (PCID) acts as a communications tunnel between the PPP daemon, the PPP driver and the lower part of the PPP stack. It is used to construct the PPP stack interface to the DLPI modules for synchronous and asynchronous ISDN connections, to the STREAMS tty and serial drivers for asynchronous serial connections, and to third-party framing drivers for asynchronous serial connections over ``intelligent'' serial interfaces.
The PPP STREAMS driver consists of multiplexer, multilink and compression modules. Many of the functions that the PPP driver performed in previous releases, such as authentication, and link and network control, are now performed by the PPP daemon.
RFC 1144, RFC 1332, RFC 1334, RFC 1471, RFC 1473, RFC 1548