rpma_utils_get_ibv_context3
Obtain an rdma device context by ip address
Usage
#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);
Overview
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() orrdma_resolve_addr() failed, the exact cause of the error can be read from the log
Releases
2 releases since Debian 12 (Bookworm); the text changed 1 time.