summaryrefslogtreecommitdiffstats
path: root/framework/src/onos/tools/test/topos/tower.py
diff options
context:
space:
mode:
authorAshlee Young <ashlee@onosfw.com>2015-09-09 22:15:21 -0700
committerAshlee Young <ashlee@onosfw.com>2015-09-09 22:15:21 -0700
commit13d05bc8458758ee39cb829098241e89616717ee (patch)
tree22a4d1ce65f15952f07a3df5af4b462b4697cb3a /framework/src/onos/tools/test/topos/tower.py
parent6139282e1e93c2322076de4b91b1c85d0bc4a8b3 (diff)
ONOS checkin based on commit tag e796610b1f721d02f9b0e213cf6f7790c10ecd60
Change-Id: Ife8810491034fe7becdba75dda20de4267bd15cd
Diffstat (limited to 'framework/src/onos/tools/test/topos/tower.py')
-rwxr-xr-xframework/src/onos/tools/test/topos/tower.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/framework/src/onos/tools/test/topos/tower.py b/framework/src/onos/tools/test/topos/tower.py
new file mode 100755
index 00000000..b75bfe40
--- /dev/null
+++ b/framework/src/onos/tools/test/topos/tower.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+
+from mininet.topo import Topo
+from mininet.cli import CLI
+from mininet.net import Mininet
+from mininet.node import RemoteController, OVSKernelSwitch
+from mininet.log import setLogLevel
+
+
+class TowerTopo( Topo ):
+ """Create a tower topology"""
+
+ def build( self, k=4, h=6 ):
+ spines = []
+ leaves = []
+ hosts = []
+
+ # Create the two spine switches
+ spines.append(self.addSwitch('s1'))
+ spines.append(self.addSwitch('s2'))
+
+ # Create two links between the spine switches
+ self.addLink(spines[0], spines[1])
+ #TODO add second link between spines when multi-link topos are supported
+ #self.addLink(spines[0], spines[1])
+
+ # Now create the leaf switches, their hosts and connect them together
+ i = 1
+ c = 0
+ while i <= k:
+ leaves.append(self.addSwitch('s1%d' % i))
+ for spine in spines:
+ self.addLink(leaves[i-1], spine)
+
+ j = 1
+ while j <= h:
+ hosts.append(self.addHost('h%d%d' % (i, j)))
+ self.addLink(hosts[c], leaves[i-1])
+ j+=1
+ c+=1
+
+ i+=1
+
+topos = { 'tower': TowerTopo }
+
+def run():
+ topo = TowerTopo()
+ net = Mininet( topo=topo, controller=RemoteController, autoSetMacs=True )
+ net.start()
+ CLI( net )
+ net.stop()
+
+if __name__ == '__main__':
+ setLogLevel( 'info' )
+ run()