DLPI Programmer's Guide

18 Chapter 1
Introduction to DLPI
The Data Link Layer
Figure 1-1 Abstract View of DLPI
The data link interface is the boundary between the network and the
data link layers of the OSI Reference Model. The network layer entity is
the user of the services of the data link interface (DLS user), and the
data link layer entity is the provider of those services (DLS provider).
This interface consists of a set of primitives that provide access to the
data link layer services, plus the rules for using those primitives (state
transition rules). A data link interface service primitive might request a
particular service or indicate a pending event.
To provide uniformity among the various UNIX system networking
products, an effort is underway to develop service interfaces that map to
the OSI Reference Model. A set of kernel-level interfaces, based on the
STREAMS development environment, constitute a major portion of this
effort. The service primitives that make up these interfaces are defined
as STREAMS messages that are transferred between the user and
provider of the service. DLPI is one such kernel-level interface, and is
targeted for STREAMS protocol modules that either use or provide data
link services. In addition, user programs that wish to access a
STREAMS-based data link provider directly may do so using the
putmsg(2) and getmsg(2) system calls.
Referring to Figure 1-1, the DLS provider is configured as a STREAMS
driver, and the DLS user accesses the provider using open(2) to establish
a stream to the DLS provider. The stream acts as a communication
Data Link
User
Request/Response
Primitives
Indication/Confirmation
Primitives
Data Link
Provider
DLPI