diff --git a/tools/test/topos/opticalTest.py b/tools/test/topos/opticalTest.py
new file mode 100644
index 0000000..3997bfc
--- /dev/null
+++ b/tools/test/topos/opticalTest.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+
+from opticalUtils import MininetOE, OpticalSwitch, OpticalLink
+from mininet.topo import Topo
+from mininet.log import setLogLevel
+from mininet.node import RemoteController
+from mininet.cli import CLI
+
+class SmallOpticalTopo( Topo ):
+
+    def build( self ):
+        o1ann = { "latitude": 37.6, "longitude": -122.3, "optical.regens": 0 }
+        O1 = self.addSwitch( 'SFO-W10', dpid='0000ffffffffff01', annotations=o1ann, cls=OpticalSwitch )
+        o2ann = { "latitude": 37.3, "longitude": -121.9, "optical.regens": 0 }
+        O2 = self.addSwitch( 'SJC-W10', dpid='0000ffffffffff02', annotations=o2ann, cls=OpticalSwitch )
+        o3ann = { "latitude": 33.9, "longitude": -118.4, "optical.regens": 0 }
+        O3 = self.addSwitch( 'LAX-W10', dpid='0000ffffffffff03', annotations=o3ann, cls=OpticalSwitch )
+        o4ann = { "latitude": 32.8, "longitude": -117.1, "optical.regens": 3 }
+        O4 = self.addSwitch( 'SDG-W10', dpid='0000ffffffffff04', annotations=o4ann, cls=OpticalSwitch )
+        o5ann = { "latitude": 44.8, "longitude": -93.1, "optical.regens": 3 }
+        O5 = self.addSwitch( 'MSP-M10', dpid='0000ffffffffff05', annotations=o5ann, cls=OpticalSwitch )
+        o6ann = { "latitude": 32.8, "longitude": -97.1, "optical.regens": 3 }
+        O6 = self.addSwitch( 'DFW-M10', dpid='0000ffffffffff06', annotations=o6ann, cls=OpticalSwitch )
+        o7ann = { "latitude": 41.8, "longitude": -87.6, "optical.regens": 3 }
+        O7 = self.addSwitch( 'CHG-N10', dpid='0000ffffffffff07', annotations=o7ann, cls=OpticalSwitch )
+        o8ann = { "latitude": 38.8, "longitude": -77.1, "optical.regens": 3 }
+        O8 = self.addSwitch( 'IAD-M10', dpid='0000ffffffffff08', annotations=o8ann, cls=OpticalSwitch )
+        o9ann = { "latitude": 40.8, "longitude": -73.1, "optical.regens": 0 }
+        O9 = self.addSwitch( 'JFK-M10', dpid='0000ffffffffff09', annotations=o9ann, cls=OpticalSwitch )
+        o10ann = { "latitude": 33.8, "longitude": -84.1, "optical.regens": 0 }
+        O10 = self.addSwitch( 'ATL-S10', dpid='0000ffffffffff0A', annotations=o10ann, cls=OpticalSwitch )
+
+        
+        SFOR10 = self.addSwitch( 'SFO-R10', dpid='0000ffffffff0001', annotations={"latitude": 37.6, "longitude": -122.3} )
+        LAXR10 = self.addSwitch( 'LAX-R10', dpid='0000ffffffff0002', annotations={ "latitude": 33.9, "longitude": -118.4 } )
+        SDGR10 = self.addSwitch( 'SDG-R10', dpid='0000ffffffff0003', annotations={ "latitude": 32.8, "longitude": -117.1 } )
+        CHGR10 = self.addSwitch( 'CHG-R10', dpid='0000ffffffff0004', annotations={ "latitude": 41.8, "longitude": -87.6 } )
+        JFKR10 = self.addSwitch( 'JFK-R10', dpid='0000ffffffff0005', annotations={ "latitude": 40.8, "longitude": -73.1 } )
+        ATLR10 = self.addSwitch( 'ATL-R10', dpid='0000ffffffff0006', annotations={ "latitude": 33.8, "longitude": -84.1 } )
+
+        self.addLink( O1, O2, port1=50, port2=30, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O2, O3, port1=50, port2=30, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O3, O4, port1=50, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O1, O5, port1=20, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O2, O5, port1=20, port2=20, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O3, O6, port1=20, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O4, O6, port1=20, port2=20, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O5, O6, port1=30, port2=40, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O5, O7, port1=40, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O6, O8, port1=30, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O7, O8, port1=20, port2=30, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O7, O9, port1=30, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O8, O10, port1=20, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+        self.addLink( O9, O10, port1=20, port2=20, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=OpticalLink )
+
+        self.addLink( SFOR10, O1, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+        self.addLink( LAXR10, O3, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+        # added second tap
+        self.addLink( LAXR10, O3, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+        self.addLink( SDGR10, O4, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+        self.addLink( CHGR10, O7, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+        self.addLink( JFKR10, O9, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+        self.addLink( ATLR10, O10, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+
+        h1 = self.addHost( 'h1' )
+        h2 = self.addHost( 'h2' )
+        h3 = self.addHost( 'h3' )
+        h4 = self.addHost( 'h4' )
+        h5 = self.addHost( 'h5' )
+        h6 = self.addHost( 'h6' )
+
+        self.addLink( SFOR10, h1, port1=1 )
+        self.addLink( LAXR10, h2, port1=1 )
+        self.addLink( SDGR10, h3, port1=1 )
+        self.addLink( CHGR10, h4, port1=1 )
+        self.addLink( JFKR10, h5, port1=1 )
+        self.addLink( ATLR10, h6, port1=1 )
+
+if __name__ == '__main__':
+    import sys
+    if len( sys.argv ) >= 2:
+        controllers = sys.argv[1:]
+    else:
+        print 'Usage: ./opticalUtils.py (<Controller IP>)+'
+        print 'Using localhost...\n'
+        controllers = [ '127.0.0.1' ]
+
+    setLogLevel( 'info' )
+    net = MininetOE( topo=SmallOpticalTopo(), controller=None, autoSetMacs=True )
+    net.addControllers( controllers )
+    net.start()
+    CLI( net )
+    net.stop()
diff --git a/tools/test/topos/opticalTestBig.py b/tools/test/topos/opticalTestBig.py
new file mode 100644
index 0000000..7dd87bb
--- /dev/null
+++ b/tools/test/topos/opticalTestBig.py
@@ -0,0 +1,384 @@
+#!/usr/bin/python
+
+from opticalUtils import MininetOE, OpticalSwitch, OpticalLink
+from mininet.topo import Topo
+from mininet.log import setLogLevel
+from mininet.node import RemoteController
+from mininet.cli import CLI
+
+class BigOpticalTopo( Topo ):
+
+	def build( self ):
+		# Optical layer ROADMs
+		o1ann = { "latitude": 32.508086, "longitude": -99.741564, "optical.regens": 0 }
+		O1 = self.addSwitch( 'ABLNTXRO', dpid='0000ffffffffff01', annotations=o1ann, cls=OpticalSwitch )
+		o2ann = { "latitude": 35.084446, "longitude": -106.649719, "optical.regens": 0 }
+		O2 = self.addSwitch( 'ALBQNMMA', dpid='0000ffffffffff02', annotations=o2ann, cls=OpticalSwitch )
+		o3ann = { "latitude": 42.652222, "longitude":	-73.758333, "optical.regens": 0 }
+		O3 = self.addSwitch( 'ALBYNYSS', dpid='0000ffffffffff03', annotations=o3ann, cls=OpticalSwitch )
+		o4ann = { "latitude": 33.755833, "longitude":	-97.743057, "optical.regens": 5 }
+		O4 = self.addSwitch( 'ATLNGATL', dpid='0000ffffffffff04', annotations=o4ann, cls=OpticalSwitch )  # ATLNGATL Connected to packet node  
+		o5ann = { "latitude": 42.882778, "longitude":	-78.877778, "optical.regens": 0 }
+		O5 = self.addSwitch( 'BFLONYFR', dpid='0000ffffffffff05', annotations=o5ann, cls=OpticalSwitch )
+		o6ann = { "latitude": 45.781667, "longitude":	-108.509167, "optical.regens": 0 }
+		O6 = self.addSwitch( 'BLNGMTMA', dpid='0000ffffffffff06', annotations=o6ann, cls=OpticalSwitch )
+		o7ann = { "latitude": 39.293781, "longitude":	-76.614127, "optical.regens": 0 }
+		O7 = self.addSwitch( 'BLTMMDCH', dpid='0000ffffffffff07', annotations=o7ann, cls=OpticalSwitch )
+		o8ann = { "latitude": 33.517223, "longitude":	-86.812225, "optical.regens": 0 }
+		O8 = self.addSwitch( 'BRHMALMT', dpid='0000ffffffffff08', annotations=o8ann, cls=OpticalSwitch )
+		o9ann = { "latitude": 46.836379, "longitude":	-100.796917, "optical.regens": 0 }
+		O9 = self.addSwitch( 'BSMRNDJC', dpid='0000ffffffffff09', annotations=o9ann, cls=OpticalSwitch )
+		o10ann = { "latitude": 30.449722, "longitude":	-91.184167, "optical.regens": 0 }
+		O10 = self.addSwitch( 'BTRGLAMA', dpid='0000ffffffffff0A', annotations=o10ann, cls=OpticalSwitch )
+		o11ann = { "latitude": 41.881484, "longitude":	-87.640432, "optical.regens": 4 }
+		O11 = self.addSwitch( 'CHCGILCL', dpid='0000ffffffffff0B', annotations=o11ann, cls=OpticalSwitch )
+		o12ann = { "latitude": 35.224924, "longitude":	-80.837502, "optical.regens": 0 }
+		O12 = self.addSwitch( 'CHRLNCCA', dpid='0000ffffffffff0C', annotations=o12ann, cls=OpticalSwitch )
+		o13ann = { "latitude": 32.785278, "longitude":	-79.938056, "optical.regens": 0 }
+		O13 = self.addSwitch( 'CHTNSCDT', dpid='0000ffffffffff0D', annotations=o13ann, cls=OpticalSwitch )
+		o14ann = { "latitude": 41.498333, "longitude":	-81.686943, "optical.regens": 0 }
+		O14 = self.addSwitch( 'CLEVOH02', dpid='0000ffffffffff0E', annotations=o14ann, cls=OpticalSwitch )
+		o15ann = { "latitude": 39.965279, "longitude":	-82.996666, "optical.regens": 0 }
+		O15 = self.addSwitch( 'CLMBOH11', dpid='0000ffffffffff0F', annotations=o15ann, cls=OpticalSwitch )
+		o16ann = { "latitude": 42.36745, "longitude":	-71.084918, "optical.regens": 0 }
+		O16 = self.addSwitch( 'CMBRMA01', dpid='0000ffffffffff10', annotations=o16ann, cls=OpticalSwitch )
+		o17ann = { "latitude": 39.102778, "longitude":	-84.516944, "optical.regens": 0 }
+		O17 = self.addSwitch( 'CNCNOHWS', dpid='0000ffffffffff11', annotations=o17ann, cls=OpticalSwitch )
+		o18ann = { "latitude": 32.797524, "longitude":	-96.780431, "optical.regens": 0 }
+		O18 = self.addSwitch( 'DLLSTXTL', dpid='0000ffffffffff12', annotations=o18ann, cls=OpticalSwitch )   # DLLSTXTL Connected to packet node 
+		o19ann = { "latitude": 39.744999, "longitude":	-104.996391, "optical.regens": 0 }
+		O19 = self.addSwitch( 'DNVRCOMA', dpid='0000ffffffffff13', annotations=o19ann, cls=OpticalSwitch )
+		o20ann = { "latitude": 42.332779, "longitude":	-83.054169, "optical.regens": 5 }
+		O20 = self.addSwitch( 'DTRTMIBA', dpid='0000ffffffffff14', annotations=o20ann, cls=OpticalSwitch )   
+		o21ann = { "latitude": 31.756389, "longitude":	-106.483611, "optical.regens": 0 }
+		O21 = self.addSwitch( 'ELPSTXMA', dpid='0000ffffffffff15', annotations=o21ann, cls=OpticalSwitch )
+		o22ann = { "latitude": 36.73923, "longitude": -119.79423, "optical.regens": 0 }
+		O22 = self.addSwitch( 'FRSNCA01', dpid='0000ffffffffff16', annotations=o22ann, cls=OpticalSwitch )
+		o23ann = { "latitude": 36.072222, "longitude":	-79.793889, "optical.regens": 0 }
+		O23 = self.addSwitch( 'GNBONCEU', dpid='0000ffffffffff17', annotations=o23ann, cls=OpticalSwitch )
+		o24ann = { "latitude": 41.765833, "longitude":	-72.676389, "optical.regens": 0 }
+		O24 = self.addSwitch( 'HRFRCT03', dpid='0000ffffffffff18', annotations=o24ann, cls=OpticalSwitch )
+		o25ann = { "latitude": 29.748333, "longitude":	-95.36528, "optical.regens": 0 }
+		O25 = self.addSwitch( 'HSTNTX01', dpid='0000ffffffffff19', annotations=o25ann, cls=OpticalSwitch )
+		o26ann = { "latitude": 30.33071, "longitude":	-81.43, "optical.regens": 0 }
+		O26 = self.addSwitch( 'JCVLFLCL', dpid='0000ffffffffff1A', annotations=o26ann, cls=OpticalSwitch )
+		o27ann = { "latitude": 39.096649, "longitude":	-94.578716, "optical.regens": 0 }
+		O27 = self.addSwitch( 'KSCYMO09', dpid='0000ffffffffff1B', annotations=o27ann, cls=OpticalSwitch )
+		o28ann = { "latitude": 40.5899999,"longitude":	-73.6699993, "optical.regens": 0 }
+		O28 = self.addSwitch( 'Island', dpid='0000ffffffffff1C', annotations=o28ann, cls=OpticalSwitch )    
+		o29ann = { "latitude": 34.051227, "longitude":	-118.252958, "optical.regens": 0 }
+		O29 = self.addSwitch( 'LSANCA03', dpid='0000ffffffffff1D', annotations=o29ann, cls=OpticalSwitch ) # LSANCA03 Connected to packet node 
+		o30ann = { "latitude": 36.168056, "longitude":	-115.138889, "optical.regens": 0 }
+		O30 = self.addSwitch( 'LSVGNV02', dpid='0000ffffffffff1E', annotations=o30ann, cls=OpticalSwitch )
+		o31ann = { "latitude":38.249167, "longitude":	-85.760833, "optical.regens": 0 }
+		O31 = self.addSwitch( 'LSVLKYCS', dpid='0000ffffffffff1F', annotations=o31ann, cls=OpticalSwitch )
+		o32ann = { "latitude": 34.740833, "longitude":	-92.271942, "optical.regens": 2 }
+		O32 = self.addSwitch( 'LTRKARFR', dpid='0000ffffffffff20', annotations=o32ann, cls=OpticalSwitch )
+		o33ann = { "latitude": 25.779167, "longitude":	-80.195, "optical.regens": 0 }
+		O33 = self.addSwitch( 'MIAMFLAC', dpid='0000ffffffffff21', annotations=o33ann, cls=OpticalSwitch )
+		o34ann = { "latitude": 43.037224, "longitude":	-87.922501, "optical.regens": 0 }
+		O34 = self.addSwitch( 'MILWWIHE', dpid='0000ffffffffff22', annotations=o34ann, cls=OpticalSwitch )
+		o35ann = { "latitude": 35.145158, "longitude":	-90.048058, "optical.regens": 0 }
+		O35 = self.addSwitch( 'MMPHTNMA', dpid='0000ffffffffff23', annotations=o35ann, cls=OpticalSwitch )
+		o36ann = { "latitude": 44.977365, "longitude":	-93.26718, "optical.regens": 0 }
+		O36 = self.addSwitch( 'MPLSMNDT', dpid='0000ffffffffff24', annotations=o36ann, cls=OpticalSwitch )   # MPLSMNDT Connected to packet node 
+		o37ann = { "latitude": 36.853333, "longitude":	-76.29, "optical.regens": 0 }
+		O37 = self.addSwitch( 'NRFLVABS', dpid='0000ffffffffff25', annotations=o37ann, cls=OpticalSwitch )
+		o38ann = { "latitude": 36.163955, "longitude":	-86.775558, "optical.regens": 0 }
+		O38 = self.addSwitch( 'NSVLTNMT', dpid='0000ffffffffff26', annotations=o38ann, cls=OpticalSwitch )
+		o39ann = { "latitude": 29.949806, "longitude":	-90.07222, "optical.regens": 0 }
+		O39 = self.addSwitch( 'NWORLAMA', dpid='0000ffffffffff27', annotations=o39ann, cls=OpticalSwitch )
+		o40ann = { "latitude": 40.734408, "longitude":	-74.177978, "optical.regens": 0 }
+		O40 = self.addSwitch( 'NWRKNJ02', dpid='0000ffffffffff28', annotations=o40ann, cls=OpticalSwitch )  # NWRKNJ02 Connected to packet node 
+		o41ann = { "latitude": 40.767497, "longitude":	-73.989713, "optical.regens": 0 }
+		O41 = self.addSwitch( 'NYCMNY54', dpid='0000ffffffffff29', annotations=o41ann, cls=OpticalSwitch )
+		o42ann = { "latitude": 35.470833, "longitude":	-97.515274, "optical.regens": 0 }
+		O42 = self.addSwitch( 'OKCYOKCE', dpid='0000ffffffffff2A', annotations=o42ann, cls=OpticalSwitch )
+		o43ann = { "latitude": 37.805556, "longitude":	-122.268889, "optical.regens": 2 }
+		O43 = self.addSwitch( 'OKLDCA03', dpid='0000ffffffffff2B', annotations=o43ann, cls=OpticalSwitch )
+		o44ann = { "latitude": 41.259167, "longitude":-95.940277, "optical.regens": 0 }
+		O44 = self.addSwitch( 'OMAHNENW', dpid='0000ffffffffff2C', annotations=o44ann, cls=OpticalSwitch )
+		o45ann = { "latitude": 28.543279, "longitude":	-81.377502, "optical.regens": 0 }
+		O45 = self.addSwitch( 'ORLDFLMA', dpid='0000ffffffffff2D', annotations=o45ann, cls=OpticalSwitch )  # ORLDFLMA Connected to packet node 
+		o46ann = { "latitude": 39.946446, "longitude":	-75.184139, "optical.regens": 0 }
+		O46 = self.addSwitch( 'PHLAPASL', dpid='0000ffffffffff2E', annotations=o46ann, cls=OpticalSwitch )
+		o47ann = { "latitude": 33.450361, "longitude":	-112.07709, "optical.regens": 0 }
+		O47 = self.addSwitch( 'PHNXAZMA', dpid='0000ffffffffff2F', annotations=o47ann, cls=OpticalSwitch )  # PHNXAZMA Connected to packet node 
+		o48ann = { "latitude":40.441387, "longitude":	-79.995552, "optical.regens": 0 }
+		O48 = self.addSwitch( 'PITBPADG', dpid='0000ffffffffff30', annotations=o48ann, cls=OpticalSwitch )
+		o49ann = { "latitude":41.818889, "longitude":	-71.415278, "optical.regens": 0 }
+		O49 = self.addSwitch( 'PRVDRIGR', dpid='0000ffffffffff31', annotations=o49ann, cls=OpticalSwitch )
+		o50ann = { "latitude": 45.522499, "longitude":	-122.678055, "optical.regens": 2 }
+		O50 = self.addSwitch( 'PTLDOR62', dpid='0000ffffffffff32', annotations=o50ann, cls=OpticalSwitch )
+		o51ann = { "latitude": 37.540752, "longitude":	-77.436096, "optical.regens": 0 }
+		O51 = self.addSwitch( 'RCMDVAGR', dpid='0000ffffffffff33', annotations=o51ann, cls=OpticalSwitch )
+		o52ann = { "latitude": 35.779656, "longitude":	-78.640831, "optical.regens": 0 }
+		O52 = self.addSwitch( 'RLGHNCMO', dpid='0000ffffffffff34', annotations=o52ann, cls=OpticalSwitch )
+		o53ann = { "latitude": 43.157222, "longitude":	-77.616389, "optical.regens": 0 }
+		O53 = self.addSwitch( 'ROCHNYXA', dpid='0000ffffffffff35', annotations=o53ann, cls=OpticalSwitch )  # ROCHNYXA Connected to packet node 
+		o54ann = { "latitude": 38.578609, "longitude":	-121.487221, "optical.regens": 0 }
+		O54 = self.addSwitch( 'SCRMCA01', dpid='0000ffffffffff36', annotations=o54ann, cls=OpticalSwitch )
+		o55ann = { "latitude": 41.415278, "longitude":	-75.649167, "optical.regens": 0 }
+		O55 = self.addSwitch( 'SCTNPA01', dpid='0000ffffffffff37', annotations=o55ann, cls=OpticalSwitch )
+		o56ann = { "latitude": 40.767776, "longitude":	-111.888336, "optical.regens": 0 }
+		O56 = self.addSwitch( 'SLKCUTMA', dpid='0000ffffffffff38', annotations=o56ann, cls=OpticalSwitch )
+		o57ann = { "latitude": 29.429445, "longitude":	-98.488892, "optical.regens": 0 }
+		O57 = self.addSwitch( 'SNANTXCA', dpid='0000ffffffffff39', annotations=o57ann, cls=OpticalSwitch )  # SNANTXCA Connected to packet node 
+		o58ann = { "latitude": 34.418889, "longitude":	-119.7, "optical.regens": 0 }
+		O58 = self.addSwitch( 'SNBBCA01', dpid='0000ffffffffff40', annotations=o58ann, cls=OpticalSwitch )
+		o59ann = { "latitude":32.746944, "longitude":	-117.158611, "optical.regens": 0 }
+		O59= self.addSwitch( 'SNDGCA02', dpid='0000ffffffffff41', annotations=o59ann, cls=OpticalSwitch )
+		o60ann = { "latitude":37.785143, "longitude":	-122.397263, "optical.regens": 0 }
+		O60 = self.addSwitch( 'SNFCCA21', dpid='0000ffffffffff42', annotations=o60ann, cls=OpticalSwitch )
+		o61ann = { "latitude": 37.333333, "longitude":	-121.892778, "optical.regens": 0 }
+		O61 = self.addSwitch( 'SNJSCA02', dpid='0000ffffffffff43', annotations=o61ann, cls=OpticalSwitch )   # SNJSCA02 Connected to packet node 
+		o62ann = { "latitude": 39.795278, "longitude":	-89.649444, "optical.regens": 0 }
+		O62 = self.addSwitch( 'SPFDILSD', dpid='0000ffffffffff44', annotations=o62ann, cls=OpticalSwitch )
+		o63ann = { "latitude": 47.654724, "longitude":	-117.419167, "optical.regens": 0 }
+		O63 = self.addSwitch( 'SPKNWA01', dpid='0000ffffffffff45', annotations=o63ann, cls=OpticalSwitch )
+		o64ann = { "latitude": 38.633335, "longitude":	-90.215279, "optical.regens": 0 }
+		O64 = self.addSwitch( 'STLSMO09', dpid='0000ffffffffff46', annotations=o64ann, cls=OpticalSwitch )
+		o65ann = { "latitude": 47.606945, "longitude":	-122.333336, "optical.regens": 0 }
+		O65 = self.addSwitch( 'STTLWA06', dpid='0000ffffffffff47', annotations=o65ann, cls=OpticalSwitch )
+		o66ann = { "latitude": 43.049444, "longitude":	-76.1475, "optical.regens": 3 }
+		O66 = self.addSwitch( 'SYRCNYSU', dpid='0000ffffffffff48', annotations=o66ann, cls=OpticalSwitch )
+		o67ann = { "latitude": 28.0225, "longitude": -82.522778, "optical.regens": 0 }
+		O67 = self.addSwitch( 'TAMQFLFN', dpid='0000ffffffffff49', annotations=o67ann, cls=OpticalSwitch )
+		o68ann = { "latitude": 32.224444, "longitude":	-110.968333, "optical.regens": 0 }
+		O68 = self.addSwitch( 'TCSNAZMA', dpid='0000ffffffffff4A', annotations=o68ann, cls=OpticalSwitch )
+		o69ann = { "latitude": 30.456389,"longitude": -84.290833, "optical.regens": 0 }
+		O69 = self.addSwitch( 'TLHSFLAT', dpid='0000ffffffffff4B', annotations=o69ann, cls=OpticalSwitch )
+		o70ann = { "latitude": 41.65,"longitude": -83.538056, "optical.regens": 2 }
+		O70 = self.addSwitch( 'TOLDOH21', dpid='0000ffffffffff4C', annotations=o70ann, cls=OpticalSwitch )
+		o71ann = { "latitude": 36.151669,"longitude": -95.985832, "optical.regens": 0 }
+		O71 = self.addSwitch( 'TULSOKTB', dpid='0000ffffffffff4D', annotations=o71ann, cls=OpticalSwitch )
+		o72ann = { "latitude": 38.88306	,"longitude": -77.01028, "optical.regens": 0 }
+		O72 = self.addSwitch( 'WASHDCSW', dpid='0000ffffffffff4E', annotations=o72ann, cls=OpticalSwitch )  # WASHDCSW  Connected to packet node
+		o73ann = { "latitude": 39.739167,"longitude": -75.553889, "optical.regens": 0 }
+		O73 = self.addSwitch( 'WLMGDE01', dpid='0000ffffffffff4F', annotations=o73ann, cls=OpticalSwitch )
+		o74ann = { "latitude": 26.709391,"longitude": -80.05278, "optical.regens": 0 }
+		O74 = self.addSwitch( 'WPBHFLAN', dpid='0000ffffffffff50', annotations=o74ann, cls=OpticalSwitch )
+  
+
+		# Packet Layer switches  
+		''' # from opticalTest.py
+        SFOR10 = self.addSwitch( 'SFO-R10', dpid='0000ffffffff0001', annotations={"latitude": 37.6, "longitude": -122.3} )
+        LAXR10 = self.addSwitch( 'LAX-R10', dpid='0000ffffffff0002', annotations={ "latitude": 33.9, "longitude": -118.4 } )
+        SDGR10 = self.addSwitch( 'SDG-R10', dpid='0000ffffffff0003', annotations={ "latitude": 32.8, "longitude": -117.1 } )
+        CHGR10 = self.addSwitch( 'CHG-R10', dpid='0000ffffffff0004', annotations={ "latitude": 41.8, "longitude": -87.6 } )
+        JFKR10 = self.addSwitch( 'JFK-R10', dpid='0000ffffffff0005', annotations={ "latitude": 40.8, "longitude": -73.1 } )
+        ATLR10 = self.addSwitch( 'ATL-R10', dpid='0000ffffffff0006', annotations={ "latitude": 33.8, "longitude": -84.1 } )
+		'''
+		WASHDCSWR = self.addSwitch( 'WASHDCSW-R', dpid='0000ffffff000001', annotations={ "latitude": 38.8, "longitude": -77.0 } )      # this switch is O72 
+		SNJSCA02R = self.addSwitch( 'SNJSCA02-R', dpid='0000ffffff000002', annotations={ "latitude": 37.3, "longitude": -121.8 } )     # O61 
+		SNANTXCAR = self.addSwitch( 'SNANTXCA-R', dpid='0000ffffff000003', annotations={ "latitude": 29.4, "longitude": -98.4 } )      # O57
+		ROCHNYXAR = self.addSwitch( 'ROCHNYXA-R', dpid='0000ffffff000004', annotations={ "latitude": 43.1, "longitude": -77.6 } )      # O53
+		PHNXAZMAR = self.addSwitch( 'PHNXAZMA-R', dpid='0000ffffff000005', annotations={ "latitude": 33.4, "longitude": -112.0 } )     # O47
+		ORLDFLMAR = self.addSwitch( 'ORLDFLMA-R', dpid='0000ffffff000006', annotations={ "latitude": 28.5, "longitude": -81.3 } )      # O45
+		NWRKNJ02R = self.addSwitch( 'NWRKNJ02-R', dpid='0000ffffff000007', annotations={ "latitude": 40.7, "longitude": -74.1 } )      # O40
+		MPLSMNDTR = self.addSwitch( 'MPLSMNDT-R', dpid='0000ffffff000008', annotations={ "latitude": 44.9, "longitude": -93.2 } )      # O36
+		LSANCA03R = self.addSwitch( 'LSANCA03-R', dpid='0000ffffff000009', annotations={ "latitude": 34.1, "longitude":	-118.3 } )    # O29 
+		DLLSTXTLR = self.addSwitch( 'DLLSTXTL-R', dpid='0000ffffff00000a', annotations={ "latitude": 32.7, "longitude": -96.7 } )      # O18
+		ATLNGATLR = self.addSwitch( 'ATLNGATL-R', dpid='0000ffffff00000b', annotations={ "latitude": 33.7, "longitude": -97.7 } )      # O4
+
+    
+  
+		# Optical Links between the ROADMs (although Distance is not used; we should keep these for future reference)
+		self.addLink( O1, O18, port1=100, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 334, "durable": "true" }, cls=OpticalLink )  # ABLNTXRO  DLLSTXTL
+		self.addLink( O1, O21, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 768, "durable": "true" }, cls=OpticalLink )  # ABLNTXRO  ELPSTXMA
+		self.addLink( O3, O16, port1=100, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 265, "durable": "true" }, cls=OpticalLink )  # ALBYNYSS  CMBRMA01
+		self.addLink( O3, O66, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 239, "durable": "true" }, cls=OpticalLink )  # ALBYNYSS  SYRCNYSU
+		self.addLink( O2, O18, port1=100, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1134, "durable": "true" }, cls=OpticalLink )  # ALBQNMMA  DLLSTXTL
+		self.addLink( O2, O19, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 646, "durable": "true" }, cls=OpticalLink )  # ALBQNMMA  DNVRCOMA
+		self.addLink( O2, O21, port1=102, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 444, "durable": "true" }, cls=OpticalLink )  # ALBQNMMA  ELPSTXMA
+		self.addLink( O2, O30, port1=103, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 931, "durable": "true" }, cls=OpticalLink )  # ALBQNMMA  LSVGNV02
+		self.addLink( O4, O8, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 271, "durable": "true" }, cls=OpticalLink )  # ATLNGATL  BRHMALMT
+		self.addLink( O4, O12, port1=102, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 436, "durable": "true" }, cls=OpticalLink )  # ATLNGATL  CHRLNCCA
+		self.addLink( O4, O26, port1=103, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 566, "durable": "true" }, cls=OpticalLink )  # ATLNGATL  JCVLFLCL
+		self.addLink( O5, O25, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 283, "durable": "true" }, cls=OpticalLink )  # AUSTTXGR  HSTNTX01
+		self.addLink( O5, O57, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 141, "durable": "true" }, cls=OpticalLink )  # AUSTTXGR  SNANTXCA
+		self.addLink( O7, O46, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 170, "durable": "true" }, cls=OpticalLink )  # BLTMMDCH  PHLAPASL
+		self.addLink( O7, O48, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 378, "durable": "true" }, cls=OpticalLink )  # BLTMMDCH  PITBPADG
+		self.addLink( O7, O70, port1=103, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 68, "durable": "true" }, cls=OpticalLink )  # BLTMMDCH  WASHDCSW
+		self.addLink( O10, O25, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 491, "durable": "true" }, cls=OpticalLink )  # BTRGLAMA  HSTNTX01
+		self.addLink( O10, O39, port1=102, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 144, "durable": "true" }, cls=OpticalLink )  # BTRGLAMA  NWORLAMA
+		self.addLink( O6, O9, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 724, "durable": "true" }, cls=OpticalLink )  # BLNGMTMA  BSMRNDJC
+		self.addLink( O6, O19, port1=102, port2=107, annotations={ "optical.wves": 80, "optical.type": "WDM", "optical.kms": 875, "durable": "true" }, cls=OpticalLink )  # BLNGMTMA  DNVRCOMA
+		self.addLink( O6, O63, port1=103, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 852, "durable": "true" }, cls=OpticalLink )  # BLNGMTMA  SPKNWA01
+		self.addLink( O8, O38, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 353, "durable": "true" }, cls=OpticalLink )  # BRHMALMT  NSVLTNMT
+		self.addLink( O8, O39, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 602, "durable": "true" }, cls=OpticalLink )  # BRHMALMT  NWORLAMA
+		self.addLink( O9, O36, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 741, "durable": "true" }, cls=OpticalLink )  # BSMRNDJC  MPLSMNDT
+		self.addLink( O16, O49, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 80, "durable": "true" }, cls=OpticalLink )  # CMBRMA01  PRVDRIGR
+		self.addLink( O5, O14, port1=103, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 333, "durable": "true" }, cls=OpticalLink )  # BFLONYFR  CLEVOH02
+		self.addLink( O5, O53, port1=104, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 128, "durable": "true" }, cls=OpticalLink )  # BFLONYFR  ROCHNYXA
+		self.addLink( O13, O26, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 368, "durable": "true" }, cls=OpticalLink )  # CHTNSCDT  JCVLFLCL
+		self.addLink( O13, O52, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 424, "durable": "true" }, cls=OpticalLink )  # CHTNSCDT  RLGHNCMO
+		self.addLink( O12, O23, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 160, "durable": "true" }, cls=OpticalLink )  # CHRLNCCA  GNBONCEU
+		self.addLink( O11, O20, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 458, "durable": "true" }, cls=OpticalLink )  # CHCGILCL  DTRTMIBA
+		self.addLink( O11, O34, port1=102, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 156, "durable": "true" }, cls=OpticalLink )  # CHCGILCL  MILWWIHE
+		self.addLink( O11, O62, port1=103, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 344, "durable": "true" }, cls=OpticalLink )  # CHCGILCL  SPFDILSD
+		self.addLink( O17, O15, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 194, "durable": "true" }, cls=OpticalLink )  # CNCNOHWS  CLMBOH11
+		self.addLink( O17, O31, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 172, "durable": "true" }, cls=OpticalLink )  # CNCNOHWS  LSVLKYCS
+		self.addLink( O17, O72, port1=103, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 779, "durable": "true" }, cls=OpticalLink )  # CNCNOHWS  WASHDCSW
+		self.addLink( O14, O15, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 243, "durable": "true" }, cls=OpticalLink )  # CLEVOH02  CLMBOH11
+		self.addLink( O14, O70, port1=102, port2=101, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 185, "durable": "true" }, cls=OpticalLink )  # CLEVOH02  TOLDOH21
+		self.addLink( O15, O48, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 312, "durable": "true" }, cls=OpticalLink )  # CLMBOH11  PITBPADG
+		self.addLink( O18, O25, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 437, "durable": "true" }, cls=OpticalLink )  # DLLSTXTL  HSTNTX01
+		self.addLink( O18, O32, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 563, "durable": "true" }, cls=OpticalLink )  # DLLSTXTL  LTRKARFR
+		self.addLink( O18, O42, port1=103, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 365, "durable": "true" }, cls=OpticalLink )  # DLLSTXTL  OKCYOKCE
+		self.addLink( O19, O44, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 940, "durable": "true" }, cls=OpticalLink )  # DNVRCOMA  OMAHNENW
+		self.addLink( O19, O56, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 714, "durable": "true" }, cls=OpticalLink )  # DNVRCOMA  SLKCUTMA
+		self.addLink( O20, O70, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 103, "durable": "true" }, cls=OpticalLink )  # DTRTMIBA  TOLDOH21
+		self.addLink( O21, O57, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 969, "durable": "true" }, cls=OpticalLink )  # ELPSTXMA  SNANTXCA
+		self.addLink( O21, O68, port1=102, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 511, "durable": "true" }, cls=OpticalLink )  # ELPSTXMA  TCSNAZMA
+		self.addLink( O22, O31, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 505, "durable": "true" }, cls=OpticalLink )  # FRSNCA01  LSVGNV02
+		self.addLink( O22, O29, port1=102, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 396, "durable": "true" }, cls=OpticalLink )  # FRSNCA01  LSANCA03
+		self.addLink( O22, O42, port1=103, port2=108, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 298, "durable": "true" }, cls=OpticalLink )  # FRSNCA01  OKLDCA03
+		self.addLink( O23, O31, port1=101, port2=108, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 697, "durable": "true" }, cls=OpticalLink )  # GNBONCEU  LSVLKYCS
+		self.addLink( O23, O52, port1=102, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 130, "durable": "true" }, cls=OpticalLink )  # GNBONCEU  RLGHNCMO
+		self.addLink( O23, O51, port1=103, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 319, "durable": "true" }, cls=OpticalLink )  # GNBONCEU  RCMDVAGR
+		self.addLink( O24, O28, port1=101, port2=108, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 185, "durable": "true" }, cls=OpticalLink )  # HRFRCT03  L_Island
+		self.addLink( O24, O49, port1=102, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 125, "durable": "true" }, cls=OpticalLink )  # HRFRCT03  PRVDRIGR
+		self.addLink( O26, O45, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 238, "durable": "true" }, cls=OpticalLink )  # JCVLFLCL  ORLDFLMA
+		self.addLink( O27, O44, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 320, "durable": "true" }, cls=OpticalLink )  # KSCYMO09  OMAHNENW
+		self.addLink( O27, O64, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 457, "durable": "true" }, cls=OpticalLink )  # KSCYMO09  STLSMO09
+		self.addLink( O27, O71, port1=103, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 420, "durable": "true" }, cls=OpticalLink )  # KSCYMO09  TULSOKTB
+		self.addLink( O30, O47, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 494, "durable": "true" }, cls=OpticalLink )  # LSVGNV02  PHNXAZMA
+		self.addLink( O30, O56, port1=102, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 701, "durable": "true" }, cls=OpticalLink )  # LSVGNV02  SLKCUTMA
+		self.addLink( O32, O35, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 249, "durable": "true" }, cls=OpticalLink )  # LTRKARFR  MMPHTNMA
+		self.addLink( O28, O41, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 40, "durable": "true" }, cls=OpticalLink )  # L_Island  NYCMNY54
+		self.addLink( O29, O59, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 212, "durable": "true" }, cls=OpticalLink )  # LSANCA03  SNDGCA02
+		self.addLink( O29, O58, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 167, "durable": "true" }, cls=OpticalLink )  # LSANCA03  SNBBCA01
+		self.addLink( O31, O38, port1=104, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 298, "durable": "true" }, cls=OpticalLink )  # LSVLKYCS  NSVLTNMT
+		self.addLink( O31, O64, port1=102, port2=108, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 468, "durable": "true" }, cls=OpticalLink )  # LSVLKYCS  STLSMO09
+		self.addLink( O35, O38, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 380, "durable": "true" }, cls=OpticalLink )  # MMPHTNMA  NSVLTNMT
+		self.addLink( O33, O67, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 407, "durable": "true" }, cls=OpticalLink )  # MIAMFLAC  TAMQFLFN
+		self.addLink( O33, O74, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 125, "durable": "true" }, cls=OpticalLink )  # MIAMFLAC  WPBHFLAN
+		self.addLink( O34, O36, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 574, "durable": "true" }, cls=OpticalLink )  # MILWWIHE  MPLSMNDT
+		self.addLink( O36, O44, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 560, "durable": "true" }, cls=OpticalLink )  # MPLSMNDT  OMAHNENW
+		self.addLink( O39, O69, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 670, "durable": "true" }, cls=OpticalLink )  # NWORLAMA  TLHSFLAT
+		self.addLink( O41, O40, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 19, "durable": "true" }, cls=OpticalLink )  # NYCMNY54  NWRKNJ02
+		self.addLink( O41, O55, port1=102, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 187, "durable": "true" }, cls=OpticalLink )  # NYCMNY54  SCTNPA01
+		self.addLink( O41, O73, port1=103, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 210, "durable": "true" }, cls=OpticalLink )  # NYCMNY54  WLMGDE01
+		self.addLink( O40, O46, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 146, "durable": "true" }, cls=OpticalLink )  # NWRKNJ02  PHLAPASL
+		self.addLink( O37, O52, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 290, "durable": "true" }, cls=OpticalLink )  # NRFLVABS  RLGHNCMO
+		self.addLink( O37, O73, port1=102, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 392, "durable": "true" }, cls=OpticalLink )  # NRFLVABS  WLMGDE01
+		self.addLink( O43, O54, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 131, "durable": "true" }, cls=OpticalLink )  # OKLDCA03  SCRMCA01
+		self.addLink( O43, O56, port1=102, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1142, "durable": "true" }, cls=OpticalLink )  # OKLDCA03  SLKCUTMA
+		self.addLink( O43, O60, port1=103, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 13, "durable": "true" }, cls=OpticalLink )  # OKLDCA03  SNFCCA21
+		self.addLink( O42, O71, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 188, "durable": "true" }, cls=OpticalLink )  # OKCYOKCE  TULSOKTB
+		self.addLink( O45, O74, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 290, "durable": "true" }, cls=OpticalLink )  # ORLDFLMA  WPBHFLAN
+		self.addLink( O46, O55, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 201, "durable": "true" }, cls=OpticalLink )  # PHLAPASL  SCTNPA01
+		self.addLink( O47, O59, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 575, "durable": "true" }, cls=OpticalLink )  # PHNXAZMA  SNDGCA02
+		self.addLink( O47, O68, port1=102, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 205, "durable": "true" }, cls=OpticalLink )  # PHNXAZMA  TCSNAZMA
+		self.addLink( O48, O55, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 457, "durable": "true" }, cls=OpticalLink )  # PITBPADG  SCTNPA01
+		self.addLink( O50, O54, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 934, "durable": "true" }, cls=OpticalLink )  # PTLDOR62  SCRMCA01
+		self.addLink( O50, O56, port1=102, port2=108, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1225, "durable": "true" }, cls=OpticalLink )  # PTLDOR62  SLKCUTMA
+		self.addLink( O50, O65, port1=103, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 280, "durable": "true" }, cls=OpticalLink )  # PTLDOR62  STTLWA06
+		self.addLink( O51, O72, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 184, "durable": "true" }, cls=OpticalLink )  # RCMDVAGR  WASHDCSW
+		self.addLink( O53, O66, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 143, "durable": "true" }, cls=OpticalLink )  # ROCHNYXA  SYRCNYSU
+		self.addLink( O60, O61, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 80., "durable": "true" }, cls=OpticalLink )  # SNFCCA21  SNJSCA02
+		self.addLink( O61, O58, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 455, "durable": "true" }, cls=OpticalLink )  # SNJSCA02  SNBBCA01
+		self.addLink( O55, O66, port1=101, port2=105, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 223, "durable": "true" }, cls=OpticalLink )  # SCTNPA01  SYRCNYSU
+		self.addLink( O65, O63, port1=101, port2=107, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 442, "durable": "true" }, cls=OpticalLink )  # STTLWA06  SPKNWA01
+		self.addLink( O62, O64, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 165, "durable": "true" }, cls=OpticalLink )  # SPFDILSD  STLSMO09
+		self.addLink( O69, O67, port1=101, port2=106, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 384, "durable": "true" }, cls=OpticalLink )  # TLHSFLAT  TAMQFLFN
+		
+		# Packet/Optical cross connect links (this will be the tap interfaces)
+		self.addLink( WASHDCSWR, O72, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( WASHDCSWR, O72, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( WASHDCSWR, O72, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( WASHDCSWR, O72, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( WASHDCSWR, O72, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( SNJSCA02R, O61, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( SNJSCA02R, O61, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( SNJSCA02R, O61, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( SNJSCA02R, O61, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( SNJSCA02R, O61, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( SNANTXCAR, O57, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( SNANTXCAR, O57, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( SNANTXCAR, O57, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( SNANTXCAR, O57, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( SNANTXCAR, O57, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( ROCHNYXAR, O53, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ROCHNYXAR, O53, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ROCHNYXAR, O53, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ROCHNYXAR, O53, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ROCHNYXAR, O53, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( PHNXAZMAR, O47, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( PHNXAZMAR, O47, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( PHNXAZMAR, O47, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( PHNXAZMAR, O47, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( PHNXAZMAR, O47, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( ORLDFLMAR, O45, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ORLDFLMAR, O45, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ORLDFLMAR, O45, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ORLDFLMAR, O45, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ORLDFLMAR, O45, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( NWRKNJ02R, O40, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( NWRKNJ02R, O40, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( NWRKNJ02R, O40, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( NWRKNJ02R, O40, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( NWRKNJ02R, O40, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( MPLSMNDTR, O36, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( MPLSMNDTR, O36, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( MPLSMNDTR, O36, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( MPLSMNDTR, O36, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( MPLSMNDTR, O36, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( LSANCA03R, O29, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( LSANCA03R, O29, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( LSANCA03R, O29, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( LSANCA03R, O29, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( LSANCA03R, O29, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( DLLSTXTLR, O18, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( DLLSTXTLR, O18, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( DLLSTXTLR, O18, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( DLLSTXTLR, O18, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( DLLSTXTLR, O18, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		self.addLink( ATLNGATLR, O4, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ATLNGATLR, O4, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ATLNGATLR, O4, port1=4, port2=12, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ATLNGATLR, O4, port1=5, port2=13, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		#self.addLink( ATLNGATLR, O4, port1=6, port2=14, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=OpticalLink )
+		
+		# Create Hosts 1..11
+		h1 = self.addHost( 'h1' )
+		h2 = self.addHost( 'h2' )
+		h3 = self.addHost( 'h3' )
+		h4 = self.addHost( 'h4' )
+		h5 = self.addHost( 'h5' )
+		h6 = self.addHost( 'h6' )
+		h7 = self.addHost( 'h7' )
+		h8 = self.addHost( 'h8' )
+		h9 = self.addHost( 'h9' )
+		h10 = self.addHost( 'h10' )
+		h11 = self.addHost( 'h11' )
+
+		# Attach hosts to the packet layer switches 
+		self.addLink( SNJSCA02R, h1, port1=1 )
+		self.addLink( SNANTXCAR, h2, port1=1 )
+		self.addLink( ROCHNYXAR, h3, port1=1 )
+		self.addLink( PHNXAZMAR, h4, port1=1 )
+		self.addLink( ORLDFLMAR, h5, port1=1 )
+		self.addLink( NWRKNJ02R, h6, port1=1 )
+		self.addLink( MPLSMNDTR, h7, port1=1 )
+		self.addLink( LSANCA03R, h8, port1=1 )
+		self.addLink( DLLSTXTLR, h9, port1=1 )
+		self.addLink( ATLNGATLR, h10, port1=1 )
+		self.addLink( WASHDCSWR, h11, port1=1 )
+
+if __name__ == '__main__':
+    import sys
+    if len( sys.argv ) >= 2:
+        controllers = sys.argv[1:]
+    else:
+        print 'Usage: ./opticalUtils.py (<Controller IP>)+'
+        print 'Using localhost...\n'
+        controllers = [ '127.0.0.1' ]
+
+    setLogLevel( 'info' )
+    net = MininetOE( topo=BigOpticalTopo(), controller=None, autoSetMacs=True )
+    net.addControllers( controllers )
+    net.start()
+    CLI( net )
+    net.stop()
diff --git a/tools/test/topos/opticalUtils.py b/tools/test/topos/opticalUtils.py
new file mode 100644
index 0000000..25e4c4f
--- /dev/null
+++ b/tools/test/topos/opticalUtils.py
@@ -0,0 +1,437 @@
+#!/usr/bin/python
+
+'''
+Notes:
+
+This file contains classes and methods useful for integrating LincOE with Mininet, 
+such as startOE, stopOE, OpticalLink, and OpticalSwitch
+
+- $ONOS_ROOT ust be set
+- Need to run with sudo -E to preserve ONOS_ROOT env var
+- We assume LINC-Config-Generator is named LINC-Config-Generator
+- We also assume linc-oe is named linc-oe
+- LINC-config-generator and linc-oe must be subdirectories of the user's
+  home directory
+
+            TODO
+        -----------
+    - clean up files after runtime
+        - maybe save the old files in a separate directory?
+    - modify script to allow startOE to run before net.start()
+    - add ONOS as a controller in script
+
+            Usage:
+        ------------
+    - import OpticalLink and OpticalSwitch from this module
+    - import startOE and stopOE from this module
+    - create topology as you would a normal topology. when 
+      to an optical switch with topo.addLink, always specify cls=OpticalLink
+    - when creating an optical switch, use cls=OpticalSwitch in topo.addSwitch
+    - for annotations on links and switches, a dictionary must be passed in as
+      the annotations argument
+    - startOE must be run AFTER net.start() with net as an argument.
+    - stopOE can be run at any time
+
+I created a separate function to start lincOE to avoid subclassing Mininet.
+In case anyone wants to write something that DOES subclass Mininet, I
+thought I would outline how:
+
+If we want an object that starts lincOE within the mininet class itself,
+we need to add another object to Mininet that contains all of the json object
+information for each switch. We would still subclass switch and link, but these
+classes would basically be dummy classes that store their own json information
+in the Mininet class object. We may also change the default switch class to add
+it's tap interfaces from lincOE during startup. The start() method for mininet would 
+grab all of the information from these switches and links, write configuration files
+for lincOE using the json module, start lincOE, then run the start methodfor each
+switch. The new start() method for each switch would parse through the sys.config
+file that was created and find the tap interface it needs to connect to, similar 
+to the findTap function that I currently use. After all of the controllers and 
+switches have been started, the new Mininet start() method should also push the 
+Topology configuration file to ONOS.
+
+'''
+
+import re
+import json
+import os
+from time import sleep
+
+from mininet.node import Switch, RemoteController
+from mininet.topo import Topo
+from mininet.util import quietRun
+from mininet.net import Mininet
+from mininet.log import  setLogLevel, info, error, warn
+from mininet.link import Link, Intf
+from mininet.cli import CLI
+
+class OpticalSwitch( Switch ):
+
+    def __init__( self, name, dpid=None, allowed=True,
+                  switchType='ROADM', annotations={}, **params ):
+        params[ 'inNamespace' ] = False
+        Switch.__init__( self, name, dpid=dpid, **params )
+        self.name = name
+        self.annotations = annotations
+        self.allowed = allowed
+        self.switchType = switchType
+        self.configDict = {} # dictionary that holds all of the JSON configuration data
+
+    def start( self, *opts, **params ):
+        '''Instead of starting a virtual switch, we build the JSON
+           dictionary for the emulated optical switch'''
+        self.configDict[ 'uri' ] = 'of:' + self.dpid
+        self.configDict[ 'annotations' ] = self.annotations
+        self.configDict[ 'annotations' ].setdefault( 'name', self.name )
+        self.configDict[ 'hw' ] = 'OE'
+        self.configDict[ 'mfr' ] = 'Linc'
+        self.configDict[ 'mac' ] = 'ffffffffffff' + self.dpid[-2] + self.dpid[-1]
+        self.configDict[ 'type' ] = self.switchType
+        self.configDict[ 'ports' ] = []
+        for port, intf in self.intfs.items():
+            if intf.name == 'lo':
+                continue
+            else:
+                self.configDict[ 'ports' ].append( intf.json() )
+
+
+    def json( self ):
+        "return json configuration dictionary for switch"
+        return self.configDict
+    
+    def terminate( self ):
+        pass
+
+class OpticalLink( Link ):
+
+    def __init__( self, node1, node2, port1=None, port2=None, allowed=True,
+                  intfName1=None, intfName2=None, linkType='OPTICAL',
+                  annotations={}, speed1=0, speed2=0, **params ):
+        "Creates a dummy link without a virtual ethernet pair."
+        self.allowed = allowed
+        self.annotations = annotations
+        self.linkType = linkType
+        params1 = { 'speed': speed1 }
+        params2 = { 'speed': speed2 }
+        
+        if isinstance( node1, OpticalSwitch ):
+            cls1 = OpticalIntf
+        else:
+            cls1 = Intf
+            # bad hack to stop error message from appearing when we try to set up intf in a packet switch, 
+            # and there is no interface there( because we do not run makeIntfPair ). This way, we just set lo up
+            intfName1 = 'lo'
+        if isinstance( node2, OpticalSwitch ):
+            cls2 = OpticalIntf
+        else:
+            cls2 = Intf
+            intfName2 = 'lo'
+        Link.__init__( self, node1, node2, port1=port1, port2=port2,
+                       intfName1=intfName1, intfName2=intfName2, cls1=cls1,
+                       cls2=cls2, params1=params1, params2=params2 )
+        
+
+    @classmethod
+    def makeIntfPair( _cls, intfName1, intfName2, *args, **kwargs ):
+        pass
+
+    def json( self ):
+        "build and return the json configuration dictionary for this link"
+        configData = {}
+        configData[ 'src' ] = ( 'of:' +  self.intf1.node.dpid + 
+                                '/%s' % self.intf1.node.ports[ self.intf1 ] )
+        configData[ 'dst' ] = ( 'of:' +  self.intf2.node.dpid +
+                                '/%s' % self.intf2.node.ports[ self.intf2 ] )
+        configData[ 'type' ] = self.linkType
+        configData[ 'annotations' ] = self.annotations
+        return configData
+
+class OpticalIntf( Intf ):
+
+    def __init__( self, name=None, node=None, speed=0, 
+                  port=None, link=None, **params ):
+        self.node = node
+        self.speed = speed
+        self.port = port
+        self.link = link
+        self.name = name
+        node.addIntf( self, port=port )
+        self.params = params
+        self.ip = None
+
+    def json( self ):
+        "build and return the JSON information for this interface( not used right now )"
+        configDict = {}
+        configDict[ 'port' ] = self.port
+        configDict[ 'speed' ] = self.speed
+        configDict[ 'type' ] = 'FIBER'
+        return configDict
+
+    def config( self, *args, **kwargs ):
+        "dont configure a dummy interface"
+        pass
+
+def switchJSON( switch ):
+    "Returns the json configuration for a packet switch"
+    configDict = {}
+    configDict[ 'uri' ] = 'of:' + switch.dpid
+    configDict[ 'mac' ] = quietRun( 'cat /sys/class/net/%s/address' % switch.name ).strip( '\n' ).translate( None, ':' )
+    configDict[ 'hw' ] = 'PK' # FIXME what about OVS?
+    configDict[ 'mfr' ] = 'Linc' # FIXME what about OVS?
+    configDict[ 'type' ] = 'SWITCH' # FIXME what about OVS?
+    annotations = switch.params.get( 'annotations', {} )
+    annotations.setdefault( 'name', switch.name )
+    configDict[ 'annotations' ] = annotations
+    ports = []
+    for port, intf in switch.intfs.items():
+        if intf.name == 'lo':
+            continue
+        portDict = {}
+        portDict[ 'port' ] = port
+        portDict[ 'type' ] = 'FIBER' if isinstance( intf.link, OpticalLink ) else 'COPPER'
+        intfList = [ intf.link.intf1, intf.link.intf2 ]
+        intfList.remove( intf )
+        portDict[ 'speed' ] = intfList[ 0 ].speed if isinstance( intf.link, OpticalLink ) else 0
+        ports.append( portDict )
+    configDict[ 'ports' ] = ports
+    return configDict
+
+
+def startOE( net, controllerIP=None, controllerPort=None ):
+    "Start the LINC optical emulator within a mininet instance"
+    opticalJSON = {}
+    linkConfig = []
+    devices = []
+    
+    # if we are not given a controller IP or Port, we use the first found in Mininet
+    if controllerIP is None:
+        controllerIP = net.controllers[ 0 ].ip
+    if controllerPort is None:
+        controllerPort = net.controllers[ 0 ].port
+
+    for switch in net.switches:
+        if isinstance( switch, OpticalSwitch ):
+            devices.append( switch.json() )
+        else:
+            devices.append( switchJSON( switch ) )
+    opticalJSON[ 'devices' ] = devices
+
+    for link in net.links:
+        if isinstance( link, OpticalLink ) :
+            linkConfig.append( link.json() )
+
+    opticalJSON[ 'links' ] = linkConfig
+
+    try:
+        onosDir = os.environ[ 'ONOS_ROOT' ]
+    except:
+        onosDir = findDir( 'onos' )
+        os.environ[ 'ONOS_ROOT' ] = onosDir
+        if not onosDir:
+            error( 'Please set ONOS_ROOT environment variable!\n' )
+            return False
+
+    info( '*** Writing Topology.json file\n' )
+    with open( 'Topology.json', 'w' ) as outfile:
+        json.dump( opticalJSON, outfile, indent=4, separators=(',', ': ') )
+
+    info( '*** Converting Topology.json to linc-oe format (TopoConfig.json) file\n' )
+    output = quietRun( '%s/tools/test/bin/onos-oecfg ./Topology.json > TopoConfig.json' % onosDir, shell=True )
+    if output:
+        error( '***ERROR: Error creating topology file: %s ' % output + '\n' )
+        return False
+
+    info( '*** Creating sys.config...\n' )
+    configGen = findDir( 'LINC-config-generator' )
+    if not configGen:
+        error( "***ERROR: Could not find LINC-config-generator in user's home directory\n" )
+        return False
+    output = quietRun( '%s/config_generator TopoConfig.json %s/sys.config.template %s %s'
+                    % ( configGen, configGen, controllerIP, controllerPort ), shell=True )
+    if output:
+        error( '***ERROR: Error creating sys.config file: %s\n' % output )
+        return False
+
+    info( '*** Copying sys.config to linc-oe directory: ', output + '\n' )
+    lincDir = findDir( 'linc-oe' )
+    if not lincDir:
+        error( "***ERROR: Could not find linc-oe in user's home directory\n" )
+        return False
+    output = quietRun( 'cp -v sys.config %s/rel/linc/releases/1.0/' % lincDir, shell=True ).strip( '\n' )
+    info( output + '\n' )
+
+    info( '*** Starting linc OE...\n' )
+    output = quietRun( '%s/rel/linc/bin/linc start' % lincDir, shell=True )
+    if output:
+        error( '***ERROR: LINC-OE: %s' % output + '\n' )
+        quietRun( '%s/rel/linc/bin/linc stop' % lincDir, shell=True )
+        return False
+    
+    info( '*** Waiting for linc-oe to start...\n' )
+    waitStarted( net )
+    
+    info( '*** Adding cross-connect (tap) interfaces to packet switches...\n' )
+    for link in net.links:
+        if isinstance( link, OpticalLink ):
+            if link.annotations[ 'optical.type' ] == 'cross-connect':
+                for intf in [ link.intf1, link.intf2 ]:
+                    if not isinstance( intf, OpticalIntf ):
+                        intfList = [ intf.link.intf1, intf.link.intf2 ]
+                        intfList.remove( intf )
+                        intf2 = intfList[ 0 ]
+                        intf.node.attach( findTap( intf2.node, intf2.node.ports[ intf2 ] ) )
+
+    info( '*** Press any key to push Topology.json to onos...\n' )
+    raw_input() # FIXME... we should eventually remove this
+    info( '*** Pushing Topology.json to ONOS\n' )
+    output = quietRun( '%s/tools/test/bin/onos-topo-cfg %s Topology.json' % ( onosDir, controllerIP ), shell=True )
+    # successful output contains the two characters '{}'
+    # if there is more output than this, there is an issue
+    if output.strip( '{}' ):
+        warn( '***WARNING: Could not push topology file to ONOS: %s' % output )
+                        
+def waitStarted( net, timeout=None ):
+    "wait until all tap interfaces are available"
+    tapCount = 0
+    time = 0
+    for link in net.links:
+        if isinstance( link, OpticalLink ):
+            if link.annotations[ 'optical.type' ] == 'cross-connect':
+                tapCount += 1
+    
+    while True:
+        if str( tapCount ) == quietRun( 'ip addr | grep tap | wc -l', shell=True ).strip( '\n' ):
+            return True
+        if timeout:
+            if time >= timeout:
+                error( '***ERROR: Linc OE did not start within %s seconds' % timeout )
+                return False
+            time += .5
+        sleep( .5 )
+
+def stopOE():
+    "stop the optical emulator"
+    info( '*** Stopping linc OE...\n' )
+    lincDir = findDir( 'linc-oe' )
+    quietRun( '%s/rel/linc/bin/linc stop' % lincDir, shell=True )
+
+def findDir( directory ):
+    "finds and returns the path of any directory in the user's home directory"
+    user = findUser()
+    homeDir = '/home/' + user
+    Dir = quietRun( 'find %s -maxdepth 1 -name %s -type d' % ( homeDir, directory ) ).strip( '\n' )
+    DirList = Dir.split( '\n' )
+    if not Dir:
+        return None
+    elif len( DirList ) > 1 :
+        warn( '***WARNING: Found multiple instances of %s; using %s\n'
+                 % ( directory, DirList[ 0 ] ) )
+        return DirList[ 0 ]
+    else:
+        return Dir
+
+def findUser():
+    "Try to return logged-in (usually non-root) user"
+    try:
+        # If we're running sudo
+        return os.environ[ 'SUDO_USER' ]
+    except:
+        try:
+            # Logged-in user (if we have a tty)
+            return quietRun( 'who am i' ).split()[ 0 ]
+        except:
+            # Give up and return effective user
+            return quietRun( 'whoami' )
+
+
+def findTap( node, port, path=None ):
+    '''utility function to parse through a sys.config
+       file to find tap interfaces for a switch'''
+    switch=False
+    portLine = ''
+    intfLines = []
+
+    if path is None:
+        lincDir = findDir( 'linc-oe' )
+        if not lincDir:
+            error( '***ERROR: Could not find linc-oe in users home directory\n' )
+            return None
+        path = '%s/rel/linc/releases/1.0/sys.config' % lincDir
+
+    with open( path ) as f:
+        for line in f:
+            if 'tap' in line:
+                intfLines.append( line )
+            if node.dpid in line.translate( None, ':' ):
+                switch=True
+                continue
+            if switch:
+                if 'switch' in line:
+                    switch = False
+                if 'port_no,%s}' % port in line:
+                    portLine = line
+                    break 
+
+    if portLine:
+        m = re.search( 'port,\d+', portLine )
+        port = m.group( 0 ).split( ',' )[ 1 ]
+    else:
+        error( '***ERROR: Could not find any ports in sys.config\n' )
+        return
+
+    for intfLine in intfLines:
+        if 'port,%s' % port in intfLine:
+            return re.findall( 'tap\d+', intfLine )[ 0 ]
+
+
+class MininetOE( Mininet ):
+    "Mininet with Linc-OE support (starts and stops linc-oe)"
+
+    def start( self ):
+        Mininet.start( self )
+        startOE( self )
+
+    def stop( self ):
+        Mininet.stop( self )
+        stopOE()
+
+    def addControllers( self, controllers ):
+        i = 0
+        for ctrl in controllers:
+            self.addController( RemoteController( 'c%d' % i, ip=ctrl ) )
+
+
+class OpticalTestTopo( Topo ):
+
+    def build( self ):
+        opticalAnn = { 'optical.waves': 80, 'optical.type': "WDM", 'durable': True }
+        switchAnn = { 'bandwidth': 100000, 'optical.type': 'cross-connect', 'durable': True }
+        h1 = self.addHost( 'h1' )
+        h2 = self.addHost( 'h2' )
+        s1 = self.addSwitch( 's1' )
+        s2 = self.addSwitch( 's2' )
+        O4 = self.addSwitch( 'O4', cls=OpticalSwitch )
+        O5 = self.addSwitch( 'O5', cls=OpticalSwitch )
+        O6 = self.addSwitch( 'O6', cls=OpticalSwitch )
+        self.addLink( O4, O5, cls=OpticalLink, annotations=opticalAnn )
+        self.addLink( O5, O6, cls=OpticalLink, annotations=opticalAnn )
+        self.addLink( s1, O4, cls=OpticalLink, annotations=switchAnn )
+        self.addLink( s2, O6, cls=OpticalLink, annotations=switchAnn )
+        self.addLink( h1, s1 )
+        self.addLink( h2, s2 )
+
+if __name__ == '__main__':
+    import sys
+    if len( sys.argv ) >= 2:
+        controllers = sys.argv[1:]
+    else:
+        print 'Usage: ./opticalUtils.py (<Controller IP>)+'
+        print 'Using localhost...\n'
+        controllers = [ '127.0.0.1' ]
+
+    setLogLevel( 'info' )
+    net = MininetOE( topo=OpticalTestTopo(), controller=None, autoSetMacs=True )
+    net.addControllers( controllers )
+    net.start()
+    CLI( net )
+    net.stop()
