Statistics
| Branch: | Tag: | Revision:

## mininet / mininet / topolib.py @ 21b2c2c4

 1 ```"Library of potentially useful topologies for Mininet" ``` ```from mininet.topo import Topo ``` ```from mininet.net import Mininet ``` ```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__() ``` ``` # Numbering: h1..N, s1..M ``` ``` self.hostNum = 1 ``` ``` self.switchNum = 1 ``` ``` # Build topology ``` ``` self.addTree( depth, fanout ) ``` ``` def addTree( self, depth, fanout ): ``` ``` """Add a subtree starting with node n. ``` ``` returns: last node added""" ``` ``` isSwitch = depth > 0 ``` ``` if isSwitch: ``` ``` node = self.addSwitch( 's%s' % self.switchNum ) ``` ``` self.switchNum += 1 ``` ``` for _ in range( fanout ): ``` ``` child = self.addTree( depth - 1, fanout ) ``` ``` self.addLink( node, child ) ``` ``` else: ``` ``` node = self.addHost( 'h%s' % self.hostNum ) ``` ``` self.hostNum += 1 ``` ``` return node ``` ```def TreeNet( depth=1, fanout=2, **kwargs ): ``` ``` "Convenience function for creating tree networks." ``` ``` topo = TreeTopo( depth, fanout ) ``` ``` return Mininet( topo, **kwargs ) ```