Provided by: librdmacm-dev_50.0-2ubuntu0.2_amd64 bug

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.

NOTES

       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)

librdmacm                                          2010-07-19                                RDMA_GETADDRINFO(3)