RDMA_RESOLVE_ADDRINFO(3)

Name
RDMA_RESOLVE_ADDRINFO - Resolve RDMA addresses which supports both DNS and IB SA.

SYNOPSIS

#include <rdma/rdma_cma.h>

int rdma_resolve_addrinfo(struct rdma_cm_id *id, const char *node, const char *service, const struct rdma_addrinfo *hints);

ARGUMENTS

id RDMA identifier.

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

service The service name or port number of address.

hints Reference to an rdma_addrinfo structure containing hints about the type of service the caller supports.

DESCRIPTION

This call submits an asynchronous address resolution request. The behavior is similar to rdma_getaddrinfo(), except that the operation is asynchronous, generating an event on the RDMA CM event channel that is associated with the specified rdma_cm_id when complete. The %node, %service, and %hints parameters are defined similarly to rdma_getaddrinfo().

RETURN VALUE

Returns 0 on success. Success indicates that asynchronous address resolution was initiated. The result of the resolution, whether successful or failed, will be reported as an event on the related event channel.

Returns -1 on error, errno will be set to indicate the failure reason. The address resolution was not started, and no event will be generated on the event channel.

NOTES

    This call supports both DNS and IB SA resolution, depends on the hints.ai_flags:

        •   RAI_DNS: Performs address resolution using DNS.

        •   RAI_SA: Performs address resolution using the Infiniband SA. The rdma_cm_id associated with the call must be bound to an Infiniband port, or an error will occur. The %node parameter must be null (not supported). %Service should be an IB service name or ID.

These 2 flags are mutual-exclusive; If none of them is set then DNS is the default.

The cm event RDMA_CM_EVENT_ADDRINFO_RESOLVED (on success) or RDMA_CM_EVENT_ADDRINFO_ERROR (on failure) is generated.

SEE ALSO

rdma_getaddrinfo(3), rdma_query_addrinfo(3)

AUTHOR

Mark Zhang <<markzhang@nvidia.com>>