Merge "Fix old SegmentRouting tests"
diff --git a/TestON/tests/USECASE/SegmentRouting/SRBridging/dependencies/SRBridgingTest.py b/TestON/tests/USECASE/SegmentRouting/SRBridging/dependencies/SRBridgingTest.py
index ac79922..6b869c1 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRBridging/dependencies/SRBridgingTest.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRBridging/dependencies/SRBridgingTest.py
@@ -51,7 +51,6 @@
 
         main.cfgName = 'CASE%01d%01d' % ( test_idx / 10, ( ( test_idx - 1 ) % 10 ) % 4 + 1 )
         main.configPath = main.path + "/dependencies/"
-        main.resultFileName = 'CASE%02d' % test_idx
         main.Cluster.setRunningNode( onosNodes )
         run.installOnos( main, skipPackage=skipPackage, cliSleep=5 )
         if hasattr( main, 'Mininet1' ):
@@ -72,7 +71,7 @@
         leaf_dpid = [ "of:%016d" % ( ls + 1 ) for ls in range( topo[ topology ][ 1 ] ) ]
         for dpid in leaf_dpid:
             run.checkFlowsByDpid( main, dpid, topo[ topology ][ 4 ], sleep=5 )
-        run.pingAll( main, 'CASE%02d' % test_idx )
+        run.pingAll( main )
 
         if hasattr( main, 'Mininet1' ):
             run.cleanup( main )
diff --git a/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.params b/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.params
index 23057dd..abe305e 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.params
@@ -18,7 +18,7 @@
 
     <ENV>
         <cellName>productionCell</cellName>
-        <cellApps>drivers,segmentrouting,openflow-base,netcfghostprovider,netcfglinksprovider</cellApps>
+        <cellApps>drivers,segmentrouting,openflow,netcfghostprovider,netcfglinksprovider</cellApps>
     </ENV>
 
     <GIT>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.py b/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.py
index ce3020c..0e8844a 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.py
@@ -48,11 +48,11 @@
         run.startMininet( main, 'cord_fabric.py' )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=116 )
-        run.pingAll( main, "CASE1" )
+        run.pingAll( main )
         run.killOnos( main, [ 0, 1, 2 ], '4', '8', '0' )
         run.pingAll( main, 'CASE1_Failure', dumpflows=False )
         run.recoverOnos( main, [ 0, 1, 2 ], '4', '8', '3' )
-        run.checkFlows( main, minFlowCount=116 )
+        run.checkFlows( main, minFlowCount=116, tag='CASE1_Failure' )
         run.pingAll( main, 'CASE1_Failure' )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
@@ -81,11 +81,11 @@
         run.startMininet( main, 'cord_fabric.py', args="--leaf=4 --spine=4" )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=350 )
-        run.pingAll( main, 'CASE2' )
+        run.pingAll( main )
         run.killOnos( main, [ 0, 1, 2 ], '8', '32', '0' )
         run.pingAll( main, 'CASE2_Failure', dumpflows=False )
         run.recoverOnos( main, [ 0, 1, 2 ], '8', '32', '3' )
-        run.checkFlows( main, minFlowCount=350 )
+        run.checkFlows( main, minFlowCount=350, tag='CASE2_Failure' )
         run.pingAll( main, 'CASE3_Recovery' )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
@@ -114,11 +114,11 @@
         run.startMininet( main, 'cord_fabric.py', args="--leaf=1 --spine=0" )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=15 )
-        run.pingAll( main, 'CASE3' )
+        run.pingAll( main )
         run.killOnos( main, [ 0, 1, 2 ], '1', '0', '0' )
         run.pingAll( main, 'CASE3_Failure', dumpflows=False )
         run.recoverOnos( main, [ 0, 1, 2 ], '1', '0', '3' )
-        run.checkFlows( main, minFlowCount=15 )
+        run.checkFlows( main, minFlowCount=15, tag='CASE3_Failure' )
         run.pingAll( main, 'CASE3_Failure' )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
diff --git a/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.topo b/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.topo
index f6661f8..5c4cc02 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.topo
+++ b/TestON/tests/USECASE/SegmentRouting/SRClusterRestart/SRClusterRestart.topo
@@ -9,7 +9,7 @@
             <connect_order>1</connect_order>
             <COMPONENTS>
                 <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
-                <diff_clihost>True</diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
+                <diff_clihost></diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
                 <karaf_username></karaf_username>
                 <karaf_password></karaf_password>
                 <web_user></web_user>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.params b/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.params
index fba7e9f..fceb91a 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.params
@@ -18,7 +18,7 @@
 
     <ENV>
         <cellName>productionCell</cellName>
-        <cellApps>drivers,segmentrouting,openflow-base,netcfghostprovider,netcfglinksprovider</cellApps>
+        <cellApps>drivers,segmentrouting,openflow,netcfghostprovider,netcfglinksprovider</cellApps>
     </ENV>
 
     <GIT>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.py b/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.py
index 1af681c..6a228f3 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.py
@@ -54,7 +54,7 @@
         run.pingAll( main, dumpflows=False, )
         run.addHostCfg( main )
         run.checkFlows( main, minFlowCount=140, dumpflows=False )
-        run.pingAll( main, "CASE1" )
+        run.pingAll( main )
         run.cleanup( main )
 
     def CASE2( self, main ):
@@ -79,7 +79,7 @@
         run.pingAll( main, dumpflows=False )
         run.addHostCfg( main )
         run.checkFlows( main, minFlowCount=380, dumpflows=False )
