rdma_post_readv

Posts a work request to the send queue for RDMA read operation.

Syntax

#include <rdma/rdma_cma.h>
int rdma_post_readv (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 remote memory region are read into the local data buffer.

Notes: The remote and local data buffers must be registered before running the read operation and the buffers must be registered until the read operation is completed. The read operation does not post the work request to anrdma_cm_id identifier or the corresponding queue pair until the connection is established. The user-defined context that is associated with the read 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 is used to control the read operation.
id Specifies a reference to a communication identifier where the request is posted.
nsge Specifies the number of scatter-gather array entries that are present.
rkey Specifies the registered memory key that is associated with the remote address.
remote_addr Specifies the address of the remote registered memory to read the address.
sgl Specifies a scatter-gather list of the destination buffers that is associated with the read operation.

Return Values

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