Conveys one data link service data unit (DLSDU) from the data link service (DLS) user to the DLS provider for transmission to a peer DLS user.
The message consists of one M_PROTO message block, which contains the following structure, followed by one or more M_DATA blocks containing at least one byte of data:
typedef struct { ulong dl_primitive; ulong dl_dest_addr_length; ulong dl_dest_addr_offset; dl_priority_t dl_priority; } dl_unitdata_req_t;
This structure is defined in /usr/include/sys/dlpi.h.
The DL_UNITDATA_REQ primitive conveys one DLSDU from the DLS user to the DLS provider for transmission to a peer DLS user.
The amount of user data that may be transferred in a single DLSDU is limited. This limit is conveyed by the dl_max_sdu parameter of the DL_INFO_ACK primitive.
Because connectionless-mode data transfer is an unacknowledged service, the DLS provider makes no guarantees of delivery of connectionless DLSDUs. It is the responsibility of the DLS user to do any necessary sequencing or retransmissions of DLSDUs in the event of a presumed loss.
Valid | The primitive is valid in the DL_IDLE state. |
New | The resulting state is unchanged. |
If the DLS provider accepts the data for transmission, there is no response. This does not, however, guarantee that the data will be delivered to the destination DLS user, because the connectionless-mode data transfer is not a confirmed service.
If the request is erroneous, the DL_UDERROR_IND primitive is returned, and the resulting state is unchanged.
If for some reason the request cannot be processed, the DLS provider may generate a DL_UDERROR_IND primitive to report the problem. 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.
This primitive is part of Base Operating System (BOS) Runtime.
The DL_INFO_ACK primitive, DL_BIND_ACK primitive, DL_UDERROR_IND primitive.