-        run.pingAll( main, 'CASE2' )
+        run.pingAll( main )
         run.cleanup( main )
 
     def CASE3( self, main ):
@@ -104,7 +104,7 @@
         run.pingAll( main, dumpflows=False )
         run.addHostCfg( main )
         run.checkFlows( main, minFlowCount=18, dumpflows=False )
-        run.pingAll( main, 'CASE3' )
+        run.pingAll( main )
         run.cleanup( main )
 
     def CASE4( self, main ):
@@ -129,7 +129,7 @@
         run.pingAll( main, dumpflows=False )
         run.addHostCfg( main )
         run.checkFlows( main, minFlowCount=140, dumpflows=False )
-        run.pingAll( main, "CASE4" )
+        run.pingAll( main )
         run.killOnos( main, [ 0 ], '4', '8', '2' )
         run.delHostCfg( main )
         run.checkFlows( main, minFlowCount=116, dumpflows=False )
@@ -158,7 +158,7 @@
         run.pingAll( main, dumpflows=False )
         run.addHostCfg( main )
         run.checkFlows( main, minFlowCount=380, dumpflows=False )
-        run.pingAll( main, 'CASE5' )
+        run.pingAll( main )
         run.killOnos( main, [ 0 ], '8', '32', '2' )
         run.delHostCfg( main )
         run.checkFlows( main, minFlowCount=350, dumpflows=False )
@@ -187,7 +187,7 @@
         run.pingAll( main, dumpflows=False )
         run.addHostCfg( main )
         run.checkFlows( main, minFlowCount=20, dumpflows=False )
-        run.pingAll( main, 'CASE6' )
+        run.pingAll( main )
         run.killOnos( main, [ 0 ], '1', '0', '2' )
         run.delHostCfg( main )
         run.checkFlows( main, minFlowCount=15, dumpflows=False )
diff --git a/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.topo b/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.topo
index f6661f8..5c4cc02 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.topo
+++ b/TestON/tests/USECASE/SegmentRouting/SRDynamic/SRDynamic.topo
@@ -9,7 +9,7 @@
             <connect_order>1</connect_order>
             <COMPONENTS>
                 <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
-                <diff_clihost>True</diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
+                <diff_clihost></diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
                 <karaf_username></karaf_username>
                 <karaf_password></karaf_password>
                 <web_user></web_user>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.params b/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.params
index cdb841b..dfee950 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.params
@@ -18,7 +18,7 @@
 
     <ENV>
         <cellName>productionCell</cellName>
-        <cellApps>drivers,segmentrouting,openflow-base,netcfghostprovider,netcfglinksprovider</cellApps>
+        <cellApps>drivers,segmentrouting,openflow,netcfghostprovider,netcfglinksprovider</cellApps>
     </ENV>
 
     <GIT>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.py b/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.py
index f84b39c..91757f0 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.py
@@ -61,7 +61,7 @@
             run.killOnos( main, [ toKill ], '4', '8', '2' )
             run.pingAll( main, 'CASE1_Failure%d' % ( i + 1 ) )
             run.recoverOnos( main, [ toKill ], '4', '8', '3' )
-            run.checkFlows( main, minFlowCount=116 )
+            run.checkFlows( main, minFlowCount=116, tag='CASE1_Recovery%d' % ( i + 1 ) )
             run.pingAll( main, 'CASE1_Recovery%d' % ( i + 1 ) )
         run.cleanup( main )
 
@@ -96,7 +96,7 @@
             run.killOnos( main, [ toKill ], '4', '8', '2' )
             run.pingAll( main, 'CASE2_Failure%d' % ( i + 1 ) )
             run.recoverOnos( main, [ toKill ], '4', '8', '3' )
-            run.checkFlows( main, minFlowCount=116 )
+            run.checkFlows( main, minFlowCount=116, tag='CASE2_Recovery%d' % ( i + 1 ) )
             run.pingAll( main, 'CASE2_Recovery%d' % ( i + 1 ) )
         run.cleanup( main )
 
@@ -127,7 +127,7 @@
             run.killOnos( main, [ toKill ], '8', '32', '2' )
             run.pingAll( main, 'CASE3_Failure%d' % ( i + 1 ) )
             run.recoverOnos( main, [ toKill ], '8', '32', '3' )
-            run.checkFlows( main, minFlowCount=350 )
+            run.checkFlows( main, minFlowCount=350, tag='CASE3_Recovery%d' % ( i + 1 ) )
             run.pingAll( main, 'CASE3_Recovery%d' % ( i + 1 ) )
         run.cleanup( main )
 
@@ -162,7 +162,7 @@
             run.killOnos( main, [ toKill ], '8', '32', '2' )
             run.pingAll( main, 'CASE4_Failure%d' % ( i + 1 ) )
             run.recoverOnos( main, [ toKill ], '8', '32', '3' )
-            run.checkFlows( main, minFlowCount=350 )
+            run.checkFlows( main, minFlowCount=350, tag='CASE4_Recovery%d' % ( i + 1 ) )
             run.pingAll( main, 'CASE4_Recovery%d' % ( i + 1 ) )
         run.cleanup( main )
 
@@ -200,10 +200,10 @@
             time.sleep( main.switchSleep )
             run.pingAll( main, "CASE5_SWITCH_Failure%d" % ( i + 1 ) )
             run.recoverSwitch( main, main.spines[ switchToKill ][ 'name' ], switches='4', links='8' )
