1dat_ep_post_rdma_wriDtier(e3cDtATA)ccess Transport LibrarydFautn_cetpi_opnosst_rdma_write(3DAT)
2
3
4

NAME

6       dat_ep_post_rdma_write - write all data to the remote data buffer
7

SYNOPSIS

9       cc [ flag... ] file... -ldat [ library... ]
10       #include <dat/udat.h>
11
12       DAT_RETURN
13           dat_ep_post_rdma_read (
14           IN    DAT_EP_HANDLE        ep_handle,
15           IN    DAT_COUNT            num_segments,
16           IN    DAT_LMR_TRIPLET      *local_iov,
17           IN    DAT_DTO_COOKIE       user_cookie,
18           IN    DAT_RMR_TRIPLET      *remote_buffer,
19           IN    DAT_COMPLETION_FLAGS completion_flags
20           )
21
22

PARAMETERS

24       ep_handle           Handle for an instance of the Endpoint.
25
26
27       num_segments        Number of lmr_triplets in local_iov.
28
29
30       local_iov           I/O  Vector  that  specifies  the local buffer from
31                           which the data is transferred.
32
33
34       user_cookie         User-provided cookie that is returned to  the  Con‐
35                           sumer at the completion of the RDMA Write.
36
37
38       remote_buffer       A  pointer  to  an  RMR  Triplet that specifies the
39                           remote buffer from which the data is read.
40
41
42       completion_flags    Flags for posted RDMA read. The default DAT_COMPLE‐
43                           TION_DEFAULT_FLAG is 0x00. Other values are as fol‐
44                           lows:
45
46                           Completion Suppression        DAT_COMPLETION_SUP‐
47                                                         PRESS_FLAG
48
49                                                         0x01    Suppress suc‐
50                                                                 cessful  Com‐
51                                                                 pletion.
52
53
54
55                           Notification of Completion    DAT_COMPLE‐
56                                                         TION_UNSIGNALLED_FLAG
57
58                                                         0x04    Non-notifica‐
59                                                                 tion  comple‐
60                                                                 tion.   Local
61                                                                 Endpoint must
62                                                                 be configured
63                                                                 for Notifica‐
64                                                                 tion Suppres‐
65                                                                 sion.
66
67
68
69                           Barrier Fence                 DAT_COMPLETION_BAR‐
70                                                         RIER_FENCE_FLAG
71
72                                                         0x08    Request   for
73                                                                 Barrier
74                                                                 Fence.
75
76
77
78

DESCRIPTION

80       The dat_ep_post_rdma_write() function requests the transfer of all  the
81       data  specified  by  the local_iov over the connection of the ep_handle
82       Endpoint into the remote_buffer.
83
84
85       The num_segments parameter specifies the  number  of  segments  in  the
86       local_iov. The local_iov segments are traversed in the I/O Vector order
87       until all the data is transferred.
88
89
90       A Consumer must not modify the local_iov or its content until  the  DTO
91       is  completed. When a Consumer does not adhere to this rule, the behav‐
92       ior of the Provider  and  the  underlying  Transport  is  not  defined.
93       Providers  that  allow  Consumers to get ownership of the local_iov but
94       not the memory it specifies  back  after  the  dat_ep_post_rdma_write()
95       returns  should  document this behavior and also specify its support in
96       Provider attributes. This behavior allows Consumers full control of the
97       local_iov after dat_ep_post_rdma_write() returns. Because this behavior
98       is not guaranteed by all Providers, portable Consumers should not  rely
99       on  this  behavior.  Consumers  should not rely on the Provider copying
100       local_iov information.
101
102
103       The DAT_SUCCESS return of the dat_ep_post_rdma_write() is at least  the
104       equivalent of posting an RDMA Write operation directly by native Trans‐
105       port.  Providers  should  avoid  resource   allocation   as   part   of
106       dat_ep_post_rdma_write()  to  ensure that this operation is nonblocking
107       and thread safe for an UpCall.
108
109
110       The completion of the posted RDMA Write is  reported  to  the  Consumer
111       asynchronously  through  a  DTO Completion event based on the specified
112       completion_flags value. The value of DAT_COMPLETION_UNSIGNALLED_FLAG is
113       only  valid  if  the  Endpoint  Request  Completion  Flags  DAT_COMPLE‐
114       TION_UNSIGNALLED_FLAG. Otherwise, DAT_INVALID_PARAMETER is returned.
115
116
117       The user_cookie allows Consumers to have unique  identifiers  for  each
118       DTO. These identifiers are completely under user control and are opaque
119       to the Provider. There is no requirement on the Consumer that the value
120       user_cookie  should be unique for each DTO. The user_cookie is returned
121       to the Consumer in the Completion event for the posted RDMA Write.
122
123
124       The operation is valid for the Endpoint in  the  DAT_EP_STATE_CONNECTED
125       and DAT_EP_STATE_DISCONNECTED states. If the operation returns success‐
126       fully for the Endpoint  in  the  DAT_EP_STATE_DISCONNECTED  state,  the
127       posted RDMA Write is immediately flushed to request_evd_handle.
128

RETURN VALUES

130       DAT_SUCCESS                   The operation was successful.
131
132
133       DAT_INSUFFICIENT_RESOURCES    The operation failed due to resource lim‐
134                                     itations.
135
136
137       DAT_INVALID_PARAMETER         Invalid parameter. For  example,  one  of
138                                     the IOV segments pointed to a memory out‐
139                                     side its LMR.
140
141
142       DAT_INVALID_HANDLE            The ep_handle parameter is invalid.
143
144
145       DAT_INVALID_STATE             A parameter is in an invalid state.  End‐
146                                     point  was  not  in the DAT_EP_STATE_CON‐
147                                     NECTED    or    DAT_EP_STATE_DISCONNECTED
148                                     state.
149
150
151       DAT_LENGTH_ERROR              The  size  of the receiving buffer is too
152                                     small for sending buffer data.  The  size
153                                     of the remote buffer is too small for the
154                                     data of the local buffer.
155
156
157       DAT_PROTECTION_VIOLATION      Protection violation for local or  remote
158                                     memory  access.  Protection Zone mismatch
159                                     between either  an  LMR  of  one  of  the
160                                     local_iov segments and the local Endpoint
161                                     or the rmr_context and  the  remote  End‐
162                                     point.
163
164
165       DAT_PRIVILEGES_VIOLATION      Privileges  violation for local or remote
166                                     memory access. Either  one  of  the  LMRs
167                                     used  in local_iov is invalid or does not
168                                     have  the  local  read   privileges,   or
169                                     rmr_context  does  not  have  the  remote
170                                     write privileges.
171
172

USAGE

174       For best RDMA Write operation performance, the  Consumer  should  align
175       each  buffer  segment  of  local_iov  to  the  Optimal Buffer Alignment
176       attribute of the Provider.  For  portable  applications,  the  Consumer
177       should align each buffer segment of local_iov to the DAT_OPTIMAL_ALIGN‐
178       MENT.
179

ATTRIBUTES

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

SEE ALSO

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