diff options
Diffstat (limited to 'framework/src/onos/tools/test/topos/solar.py')
-rw-r--r-- | framework/src/onos/tools/test/topos/solar.py | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/framework/src/onos/tools/test/topos/solar.py b/framework/src/onos/tools/test/topos/solar.py deleted file mode 100644 index f316162a..00000000 --- a/framework/src/onos/tools/test/topos/solar.py +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/env python -from mininet.cli import CLI -from mininet.net import Mininet -from mininet.node import RemoteController, OVSKernelSwitch - -MAC = 12 -DPID = 16 - -class CustomCLI(CLI): - """Custom CLI to allow us to add our own commands.""" - - def __init__ (self, net): - """Init method for our custom CLI.""" - self.net = net - CLI.__init__(self, net) - -class Solar(object): - """ Create a tiered topology from semi-scratch in Mininet """ - - def __init__(self, cname='onos', cips=['192.168.56.1'], islands=3, edges=2, hosts=2): - """Create tower topology for mininet""" - - # We are creating the controller with local-loopback on purpose to avoid - # having the switches connect immediately. Instead, we'll set controller - # explicitly for each switch after configuring it as we want. - self.ctrls = [ RemoteController(cname, cip, 6653) for cip in cips ] - self.net = Mininet(controller=RemoteController, switch = OVSKernelSwitch, - build=False) - - self.cips = cips - self.spines = [] - self.leaves = [] - self.hosts = [] - for ctrl in self.ctrls: - self.net.addController(ctrl) - - # Create the two core switches and links between them - c1 = self.net.addSwitch('c1',dpid='1111000000000000') - c2 = self.net.addSwitch('c2',dpid='2222000000000000') - self.spines.append(c1) - self.spines.append(c2) - - self.net.addLink(c1, c2) - self.net.addLink(c2, c1) - - for i in range(1, islands + 1): - sc = self.createSpineClump(i, edges, hosts) - self.net.addLink(c1, sc[0]) - self.net.addLink(c2, sc[0]) - self.net.addLink(c1, sc[1]) - self.net.addLink(c2, sc[1]) - - def createSpineClump(self, island, edges, hosts): - """ Creates a clump of spine and edge switches with hosts""" - s1 = self.net.addSwitch('s%1d1' % island,dpid='00000%1d0100000000' % island) - s2 = self.net.addSwitch('s%1d2' % island,dpid='00000%1d0200000000' % island) - self.net.addLink(s1, s2) - self.net.addLink(s2, s1) - - for i in range(1, edges + 1): - es = self.createEdgeSwitch(island, i, hosts) - self.net.addLink(es, s1) - self.net.addLink(es, s2) - - self.spines.append(s1) - self.spines.append(s2) - - clump = [] - clump.append(s1) - clump.append(s2) - return clump - - def createEdgeSwitch(self, island, index, hosts): - """ Creates an edge switch in an island and ads hosts to it""" - sw = self.net.addSwitch('e%1d%1d' % (island, index),dpid='0000000%1d0000000%1d' % (island, index)) - self.leaves.append(sw) - - for j in range(1, hosts + 1): - host = self.net.addHost('h%d%d%d' % (island, index, j),ip='10.%d.%d.%d' % (island, index, j)) - self.net.addLink(host, sw) - self.hosts.append(host) - return sw - - def run(self): - """ Runs the created network topology and launches mininet cli""" - self.net.build() - self.net.start() - CustomCLI(self.net) - self.net.stop() - - def pingAll(self): - """ PingAll to create flows - for unit testing """ - self.net.pingAll() - - def stop(self): - "Stops the topology. You should call this after run_silent" - self.net.stop() |