-            run.checkFlows( main, minFlowCount=116 )
+            run.checkFlows( main, minFlowCount=116, tag="CASE5_SWITCH_Recovery%d" % ( i + 1 ) )
             run.pingAll( main, "CASE5_SWITCH_Recovery%d" % ( i + 1 ) )
             run.recoverOnos( main, [ onosToKill ], '4', '8', '3' )
-            run.checkFlows( main, minFlowCount=116 )
+            run.checkFlows( main, minFlowCount=116, tag='CASE5_ONOS_Recovery%d' % ( i + 1 ) )
             run.pingAll( main, 'CASE5_ONOS_Recovery%d' % ( i + 1 ) )
         run.cleanup( main )
 
@@ -244,10 +244,10 @@
             time.sleep( main.switchSleep )
             run.pingAll( main, "CASE6_SWITCH_Failure%d" % ( i + 1 ) )
             run.recoverSwitch( main, main.spines[ switchToKill ][ 'name' ], switches='4', links='8' )
-            run.checkFlows( main, minFlowCount=116 )
+            run.checkFlows( main, minFlowCount=116, tag="CASE6_SWITCH_Recovery%d" % ( i + 1 ) )
             run.pingAll( main, "CASE6_SWITCH_Recovery%d" % ( i + 1 ) )
             run.recoverOnos( main, [ onosToKill ], '4', '8', '3' )
-            run.checkFlows( main, minFlowCount=116 )
+            run.checkFlows( main, minFlowCount=116, tag='CASE6_ONOS_Recovery%d' % ( i + 1 ) )
             run.pingAll( main, 'CASE6_ONOS_Recovery%d' % ( i + 1 ) )
         run.cleanup( main )
 
@@ -285,10 +285,10 @@
             time.sleep( main.switchSleep )
             run.pingAll( main, "CASE7_SWITCH_Failure%d" % ( i + 1 ) )
             run.recoverSwitch( main, main.spines[ switchToKill ][ 'name' ], switches='8', links='32' )
-            run.checkFlows( main, minFlowCount=350 )
+            run.checkFlows( main, minFlowCount=350, tag="CASE7_SWITCH_Recovery%d" % ( i + 1 ) )
             run.pingAll( main, "CASE7_SWITCH_Recovery%d" % ( i + 1 ) )
             run.recoverOnos( main, [ onosToKill ], '8', '32', '3' )
-            run.checkFlows( main, minFlowCount=350 )
+            run.checkFlows( main, minFlowCount=350, tag='CASE7_ONOS_Recovery%d' % ( i + 1 ) )
             run.pingAll( main, 'CASE7_ONOS_Recovery%d' % ( i + 1 ) )
         run.cleanup( main )
 
@@ -329,9 +329,9 @@
             time.sleep( main.switchSleep )
             run.pingAll( main, "CASE8_SWITCH_Failure%d" % ( i + 1 ) )
             run.recoverSwitch( main, main.spines[ switchToKill ][ 'name' ], switches='8', links='32' )
-            run.checkFlows( main, minFlowCount=350 )
+            run.checkFlows( main, minFlowCount=350, tag="CASE8_SWITCH_Recovery%d" % ( i + 1 ) )
             run.pingAll( main, "CASE8_SWITCH_Recovery%d" % ( i + 1 ) )
             run.recoverOnos( main, [ onosToKill ], '8', '32', '3' )
-            run.checkFlows( main, minFlowCount=350 )
+            run.checkFlows( main, minFlowCount=350, tag='CASE8_ONOS_Recovery%d' % ( i + 1 ) )
             run.pingAll( main, 'CASE8_ONOS_Recovery%d' % ( i + 1 ) )
         run.cleanup( main )
diff --git a/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.topo b/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.topo
index f6661f8..5c4cc02 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.topo
+++ b/TestON/tests/USECASE/SegmentRouting/SRHighAvailability/SRHighAvailability.topo
@@ -9,7 +9,7 @@
             <connect_order>1</connect_order>
             <COMPONENTS>
                 <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
-                <diff_clihost>True</diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
+                <diff_clihost></diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
                 <karaf_username></karaf_username>
                 <karaf_password></karaf_password>
                 <web_user></web_user>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRLinkFailure/SRLinkFailure.params b/TestON/tests/USECASE/SegmentRouting/SRLinkFailure/SRLinkFailure.params
index a5d4811..ea3112c 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRLinkFailure/SRLinkFailure.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRLinkFailure/SRLinkFailure.params
@@ -18,7 +18,7 @@
 
     <ENV>
         <cellName>productionCell</cellName>
-        <cellApps>drivers,segmentrouting,openflow-base,netcfghostprovider,netcfglinksprovider</cellApps>
+        <cellApps>drivers,segmentrouting,openflow,netcfghostprovider,netcfglinksprovider</cellApps>
     </ENV>
 
     <GIT>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRLinkFailure/SRLinkFailure.topo b/TestON/tests/USECASE/SegmentRouting/SRLinkFailure/SRLinkFailure.topo
index f6661f8..5c4cc02 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRLinkFailure/SRLinkFailure.topo
+++ b/TestON/tests/USECASE/SegmentRouting/SRLinkFailure/SRLinkFailure.topo
@@ -9,7 +9,7 @@
             <connect_order>1</connect_order>
             <COMPONENTS>
                 <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
