【问题标题】:Programmatically retrieve infiniband device ip address以编程方式检索 infiniband 设备 IP 地址
【发布时间】:2011-11-25 09:20:51
【问题描述】:

我正在尝试以编程方式查找名称未知的 Infiniband 接口的 inet 地址先验

我在 Linux 上,我想避免解析 ifconfig (8) 输出。 我已经阅读了关于this 答案的第二条评论,该评论建议使用getifaddrs() 来检索接口,但是我无法选择 Infiniband 接口。

非常感谢任何帮助。

【问题讨论】:

    标签: c linux rdma infiniband


    【解决方案1】:

    getifaddrs() 为每个接口返回一个AF_PACKET 类型的条目,其中包含硬件地址详细信息,如this answer 中所述。特别是,iface->ifa_addr 拥有一个struct sockaddr_ll,而该结构的sll_hatype 成员拥有硬件地址类型。因此,要确定哪些接口是 IPoIB,您只需检查哪些接口的硬件类型为 ARPHRD_INFINIBAND

    【讨论】:

    • 非常感谢。我恢复了ib接口名称,然后在列表上再次迭代(由getifaddrs返回)得到AF_INET类型的条目。
    【解决方案2】:

    您可以尝试解析/proc/net/ 下的一些文件,例如/proc/net/if_inet6/proc/net/dev。你可以通过strace-ing 来了解ifconfig 的作用。

    【讨论】:

      猜你喜欢
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 2020-05-06
      • 1970-01-01
      • 2018-11-06
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多