Tom Tofigh

added optical-2.py

added oe-nonlinear-topo10

Change-Id: I1add3ddc8c775802ee89c7ca8c88b62382e2613d
This diff is collapsed. Click to expand it.
......@@ -31,12 +31,6 @@
"ports": [ { "port": 30, "speed": 0, "type": "FIBER" }, { "port": 31, "speed": 0, "type": "FIBER" } ]
},
{
"uri": "of:0000ffffffffff06", "mac": "ffffffffffff06", "type": "ROADM",
"mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?", "name": "DFW-M10",
"annotations": { "latitude": 32.8, "longitude": 97.1, "optical.regens": 3 },
"ports": [ { "port": 30, "speed": 0, "type": "FIBER" }, { "port": 31, "speed": 0, "type": "FIBER" } ]
},
{
"uri": "of:0000ffffffffff07", "mac": "ffffffffffff07", "type": "ROADM",
"mfr": "Linc", "hw": "OE", "sw": "?", "serial": "?", "name": "CHG-N10",
"annotations": { "latitude": 41.8, "longitude": 120.1, "optical.regens": 3 },
......@@ -67,31 +61,31 @@
"ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
},
{
"uri": "of:0000ffffffff0003", "mac": "ffffffffff0003", "type": "SWITCH",
"uri": "of:0000ffffffff0002", "mac": "ffffffffff0003", "type": "SWITCH",
"mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?", "name": "LAX-R10",
"annotations": { "latitude": 33.9, "longitude": 118.4 },
"ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
},
{
"uri": "of:0000ffffffff0004", "mac": "ffffffffff0004", "type": "SWITCH",
"uri": "of:0000ffffffff0003", "mac": "ffffffffff0004", "type": "SWITCH",
"mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?", "name": "SDG-R10",
"annotations": { "latitude": 32.8, "longitude": 117.1 },
"ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
},
{
"uri": "of:0000ffffffff0007", "mac": "ffffffffff0007", "type": "SWITCH",
"uri": "of:0000ffffffff0004", "mac": "ffffffffff0007", "type": "SWITCH",
"mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?", "name": "CHG-R10",
"annotations": { "latitude": 41.8, "longitude": 120.1 },
"ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
},
{
"uri": "of:0000ffffffff0009", "mac": "ffffffffff0009", "type": "SWITCH",
"uri": "of:0000ffffffff0005", "mac": "ffffffffff0009", "type": "SWITCH",
"mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?", "name": "JFK-R10",
"annotations": { "latitude": 40.8, "longitude": 73.1 },
"ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
},
{
"uri": "of:0000ffffffff000A", "mac": "ffffffffff000A", "type": "SWITCH",
"uri": "of:0000ffffffff0006", "mac": "ffffffffff000A", "type": "SWITCH",
"mfr": "Linc", "hw": "PK", "sw": "?", "serial": "?", "name": "ATL-R10",
"annotations": { "latitude": 33.8, "longitude": 84.1 },
"ports": [ { "port": 1, "speed": 10000, "type": "COPPER" }, { "port": 2, "speed": 100000, "type": "FIBER" } ]
......
#!/usr/bin/env python
''' file: custom/optical.py '''
from mininet.node import RemoteController
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.util import irange
switches = []
class OpticalTopo( Topo ):
def build( self, n=6, tapStart=29 ):
global switches
# Add hosts and switches
hosts = []
switches = []
for i in irange( 1, n ):
h = self.addHost( 'h%d' % i )
s = self.addSwitch( 's%d' % i, dpid='0000ffffffff%04d' % i )
self.addLink( h, s )
hosts.append( h )
switches.append( s )
# Add optical tap interfaces
tapNum = tapStart
#for sw in switches:
# self.addLink( sw, sw, intfName1='%s-eth0' % sw, intfName2='tap%d' % tapNum )
#Add tap interface up
#sudo ip link set dev tap25 up
# tapNum += 1
# if you use, sudo mn --custom custom/optical.py, then register the topo:
#sudo mn --custom ~/mininet/custom/optical-2.py --topo optical,6 --controller=remote
#sudo ./mininet/custom/optical-2.py
topos = { 'optical': OpticalTopo }
def installStaticFlows( net ):
for swName in [ 's1', 's2', 's3', 's4', 's5', 's6' ]:
info( 'Adding flows to %s...' % swName )
sw = net[ swName ]
sw.dpctl( 'add-flow', 'in_port=1,actions=output=2' )
sw.dpctl( 'add-flow', 'in_port=2,actions=output=1' )
info( sw.dpctl( 'dump-flows' ) )
def run():
net = Mininet( topo=OpticalTopo(), controller=RemoteController )
net.start()
#installStaticFlows( net )
tapStart = 29
for sw in switches:
net.get(sw).attach( 'tap%d' %tapStart )
tapStart += 1
CLI( net )
net.stop()
# if the script is run directly (sudo custom/optical.py):
if __name__ == '__main__':
setLogLevel( 'info' )
run()