1dat_ep_dup_connect(3DDiArTe)ct Access Transport Library Funcdtaito_nesp_dup_connect(3DAT)
2
3
4
6 dat_ep_dup_connect - establish a connection between the local Endpoint
7 and a remote Endpoint
8
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
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
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
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
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
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
194 libdat(3LIB), attributes(5)
195
196
197
198SunOS 5.11 16 Jul 2004 dat_ep_dup_connect(3DAT)