目前,我正在开源OpenFlow控制器Ryu之上编写应用程序。
要创建OF-Config连接(或OVSDB连接),我想我必须获取连接到Ryu控制器的每个交换机的IP地址。但是,我找不到将Datapath对象或datapath id转换为交换机IP地址的API。
所以,如果有这样的API,我想知道它。如果没有,我期待收到一些关于如何在没有IP地址的情况下建立连接的评论。
答案 0 :(得分:1)
Byungjoon你在用mininet吗?
如果是,所有交换机都使用localhost ip地址进行实例化(这是mininet的默认行为)。控制器使用tcp端口区分交换机。
据我所知,您只需知道交换机的dpid即可发送OF消息。这就是示例l2学习开关正在做的事情:https://github.com/osrg/ryu/blob/master/ryu/app/simple_switch_13.py
我也尝试使用Ryu控制器与交换机通信。我使用上面的示例作为我的基本代码并添加它。它还没有完成(所以你可能会看到一些错误),但这是一个很好的起点。这是链接:https://github.com/Ehsan70/RyuApps/blob/master/l2.py
答案 1 :(得分:0)
对于最新版本的ryu,您应该使用以下代码。
@set_ev_cls(ofp_event.EventOFPSwitchFeatures, CONFIG_DISPATCHER)
def _switch_features_handler(self, ev):
print(ev.msg.datapath.address)