sdn 如何 让交换机连接2台ryu控制器?

sdn 一台交换机如何同时连接2台ryu控制器?

定重谢 求大佬帮忙

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: 生动的SDN基础内容介绍(三)--Ryu控制器中的 交换机信息及流表项的查询 部分也许能够解决你的问题, 相关内容:

    Ryu提供了两种方式来查询交换机信息以及流表项信息:
    1、REST API主动查询:
    后续讲到北向接口的时候会详细讲述。
    2、事件响应查询:
    Ryu中提供了很多的事件,如EventOFPPortStatsReply、EventOFPFlowStatsReply等。
    EventOFPPortStatsReply在端口查询返回结果时触发。
    EventOFPFlowStatsReply在流量查询返回结果时触发。

    simple_monitor_13.py中展示了这两个事件的应用:
    详细的代码讲解可以看大哥的博客:

    https://www.cnblogs.com/ssyfj/p/11755773.html

    我这里以我毕设的部分代码为例:

    @set_ev_cls(ofp_event.EventOFPPortStatsReply, MAIN_DISPATCHER)
        def _port_stats_reply_handler(self, ev):#执行完send_port_stats_request后会调用该函数对查询完的端口信息进行处理
            body = ev.msg.body
            for port_stat in sorted(body,key=attrgetter('port_no')):
                datapathid=ev.msg.datapath.id
                no=port_stat.port_no
                tx=port_stat.tx_bytes
                p=self.port_tx[datapathid]
                if no==4294967294:
                    continue
                if no in p.keys():
                    self.port_tx1[datapathid][no]=tx
                else:
                    self.port_tx[datapathid][no]=tx
        
        def send_port_stats_request(self, datapath):#执行端口信息的查询
            ofproto = datapath.ofproto
            parser = datapath.ofproto_parser
            req = parser.OFPPortStatsRequest(datapath)
            datapath.send_msg(req)
    

    如果相对端口的信息进行查询可以调用send_port_stats_request()函数,该函数向指定的交换机发起端口的查询请求,也就是OFPPortStatsRequest。

    交换机收到查询请求后进行相应的查询,然后将查询结果返回给控制器,此时会触发事件EventOFPPortStatsReply。开始执行_port_stats_reply_handler()函数,该函数内部的处理是specific的,可以忽略,换成自己的代码就可以,其实就是对查询完的端口信息进行处理。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^