Direct Access Transport Library Functions dat_ep_connect(3DAT)
NAME
dat_ep_connect - establish a connection between the local
Endpoint and a remote EndpointSYNOPSIS
cc [ flag... ] file... -ldat [ library... ]
#include
DAT_RETURN
dat_ep_connect (
IN DAT_EP_HANDLE ep_handle,
IN DAT_IA_ADDRESS_PTR remote_ia_address,
IN DAT_CONN_QUAL remote_conn_qual,
IN DAT_TIMEOUT timeout,
IN DAT_COUNT private_data_size,
IN const DAT_PVOID private_data,
IN DAT_QOS qos,
IN DAT_CONNECT_FLAGS connect_flags
)PARAMETERS
ep_handle Handle for an instance of an Endpoint.
remote_ia_address The Address of the remote IA to which
an Endpoint is requesting a connection.remote_conn_qual Connection Qualifier of the remote IA
from which an Endpoint requests a con-
nection. timeout Duration of time, in microseconds, thata Consumer waits for Connection estab-
lishment. The value ofDAT_TIMEOUT_INFINITE represents no
timeout, indefinite wait. Values must be positive.private_data_size Size of the private_data. Must be non-
negative.private_data Pointer to the private data that should
be provided to the remote Consumer as part of the Connection Request. Ifprivate_data_size is zero, then
private_data can be NULL.
SunOS 5.11 Last change: 16 Jul 2004 1
Direct Access Transport Library Functions dat_ep_connect(3DAT)
qos Requested quality of service of the connection.connect_flags Flags for the requested connection. If
the least significant bit ofDAT_MULTIPATH_FLAG is 0, the Consumer
does not request multipathing. If the least significant bit ofDAT__MULTIPATH_FLAG is 1, the Consumer
requests multipathing. The defaultvalue is DAT_CONNECT_DEFAULT_FLAG,
which is 0.DESCRIPTION
The dat_ep_connect() function requests that a connection be
established between the local Endpoint and a remote End-
point. This operation is used by the active/client side Con-
sumer of the Connection establishment model. The remote End-
point is identified by Remote IA and Remote Connection Qual-
ifier. As part of the successful completion of this operation, the local Endpoint is bound to a Port Qualifier of the local IA. The Port Qualifier is passed to the remote side of the requested connection and is available to the remote Consumer in the Connection Request of theDAT_CONNECTION_REQUEST_EVENT.
The Consumer-provided private_data is passed to the remote
side and is provided to the remote Consumer in the Connec-
tion Request. Consumers can encapsulate any local Endpoint attributes that remote Consumers need to know as part of anupper-level protocol. Providers can also provide a Provider
on the remote side any local Endpoint attributes andTransport-specific information needed for Connection estab-
lishment by the Transport.Upon successful completion of this operation, the local End-
point is transferred intoDAT_EP_STATE_ACTIVE_CONNECTION_PENDING.
Consumers can request a specific value of qos. The Providerspecifies which quality of service it supports in documenta-
tion and in the Provider attributes. If the local Provideror Transport does not support the requested qos, the opera-
tion fails and DAT_MODEL_NOT_SUPPORTED is returned
SunOS 5.11 Last change: 16 Jul 2004 2
Direct Access Transport Library Functions dat_ep_connect(3DAT)
synchronously. If the remote Provider does not support therequested qos, the local Endpoint is automatically transi-
tioned into the DAT_EP_STATE_DISCONNECTED state, the connec-
tion is not established, and the event returned on theconnect_evd_handle is
DAT_CONNECTION_EVENT_NON_PEER_REJECTED. The same
DAT_CONNECTION_EVENT_NON_PEER_REJECTED event is returned if
the connection cannot be established for all reasons of not establishing the connection, except timeout, remote host notreachable, and remote peer reject. For example, remote Con-
sumer is not listening on the requested Connection Qualif-
ier, Backlog of the requested Service Point is full, and Transport errors. In this case, the local Endpoint isautomatically transitioned into DAT_EP_STATE_DISCONNECTED
state. The acceptance of the requested connection by the remote Consumer is reported to the local Consumer through aDAT_CONNECTION_EVENT_ESTABLISHED event on the
connect_evd_handle of the local Endpoint and the local End-
point is automatically transitioned into aDAT_EP_STATE_CONNECTED state.
The rejection of the connection by the remote Consumer is reported to the local Consumer through aDAT_CONNECTION_EVENT_PEER_REJECTED event on the
connect_evd_handle of the local Endpoint and the local End-
point is automatically transitioned into aDAT_EP_STATE_DISCONNECTED state.
When the Provider cannot reach the remote host or the remote host does not respond within the Consumer requested Timeout,a DAT_CONNECTION_EVENT_UNREACHABLE event is generated on the
connect_evd_handle of the Endpoint. The Endpoint transitions
into a DAT_EP_STATE_DISCONNECTED state.
If the Provider can locally determine that theremote_ia_address is invalid, or that the remote_ia_address
cannot be converted to a Transport-specific address, the
operation can fail synchronously with a DAT_INVALID_ADDRESS
return. The local Endpoint is automatically transitioned into aDAT_EP_STATE_CONNECTED state when a Connection Request
accepted by the remote Consumer and the Provider completesthe Transport-specific Connection establishment. The local
Consumer is notified of the established connection through aSunOS 5.11 Last change: 16 Jul 2004 3
Direct Access Transport Library Functions dat_ep_connect(3DAT)
DAT_CONNECTION_EVENT_ESTABLISHED event on the
connect_evd_handle of the local Endpoint.
When the timeout expired prior to completion of the Connec-
tion establishment, the local Endpoint is automaticallytransitioned into a DAT_EP_STATE_DISCONNECTED state and the
local Consumer through a DAT_CONNECTION_EVENT_TIMED_OUT
event on the connect_evd_handle of the local Endpoint.
RETURN VALUES
DAT_SUCCESS The operation was successful.
DAT_INSUFFICIENT_RESOURCES The operation failed due to
resource limitations.DAT_INVALID_PARAMETER Invalid parameter.
DAT_INVALID_ADDRESS Invalid address.
DAT_INVALID_HANDLE Invalid DAT handle; Invalid
Endpoint handle.DAT_INVALID_STATE Parameter in an invalid state.
Endpoint was not inDAT_EP_STATE_UNCONNECTED
state.DAT_MODEL_NOT_SUPPORTED The requested Model was not
supported by the Provider. For example, the requested qos was not supported by the local Provider.USAGE
It is up to the Consumer to negotiate outstanding RDMA Read incoming and outgoing with a remote peer. The outstanding RDMA Read outgoing attribute should be smaller than the remote Endpoint outstanding RDMA Read incoming attribute. If this is not the case, Connection establishment might fail. DAT API does not define a protocol on how remote peers exchange Endpoint attributes. The exchange of outstanding RDMA Read incoming and outgoing attributes of EPs is left toSunOS 5.11 Last change: 16 Jul 2004 4
Direct Access Transport Library Functions dat_ep_connect(3DAT)
the Consumer ULP. The Consumer can use Private Data for it.If the Consumer does not care about posting RDMA Read opera-
tions or remote RDMA Read operations on the connection, it can set the two outstanding RDMA Read attribute values to 0. If the Consumer does not set the two outstanding RDMA Read attributes of the Endpoint, the Provider is free to pick up any value for default. The Provider is allowed to change these default values during connection setup.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | Unsafe |
|_____________________________|_____________________________|
| Standard | uDAPL, 1.1, 1.2 ||_____________________________|_____________________________|
SEE ALSO
libdat(3LIB), attributes(5)SunOS 5.11 Last change: 16 Jul 2004 5