Ryu:将数据路径转换为切换 IP 地址
Ryu: convert datapath to switch IP address
目前,我正在开源 OpenFlow 控制器 Ryu 上编写应用程序。
要创建 OF-Config 连接(或 OVSDB 连接),我想我必须获取连接到 Ryu 控制器的每个交换机的 IP 地址。但是,我找不到将数据路径对象或数据路径 ID 转换为交换机 IP 地址的 API。
所以,如果有这样的API,我想知道一下。如果没有,我期待收到一些关于在没有 IP 地址的情况下建立连接的方式的评论。
Byungjoon 你在用 mininet 吗?
如果是,则所有交换机都使用本地主机 IP 地址实例化(这是 mininet 的默认行为)。控制器使用 tcp 端口区分交换机。
据我所知,你只需要知道交换机的dpid就可以发送OF消息了。这就是示例 l2-learning switch 正在做的事情:https://github.com/osrg/ryu/blob/master/ryu/app/simple_switch_13.py
我也在尝试使用 Ryu 控制器与开关通信。我使用上面的示例作为我的基本代码并在其之上添加。它尚未完成(因此您可能会看到一些错误)但它是一个很好的起点。这是link:https://github.com/Ehsan70/RyuApps/blob/master/l2.py
@set_ev_cls(event.EventSwitchEnter)
def switch_features_handler(self, ev):
address = ev.switch.dp.address
dpid = ev.switch.dp.id
"address" 是 (ip_address, port) 的元组,"dpid" 是数据路径 ID。
对于最新版本的 ryu,你应该使用下面的代码。
@set_ev_cls(ofp_event.EventOFPSwitchFeatures, CONFIG_DISPATCHER)
def _switch_features_handler(self, ev):
print(ev.msg.datapath.address)
目前,我正在开源 OpenFlow 控制器 Ryu 上编写应用程序。
要创建 OF-Config 连接(或 OVSDB 连接),我想我必须获取连接到 Ryu 控制器的每个交换机的 IP 地址。但是,我找不到将数据路径对象或数据路径 ID 转换为交换机 IP 地址的 API。
所以,如果有这样的API,我想知道一下。如果没有,我期待收到一些关于在没有 IP 地址的情况下建立连接的方式的评论。
Byungjoon 你在用 mininet 吗?
如果是,则所有交换机都使用本地主机 IP 地址实例化(这是 mininet 的默认行为)。控制器使用 tcp 端口区分交换机。
据我所知,你只需要知道交换机的dpid就可以发送OF消息了。这就是示例 l2-learning switch 正在做的事情:https://github.com/osrg/ryu/blob/master/ryu/app/simple_switch_13.py
我也在尝试使用 Ryu 控制器与开关通信。我使用上面的示例作为我的基本代码并在其之上添加。它尚未完成(因此您可能会看到一些错误)但它是一个很好的起点。这是link:https://github.com/Ehsan70/RyuApps/blob/master/l2.py
@set_ev_cls(event.EventSwitchEnter)
def switch_features_handler(self, ev):
address = ev.switch.dp.address
dpid = ev.switch.dp.id
"address" 是 (ip_address, port) 的元组,"dpid" 是数据路径 ID。
对于最新版本的 ryu,你应该使用下面的代码。
@set_ev_cls(ofp_event.EventOFPSwitchFeatures, CONFIG_DISPATCHER)
def _switch_features_handler(self, ev):
print(ev.msg.datapath.address)