Requests that the data link service (DLS) provider bind a subsequent data link service access point (DLSAP) to the stream.
The message consists of one
M_PROTO message block, which contains the following
structure:
typedef struct
{
ulong dl_primitive;
ulong dl_subs_sap_offset;
ulong dl_subs_sap_length;
ulong dl_subs_bind_class;
} dl_subs_bind_req_t;
This structure is defined in /usr/include/sys/dlpi.h.
The DL_SUBS_BIND_REQ primitive requests that the DLS provider bind a subsequent DLSAP to the stream. The DLS user must identify the address of the subsequent DLSAP to be bound to the stream.
The 802.2 networks accept either DL_HIERARCHICAL_BIND or DL_PEER_BIND. The dl_subs_sap_length parameter must be 5 (sizeof snap) for hierarchical binds, and dl_subs_sap_offset must point to a complete SNAP. For peer binds, dl_subs_sap_length may be either 1 or 5, and dl_subs_sap_offset must point to either a single byte SAP or a complete SNAP (as in hierarchical binds).
In the case of SNAP binds, DL_PEER_BIND and DL_HIERARCHICAL_BIND are synonymous, and fully interchangeable.
Several distinct SAPs/SNAPs may be bound on any single stream. Since a DSAP address field is limited to 8 bits, a maximum of 256 SAPS/SNAPS can be bound to a single stream. Closing the stream or issuing DL_UNBIND_REQ causes all SAPs and SNAPs to be unbound automatically, or each subs sap can be individually unbound.
DL_ETHER supports only DL_PEER_BIND, and dl_subs_sap_offset must point to an ethertype (dl_subs_sap_length == sizeof(ushort)).
request | sap |
(preferred) |
|
DL_BIND_REQ | 0xaa |
DL_SUBS_BIND_REQ/DL_HIERARCHICAL_BIND | 08.00.07.80.9b |
DL_SUBS_BIND_REQ/DL_HIERARCHICAL_BIND | 08.00.07.80.f3 |
or |
|
(equivalent effect) |
|
DL_BIND_REQ | 0xaa |
DL_SUBS_BIND_REQ/DL_PEER_BIND | 08.00.07.80.9b |
DL_SUBS_BIND_REQ/DL_PEER_BIND | 08.00.07.80.f3 |
or |
|
(equivalent effect) |
|
DL_BIND_REQ | 0xaa |
DL_SUBS_BIND_REQ/DL_HIERARCHICAL_BIND | 08.00.07.80.9b |
DL_SUBS_BIND_REQ/DL_PEER_BIND | 08.00.07.80.f3 |
Valid | The primitive is valid in the DL_IDLE state. |
New | The resulting state is DL_SUBS_BIND_PND. |
Successful | The DL_SUBS_BIND_ACK primitive is sent to the DLS user, and the resulting state is DL_IDLE. |
Unsuccessful | The DL_ERROR_ACK primitive is returned, and the resulting state is unchanged. |
This primitive is part of Base Operating System (BOS) Runtime.
The DL_ERROR_ACK primitive, DL_SUBS_BIND_ACK primitive.