rdma_post_ud_send - post a work request to send a datagram.
#include <rdma/rdma_verbs.h>
int rdma_post_ud_send (struct rdma_cm_id
*id, void *context, void
*addr, size_t length, struct
ibv_mr *mr, int flags, struct
ibv_ah *ah, uint32_t remote_qpn);
- id
- A reference to a communication identifier where the message buffer will be
posted.
- context
- User-defined context associated with the request.
- addr
- The address of the memory buffer to post.
- length
- The length of the memory buffer.
- mr
- Optional registered memory region associated with the posted buffer.
- flags
- Optional flags used to control the send operation.
- ah
- An address handle describing the address of the remote node.
- remote_qpn
- The number of the destination queue pair.
Posts a work request to the send queue of the queue pair associated with the
rdma_cm_id. The contents of the posted buffer will be sent to the specified
destination queue pair.
Returns 0 on success, or -1 on error. If an error occurs, errno will be set to
indicate the failure reason.
The user is responsible for ensuring that the destination queue pair has queued
a receive request before issuing the send operations. For a list of supported
flags, see ibv_post_send. Unless the send request is using inline data, the
message buffer must have been registered before being posted, with the mr
parameter referencing the registration. The buffer must remain registered
until the send completes.
The user-defined context associated with the send request will be
returned to the user through the work completion wr_id, work request
identifier, field.
rdma_cm(7), rdma_connect(3), rdma_accept(3), rdma_reg_msgs(3) ibv_post_send(3),
rdma_post_recv(3)