logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

rpma_utils_get_ibv_context - obtain an RDMA device context by IP address

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

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

Name

rpma_utils_get_ibv_context - obtain an RDMA device context by IP 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.

See Also

rpma_peer_new(3), rpma_utils_ibv_context_is_odp_capable(3), librpma(7) and https://pmem.io/rpma/

RPMA                                              01 April 2024                    rpma_utils_get_ibv_context(3)

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

See Also