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 must define and manage its DLSAP
address space.
- The DLS provider allows the same DLSAP to be bound
to multiple streams.
The DLS provider may not be able to bind the
specified DLSAP address for the following reasons:
- The DLS provider statically associated a specific
DLSAP with each stream. The value of the dl_sap parameter
is ignored by the DLS provider and the DL_BIND_ACK primitive
returns the DLSAP address that is already associated with the stream.
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:
- 0
- The stream cannot accept any DL_CONNECT_IND
primitives.
- >0
- The DLS user accepts the specified number of DL_CONNECT_IND primitives before having to respond with a DL_CONNECT_RES or DL_DISCONNECT_REQ primitive.
The DLS provider may not be able to support the
value supplied in the dl_max_conind parameter for
the following reasons:
- If the provider cannot support the specified number
of outstanding connect indications, it should set the value down to a number
it can support.
- Only one stream that is bound to the indicated DLSAP
can have an allowed number of maximum outstanding connect indications greater
than 0. If a DL_BIND_REQ primitive specifies a value
greater than 0, but another stream has already bound itself to the DLSAP
with a value greater than 0, the request fails. The DLS provider then sets
the dl_errno parameter of the DL_ERROR_ACK primitive to a value of DL_BOUND.
- A connection cannot be accepted on a stream bound
with a dl_max_conind greater than zero. No other
streams in which the value of the dl_max_conind parameter
is greater than 0 can be bound to the same DLSAP. This restriction prevents
more than one stream bound to the same DLSAP from receiving connect indications
and accepting connections.
- A DLS user should always be able to request a dl_max_conind parameter value of 0, since this indicates
to the DLS provider that the stream will only be used to originate connect
requests.
- A stream in which the dl_max_conind parameter has a negotiated value greater than 0 cannot originate connect
requests.
Note
This field is ignored in connectionless-mode service. |
dl_service_mode |
Specifies the following modes of service for this stream:
- DL_CODLS
- Selects the connection-oriented only mode. The connection primitives
will be accepted. In addition, an arbitrary number of streams may bind to
the same dl_sap on the same interface, as long as
dl_max_conind is zero. No incoming datagram traffic
will be sent up this stream. Such frames will either be routed to a DL_CLDLS stream, or silently discarded.
- DL_CLDLS
- Selects the connectionless only mode. The connection primitives will
not be accepted. This mode selects exclusive control of connectionless traffic.
All datagrams (DL_UNITDATA_IND) from any remote station
addressed to this dl_sap will be received on this
stream, even if another stream is currently connected on the same dl_sap. Only one stream per interface may bind DL_CLDS.
- DL_CLDLS|DL_CODLS
- Selects the connection-oriented service augmented with conectionless
traffic. An arbitrary number of streams may bind to the same dl_sap on the same interface. This mode is mutually exclusive with DL_CLDLS.
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_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:
- DL_AUTO_XID
- Indicates to the DLS provider that automatic responses to XID commands
are to be generated.
- DL_AUTO_TEST
- Indicates to the DLS provider that automatic responses to test commands
are to be generated.
- DL_AUTO_XID|DL_AUTO_TEST
- Indicates to the DLS provider that automatic responses to both XID
commands and test commands are to be generated.
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. |