2012-01-31 41 views
1

我需要检查给定的ipoib IP地址是否将关联的IB节点连接到infiniband交换机。ipoib:检查是否可以访问给定iboip的infiniband节点

想法是获取IP数据包发送到的IB端口的GUID,并检查端口连接/可达的命令,如ibnodes。

任何人都有一个想法如何在用户空间C或cmdline中实现这一点?特别是我有兴趣解决知识产权问题。

感谢

回答

3

这里的答案是有点麻烦,我怕你想做的事是不是真的有可能。但我不确定你真正想做什么,所以让我解释一下可以做些什么。

IPoIB解析IP地址到GID的方式是通过ARP - 以太网使用ARP广播,​​而IPoIB使用InfiniBand多播,但在这两种情况下,ARP请求都会发送到IP子网中的所有节点。地址的实际所有者以其链接级别地址进行响应,在IPoIB的情况下,该地址是QP编号(您不关心)和GID。

例如,可以在达到的IPoIB 192.168.1.3时,ip neigh命令显示的系统上:

# ip neigh 
192.168.1.3 dev ib0 lladdr 80:00:04:04:fe:80:00:00:00:00:00:00:00:02:c9:02:00:21:70:d1 REACHABLE 

其中最后16个字节lladdr的是GID;配置了192.168.1.3的远程系统上,你可以看到GID:

# cat /sys/class/infiniband/mthca0/ports/1/gids/0 
fe80:0000:0000:0000:0002:c902:0021:70d1 

我不认为这可以帮助你的原因,如果IP地址不可达,则ARP不会能够解析地址,所以你将无法获得一个GID来检查。从某种意义上说,你的问题并不真正适合,因为没有固定的IP地址与IB端口的关联 - 你可以在任何IPoIB接口上放置任何你想要的IP地址,并随时更改它。

相关问题