2012-01-31 42 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地址,並隨時更改它。

相關問題