обеспечивает независимую от транспорта трансляцию адресов (Provides transport independent address translation.)
Имя (Name)
rdma_getaddrinfo - Provides transport independent address
translation.
Синопсис (Synopsis)
#include <rdma/rdma_cma.h>
int rdma_getaddrinfo (const char *
node, const char *
service,
const 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 (errno will be set to
indicate the failure reason), or one of the following nonzero
error codes:
EAI_ADDRFAMILY
The specified network host does not have any network
addresses in the requested address family.
EAI_AGAIN The name server returned a temporary failure
indication. Try again later.
EAI_BADFLAGS
hints.ai_flags contains invalid flags.
EAI_FAIL The name server returned a permanent failure
indication.
EAI_FAMILY The requested address family is not supported.
EAI_MEMORY Out of memory.
EAI_NODATA The specified network host exists, but does not have
any network addresses defined.
EAI_NONAME The node or service is not known; or both node and
service are NULL.
EAI_SERVICE The requested service is not available for the
requested QP type. It may be available through
another QP type.
EAI_QPTYPE The requested socket type is not supported. This
could occur, for example, if hints.ai_qptype and
hints.ai_port_space are inconsistent (e.g.,
IBV_QPT_UD and RDMA_PS_TCP, respectively).
EAI_SYSTEM Other system error, check errno for details. The
gai_strerror() function translates these error codes
to a human readable string, suitable for error
reporting.
Примечание (Note)
Either node, service, or hints 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. If node
is provided, rdma_getaddrinfo will attempt to resolve the RDMA
address, route, and connection data to the given node. The hints
parameter, if provided, may be used to control the resulting
output as indicated below. If node is not given,
rdma_getaddrinfo will attempt to resolve the RDMA addressing
information based on the hints.ai_src_addr, hints.ai_dst_addr, or
hints.ai_route.
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.
RAI_FAMILY If set, the ai_family setting should be used as an
input hint for interpretting the node parameter.
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_QPT_UD (unreliable datagram)
and IBV_QPT_RC (reliable connected).
ai_port_space
RDMA port space in use. Supported values are:
RDMA_PS_UDP, RDMA_PS_TCP, and RDMA_PS_IB.
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 discovered 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 routing data depends on the
underlying transport. If Infiniband transports are
used, ai_route will reference an array of struct
ibv_path_data on output, if routing data is
available. Routing paths may be restricted by
setting desired routing data fields on input to
rdma_getaddrinfo. For Infiniband, hints.ai_route may
reference an array of struct ibv_path_record or
struct ibv_path_data on input.
ai_connect_len
Size of connection information referenced by
ai_connect. This will be 0 if the underlying
transport does not require additional 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)