rpma_mr_remote_from_descriptor(3)

NAME
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/