Provided by: librpma-dev_1.2.0-1_amd64
NAME
rpma_utils_get_ibv_context - obtain an RDMA device context by IP address
SYNOPSIS
#include <librpma.h> struct ibv_context; enum rpma_util_ibv_context_type { RPMA_UTIL_IBV_CONTEXT_LOCAL, RPMA_UTIL_IBV_CONTEXT_REMOTE }; int rpma_utils_get_ibv_context(const char *addr, enum rpma_util_ibv_context_type type, struct ibv_context **ibv_ctx_ptr);
DESCRIPTION
rpma_utils_get_ibv_context() obtains an RDMA device context by the given IPv4/IPv6 address (either local or remote) using the TCP RDMA port space (RDMA_PS_TCP) - reliable, connection-oriented and message-based QP communication. Possible values of the 'type' argument: • RPMA_UTIL_IBV_CONTEXT_LOCAL - lookup for a device based on the given local address • RPMA_UTIL_IBV_CONTEXT_REMOTE - lookup for a device based on the given remote address
RETURN VALUE
The rpma_utils_get_ibv_context() function returns 0 on success or a negative error code on failure. rpma_utils_get_ibv_context() does not set *ibv_ctx_ptr value on failure.
ERRORS
rpma_utils_get_ibv_context() can fail with the following errors: • RPMA_E_INVAL - addr or ibv_ctx_ptr is NULL or type is unknown • RPMA_E_NOMEM - out of memory • RPMA_E_PROVIDER - rdma_getaddrinfo(), rdma_create_id(), rdma_bind_addr() or rdma_resolve_addr() failed, the exact cause of the error can be read from the log
SEE ALSO
rpma_peer_new(3), rpma_utils_ibv_context_is_odp_capable(3), librpma(7) and https://pmem.io/rpma/