From 13d05bc8458758ee39cb829098241e89616717ee Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Wed, 9 Sep 2015 22:15:21 -0700 Subject: ONOS checkin based on commit tag e796610b1f721d02f9b0e213cf6f7790c10ecd60 Change-Id: Ife8810491034fe7becdba75dda20de4267bd15cd --- framework/src/onos/tools/test/topos/optical2.py | 84 +++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 framework/src/onos/tools/test/topos/optical2.py (limited to 'framework/src/onos/tools/test/topos/optical2.py') diff --git a/framework/src/onos/tools/test/topos/optical2.py b/framework/src/onos/tools/test/topos/optical2.py new file mode 100644 index 00000000..36cdbadd --- /dev/null +++ b/framework/src/onos/tools/test/topos/optical2.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python + +''' file: custom/optical.py ''' + +from mininet.topo import Topo +from mininet.net import Mininet +from mininet.cli import CLI +from mininet.log import setLogLevel, info +from mininet.link import Intf, Link +from mininet.node import RemoteController + +class NullIntf( Intf ): + "A dummy interface with a blank name that doesn't do any configuration" + def __init__( self, name, **params ): + self.name = '' + +class NullLink( Link ): + "A dummy link that doesn't touch either interface" + def makeIntfPair( cls, intf1, intf2, *args, **kwargs ): + pass + def delete( self ): + pass + +class OpticalTopo(Topo): + def addIntf( self, switch, intfName ): + "Add intf intfName to switch" + self.addLink( switch, switch, cls=NullLink, + intfName1=intfName, cls2=NullIntf ) + def __init__(self): + + # Initialize topology + Topo.__init__(self) + + # Add hosts and switches + h1 = self.addHost('h1') + h2 = self.addHost('h2') + h3 = self.addHost('h3') + h4 = self.addHost('h4') + h5 = self.addHost('h5') + h6 = self.addHost('h6') + + s1 = self.addSwitch('s1', dpid="0000ffffffff0001") + s2 = self.addSwitch('s2', dpid="0000ffffffff0002") + s3 = self.addSwitch('s3', dpid="0000ffffffff0003") + s4 = self.addSwitch('s4', dpid="0000ffffffff0004") + s5 = self.addSwitch('s5', dpid="0000ffffffff0005") + s6 = self.addSwitch('s6', dpid="0000ffffffff0006") + + + # Add links from hosts to OVS + self.addLink(s1, h1) + self.addLink(s2, h2) + self.addLink(s3, h3) + self.addLink(s4, h4) + self.addLink(s5, h5) + self.addLink(s6, h6) + + # add links from ovs to linc-oe + # sorry about the syntax :( + self.addIntf(s1,'tap29') + self.addIntf(s2,'tap30') + self.addIntf(s3,'tap31') + self.addIntf(s4,'tap32') + self.addIntf(s5,'tap33') + self.addIntf(s6,'tap34') + + # if you use, sudo mn --custom custom/optical.py, then register the topo: +topos = {'optical': ( lambda: OpticalTopo() )} + + +def run(): + c = RemoteController('c','127.0.0.1',6633) + net = Mininet( topo=OpticalTopo(),controller=None,autoSetMacs=True) + net.addController(c) + net.start() + + #installStaticFlows( net ) + CLI( net ) + net.stop() + +# if the script is run directly (sudo custom/optical.py): +if __name__ == '__main__': + setLogLevel('info') + run() -- cgit 1.2.3-korg