DL_UDERROR_IND Primitive

Purpose

Informs the data link service (DLS) user that a previously sent DL_UNITDATA_REQ primitive produced an error or could not be delivered.

Structure

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

typedef struct
{
   ulong  dl_primitive;
   ulong  dl_dest_addr_length;
   ulong  dl_dest_addr_offset;
   ulong  dl_unix_errno;
   ulong  dl_errno;
} dl_uderror_ind_t;

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

Description

The DL_UDERROR_IND primitive informs the DLS user that a previously sent DL_UNITDATA_REQ primitive produced an error or could not be delivered. The primitive indicates the destination DLSAP address associated with the failed request, and returns an error value that specifies the reason for failure.

There is, however, no guarantee that such an error report will be generated for all undeliverable data units, because connectionless-mode data transfer is not a confirmed service.

Parameters

Item Description
dl_primitive Specifies the DL_UDERROR_IND primitive.
dl_dest_addr_length Specifies the length of the DLSAP address of the destination DLS user.
dl_dest_addr_offset Indicates where the destination DLSAP address begins. The value of this parameter is the offset from the beginning of the M_PROTO message block.
dl_unix_errno Specifies the operating system code associated with the failure. This value should be nonzero only when the dl_errno parameter is set to DL_SYSERR. It is used to report operating system failures that prevent the processing of a given request or response.
dl_errno Indicates the Data Link Provider Interface (DLPI) error code associated with the failure. Possible values include:
DL_BADADDR
Indicates the DLSAP address information is invalid or is in an incorrect format.
DL_OUTSTATE
Indicates the primitive was issued from an invalid state.
DL_UNSUPPORTED
Indicates the DLS provider does not support the requested priority.
DL_UNDELIVERABLE
Indicates the request was valid but for some reason the DLS provider could not deliver the data unit (for example, due to lack of sufficient local buffering to store the data unit).

States

Item Description
Valid The primitive is valid in the DL_IDLE state.
New The resulting state is unchanged.