以前我使用以下命令创建mininet拓扑:
sudo mn --topo tree,depth=2,fanout=5 --controller=remote,ip=10.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13, --link tc,bw=1,delay=10ms
我需要为不同的链接指定自定义的bw
值。
如何以通用方式生成树,将depth
和fanout
值指定为TreeNet
提到的here?我需要一个setLink(int value, src, dest)
来修改创建的树的链接。
到现在为止我有这个:
#!/usr/bin/python
from functools import partial
from mininet.cli import CLI
from mininet.link import TCLink
from mininet.log import setLogLevel
from mininet.net import Mininet
from mininet.node import OVSKernelSwitch
from mininet.node import RemoteController
from mininet.topo import Topo
from mininet.util import dumpNodeConnections
class MyNet( Topo ):
def __init__( self ):
"Create custom topo."
# Initialize topology
Topo.__init__( self )
# Add hosts
h1 = self.addHost( 'h1' )
h2 = self.addHost( 'h2' )
...
h25 = self.addHost( 'h25' )
# Add switches
s1 = self.addSwitch( 's1' )
...
s6 = self.addSwitch( 's6' )
# Add links
self.addLink( s2, s1 ,bw=10)
self.addLink( s3, s1 ,bw=10)
self.addLink( s4, s1 ,bw=10)
self.addLink( s5, s1 ,bw=10)
self.addLink( s6, s1 ,bw=10)
self.addLink( h1, s2 ,bw=10)
self.addLink( h2, s2 ,bw=10)
self.addLink( h3, s2 ,bw=10)
self.addLink( h4, s2 ,bw=10)
self.addLink( h5, s2 ,bw=10)
self.addLink( h6, s3 ,bw=10)
self.addLink( h7, s3 ,bw=10)
self.addLink( h8, s3 ,bw=10)
self.addLink( h9, s3 ,bw=10)
self.addLink( h10, s3 ,bw=10)
self.addLink( h11, s4 ,bw=10)
...
self.addLink( h25, s6 ,bw=10)
topos = { 'MyNet': ( lambda: MyNet() ) }
我打电话是用:
#sudo mn --custom MyNet.py --topo MyNet --controller=remote,ip=10.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13 --link tc
这是很快做的。好像很管用。我从topolib.py那里得到一点
代码使用递归。函数addTree()在其内部调用。
相关问题 更多 >
编程相关推荐