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 written 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)

Referenced By

rdma_cm(7), rdma_get_recv_comp(3), rdma_get_send_comp(3), rdma_post_writev(3), rdma_reg_msgs(3), rdma_reg_write(3).

2010-07-19 Librdmacm Programmer's Manual