-                <diff_clihost>True</diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
+                <diff_clihost></diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
                 <karaf_username></karaf_username>
                 <karaf_password></karaf_password>
                 <web_user></web_user>
diff --git a/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.params b/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.params
index 23057dd..abe305e 100755
--- a/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.params
+++ b/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.params
@@ -18,7 +18,7 @@
 
     <ENV>
         <cellName>productionCell</cellName>
-        <cellApps>drivers,segmentrouting,openflow-base,netcfghostprovider,netcfglinksprovider</cellApps>
+        <cellApps>drivers,segmentrouting,openflow,netcfghostprovider,netcfglinksprovider</cellApps>
     </ENV>
 
     <GIT>
diff --git a/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.py b/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.py
index 6c972b2..0e2b135 100644
--- a/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.py
+++ b/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.py
@@ -48,12 +48,12 @@
         run.startMininet( main, 'cord_fabric.py' )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=116 )
-        run.pingAll( main, "CASE1" )
+        run.pingAll( main )
         run.killOnos( main, [ 0 ], '4', '8', '2' )
         run.pingAll( main, 'CASE1_Failure' )
         run.recoverOnos( main, [ 0 ], '4', '8', '3' )
-        run.checkFlows( main, minFlowCount=116 )
-        run.pingAll( main, 'CASE1_Failure' )
+        run.checkFlows( main, minFlowCount=116, tag='CASE1_Recovery' )
+        run.pingAll( main, 'CASE1_Recovery' )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
@@ -85,8 +85,8 @@
         run.killOnos( main, [ 0 ], '8', '32', '2' )
         run.pingAll( main, 'CASE2_Failure' )
         run.recoverOnos( main, [ 0 ], '8', '32', '3' )
-        run.checkFlows( main, minFlowCount=350 )
-        run.pingAll( main, 'CASE3_Recovery' )
+        run.checkFlows( main, minFlowCount=350, tag='CASE2_Recovery' )
+        run.pingAll( main, 'CASE2_Recovery' )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
@@ -118,8 +118,8 @@
         run.killOnos( main, [ 0 ], '1', '0', '2' )
         run.pingAll( main, 'CASE3_Failure' )
         run.recoverOnos( main, [ 0 ], '1', '0', '3' )
-        run.checkFlows( main, minFlowCount=15 )
-        run.pingAll( main, 'CASE3_Failure' )
+        run.checkFlows( main, minFlowCount=15, tag='CASE3_Recovery' )
+        run.pingAll( main, 'CASE3_Recovery' )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
diff --git a/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.topo b/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.topo
index e0b1d43..28ecb9a 100755
--- a/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.topo
+++ b/TestON/tests/USECASE/SegmentRouting/SROnosFailure/SROnosFailure.topo
@@ -9,7 +9,7 @@
             <connect_order>1</connect_order>
             <COMPONENTS>
                 <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
-                <diff_clihost>True</diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
+                <diff_clihost></diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
                 <karaf_username></karaf_username>
                 <karaf_password></karaf_password>
                 <web_user></web_user>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.params b/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.params
index fba7e9f..fceb91a 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.params
@@ -18,7 +18,7 @@
 
     <ENV>
         <cellName>productionCell</cellName>
-        <cellApps>drivers,segmentrouting,openflow-base,netcfghostprovider,netcfglinksprovider</cellApps>
+        <cellApps>drivers,segmentrouting,openflow,netcfghostprovider,netcfglinksprovider</cellApps>
     </ENV>
 
     <GIT>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.py b/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.py
index 2919500..5a863a9 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.py
@@ -51,7 +51,7 @@
         run.startMininet( main, 'cord_fabric.py' )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=116 )
-        run.pingAll( main, "CASE1" )
+        run.pingAll( main )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
@@ -77,7 +77,7 @@
         run.startMininet( main, 'cord_fabric.py', args="--leaf=4 --spine=4" )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=350 )
-        run.pingAll( main, 'CASE2' )
+        run.pingAll( main )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
@@ -103,7 +103,7 @@
         run.startMininet( main, 'cord_fabric.py', args="--leaf=1 --spine=0" )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=15 )
-        run.pingAll( main, 'CASE3' )
+        run.pingAll( main )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
@@ -129,7 +129,7 @@
         run.startMininet( main, 'cord_fabric.py' )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=116 )
-        run.pingAll( main, 'CASE4' )
+        run.pingAll( main )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
@@ -155,7 +155,7 @@
         run.startMininet( main, 'cord_fabric.py', args="--leaf=4 --spine=4" )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=350 )
-        run.pingAll( main, 'CASE5' )
+        run.pingAll( main )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
@@ -181,7 +181,7 @@
         run.startMininet( main, 'cord_fabric.py', args="--leaf=1 --spine=0" )
         # pre-configured routing and bridging test
         run.checkFlows( main, minFlowCount=15 )
-        run.pingAll( main, 'CASE4' )
+        run.pingAll( main )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
diff --git a/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.topo b/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.topo
index e0b1d43..28ecb9a 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.topo
+++ b/TestON/tests/USECASE/SegmentRouting/SRSanity/SRSanity.topo
@@ -9,7 +9,7 @@
             <connect_order>1</connect_order>
             <COMPONENTS>
                 <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
-                <diff_clihost>True</diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
+                <diff_clihost></diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used if True.
                 <karaf_username></karaf_username>
                 <karaf_password></karaf_password>
                 <web_user></web_user>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.params b/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.params
