DOKK / manpages / debian 12 / librpma-dev / rpma_mr_remote_from_descriptor.3.en
rpma_mr_remote_from_descriptor(3) RPMA Programmer's Manual rpma_mr_remote_from_descriptor(3)

rpma_mr_remote_from_descriptor - create a memory region from a descriptor


#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);

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.

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.

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.

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

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/

10 January 2023 RPMA