NAME¶
rdma_post_write - post an RDMA write work request.
SYNOPSIS¶
#include <rdma/rdma_verbs.h>
int rdma_post_write (struct rdma_cm_id *id, void
*context, void *addr, size_t
length, struct ibv_mr *mr, int
flags, uint64_t remote_addr,
uint32_t rkey);
ARGUMENTS¶
- id
- A reference to a communication identifier where the request
will be posted.
- context
- User-defined context associated with the request.
- addr
- The local address of the source of the write request.
- length
- The length of the write operation.
- mr
- Optional memory region associated with the local
buffer.
- flags
- Optional flags used to control the write operation.
- remote_addr
- The address of the remote registered memory to write
into.
- rkey
- The registered memory key associated with the remote
address.
DESCRIPTION¶
Posts a work request to the send queue of the queue pair associated with the
rdma_cm_id. The contents of the local data buffer will be writen into the
remote memory region.
RETURN VALUE¶
Returns 0 on success, or -1 on error. If an error occurs, errno will be set to
indicate the failure reason.
NOTES¶
For a list of supported flags, see ibv_post_send. Unless inline data is
specified, the local data buffer must have been registered before the write is
issued, and the buffer must remain registered until the write completes. The
remote buffer must always be registered.
Write operations may not be posted to an rdma_cm_id or the corresponding queue
pair until it has been connected.
The user-defined context associated with the write request will be returned to
the user through the work completion wr_id, work request identifier, field.
SEE ALSO¶
rdma_cm(7),
rdma_connect(3),
rdma_accept(3), ibv_post_send(3),
rdma_post_writev(3),
rdma_reg_write(3),
rdma_reg_msgs(3)