Requests that the data link service (DLS) provider bind a data link service access point (DLSAP) to a stream.
The message consists of one M_PROTO message block, which contains the following structure:
typedef struct
{
ulong dl_primitive;
ulong dl_sap;
ulong dl_max_conind;
ushort dl_service_mode;
ushort dl_conn_mgmt;
ulong dl_xidtest_flg;
} dl_bind_req_t;
This structure is defined in /usr/include/sys/dlpi.h.
A stream is active when the DLS provider can transmit and receive protocol data units destined to or originating from the stream. The physical point of attachment (PPA) associated with each stream must be initialized when the DL_BIND_REQ primitive has been processed.The PPA is initialized when the DL_BIND_ACK primitive is received. If the PPA cannot be initialized, the DL_BIND_REQ primitive fails.
Item | Description |
---|---|
dl_primitive | Specifies the DL_BIND_REQ primitive. |
dl_sap | Identifies the DLSAP to be bound to the Data Link Provider
Interface (DLPI) stream. This parameter can contain either the full
DLSAP address or a portion of the address sufficient to uniquely identify
the DLSAP. The DL_BIND_ACK primitive returns the full address
of the bound DLSAP. The dl_sap parameter is a ulong containing
and ethertype for DL_ETHER, or a single byte SAP for 802.2 networks.
The DLS provider adheres to the following rules when it binds a DLSAP address:
The DLS provider may not be able to bind the specified DLSAP address for the following reasons:
Note: Because of the provider-specific nature of the DLSAP
address, protocol-independent DLS user software should not have this
value hard-coded. The DLS user should retrieve the necessary DLSAP
address from the appropriate header file for that protocol and insert
it without inspection into the DL_BIND_REQ primitive.
|
dl_max_conind | Specifies the maximum number of outstanding DL_CONNECT_IND primitives
allowed on the DLPI stream. This field controls whether a connection-oriented
stream will accept incoming connection indications. This parameter
can have one of the following values:
The DLS provider may not be able to support the value supplied in the dl_max_conind parameter for the following reasons:
Note: This field is ignored in connectionless-mode service.
|
dl_service_mode | Specifies the following modes of service for this stream:
If the DLS provider does not support the requested service mode, a DL_ERROR_ACK primitive is generated. This primitive conveys a value of DL_UNSUPPORTED. |
dl_conn_mgmt | This field is ignored. |
dl_xidtest_flg | Indicates to the DLS provider that XID or test responses
for this stream are to be automatically generated by the DLS provider.
The xidtest_flg parameter contains a bit mask that can specify
either, both, or neither of the following values:
The DLS provider supports automatic handling of XID and test responses. If an automatic XID or test response has been requested, the DLS provider does not generate DL_XID_IND or DL_TEST_IND primitives. Therefore, if the provider receives an XID request (DL_XID_REQ) or test request (DL_TEST_REQ) from the DLS user, the DLS provider returns a DL_ERROR_ACK primitive, specifying a DL_XIDAUTO or DL_TESTAUTO error code, respectively. If no value is specified in the dl_xidtest_flg parameter, the DLS provider does not automatically generate XID and test responses. The value informs the DLS provider that the DLS user will be handling all XID and TEST traffic. A nonzero value indicates the DLS provider is responsible for either XID or TEST traffic or both. If the driver handles XID or TEST, the DLS user will not receive any incoming XID or TEST frames, nor be allowed to send them. |
Item | Description |
---|---|
Valid | The primitive is valid in the DL_UNBOUND state. |
New | The resulting state is DL_BIND_PENDING. |
Item | Description |
---|---|
Successful | The DL_BIND_ACK primitive is sent to the DLS user. The resulting state is DL_IDLE. |
Unsuccessful | The DL_ERROR_ACK primitive is returned. The resulting state is unchanged. |
Item | Description |
---|---|
DL_ACCESS | Indicates the DLS user does not have proper permission to use the requested DLSAP address. |
DL_BADADDR | Indicates the DLSAP address information is invalid or is in an incorrect format. |
DL_BOUND | Indicates the DLS user attempted to bind a second stream to a DLSAP with a dl_max_conind parameter value greater than 0, or the DLS user attempted to bind a second connection management stream to the PPA. |
DL_INITFAILED | Indicates the automatic initialization of the PPA failed. |
DL_NOADDR | Indicates the DLS provider cannot allocate a DLSAP address for this stream. |
DL_NOAUTO | Indicates automatic handling of XID and test responses is not supported. |
DL_NOTINIT | Indicates the PPA was not initialized prior to this request. |
DL_NOTESTAUTO | Indicates automatic handling of test responses is not supported. |
DL_NOXIDAUTO | Indicates automatic handling of XID responses is not supported. |
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. |
DL_UNSUPPORTED | Indicates the DLS provider does not support the requested service mode on this stream. |