2015-06-29 170 views
1

目前,我正在開源OpenFlow控制器Ryu之上編寫應用程序。Ryu:將數據路徑轉換爲交換IP地址

要創建一個OF-Config連接(或OVSDB連接),我想我必須得到連接到Ryu控制器的每個交換機的IP地址。但是,我無法找到將Datapath對象或數據路徑標識轉換爲交換機IP地址的API。

所以,如果有這樣的API,我想知道它。如果沒有,我期待收到一些關於如何在沒有IP地址的情況下進行連接的評論。

回答

1
@set_ev_cls(event.EventSwitchEnter) 
def switch_features_handler(self, ev): 
    address = ev.switch.dp.address 
    dpid = ev.switch.dp.id 

「地址」是的(IP地址,端口)和「DPID」一個元組數據路徑ID。

1

Byungjoon你使用mininet?

如果你是,所有的交換機實例與本地主機IP地址(這是mininet的默認行爲)。控制器使用tcp端口區分交換機。

就我所知,你只需要知道交換機的dpid就可以發送OF消息。這就是示例l2-learning開關正在做的:https://github.com/osrg/ryu/blob/master/ryu/app/simple_switch_13.py

我也嘗試與使用Ryu控制器的開關進行通信。我將上面的示例用作我的基本代碼,並將其添加到頂部。它還沒有完成(所以你可能會看到一些錯誤),但這是一個很好的起點。這裏是鏈接:https://github.com/Ehsan70/RyuApps/blob/master/l2.py

0

對於ryu的最新版本,您應該使用以下代碼。

@set_ev_cls(ofp_event.EventOFPSwitchFeatures, CONFIG_DISPATCHER) 
def _switch_features_handler(self, ev): 
    print(ev.msg.datapath.address)