index a5d4811..ea3112c 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.params
@@ -18,7 +18,7 @@
 
     <ENV>
         <cellName>productionCell</cellName>
-        <cellApps>drivers,segmentrouting,openflow-base,netcfghostprovider,netcfglinksprovider</cellApps>
+        <cellApps>drivers,segmentrouting,openflow,netcfghostprovider,netcfglinksprovider</cellApps>
     </ENV>
 
     <GIT>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.py b/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.py
index d0d79c8..1d013a0 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.py
@@ -58,7 +58,7 @@
         run.killSwitch( main, switch, switches='3', links='4' )
         run.pingAll( main, "CASE1_Failure" )
         run.recoverSwitch( main, switch, switches='4', links='8' )
-        run.checkFlows( main, minFlowCount=116 )
+        run.checkFlows( main, minFlowCount=116, tag="CASE1_Recovery" )
         run.pingAll( main, "CASE1_Recovery" )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
@@ -95,7 +95,7 @@
         time.sleep( main.switchSleep )
         run.pingAll( main, "CASE2_Failure" )
         run.recoverSwitch( main, switch, switches='8', links='32' )
-        run.checkFlows( main, minFlowCount=350 )
+        run.checkFlows( main, minFlowCount=350, tag="CASE2_Recovery" )
         run.pingAll( main, "CASE2_Recovery" )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
@@ -128,10 +128,10 @@
         # switch failure
         switch = main.params[ 'kill' ][ 'switch' ]
         run.killSwitch( main, switch, switches='3', links='4' )
-        run.pingAll( main, "CASE3_Failure" )
+        run.pingAll( main, "CASE4_Failure" )
         run.recoverSwitch( main, switch, switches='4', links='8' )
-        run.checkFlows( main, minFlowCount=116 )
-        run.pingAll( main, "CASE3_Recovery" )
+        run.checkFlows( main, minFlowCount=116, tag="CASE4_Recovery" )
+        run.pingAll( main, "CASE4_Recovery" )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO Dynamic config of vlan xconnect
@@ -165,10 +165,10 @@
         switch = main.params[ 'kill' ][ 'switch' ]
         run.killSwitch( main, switch, switches='7', links='24' )
         time.sleep( main.switchSleep )
-        run.pingAll( main, "CASE4_Failure" )
+        run.pingAll( main, "CASE5_Failure" )
         run.recoverSwitch( main, switch, switches='8', links='32' )
-        run.checkFlows( main, minFlowCount=350 )
-        run.pingAll( main, "CASE4_Recovery" )
+        run.checkFlows( main, minFlowCount=350, tag="CASE5_Recovery" )
+        run.pingAll( main, "CASE5_Recovery" )
         # TODO Dynamic config of hosts in subnet
         # TODO Dynamic config of host not in subnet
         # TODO preconfigured xconnect
diff --git a/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.topo b/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.topo
index ee6ce56..67a973e 100755
--- a/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.topo
+++ b/TestON/tests/USECASE/SegmentRouting/SRSwitchFailure/SRSwitchFailure.topo
@@ -9,7 +9,7 @@
             <connect_order>1</connect_order>
             <COMPONENTS>
                 <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
-                <diff_clihost>True</diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used for True.
+                <diff_clihost></diff_clihost> # if it has different host other than localhost for CLI. True or empty. OC# will be used for True.
                 <karaf_username></karaf_username>
                 <karaf_password></karaf_password>
                 <web_user></web_user>
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
index 6329782..f078e2d 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
@@ -201,9 +201,11 @@
             main.cleanAndExit()
 
     @staticmethod
-    def checkFlows( main, minFlowCount, dumpflows=True, sleep=10 ):
+    def checkFlows( main, minFlowCount, tag="", dumpflows=True, sleep=10 ):
         main.step(
                 " Check whether the flow count is bigger than %s" % minFlowCount )
+        if tag == "":
+            tag = 'CASE%d' % main.CurrentTestCaseNumber
         count = utilities.retry( main.Cluster.active( 0 ).CLI.checkFlowCount,
                                  main.FALSE,
                                  kwargs={ 'min': minFlowCount },
@@ -230,11 +232,11 @@
             main.ONOSbench.dumpONOSCmd( main.Cluster.active( 0 ).ipAddress,
                                         "flows",
                                         main.logdir,
-                                        main.resultFileName + "_FlowsBefore" )
+                                        tag + "_FlowsBefore" )
             main.ONOSbench.dumpONOSCmd( main.Cluster.active( 0 ).ipAddress,
                                         "groups",
                                         main.logdir,
-                                        main.resultFileName + "_GroupsBefore" )
+                                        tag + "_GroupsBefore" )
 
     @staticmethod
     def checkFlowsByDpid( main, dpid, minFlowCount, sleep=10 ):
@@ -255,6 +257,8 @@
     def pingAll( main, tag="", dumpflows=True ):
         main.log.report( "Check full connectivity" )
         print main.pingChart
+        if tag == "":
+            tag = 'CASE%d' % main.CurrentTestCaseNumber
         for entry in main.pingChart.itervalues():
             print entry
             hosts, expect = entry[ 'hosts' ], entry[ 'expect' ]
@@ -329,8 +333,8 @@
                 ctrl = main.Cluster.runningNodes[ i ]
                 onosIsUp = main.ONOSbench.isup( ctrl.ipAddress )
                 if onosIsUp == main.TRUE:
