【rdma_cm】rdma_cm API
目录
https://linux.die.net/man/3/rdma_resolve_route
rdma_resolve_addr
概要
rdma_resolve_addr - 解析目标地址和可选的源地址。
#include <rdma/rdma_cma.h>
int rdma_resolve_addr (struct rdma_cm_id *id, struct sockaddr *src_addr, struct sockaddr *dst_addr, int timeout_ms);
参数
id RDMA标识。
src_addr 源地址信息。此参数可以为NULL。
dst_addr 目的地址信息。
timeout_ms 等待解析完成的时间。
描述
将目标地址和可选源地址从IP地址解析为RDMA地址。如果成功,则指定的rdma_cm_id将绑定到本地设备。
返回值
如果成功,则返回0,如果错误,则返回-1。如果发生错误,将设置errno来指示失败原因。
注意
该调用用于将给定的目标IP地址映射到可用的RDMA地址。 IP到RDMA地址的映射是使用本地路由表或通过ARP完成的。如果指定了源地址,则将rdma_cm_id绑定到该地址,与调用rdma_bind_addr相同。如果未提供源地址,并且rdma_cm_id尚未绑定到设备,则rdma_cm_id将基于本地路由表绑定到源地址。调用之后,rdma_cm_id将绑定到RDMA设备。通常在调用rdma_resolve_route和rdma_connect之前从连接的活动端进行此调用。
Infiniband特定
This call maps the destination and, if given, source IP addresses to GIDs. In order to perform the mapping, IPoIB must be running on both the local and remote nodes.
此调用将目标IP地址和源IP地址映射到GID。为了执行映射,IPoIB必须同时在本地和远程节点上运行。
rdma_resolve_route
概要
rdma_resolve_route - 解析建立连接所需的路由信息。
#include <rdma/rdma_cma.h>
int rdma_resolve_route (struct rdma_cm_id *id, int timeout_ms);
参数
id RDMA标识。
timeout_ms 等待解析完成的时间
描述
解析到目标地址的RDMA路由以建立连接。目的地址必须已经通过调用rdma_resolve_addr解析。
返回值
如果成功,则返回0,如果错误,则返回-1。如果发生错误,将设置errno来指示失败原因。
注意
在连接的客户端上调用此方法,在调用rdma_resolve_addr之后,调用rdma_connect之前。(This is called on the client side of a connection after calling rdma_resolve_addr, but before calling rdma_connect.)
Infiniband特定
此调用获取连接使用的路径记录。(This call obtains a path record that is used by the connection.)