Provided by: librdmacm-dev_42.0-1_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)