-                    ctrl.CLI.portstate( dpid=dpid1, port=port1 )
-                    ctrl.CLI.portstate( dpid=dpid2, port=port2 )
+                    ctrl.CLI.portstate( dpid=dpid1, port=port1, state='Enable' )
+                    ctrl.CLI.portstate( dpid=dpid2, port=port2, state='Enable' )
             time.sleep( main.linkSleep )
 
             result = main.Cluster.active( 0 ).CLI.checkStatus( numoswitch=switches,
@@ -407,7 +411,7 @@
 
         main.utils.mininetCleanup( main.Mininet1 )
 
-        main.utils.copyKarafLog( main.resultFileName, before=True )
+        main.utils.copyKarafLog( "CASE%d" % main.CurrentTestCaseNumber, before=True )
 
         for ctrl in main.Cluster.active():
             main.ONOSbench.onosStop( ctrl.ipAddress )
@@ -448,7 +452,7 @@
                 main.log.error( "Failed to kill ONOS, stopping test" )
                 main.cleanAndExit()
 
-            topology = utilities.retry( main.Cluster.active( 0 ).checkStatus,
+            topology = utilities.retry( main.Cluster.active( 0 ).CLI.checkStatus,
                                         main.FALSE,
                                         kwargs={ 'numoswitch': switches,
                                                  'numolink': links,
@@ -476,7 +480,7 @@
         for i in nodes:
             main.step( "Checking if ONOS CLI is ready" )
             ctrl = main.Cluster.runningNodes[ i ]
-            ctrl.CLI.startCellCli()
+            # ctrl.CLI.startCellCli()
             cliResult = ctrl.CLI.startOnosCli( ctrl.ipAddress,
                                                commandlineTimeout=60,
                                                onosStartTimeout=100 )
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/cord_fabric.py b/TestON/tests/USECASE/SegmentRouting/dependencies/cord_fabric.py
index 1012fef..0c15cdc 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/cord_fabric.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/cord_fabric.py
@@ -27,7 +27,7 @@
 from ipaddress import IPv6Network, IPv4Network
 from mininet.net import Mininet
 from mininet.topo import Topo
-from mininet.node import RemoteController, UserSwitch, Host, OVSBridge
+from mininet.node import RemoteController, Host, OVSBridge
 from mininet.link import TCLink
 from mininet.log import setLogLevel
 from mininet.cli import CLI
@@ -43,8 +43,8 @@
                        help='number of leaf switches, default=2' )
     parser.add_option( '--fanout', dest='fanout', type='int', default=2,
                        help='number of hosts per leaf switch, default=2' )
-    parser.add_option( '--onos', dest='onos', type='int', default=0,
-                       help='number of ONOS Instances, default=0, 0 means localhost, 1 will use OC1 and so on' )
+    parser.add_option( '--onos-ip', dest='onosIp', type='str', default='',
+                       help='IP address list of ONOS instances, separated by comma(,). Overrides --onos option' )
     parser.add_option( '--vlan', dest='vlan', type='int', default=-1,
                        help='vid of cross connect, default=-1, -1 means utilize default value' )
     parser.add_option( '--ipv6', action="store_true", dest='ipv6',
@@ -266,9 +266,11 @@
     fanout = opts.fanout
     vlan = opts.vlan
     ipv6 = opts.ipv6
-    controllers = [ os.environ[ 'OC%s' % i ] for i in
-                    range( 1, opts.onos + 1 ) ] if ( opts.onos ) else [
-        '127.0.0.1' ]
+    if opts.onosIp != '':
+        controllers = opts.onosIp.split( ',' )
+    else:
+        controllers = ['127.0.0.1']
+
     if not ipv6:
         topo = LeafAndSpine(
             spine=spine,
@@ -285,7 +287,7 @@
             ipv6=ipv6
         )
     net = Mininet( topo=topo, link=TCLink, build=False,
-                   switch=UserSwitch, controller=None, autoSetMacs=True )
+                   controller=None, autoSetMacs=True )
     i = 0
     for ip in controllers:
         net.addController( "c%s" % ( i ), controller=RemoteController, ip=ip )
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/json/0x1.json b/TestON/tests/USECASE/SegmentRouting/dependencies/json/0x1.json
index 36955e1..90cf052 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/json/0x1.json
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/json/0x1.json
@@ -3,39 +3,43 @@
     "of:0000000000000001/1" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.1.254/24" ]
+            "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
         ]
     },
     "of:0000000000000001/2" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.1.254/24" ]
+            "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
         ]
     },
     "of:0000000000000001/3" : {
       "interfaces" : [
         {
-          "ips" : [ "10.0.1.254/24" ]
+          "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
       ]
     },
     "of:0000000000000001/4" : {
       "interfaces" : [
         {
-          "ips" : [ "10.0.1.254/24" ]
+          "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
       ]
     }
     },
     "devices" : {
         "of:0000000000000001" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Leaf-R1",
-                "nodeSid" : 1,
-                "routerIp" : "192.168.0.1",
+                "ipv4NodeSid" : 1,
+                "ipv4Loopback" : "192.168.0.1",
                 "routerMac" : "10:00:00:00:00:01",
                 "isEdgeRouter" : true,
                 "adjacencySids" : []
@@ -46,13 +50,13 @@
         "00:00:00:00:00:01/-1" : {
             "basic": {
                 "ips": ["10.0.1.1"],
-                "location": "of:0000000000000001/1"
+                "locations": ["of:0000000000000001/1"]
             }
         },
         "00:00:00:00:00:02/-1" : {
             "basic": {
                 "ips": ["10.0.1.2"],
-                "location": "of:0000000000000001/2"
+                "locations": ["of:0000000000000001/2"]
             }
         }
     },
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/json/2x2.json b/TestON/tests/USECASE/SegmentRouting/dependencies/json/2x2.json
index 433b594..52625c7 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/json/2x2.json
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/json/2x2.json
@@ -3,86 +3,92 @@
     "of:0000000000000001/1" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.1.254/24" ]
+            "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
         ]
     },
     "of:0000000000000001/2" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.1.254/24" ]
