1dat_cr_accept(3DAT)Direct Access Transport Library Functionsdat_cr_accept(3DAT)
2
3
4

NAME

6       dat_cr_accept - establishes a Connection between the active remote side
7       requesting Endpoint and the passive side local Endpoint
8

SYNOPSIS

10       cc [ flag... ] file... -ldat [ library... ]
11       #include <dat/udat.h>
12
13       DAT_RETURN
14           dat_cr_accept (
15           IN    DAT_CR_HANDLE    cr_handle,
16           IN    DAT_EP_HANDLE    ep_handle,
17           IN    DAT_COUNT        private_data_size,
18           IN const DAT_PVOID     private_data
19           )
20
21

PARAMETERS

23       cr_handle            Handle to an instance of a Connection Request that
24                            the Consumer is accepting.
25
26
27       ep_handle            Handle  for  an  instance of a local Endpoint that
28                            the Consumer is accepting the  Connection  Request
29                            on. If the local Endpoint is specified by the Con‐
30                            nection Request, the ep_handle shall  be  DAT_HAN‐
31                            DLE_NULL.
32
33
34       private_data_size    Size  of  the private_data, which must be nonnega‐
35                            tive.
36
37
38       private_data         Pointer to the private data that  should  be  pro‐
39                            vided  to  the remote Consumer when the Connection
40                            is established. If private_data_size is zero, then
41                            private_data can be NULL.
42
43

DESCRIPTION

45       The  dat_cr_accept()  function  establishes  a  Connection  between the
46       active remote side requesting Endpoint and the passive side local  End‐
47       point.  The  local Endpoint is either specified explicitly by ep_handle
48       or implicitly by a Connection Request. In the second case, ep_handle is
49       DAT_HANDLE_NULL.
50
51
52       Consumers  can specify private data that is provided to the remote side
53       upon Connection establishment.
54
55
56       If the provided local Endpoint does not satisfy the  requested  Connec‐
57       tion  Request, the operation fails without any effect on the local End‐
58       point, Pending Connection Request, private data, or remote Endpoint.
59
60
61       The operation is asynchronous. The successful completion of the  opera‐
62       tion  is  reported  through  a  Connection  Event  of  type DAT_CONNEC‐
63       TION_EVENT_ESTABLISHED on the connect_evd of the local Endpoint.
64
65
66       If the Provider cannot complete the Connection establishment, the  con‐
67       nection  is not established and the Consumer is notified through a Con‐
68       nection Event of type  DAT_CONNECTION_EVENT_ACCEPT_COMPLETION_ERROR  on
69       the  connect_evd  of the local Endpoint. It can be caused by the active
70       side timeout expiration, transport error, or any other reason. If  Con‐
71       nection  is  not  established,  Endpoint  transitions into Disconnected
72       state and all posted Recv DTOs are flushed to its recv_evd_handle.
73
74
75       This operation, if successful, also  destroys  the  Connection  Request
76       instance.  Use  of  the handle of the destroyed cr_handle in any conse‐
77       quent operation fails.
78

RETURN VALUES

80       DAT_SUCCESS              The operation was successful.
81
82
83       DAT_INVALID_HANDLE       The  cr_handle  or  ep_handle   parameter   is
84                                invalid.
85
86
87       DAT_INVALID_PARAMETER    The  private_data_size or private_data parame‐
88                                ter is invalid, out of range, or a combination
89                                of parameters was invalid
90
91

USAGE

93       Consumers  should  be aware that Connection establishment might fail in
94       the following cases: If the accepting Endpoint has an outstanding  RDMA
95       Read  outgoing  attribute larger than the requesting remote Endpoint or
96       outstanding RDMA Read incoming attribute, or if  the  outstanding  RDMA
97       Read  incoming attribute is smaller than the requesting remote Endpoint
98       or outstanding RDMA Read outgoing attribute.
99
100
101       Consumers should set the accepting Endpoint RDMA Reads  as  the  target
102       (incoming) to a number larger than or equal to the remote Endpoint RDMA
103       Read outstanding as the originator (outgoing), and the  accepting  End‐
104       point RDMA Reads as the originator to a number smaller than or equal to
105       the remote Endpoint RDMA Read outstanding as the target. DAT  API  does
106       not define a protocol on how remote peers exchange Endpoint attributes.
107       The exchange of outstanding RDMA Read incoming and outgoing  attributes
108       of  EPs  is left to the Consumer ULP. Consumer can use Private Data for
109       it.
110
111
112       If the Consumer does not care about posting  RDMA  Read  operations  or
113       remote  RDMA Read operations on the connection, it can set the two out‐
114       standing RDMA Read attribute values to 0.
115
116
117       If the Consumer does not set the two outstanding RDMA  Read  attributes
118       of the Endpoint, the Provider is free to pick up any value for default.
119       The Provider can change these default values during connection setup.
120

ATTRIBUTES

122       See attributes(5) for descriptions of the following attributes:
123
124
125
126
127       ┌─────────────────────────────┬─────────────────────────────┐
128       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
129       ├─────────────────────────────┼─────────────────────────────┤
130       │Interface Stability          │Standard: uDAPL, 1.1, 1.2    │
131       ├─────────────────────────────┼─────────────────────────────┤
132       │MT-Level                     │Unsafe                       │
133       └─────────────────────────────┴─────────────────────────────┘
134

SEE ALSO

136       libdat(3LIB), attributes(5)
137
138
139
140SunOS 5.11                        16 Jul 2004              dat_cr_accept(3DAT)
Impressum