Direct Access Transport Library Functions
dat_ep_post_rdma_write(3DAT)
NAME
dat_ep_post_rdma_write - write all data to the remote data
bufferSYNOPSIS
cc [ flag... ] file... -ldat [ library... ]
#include
DAT_RETURN
dat_ep_post_rdma_read (
IN DAT_EP_HANDLE ep_handle,
IN DAT_COUNT num_segments,
IN DAT_LMR_TRIPLET *local_iov,
IN DAT_DTO_COOKIE user_cookie,
IN DAT_RMR_TRIPLET *remote_buffer,
IN DAT_COMPLETION_FLAGS completion_flags
)PARAMETERS
ep_handle Handle for an instance of the Endpoint.
num_segments Number of lmr_triplets in local_iov.
local_iov I/O Vector that specifies the local
buffer from which the data is transferred.user_cookie User-provided cookie that is returned to
the Consumer at the completion of the RDMA Write.remote_buffer A pointer to an RMR Triplet that speci-
fies the remote buffer from which the data is read.completion_flags Flags for posted RDMA read. The default
DAT_COMPLETION_DEFAULT_FLAG is 0x00.
Other values are as follows:Completion Suppression DAT_COMPLETION_SUPPRESS_FLAG
0x01 Suppresssuc-
cess-
fulSunOS 5.11 Last change: 16 Jul 2004 1
Direct Access Transport Library Functionsdat_ep_post_rdma_write(3DAT)
Com-
ple-
tion.Notification of Completion DAT_COMPLETION_UNSIGNALLED_FLAG
0x04 Non-
notificationcom-
ple-
tion. LocalEnd-
point must becon-
fig-
ured forNotif-
i-
ca-
tionSuppres-
sion.Barrier Fence DAT_COMPLETION_BARRIER_FENCE_FLAG
0x08 Request forBar-
rier Fence.DESCRIPTION
The dat_ep_post_rdma_write() function requests the transfer
of all the data specified by the local_iov over the connec-
tion of the ep_handle Endpoint into the remote_buffer.
The num_segments parameter specifies the number of segments
in the local_iov. The local_iov segments are traversed in
the I/O Vector order until all the data is transferred.
SunOS 5.11 Last change: 16 Jul 2004 2
Direct Access Transport Library Functionsdat_ep_post_rdma_write(3DAT)
A Consumer must not modify the local_iov or its content
until the DTO is completed. When a Consumer does not adhereto this rule, the behavior of the Provider and the underly-
ing Transport is not defined. Providers that allow Consumersto get ownership of the local_iov but not the memory it
specifies back after the dat_ep_post_rdma_write() returns
should document this behavior and also specify its support in Provider attributes. This behavior allows Consumers fullcontrol of the local_iov after dat_ep_post_rdma_write()
returns. Because this behavior is not guaranteed by all Pro-
viders, portable Consumers should not rely on this behavior.Consumers should not rely on the Provider copying local_iov
information.The DAT_SUCCESS return of the dat_ep_post_rdma_write() is at
least the equivalent of posting an RDMA Write operation directly by native Transport. Providers should avoidresource allocation as part of dat_ep_post_rdma_write() to
ensure that this operation is nonblocking and thread safe for an UpCall. The completion of the posted RDMA Write is reported to the Consumer asynchronously through a DTO Completion event basedon the specified completion_flags value. The value of
DAT_COMPLETION_UNSIGNALLED_FLAG is only valid if the End-
point Request Completion FlagsDAT_COMPLETION_UNSIGNALLED_FLAG. Otherwise,
DAT_INVALID_PARAMETER is returned.
The user_cookie allows Consumers to have unique identifiers
for each DTO. These identifiers are completely under usercontrol and are opaque to the Provider. There is no require-
ment on the Consumer that the value user_cookie should be
unique for each DTO. The user_cookie is returned to the Con-
sumer in the Completion event for the posted RDMA Write. The operation is valid for the Endpoint in theDAT_EP_STATE_CONNECTED and DAT_EP_STATE_DISCONNECTED states.
If the operation returns successfully for the Endpoint inthe DAT_EP_STATE_DISCONNECTED state, the posted RDMA Write
is immediately flushed to request_evd_handle.
RETURN VALUES
DAT_SUCCESS The operation was successful.
SunOS 5.11 Last change: 16 Jul 2004 3
Direct Access Transport Library Functionsdat_ep_post_rdma_write(3DAT)
DAT_INSUFFICIENT_RESOURCES The operation failed due to
resource limitations.DAT_INVALID_PARAMETER Invalid parameter. For exam-
ple, one of the IOV segments pointed to a memory outside its LMR.DAT_INVALID_HANDLE The ep_handle parameter is
invalid.DAT_INVALID_STATE A parameter is in an invalid
state. Endpoint was not in theDAT_EP_STATE_CONNECTED or
DAT_EP_STATE_DISCONNECTED
state.DAT_LENGTH_ERROR The size of the receiving
buffer is too small for send-
ing buffer data. The size of the remote buffer is too small for the data of the local buffer.DAT_PROTECTION_VIOLATION Protection violation for local
or remote memory access. Pro-
tection Zone mismatch between either an LMR of one of thelocal_iov segments and the
local Endpoint or thermr_context and the remote
Endpoint.DAT_PRIVILEGES_VIOLATION Privileges violation for local
or remote memory access. Either one of the LMRs used inlocal_iov is invalid or does
not have the local readprivileges, or rmr_context
does not have the remote write privileges.USAGE
SunOS 5.11 Last change: 16 Jul 2004 4
Direct Access Transport Library Functionsdat_ep_post_rdma_write(3DAT)
For best RDMA Write operation performance, the Consumershould align each buffer segment of local_iov to the Optimal
Buffer Alignment attribute of the Provider. For portable applications, the Consumer should align each buffer segmentof local_iov to the DAT_OPTIMAL_ALIGNMENT.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | Unsafe |
|_____________________________|_____________________________|
| Standard | uDAPL, 1.1, 1.2 ||_____________________________|_____________________________|
SEE ALSO
libdat(3LIB), attributes(5)SunOS 5.11 Last change: 16 Jul 2004 5
Direct Access Transport Library Functionsdat_ep_post_rdma_write(3DAT)
SunOS 5.11 Last change: 16 Jul 2004 6