Direct Access Transport Library Functions
datepdupconnect(3DAT)
NAME
datepdupconnect - establish a connection between the
local Endpoint and a remote Endpoint
SYNOPSIS
cc [ flag... ] file... -ldat [ library... ]
#include
DATRETURN
datepdupconnect (
IN DATEPHANDLE ephandle,
IN DATEPHANDLE dupephandle,
IN DATIMEOUT timeout,
IN DATCOUNT privatedatasize,
IN const DATPVOID privatedata,
IN DATQOS qos
)
PARAMETERS
ephandle Handle for an instance of an Endpoint.
dupephandle Connected local Endpoint that specifies
a requested connection remote end.
timeout: Duration of time, in microseconds, that
Consumers wait for Connection estab-
lishment. The value of
DATIMEOUTINFINITE represents no
timeout, indefinite wait. Values must
be positive.
privatedatasize Size of privatedata. Must be nonnega-
tive.
privatedata Pointer to the private data that should
be provided to the remote Consumer as
part of the Connection Request. If
privatedatasize is zero, then
privatedata can be NUL.
qos Requested Quality of Service of the
connection.
SunOS 5.11 Last change: 16 Jul 2004 1
Direct Access Transport Library Functions
datepdupconnect(3DAT)
DESCRIPTION
The datepdupconnect() 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 model. The remote Endpoint is iden-
tified by the dupephandle. The remote end of the requested
connection shall be the same as the remote end of the
dupephandle. This is equivalent to requesting a connection
to the same remote IA, Connection Qualifier, and
connectflags as used for establishing the connection on
duplicated Endpoints and following the same redirections.
Upon establishing the requested connection as part of the
successful completion of this operation, the local Endpoint
is bound to a Port Qualifier of the local IA. The Port Qual-
ifier is passed to the remote side of the requested connec-
tion and is available to the remote Consumer in the Connec-
tion Request of the DATCONECTIONREQUESTEVENT.
The Consumer-provided privatedata 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 an
upper-level protocol. Providers can also provide a Provider
on the remote side any local Endpoint attributes and
Transport-specific information needed for Connection estab-
lishment by the Transport.
Upon successful completion of this operation, the local End-
point is transferred into
DATEPSTATEACTIVECONECTIONPENDING.
Consumers can request a specific value of qos. The Provider
specifies which Quality of Service it supports in documenta-
tion and in the Provider attributes. If the local Provider
or Transport does not support the requested qos, the opera-
tion fails and DATMODELNOTSUPORTED is returned synchro-
nously. If the remote Provider does not support the
requested qos, the local Endpoint is automatically transi-
tioned into a DATEPSTATEUNDISCONECTED state, the connec-
tion is not established, and the event returned on the
connectevdhandle is
DATCONECTIONEVENTNONPEREJECTED. The same
DATCONECTIONEVENTNONPEREJECTED event is returned if
connection cannot be established for all reasons for not
establishing the connection, except timeout, remote host not
reachable, and remote peer reject. For example, remote host
SunOS 5.11 Last change: 16 Jul 2004 2
Direct Access Transport Library Functions
datepdupconnect(3DAT)
is not reachable, remote Consumer is not listening on the
requested Connection Qualifier, Backlog of the requested
Service Point is full, and Transport errors. In this case,
the local Endpoint is automatically transitioned into a
DATEPSTATEUNDISCONECTED state.
The acceptance of the requested connection by the remote
Consumer is reported to the local Consumer through a
DATCONECTIONEVENTESTABLISHED event on the
connectevdhandle of the local Endpoint.
The rejection of the connection by the remote Consumer is
reported to the local Consumer through a
DATCONECTIONEVENTPEREJECTED event on the
connectevdhandle of the local Endpoint and the local End-
point is automatically transitioned into a
DATEPSTATEUNDISCONECTED state.
When the Provider cannot reach the remote host or the remote
host does not respond within the Consumer-requested timeout,
a DATCONECTIONEVENTUNREACHABLE is generated on the
connectevdhandle of the Endpoint. The Endpoint transitions
into a DATEPSTATEDISCONECTED state.
The local Endpoint is automatically transitioned into a
DATEPSTATECONECTED state when a Connection Request is
accepted by the remote Consumer and the Provider completes
the Transport-specific Connection establishment. The local
Consumer is notified of the established connection through a
DATCONECTIONEVENTESTABLISHED event on the
connectevdhandle of the local Endpoint.
When the timeout expired prior to completion of the Connec-
tion establishment, the local Endpoint is automatically
transitioned into a DATEPSTATEUNDISCONECTED state and
the local Consumer through a DATCONECTIONEVENTIMEDOUT
event on the connectevdhandle of the local Endpoint.
RETURN VALUES
DATSUCES The operation was successful.
DATINSUFICIENTRESOURCES The operation failed due to
resource limitations.
SunOS 5.11 Last change: 16 Jul 2004 3
Direct Access Transport Library Functions
datepdupconnect(3DAT)
DATINVALIDPARAMETER Invalid parameter.
DATINVALIDHANDLE The ephandle or dupephandle
parameter is invalid.
DATINVALIDSTATE A parameter is in an invalid
state.
DATMODELNOTSUPORTED The requested Model is not
supported by the Provider. For
example, requested qos was not
supported by the local Pro-
vider.
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 to
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 values as a default. The Provider is allowed to change
these default values during connection setup.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
SunOS 5.11 Last change: 16 Jul 2004 4
Direct Access Transport Library Functions
datepdupconnect(3DAT)
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Standard: uDAPL, 1.1, 1.2
MT-Level Unsafe
SEE ALSO
libdat(3LIB), attributes(5)
SunOS 5.11 Last change: 16 Jul 2004 5
Direct Access Transport Library Functions
datepdupconnect(3DAT)
SunOS 5.11 Last change: 16 Jul 2004 6
|