rdma_post_writev

Posts a work request for RDMA write operation.

Syntax

#include <rdma/rdma_cma.h>
int rdma_post_writev (struct rdma_cm_id *id, void *context, struct ibv_sge *sgl, int nsge,
int flags, uint64_t remote_addr, uint32_t rkey); 

Description

Posts a work request to the send queue of the queue pair that is associated with the rdma_cm_id identifier. The contents of the local data buffer are written into the remote memory region.

Notes: The remote and local data buffers must be registered before you run the write operation. The remote and local data buffers must be registered until the write operation is completed. The write operation does not post the work request to an rdma_cm_id identifier or the corresponding queue pair until it is connected. The user-defined context that is associated with the write request is returned by using the work completion wr_id identifier, the work request identifier, and the work request identifier field.

Parameters

Item Description
context Specifies the user-defined context that is associated with the request.
flags Specifies the optional flags that are used to control the write operation.
id Specifies a reference to a communication identifier where the request is posted.
nsge Specifies the number of scatter-gather array entries.
remote_addr Specifies the address of the remote registered memory to write the data.
rkey Specifies the registered memory key that is associated with the remote address.
sgl Specifies a scatter-gather list of the source buffer that is related to the write operation.

Return Values

Returns 0 on success, or -1 on error. If an error occurs, the errno is set to indicate the reason for failure.