ibv_reg_mr()
registers a memory region (MR) associated with the protection domain
pd.
The MR's starting address is
addr
and its size is
length.
The argument
access
describes the desired memory protection attributes; it is either 0 or the bitwise OR of one or more of the following flags:
If
IBV_ACCESS_REMOTE_WRITE
or
IBV_ACCESS_REMOTE_ATOMIC
is set, then
IBV_ACCESS_LOCAL_WRITE
must be set too.
Local read access is always enabled for the MR.
ibv_dereg_mr()
deregisters the MR
mr.
RETURN VALUE
ibv_reg_mr()
returns a pointer to the registered MR, or NULL if the request fails.
The local key (L_Key) field
lkey
is used as the lkey field of struct ibv_sge when posting buffers with
ibv_post_* verbs, and the the remote key (R_Key)
field
rkey
is used by remote processes to perform Atomic and RDMA operations. The remote process places this
rkey
as the rkey field of struct ibv_send_wr passed to the ibv_post_send function.
ibv_dereg_mr()
returns 0 on success, or the value of errno on failure (which indicates the failure reason).
NOTES
ibv_dereg_mr()
fails if any memory window is still bound to this MR.