modifying FUNCoptical to use new topology
Change-Id: Ib1762ea4713eb9fc87e060d48d2a6dc04da32256
diff --git a/TestON/tests/FUNC/FUNCoptical/FUNCoptical.params b/TestON/tests/FUNC/FUNCoptical/FUNCoptical.params
index 50bb652..ee70b7b 100644
--- a/TestON/tests/FUNC/FUNCoptical/FUNCoptical.params
+++ b/TestON/tests/FUNC/FUNCoptical/FUNCoptical.params
@@ -4,6 +4,7 @@
# 2 - Install ONOS
# 10 - Start Mininet opticalTest Topology
# 14 - Stop Mininet
+ # 16 - Balance Mastership of switches
# 17 - Activate Flow Objectives
# 19 - Copy karaf logs from ONOS nodes to TestON log directory
# 21 - Run pingall to discover all hosts
@@ -12,7 +13,7 @@
# 31 - Add and test bidirectional point intents
# 32 - Add and test bidirectional host intents
- <testcases>1,[2,10,21,22,23,31,32,14,19,2,10,21,22,23,31,32,14,19]*1,[2,10,17,21,22,23,31,32,14,19,2,10,17,21,22,23,31,32,14,19]*1</testcases>
+ <testcases>1,[2,10,21,22,23,31,32,14,19,2,10,16,21,22,23,31,32,14,19]*1,[2,10,17,21,22,23,31,32,14,19,2,10,16,17,21,22,23,31,32,14,19]*1</testcases>
<SCALE>
<size>1,3,1,3</size>
@@ -20,13 +21,11 @@
<DEPENDENCY>
<path>/tests/FUNC/FUNCoptical/dependencies/</path>
- <wrapper1>startUp</wrapper1>
- <wrapper2>FuncIntentFunction</wrapper2>
- <wrapper3>topo</wrapper3>
+ <wrapper1>topo</wrapper1>
</DEPENDENCY>
<ENV>
- <cellApps>drivers,openflow,proxyarp,mobility,optical,fwd</cellApps>
+ <cellApps>drivers,openflow,proxyarp,mobility,optical,fwd,drivers.optical</cellApps>
</ENV>
<GIT>
<pull>False</pull>
@@ -35,24 +34,17 @@
<SLEEP>
<startup>15</startup>
- <reroute>5</reroute>
- <removeintent>10</removeintent>
<checkintent>5</checkintent>
- <fwd>10</fwd>
<topoAttempts>3</topoAttempts>
</SLEEP>
+ # make sure that these numbers reflect the number of switches, links, and
+ # hosts in the optical topology specified below
<MININET>
- <switch>7</switch>
- <links>20</links>
+ <switch>5</switch>
+ <links>10</links>
+ <hosts>2</hosts>
+ <toponame>ectopo</toponame>
</MININET>
- # Intent tests params
- <SDNIP>
- <tcpProto>6</tcpProto>
- <icmpProto>1</icmpProto>
- <srcPort>5001</srcPort>
- <dstPort>5001</dstPort>
- </SDNIP>
-
</PARAMS>
diff --git a/TestON/tests/FUNC/FUNCoptical/FUNCoptical.py b/TestON/tests/FUNC/FUNCoptical/FUNCoptical.py
index 65c731b..137ce44 100644
--- a/TestON/tests/FUNC/FUNCoptical/FUNCoptical.py
+++ b/TestON/tests/FUNC/FUNCoptical/FUNCoptical.py
@@ -40,17 +40,14 @@
else:
main.maxNodes = 0
wrapperFile1 = main.params[ 'DEPENDENCY' ][ 'wrapper1' ]
- wrapperFile2 = main.params[ 'DEPENDENCY' ][ 'wrapper2' ]
- wrapperFile3 = main.params[ 'DEPENDENCY' ][ 'wrapper3' ]
main.startUpSleep = int( main.params[ 'SLEEP' ][ 'startup' ] )
main.checkIntentSleep = int( main.params[ 'SLEEP' ][ 'checkintent' ] )
- main.removeIntentSleep = int( main.params[ 'SLEEP' ][ 'removeintent' ] )
- main.rerouteSleep = int( main.params[ 'SLEEP' ][ 'reroute' ] )
- main.fwdSleep = int( main.params[ 'SLEEP' ][ 'fwd' ] )
main.checkTopoAttempts = int( main.params[ 'SLEEP' ][ 'topoAttempts' ] )
gitPull = main.params[ 'GIT' ][ 'pull' ]
- main.numSwitch = int( main.params[ 'MININET' ][ 'switch' ] )
- main.numLinks = int( main.params[ 'MININET' ][ 'links' ] )
+ main.switches = int( main.params[ 'MININET' ][ 'switch' ] )
+ main.links = int( main.params[ 'MININET' ][ 'links' ] )
+ main.hosts = int( main.params[ 'MININET' ][ 'hosts' ] )
+ main.opticalTopo = main.params[ 'MININET' ][ 'toponame' ]
main.cellData = {} # For creating cell file
main.hostsData = {}
main.CLIs = []
@@ -66,21 +63,10 @@
main.CLIs.append( getattr( main, 'ONOScli' + str( i ) ) )
# -- INIT SECTION, ONLY RUNS ONCE -- #
- main.startUp = imp.load_source( wrapperFile1,
- main.dependencyPath +
- wrapperFile1 +
- ".py" )
-
- main.intentFunction = imp.load_source( wrapperFile2,
- main.dependencyPath +
- wrapperFile2 +
- ".py" )
-
- main.topo = imp.load_source( wrapperFile3,
+ main.topo = imp.load_source( wrapperFile1,
main.dependencyPath +
- wrapperFile3 +
+ wrapperFile1 +
".py" )
-
if main.CLIs:
stepResult = main.TRUE
else:
@@ -237,20 +223,22 @@
# Remove the first element in main.scale list
main.scale.remove( main.scale[ 0 ] )
- main.intentFunction.report( main )
-
-
def CASE10( self, main ):
"""
Start Mininet opticalTest Topology
"""
main.case( "Mininet with Linc-OE startup")
main.caseExplanation = "Start opticalTest.py topology included with ONOS"
+ if main.opticalTopo:
+ main.step( "Copying optical topology to $ONOS_ROOT/tools/test/topos/" )
+ main.ONOSbench.scp( main.ONOSbench,
+ "{0}{1}.py".format( main.dependencyPath, main.opticalTopo ),
+ "~/onos/tools/test/topos/{0}.py".format( main.opticalTopo ) )
main.step( "Starting mininet and LINC-OE" )
topoResult = main.TRUE
time.sleep( 10 )
controllerIPs = ' '.join( main.activeONOSip )
- opticalMnScript = main.LincOE.runOpticalMnScript(ctrllerIP = controllerIPs)
+ opticalMnScript = main.LincOE.runOpticalMnScript(ctrllerIP = controllerIPs, topology=main.opticalTopo )
topoResult = opticalMnScript
utilities.assert_equals(
expect=main.TRUE,
@@ -258,6 +246,11 @@
onpass="Started the topology successfully ",
onfail="Failed to start the topology")
+ main.step( "Push Topology.json to ONOS through onos-netcfg" )
+ pushResult = main.TRUE
+ time.sleep( 20 )
+ main.ONOSbench.onosNetCfg( controllerIps=controllerIPs, path=main.dependencyPath, fileName="Topology" )
+
# Exit if topology did not load properly
if not topoResult:
main.cleanup()
@@ -286,6 +279,23 @@
main.cleanup()
main.exit()
+ def CASE16( self, main ):
+ """
+ Balance Masters
+ """
+ main.case( "Balance mastership of switches" )
+ main.step( "Balancing mastership of switches" )
+
+ balanceResult = main.FALSE
+ balanceResult = utilities.retry( f=main.CLIs[ 0 ].balanceMasters, retValue=main.FALSE, args=[] )
+
+ utilities.assert_equals( expect=main.TRUE,
+ actual=balanceResult,
+ onpass="Successfully balanced mastership of switches",
+ onfail="Failed to balance mastership of switches" )
+ if not balanceResult:
+ main.initialized = main.FALSE
+
def CASE17( self, main ):
"""
Use Flow Objectives
@@ -361,7 +371,9 @@
main.step( "Send arping between all hosts" )
- hosts = [ "h1","h2","h3","h4","h5","h6" ]
+ hosts = []
+ for i in range( main.hosts ):
+ hosts.append( 'h{}'.format( i + 1 ) )
arpingHostResults = main.TRUE
for host in hosts:
@@ -395,9 +407,9 @@
hostFails = [] # Nodes where hosts are incorrect
attempts = main.checkTopoAttempts # Remaining Attempts
- mnSwitches = 16
- mnLinks = 46
- mnHosts = 6
+ mnSwitches = main.switches
+ mnLinks = main.links
+ mnHosts = main.hosts
main.step( "Comparing Mininet topology to ONOS topology" )
@@ -528,12 +540,12 @@
checkFlowResult = main.TRUE
main.pIntentsId = []
pIntent1 = main.CLIs[ 0 ].addPointIntent(
- "of:0000ffffffff0001/1",
- "of:0000ffffffff0005/1" )
+ "of:0000000000000001/1",
+ "of:0000000000000002/1" )
time.sleep( 10 )
pIntent2 = main.CLIs[ 0 ].addPointIntent(
- "of:0000ffffffff0005/1",
- "of:0000ffffffff0001/1" )
+ "of:0000000000000002/1",
+ "of:0000000000000001/1" )
main.pIntentsId.append( pIntent1 )
main.pIntentsId.append( pIntent2 )
time.sleep( 10 )
@@ -559,17 +571,50 @@
onpass="Successfully added point intents",
onfail="Failed to add point intents")
- if not addIntentsResult:
- main.log.error( "Intents were not properly installed. Exiting case." )
- main.skipCase()
+ pingResult = main.FALSE
- main.step( "Ping h1 and h5" )
- pingResult = main.LincOE.pingHostOptical( src="h1", target="h5" )
+ if not addIntentsResult:
+ main.log.error( "Intents were not properly installed. Skipping ping." )
+
+ else:
+ main.step( "Ping h1 and h2" )
+ pingResult = main.LincOE.pingHostOptical( src="h1", target="h2" )
utilities.assert_equals(
expect=main.TRUE,
actual=pingResult,
- onpass="Successfully pinged h1 and h5",
- onfail="Failed to ping between h1 and h5")
+ onpass="Successfully pinged h1 and h2",
+ onfail="Failed to ping between h1 and h2")
+
+ main.step( "Remove Point to Point intents" )
+ removeResult = main.FALSE
+ # Check remaining intents
+ try:
+ intentsJson = json.loads( main.CLIs[ 0 ].intents() )
+ main.log.debug( intentsJson )
+ main.CLIs[ 0 ].removeIntent( intentId=pIntent1, purge=True )
+ main.CLIs[ 0 ].removeIntent( intentId=pIntent2, purge=True )
+ for intents in intentsJson:
+ main.CLIs[ 0 ].removeIntent( intentId=intents.get( 'id' ),
+ app='org.onosproject.cli',
+ purge=True )
+ time.sleep( 15 )
+
+ for i in range( main.numCtrls ):
+ if len( json.loads( main.CLIs[ i ].intents() ) ):
+ print json.loads( main.CLIs[ i ].intents() )
+ removeResult = main.FALSE
+ else:
+ removeResult = main.TRUE
+ except ( TypeError, ValueError ):
+ main.log.error( "Cannot see intents on Node " + str( main.CLIs[ 0 ] ) +\
+ ". Removing all intents.")
+ main.CLIs[ 0 ].removeAllIntents( purge=True )
+ main.CLIs[ 0 ].removeAllIntents( purge=True, app='org.onosproject.cli')
+
+ utilities.assert_equals( expect=main.TRUE,
+ actual=removeResult,
+ onpass="Successfully removed host intents",
+ onfail="Failed to remove host intents" )
def CASE32( self ):
"""
@@ -581,17 +626,22 @@
main.case( "Test add host intents between optical layer host" )
main.caseExplanation = "Test host intents between 2 optical layer host"
+ main.step( "Creating list of hosts" )
+ hostnum = 0
+ try:
+ hostData = json.loads( hosts[ controller ] )
+ except( TypeError, ValueError ):
+ main.log.error("Could not load json:" + str( hosts[ controller ] ) )
+
main.step( "Adding host intents to h1 and h2" )
- hostMACs = []
hostId = []
# Listing host MAC addresses
- for i in range( 1 , 7 ):
- hostMACs.append( "00:00:00:00:00:" +
- str( hex( i )[ 2: ] ).zfill( 2 ).upper() )
- for macs in hostMACs:
- hostId.append( macs + "/-1" )
+ for host in hostData:
+ hostId.append( host.get("id") )
host1 = hostId[ 0 ]
host2 = hostId[ 1 ]
+ main.log.debug( host1 )
+ main.log.debug( host2 )
intentsId = []
intent1 = main.CLIs[ 0 ].addHostIntent( hostIdOne = host1,
@@ -599,14 +649,9 @@
intentsId.append( intent1 )
# Checking intents state before pinging
main.log.info( "Checking intents state" )
- intentResult = main.CLIs[ 0 ].checkIntentState( intentsId = intentsId )
- # Check intent state again if intents are not in installed state
-
-
- # If intent state is wrong, wait 3 sec and try again
- if not intentResult:
- time.sleep( 3 )
- intentResult = main.CLIs[ 0 ].checkIntentState( intentsId = intentsId )
+ intentResult = utilities.retry( f=main.CLIs[ 0 ].checkIntentState,
+ retValue=main.FALSE, args=intentsId,
+ sleep=main.checkIntentSleep, attempts=10 )
# If intent state is still wrong, display intent states
if not intentResult:
@@ -645,11 +690,14 @@
main.CLIs[ 0 ].removeIntent( intentId=intents.get( 'id' ),
app='org.onosproject.optical',
purge=True )
+ time.sleep( 15 )
for i in range( main.numCtrls ):
if len( json.loads( main.CLIs[ i ].intents() ) ):
print json.loads( main.CLIs[ i ].intents() )
removeResult = main.FALSE
+ else:
+ removeResult = main.TRUE
except ( TypeError, ValueError ):
main.log.error( "Cannot see intents on Node " + str( main.CLIs[ 0 ] ) +\
". Removing all intents.")
@@ -659,4 +707,4 @@
utilities.assert_equals( expect=main.TRUE,
actual=removeResult,
onpass="Successfully removed host intents",
- onfail="Failed to remove host intents" )
+ onfail="Failed to remove host intents" )
\ No newline at end of file
diff --git a/TestON/tests/FUNC/FUNCoptical/TopoConfig.json b/TestON/tests/FUNC/FUNCoptical/TopoConfig.json
deleted file mode 100644
index 9545eae..0000000
--- a/TestON/tests/FUNC/FUNCoptical/TopoConfig.json
+++ /dev/null
@@ -1,2832 +0,0 @@
-{
- "linkConfig": [
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 100,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:12",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:15",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 100,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:12",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:13",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:15",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1e",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 100,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:10",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:42",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:08",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:0c",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1a",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:04",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:04",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:04",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:04",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:04",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:4b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:19",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:4b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:39",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:0e",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 104,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:35",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:09",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:13",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2e",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:30",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:46",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:08",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:26",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:08",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:27",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:09",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:24",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:19",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:27",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:14",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:22",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3e",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0c",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:17",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0d",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1a",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0d",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:34",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0e",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:0f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 101,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0e",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:46",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:0f",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:30",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:10",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:31",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:11",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:0f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:11",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:11",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:48",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:12",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:19",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:12",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:20",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:12",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2a",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:12",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:12",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:12",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:12",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:0a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:12",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:13",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2c",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:13",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:38",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:14",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:46",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:15",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:39",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:15",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:44",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:16",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1d",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:16",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 108,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:16",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2a",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 108,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:17",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:17",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:33",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:17",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:34",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 108,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:18",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1c",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:18",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:31",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2d",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2c",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:40",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:47",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1c",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:29",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1d",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3a",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1d",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3b",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:09",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:09",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:09",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:09",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:09",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:1d",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1e",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1e",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:38",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 104,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1f",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:26",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 108,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:1f",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:40",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:20",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:23",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:21",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:43",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:21",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:4a",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:22",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:24",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:23",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:26",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:24",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2c",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:08",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:24",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:08",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:24",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:08",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:24",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:08",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:24",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:08",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:24",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:25",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:34",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:25",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:49",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:27",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:45",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:28",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2e",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:28",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:28",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:28",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:28",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:07",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:28",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:29",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:28",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:29",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:37",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:29",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:49",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:2a",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:47",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:2b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:36",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:2b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:38",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:2b",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3c",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:2d",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:4a",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:06",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2d",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:2e",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:37",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:2f",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3b",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:2f",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:44",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2f",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2f",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2f",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2f",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:05",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:2f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:30",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:37",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:32",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:36",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 108,
- "numWaves": 80,
- "port1": 102,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:32",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:38",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 103,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:32",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:41",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:33",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:48",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:35",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:42",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:35",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:35",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:35",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:35",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:04",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:35",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:37",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:42",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:39",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:39",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:39",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:39",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:03",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:39",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 105,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:3c",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3d",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:3d",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3a",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3d",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:02",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3d",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:3e",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:40",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 107,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:41",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:3f",
- "allowed": true
- },
- {
- "type": "wdmLink",
- "params": {
- "port2": 106,
- "numWaves": 80,
- "port1": 101,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:ff:ff:45",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:43",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 10,
- "bandwidth": 100000,
- "port1": 2,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:48",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 11,
- "bandwidth": 100000,
- "port1": 3,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:48",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 12,
- "bandwidth": 100000,
- "port1": 4,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:48",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 13,
- "bandwidth": 100000,
- "port1": 5,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:48",
- "allowed": true
- },
- {
- "type": "pktOptLink",
- "params": {
- "port2": 14,
- "bandwidth": 100000,
- "port1": 6,
- "nodeName2": "none",
- "nodeName1": "none"
- },
- "nodeDpid1": "00:00:ff:ff:ff:00:00:01",
- "nodeDpid2": "00:00:ff:ff:ff:ff:ff:48",
- "allowed": true
- }
- ],
- "switchConfig": [
- {
- "name": "none",
- "longitude": -99.741564,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 32.508086,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:01"
- },
- {
- "name": "none",
- "longitude": -106.649719,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 35.084446,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:02"
- },
- {
- "name": "none",
- "longitude": -73.758333,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 42.652222,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:03"
- },
- {
- "name": "none",
- "longitude": -97.743057,
- "params": {
- "numregens": 5
- },
- "allowed": true,
- "latitude": 33.755833,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:04"
- },
- {
- "name": "none",
- "longitude": -96.7,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 29.57,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:4b"
- },
- {
- "name": "none",
- "longitude": -78.877778,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 42.882778,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:05"
- },
- {
- "name": "none",
- "longitude": -108.509167,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 45.781667,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:06"
- },
- {
- "name": "none",
- "longitude": -76.614127,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 39.293781,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:07"
- },
- {
- "name": "none",
- "longitude": -86.812225,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 33.517223,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:08"
- },
- {
- "name": "none",
- "longitude": -100.796917,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 46.836379,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:09"
- },
- {
- "name": "none",
- "longitude": -91.184167,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 30.449722,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:0a"
- },
- {
- "name": "none",
- "longitude": -87.640432,
- "params": {
- "numregens": 4
- },
- "allowed": true,
- "latitude": 41.881484,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:0b"
- },
- {
- "name": "none",
- "longitude": -80.837502,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 35.224924,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:0c"
- },
- {
- "name": "none",
- "longitude": -79.938056,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 32.785278,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:0d"
- },
- {
- "name": "none",
- "longitude": -81.686943,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 41.498333,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:0e"
- },
- {
- "name": "none",
- "longitude": -82.996666,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 39.965279,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:0f"
- },
- {
- "name": "none",
- "longitude": -71.084918,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 42.36745,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:10"
- },
- {
- "name": "none",
- "longitude": -84.516944,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 39.102778,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:11"
- },
- {
- "name": "none",
- "longitude": -96.780431,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 32.797524,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:12"
- },
- {
- "name": "none",
- "longitude": -104.996391,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 39.744999,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:13"
- },
- {
- "name": "none",
- "longitude": -83.054169,
- "params": {
- "numregens": 5
- },
- "allowed": true,
- "latitude": 42.332779,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:14"
- },
- {
- "name": "none",
- "longitude": -106.483611,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 31.756389,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:15"
- },
- {
- "name": "none",
- "longitude": -119.79423,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 36.73923,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:16"
- },
- {
- "name": "none",
- "longitude": -79.793889,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 36.072222,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:17"
- },
- {
- "name": "none",
- "longitude": -72.676389,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 41.765833,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:18"
- },
- {
- "name": "none",
- "longitude": -95.36528,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 29.748333,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:19"
- },
- {
- "name": "none",
- "longitude": -81.43,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 30.33071,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:1a"
- },
- {
- "name": "none",
- "longitude": -94.578716,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 39.096649,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:1b"
- },
- {
- "name": "none",
- "longitude": -73.6699993,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 40.5899999,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:1c"
- },
- {
- "name": "none",
- "longitude": -118.252958,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 34.051227,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:1d"
- },
- {
- "name": "none",
- "longitude": -115.138889,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 36.168056,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:1e"
- },
- {
- "name": "none",
- "longitude": -85.760833,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 38.249167,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:1f"
- },
- {
- "name": "none",
- "longitude": -92.271942,
- "params": {
- "numregens": 2
- },
- "allowed": true,
- "latitude": 34.740833,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:20"
- },
- {
- "name": "none",
- "longitude": -80.195,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 25.779167,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:21"
- },
- {
- "name": "none",
- "longitude": -87.922501,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 43.037224,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:22"
- },
- {
- "name": "none",
- "longitude": -90.048058,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 35.145158,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:23"
- },
- {
- "name": "none",
- "longitude": -93.26718,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 44.977365,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:24"
- },
- {
- "name": "none",
- "longitude": -76.29,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 36.853333,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:25"
- },
- {
- "name": "none",
- "longitude": -86.775558,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 36.163955,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:26"
- },
- {
- "name": "none",
- "longitude": -90.07222,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 29.949806,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:27"
- },
- {
- "name": "none",
- "longitude": -74.177978,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 40.734408,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:28"
- },
- {
- "name": "none",
- "longitude": -73.989713,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 40.767497,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:29"
- },
- {
- "name": "none",
- "longitude": -97.515274,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 35.470833,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:2a"
- },
- {
- "name": "none",
- "longitude": -122.268889,
- "params": {
- "numregens": 2
- },
- "allowed": true,
- "latitude": 37.805556,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:2b"
- },
- {
- "name": "none",
- "longitude": -95.940277,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 41.259167,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:2c"
- },
- {
- "name": "none",
- "longitude": -81.377502,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 28.543279,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:2d"
- },
- {
- "name": "none",
- "longitude": -75.184139,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 39.946446,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:2e"
- },
- {
- "name": "none",
- "longitude": -112.07709,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 33.450361,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:2f"
- },
- {
- "name": "none",
- "longitude": -79.995552,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 40.441387,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:30"
- },
- {
- "name": "none",
- "longitude": -71.415278,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 41.818889,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:31"
- },
- {
- "name": "none",
- "longitude": -122.678055,
- "params": {
- "numregens": 2
- },
- "allowed": true,
- "latitude": 45.522499,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:32"
- },
- {
- "name": "none",
- "longitude": -77.436096,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 37.540752,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:33"
- },
- {
- "name": "none",
- "longitude": -78.640831,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 35.779656,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:34"
- },
- {
- "name": "none",
- "longitude": -77.616389,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 43.157222,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:35"
- },
- {
- "name": "none",
- "longitude": -121.487221,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 38.578609,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:36"
- },
- {
- "name": "none",
- "longitude": -75.649167,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 41.415278,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:37"
- },
- {
- "name": "none",
- "longitude": -111.888336,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 40.767776,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:38"
- },
- {
- "name": "none",
- "longitude": -98.488892,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 29.429445,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:39"
- },
- {
- "name": "none",
- "longitude": -119.7,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 34.418889,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:3a"
- },
- {
- "name": "none",
- "longitude": -117.158611,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 32.746944,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:3b"
- },
- {
- "name": "none",
- "longitude": -122.397263,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 37.785143,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:3c"
- },
- {
- "name": "none",
- "longitude": -121.892778,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 37.333333,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:3d"
- },
- {
- "name": "none",
- "longitude": -89.649444,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 39.795278,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:3e"
- },
- {
- "name": "none",
- "longitude": -117.419167,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 47.654724,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:3f"
- },
- {
- "name": "none",
- "longitude": -90.215279,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 38.633335,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:40"
- },
- {
- "name": "none",
- "longitude": -122.333336,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 47.606945,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:41"
- },
- {
- "name": "none",
- "longitude": -76.1475,
- "params": {
- "numregens": 3
- },
- "allowed": true,
- "latitude": 43.049444,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:42"
- },
- {
- "name": "none",
- "longitude": -82.522778,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 28.0225,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:43"
- },
- {
- "name": "none",
- "longitude": -110.968333,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 32.224444,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:44"
- },
- {
- "name": "none",
- "longitude": -84.290833,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 30.456389,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:45"
- },
- {
- "name": "none",
- "longitude": -83.538056,
- "params": {
- "numregens": 2
- },
- "allowed": true,
- "latitude": 41.65,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:46"
- },
- {
- "name": "none",
- "longitude": -95.985832,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 36.151669,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:47"
- },
- {
- "name": "none",
- "longitude": -77.01028,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 38.88306,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:48"
- },
- {
- "name": "none",
- "longitude": -75.553889,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 39.739167,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:49"
- },
- {
- "name": "none",
- "longitude": -80.05278,
- "params": {
- "numregens": 0
- },
- "allowed": true,
- "latitude": 26.709391,
- "type": "Roadm",
- "nodeDpid": "00:00:ff:ff:ff:ff:ff:4a"
- }
- ]
-}
\ No newline at end of file
diff --git a/TestON/tests/FUNC/FUNCoptical/Topology.json b/TestON/tests/FUNC/FUNCoptical/Topology.json
deleted file mode 100644
index 21c21e7..0000000
--- a/TestON/tests/FUNC/FUNCoptical/Topology.json
+++ /dev/null
@@ -1,4362 +0,0 @@
-{
- "devices": {
- "of:0000ffffffffff4a": {
- "basic": {
- "name": "WPBHFLAN",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff4a",
- "longitude": -80.05278,
- "mfr": "Linc",
- "latitude": 26.709391,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff4b": {
- "basic": {
- "name": "AUSTTXGR",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff4b",
- "longitude": -96.7,
- "mfr": "Linc",
- "latitude": 29.57,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff44": {
- "basic": {
- "name": "TCSNAZMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff44",
- "longitude": -110.968333,
- "mfr": "Linc",
- "latitude": 32.224444,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff45": {
- "basic": {
- "name": "TLHSFLAT",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff45",
- "longitude": -84.290833,
- "mfr": "Linc",
- "latitude": 30.456389,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff46": {
- "basic": {
- "name": "TOLDOH21",
- "optical.regens": 2,
- "driver": "LINC-OE",
- "mac": "ffffffffffff46",
- "longitude": -83.538056,
- "mfr": "Linc",
- "latitude": 41.65,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff47": {
- "basic": {
- "name": "TULSOKTB",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff47",
- "longitude": -95.985832,
- "mfr": "Linc",
- "latitude": 36.151669,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff40": {
- "basic": {
- "name": "STLSMO09",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff40",
- "longitude": -90.215279,
- "mfr": "Linc",
- "latitude": 38.633335,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff41": {
- "basic": {
- "name": "STTLWA06",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff41",
- "longitude": -122.333336,
- "mfr": "Linc",
- "latitude": 47.606945,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff42": {
- "basic": {
- "name": "SYRCNYSU",
- "optical.regens": 3,
- "driver": "LINC-OE",
- "mac": "ffffffffffff42",
- "longitude": -76.1475,
- "mfr": "Linc",
- "latitude": 43.049444,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff43": {
- "basic": {
- "name": "TAMQFLFN",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff43",
- "longitude": -82.522778,
- "mfr": "Linc",
- "latitude": 28.0225,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff48": {
- "basic": {
- "name": "WASHDCSW",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff48",
- "longitude": -77.01028,
- "mfr": "Linc",
- "latitude": 38.88306,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff49": {
- "basic": {
- "name": "WLMGDE01",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff49",
- "longitude": -75.553889,
- "mfr": "Linc",
- "latitude": 39.739167,
- "type": "ROADM"
- }
- },
- "of:0000ffffff00000a": {
- "basic": {
- "mfr": "Linc",
- "name": "DLLSTXTL-R",
- "latitude": 32.7,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "eaf75c83054e",
- "longitude": -96.7
- }
- },
- "of:0000ffffff00000b": {
- "basic": {
- "mfr": "Linc",
- "name": "ATLNGATL-R",
- "latitude": 33.7,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "ee5628887b4f",
- "longitude": -97.7
- }
- },
- "of:0000ffffffffff1d": {
- "basic": {
- "name": "LSANCA03",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff1d",
- "longitude": -118.252958,
- "mfr": "Linc",
- "latitude": 34.051227,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff03": {
- "basic": {
- "name": "ALBYNYSS",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff03",
- "longitude": -73.758333,
- "mfr": "Linc",
- "latitude": 42.652222,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff0a": {
- "basic": {
- "name": "BTRGLAMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff0a",
- "longitude": -91.184167,
- "mfr": "Linc",
- "latitude": 30.449722,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff0b": {
- "basic": {
- "name": "CHCGILCL",
- "optical.regens": 4,
- "driver": "LINC-OE",
- "mac": "ffffffffffff0b",
- "longitude": -87.640432,
- "mfr": "Linc",
- "latitude": 41.881484,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff0c": {
- "basic": {
- "name": "CHRLNCCA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff0c",
- "longitude": -80.837502,
- "mfr": "Linc",
- "latitude": 35.224924,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff0d": {
- "basic": {
- "name": "CHTNSCDT",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff0d",
- "longitude": -79.938056,
- "mfr": "Linc",
- "latitude": 32.785278,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff0e": {
- "basic": {
- "name": "CLEVOH02",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff0e",
- "longitude": -81.686943,
- "mfr": "Linc",
- "latitude": 41.498333,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff0f": {
- "basic": {
- "name": "CLMBOH11",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff0f",
- "longitude": -82.996666,
- "mfr": "Linc",
- "latitude": 39.965279,
- "type": "ROADM"
- }
- },
- "of:0000ffffff000008": {
- "basic": {
- "mfr": "Linc",
- "name": "MPLSMNDT-R",
- "latitude": 44.9,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "96d57fb4eb43",
- "longitude": -93.2
- }
- },
- "of:0000ffffff000009": {
- "basic": {
- "mfr": "Linc",
- "name": "LSANCA03-R",
- "latitude": 34.1,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "6ee9b704c04d",
- "longitude": -118.3
- }
- },
- "of:0000ffffffffff19": {
- "basic": {
- "name": "HSTNTX01",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff19",
- "longitude": -95.36528,
- "mfr": "Linc",
- "latitude": 29.748333,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff18": {
- "basic": {
- "name": "HRFRCT03",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff18",
- "longitude": -72.676389,
- "mfr": "Linc",
- "latitude": 41.765833,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff13": {
- "basic": {
- "name": "DNVRCOMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff13",
- "longitude": -104.996391,
- "mfr": "Linc",
- "latitude": 39.744999,
- "type": "ROADM"
- }
- },
- "of:0000ffffff000001": {
- "basic": {
- "mfr": "Linc",
- "name": "WASHDCSW-R",
- "latitude": 38.8,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "2221b5cb5c45",
- "longitude": -77.0
- }
- },
- "of:0000ffffff000002": {
- "basic": {
- "mfr": "Linc",
- "name": "SNJSCA02-R",
- "latitude": 37.3,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "f28c95ff6145",
- "longitude": -121.8
- }
- },
- "of:0000ffffffffff10": {
- "basic": {
- "name": "CMBRMA01",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff10",
- "longitude": -71.084918,
- "mfr": "Linc",
- "latitude": 42.36745,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff17": {
- "basic": {
- "name": "GNBONCEU",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff17",
- "longitude": -79.793889,
- "mfr": "Linc",
- "latitude": 36.072222,
- "type": "ROADM"
- }
- },
- "of:0000ffffff000005": {
- "basic": {
- "mfr": "Linc",
- "name": "PHNXAZMA-R",
- "latitude": 33.4,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "566c93367041",
- "longitude": -112.0
- }
- },
- "of:0000ffffffffff15": {
- "basic": {
- "name": "ELPSTXMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff15",
- "longitude": -106.483611,
- "mfr": "Linc",
- "latitude": 31.756389,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff14": {
- "basic": {
- "name": "DTRTMIBA",
- "optical.regens": 5,
- "driver": "LINC-OE",
- "mac": "ffffffffffff14",
- "longitude": -83.054169,
- "mfr": "Linc",
- "latitude": 42.332779,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff12": {
- "basic": {
- "name": "DLLSTXTL",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff12",
- "longitude": -96.780431,
- "mfr": "Linc",
- "latitude": 32.797524,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff11": {
- "basic": {
- "name": "CNCNOHWS",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff11",
- "longitude": -84.516944,
- "mfr": "Linc",
- "latitude": 39.102778,
- "type": "ROADM"
- }
- },
- "of:0000ffffff000003": {
- "basic": {
- "mfr": "Linc",
- "name": "SNANTXCA-R",
- "latitude": 29.4,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "c6463e3da348",
- "longitude": -98.4
- }
- },
- "of:0000ffffffffff1c": {
- "basic": {
- "name": "LGISLAND",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff1c",
- "longitude": -73.6699993,
- "mfr": "Linc",
- "latitude": 40.5899999,
- "type": "ROADM"
- }
- },
- "of:0000ffffff000004": {
- "basic": {
- "mfr": "Linc",
- "name": "ROCHNYXA-R",
- "latitude": 43.1,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "a2c8e539f440",
- "longitude": -77.6
- }
- },
- "of:0000ffffffffff1a": {
- "basic": {
- "name": "JCVLFLCL",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff1a",
- "longitude": -81.43,
- "mfr": "Linc",
- "latitude": 30.33071,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff1f": {
- "basic": {
- "name": "LSVLKYCS",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff1f",
- "longitude": -85.760833,
- "mfr": "Linc",
- "latitude": 38.249167,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff1e": {
- "basic": {
- "name": "LSVGNV02",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff1e",
- "longitude": -115.138889,
- "mfr": "Linc",
- "latitude": 36.168056,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff16": {
- "basic": {
- "name": "FRSNCA01",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff16",
- "longitude": -119.79423,
- "mfr": "Linc",
- "latitude": 36.73923,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff08": {
- "basic": {
- "name": "BRHMALMT",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff08",
- "longitude": -86.812225,
- "mfr": "Linc",
- "latitude": 33.517223,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff09": {
- "basic": {
- "name": "BSMRNDJC",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff09",
- "longitude": -100.796917,
- "mfr": "Linc",
- "latitude": 46.836379,
- "type": "ROADM"
- }
- },
- "of:0000ffffff000006": {
- "basic": {
- "mfr": "Linc",
- "name": "ORLDFLMA-R",
- "latitude": 28.5,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "bac54f68574f",
- "longitude": -81.3
- }
- },
- "of:0000ffffffffff01": {
- "basic": {
- "name": "ABLNTXRO",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff01",
- "longitude": -99.741564,
- "mfr": "Linc",
- "latitude": 32.508086,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff02": {
- "basic": {
- "name": "ALBQNMMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff02",
- "longitude": -106.649719,
- "mfr": "Linc",
- "latitude": 35.084446,
- "type": "ROADM"
- }
- },
- "of:0000ffffff000007": {
- "basic": {
- "mfr": "Linc",
- "name": "NWRKNJ02-R",
- "latitude": 40.7,
- "driver": "PK",
- "type": "SWITCH",
- "mac": "1237bde27347",
- "longitude": -74.1
- }
- },
- "of:0000ffffffffff04": {
- "basic": {
- "name": "ATLNGATL",
- "optical.regens": 5,
- "driver": "LINC-OE",
- "mac": "ffffffffffff04",
- "longitude": -97.743057,
- "mfr": "Linc",
- "latitude": 33.755833,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff05": {
- "basic": {
- "name": "BFLONYFR",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff05",
- "longitude": -78.877778,
- "mfr": "Linc",
- "latitude": 42.882778,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff06": {
- "basic": {
- "name": "BLNGMTMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff06",
- "longitude": -108.509167,
- "mfr": "Linc",
- "latitude": 45.781667,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff07": {
- "basic": {
- "name": "BLTMMDCH",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff07",
- "longitude": -76.614127,
- "mfr": "Linc",
- "latitude": 39.293781,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff2b": {
- "basic": {
- "name": "OKLDCA03",
- "optical.regens": 2,
- "driver": "LINC-OE",
- "mac": "ffffffffffff2b",
- "longitude": -122.268889,
- "mfr": "Linc",
- "latitude": 37.805556,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff2c": {
- "basic": {
- "name": "OMAHNENW",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff2c",
- "longitude": -95.940277,
- "mfr": "Linc",
- "latitude": 41.259167,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff2a": {
- "basic": {
- "name": "OKCYOKCE",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff2a",
- "longitude": -97.515274,
- "mfr": "Linc",
- "latitude": 35.470833,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff2f": {
- "basic": {
- "name": "PHNXAZMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff2f",
- "longitude": -112.07709,
- "mfr": "Linc",
- "latitude": 33.450361,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff2d": {
- "basic": {
- "name": "ORLDFLMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff2d",
- "longitude": -81.377502,
- "mfr": "Linc",
- "latitude": 28.543279,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff2e": {
- "basic": {
- "name": "PHLAPASL",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff2e",
- "longitude": -75.184139,
- "mfr": "Linc",
- "latitude": 39.946446,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff39": {
- "basic": {
- "name": "SNANTXCA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff39",
- "longitude": -98.488892,
- "mfr": "Linc",
- "latitude": 29.429445,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff38": {
- "basic": {
- "name": "SLKCUTMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff38",
- "longitude": -111.888336,
- "mfr": "Linc",
- "latitude": 40.767776,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff35": {
- "basic": {
- "name": "ROCHNYXA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff35",
- "longitude": -77.616389,
- "mfr": "Linc",
- "latitude": 43.157222,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff34": {
- "basic": {
- "name": "RLGHNCMO",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff34",
- "longitude": -78.640831,
- "mfr": "Linc",
- "latitude": 35.779656,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff37": {
- "basic": {
- "name": "SCTNPA01",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff37",
- "longitude": -75.649167,
- "mfr": "Linc",
- "latitude": 41.415278,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff36": {
- "basic": {
- "name": "SCRMCA01",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff36",
- "longitude": -121.487221,
- "mfr": "Linc",
- "latitude": 38.578609,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff31": {
- "basic": {
- "name": "PRVDRIGR",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff31",
- "longitude": -71.415278,
- "mfr": "Linc",
- "latitude": 41.818889,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff30": {
- "basic": {
- "name": "PITBPADG",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff30",
- "longitude": -79.995552,
- "mfr": "Linc",
- "latitude": 40.441387,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff33": {
- "basic": {
- "name": "RCMDVAGR",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff33",
- "longitude": -77.436096,
- "mfr": "Linc",
- "latitude": 37.540752,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff32": {
- "basic": {
- "name": "PTLDOR62",
- "optical.regens": 2,
- "driver": "LINC-OE",
- "mac": "ffffffffffff32",
- "longitude": -122.678055,
- "mfr": "Linc",
- "latitude": 45.522499,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff22": {
- "basic": {
- "name": "MILWWIHE",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff22",
- "longitude": -87.922501,
- "mfr": "Linc",
- "latitude": 43.037224,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff23": {
- "basic": {
- "name": "MMPHTNMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff23",
- "longitude": -90.048058,
- "mfr": "Linc",
- "latitude": 35.145158,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff20": {
- "basic": {
- "name": "LTRKARFR",
- "optical.regens": 2,
- "driver": "LINC-OE",
- "mac": "ffffffffffff20",
- "longitude": -92.271942,
- "mfr": "Linc",
- "latitude": 34.740833,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff21": {
- "basic": {
- "name": "MIAMFLAC",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff21",
- "longitude": -80.195,
- "mfr": "Linc",
- "latitude": 25.779167,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff26": {
- "basic": {
- "name": "NSVLTNMT",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff26",
- "longitude": -86.775558,
- "mfr": "Linc",
- "latitude": 36.163955,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff27": {
- "basic": {
- "name": "NWORLAMA",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff27",
- "longitude": -90.07222,
- "mfr": "Linc",
- "latitude": 29.949806,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff24": {
- "basic": {
- "name": "MPLSMNDT",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff24",
- "longitude": -93.26718,
- "mfr": "Linc",
- "latitude": 44.977365,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff25": {
- "basic": {
- "name": "NRFLVABS",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff25",
- "longitude": -76.29,
- "mfr": "Linc",
- "latitude": 36.853333,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff28": {
- "basic": {
- "name": "NWRKNJ02",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff28",
- "longitude": -74.177978,
- "mfr": "Linc",
- "latitude": 40.734408,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff29": {
- "basic": {
- "name": "NYCMNY54",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff29",
- "longitude": -73.989713,
- "mfr": "Linc",
- "latitude": 40.767497,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff3e": {
- "basic": {
- "name": "SPFDILSD",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff3e",
- "longitude": -89.649444,
- "mfr": "Linc",
- "latitude": 39.795278,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff3d": {
- "basic": {
- "name": "SNJSCA02",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff3d",
- "longitude": -121.892778,
- "mfr": "Linc",
- "latitude": 37.333333,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff3f": {
- "basic": {
- "name": "SPKNWA01",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff3f",
- "longitude": -117.419167,
- "mfr": "Linc",
- "latitude": 47.654724,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff3a": {
- "basic": {
- "name": "SNBBCA01",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff3a",
- "longitude": -119.7,
- "mfr": "Linc",
- "latitude": 34.418889,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff3c": {
- "basic": {
- "name": "SNFCCA21",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff3c",
- "longitude": -122.397263,
- "mfr": "Linc",
- "latitude": 37.785143,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff3b": {
- "basic": {
- "name": "SNDGCA02",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff3b",
- "longitude": -117.158611,
- "mfr": "Linc",
- "latitude": 32.746944,
- "type": "ROADM"
- }
- },
- "of:0000ffffffffff1b": {
- "basic": {
- "name": "KSCYMO09",
- "optical.regens": 0,
- "driver": "LINC-OE",
- "mac": "ffffffffffff1b",
- "longitude": -94.578716,
- "mfr": "Linc",
- "latitude": 39.096649,
- "type": "ROADM"
- }
- }
- },
- "links": {
- "of:0000ffffff000006/6-of:0000ffffffffff2d/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff1b/101-of:0000ffffffffff2c/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 320
- }
- },
- "of:0000ffffffffff1f/102-of:0000ffffffffff40/108": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 468
- }
- },
- "of:0000ffffff000001/4-of:0000ffffffffff48/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff0f/101-of:0000ffffffffff30/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 312
- }
- },
- "of:0000ffffffffff06/103-of:0000ffffffffff3f/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 852
- }
- },
- "of:0000ffffffffff30/101-of:0000ffffffffff37/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 457
- }
- },
- "of:0000ffffffffff02/103-of:0000ffffffffff1e/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 931
- }
- },
- "of:0000ffffff00000a/6-of:0000ffffffffff12/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff12/102-of:0000ffffffffff20/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 563
- }
- },
- "of:0000ffffff000003/5-of:0000ffffffffff39/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000005/3-of:0000ffffffffff2f/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff05/103-of:0000ffffffffff0e/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 333
- }
- },
- "of:0000ffffffffff22/101-of:0000ffffffffff24/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 574
- }
- },
- "of:0000ffffffffff0a/102-of:0000ffffffffff27/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 144
- }
- },
- "of:0000ffffffffff02/100-of:0000ffffffffff12/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 1134
- }
- },
- "of:0000ffffffffff04/102-of:0000ffffffffff0c/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 436
- }
- },
- "of:0000ffffff00000a/4-of:0000ffffffffff12/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff2d/101-of:0000ffffffffff4a/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 290
- }
- },
- "of:0000ffffffffff13/101-of:0000ffffffffff2c/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 940
- }
- },
- "of:0000ffffff000008/2-of:0000ffffffffff24/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000007/6-of:0000ffffffffff28/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000008/3-of:0000ffffffffff24/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff14/101-of:0000ffffffffff46/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 103
- }
- },
- "of:0000ffffff000002/3-of:0000ffffffffff3d/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000009/3-of:0000ffffffffff1d/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff11/103-of:0000ffffffffff48/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 779
- }
- },
- "of:0000ffffff000002/5-of:0000ffffffffff3d/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff1b/103-of:0000ffffffffff47/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 420
- }
- },
- "of:0000ffffffffff0d/101-of:0000ffffffffff1a/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 368
- }
- },
- "of:0000ffffff000009/4-of:0000ffffffffff1d/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff28/101-of:0000ffffffffff2e/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 146
- }
- },
- "of:0000ffffffffff1f/104-of:0000ffffffffff26/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 298
- }
- },
- "of:0000ffffffffff0e/102-of:0000ffffffffff46/101": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 185
- }
- },
- "of:0000ffffff000005/4-of:0000ffffffffff2f/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff0c/101-of:0000ffffffffff17/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 160
- }
- },
- "of:0000ffffffffff18/101-of:0000ffffffffff1c/108": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 185
- }
- },
- "of:0000ffffffffff06/101-of:0000ffffffffff09/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 724
- }
- },
- "of:0000ffffff000009/5-of:0000ffffffffff1d/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff17/101-of:0000ffffffffff1f/108": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 697
- }
- },
- "of:0000ffffffffff16/102-of:0000ffffffffff1d/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 396
- }
- },
- "of:0000ffffff00000a/2-of:0000ffffffffff12/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff1c/101-of:0000ffffffffff29/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 40
- }
- },
- "of:0000ffffff000006/4-of:0000ffffffffff2d/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff08/102-of:0000ffffffffff27/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 602
- }
- },
- "of:0000ffffffffff1d/102-of:0000ffffffffff3a/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 167
- }
- },
- "of:0000ffffff00000a/5-of:0000ffffffffff12/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000001/3-of:0000ffffffffff48/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff01/100-of:0000ffffffffff12/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 334
- }
- },
- "of:0000ffffffffff1a/101-of:0000ffffffffff2d/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 238
- }
- },
- "of:0000ffffff000004/6-of:0000ffffffffff35/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff1e/102-of:0000ffffffffff38/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 701
- }
- },
- "of:0000ffffff000008/6-of:0000ffffffffff24/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000004/4-of:0000ffffffffff35/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000002/2-of:0000ffffffffff3d/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff03/101-of:0000ffffffffff42/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 239
- }
- },
- "of:0000ffffffffff2e/101-of:0000ffffffffff37/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 201
- }
- },
- "of:0000ffffffffff13/102-of:0000ffffffffff38/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 714
- }
- },
- "of:0000ffffffffff07/101-of:0000ffffffffff2e/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 170
- }
- },
- "of:0000ffffffffff16/103-of:0000ffffffffff2a/108": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 298
- }
- },
- "of:0000ffffffffff3e/101-of:0000ffffffffff40/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 165
- }
- },
- "of:0000ffffffffff02/101-of:0000ffffffffff13/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 646
- }
- },
- "of:0000ffffff000002/6-of:0000ffffffffff3d/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000007/5-of:0000ffffffffff28/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000002/4-of:0000ffffffffff3d/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff01/101-of:0000ffffffffff15/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 768
- }
- },
- "of:0000ffffff000006/2-of:0000ffffffffff2d/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff04/103-of:0000ffffffffff1a/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 566
- }
- },
- "of:0000ffffffffff0e/101-of:0000ffffffffff0f/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 243
- }
- },
- "of:0000ffffff000003/4-of:0000ffffffffff39/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000009/2-of:0000ffffffffff1d/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff18/102-of:0000ffffffffff31/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 125
- }
- },
- "of:0000ffffff000001/5-of:0000ffffffffff48/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff11/102-of:0000ffffffffff1f/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 172
- }
- },
- "of:0000ffffff00000b/6-of:0000ffffffffff04/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff29/101-of:0000ffffffffff28/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 19
- }
- },
- "of:0000ffffffffff12/101-of:0000ffffffffff19/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 437
- }
- },
- "of:0000ffffffffff3d/101-of:0000ffffffffff3a/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 455
- }
- },
- "of:0000ffffffffff2b/103-of:0000ffffffffff3c/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 13
- }
- },
- "of:0000ffffffffff4b/101-of:0000ffffffffff19/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 283
- }
- },
- "of:0000ffffffffff32/101-of:0000ffffffffff36/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 934
- }
- },
- "of:0000ffffffffff12/103-of:0000ffffffffff2a/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 365
- }
- },
- "of:0000ffffffffff0d/102-of:0000ffffffffff34/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 424
- }
- },
- "of:0000ffffffffff29/103-of:0000ffffffffff49/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 210
- }
- },
- "of:0000ffffffffff10/101-of:0000ffffffffff31/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 80
- }
- },
- "of:0000ffffffffff1d/101-of:0000ffffffffff3b/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 212
- }
- },
- "of:0000ffffffffff29/102-of:0000ffffffffff37/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 187
- }
- },
- "of:0000ffffff00000a/3-of:0000ffffffffff12/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff15/101-of:0000ffffffffff39/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 969
- }
- },
- "of:0000ffffff000003/6-of:0000ffffffffff39/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff1e/101-of:0000ffffffffff2f/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 494
- }
- },
- "of:0000ffffffffff1b/102-of:0000ffffffffff40/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 457
- }
- },
- "of:0000ffffff000001/2-of:0000ffffffffff48/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff21/102-of:0000ffffffffff4a/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 125
- }
- },
- "of:0000ffffff000003/3-of:0000ffffffffff39/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff15/102-of:0000ffffffffff44/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 511
- }
- },
- "of:0000ffffff000005/2-of:0000ffffffffff2f/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff2b/102-of:0000ffffffffff38/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 1142
- }
- },
- "of:0000ffffffffff0b/101-of:0000ffffffffff14/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 458
- }
- },
- "of:0000ffffffffff45/101-of:0000ffffffffff43/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 384
- }
- },
- "of:0000ffffffffff32/102-of:0000ffffffffff38/108": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 1225
- }
- },
- "of:0000ffffffffff24/101-of:0000ffffffffff2c/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 560
- }
- },
- "of:0000ffffff000006/3-of:0000ffffffffff2d/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff3c/101-of:0000ffffffffff3d/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 80.0
- }
- },
- "of:0000ffffffffff21/101-of:0000ffffffffff43/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 407
- }
- },
- "of:0000ffffff000008/5-of:0000ffffffffff24/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000005/6-of:0000ffffffffff2f/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff2f/102-of:0000ffffffffff44/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 205
- }
- },
- "of:0000ffffff000007/3-of:0000ffffffffff28/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff0a/101-of:0000ffffffffff19/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 491
- }
- },
- "of:0000ffffffffff41/101-of:0000ffffffffff3f/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 442
- }
- },
- "of:0000ffffffffff33/101-of:0000ffffffffff48/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 184
- }
- },
- "of:0000ffffff000004/3-of:0000ffffffffff35/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff2f/101-of:0000ffffffffff3b/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 575
- }
- },
- "of:0000ffffff000006/5-of:0000ffffffffff2d/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff00000b/3-of:0000ffffffffff04/11": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000009/6-of:0000ffffffffff1d/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000007/2-of:0000ffffffffff28/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff17/103-of:0000ffffffffff33/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 319
- }
- },
- "of:0000ffffffffff16/101-of:0000ffffffffff1f/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 505
- }
- },
- "of:0000ffffffffff17/102-of:0000ffffffffff34/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 130
- }
- },
- "of:0000ffffffffff2b/101-of:0000ffffffffff36/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 131
- }
- },
- "of:0000ffffffffff03/100-of:0000ffffffffff10/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 265
- }
- },
- "of:0000ffffffffff04/101-of:0000ffffffffff08/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 271
- }
- },
- "of:0000ffffffffff07/103-of:0000ffffffffff46/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 68
- }
- },
- "of:0000ffffffffff0b/102-of:0000ffffffffff22/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 156
- }
- },
- "of:0000ffffffffff20/101-of:0000ffffffffff23/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 249
- }
- },
- "of:0000ffffff00000b/2-of:0000ffffffffff04/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff25/102-of:0000ffffffffff49/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 392
- }
- },
- "of:0000ffffffffff09/101-of:0000ffffffffff24/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 741
- }
- },
- "of:0000ffffffffff2a/101-of:0000ffffffffff47/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 188
- }
- },
- "of:0000ffffff000003/2-of:0000ffffffffff39/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff11/101-of:0000ffffffffff0f/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 194
- }
- },
- "of:0000ffffffffff35/101-of:0000ffffffffff42/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 143
- }
- },
- "of:0000ffffff000005/5-of:0000ffffffffff2f/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff00000b/5-of:0000ffffffffff04/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff25/101-of:0000ffffffffff34/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 290
- }
- },
- "of:0000ffffffffff32/103-of:0000ffffffffff41/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 280
- }
- },
- "of:0000ffffff000008/4-of:0000ffffffffff24/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff02/102-of:0000ffffffffff15/107": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 444
- }
- },
- "of:0000ffffffffff0b/103-of:0000ffffffffff3e/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 344
- }
- },
- "of:0000ffffffffff07/102-of:0000ffffffffff30/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 378
- }
- },
- "of:0000ffffffffff4b/102-of:0000ffffffffff39/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 141
- }
- },
- "of:0000ffffffffff23/101-of:0000ffffffffff26/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 380
- }
- },
- "of:0000ffffff00000b/4-of:0000ffffffffff04/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff08/101-of:0000ffffffffff26/106": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 353
- }
- },
- "of:0000ffffffffff27/101-of:0000ffffffffff45/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 670
- }
- },
- "of:0000ffffff000004/2-of:0000ffffffffff35/10": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000001/6-of:0000ffffffffff48/14": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff05/104-of:0000ffffffffff35/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 128
- }
- },
- "of:0000ffffffffff37/101-of:0000ffffffffff42/105": {
- "basic": {
- "optical.waves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 223
- }
- },
- "of:0000ffffff000004/5-of:0000ffffffffff35/13": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffff000007/4-of:0000ffffffffff28/12": {
- "basic": {
- "bandwidth": 100000,
- "type": "OPTICAL",
- "durable": "true",
- "optical.type": "cross-connect"
- }
- },
- "of:0000ffffffffff06/102-of:0000ffffffffff13/107": {
- "basic": {
- "optical.wves": 80,
- "durable": "true",
- "type": "OPTICAL",
- "optical.type": "WDM",
- "optical.kms": 875
- }
- }
- },
- "ports": {
- "of:0000ffffffffff27/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff3b/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff3b/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffff00000b/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffffffff32/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff22/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff4b/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff22/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff2f/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff03/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff03/100": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 100
- }
- },
- "of:0000ffffffffff38/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff32/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff38/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff38/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff38/108": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 108
- }
- },
- "of:0000ffffffffff1e/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffff000008/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffffffff3d/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff3d/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffffffff1e/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff3d/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff3f/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff1e/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff42/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff42/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff42/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff41/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff39/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff39/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff35/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffff000009/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffffffff49/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff49/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff2f/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff24/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff46/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff27/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff43/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff43/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff35/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff04/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffffffff04/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff04/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff04/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff36/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff36/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff04/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff35/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff28/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff17/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff17/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff17/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff47/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff47/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff17/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff20/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff14/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffff000005/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffffffff1d/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff1d/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffffffff14/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff1d/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff18/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff18/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff35/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff2b/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff2b/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff2a/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff39/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffff000006/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffff000006/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffffffff1d/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff39/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff16/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff16/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff16/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff15/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff15/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff15/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff15/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff48/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffff00000a/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffff00000a/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffffffff3c/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff3c/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff23/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff04/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff04/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff04/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff23/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff1c/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff33/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff07/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff07/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff07/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff3d/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff40/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff2e/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff2e/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff35/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff2e/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff3a/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff2d/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff2d/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff2d/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff2d/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffffffff2d/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff05/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff05/104": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 104
- }
- },
- "of:0000ffffffffff24/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff13/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff13/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff06/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff13/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff13/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff06/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffff000007/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffff000007/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffffffff48/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff44/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff44/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff35/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffffffff46/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff46/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff31/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff31/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff12/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff12/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff2d/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff12/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff32/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff12/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff12/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff0d/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff0d/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff48/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff19/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff19/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff19/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff29/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff29/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff29/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff28/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff0a/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff29/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff35/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff0a/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff30/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffff000004/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffffffff39/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff39/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff30/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff30/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff39/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff12/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff12/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff12/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff12/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffffffff12/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff1d/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff33/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff2c/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff48/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff2c/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff2c/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff2d/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff28/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff28/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff28/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffffffff28/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff28/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff45/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff3d/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff45/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffff000004/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffff000004/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffffffff01/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff01/100": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 100
- }
- },
- "of:0000ffffff000001/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffff000005/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffff000005/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffffffff27/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffff000007/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffffffff1b/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff1b/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff1b/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff24/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff2b/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff06/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff11/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff11/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff11/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff24/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffff000002/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffffffff08/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff2a/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff24/12": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 12
- }
- },
- "of:0000ffffffffff08/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff08/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff0b/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff0b/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff0c/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff0b/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff0c/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff26/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff26/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff2f/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffff00000a/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffffffff2f/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff2f/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff1c/108": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 108
- }
- },
- "of:0000ffffffffff2f/14": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 14
- }
- },
- "of:0000ffffffffff34/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff34/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff34/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff4a/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff4a/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff09/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff2a/108": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 108
- }
- },
- "of:0000ffffffffff09/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffff000002/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffffffff1d/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff1d/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff1d/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffff000006/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffff000002/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffff000001/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffffffff02/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff02/103": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 103
- }
- },
- "of:0000ffffffffff02/100": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 100
- }
- },
- "of:0000ffffffffff02/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff2f/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff26/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff0e/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff0e/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff4b/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff0e/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffff000008/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffffffff1a/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff1a/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffff000009/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffffffff1a/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff24/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffff000009/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffffffff24/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffff000008/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffffffff24/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffff000001/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffff00000b/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffff00000b/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffffffff2f/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff3a/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff3d/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffff000003/7": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 7
- }
- },
- "of:0000ffffffffff48/11": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 11
- }
- },
- "of:0000ffffffffff48/10": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 10
- }
- },
- "of:0000ffffffffff3d/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff20/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff41/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff25/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff25/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff1f/108": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 108
- }
- },
- "of:0000ffffffffff10/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff37/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff37/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff37/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- },
- "of:0000ffffffffff10/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff37/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffff000003/8": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 8
- }
- },
- "of:0000ffffff000003/9": {
- "optical": {
- "speed": 0,
- "type": "COPPER",
- "port": 9
- }
- },
- "of:0000ffffffffff1f/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff1f/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff1f/104": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 104
- }
- },
- "of:0000ffffffffff1f/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff0f/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff3e/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff0f/105": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 105
- }
- },
- "of:0000ffffffffff48/13": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 13
- }
- },
- "of:0000ffffffffff3e/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff40/106": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 106
- }
- },
- "of:0000ffffffffff0f/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff40/108": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 108
- }
- },
- "of:0000ffffffffff21/102": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 102
- }
- },
- "of:0000ffffffffff21/101": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 101
- }
- },
- "of:0000ffffffffff3f/107": {
- "optical": {
- "type": "FIBER",
- "speed": 0,
- "port": 107
- }
- }
- }
-}
\ No newline at end of file
diff --git a/TestON/tests/FUNC/FUNCoptical/dependencies/FuncIntentFunction.py b/TestON/tests/FUNC/FUNCoptical/dependencies/FuncIntentFunction.py
deleted file mode 100755
index 616e71e..0000000
--- a/TestON/tests/FUNC/FUNCoptical/dependencies/FuncIntentFunction.py
+++ /dev/null
@@ -1,1629 +0,0 @@
-"""
- Wrapper functions for FuncIntent
- This functions include Onosclidriver and Mininetclidriver driver functions
- Author: kelvin@onlab.us
-"""
-import time
-import copy
-import json
-
-def __init__( self ):
- self.default = ''
-
-def hostIntent( main,
- name,
- host1,
- host2,
- onosNode=0,
- host1Id="",
- host2Id="",
- mac1="",
- mac2="",
- vlan1="-1",
- vlan2="-1",
- sw1="",
- sw2="",
- expectedLink=0 ):
- """
- Description:
- Verify add-host-intent
- Steps:
- - Discover hosts
- - Add host intents
- - Check intents
- - Verify flows
- - Ping hosts
- - Reroute
- - Link down
- - Verify flows
- - Check topology
- - Ping hosts
- - Link up
- - Verify flows
- - Check topology
- - Ping hosts
- - Remove intents
- Required:
- name - Type of host intent to add eg. IPV4 | VLAN | Dualstack
- host1 - Name of first host
- host2 - Name of second host
- Optional:
- onosNode - ONOS node to install the intents in main.CLIs[ ]
- 0 by default so that it will always use the first
- ONOS node
- host1Id - ONOS id of the first host eg. 00:00:00:00:00:01/-1
- host2Id - ONOS id of the second host
- mac1 - Mac address of first host
- mac2 - Mac address of the second host
- vlan1 - Vlan tag of first host, defaults to -1
- vlan2 - Vlan tag of second host, defaults to -1
- sw1 - First switch to bring down & up for rerouting purpose
- sw2 - Second switch to bring down & up for rerouting purpose
- expectedLink - Expected link when the switches are down, it should
- be two links lower than the links before the two
- switches are down
- Return:
- Returns main.TRUE if all verification passed, otherwise return
- main.FALSE; returns main.FALSE if there is a key error
- """
-
- # Assert variables
- assert main, "There is no main variable"
- assert name, "variable name is empty"
- assert host1 and host2, "You must specify hosts"
-
- global itemName
- itemName = name
- h1Id = host1Id
- h2Id = host2Id
- h1Mac = mac1
- h2Mac = mac2
- vlan1 = vlan1
- vlan2 = vlan2
- hostNames = [ host1 , host2 ]
- intentsId = []
- stepResult = main.TRUE
- pingResult = main.TRUE
- intentResult = main.TRUE
- removeIntentResult = main.TRUE
- flowResult = main.TRUE
- topoResult = main.TRUE
- linkDownResult = main.TRUE
- linkUpResult = main.TRUE
- onosNode = int( onosNode )
-
- try:
- if main.hostsData:
- if not h1Mac:
- h1Mac = main.hostsData[ host1 ][ 'mac' ]
- if not h2Mac:
- h2Mac = main.hostsData[ host2 ][ 'mac' ]
- if main.hostsData[ host1 ].get( 'vlan' ):
- vlan1 = main.hostsData[ host1 ][ 'vlan' ]
- if main.hostsData[ host1 ].get( 'vlan' ):
- vlan2 = main.hostsData[ host2 ][ 'vlan' ]
- if not h1Id:
- h1Id = main.hostsData[ host1 ][ 'id' ]
- if not h2Id:
- h2Id = main.hostsData[ host2 ][ 'id' ]
-
- assert h1Id and h2Id, "You must specify host IDs"
- if not ( h1Id and h2Id ):
- main.log.info( "There are no host IDs" )
- return main.FALSE
-
- except KeyError:
- main.log.error( itemName + ": Key error Exception" )
- return main.FALSE
-
- # Discover hosts using arping incase pingall discovery failed
- main.log.info( itemName + ": Discover host using arping" )
- main.Mininet1.arping( srcHost=host1, dstHost=host2 )
- main.Mininet1.arping( srcHost=host2, dstHost=host1 )
- host1 = main.CLIs[ 0 ].getHost( mac=h1Mac )
- host2 = main.CLIs[ 0 ].getHost( mac=h2Mac )
-
- # Check flows count in each node
- checkFlowsCount( main )
-
- # Adding host intents
- main.log.info( itemName + ": Adding host intents" )
- intent1 = main.CLIs[ onosNode ].addHostIntent( hostIdOne=h1Id,
- hostIdTwo=h2Id )
- intentsId.append( intent1 )
-
- # Check intents state
- time.sleep( main.checkIntentSleep )
- intentResult = checkIntentState( main, intentsId )
- checkFlowsCount( main )
-
- # Check intents state again if first check fails...
- if not intentResult:
- intentResult = checkIntentState( main, intentsId )
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Ping hosts
- firstPingResult = pingallHosts( main, hostNames )
- if not firstPingResult:
- main.log.debug( "First ping failed, there must be" +
- " something wrong with ONOS performance" )
-
- # Ping hosts again...
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Initial Pingall Passed\n'
- else:
- main.assertReturnString += 'Initial Pingall Failed\n'
-
- # Test rerouting if these variables exist
- if sw1 and sw2 and expectedLink:
- # Link down
- linkDownResult = link( main, sw1, sw2, "down" )
-
- if linkDownResult:
- main.assertReturnString += 'Link Down Passed\n'
- else:
- main.assertReturnString += 'Link Down Failed\n'
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, expectedLink )
- if topoResult:
- main.assertReturnString += 'Link Down Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Down Topology State Failed\n'
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
-
- if pingTemp:
- main.assertReturnString += 'Link Down Pingall Passed\n'
- else:
- main.assertReturnString += 'Link Down Pingall Failed\n'
-
- # Check intent states
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Down Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Down Intent State Failed\n'
-
- # Checks ONOS state in link down
- if linkDownResult and topoResult and pingResult and intentResult:
- main.log.info( itemName + ": Successfully brought link down" )
- else:
- main.log.error( itemName + ": Failed to bring link down" )
-
- # Link up
- linkUpResult = link( main, sw1, sw2, "up" )
- time.sleep( main.rerouteSleep )
-
- if linkUpResult:
- main.assertReturnString += 'Link Up Passed\n'
- else:
- main.assertReturnString += 'Link Up Failed\n'
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, main.numLinks )
-
- if topoResult:
- main.assertReturnString += 'Link Up Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Up Topology State Failed\n'
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
-
- if pingTemp:
- main.assertReturnString += 'Link Up Pingall Passed\n'
- else:
- main.assertReturnString += 'Link Up Pingall Failed\n'
-
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Up Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Up Intent State Failed\n'
-
- # Checks ONOS state in link up
- if linkUpResult and topoResult and pingResult and intentResult:
- main.log.info( itemName + ": Successfully brought link back up" )
- else:
- main.log.error( itemName + ": Failed to bring link back up" )
-
- # Remove all intents
- removeIntentResult = removeAllIntents( main, intentsId )
-
- if removeIntentResult:
- main.assertReturnString += 'Remove Intents Passed'
- else:
- main.assertReturnString += 'Remove Intents Failed'
-
- stepResult = pingResult and linkDownResult and linkUpResult \
- and intentResult and removeIntentResult
-
- return stepResult
-
-def pointIntent( main,
- name,
- host1,
- host2,
- onosNode=0,
- deviceId1="",
- deviceId2="",
- port1="",
- port2="",
- ethType="",
- mac1="",
- mac2="",
- bandwidth="",
- lambdaAlloc=False,
- ipProto="",
- ip1="",
- ip2="",
- tcp1="",
- tcp2="",
- sw1="",
- sw2="",
- expectedLink=0 ):
-
- """
- Description:
- Verify add-point-intent
- Steps:
- - Get device ids | ports
- - Add point intents
- - Check intents
- - Verify flows
- - Ping hosts
- - Reroute
- - Link down
- - Verify flows
- - Check topology
- - Ping hosts
- - Link up
- - Verify flows
- - Check topology
- - Ping hosts
- - Remove intents
- Required:
- name - Type of point intent to add eg. IPV4 | VLAN | Dualstack
- host1 - Name of first host
- host2 - Name of second host
- Optional:
- onosNode - ONOS node to install the intents in main.CLIs[ ]
- 0 by default so that it will always use the first
- ONOS node
- deviceId1 - ONOS device id of the first switch, the same as the
- location of the first host eg. of:0000000000000001/1,
- located at device 1 port 1
- deviceId2 - ONOS device id of the second switch
- port1 - The port number where the first host is attached
- port2 - The port number where the second host is attached
- ethType - Ethernet type eg. IPV4, IPV6
- mac1 - Mac address of first host
- mac2 - Mac address of the second host
- bandwidth - Bandwidth capacity
- lambdaAlloc - Allocate lambda, defaults to False
- ipProto - IP protocol
- ip1 - IP address of first host
- ip2 - IP address of second host
- tcp1 - TCP port of first host
- tcp2 - TCP port of second host
- sw1 - First switch to bring down & up for rerouting purpose
- sw2 - Second switch to bring down & up for rerouting purpose
- expectedLink - Expected link when the switches are down, it should
- be two links lower than the links before the two
- switches are down
- """
-
- assert main, "There is no main variable"
- assert name, "variable name is empty"
- assert host1 and host2, "You must specify hosts"
-
- global itemName
- itemName = name
- host1 = host1
- host2 = host2
- hostNames = [ host1, host2 ]
- intentsId = []
-
- pingResult = main.TRUE
- intentResult = main.TRUE
- removeIntentResult = main.TRUE
- flowResult = main.TRUE
- topoResult = main.TRUE
- linkDownResult = main.TRUE
- linkUpResult = main.TRUE
- onosNode = int( onosNode )
-
- # Adding bidirectional point intents
- main.log.info( itemName + ": Adding point intents" )
- intent1 = main.CLIs[ onosNode ].addPointIntent( ingressDevice=deviceId1,
- egressDevice=deviceId2,
- portIngress=port1,
- portEgress=port2,
- ethType=ethType,
- ethSrc=mac1,
- ethDst=mac2,
- bandwidth=bandwidth,
- lambdaAlloc=lambdaAlloc,
- ipProto=ipProto,
- ipSrc=ip1,
- ipDst=ip2,
- tcpSrc=tcp1,
- tcpDst=tcp2 )
-
- intentsId.append( intent1 )
- intent2 = main.CLIs[ onosNode ].addPointIntent( ingressDevice=deviceId2,
- egressDevice=deviceId1,
- portIngress=port2,
- portEgress=port1,
- ethType=ethType,
- ethSrc=mac2,
- ethDst=mac1,
- bandwidth=bandwidth,
- lambdaAlloc=lambdaAlloc,
- ipProto=ipProto,
- ipSrc=ip2,
- ipDst=ip1,
- tcpSrc=tcp2,
- tcpDst=tcp1 )
- intentsId.append( intent2 )
-
- # Check intents state
- time.sleep( main.checkIntentSleep )
- intentResult = checkIntentState( main, intentsId )
- # Check flows count in each node
- checkFlowsCount( main )
-
- # Check intents state again if first check fails...
- if not intentResult:
- intentResult = checkIntentState( main, intentsId )
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Initial Pingall Passed\n'
- else:
- main.assertReturnString += 'Initial Pingall Failed\n'
-
- # Test rerouting if these variables exist
- if sw1 and sw2 and expectedLink:
- # link down
- linkDownResult = link( main, sw1, sw2, "down" )
-
- if linkDownResult:
- main.assertReturnString += 'Link Down Passed\n'
- else:
- main.assertReturnString += 'Link Down Failed\n'
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, expectedLink )
- if topoResult:
- main.assertReturnString += 'Link Down Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Down Topology State Failed\n'
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Link Down Pingall Passed\n'
- else:
- main.assertReturnString += 'Link Down Pingall Failed\n'
-
- # Check intent state
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Down Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Down Intent State Failed\n'
-
- # Checks ONOS state in link down
- if linkDownResult and topoResult and pingResult and intentResult:
- main.log.info( itemName + ": Successfully brought link down" )
- else:
- main.log.error( itemName + ": Failed to bring link down" )
-
- # link up
- linkUpResult = link( main, sw1, sw2, "up" )
- if linkUpResult:
- main.assertReturnString += 'Link Up Passed\n'
- else:
- main.assertReturnString += 'Link Up Failed\n'
-
- time.sleep( main.rerouteSleep )
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, main.numLinks )
- if topoResult:
- main.assertReturnString += 'Link Up Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Up Topology State Failed\n'
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
-
- if pingTemp:
- main.assertReturnString += 'Link Up Pingall Passed\n'
- else:
- main.assertReturnString += 'Link Up Pingall Failed\n'
-
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Up Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Up Intent State Failed\n'
-
- # Checks ONOS state in link up
- if linkUpResult and topoResult and pingResult and intentResult:
- main.log.info( itemName + ": Successfully brought link back up" )
- else:
- main.log.error( itemName + ": Failed to bring link back up" )
-
- # Remove all intents
- removeIntentResult = removeAllIntents( main, intentsId )
- if removeIntentResult:
- main.assertReturnString += 'Remove Intents Passed'
- else:
- main.assertReturnString += 'Remove Intents Failed'
-
- stepResult = pingResult and linkDownResult and linkUpResult \
- and intentResult and removeIntentResult
-
- return stepResult
-
-def pointIntentTcp( main,
- name,
- host1,
- host2,
- onosNode=0,
- deviceId1="",
- deviceId2="",
- port1="",
- port2="",
- ethType="",
- mac1="",
- mac2="",
- bandwidth="",
- lambdaAlloc=False,
- ipProto="",
- ip1="",
- ip2="",
- tcp1="",
- tcp2="",
- sw1="",
- sw2="",
- expectedLink=0 ):
-
- """
- Description:
- Verify add-point-intent only for TCP
- Steps:
- - Get device ids | ports
- - Add point intents
- - Check intents
- - Verify flows
- - Ping hosts
- - Reroute
- - Link down
- - Verify flows
- - Check topology
- - Ping hosts
- - Link up
- - Verify flows
- - Check topology
- - Ping hosts
- - Remove intents
- Required:
- name - Type of point intent to add eg. IPV4 | VLAN | Dualstack
- host1 - Name of first host
- host2 - Name of second host
- Optional:
- onosNode - ONOS node to install the intents in main.CLIs[ ]
- 0 by default so that it will always use the first
- ONOS node
- deviceId1 - ONOS device id of the first switch, the same as the
- location of the first host eg. of:0000000000000001/1,
- located at device 1 port 1
- deviceId2 - ONOS device id of the second switch
- port1 - The port number where the first host is attached
- port2 - The port number where the second host is attached
- ethType - Ethernet type eg. IPV4, IPV6
- mac1 - Mac address of first host
- mac2 - Mac address of the second host
- bandwidth - Bandwidth capacity
- lambdaAlloc - Allocate lambda, defaults to False
- ipProto - IP protocol
- ip1 - IP address of first host
- ip2 - IP address of second host
- tcp1 - TCP port of first host
- tcp2 - TCP port of second host
- sw1 - First switch to bring down & up for rerouting purpose
- sw2 - Second switch to bring down & up for rerouting purpose
- expectedLink - Expected link when the switches are down, it should
- be two links lower than the links before the two
- switches are down
- """
-
- assert main, "There is no main variable"
- assert name, "variable name is empty"
- assert host1 and host2, "You must specify hosts"
-
- global itemName
- itemName = name
- host1 = host1
- host2 = host2
- hostNames = [ host1, host2 ]
- intentsId = []
-
- iperfResult = main.TRUE
- intentResult = main.TRUE
- removeIntentResult = main.TRUE
- flowResult = main.TRUE
- topoResult = main.TRUE
- linkDownResult = main.TRUE
- linkUpResult = main.TRUE
- onosNode = int( onosNode )
-
- # Adding bidirectional point intents
- main.log.info( itemName + ": Adding point intents" )
- intent1 = main.CLIs[ onosNode ].addPointIntent( ingressDevice=deviceId1,
- egressDevice=deviceId2,
- portIngress=port1,
- portEgress=port2,
- ethType=ethType,
- ethSrc=mac1,
- ethDst=mac2,
- bandwidth=bandwidth,
- lambdaAlloc=lambdaAlloc,
- ipProto=ipProto,
- ipSrc=ip1,
- ipDst=ip2,
- tcpSrc=tcp1,
- tcpDst="" )
-
- intent2 = main.CLIs[ onosNode ].addPointIntent( ingressDevice=deviceId2,
- egressDevice=deviceId1,
- portIngress=port2,
- portEgress=port1,
- ethType=ethType,
- ethSrc=mac2,
- ethDst=mac1,
- bandwidth=bandwidth,
- lambdaAlloc=lambdaAlloc,
- ipProto=ipProto,
- ipSrc=ip2,
- ipDst=ip1,
- tcpSrc=tcp2,
- tcpDst="" )
-
- intent3 = main.CLIs[ onosNode ].addPointIntent( ingressDevice=deviceId1,
- egressDevice=deviceId2,
- portIngress=port1,
- portEgress=port2,
- ethType=ethType,
- ethSrc=mac1,
- ethDst=mac2,
- bandwidth=bandwidth,
- lambdaAlloc=lambdaAlloc,
- ipProto=ipProto,
- ipSrc=ip1,
- ipDst=ip2,
- tcpSrc="",
- tcpDst=tcp2 )
-
- intent4 = main.CLIs[ onosNode ].addPointIntent( ingressDevice=deviceId2,
- egressDevice=deviceId1,
- portIngress=port2,
- portEgress=port1,
- ethType=ethType,
- ethSrc=mac2,
- ethDst=mac1,
- bandwidth=bandwidth,
- lambdaAlloc=lambdaAlloc,
- ipProto=ipProto,
- ipSrc=ip2,
- ipDst=ip1,
- tcpSrc="",
- tcpDst=tcp1 )
- intentsId.append( intent1 )
- intentsId.append( intent2 )
- intentsId.append( intent3 )
- intentsId.append( intent4 )
-
- # Check intents state
- time.sleep( main.checkIntentSleep )
- intentResult = checkIntentState( main, intentsId )
- # Check flows count in each node
- checkFlowsCount( main )
-
- # Check intents state again if first check fails...
- if not intentResult:
- intentResult = checkIntentState( main, intentsId )
-
- # Check flows count in each node
- checkFlowsCount( main )
-
- # Verify flows
- checkFlowsState( main )
-
- # Run iperf to both host
- iperfTemp = main.Mininet1.iperftcp( host1,host2,10 )
- iperfResult = iperfResult and iperfTemp
- if iperfTemp:
- main.assertReturnString += 'Initial Iperf Passed\n'
- else:
- main.assertReturnString += 'Initial Iperf Failed\n'
-
- # Test rerouting if these variables exist
- if sw1 and sw2 and expectedLink:
- # link down
- linkDownResult = link( main, sw1, sw2, "down" )
-
- if linkDownResult:
- main.assertReturnString += 'Link Down Passed\n'
- else:
- main.assertReturnString += 'Link Down Failed\n'
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, expectedLink )
- if topoResult:
- main.assertReturnString += 'Link Down Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Down Topology State Failed\n'
-
- # Run iperf to both host
- iperfTemp = main.Mininet1.iperftcp( host1,host2,10 )
- iperfResult = iperfResult and iperfTemp
- if iperfTemp:
- main.assertReturnString += 'Link Down Iperf Passed\n'
- else:
- main.assertReturnString += 'Link Down Iperf Failed\n'
-
- # Check intent state
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Down Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Down Intent State Failed\n'
-
- # Checks ONOS state in link down
- if linkDownResult and topoResult and iperfResult and intentResult:
- main.log.info( itemName + ": Successfully brought link down" )
- else:
- main.log.error( itemName + ": Failed to bring link down" )
-
- # link up
- linkUpResult = link( main, sw1, sw2, "up" )
- if linkUpTemp:
- main.assertReturnString += 'Link Up Passed\n'
- else:
- main.assertReturnString += 'Link Up Failed\n'
-
- time.sleep( main.rerouteSleep )
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, main.numLinks )
-
- if topoResult:
- main.assertReturnString += 'Link Up Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Up Topology State Failed\n'
-
- # Run iperf to both host
- iperfTemp = main.Mininet1.iperftcp( host1,host2,10 )
- iperfResult = iperfResult and iperfTemp
- if iperfTemp:
- main.assertReturnString += 'Link Up Iperf Passed\n'
- else:
- main.assertReturnString += 'Link Up Iperf Failed\n'
-
- # Check intent state
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Down Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Down Intent State Failed\n'
-
- # Checks ONOS state in link up
- if linkUpResult and topoResult and iperfResult and intentResult:
- main.log.info( itemName + ": Successfully brought link back up" )
- else:
- main.log.error( itemName + ": Failed to bring link back up" )
-
- # Remove all intents
- removeIntentResult = removeAllIntents( main, intentsId )
- if removeIntentResult:
- main.assertReturnString += 'Remove Intents Passed'
- else:
- main.assertReturnString += 'Remove Intents Failed'
-
- stepResult = iperfResult and linkDownResult and linkUpResult \
- and intentResult and removeIntentResult
-
- return stepResult
-
-def singleToMultiIntent( main,
- name,
- hostNames,
- onosNode=0,
- devices="",
- ports=None,
- ethType="",
- macs=None,
- bandwidth="",
- lambdaAlloc=False,
- ipProto="",
- ipAddresses="",
- tcp="",
- sw1="",
- sw2="",
- expectedLink=0 ):
- """
- Verify Single to Multi Point intents
- NOTE:If main.hostsData is not defined, variables data should be passed
- in the same order index wise. All devices in the list should have the same
- format, either all the devices have its port or it doesn't.
- eg. hostName = [ 'h1', 'h2' ,.. ]
- devices = [ 'of:0000000000000001', 'of:0000000000000002', ...]
- ports = [ '1', '1', ..]
- ...
- Description:
- Verify add-single-to-multi-intent iterates through the list of given
- host | devices and add intents
- Steps:
- - Get device ids | ports
- - Add single to multi point intents
- - Check intents
- - Verify flows
- - Ping hosts
- - Reroute
- - Link down
- - Verify flows
- - Check topology
- - Ping hosts
- - Link up
- - Verify flows
- - Check topology
- - Ping hosts
- - Remove intents
- Required:
- name - Type of point intent to add eg. IPV4 | VLAN | Dualstack
- hostNames - List of host names
- Optional:
- onosNode - ONOS node to install the intents in main.CLIs[ ]
- 0 by default so that it will always use the first
- ONOS node
- devices - List of device ids in the same order as the hosts
- in hostNames
- ports - List of port numbers in the same order as the device in
- devices
- ethType - Ethernet type eg. IPV4, IPV6
- macs - List of hosts mac address in the same order as the hosts in
- hostNames
- bandwidth - Bandwidth capacity
- lambdaAlloc - Allocate lambda, defaults to False
- ipProto - IP protocol
- ipAddresses - IP addresses of host in the same order as the hosts in
- hostNames
- tcp - TCP ports in the same order as the hosts in hostNames
- sw1 - First switch to bring down & up for rerouting purpose
- sw2 - Second switch to bring down & up for rerouting purpose
- expectedLink - Expected link when the switches are down, it should
- be two links lower than the links before the two
- switches are down
- """
-
- assert main, "There is no main variable"
- assert hostNames, "You must specify hosts"
- assert devices or main.hostsData, "You must specify devices"
-
- global itemName
- itemName = name
- tempHostsData = {}
- intentsId = []
- onosNode = int( onosNode )
-
- macsDict = {}
- ipDict = {}
- if hostNames and devices:
- if len( hostNames ) != len( devices ):
- main.log.debug( "hosts and devices does not have the same length" )
- #print "len hostNames = ", len( hostNames )
- #print "len devices = ", len( devices )
- return main.FALSE
- if ports:
- if len( ports ) != len( devices ):
- main.log.error( "Ports and devices does " +
- "not have the same length" )
- #print "len devices = ", len( devices )
- #print "len ports = ", len( ports )
- return main.FALSE
- else:
- main.log.info( "Device Ports are not specified" )
- if macs:
- for i in range( len( devices ) ):
- macsDict[ devices[ i ] ] = macs[ i ]
-
- elif hostNames and not devices and main.hostsData:
- devices = []
- main.log.info( "singleToMultiIntent function is using main.hostsData" )
- for host in hostNames:
- devices.append( main.hostsData.get( host ).get( 'location' ) )
- macsDict[ main.hostsData.get( host ).get( 'location' ) ] = \
- main.hostsData.get( host ).get( 'mac' )
- ipDict[ main.hostsData.get( host ).get( 'location' ) ] = \
- main.hostsData.get( host ).get( 'ipAddresses' )
- #print main.hostsData
-
- #print 'host names = ', hostNames
- #print 'devices = ', devices
- #print "macsDict = ", macsDict
-
- pingResult = main.TRUE
- intentResult = main.TRUE
- removeIntentResult = main.TRUE
- flowResult = main.TRUE
- topoResult = main.TRUE
- linkDownResult = main.TRUE
- linkUpResult = main.TRUE
-
- devicesCopy = copy.copy( devices )
- if ports:
- portsCopy = copy.copy( ports )
- main.log.info( itemName + ": Adding single point to multi point intents" )
-
- # Check flows count in each node
- checkFlowsCount( main )
-
- # Adding bidirectional point intents
- for i in range( len( devices ) ):
- ingressDevice = devicesCopy[ i ]
- egressDeviceList = copy.copy( devicesCopy )
- egressDeviceList.remove( ingressDevice )
- if ports:
- portIngress = portsCopy[ i ]
- portEgressList = copy.copy( portsCopy )
- del portEgressList[ i ]
- else:
- portIngress = ""
- portEgressList = None
- if not macsDict:
- srcMac = ""
- else:
- srcMac = macsDict[ ingressDevice ]
- if srcMac == None:
- main.log.debug( "There is no MAC in device - " + ingressDevice )
- srcMac = ""
-
- intentsId.append(
- main.CLIs[ onosNode ].addSinglepointToMultipointIntent(
- ingressDevice=ingressDevice,
- egressDeviceList=egressDeviceList,
- portIngress=portIngress,
- portEgressList=portEgressList,
- ethType=ethType,
- ethSrc=srcMac,
- bandwidth=bandwidth,
- lambdaAlloc=lambdaAlloc,
- ipProto=ipProto,
- ipSrc="",
- ipDst="",
- tcpSrc="",
- tcpDst="" ) )
-
- # Wait some time for the flow to go through when using multi instance
- pingTemp = pingallHosts( main, hostNames )
-
- # Check intents state
- time.sleep( main.checkIntentSleep )
- intentResult = checkIntentState( main, intentsId )
-
- # Check intents state again if first check fails...
- if not intentResult:
- intentResult = checkIntentState( main, intentsId )
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Initial Pingall Passed\n'
- else:
- main.assertReturnString += 'Initial Pingall Failed\n'
-
- # Test rerouting if these variables exist
- if sw1 and sw2 and expectedLink:
- # link down
- linkDownResult = link( main, sw1, sw2, "down" )
-
- if linkDownResult:
- main.assertReturnString += 'Link Down Passed\n'
- else:
- main.assertReturnString += 'Link Down Failed\n'
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, expectedLink )
- if topoResult:
- main.assertReturnString += 'Link Down Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Down Topology State Failed\n'
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Link Down Pingall Passed\n'
- else:
- main.assertReturnString += 'Link Down Pingall Failed\n'
-
- # Check intent state
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Down Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Down Intent State Failed\n'
-
- # Checks ONOS state in link down
- if linkDownResult and topoResult and pingResult and intentResult:
- main.log.info( itemName + ": Successfully brought link down" )
- else:
- main.log.error( itemName + ": Failed to bring link down" )
-
- # link up
- linkUpResult = link( main, sw1, sw2, "up" )
- if linkUpResult:
- main.assertReturnString += 'Link Up Passed\n'
- else:
- main.assertReturnString += 'Link Up Failed\n'
-
- time.sleep( main.rerouteSleep )
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, main.numLinks )
- if topoResult:
- main.assertReturnString += 'Link Up Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Up Topology State Failed\n'
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Link Up Pingall Passed\n'
- else:
- main.assertReturnString += 'Link Up Pingall Failed\n'
-
- # Check Intents
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Up Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Up Intent State Failed\n'
-
- # Checks ONOS state in link up
- if linkUpResult and topoResult and pingResult and intentResult:
- main.log.info( itemName + ": Successfully brought link back up" )
- else:
- main.log.error( itemName + ": Failed to bring link back up" )
-
- # Remove all intents
- removeIntentResult = removeAllIntents( main, intentsId )
- if removeIntentResult:
- main.assertReturnString += 'Remove Intents Passed'
- else:
- main.assertReturnString += 'Remove Intents Failed'
-
- stepResult = pingResult and linkDownResult and linkUpResult \
- and intentResult and removeIntentResult
-
- return stepResult
-
-def multiToSingleIntent( main,
- name,
- hostNames,
- onosNode=0,
- devices="",
- ports=None,
- ethType="",
- macs=None,
- bandwidth="",
- lambdaAlloc=False,
- ipProto="",
- ipAddresses="",
- tcp="",
- sw1="",
- sw2="",
- expectedLink=0 ):
- """
- Verify Single to Multi Point intents
- NOTE:If main.hostsData is not defined, variables data should be passed in the
- same order index wise. All devices in the list should have the same
- format, either all the devices have its port or it doesn't.
- eg. hostName = [ 'h1', 'h2' ,.. ]
- devices = [ 'of:0000000000000001', 'of:0000000000000002', ...]
- ports = [ '1', '1', ..]
- ...
- Description:
- Verify add-multi-to-single-intent
- Steps:
- - Get device ids | ports
- - Add multi to single point intents
- - Check intents
- - Verify flows
- - Ping hosts
- - Reroute
- - Link down
- - Verify flows
- - Check topology
- - Ping hosts
- - Link up
- - Verify flows
- - Check topology
- - Ping hosts
- - Remove intents
- Required:
- name - Type of point intent to add eg. IPV4 | VLAN | Dualstack
- hostNames - List of host names
- Optional:
- onosNode - ONOS node to install the intents in main.CLIs[ ]
- 0 by default so that it will always use the first
- ONOS node
- devices - List of device ids in the same order as the hosts
- in hostNames
- ports - List of port numbers in the same order as the device in
- devices
- ethType - Ethernet type eg. IPV4, IPV6
- macs - List of hosts mac address in the same order as the hosts in
- hostNames
- bandwidth - Bandwidth capacity
- lambdaAlloc - Allocate lambda, defaults to False
- ipProto - IP protocol
- ipAddresses - IP addresses of host in the same order as the hosts in
- hostNames
- tcp - TCP ports in the same order as the hosts in hostNames
- sw1 - First switch to bring down & up for rerouting purpose
- sw2 - Second switch to bring down & up for rerouting purpose
- expectedLink - Expected link when the switches are down, it should
- be two links lower than the links before the two
- switches are down
- """
-
- assert main, "There is no main variable"
- assert hostNames, "You must specify hosts"
- assert devices or main.hostsData, "You must specify devices"
-
- global itemName
- itemName = name
- tempHostsData = {}
- intentsId = []
- onosNode = int( onosNode )
-
- macsDict = {}
- ipDict = {}
- if hostNames and devices:
- if len( hostNames ) != len( devices ):
- main.log.debug( "hosts and devices does not have the same length" )
- #print "len hostNames = ", len( hostNames )
- #print "len devices = ", len( devices )
- return main.FALSE
- if ports:
- if len( ports ) != len( devices ):
- main.log.error( "Ports and devices does " +
- "not have the same length" )
- #print "len devices = ", len( devices )
- #print "len ports = ", len( ports )
- return main.FALSE
- else:
- main.log.info( "Device Ports are not specified" )
- if macs:
- for i in range( len( devices ) ):
- macsDict[ devices[ i ] ] = macs[ i ]
- elif hostNames and not devices and main.hostsData:
- devices = []
- main.log.info( "multiToSingleIntent function is using main.hostsData" )
- for host in hostNames:
- devices.append( main.hostsData.get( host ).get( 'location' ) )
- macsDict[ main.hostsData.get( host ).get( 'location' ) ] = \
- main.hostsData.get( host ).get( 'mac' )
- ipDict[ main.hostsData.get( host ).get( 'location' ) ] = \
- main.hostsData.get( host ).get( 'ipAddresses' )
- #print main.hostsData
-
- #print 'host names = ', hostNames
- #print 'devices = ', devices
- #print "macsDict = ", macsDict
-
- pingResult = main.TRUE
- intentResult = main.TRUE
- removeIntentResult = main.TRUE
- flowResult = main.TRUE
- topoResult = main.TRUE
- linkDownResult = main.TRUE
- linkUpResult = main.TRUE
-
- devicesCopy = copy.copy( devices )
- if ports:
- portsCopy = copy.copy( ports )
- main.log.info( itemName + ": Adding multi point to single point intents" )
-
- # Check flows count in each node
- checkFlowsCount( main )
-
- # Adding bidirectional point intents
- for i in range( len( devices ) ):
- egressDevice = devicesCopy[ i ]
- ingressDeviceList = copy.copy( devicesCopy )
- ingressDeviceList.remove( egressDevice )
- if ports:
- portEgress = portsCopy[ i ]
- portIngressList = copy.copy( portsCopy )
- del portIngressList[ i ]
- else:
- portEgress = ""
- portIngressList = None
- if not macsDict:
- dstMac = ""
- else:
- dstMac = macsDict[ egressDevice ]
- if dstMac == None:
- main.log.debug( "There is no MAC in device - " + egressDevice )
- dstMac = ""
-
- intentsId.append(
- main.CLIs[ onosNode ].addMultipointToSinglepointIntent(
- ingressDeviceList=ingressDeviceList,
- egressDevice=egressDevice,
- portIngressList=portIngressList,
- portEgress=portEgress,
- ethType=ethType,
- ethDst=dstMac,
- bandwidth=bandwidth,
- lambdaAlloc=lambdaAlloc,
- ipProto=ipProto,
- ipSrc="",
- ipDst="",
- tcpSrc="",
- tcpDst="" ) )
-
- pingTemp = pingallHosts( main, hostNames )
-
- # Check intents state
- time.sleep( main.checkIntentSleep )
- intentResult = checkIntentState( main, intentsId )
-
- # Check intents state again if first check fails...
- if not intentResult:
- intentResult = checkIntentState( main, intentsId )
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
-
- # Ping hosts again...
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Initial Pingall Passed\n'
- else:
- main.assertReturnString += 'Initial Pingall Failed\n'
-
- # Test rerouting if these variables exist
- if sw1 and sw2 and expectedLink:
- # link down
- linkDownResult = link( main, sw1, sw2, "down" )
-
- if linkDownResult:
- main.assertReturnString += 'Link Down Passed\n'
- else:
- main.assertReturnString += 'Link Down Failed\n'
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, expectedLink )
- if topoResult:
- main.assertReturnString += 'Link Down Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Down Topology State Failed\n'
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Link Down Pingall Passed\n'
- else:
- main.assertReturnString += 'Link Down Pingall Failed\n'
-
- # Check intent state
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Down Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Down Intent State Failed\n'
-
- # Checks ONOS state in link down
- if linkDownResult and topoResult and pingResult and intentResult:
- main.log.info( itemName + ": Successfully brought link down" )
- else:
- main.log.error( itemName + ": Failed to bring link down" )
-
- # link up
- linkUpResult = link( main, sw1, sw2, "up" )
- if linkUpResult:
- main.assertReturnString += 'Link Up Passed\n'
- else:
- main.assertReturnString += 'Link Up Failed\n'
-
- time.sleep( main.rerouteSleep )
-
- # Check flows count in each node
- checkFlowsCount( main )
- # Verify flows
- checkFlowsState( main )
-
- # Check OnosTopology
- topoResult = checkTopology( main, main.numLinks )
- if topoResult:
- main.assertReturnString += 'Link Up Topology State Passed\n'
- else:
- main.assertReturnString += 'Link Up Topology State Failed\n'
-
- # Ping hosts
- pingTemp = pingallHosts( main, hostNames )
- pingResult = pingResult and pingTemp
- if pingTemp:
- main.assertReturnString += 'Link Up Pingall Passed\n'
- else:
- main.assertReturnString += 'Link Up Pingall Failed\n'
-
- # Check Intents
- intentTemp = checkIntentState( main, intentsId )
- intentResult = intentResult and intentTemp
- if intentTemp:
- main.assertReturnString += 'Link Up Intent State Passed\n'
- else:
- main.assertReturnString += 'Link Up Intent State Failed\n'
-
- # Checks ONOS state in link up
- if linkUpResult and topoResult and pingResult and intentResult:
- main.log.info( itemName + ": Successfully brought link back up" )
- else:
- main.log.error( itemName + ": Failed to bring link back up" )
-
- # Remove all intents
- removeIntentResult = removeAllIntents( main, intentsId )
- if removeIntentResult:
- main.assertReturnString += 'Remove Intents Passed'
- else:
- main.assertReturnString += 'Remove Intents Failed'
-
- stepResult = pingResult and linkDownResult and linkUpResult \
- and intentResult and removeIntentResult
-
- return stepResult
-
-def pingallHosts( main, hostList ):
- # Ping all host in the hosts list variable
- main.log.info( "Pinging: " + str( hostList ) )
- return main.Mininet1.pingallHosts( hostList )
-
-def getHostsData( main ):
- """
- Use fwd app and pingall to discover all the hosts
- """
-
- activateResult = main.TRUE
- appCheck = main.TRUE
- getDataResult = main.TRUE
- main.log.info( "Activating reactive forwarding app " )
- activateResult = main.CLIs[ 0 ].activateApp( "org.onosproject.fwd" )
- time.sleep( main.fwdSleep )
-
- for i in range( main.numCtrls ):
- appCheck = appCheck and main.CLIs[ i ].appToIDCheck()
- if appCheck != main.TRUE:
- main.log.warn( main.CLIs[ i ].apps() )
- main.log.warn( main.CLIs[ i ].appIDs() )
-
- pingResult = main.Mininet1.pingall( timeout = 600 )
- hostsJson = json.loads( main.CLIs[ 0 ].hosts() )
- hosts = main.Mininet1.getHosts().keys()
- # TODO: Make better use of new getHosts function
- for host in hosts:
- main.hostsData[ host ] = {}
- main.hostsData[ host ][ 'mac' ] = \
- main.Mininet1.getMacAddress( host ).upper()
- for hostj in hostsJson:
- if main.hostsData[ host ][ 'mac' ] == hostj[ 'mac' ]:
- main.hostsData[ host ][ 'id' ] = hostj[ 'id' ]
- main.hostsData[ host ][ 'vlan' ] = hostj[ 'vlan' ]
- main.hostsData[ host ][ 'location' ] = \
- hostj[ 'location' ][ 'elementId' ] + '/' + \
- hostj[ 'location' ][ 'port' ]
- main.hostsData[ host ][ 'ipAddresses' ] = hostj[ 'ipAddresses' ]
-
- main.log.info( "Deactivating reactive forwarding app " )
- deactivateResult = main.CLIs[ 0 ].deactivateApp( "org.onosproject.fwd" )
- if activateResult and deactivateResult and main.hostsData:
- main.log.info( "Successfully used fwd app to discover hosts " )
- getDataResult = main.TRUE
- else:
- main.log.info( "Failed to use fwd app to discover hosts " )
- getDataResult = main.FALSE
-
- print main.hostsData
-
- return getDataResult
-
-def checkTopology( main, expectedLink ):
- statusResult = main.TRUE
- # Check onos topology
- main.log.info( itemName + ": Checking ONOS topology " )
-
- for i in range( main.numCtrls ):
- statusResult = main.CLIs[ i ].checkStatus( main.numSwitch,
- expectedLink )\
- and statusResult
- if not statusResult:
- main.log.error( itemName + ": Topology mismatch" )
- else:
- main.log.info( itemName + ": Topology match" )
- return statusResult
-
-def checkIntentState( main, intentsId ):
- """
- This function will check intent state to make sure all the intents
- are in INSTALLED state
- """
-
- intentResult = main.TRUE
- results = []
-
- main.log.info( itemName + ": Checking intents state" )
- # First check of intents
- for i in range( main.numCtrls ):
- tempResult = main.CLIs[ i ].checkIntentState( intentsId=intentsId )
- results.append( tempResult )
-
- expectedState = [ 'INSTALLED', 'INSTALLING' ]
-
- if all( result == main.TRUE for result in results ):
- main.log.info( itemName + ": Intents are installed correctly" )
- else:
- # Wait for at least 5 second before checking the intents again
- time.sleep( 5 )
- results = []
- # Second check of intents since some of the intents may be in
- # INSTALLING state, they should be in INSTALLED at this time
- for i in range( main.numCtrls ):
- tempResult = main.CLIs[ i ].checkIntentState(
- intentsId=intentsId )
- results.append( tempResult )
- if all( result == main.TRUE for result in results ):
- main.log.info( itemName + ": Intents are installed correctly" )
- else:
- main.log.error( itemName + ": Intents are NOT installed correctly" )
- intentResult = main.FALSE
-
- return intentResult
-
-def checkFlowsState( main ):
-
- main.log.info( itemName + ": Check flows state" )
- checkFlowsResult = main.CLIs[ 0 ].checkFlowsState()
- return checkFlowsResult
-
-def link( main, sw1, sw2, option):
-
- # link down
- main.log.info( itemName + ": Bring link " + option + "between " +
- sw1 + " and " + sw2 )
- linkResult = main.Mininet1.link( end1=sw1, end2=sw2, option=option )
- return linkResult
-
-def removeAllIntents( main, intentsId ):
- """
- Remove all intents in the intentsId
- """
-
- onosSummary = []
- removeIntentResult = main.TRUE
- # Remove intents
- for intent in intentsId:
- main.CLIs[ 0 ].removeIntent( intentId=intent, purge=True )
-
- time.sleep( main.removeIntentSleep )
-
- # If there is remianing intents then remove intents should fail
- for i in range( main.numCtrls ):
- onosSummary.append( json.loads( main.CLIs[ i ].summary() ) )
-
- for summary in onosSummary:
- if summary.get( 'intents' ) != 0:
- main.log.warn( itemName + ": There are " +
- str( summary.get( 'intents' ) ) +
- " intents remaining in node " +
- str( summary.get( 'node' ) ) +
- ", failed to remove all the intents " )
- removeIntentResult = main.FALSE
-
- if removeIntentResult:
- main.log.info( itemName + ": There are no more intents remaining, " +
- "successfully removed all the intents." )
-
- return removeIntentResult
-
-def checkFlowsCount( main ):
- """
- Check flows count in each node
- """
-
- flowsCount = []
- main.log.info( itemName + ": Checking flows count in each ONOS node" )
- for i in range( main.numCtrls ):
- summaryResult = main.CLIs[ i ].summary()
- if not summaryResult:
- main.log.error( itemName + ": There is something wrong with " +
- "summary command" )
- return main.FALSE
- else:
- summaryJson = json.loads( summaryResult )
- flowsCount.append( summaryJson.get( 'flows' ) )
-
- if flowsCount:
- if all( flows==flowsCount[ 0 ] for flows in flowsCount ):
- main.log.info( itemName + ": There are " + str( flowsCount[ 0 ] ) +
- " flows in all ONOS node" )
- else:
- for i in range( main.numCtrls ):
- main.log.debug( itemName + ": ONOS node " + str( i ) + " has " +
- str( flowsCount[ i ] ) + " flows" )
- else:
- main.log.error( "Checking flows count failed, check summary command" )
- return main.FALSE
-
- return main.TRUE
-
-def checkLeaderChange( leaders1, leaders2 ):
- """
- Checks for a change in intent partition leadership.
-
- Takes the output of leaders -c in json string format before and after
- a potential change as input
-
- Returns main.TRUE if no mismatches are detected
- Returns main.FALSE if there is a mismatch or on error loading the input
- """
- try:
- leaders1 = json.loads( leaders1 )
- leaders2 = json.loads( leaders2 )
- except ( AttributeError, TypeError):
- main.log.exception( self.name + ": Object not as expected" )
- return main.FALSE
- except Exception:
- main.log.exception( self.name + ": Uncaught exception!" )
- main.cleanup()
- main.exit()
- main.log.info( "Checking Intent Paritions for Change in Leadership" )
- mismatch = False
- for dict1 in leaders1:
- if "intent" in dict1.get( "topic", [] ):
- for dict2 in leaders2:
- if dict1.get( "topic", 0 ) == dict2.get( "topic", 0 ) and \
- dict1.get( "leader", 0 ) != dict2.get( "leader", 0 ):
- mismatch = True
- main.log.error( "{0} changed leader from {1} to {2}".\
- format( dict1.get( "topic", "no-topic" ),\
- dict1.get( "leader", "no-leader" ),\
- dict2.get( "leader", "no-leader" ) ) )
- if mismatch:
- return main.FALSE
- else:
- return main.TRUE
-
-def report( main ):
- """
- Report errors/warnings/exceptions
- """
-
- main.ONOSbench.logReport( main.ONOSip[ 0 ],
- [ "INFO",
- "FOLLOWER",
- "WARN",
- "flow",
- "ERROR",
- "Except" ],
- "s" )
-
- main.log.info( "ERROR report: \n" )
- for i in range( main.numCtrls ):
- main.ONOSbench.logReport( main.ONOSip[ i ],
- [ "ERROR" ],
- "d" )
-
- main.log.info( "EXCEPTIONS report: \n" )
- for i in range( main.numCtrls ):
- main.ONOSbench.logReport( main.ONOSip[ i ],
- [ "Except" ],
- "d" )
-
- main.log.info( "WARNING report: \n" )
- for i in range( main.numCtrls ):
- main.ONOSbench.logReport( main.ONOSip[ i ],
- [ "WARN" ],
- "d" )
diff --git a/TestON/tests/FUNC/FUNCoptical/dependencies/TopoConfig.json b/TestON/tests/FUNC/FUNCoptical/dependencies/TopoConfig.json
new file mode 100644
index 0000000..e24ed20
--- /dev/null
+++ b/TestON/tests/FUNC/FUNCoptical/dependencies/TopoConfig.json
@@ -0,0 +1,99 @@
+{
+ "linkConfig": [
+ {
+ "type": "wdmLink",
+ "params": {
+ "port2": 2100,
+ "port1": 1200,
+ "nodeName2": "OE2",
+ "nodeName1": "OE1"
+ },
+ "nodeDpid1": "00:00:ff:ff:ff:ff:ff:01",
+ "nodeDpid2": "00:00:ff:ff:ff:ff:ff:02",
+ "allowed": true
+ },
+ {
+ "type": "wdmLink",
+ "params": {
+ "port2": 3200,
+ "port1": 2300,
+ "nodeName2": "OE3",
+ "nodeName1": "OE2"
+ },
+ "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
+ "nodeDpid2": "00:00:ff:ff:ff:ff:ff:03",
+ "allowed": true
+ },
+ {
+ "type": "wdmLink",
+ "params": {
+ "port2": 1300,
+ "port1": 3100,
+ "nodeName2": "OE1",
+ "nodeName1": "OE3"
+ },
+ "nodeDpid1": "00:00:ff:ff:ff:ff:ff:03",
+ "nodeDpid2": "00:00:ff:ff:ff:ff:ff:01",
+ "allowed": true
+ },
+ {
+ "type": "pktOptLink",
+ "params": {
+ "port2": 1,
+ "port1": 2,
+ "nodeName2": "OE1",
+ "nodeName1": "ps1"
+ },
+ "nodeDpid1": "00:00:00:00:00:00:00:01",
+ "nodeDpid2": "00:00:ff:ff:ff:ff:ff:01",
+ "allowed": true
+ },
+ {
+ "type": "pktOptLink",
+ "params": {
+ "port2": 1,
+ "port1": 2,
+ "nodeName2": "OE2",
+ "nodeName1": "ps2"
+ },
+ "nodeDpid1": "00:00:00:00:00:00:00:02",
+ "nodeDpid2": "00:00:ff:ff:ff:ff:ff:02",
+ "allowed": true
+ }
+ ],
+ "switchConfig": [
+ {
+ "name": "OE1",
+ "longitude": 0.0,
+ "params": {
+ "numregens": 0
+ },
+ "allowed": true,
+ "latitude": 0.0,
+ "type": "Roadm",
+ "nodeDpid": "00:00:ff:ff:ff:ff:ff:01"
+ },
+ {
+ "name": "OE2",
+ "longitude": 0.0,
+ "params": {
+ "numregens": 0
+ },
+ "allowed": true,
+ "latitude": 0.0,
+ "type": "Roadm",
+ "nodeDpid": "00:00:ff:ff:ff:ff:ff:02"
+ },
+ {
+ "name": "OE3",
+ "longitude": 0.0,
+ "params": {
+ "numregens": 0
+ },
+ "allowed": true,
+ "latitude": 0.0,
+ "type": "Roadm",
+ "nodeDpid": "00:00:ff:ff:ff:ff:ff:03"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/TestON/tests/FUNC/FUNCoptical/dependencies/Topology.json b/TestON/tests/FUNC/FUNCoptical/dependencies/Topology.json
new file mode 100644
index 0000000..210fc58
--- /dev/null
+++ b/TestON/tests/FUNC/FUNCoptical/dependencies/Topology.json
@@ -0,0 +1,138 @@
+{
+ "devices": {
+ "of:0000ffffffffff01": {
+ "basic": {
+ "type": "ROADM",
+ "name": "OE1"
+ }
+ },
+ "of:0000ffffffffff02": {
+ "basic": {
+ "type": "ROADM",
+ "name": "OE2"
+ }
+ },
+ "of:0000ffffffffff03": {
+ "basic": {
+ "type": "ROADM",
+ "name": "OE3"
+ }
+ },
+ "of:0000000000000002": {
+ "basic": {
+ "type": "SWITCH",
+ "name": "ps2"
+ }
+ },
+ "of:0000000000000001": {
+ "basic": {
+ "type": "SWITCH",
+ "name": "ps1"
+ }
+ }
+ },
+ "links": {
+ "of:0000ffffffffff03/3100-of:0000ffffffffff01/1300": {
+ "basic": {
+ "durable": "true",
+ "type": "OPTICAL"
+ }
+ },
+ "of:0000000000000002/2-of:0000ffffffffff02/1": {
+ "basic": {
+ "durable": "true",
+ "type": "OPTICAL"
+ }
+ },
+ "of:0000ffffffffff01/1200-of:0000ffffffffff02/2100": {
+ "basic": {
+ "durable": "true",
+ "type": "OPTICAL"
+ }
+ },
+ "of:0000ffffffffff02/2300-of:0000ffffffffff03/3200": {
+ "basic": {
+ "durable": "true",
+ "type": "OPTICAL"
+ }
+ },
+ "of:0000000000000001/2-of:0000ffffffffff01/1": {
+ "basic": {
+ "durable": "true",
+ "type": "OPTICAL"
+ }
+ }
+ },
+ "ports": {
+ "of:0000ffffffffff01/1300": {
+ "optical": {
+ "type": "OMS",
+ "speed": 0,
+ "port": 1300
+ }
+ },
+ "of:0000000000000001/1": {
+ "optical": {
+ "speed": 0,
+ "type": "COPPER",
+ "port": 1
+ }
+ },
+ "of:0000ffffffffff03/3200": {
+ "optical": {
+ "type": "OMS",
+ "speed": 0,
+ "port": 3200
+ }
+ },
+ "of:0000ffffffffff02/2100": {
+ "optical": {
+ "type": "OMS",
+ "speed": 0,
+ "port": 2100
+ }
+ },
+ "of:0000ffffffffff01/1200": {
+ "optical": {
+ "type": "OMS",
+ "speed": 0,
+ "port": 1200
+ }
+ },
+ "of:0000000000000002/1": {
+ "optical": {
+ "speed": 0,
+ "type": "COPPER",
+ "port": 1
+ }
+ },
+ "of:0000ffffffffff03/3100": {
+ "optical": {
+ "type": "OMS",
+ "speed": 0,
+ "port": 3100
+ }
+ },
+ "of:0000ffffffffff01/1": {
+ "optical": {
+ "type": "OCH",
+ "speed": 0,
+ "port": 1
+ }
+ },
+ "of:0000ffffffffff02/1": {
+ "optical": {
+ "type": "OCH",
+ "speed": 0,
+ "port": 1
+ }
+ },
+ "of:0000ffffffffff02/2300": {
+ "optical": {
+ "type": "OMS",
+ "speed": 0,
+ "port": 2300
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/TestON/tests/FUNC/FUNCoptical/dependencies/ectopo.py b/TestON/tests/FUNC/FUNCoptical/dependencies/ectopo.py
new file mode 100644
index 0000000..cd365b3
--- /dev/null
+++ b/TestON/tests/FUNC/FUNCoptical/dependencies/ectopo.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+
+from mininet.net import Mininet
+from mininet.topo import Topo
+from mininet.node import Host, RemoteController
+from mininet.cli import CLI
+from mininet.log import setLogLevel
+
+from opticalUtils import LINCSwitch, LINCLink
+
+class OpticalTopo( Topo ):
+ """
+ A simple optical topology of three LINC nodes(OE*), two OVS switches(ps*), and two hosts:
+
+ OE3
+ /\
+ h1-ps1-OE1--OE2-ps2-h2
+
+ """
+ def build( self ):
+
+ # set up packet layer - OVS + hosts
+ s1 = self.addSwitch( 'ps1' )
+ s2 = self.addSwitch( 'ps2' )
+ h1 = self.addHost( 'h1' )
+ h2 = self.addHost( 'h2' )
+ self.addLink( s1, h1 )
+ self.addLink( s2, h2 )
+
+ # set up ROADMs, add them to oel[]
+ oel = []
+ an = { "durable": "true" }
+ for i in range (1,4):
+ oean = { "optical.regens": 0 }
+ oel.append( self.addSwitch('OE%s' % i, dpid='0000ffffffffff0%s' % i, annotations=oean, cls=LINCSwitch) )
+
+ # ROADM port numbers are built as: OE1 <-> OE2 = 1200
+ # leaving port number up to 100 open for use by Och port
+ self.addLink( oel[0], oel[1], port1=1200, port2=2100, annotations=an, cls=LINCLink )
+ self.addLink( oel[1], oel[2], port1=2300, port2=3200, annotations=an, cls=LINCLink )
+ self.addLink( oel[2], oel[0], port1=3100, port2=1300, annotations=an, cls=LINCLink )
+
+ # cross-connects between OVSes and LINCs
+ self.addLink( s1, oel[0], port1=2, port2=1, annotations=an, cls=LINCLink )
+ self.addLink( s2, oel[1], port1=2, port2=1, annotations=an, cls=LINCLink )
+
+
+def setup( ctls ):
+ net = Mininet( topo=OpticalTopo(), controller=None )
+ i = 1
+ for ctl in ctls:
+ net.addController( RemoteController( 'c%d' % i, ip=ctl ) )
+ i+=1
+
+ net.start()
+ LINCSwitch.bootOE( net )
+ CLI( net )
+ net.stop()
+ LINCSwitch.shutdownOE()
+
+
+if __name__ == "__main__" :
+ import sys
+ if len( sys.argv ) >= 2 :
+ setLogLevel( 'info' )
+ ctls = sys.argv[ 1: ]
+ setup( ctls )
+ else:
+ print('./ectopo.py [IP1] [IP2]...\n')
diff --git a/TestON/tests/FUNC/FUNCoptical/dependencies/startUp.py b/TestON/tests/FUNC/FUNCoptical/dependencies/startUp.py
deleted file mode 100644
index bf2a2b6..0000000
--- a/TestON/tests/FUNC/FUNCoptical/dependencies/startUp.py
+++ /dev/null
@@ -1,38 +0,0 @@
-"""
- This wrapper function is use for starting up onos instance
-"""
-
-import time
-import os
-import json
-
-def onosBuild( main, gitBranch ):
- """
- This includes pulling ONOS and building it using maven install
- """
-
- buildResult = main.FALSE
-
- # Git checkout a branch of ONOS
- checkOutResult = main.ONOSbench.gitCheckout( gitBranch )
- # Does the git pull on the branch that was checked out
- if not checkOutResult:
- main.log.warn( "Failed to checked out " + gitBranch +
- " branch")
- else:
- main.log.info( "Successfully checked out " + gitBranch +
- " branch")
- gitPullResult = main.ONOSbench.gitPull()
- if gitPullResult == main.ERROR:
- main.log.error( "Error pulling git branch" )
- else:
- main.log.info( "Successfully pulled " + gitBranch + " branch" )
-
- # Maven clean install
- buildResult = main.ONOSbench.cleanInstall()
-
- return buildResult
-
-
-
-