DLPI Programmer's Guide

50 Chapter 2
DLPI Primitives
The kernel-level interface to the data link layer defines a
STREAMS-based message interface between the provider of the data
link service (DLS provider) and the consumer of the data link service
(DLS user). STREAMS provides the mechanism in which DLPI
primitives may be passed between the DLS user and DLS provider.
Before DLPI primitives can be passed between the DLS user and the
DLS provider, the DLS user must establish a stream to the DLS provider
using open(2). The DLS provider must therefore be configured as a
STREAMS driver. When interactions between the DLS user and DLS
provider have completed, the stream may be closed.
The STREAMS messages used to transport data link service primitives
across the interface have one of the following formats:
One M_PROTO message block followed by zero or more M_DATA
blocks. The M_PROTO message block contains the data link layer
service primitive type and all relevant parameters associated with
the primitive. The M_DATA block(s) contain any DLS user data that
might be associated with the service primitive.
One M_PCPROTO message block containing the data link layer
service primitive type and all relevant parameters associated with
the service primitive.
One or more M_DATA message blocks conveying user data.
The following sections describe the format of the supported primitives.
The primitives are grouped into four categories:
Local Management Service Primitives
Connectionless-mode Service Primitives
Connection-mode Service Primitives
Primitives to handle XID and TEST operations
All of the DLPI extensions listed in this chapter are defined in
<sys/dlpi_ext.h> and <sys/dlpi.h>.