+            "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
         ]
     },
     "of:0000000000000001/3" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.1.254/24" ]
+            "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
         ]
     },
     "of:0000000000000001/4" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.1.254/24" ]
+            "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
         ]
     },
     "of:0000000000000002/1" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.2.254/24" ]
+            "ips" : [ "10.0.2.254/24" ],
+            "vlan-untagged" : 200
         }
         ]
     },
     "of:0000000000000002/2" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.2.254/24" ]
+            "ips" : [ "10.0.2.254/24" ],
+            "vlan-untagged" : 200
         }
         ]
     }
     },
     "devices" : {
         "of:0000000000000001" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Leaf-R1",
-                "nodeSid" : 1,
-                "routerIp" : "192.168.0.1",
+                "ipv4NodeSid" : 1,
+                "ipv4Loopback" : "192.168.0.1",
                 "routerMac" : "10:00:00:00:00:01",
                 "isEdgeRouter" : true,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000002" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Leaf-R2",
-                "nodeSid" : 2,
-                "routerIp" : "192.168.0.2",
+                "ipv4NodeSid" : 2,
+                "ipv4Loopback" : "192.168.0.2",
                 "routerMac" : "10:00:00:00:00:02",
                 "isEdgeRouter" : true,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000101" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Spine-R1",
-                "nodeSid" : 101,
-                "routerIp" : "192.168.0.101",
+                "ipv4NodeSid" : 101,
+                "ipv4Loopback" : "192.168.0.101",
                 "routerMac" : "10:00:00:00:01:01",
                 "isEdgeRouter" : false,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000102" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Spine-R2",
-                "nodeSid" : 102,
-                "routerIp" : "192.168.0.102",
+                "ipv4NodeSid" : 102,
+                "ipv4Loopback" : "192.168.0.102",
                 "routerMac" : "10:00:00:00:01:02",
                 "isEdgeRouter" : false,
                 "adjacencySids" : []
@@ -93,25 +99,25 @@
         "00:00:00:00:00:01/-1" : {
             "basic": {
                 "ips": ["10.0.1.1"],
-                "location": "of:0000000000000001/1"
+                "locations": ["of:0000000000000001/1"]
             }
         },
         "00:00:00:00:00:02/-1" : {
             "basic": {
                 "ips": ["10.0.1.2"],
-                "location": "of:0000000000000001/2"
+                "locations": ["of:0000000000000001/2"]
             }
         },
         "00:00:00:00:00:03/-1" : {
             "basic": {
                 "ips": ["10.0.2.1"],
-                "location": "of:0000000000000002/1"
+                "locations": ["of:0000000000000002/1"]
             }
         },
         "00:00:00:00:00:04/-1" : {
             "basic": {
                 "ips": ["10.0.2.2"],
-                "location": "of:0000000000000002/2"
+                "locations": ["of:0000000000000002/2"]
             }
         }
     },
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/json/4x4.json b/TestON/tests/USECASE/SegmentRouting/dependencies/json/4x4.json
index 8230261..42223b6 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/json/4x4.json
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/json/4x4.json
@@ -3,158 +3,168 @@
     "of:0000000000000001/1" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.1.254/24" ]
+            "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
         ]
     },
     "of:0000000000000001/2" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.1.254/24" ]
+            "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
         }
         ]
     },
     "of:0000000000000001/3" : {
         "interfaces" : [
             {
-                "ips" : [ "10.0.1.254/24" ]
+                "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
             }
         ]
     },
     "of:0000000000000001/4" : {
         "interfaces" : [
             {
-                "ips" : [ "10.0.1.254/24" ]
+                "ips" : [ "10.0.1.254/24" ],
+            "vlan-untagged" : 100
             }
         ]
     },
     "of:0000000000000002/1" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.2.254/24" ]
+            "ips" : [ "10.0.2.254/24" ],
+            "vlan-untagged" : 200
         }
         ]
     },
     "of:0000000000000002/2" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.2.254/24" ]
+            "ips" : [ "10.0.2.254/24" ],
+            "vlan-untagged" : 200
         }
         ]
     },
     "of:0000000000000003/1" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.3.254/24" ]
+            "ips" : [ "10.0.3.254/24" ],
+            "vlan-untagged" : 300
         }
         ]
     },
     "of:0000000000000003/2" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.3.254/24" ]
+            "ips" : [ "10.0.3.254/24" ],
+            "vlan-untagged" : 300
         }
         ]
     },
     "of:0000000000000004/1" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.4.254/24" ]
