如何仅获得 RYU SDN 控制器中交换机之间的直接链接?

问题描述

我目前正在为 Ryu SDN 控制器开发一个应用程序,为此我需要获取交换机之间的链接。当不存在流时,使用 get_link(self,None) 会返回正确的值。一旦我开始添加流以正确传输数据包,在实际上没有连接在一起的交换机之间就会出现虚假链接

例如在此配置中:

Switch2 Switch 1 Switch3 在 Switch 2 和 Switch 3 之间没有链接,但是一旦出现流,函数就会返回这两者之间的链接

有问题的函数如下:

def _print_links(self):
        links = get_link(self,None)
        link_port={(link.src.dpid,link.dst.dpid):link.src.port_no for link in links}
        self.info('Links: ' + str(link_port))

输出是这样的:

Links: {(2,1): 1,(1,2): 1,(3,1): 1} #When no flows exist
Links: {(2,3): 2} #When flows exists the (3,2) link appears

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)