Import scripts from old repository
diff --git a/onsdemo.py b/onsdemo.py
new file mode 100755
index 0000000..c0dda25
--- /dev/null
+++ b/onsdemo.py
@@ -0,0 +1,172 @@
+#!/usr/bin/python
+
+from mininet.topo import Topo
+from mininet.net import Mininet
+from mininet.node import RemoteController
+from mininet.cli import CLI
+from mininet.log import setLogLevel, info
+from mininet.node import OVSBridge
+from routinglib import BgpRouter, RoutedHost
+from onoslib import ONOSHostSdnipCluster
+
+onoses = [ '192.168.56.11', '192.168.56.12' ]
+
+class BgpRouterDeployTopo( Topo ):
+ "Our familiar ONS demo topology"
+
+ def __init__( self, *args, **kwargs ):
+ Topo.__init__( self, *args, **kwargs )
+ sw1 = self.addSwitch('sw1', dpid='00000000000000a1')
+ sw2 = self.addSwitch('sw2', dpid='00000000000000a2')
+ sw3 = self.addSwitch('sw3', dpid='00000000000000a3')
+ sw4 = self.addSwitch('sw4', dpid='00000000000000a4')
+ sw5 = self.addSwitch('sw5', dpid='00000000000000a5')
+ sw6 = self.addSwitch('sw6', dpid='00000000000000a6')
+
+ #Note this switch isn't part of the SDN topology
+ as6sw = self.addSwitch('as6sw', dpid='00000000000000a7', cls=OVSBridge)
+
+ #AS2 host
+ host3eth0 = { 'mac':'00:00:00:00:02:01', 'ipAddrs' : [ '192.168.10.1/24' ] }
+ host3eth1 = { 'mac':'00:00:00:00:02:02', 'ipAddrs' : [ '192.168.20.1/24' ] }
+ host3eth2 = { 'ipAddrs' : [ '172.16.20.254/24' ] }
+ host3Intfs = {'host3-eth0' : host3eth0,
+ 'host3-eth1' : host3eth1,
+ 'host3-eth2' : host3eth2 }
+ host3neigh = [{'address':'192.168.10.101', 'as':64513},
+ {'address':'192.168.20.101', 'as':64513}]
+ host3routes = ['127.16.10.0/24']
+
+ host3 = self.addHost( 'host3', interfaces=host3Intfs, asNum=65001,
+ neighbors=host3neigh, routes=host3routes,
+ cls=BgpRouter)
+
+ as2host = self.addHost( 'as2host', cls=RoutedHost, ip='172.16.20.1/24',
+ route='172.16.20.254' )
+
+
+ #AS3 host
+ host4eth0 = { 'mac':'00:00:00:00:03:01', 'ipAddrs' : [ '192.168.30.1/24' ] }
+ host4eth1 = { 'ipAddrs' : [ '172.16.30.254/24' ] }
+ host4Intfs = {'host4-eth0' : host4eth0,
+ 'host4-eth1' : host4eth1 }
+ host4neigh = [{'address':'192.168.30.101', 'as':64513}]
+ host4routes = ['172.16.30.0/24']
+ host4 = self.addHost( 'host4', interfaces=host4Intfs, asNum=65002,
+ neighbors=host4neigh, routes=host4routes,
+ cls=BgpRouter)
+
+ as3host = self.addHost( 'as3host', cls=RoutedHost, ip='172.16.30.1/24',
+ route='172.16.30.254' )
+
+
+ #AS4 host
+ host5eth0 = { 'mac':'00:00:00:00:04:01', 'ipAddrs' : [ '192.168.40.1/24' ] }
+ host5eth1 = { 'ipAddrs' : [ '172.16.40.254/24' ] }
+ host5Intfs = {'host5-eth0' : host5eth0,
+ 'host5-eth1' : host5eth1 }
+ host5neigh = [{'address':'192.168.40.101', 'as':64513}]
+ host5routes = ['172.16.40.0/24']
+ host5 = self.addHost( 'host5', interfaces=host5Intfs, asNum=65003,
+ neighbors=host5neigh, routes=host5routes,
+ cls=BgpRouter)
+
+ as4host = self.addHost( 'as4host', cls=RoutedHost, ip='172.16.40.1/24',
+ route='172.16.40.254' )
+
+ #AS6 host
+ #as6rs = self.addHost( 'as6rs' )
+ #as6rs2 = self.addHost( 'as6rs2' )
+ #as6router = self.addHost( 'as6router' )
+ #as6host = self.addHost( 'as6host' )
+
+ # Create a control network
+ onosCluster = ONOSHostSdnipCluster(controlSubnet='192.168.50.0/24',
+ dataSubnet='1.1.1.0/24', numInstances=2)
+ cs1 = onosCluster.create(self)
+ #cs0 = self.createControlNet((u'192.168.50.0/24'), (u'1.1.1.0/24'), numOnos=2)
+
+ # Set up BGP speakers
+ bgp1eth0 = { 'ipAddrs' : ['1.1.1.11/24'] }
+ bgp1eth1 = { 'mac':'00:00:00:00:00:01',
+ 'ipAddrs' : ['192.168.10.101/24',
+ '192.168.20.101/24',
+ '192.168.30.101/24',
+ '192.168.40.101/24',] }
+ bgp1Intfs = { 'BGP1-eth0' : bgp1eth0,
+ 'BGP1-eth1' : bgp1eth1 }
+ bgp1neigh = [{'address':'192.168.10.1', 'as':65001},
+ {'address':'192.168.20.1', 'as':65001},
+ {'address':'192.168.30.1', 'as':65002},
+ {'address':'192.168.40.1', 'as':65003},
+ {'address':'1.1.1.1', 'as':64513},
+ {'address':'1.1.1.2', 'as':64513},
+ {'address':'1.1.1.12', 'as':64513}]
+
+ bgp1 = self.addHost( "BGP1", interfaces=bgp1Intfs, asNum=64513,
+ neighbors=bgp1neigh, routes=[], cls=BgpRouter)
+
+ self.addLink( bgp1, cs1 )
+ self.addLink( bgp1, sw1 )
+
+ #bgp2eth0 = { 'ipAddrs' : ['1.1.1.12/24'] }
+ #bgp2eth1 = { 'mac':'00:00:00:00:00:02',
+ # 'ipAddrs' : ['192.168.10.102/24',
+ # '192.168.20.102/24',
+ # '192.168.30.102/24',
+ # '192.168.40.102/24',] }
+ #bgp2Intfs = { 'BGP2-eth0' : bgp2eth0,
+ # 'BGP2-eth1' : bgp2eth1 }
+
+ #bgp2 = self.addHost( "BGP2", cls=BgpRouter,
+ # quaggaConfFile = '../onsdemo/quagga-sdn2.conf',
+ # zebraConfFile = zebraConf,
+ # interfaces=bgp2Intfs )
+
+ #self.addLink( bgp2, cs0 )
+ #self.addLink( bgp2, sw4 )
+
+ #Links to the multihomed AS
+ self.addLink( host3, sw3 )
+ self.addLink( host3, sw5 )
+ self.addLink( as2host, host3 )
+ #Single links to the remaining two ASes
+ self.addLink( host4, sw2 )
+ self.addLink( as3host, host4 )
+ self.addLink( host5, sw6 )
+ self.addLink( as4host, host5 )
+ #AS3-AS4 link
+ #self.addLink( host4, host5)
+ #Add new AS6 to its bridge
+ #self.addLink( as6rs, as6sw )
+ #self.addLink( as6rs2, as6sw )
+ #self.addLink( as6router, as6sw )
+ #self.addLink( as6host, as6router )
+ #for i in range(1, 10):
+ # host = self.addHost('as6host%d' % i)
+ # self.addLink(host, as6router)
+
+ self.addLink( sw1, sw2 )
+ self.addLink( sw1, sw3 )
+ self.addLink( sw2, sw4 )
+ self.addLink( sw3, sw4 )
+ self.addLink( sw3, sw5 )
+ self.addLink( sw4, sw6 )
+ self.addLink( sw5, sw6 )
+ self.addLink( as6sw, sw4 )
+
+if __name__ == "__main__":
+ setLogLevel('debug')
+ topo = BgpRouterDeployTopo()
+
+ net = Mininet(topo=topo, controller=None)
+ for i in range(len(onoses)):
+ net.addController( RemoteController( 'c%s' % (i+1), ip=onoses[i], checkListening=False ) )
+
+ net.start()
+
+ CLI(net)
+
+ net.stop()
+
+ info("done\n")