Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

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);

Description

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

DESCRIPTION
       Resolves  the destination node and service address and returns informa-
       tion 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.


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


       +---------------+-----------------------+
       |ATTRIBUTE TYPE |   ATTRIBUTE VALUE     |
       +---------------+-----------------------+
       |Availability   | network/open-fabrics  |
       +---------------+-----------------------+
       |Stability      | Pass-through volatile |
       +---------------+-----------------------+

NOTES
       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
       hints.ai_route.

       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       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-
       rics.org/downloads/libibverbs/libibverbs-1.1.8.tar.gz',
       'https://www.openfabrics.org/downloads/libmlx4/libmlx4-1.0.6.tar.gz',
       'https://www.openfabrics.org/downloads/libsdp/lib-
       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-
       rics.org/downloads/management/libibmad-1.3.12.tar.gz',
       'https://www.openfabrics.org/downloads/management/libibu-
       mad-1.3.10.2.tar.gz',    '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-
       fabrics.org/downloads/rds-tools/rds-tools-2.0.4.tar.gz'].

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

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/lis-
                   tening 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.  Sup-
                   ported  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,
                   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 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.

       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 fol-
                   lowing 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_cre-
       ate_qp(3), rdma_bind_addr(3), rdma_create_ep(3)




librdmacm                         2010-07-19               RDMA_GETADDRINFO(3)