Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019

rdma_getaddrinfo (3)


rdma_getaddrinfo - Provides transport independent address translation.


#include <rdma/rdma_cma.h>

int  rdma_getaddrinfo  (char *node, char *service, struct rdma_addrinfo
*hints, struct rdma_addrinfo **res);


Librdmacm Programmer's Manual                              RDMA_GETADDRINFO(3)

       rdma_getaddrinfo - Provides transport independent address translation.

       #include <rdma/rdma_cma.h>

       int  rdma_getaddrinfo  (char *node, char *service, struct rdma_addrinfo
       *hints, struct rdma_addrinfo **res);

       node        Optional, name, dotted-decimal IPv4, or IPv6 hex address to

       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 con-
                   taining response information.

       Resolves  the destination node and service address and returns informa-
       tion needed to establish communication.  Provides the  RDMA  functional
       equivalent to getaddrinfo.

       Returns  0  on success, or -1 on error.  If an error occurs, errno will
       be set to indicate the failure reason.

       See attributes(7) for descriptions of the following attributes:

       |Availability   | network/open-fabrics  |
       |Stability      | Pass-through volatile |
       Either node, service, or hints must be provided.   If  hints  are  pro-
       vided, the operation will be controlled by hints.ai_flags.  If RAI_PAS-
       SIVE is specified, the call will resolve address information for use on
       the  passive  side  of  a connection.  If node is provided, rdma_getad-
       drinfo 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

       ai_flags    Hint  flags  that  control  the operation.  Supported flags

       RAI_PASSIVE Indicates that the results will be used on the passive/lis-
                   tening side of a connection.

                   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.  Sup-
                   ported types are: IBV_UD (unreliable datagram)  and  IBV_RC
                   (reliable connected).

                   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.

                   The canonical for the source.

                   The canonical for the destination.

                   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  rout-
                   ing  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.

                   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  fol-
                   lowing it.

       ai_next     Pointer  to  the  next rdma_addrinfo structure in the list.
                   Will be NULL if no more structures exist.

       rdma_create_id(3),  rdma_resolve_route(3),  rdma_connect(3),  rdma_cre-
       ate_qp(3), rdma_bind_addr(3), rdma_create_ep(3)

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source   was   downloaded   from    ['https://www.openfabrics.org/down-
       loads/ibutils/ibutils-1.5.7-0.2.gbd7e502.tar.gz', 'https://www.openfab-
       sdp-1.1.108-0.15.gd7fdb72.tar.gz',   'https://www.openfabrics.org/down-
       loads/management/infiniband-diags-1.6.5.tar.gz',  'https://www.openfab-
       mad-',    'https://www.openfabrics.org/downloads/manage-
       ment/opensm-3.3.19.tar.gz',          'https://www.openfabrics.org/down-
       loads/perftest/perftest-1.3.0-0.42.gf350d3d.tar.gz', 'https://www.open-
       fabrics.org/downloads/qperf/qperf-0.4.9.tar.gz',  'https://www.openfab-
       rics.org/downloads/rdmacm/librdmacm-1.0.21.tar.gz',  'https://www.open-

       Further information about this software can be found on the open source
       community website at http://www.openfabrics.org/.

librdmacm                         2010-07-19               RDMA_GETADDRINFO(3)