首页 文章

Ryu:将datapath转换为切换IP地址

提问于
浏览
1

目前,我正在开源OpenFlow控制器Ryu之上编写应用程序 .

要创建OF-Config连接(或OVSDB连接),我想我必须获取连接到Ryu控制器的每个交换机的IP地址 . 但是,我找不到将Datapath对象或datapath id转换为交换机IP地址的API .

所以,如果有这样的API,我想了解它 . 如果没有,我期待收到一些关于如何在没有IP地址的情况下 Build 连接的评论 .

3 回答

  • 1
    @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 .

  • 0

    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

    对于ryu的最新版本,您应该使用以下代码 .

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

相关问题