RDMA_GETADDRINFO(3) Librdmacm Programmer's Manual RDMA_GETADDRINFO(3)
NAME
rdma_getaddrinfo - Provides transport independent address translation.
SYNOPSIS
#include <rdma/rdma_cma.h>
int rdma_getaddrinfo (char *node, char *service, struct rdma_addrinfo *hints, struct rdma_addrinfo **res);
ARGUMENTS
node Optional, name, dotted-decimal IPv4, or IPv6 hex address to resolve.
service Service name or port number of address.
hints Reference to an rdma_addrinfo structure containing hints about the type of service the caller supports.
res A pointer to a linked list of rdma_addrinfo structures containing response information.
DESCRIPTION
Resolves the destination node and service address and returns information needed to establish communication. Provides the RDMA functional
equivalent to getaddrinfo.
RETURN VALUE
Returns 0 on success, or -1 on error. If an error occurs, errno will be set to indicate the failure reason.
NOTES
Either node or service must be provided. If hints are provided, the operation will be controlled by hints.ai_flags. If RAI_PASSIVE is
specified, the call will resolve address information for use on the passive side of a connection.
rdma_addrinfo
ai_flags Hint flags that control the operation. Supported flags are:
RAI_PASSIVE Indicates that the results will be used on the passive/listening side of a connection.
RAI_NUMERICHOST
If specified, then the node parameter, if provided, must be a numerical network address. This flag suppresses any lengthy
address resolution.
RAI_NOROUTE If set, this flag suppresses any lengthy route resolution.
ai_family Address family for the source and destination address. Supported families are: AF_INET, AF_INET6, and AF_IB.
ai_qp_type Indicates the type of RDMA QP used for communication. Supported types are: IBV_UD (unreliable datagram) and IBV_RC (reliable
connected).
ai_port_space
RDMA port space in use. Supported values are: RDMA_PS_UDP and RDMA_PS_TCP.
ai_src_len The length of the source address referenced by ai_src_addr. This will be 0 if an appropriate source address could not be dis-
covered for a given destination.
ai_dst_len The length of the destination address referenced by ai_dst_addr. This will be 0 if the RAI_PASSIVE flag was specified as part
of the hints.
ai_src_addr If provided, the address for the local RDMA device.
ai_dst_addr If provided, the address for the destination RDMA device.
ai_src_canonname
The canonical for the source.
ai_dst_canonname
The canonical for the destination.
ai_route_len
Size of the routing information buffer referenced by ai_route. This will be 0 if the underlying transport does not require
routing data, or none could be resolved.
ai_route Routing information for RDMA transports that require routing data as part of connection establishment. The format of the rout-
ing data depends on the underlying transport. If Infiniband transports are used, ai_route will reference an array of struct
ibv_path_data.
ai_connect_len
Size of connection information referenced by ai_connect. This will be 0 if the underlying transport does not require addi-
tional connection information.
ai_connect Data exchanged as part of the connection establishment process. If provided, ai_connect data must be transferred as private
data, with any user supplied private data following it.
ai_next Pointer to the next rdma_addrinfo structure in the list. Will be NULL if no more structures exist.
SEE ALSO
rdma_create_id(3), rdma_resolve_route(3), rdma_connect(3), rdma_create_qp(3), rdma_bind_addr(3), rdma_create_ep(3)
librdmacm 2010-07-19 RDMA_GETADDRINFO(3)