Added mininet.topolib to store useful topologies.

This commit is contained in:
Bob Lantz
2010-03-05 15:07:00 -08:00
parent fd21c46f64
commit 11a6d400c5
+31
View File
@@ -0,0 +1,31 @@
"Library of potentially useful topologies for Mininet"
from mininet.topo import Topo, Node
class TreeTopo( Topo ):
"Topology for a tree network with a given depth and fanout."
def __init__( self, depth=1, fanout=2 ):
super( TreeTopo, self ).__init__()
# Build topology
self.addTree( 1, depth, fanout )
# Consider all switches and hosts 'on'
self.enable_all()
# It is OK that i is "unused" in the for loop.
# pylint: disable-msg=W0612
def addTree( self, n, depth, fanout ):
"""Add a subtree starting with node n.
returns: last node added"""
me = n
isSwitch = depth > 0
self._add_node( me, Node( is_switch=isSwitch ) )
if isSwitch:
for i in range( 0, fanout ):
child = n + 1
self._add_edge( me, child )
n = self.addTree( child, depth-1, fanout )
return n
# pylint: enable-msg=W0612