1dat_ep_dup_connect(3DDiArTe)ct Access Transport Library Funcdtaito_nesp_dup_connect(3DAT)
2
3
4

NAME

6       dat_ep_dup_connect  - establish a connection between the local Endpoint
7       and a remote Endpoint
8

SYNOPSIS

10       cc [ flag... ] file... -ldat [ library... ]
11       #include <dat/udat.h>
12
13       DAT_RETURN
14           dat_ep_dup_connect (
15           IN    DAT_EP_HANDLE    ep_handle,
16           IN    DAT_EP_HANDLE    dup_ep_handle,
17           IN    DAT_TIMEOUT      timeout,
18           IN    DAT_COUNT        private_data_size,
19           IN const  DAT_PVOID    private_data,
20           IN    DAT_QOS          qos
21           )
22
23

PARAMETERS

25       ep_handle            Handle for an instance of an Endpoint.
26
27
28       dup_ep_handle        Connected  local   Endpoint   that   specifies   a
29                            requested connection remote end.
30
31
32       timeout:             Duration  of time, in microseconds, that Consumers
33                            wait for Connection establishment.  The  value  of
34                            DAT_TIMEOUT_INFINITE represents no timeout, indef‐
35                            inite wait. Values must be positive.
36
37
38       private_data_size    Size of private_data. Must be nonnegative.
39
40
41       private_data         Pointer to the private data that  should  be  pro‐
42                            vided  to  the remote Consumer as part of the Con‐
43                            nection Request.  If  private_data_size  is  zero,
44                            then private_data can be NULL.
45
46
47       qos                  Requested Quality of Service of the connection.
48
49

DESCRIPTION

51       The  dat_ep_dup_connect() function requests that a connection be estab‐
52       lished between the local Endpoint and a remote Endpoint. This operation
53       is used by the active/client side Consumer of the connection model. The
54       remote Endpoint is identified by the dup_ep_handle. The remote  end  of
55       the  requested  connection  shall  be the same as the remote end of the
56       dup_ep_handle. This is equivalent to requesting  a  connection  to  the
57       same  remote  IA,  Connection  Qualifier, and connect_flags as used for
58       establishing the connection on duplicated Endpoints and  following  the
59       same redirections.
60
61
62       Upon  establishing  the  requested connection as part of the successful
63       completion of this operation, the local Endpoint is  bound  to  a  Port
64       Qualifier  of  the local IA. The Port Qualifier is passed to the remote
65       side of the requested connection and is available to  the  remote  Con‐
66       sumer in the Connection Request of the DAT_CONNECTION_REQUEST_EVENT.
67
68
69       The  Consumer-provided private_data is passed to the remote side and is
70       provided to the remote Consumer in the  Connection  Request.  Consumers
71       can  encapsulate  any  local  Endpoint attributes that remote Consumers
72       need to know as part of an upper-level  protocol.  Providers  can  also
73       provide a Provider on the remote side any local Endpoint attributes and
74       Transport-specific information needed for Connection  establishment  by
75       the Transport.
76
77
78       Upon  successful  completion  of  this operation, the local Endpoint is
79       transferred into DAT_EP_STATE_ACTIVE_CONNECTION_PENDING.
80
81
82       Consumers can request a specific value of qos. The  Provider  specifies
83       which  Quality  of  Service  it  supports  in  documentation and in the
84       Provider attributes. If the local Provider or Transport does  not  sup‐
85       port the requested qos, the operation fails and DAT_MODEL_NOT_SUPPORTED
86       is returned synchronously. If the remote Provider does not support  the
87       requested  qos, the local Endpoint is automatically transitioned into a
88       DAT_EP_STATE_UNDISCONNECTED state, the connection is  not  established,
89       and  the  event  returned  on  the  connect_evd_handle  is  DAT_CONNEC‐
90       TION_EVENT_NON_PEER_REJECTED.        The        same        DAT_CONNEC‐
91       TION_EVENT_NON_PEER_REJECTED  event is returned if connection cannot be
92       established for all reasons for not establishing the connection, except
93       timeout,  remote  host not reachable, and remote peer reject. For exam‐
94       ple, remote host is not reachable, remote Consumer is not listening  on
95       the  requested  Connection  Qualifier, Backlog of the requested Service
96       Point is full, and Transport errors. In this case, the  local  Endpoint
97       is automatically transitioned into a DAT_EP_STATE_UNDISCONNECTED state.
98
99
100       The  acceptance  of  the requested connection by the remote Consumer is
101       reported to the local Consumer  through  a  DAT_CONNECTION_EVENT_ESTAB‐
102       LISHED event on the connect_evd_handle of the local Endpoint.
103
104
105       The  rejection  of the connection by the remote Consumer is reported to
106       the local Consumer through a  DAT_CONNECTION_EVENT_PEER_REJECTED  event
107       on  the connect_evd_handle of the local Endpoint and the local Endpoint
108       is automatically transitioned into a DAT_EP_STATE_UNDISCONNECTED state.
109
110
111       When the Provider cannot reach the remote host or the remote host  does
112       not  respond  within  the  Consumer-requested  timeout,  a  DAT_CONNEC‐
113       TION_EVENT_UNREACHABLE is generated on the  connect_evd_handle  of  the
114       Endpoint.  The  Endpoint  transitions  into a DAT_EP_STATE_DISCONNECTED
115       state.
116
117
118       The   local   Endpoint   is   automatically   transitioned    into    a
119       DAT_EP_STATE_CONNECTED  state  when a Connection Request is accepted by
120       the remote Consumer and the Provider completes  the  Transport-specific
121       Connection  establishment. The local Consumer is notified of the estab‐
122       lished connection through a DAT_CONNECTION_EVENT_ESTABLISHED  event  on
123       the connect_evd_handle of the local Endpoint.
124
125
126       When  the  timeout expired prior to completion of the Connection estab‐
127       lishment, the local  Endpoint  is  automatically  transitioned  into  a
128       DAT_EP_STATE_UNDISCONNECTED  state  and  the  local  Consumer through a
129       DAT_CONNECTION_EVENT_TIMED_OUT event on the connect_evd_handle  of  the
130       local Endpoint.
131

