librpma.7
rpma_atomic_write.3
rpma_conn_apply_remote_peer_cfg.3
rpma_conn_cfg_delete.3
rpma_conn_cfg_get_compl_channel.3
rpma_conn_cfg_get_cq_size.3
rpma_conn_cfg_get_rcq_size.3
rpma_conn_cfg_get_rq_size.3
rpma_conn_cfg_get_sq_size.3
rpma_conn_cfg_get_srq.3
rpma_conn_cfg_get_timeout.3
rpma_conn_cfg_new.3
rpma_conn_cfg_set_compl_channel.3
rpma_conn_cfg_set_cq_size.3
rpma_conn_cfg_set_rcq_size.3
rpma_conn_cfg_set_rq_size.3
rpma_conn_cfg_set_sq_size.3
rpma_conn_cfg_set_srq.3
rpma_conn_cfg_set_timeout.3
rpma_conn_delete.3
rpma_conn_disconnect.3
rpma_conn_get_compl_fd.3
rpma_conn_get_cq.3
rpma_conn_get_event_fd.3
rpma_conn_get_private_data.3
rpma_conn_get_qp_num.3
rpma_conn_get_rcq.3
rpma_conn_next_event.3
rpma_conn_req_connect.3
rpma_conn_req_delete.3
rpma_conn_req_get_private_data.3
rpma_conn_req_new.3
rpma_conn_req_recv.3
rpma_conn_wait.3
rpma_cq_get_fd.3
rpma_cq_get_wc.3
rpma_cq_wait.3
rpma_ep_get_fd.3
rpma_ep_listen.3
rpma_ep_next_conn_req.3
rpma_ep_shutdown.3
rpma_err_2str.3
rpma_flush.3
rpma_log_get_threshold.3
rpma_log_set_function.3
rpma_log_set_threshold.3
rpma_mr_advise.3
rpma_mr_dereg.3
rpma_mr_get_descriptor.3
rpma_mr_get_descriptor_size.3
rpma_mr_get_ptr.3
rpma_mr_get_size.3
rpma_mr_reg.3
rpma_mr_remote_delete.3
rpma_mr_remote_from_descriptor.3
rpma_mr_remote_get_flush_type.3
rpma_mr_remote_get_size.3
rpma_peer_cfg_delete.3
rpma_peer_cfg_from_descriptor.3
rpma_peer_cfg_get_descriptor.3
rpma_peer_cfg_get_descriptor_size.3
rpma_peer_cfg_get_direct_write_to_pmem.3
rpma_peer_cfg_new.3
rpma_peer_cfg_set_direct_write_to_pmem.3
rpma_peer_delete.3
rpma_peer_new.3
rpma_read.3
rpma_recv.3
rpma_send.3
rpma_send_with_imm.3
rpma_srq_cfg_delete.3
rpma_srq_cfg_get_rcq_size.3
rpma_srq_cfg_get_rq_size.3
rpma_srq_cfg_new.3
rpma_srq_cfg_set_rcq_size.3
rpma_srq_cfg_set_rq_size.3
rpma_srq_delete.3
rpma_srq_get_rcq.3
rpma_srq_new.3
rpma_srq_recv.3
rpma_utils_conn_event_2str.3
rpma_utils_get_ibv_context.3
rpma_utils_ibv_context_is_odp_capable.3
rpma_write.3
rpma_write_with_imm.3NAME
rpma_mr_remote_from_descriptor - create a memory region from a
descriptor
SYNOPSIS
#include <librpma.h>
struct rpma_mr_remote;
int rpma_mr_remote_from_descriptor(const void *desc, size_t desc_size,
struct rpma_mr_remote **mr_ptr);
DESCRIPTION
Create a remote memory region's structure based on the provided
descriptor with a network-transferable description of the memory region
local to the remote peer.
SECURITY WARNING
An attacker might modify the serialized remote memory registration
configuration while it is transferred via an unsecured connection (e.g.
rdma_cm private data), which might cause data corruption when writing to
a different location. Users should avoid using
rpma_conn_get_private_data(3) and
rpma_conn_req_get_private_data(3) API calls and they should utilize
TLS/SSL connections to transfer all configuration data between peers
instead.
RETURN VALUE
The rpma_mr_remote_from_descriptor() function returns 0 on success
or a negative error code on failure.
rpma_mr_remote_from_descriptor() does not set *mr_ptr value on
failure.
ERRORS
rpma_mr_remote_from_descriptor() can fail with the following errors:
RPMA_E_INVAL - desc or mr_ptr is NULL
RPMA_E_INVAL - incompatible descriptor size
RPMA_E_NOSUPP - deserialized information does not represent a valid
memory region
RPMA_E_NOMEM - out of memory
SEE ALSO
rpma_mr_remote_delete(3), rpma_mr_remote_get_flush_type(3),
rpma_mr_remote_get_size(3), rpma_flush(3), rpma_read(3),
rpma_write(3), rpma_atomic_write(3), librpma(7) and
https://pmem.io/rpma/