DL_ATTACH_REQ Primitive

Purpose

Requests that the data link service (DLS) provider associate a physical point of attachment (PPA) with a stream.

Structure

The message consists of one M_PROTO message block, which contains the following structure:

typedef struct
{
   ulong    dl_primitive;
   ulong    dl_ppa;
} dl_attach_req_t;

This structure is defined in /usr/include/sys/dlpi.h.

Description

The DL_ATTACH_REQ primitive requests that the DLS provider associate a PPA with a stream. The DL_ATTACH_REQ primitive is needed for style 2 DLS providers to identify the physical medium over which communication is to transpire.

Parameters

Item Description
dl_primitive Specifies the DL_ATTACH_REQ message.
dl_ppa Specifies the identifier of the PPA to be associated with the stream. The dlpi driver is implemented a style 2 provider

The value of the dl_ppa parameter must include identification of the communication medium. For media that multiplex multiple channels over a single physical medium, this identifier should also specify a specific communication channel (where each channel on a physical medium is associated with a separate PPA).

Note: Because of the provider-specific nature of this value, DLS user software that is to be protocol independent should avoid hard-coding the PPA identifier. The DLS user should retrieve the necessary PPA identifier from some other entity (such as a management entity) and insert it without inspection into the DL_ATTACH_REQ primitive.

States

Item Description
Valid The primitive is valid in the DL_UNATTACHED state.
New The resulting state is DL_ATTACH_PENDING.

Acknowledgments

Item Description
Successful The DL_OK_ACK primitive is sent to the DLS user resulting in the DL_UNBOUND state.
Unsuccessful The DL_ERROR_ACK primitive is returned and the resulting state is unchanged.

Error Codes

Item Description
DL_ACCESS Indicates the DLS user does not have proper permission to use the requested PPA.
DL_BADPPA Indicates the specified PPA is invalid.
DL_OUTSTATE Indicates the primitive was issued from an invalid state.
DL_SYSERR Indicates a system error occurred. The system error is indicated in the DL_ERROR_ACK primitive.