Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Mininet自定义拓扑上设置带宽?_Python_Bandwidth_Topology_Mininet - Fatal编程技术网

Python 如何在Mininet自定义拓扑上设置带宽?

Python 如何在Mininet自定义拓扑上设置带宽?,python,bandwidth,topology,mininet,Python,Bandwidth,Topology,Mininet,我想在Mininet自定义拓扑上设置带宽 python代码是: #!/usr/bin/python from mininet.topo import Topo from mininet.net import Mininet from mininet.node import CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections from mininet.log impo

我想在Mininet自定义拓扑上设置带宽

python代码是:

#!/usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import CPULimitedHost
from mininet.link import TCLink
from mininet.util import dumpNodeConnections
from mininet.log import setLogLevel

class MyTopo( Topo ):
"Simple topology example."

    def __init__( self, **opts):
        "Create custom topo."

        # Initialize topology
        Topo.__init__( self, **opts )

        # Add hosts and switches
        h1 = self.addHost('h1')        
        h2 = self.addHost( 'h2' )

        s3 = self.addSwitch( 's3' )
        s1 = self.addSwitch( 's1' )
        s2 = self.addSwitch( 's2' )

        # Add links
        self.addLink(h1,s1,bw=10)
        self.addLink(h2,s3,bw=20)
        self.addLink(s3,s2,bw=10)
        self.addLink(s1,s3,bw=10)

topos = { 'mytopo': ( lambda: MyTopo() ) }
但它有错误

------------------------------------------------------------------
Caught exception. Cleaning up...
TypeError: __init__() got an unexpected keyword argument 'bw'
------------------------------------------------------------------
我能做什么?
如何在Mininet自定义拓扑上设置带宽?

启动Mininet时,添加一个附加参数
--link=tc
您应该使用
--link
参数。例如:
sudo mn——拓扑树,深度=2,扇出=5——控制器=远程,ip=10.0.0.1,端口=6633——交换机ovsk,协议=OpenFlow13,-链路tc,bw=1,延迟=10ms


我将很快更新一个示例。

在python文件中说明带宽和延迟,但在运行该文件时,添加

--链路=tc


您应该在
self.addLink(h1,s1,bw=10)上添加
cls=TCLink

因此,代码将是self.addLink(h1,s1,cls=TCLink,bw=10)


添加到另一个
addLink
以使其工作如果使用CLI命令
mn
运行Mininet,请添加
--link=tc

如果在python脚本中使用
run()
函数启动Mininet,请使用

net = Mininet(topo = MyTopo(), link = TCLink)
net.start()

从Mininet开始,使用TC链路以实现带宽规格。

但是,如果您的自定义拓扑具有数百条链路,且所有链路都具有不同的带宽要求,该怎么办?这在命令行中输入会很愚蠢,有没有办法在python文件中指定它?@johnsolaro Mininet无法模拟如此大的网络,您必须寻找其他解决方案,例如MiniNeXT。这里bw=1相当于1Mbps。如何将链接的bw设置为1Gbps,因为它的bw值在1-1000之间?请问一个新问题这应该是可以接受的答案,因为它使用类似于Python的@kown示例