RETURN VALUES

133       DAT_SUCCESS                   The operation was successful.
134
135
136       DAT_INSUFFICIENT_RESOURCES    The operation failed due to resource lim‐
137                                     itations.
138
139
140       DAT_INVALID_PARAMETER         Invalid parameter.
141
142
143       DAT_INVALID_HANDLE            The ep_handle or dup_ep_handle  parameter
144                                     is invalid.
145
146
147       DAT_INVALID_STATE             A parameter is in an invalid state.
148
149
150       DAT_MODEL_NOT_SUPPORTED       The  requested  Model is not supported by
151                                     the Provider. For example, requested  qos
152                                     was not supported by the local Provider.
153
154

USAGE

156       It  is  up  to the Consumer to negotiate outstanding RDMA Read incoming
157       and outgoing with a remote peer. The  outstanding  RDMA  Read  outgoing
158       attribute  should  be smaller than the remote Endpoint outstanding RDMA
159       Read incoming attribute. If this is not the case, connection establish‐
160       ment might fail.
161
162
163       DAT  API  does  not define a protocol on how remote peers exchange End‐
164       point attributes. The exchange of outstanding RDMA  Read  incoming  and
165       outgoing  attributes  of  EPs is left to the Consumer ULP. The Consumer
166       can use Private Data for it.
167
168
169       If the Consumer does not care about posting  RDMA  Read  operations  or
170       remote  RDMA Read operations on the connection, it can set the two out‐
171       standing RDMA Read attribute values to 0.
172
173
174       If the Consumer does not set the two outstanding RDMA  Read  attributes
175       of  the  Endpoint,  the  Provider  is  free  to pick up any values as a
176       default. The Provider is allowed to change these default values  during
177       connection setup.
178

ATTRIBUTES

180       See attributes(5) for descriptions of the following attributes:
181
182
183
184
185       ┌─────────────────────────────┬─────────────────────────────┐
186       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
187       ├─────────────────────────────┼─────────────────────────────┤
188       │Interface Stability          │Standard: uDAPL, 1.1, 1.2    │
189       ├─────────────────────────────┼─────────────────────────────┤
190       │MT-Level                     │Unsafe                       │
191       └─────────────────────────────┴─────────────────────────────┘
192

SEE ALSO

194       libdat(3LIB), attributes(5)
195
196
197
198SunOS 5.11                        16 Jul 2004         dat_ep_dup_connect(3DAT)
Impressum