微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用此地形时 RYU 控制器被击中

如何解决使用此地形时 RYU 控制器被击中

我正在使用修改后的 RYU 控制器来定义新的路径算法。 RYU 控制器在 3 开关拓扑结构中运行良好。 当我的目标交换机有超过 3 个链接时,RYU 控制器会被触发。对于以下拓扑中的示例,如果我删除链接 S2 和 S6,则它可以正常工作。

此拓扑或 RYU 控制器是否有任何问题。我在下面附上了代码,如果我在这里有任何错误,请告知。

    from mininet.net import Mininet
    
    from mininet.node import Controller,RemoteController,OVSKernelSwitch,UserSwitch,OVSSwitch
    
    from mininet.cli import CLI
    
    from mininet.log import setLogLevel
    
    from mininet.link import Link,TCLink

 

def topology():

        net = Mininet( controller=RemoteController,link=TCLink,switch=OVSSwitch )

 

        # Add hosts and switches

 

        h1= net.addHost( 'h1',mac="00:00:00:00:00:01" )

        h2 = net.addHost( 'h2',mac="00:00:00:00:00:02" )

        h3 = net.addHost( 'h3',mac="00:00:00:00:00:03" )

        h4 = net.addHost('h3',mac="00:00:00:00:00:04")

        s1 = net.addSwitch( 's1' )

        s2 = net.addSwitch( 's2' )

        s3 = net.addSwitch( 's3' )

        s4 = net.addSwitch('s4')

        s5 = net.addSwitch('s5')

        s6 = net.addSwitch('s6')

        c0 = net.addController( 'c0',controller=RemoteController,ip='127.0.0.1',port=6633 )

 

        linkopt1=dict(bw=10,delay='1ms',loss=0)

        linkopt2=dict(bw=8,loss=0)

        linkopt3=dict(bw=100,loss=0)
        

        net.addLink( h1,s1,**linkopt3)

        net.addLink( h2,**linkopt3)

        net.addLink(h4,s2,**linkopt3)

        net.addLink( h3,**linkopt3)


        net.addLink( s1,**linkopt1)

        net.addLink( s1,s3,**linkopt1)

        net.addLink(s1,s4,**linkopt1)

        net.addLink(s4,s5,**linkopt1)

        net.addLink(s5,s6,**linkopt1)

        net.addLink(s2,**linkopt1)
        net.addLink( s2,**linkopt2)

 

        net.build()

        c0.start()

        s1.start( [c0] )

        s2.start( [c0] )

        s3.start( [c0] )
        s4.start([c0])

        s5.start([c0])

        s6.start([c0])

        print("*** Running CLI")

        CLI( net )

        print("*** Stopping network")

        net.stop()

 

if __name__ == '__main__':

    setLogLevel( 'info' )

    topology()   

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。