+            "ips" : [ "10.0.4.254/24" ],
+            "vlan-untagged" : 400
         }
         ]
     },
     "of:0000000000000004/2" : {
         "interfaces" : [
         {
-            "ips" : [ "10.0.4.254/24"]
+            "ips" : [ "10.0.4.254/24"],
+            "vlan-untagged" : 400
         }
         ]
     }
     },
     "devices" : {
         "of:0000000000000001" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Leaf-R1",
-                "nodeSid" : 1,
-                "routerIp" : "192.168.0.1",
+                "ipv4NodeSid" : 1,
+                "ipv4Loopback" : "192.168.0.1",
                 "routerMac" : "10:00:00:00:00:01",
                 "isEdgeRouter" : true,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000002" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Leaf-R2",
-                "nodeSid" : 2,
-                "routerIp" : "192.168.0.2",
+                "ipv4NodeSid" : 2,
+                "ipv4Loopback" : "192.168.0.2",
                 "routerMac" : "10:00:00:00:00:02",
                 "isEdgeRouter" : true,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000003" : {
-            "basic" :{ "driver" : "ofdpa-cpqd" },
+            "basic" :{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Leaf-R3",
-                "nodeSid" : 3,
-                "routerIp" : "192.168.0.3",
+                "ipv4NodeSid" : 3,
+                "ipv4Loopback" : "192.168.0.3",
                 "routerMac" : "10:00:00:00:00:03",
                 "isEdgeRouter" : true,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000004" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Leaf-R4",
-                "nodeSid" : 4,
-                "routerIp" : "192.168.0.4",
+                "ipv4NodeSid" : 4,
+                "ipv4Loopback" : "192.168.0.4",
                 "routerMac" : "10:00:00:00:00:04",
                 "isEdgeRouter" : true,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000101" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Spine-R1",
-                "nodeSid" : 101,
-                "routerIp" : "192.168.0.101",
+                "ipv4NodeSid" : 101,
+                "ipv4Loopback" : "192.168.0.101",
                 "routerMac" : "10:00:00:00:01:01",
                 "isEdgeRouter" : false,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000102" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Spine-R2",
-                "nodeSid" : 102,
-                "routerIp" : "192.168.0.102",
+                "ipv4NodeSid" : 102,
+                "ipv4Loopback" : "192.168.0.102",
                 "routerMac" : "10:00:00:00:01:02",
                 "isEdgeRouter" : false,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000103" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Spine-R3",
-                "nodeSid" : 103,
-                "routerIp" : "192.168.0.103",
+                "ipv4NodeSid" : 103,
+                "ipv4Loopback" : "192.168.0.103",
                 "routerMac" : "10:00:00:00:01:03",
                 "isEdgeRouter" : false,
                 "adjacencySids" : []
             }
         },
         "of:0000000000000104" : {
-            "basic":{ "driver" : "ofdpa-cpqd" },
+            "basic":{ "driver" : "ofdpa-ovs" },
             "segmentrouting" : {
                 "name" : "Spine-R4",
-                "nodeSid" : 104,
-                "routerIp" : "192.168.0.104",
+                "ipv4NodeSid" : 104,
+                "ipv4Loopback" : "192.168.0.104",
                 "routerMac" : "10:00:00:00:01:04",
                 "isEdgeRouter" : false,
                 "adjacencySids" : []
@@ -165,49 +175,49 @@
         "00:00:00:00:00:01/-1" : {
             "basic": {
                 "ips": ["10.0.1.1"],
-                "location": "of:0000000000000001/1"
+                "locations": ["of:0000000000000001/1"]
             }
         },
         "00:00:00:00:00:02/-1" : {
             "basic": {
                 "ips": ["10.0.1.2"],
-                "location": "of:0000000000000001/2"
+                "locations": ["of:0000000000000001/2"]
             }
         },
         "00:00:00:00:00:03/-1" : {
             "basic": {
                 "ips": ["10.0.2.1"],
-                "location": "of:0000000000000002/1"
+                "locations": ["of:0000000000000002/1"]
             }
         },
         "00:00:00:00:00:04/-1" : {
             "basic": {
                 "ips": ["10.0.2.2"],
-                "location": "of:0000000000000002/2"
+                "locations": ["of:0000000000000002/2"]
             }
         },
         "00:00:00:00:00:05/-1" : {
             "basic": {
                 "ips": ["10.0.3.1"],
-                "location": "of:0000000000000003/1"
+                "locations": ["of:0000000000000003/1"]
             }
         },
         "00:00:00:00:00:06/-1" : {
             "basic": {
                 "ips": ["10.0.3.2"],
-                "location": "of:0000000000000003/2"
+                "locations": ["of:0000000000000003/2"]
             }
         },
         "00:00:00:00:00:07/-1" : {
             "basic": {
                 "ips": ["10.0.4.1"],
-                "location": "of:0000000000000004/1"
+                "locations": ["of:0000000000000004/1"]
             }
         },
         "00:00:00:00:00:08/-1" : {
             "basic": {
                 "ips": ["10.0.4.2"],
-                "location": "of:0000000000000004/2"
+                "locations": ["of:0000000000000004/2"]
             }
         }
     },
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/json/extra.json b/TestON/tests/USECASE/SegmentRouting/dependencies/json/extra.json
index 992a04c..e3544bf 100755
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/json/extra.json
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/json/extra.json
@@ -3,13 +3,13 @@
         "00:00:00:00:00:09/-1" : {
             "basic": {
                 "ips": ["10.0.1.9"],
-                "location": "of:0000000000000001/3"
+                "locations": ["of:0000000000000001/3"]
             }
         },
         "00:00:00:00:09:01/-1" : {
             "basic": {
                 "ips": ["10.0.9.1"],
-                "location": "of:0000000000000001/4"
+                "locations": ["of:0000000000000001/4"]
             }
         }
     }