[ONOS-7524] Mininet based SRMulticast tests

Change-Id: I92f69417f10b24fad386fe348fa4ed148ad173e7
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/SRMulticastTest.py b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/SRMulticastTest.py
index e822c29..734dc52 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/SRMulticastTest.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/SRMulticastTest.py
@@ -19,19 +19,16 @@
     along with TestON.  If not, see <http://www.gnu.org/licenses/>.
 """
 
+import time
 from tests.USECASE.SegmentRouting.dependencies.Testcaselib import Testcaselib as run
 
 class SRMulticastTest ():
 
     def __init__( self ):
         self.default = ''
-        self.topo = dict()
-        # (number of spine switch, number of leaf switch, dual-homed, description, minFlowCount - leaf)
-        self.topo[ '2x2' ] = ( 2, 2, False, '2x2 leaf-spine topology', 1 )
-        self.switchNames = {}
-        self.switchNames[ '2x2' ] = [ "leaf205", "leaf206", "spine227", "spine228" ]
+        self.switchNames = [ "leaf205", "leaf206", "spine227", "spine228" ]
 
-    def runTest( self, main, test_idx, topology, onosNodes, description, vlan = [] ):
+    def runTest( self, main, test_idx, onosNodes, description, removeRoute=False, linkFailure=False, switchFailure=False ):
         skipPackage = False
         init = False
         if not hasattr( main, 'apps' ):
@@ -41,21 +38,76 @@
         if not init and onosNodes == main.Cluster.numCtrls:
             skipPackage = True
 
-        main.case( '%s, with %s and %d ONOS instance%s' %
-                   ( description, self.topo[ topology ][ 3 ], onosNodes, 's' if onosNodes > 1 else '' ) )
-
-        main.cfgName = 'CASE%01d%01d' % ( test_idx / 10, ( ( test_idx - 1 ) % 10 ) % 4 + 1 )
+        main.resultFileName = 'CASE%03d' % test_idx
         main.Cluster.setRunningNode( onosNodes )
         run.installOnos( main, skipPackage=skipPackage, cliSleep=5 )
+        # Load configuration files
+        main.step("Load configurations")
+        main.cfgName = 'TEST_CONFIG_ipv4=1_ipv6=1_dhcp=1_routers=1'
+        run.loadJson( main )
+        main.cfgName = 'CASE%03d' % test_idx
+        run.loadMulticastConfig( main )
+        if linkFailure:
+            run.loadLinkFailureChart( main )
+        if switchFailure:
+            run.loadSwitchFailureChart( main )
+        time.sleep( float( main.params[ 'timers' ][ 'loadNetcfgSleep' ] ) )
+
         if hasattr( main, 'Mininet1' ):
-            # TODO Mininet implementation
-            pass
+            # Run the test with Mininet
+            mininet_args = ' --dhcp=1 --routers=1 --ipv6=1 --ipv4=1'
+            run.startMininet( main, main.params['DEPENDENCY']['topology'], args=mininet_args )
+            time.sleep( float( main.params[ 'timers' ][ 'startMininetSleep' ] ) )
         else:
             # Run the test with physical devices
-            run.connectToPhysicalNetwork( main, self.switchNames[ topology ] )
-        # Check if the devices are up
-        run.checkDevices( main, switches=len(self.switchNames[ topology ]))
-        # Check the flows against the devices
-        run.checkFlows( main, minFlowCount=self.topo[ topology ][ 4 ] * self.topo[ topology ][ 1 ], sleep=5 )
+            run.connectToPhysicalNetwork( main, self.switchNames )
+            # Check if the devices are up
+            run.checkDevices( main, switches=len( self.switchNames ) )
+
+        # Create scapy components
+        run.startScapyHosts( main )
+
+        for entry in main.multicastConfig:
+            main.step("Verify adding multicast route with group IP {}".format(entry["group"]))
+            # Create a multicast route
+            main.Cluster.active( 0 ).CLI.mcastHostJoin( entry["sIP"], entry["group"], entry["sPorts"], entry["dHosts"] )
+            time.sleep( float( main.params[ 'timers' ][ 'mcastSleep' ] ) )
+            # Check the flows against the devices
+            # run.checkFlows( main, minFlowCount=2, sleep=5 )
+            # Verify multicast traffic
+            run.verifyMulticastTraffic( main, entry, True, skipOnFail=True )
+
+            # Test switch failures
+            if switchFailure:
+                for switch, expected in main.switchFailureChart.items():
+                    run.killSwitch( main, switch, expected['switches_after_failure'], expected['links_after_failure'] )
+                    run.verifyMulticastTraffic( main, entry, True, skipOnFail=True )
+
+                    run.recoverSwitch( main, switch, expected['switches_before_failure'], expected['links_before_failure'] )
+                    run.verifyMulticastTraffic( main, entry, True, skipOnFail=True )
+
+            # Test link failures
+            if linkFailure:
+                for link_batch_name, info in main.linkFailureChart.items():
+                    linksToRemove = info['links'].values()
+                    linksBefore = info['links_before']
+                    linksAfter = info['links_after']
+
+                    run.killLinkBatch( main, linksToRemove, linksAfter, switches=10 )
+                    run.verifyMulticastTraffic( main, entry, True, skipOnFail=True )
+
+                    run.restoreLinkBatch( main, linksToRemove, linksBefore, switches=10 )
+                    run.verifyMulticastTraffic( main, entry, True, skipOnFail=True )
+
+            if removeRoute:
+                main.step("Verify deleting multicast route with group IP {}".format(entry["group"]))
+                # delete a multicast route
+                main.Cluster.active( 0 ).CLI.mcastHostDelete( entry["sIP"], entry["group"] )
+                time.sleep( float( main.params[ 'timers' ][ 'mcastSleep' ] ) )
+                # Check the flows against the devices
+                # run.checkFlows( main, minFlowCount=2, sleep=5 )
+                # Verify multicast traffic (traffic check is expected to fail)
+                run.verifyMulticastTraffic( main, entry, False, skipOnFail=True )
+
         # Clean up the environment
-        run.cleanup( main, physical=(not hasattr( main, 'Mininet1' )))
+        run.cleanup( main, copyKarafLog=False )
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/bgpdbgp1.conf b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/bgpdbgp1.conf
index 8870fb4..474bf02 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/bgpdbgp1.conf
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/bgpdbgp1.conf
@@ -8,6 +8,21 @@
 ip prefix-list 1 seq 20 permit 10.1.2.0/24
 ip prefix-list 1 seq 30 permit 10.0.3.0/24
 ip prefix-list 1 seq 40 permit 10.0.4.0/24
+
+ip prefix-list 1 seq 50 permit 10.1.0.0/24
+ip prefix-list 1 seq 70 permit 10.1.10.0/24
+ip prefix-list 1 seq 80 permit 10.2.0.0/24
+ip prefix-list 1 seq 90 permit 10.2.30.0/24
+ip prefix-list 1 seq 100 permit 10.2.20.0/24
+ip prefix-list 1 seq 110 permit 10.2.10.0/24
+ip prefix-list 1 seq 120 permit 10.2.40.0/24
+ip prefix-list 1 seq 130 permit 10.3.0.0/24
+ip prefix-list 1 seq 140 permit 10.3.30.0/24
+ip prefix-list 1 seq 150 permit 10.3.10.0/24
+ip prefix-list 1 seq 160 permit 10.3.20.0/24
+ip prefix-list 1 seq 170 permit 10.5.10.0/24
+ip prefix-list 1 seq 180 permit 10.5.20.0/24
+
 !
 route-map NEXTHOP41 permit 10
 match ip address prefix-list 1
@@ -22,6 +37,20 @@
 !
 ipv6 prefix-list 2 seq 10 permit 2000::200/120
 ipv6 prefix-list 2 seq 20 permit 2000::300/120
+
+ipv6 prefix-list 2 seq 30 permit 1000::300/120
+ipv6 prefix-list 2 seq 40 permit 1001::300/120
+ipv6 prefix-list 2 seq 50 permit 1002::300/120
+ipv6 prefix-list 2 seq 60 permit 1003::300/120
+ipv6 prefix-list 2 seq 70 permit 1004::300/120
+ipv6 prefix-list 2 seq 80 permit 1005::300/120
+ipv6 prefix-list 2 seq 90 permit 1006::300/120
+ipv6 prefix-list 2 seq 100 permit 1007::300/120
+ipv6 prefix-list 2 seq 110 permit 1008::300/120
+ipv6 prefix-list 2 seq 120 permit 1009::300/120
+ipv6 prefix-list 2 seq 130 permit 1010::300/120
+ipv6 prefix-list 2 seq 140 permit 1011::300/120
+ipv6 prefix-list 2 seq 150 permit 1012::300/120
 !
 route-map NEXTHOP61 permit 10
 match ipv6 address prefix-list 2
@@ -64,6 +93,21 @@
 neighbor 2000::701 advertisement-interval 1
 no neighbor 2000::701 activate
 !
+
+network 10.1.0.0/24
+network 10.1.10.0/24
+network 10.2.0.0/24
+network 10.2.30.0/24
+network 10.2.20.0/24
+network 10.2.10.0/24
+network 10.2.40.0/24
+network 10.3.0.0/24
+network 10.3.30.0/24
+network 10.3.10.0/24
+network 10.3.20.0/24
+network 10.5.10.0/24
+network 10.5.20.0/24
+
 network 10.0.2.0/24
 network 10.1.2.0/24
 network 10.0.3.0/24
@@ -72,8 +116,24 @@
 ! IPv6
 !
 address-family ipv6
+
+network 1000::300/120
+network 1001::300/120
+network 1002::300/120
+network 1003::300/120
+network 1004::300/120
+network 1005::300/120
+network 1006::300/120
+network 1007::300/120
+network 1008::300/120
+network 1009::300/120
+network 1010::300/120
+network 1011::300/120
+network 1012::300/120
+
 network 2000::200/120
 network 2000::300/120
+
 neighbor 2000::101 activate
 neighbor 2000::101 route-map NEXTHOP61 out
 neighbor 2000::701 activate
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/bgpdbgp2.conf b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/bgpdbgp2.conf
index e554de4..421d5c2 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/bgpdbgp2.conf
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/bgpdbgp2.conf
@@ -8,6 +8,21 @@
 ip prefix-list 1 seq 20 permit 10.1.2.0/24
 ip prefix-list 1 seq 30 permit 10.0.3.0/24
 ip prefix-list 1 seq 40 permit 10.0.4.0/24
+
+ip prefix-list 1 seq 50 permit 10.1.0.0/24
+ip prefix-list 1 seq 60 permit 10.1.10.0/24
+ip prefix-list 1 seq 70 permit 10.2.0.0/24
+ip prefix-list 1 seq 80 permit 10.2.30.0/24
+ip prefix-list 1 seq 90 permit 10.2.20.0/24
+ip prefix-list 1 seq 100 permit 10.2.10.0/24
+ip prefix-list 1 seq 110 permit 10.2.40.0/24
+ip prefix-list 1 seq 120 permit 10.3.0.0/24
+ip prefix-list 1 seq 130 permit 10.3.30.0/24
+ip prefix-list 1 seq 140 permit 10.3.10.0/24
+ip prefix-list 1 seq 150 permit 10.3.20.0/24
+ip prefix-list 1 seq 160 permit 10.5.10.0/24
+ip prefix-list 1 seq 170 permit 10.5.20.0/24
+
 !
 route-map NEXTHOP45 permit 10
 match ip address prefix-list 1
@@ -22,6 +37,22 @@
 !
 ipv6 prefix-list 2 seq 10 permit 2000::200/120
 ipv6 prefix-list 2 seq 20 permit 2000::300/120
+
+ipv6 prefix-list 2 seq 30 permit 1000::300/120
+ipv6 prefix-list 2 seq 40 permit 1001::300/120
+ipv6 prefix-list 2 seq 50 permit 1002::300/120
+ipv6 prefix-list 2 seq 60 permit 1003::300/120
+ipv6 prefix-list 2 seq 70 permit 1004::300/120
+ipv6 prefix-list 2 seq 80 permit 1005::300/120
+ipv6 prefix-list 2 seq 90 permit 1006::300/120
+ipv6 prefix-list 2 seq 100 permit 1007::300/120
+ipv6 prefix-list 2 seq 110 permit 1008::300/120
+ipv6 prefix-list 2 seq 120 permit 1009::300/120
+ipv6 prefix-list 2 seq 130 permit 1010::300/120
+ipv6 prefix-list 2 seq 140 permit 1011::300/120
+ipv6 prefix-list 2 seq 150 permit 1012::300/120
+!
+
 !
 route-map NEXTHOP65 permit 10
 match ipv6 address prefix-list 2
@@ -64,6 +95,22 @@
 neighbor 2000::601 advertisement-interval 1
 no neighbor 2000::601 activate
 !
+
+network 10.1.0.0/24
+network 10.1.10.0/24
+network 10.2.0.0/24
+network 10.2.30.0/24
+network 10.2.20.0/24
+network 10.2.10.0/24
+network 10.2.40.0/24
+network 10.3.0.0/24
+network 10.3.30.0/24
+network 10.3.10.0/24
+network 10.3.20.0/24
+network 10.5.10.0/24
+network 10.5.20.0/24
+
+network 10.1.0.0/24
 network 10.0.2.0/24
 network 10.1.2.0/24
 network 10.0.3.0/24
@@ -72,6 +119,21 @@
 ! IPv6
 !
 address-family ipv6
+
+network 1000::300/120
+network 1001::300/120
+network 1002::300/120
+network 1003::300/120
+network 1004::300/120
+network 1005::300/120
+network 1006::300/120
+network 1007::300/120
+network 1008::300/120
+network 1009::300/120
+network 1010::300/120
+network 1011::300/120
+network 1012::300/120
+
 network 2000::200/120
 network 2000::300/120
 neighbor 2000::501 activate
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/dhcpd.conf b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/dhcpd.conf
index aa559d2..2676b07 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/dhcpd.conf
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/dhcpd.conf
@@ -6,50 +6,138 @@
 option domain-name-servers 8.8.8.8, 8.8.4.4;
 option domain-name "trellis.local";
 
-subnet 10.0.2.0 netmask 255.255.255.0 {
-  range 10.0.2.100 10.0.2.240;
-  option routers 10.0.2.254;
-}
-
-subnet 10.1.2.0 netmask 255.255.255.0 {
-  range 10.1.2.100 10.1.2.240;
-  option routers 10.1.2.254;
-}
-
 subnet 10.0.3.0 netmask 255.255.255.0 {
   range 10.0.3.100 10.0.3.240;
   option routers 10.0.3.254;
 }
 
-subnet 10.0.4.0 netmask 255.255.255.0 {
-  range 10.0.4.100 10.0.4.240;
-  option routers 10.0.4.254;
+subnet 10.1.0.0 netmask 255.255.255.0 {
+  range 10.1.0.1 10.1.0.100;
+  option routers 10.1.0.254;
 }
 
-subnet 10.0.99.3 netmask 255.255.255.255 {
+subnet 10.1.10.0 netmask 255.255.255.0 {
+  range 10.1.10.1 10.1.10.100;
+  option routers 10.1.10.254;
 }
 
-host h1 {
+subnet 10.2.0.0 netmask 255.255.255.0 {
+  range 10.2.0.1 10.2.0.100;
+  option routers 10.2.0.254;
+}
+
+subnet 10.2.30.0 netmask 255.255.255.0 {
+  range 10.2.30.1 10.2.30.100;
+  option routers 10.2.30.254;
+}
+
+subnet 10.2.20.0 netmask 255.255.255.0 {
+  range 10.2.20.1 10.2.20.100;
+  option routers 10.2.20.254;
+}
+
+subnet 10.2.10.0 netmask 255.255.255.0 {
+  range 10.2.10.1 10.2.10.100;
+  option routers 10.2.10.254;
+}
+
+subnet 10.2.40.0 netmask 255.255.255.0 {
+  range 10.2.40.1 10.2.40.100;
+  option routers 10.2.40.254;
+}
+
+subnet 10.3.0.0 netmask 255.255.255.0 {
+  range 10.3.0.1 10.3.0.100;
+  option routers 10.3.0.254;
+}
+
+subnet 10.3.10.0 netmask 255.255.255.0 {
+  range 10.3.10.1 10.3.10.100;
+  option routers 10.3.10.254;
+}
+
+subnet 10.3.30.0 netmask 255.255.255.0 {
+  range 10.3.30.1 10.3.30.100;
+  option routers 10.3.30.254;
+}
+
+subnet 10.3.20.0 netmask 255.255.255.0 {
+  range 10.3.20.1 10.3.20.100;
+  option routers 10.3.20.254;
+}
+
+subnet 10.5.10.0 netmask 255.255.255.0 {
+  range 10.5.10.1 10.5.10.100;
+  option routers 10.5.10.254;
+}
+
+subnet 10.5.20.0 netmask 255.255.255.0 {
+  range 10.5.20.1 10.5.20.100;
+  option routers 10.5.20.254;
+}
+
+host h1v4 {
   hardware ethernet 00:aa:00:00:00:01;
-  fixed-address 10.0.2.1;
+  fixed-address 10.1.0.1;
 }
 
-host h2 {
+host h2v4 {
+  hardware ethernet 00:aa:00:00:01:01;
+  fixed-address 10.1.10.1;
+}
+
+host h3v4 {
   hardware ethernet 00:aa:00:00:00:02;
-  fixed-address 10.0.2.2;
+  fixed-address 10.2.0.1;
 }
 
-host h3 {
+host h4v4 {
   hardware ethernet 00:aa:00:00:00:03;
-  fixed-address 10.0.3.1;
+  fixed-address 10.2.30.1;
 }
 
-host h4 {
+host h5v4 {
   hardware ethernet 00:aa:00:00:00:04;
-  fixed-address 10.0.3.2;
+  fixed-address 10.2.20.1;
 }
 
-host dh1 {
-  hardware ethernet 00:cc:00:00:00:01;
-  fixed-address 10.1.2.1;
+host h6v4 {
+  hardware ethernet 00:aa:00:00:00:05;
+  fixed-address 10.2.10.1;
 }
+
+host h7v4 {
+  hardware ethernet 00:aa:00:00:01:05;
+  fixed-address 10.2.40.1;
+}
+
+host h8v4 {
+  hardware ethernet 00:aa:00:00:00:06;
+  fixed-address 10.3.0.1;
+}
+
+host h9v4 {
+  hardware ethernet 00:aa:00:00:00:07;
+  fixed-address 10.3.10.1;
+}
+
+host h10v4 {
+  hardware ethernet 00:aa:00:00:00:08;
+  fixed-address 10.3.30.1;
+}
+
+host h11v4 {
+  hardware ethernet 00:aa:00:00:00:0a;
+  fixed-address 10.3.20.1;
+}
+
+host h12v4 {
+  hardware ethernet 00:aa:00:00:02:01;
+  fixed-address 10.5.10.1;
+}
+
+host h13v4 {
+  hardware ethernet 00:aa:00:00:02:02;
+  fixed-address 10.5.20.1;
+}
+
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/dhcpd6.conf b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/dhcpd6.conf
index 526de85..3afa617 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/dhcpd6.conf
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/dhcpd6.conf
@@ -3,35 +3,143 @@
 
 option dhcp6.next-hop code 242 = ip6-address;
 
-subnet6 2000::200/120 {
-  range6 2000::260 2000::2fe;
-  option dhcp6.next-hop 2000::02ff;
-}
-
 subnet6 2000::300/120 {
   range6 2000::360 2000::3fe;
   option dhcp6.next-hop 2000::03ff;
 }
 
-subnet6 2000::9903/128 {
+subnet6 1000::300/120 {
+  range6 1000::360 1000::3fe;
+  option dhcp6.next-hop 1000::03ff;
+}
+
+subnet6 1001::300/120 {
+  range6 1001::360 1001::3fe;
+  option dhcp6.next-hop 1001::03ff;
+}
+
+subnet6 1002::300/120 {
+  range6 1002::360 1002::3fe;
+  option dhcp6.next-hop 1002::03ff;
+}
+
+subnet6 1003::300/120 {
+  range6 1003::360 1003::3fe;
+  option dhcp6.next-hop 1003::03ff;
+}
+
+subnet6 1004::300/120 {
+  range6 1004::360 1004::3fe;
+  option dhcp6.next-hop 1004::03ff;
+}
+
+subnet6 1005::300/120 {
+  range6 1005::360 1005::3fe;
+  option dhcp6.next-hop 1005::03ff;
+}
+
+subnet6 1006::300/120 {
+  range6 1006::360 1006::3fe;
+  option dhcp6.next-hop 1006::03ff;
+}
+
+subnet6 1007::300/120 {
+  range6 1007::360 1007::3fe;
+  option dhcp6.next-hop 1007::03ff;
+}
+
+subnet6 1008::300/120 {
+  range6 1008::360 1008::3fe;
+  option dhcp6.next-hop 1008::03ff;
+}
+
+subnet6 1009::300/120 {
+  range6 1009::360 1009::3fe;
+  option dhcp6.next-hop 1009::03ff;
+}
+
+subnet6 1010::300/120 {
+  range6 1010::360 1010::3fe;
+  option dhcp6.next-hop 1010::03ff;
+}
+
+subnet6 1011::300/120 {
+  range6 1011::360 1011::3fe;
+  option dhcp6.next-hop 1011::03ff;
+}
+
+subnet6 1012::300/120 {
+  range6 1012::360 1012::3fe;
+  option dhcp6.next-hop 1012::03ff;
 }
 
 host h1v6 {
   hardware ethernet 00:bb:00:00:00:01;
-  fixed-address6 2000::201;
+  fixed-address6 1000::3fe;
 }
 
 host h2v6 {
-  hardware ethernet 00:bb:00:00:00:02;
-  fixed-address6 2000::202;
+  hardware ethernet 00:bb:00:00:01:01;
+  fixed-address6 1001::3fe;
 }
 
 host h3v6 {
-  hardware ethernet 00:bb:00:00:00:03;
-  fixed-address6 2000::301;
+  hardware ethernet 00:bb:00:00:00:02;
+  fixed-address6 1002::3fe;
 }
 
 host h4v6 {
-  hardware ethernet 00:bb:00:00:00:04;
-  fixed-address6 2000::302;
+  hardware ethernet 00:bb:00:00:00:03;
+  fixed-address6 1003::3fe;
 }
+
+host h5v6 {
+  hardware ethernet 00:bb:00:00:00:04;
+  fixed-address6 1004::3fe;
+}
+
+host h6v6 {
+  hardware ethernet 00:bb:00:00:00:05;
+  fixed-address6 1005::3fe;
+}
+
+host h7v6 {
+  hardware ethernet 00:bb:00:00:01:05;
+  fixed-address6 1006::3fe;
+}
+
+host h8v6 {
+  hardware ethernet 00:bb:00:00:00:06;
+  fixed-address6 1007::3fe;
+}
+
+host h9v6 {
+  hardware ethernet 00:bb:00:00:00:07;
+  fixed-address6 1008::3fe;
+}
+
+host h10v6 {
+  hardware ethernet 00:bb:00:00:00:08;
+  fixed-address6 1009::3fe;
+}
+
+host h11v6 {
+  hardware ethernet 00:bb:00:00:00:0a;
+  fixed-address6 1010::3fe;
+}
+
+host h12v6 {
+  hardware ethernet 00:bb:00:00:01:0a;
+  fixed-address6 1011::3fe;
+}
+
+host h13v6 {
+  hardware ethernet 00:bb:00:00:02:0a;
+  fixed-address6 1012::3fe;
+}
+
+
+
+
+
+
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/zebradbgp1.conf b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/zebradbgp1.conf
index 51991a4..34472bb 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/zebradbgp1.conf
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/zebradbgp1.conf
@@ -6,4 +6,4 @@
 !
 ip route 0.0.0.0/0 172.16.0.1
 !
-fpm connection ip 192.168.56.11 port 2620
+fpm connection ip 10.192.19.121 port 2620
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/zebradbgp2.conf b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/zebradbgp2.conf
index dce218d..9c6e3f4 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/zebradbgp2.conf
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/conf/zebradbgp2.conf
@@ -6,4 +6,4 @@
 !
 ip route 0.0.0.0/0 172.16.0.1
 !
-fpm connection ip 192.168.56.11 port 2620
+fpm connection ip 10.192.19.122 port 2620
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/json/TEST_CONFIG_ipv4=1_ipv6=1_dhcp=1_routers=1.json b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/json/TEST_CONFIG_ipv4=1_ipv6=1_dhcp=1_routers=1.json
new file mode 100644
index 0000000..7c6b51e
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/json/TEST_CONFIG_ipv4=1_ipv6=1_dhcp=1_routers=1.json
@@ -0,0 +1,580 @@
+{
+    "ports" : {
+         "of:0000000000000006/3" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1011::3ff/120" ],
+                    "vlan-tagged": [10]
+                }
+            ]
+        },
+        "of:0000000000000006/4" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1012::3ff/120" ],
+                    "vlan-untagged": 20
+                }
+            ]
+        },
+	"of:0000000000000006/5" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.5.10.254/24" ],
+                    "vlan-tagged": [10]
+                }
+            ]
+        },
+        "of:0000000000000006/6" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.5.20.254/24" ],
+                    "vlan-untagged": 20
+                }
+            ]
+        },
+
+        "of:0000000000000001/3" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1000::3ff/120" ],
+                    "vlan-untagged": 10
+                }
+            ]
+        },
+        "of:0000000000000001/4" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1001::3ff/120" ],
+                    "vlan-untagged": 10
+                }
+            ]
+        },
+        "of:0000000000000001/5" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.1.0.254/24" ],
+                    "vlan-untagged": 10
+                }
+            ]
+        },
+        "of:0000000000000001/6" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.1.10.254/24" ],
+                    "vlan-untagged": 10
+                }
+            ]
+        },
+        "of:0000000000000002/6" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1002::3ff/120" ],
+                    "vlan-untagged": 10
+                }
+            ]
+        },
+        "of:0000000000000002/7" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1003::3ff/120" ],
+                    "vlan-untagged": 15
+                }
+            ]
+        },
+        "of:0000000000000002/8" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1004::3ff/120" ],
+                    "vlan-tagged": [30]
+                }
+            ]
+        },
+        "of:0000000000000002/9" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.2.0.254/24" ],
+                    "vlan-untagged": 10
+                }
+            ]
+        },
+        "of:0000000000000002/10" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.2.30.254/24" ],
+                    "vlan-untagged": 16
+                }
+            ]
+        },
+        "of:0000000000000002/11" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.2.20.254/24" ],
+                    "vlan-tagged": [30]
+                }
+            ]
+        },
+        "of:0000000000000003/6" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1003::3ff/120" ],
+                    "vlan-untagged": 15
+                }
+            ]
+        },
+        "of:0000000000000003/7" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1004::3ff/120" ],
+                    "vlan-tagged": [30]
+                }
+            ]
+        },
+        "of:0000000000000003/8" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1005::3ff/120" ],
+                    "vlan-tagged": [20]
+                }
+            ]
+        },
+	"of:0000000000000003/9" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1006::3ff/120" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000003/10" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.2.30.254/24" ],
+                    "vlan-untagged": 15
+                }
+            ]
+        },
+        "of:0000000000000003/11" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.2.20.254/24" ],
+                    "vlan-tagged": [30]
+                }
+            ]
+        },
+        "of:0000000000000003/12" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.2.10.254/24" ],
+                    "vlan-tagged": [20]
+                }
+            ]
+        },
+	"of:0000000000000003/13" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.2.40.254/24" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000004/6" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1007::3ff/120" ],
+                    "vlan-untagged": 30
+                }
+            ]
+        },
+        "of:0000000000000004/7" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1008::3ff/120" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000004/8" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1009::3ff/120" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000004/9" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.3.0.254/24" ],
+                    "vlan-untagged": 30
+                }
+            ]
+        },
+        "of:0000000000000004/10" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.3.10.254/24" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000004/11" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.3.30.254/24" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000004/12" : {
+            "interfaces" : [
+                {
+			"ips" : [ "10.0.1.254/24", "10.0.7.254/24", "2000::1ff/120", "2000::7ff/120" ],
+			"vlan-tagged": [110, 170]
+
+                }
+            ]
+        },
+        "of:0000000000000004/13" : {
+            "interfaces" : [
+                {
+			"ips" : [ "10.0.1.254/24", "2000::1ff/120"],
+			"vlan-untagged": 110
+
+                }
+            ]
+        },
+        "of:0000000000000004/14" : {
+            "interfaces" : [
+                {
+			"ips" : [ "10.0.7.254/24", "2000::7ff/120" ],
+			"vlan-untagged": 170
+
+                }
+            ]
+        },
+        "of:0000000000000005/6" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1008::3ff/120" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000005/7" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1009::3ff/120" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000005/8" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "1010::3ff/120" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000005/9" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.3.10.254/24" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000005/10" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.3.30.254/24" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000005/11" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.3.20.254/24" ],
+                    "vlan-tagged": [40]
+                }
+            ]
+        },
+        "of:0000000000000005/12" : {
+            "interfaces" : [
+                {
+                       "ips" : [ "10.0.5.254/24", "10.0.6.254/24", "2000::5ff/120", "2000::6ff/120" ],
+	               "vlan-tagged": [150, 160]
+                }
+            ]
+        },
+        "of:0000000000000005/13" : {
+            "interfaces" : [
+                {
+                       "ips" : [ "10.0.5.254/24", "2000::5ff/120"],
+	               "vlan-untagged": 150
+                }
+            ]
+        },
+        "of:0000000000000005/14" : {
+            "interfaces" : [
+                {
+                       "ips" : [ "10.0.6.254/24", "2000::6ff/120" ],
+	               "vlan-untagged": 160
+                }
+            ]
+        },
+        "of:0000000000000005/15" : {
+            "interfaces" : [
+                {
+                    "ips" : [ "10.0.3.254/24", "2000::3ff/120" ],
+                    "vlan-untagged": 15
+                }
+            ]
+        }
+    },
+    "hosts" : {
+	"00:BB:00:00:01:0A/10" : {
+		"basic": {
+			"locations": ["of:0000000000000006/3"],
+			"ips": ["1011::3fe"]
+		     }
+	    },
+	"00:bb:00:00:00:04/30" : {
+		"basic": {
+			"locations": ["of:0000000000000003/7","of:0000000000000002/8"],
+			"ips": ["1004::3fe"]
+		     }
+	    },
+	"00:bb:00:00:00:05/20" : {
+		"basic": {
+			"locations": ["of:0000000000000003/8"],
+			"ips": ["1005::3fe"]
+		     }
+	    },
+	"00:bb:00:00:01:05/40" : {
+		"basic": {
+			"locations": ["of:0000000000000003/9"],
+			"ips": ["1006::3fe"]
+		     }
+	    },
+	"00:bb:00:00:00:07/40" : {
+		"basic": {
+			"locations": ["of:0000000000000005/6", "of:0000000000000004/7"],
+			"ips": ["1008::3fe"]
+		     }
+	    },
+	"00:bb:00:00:00:08/40" : {
+		"basic": {
+			"locations": ["of:0000000000000004/8","of:0000000000000005/7"],
+			"ips": ["1009::3fe"]
+		     }
+	    },
+	"00:bb:00:00:00:0A/40" : {
+		"basic": {
+			"locations": ["of:0000000000000005/8"],
+			"ips": ["1010::3fe"]
+		     }
+	    }
+    },
+    "devices" : {
+	"of:0000000000000006" : {
+            "segmentrouting" : {
+                "name" : "s006",
+                "ipv4NodeSid" : 1006,
+		"ipv6NodeSid" : 2006,
+		"ipv6Loopback" : "2000::c0a8:0006",
+                "ipv4Loopback" : "192.168.0.6",
+                "routerMac" : "00:00:00:00:00:06",
+                "isEdgeRouter" : true,
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s006",
+                "driver" : "ofdpa-ovs",
+		"latitude":30,
+		"longitude":-110
+            }
+        },
+        "of:0000000000000103" : {
+            "segmentrouting" : {
+                "name" : "s103",
+                "ipv4NodeSid" : 1103,
+                "ipv4Loopback" : "192.168.0.103",
+		"ipv6NodeSid" : 2103,
+		"ipv6Loopback" : "2000::c0a8:0203",
+                "routerMac" : "00:00:00:00:01:03",
+                "isEdgeRouter" : false,
+                "adjacencySids" : []
+            },
+            "basic" : {
+                 "name" : "s103",
+                 "driver" : "ofdpa-ovs",
+		 "latitude":35,
+		 "longitude":-115
+            }
+        },
+        "of:0000000000000104" : {
+            "segmentrouting" : {
+                "name" : "s104",
+                "ipv4NodeSid" : 1104,
+                "ipv4Loopback" : "192.168.0.104",
+		"ipv6NodeSid" : 2104,
+		"ipv6Loopback" : "2000::c0a8:0204",
+                "routerMac" : "00:00:00:00:01:04",
+                "isEdgeRouter" : false,
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s104",
+                 "driver" : "ofdpa-ovs",
+		 "latitude":35,
+		 "longitude":-110
+            }
+    	},
+        "of:0000000000000001" : {
+            "segmentrouting" : {
+                "name" : "s001",
+                "ipv4NodeSid" : 1001,
+		"ipv6NodeSid" : 2001,
+		"ipv6Loopback" : "2000::c0a8:0001",
+                "ipv4Loopback" : "192.168.0.1",
+                "routerMac" : "00:00:00:00:00:01",
+                "isEdgeRouter" : true,
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s001",
+                "driver" : "ofdpa-ovs",
+		"latitude":30,
+		"longitude":-105
+            }
+        },
+        "of:0000000000000002" : {
+            "segmentrouting" : {
+                "name" : "s002",
+                "ipv4NodeSid" : 1002,
+                "ipv4Loopback" : "192.168.0.2",
+		"ipv6NodeSid" : 2002,
+		"ipv6Loopback" : "2000::c0a8:0002",
+                "routerMac" : "00:00:00:00:00:02",
+                "isEdgeRouter" : true,
+                "pairLocalPort" : 5,
+                "pairDeviceId": "of:0000000000000003",
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s002",
+                "driver" : "ofdpa-ovs",
+		"latitude":34,
+		"longitude":-95
+            }
+        },
+        "of:0000000000000003" : {
+            "segmentrouting" : {
+                "name" : "s003",
+                "ipv4NodeSid" : 1003,
+                "ipv4Loopback" : "192.168.0.3",
+        	"ipv6NodeSid" : 2003,
+		"ipv6Loopback" : "2000::c0a8:0003",
+                "routerMac" : "00:00:00:00:00:02",
+                "isEdgeRouter" : true,
+                "pairLocalPort" : 5,
+                "pairDeviceId": "of:0000000000000002",
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s003",
+                "driver" : "ofdpa-ovs",
+		"latitude":34,
+		"longitude":-90
+            }
+        },
+        "of:0000000000000004" : {
+            "segmentrouting" : {
+                "name" : "s004",
+                "ipv4NodeSid" : 1004,
+                "ipv4Loopback" : "192.168.0.4",
+		"ipv6NodeSid" : 2004,
+		"ipv6Loopback" : "2000::c0a8:0004",
+                "routerMac" : "00:00:00:00:00:04",
+                "isEdgeRouter" : true,
+                "pairLocalPort" : 5,
+                "pairDeviceId": "of:0000000000000005",
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s004",
+                "driver" : "ofdpa-ovs",
+		"latitude":34,
+		"longitude":-85
+            }
+        },
+        "of:0000000000000005" : {
+            "segmentrouting" : {
+                "name" : "s005",
+                "ipv4NodeSid" : 1005,
+                "ipv4Loopback" : "192.168.0.5",
+		"ipv6NodeSid" : 2005,
+		"ipv6Loopback" : "2000::c0a8:0005",
+                "routerMac" : "00:00:00:00:00:04",
+                "isEdgeRouter" : true,
+                "pairLocalPort" : 5,
+                "pairDeviceId": "of:0000000000000004",
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s005",
+                "driver" : "ofdpa-ovs",
+		"latitude":34,
+		"longitude":-80
+            }
+        },
+        "of:0000000000000101" : {
+            "segmentrouting" : {
+                "name" : "s101",
+                "ipv4NodeSid" : 1101,
+                "ipv4Loopback" : "192.168.0.101",
+		"ipv6NodeSid" : 2101,
+		"ipv6Loopback" : "2000::c0a8:0101",
+                "routerMac" : "00:00:00:00:01:01",
+                "isEdgeRouter" : false,
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s101",
+                "driver" : "ofdpa-ovs",
+		"latitude":42,
+                "longitude":-100
+            }
+        },
+        "of:0000000000000102" : {
+            "segmentrouting" : {
+                "name" : "s102",
+                "ipv4NodeSid" : 1102,
+                "ipv4Loopback" : "192.168.0.102",
+		"ipv6NodeSid" : 2102,
+		"ipv6Loopback" : "2000::c0a8:0202",
+                "routerMac" : "00:00:00:00:01:02",
+                "isEdgeRouter" : false,
+                "adjacencySids" : []
+            },
+            "basic" : {
+                "name" : "s102",
+                 "driver" : "ofdpa-ovs",
+		 "latitude":42,
+		 "longitude":-95
+            }
+        }
+    },
+    "apps" : {
+        "org.onosproject.dhcprelay" : {
+            "default": [
+                {
+                    "dhcpServerConnectPoint": "of:0000000000000005/15",
+                    "serverIps": ["10.0.3.253", "2000::3fd"]
+                }
+            ]
+        }
+    }
+}
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE101.linkFailureChart b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE101.linkFailureChart
new file mode 100644
index 0000000..8a9e052
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE101.linkFailureChart
@@ -0,0 +1,8 @@
+{
+    "link_batch_1" : { "links" : { "link1" : ["leaf2", "spine101"] },
+                       "links_before" : 48,
+                       "links_after" : 44 },
+    "link_batch_2" : { "links" : { "link1" : ["leaf2", "spine102"] },
+                       "links_before" : 48,
+                       "links_after" : 44 }
+}
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE102.linkFailureChart b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE102.linkFailureChart
new file mode 100644
index 0000000..f102be4
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE102.linkFailureChart
@@ -0,0 +1,9 @@
+{
+    "link_batch_1" : { "links" : { "link1" : ["leaf4", "spine101"] },
+                       "links_before" : 48,
+                       "links_after" : 44 },
+    "link_batch_2" : { "links" : { "link1" : ["leaf4", "spine102"] },
+                       "links_before" : 48,
+                       "links_after" : 44 }
+}
+
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE103.linkFailureChart b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE103.linkFailureChart
new file mode 100644
index 0000000..8041a05
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/linkFailure/CASE103.linkFailureChart
@@ -0,0 +1,9 @@
+{
+    "link_batch_1" : { "links" : { "link1" : ["spine103", "spine101"] },
+                       "links_before" : 48,
+                       "links_after" : 46 },
+    "link_batch_2" : { "links" : { "link1" : ["spine104", "spine102"] },
+                       "links_before" : 48,
+                       "links_after" : 46 }
+}
+
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE001.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE001.multicastConfig
new file mode 100644
index 0000000..0068a5f
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE001.multicastConfig
@@ -0,0 +1,48 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10"],
+        "dHosts": ["00:AA:00:00:00:03/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7"],
+        "dHosts": ["00:BB:00:00:00:03/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE002.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE002.multicastConfig
new file mode 100644
index 0000000..b6c77bf
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE002.multicastConfig
@@ -0,0 +1,48 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000004/9"],
+        "dHosts": ["00:AA:00:00:00:06/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h8v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000004/6"],
+        "dHosts": ["00:BB:00:00:00:06/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h8v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE003.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE003.multicastConfig
new file mode 100644
index 0000000..6c25ca0
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE003.multicastConfig
@@ -0,0 +1,48 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE004.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE004.multicastConfig
new file mode 100644
index 0000000..9a138d7
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE004.multicastConfig
@@ -0,0 +1,54 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10", "of:0000000000000004/9"],
+        "dHosts": ["00:AA:00:00:00:03/None", "00:AA:00:00:00:06/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                },
+                {
+                    "host": "h8v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7", "of:0000000000000004/6"],
+        "dHosts": ["00:BB:00:00:00:03/None", "00:BB:00:00:00:06/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                },
+                {
+                    "host": "h8v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE005.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE005.multicastConfig
new file mode 100644
index 0000000..d2e2fdf
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE005.multicastConfig
@@ -0,0 +1,54 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000004/9", "of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:06/None", "00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h8v4"
+                },
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000004/6", "of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:06/None", "00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h8v6"
+                },
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE006.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE006.multicastConfig
new file mode 100644
index 0000000..97d1579
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE006.multicastConfig
@@ -0,0 +1,54 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10", "of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:03/None", "00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                },
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7", "of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:03/None", "00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                },
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE007.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE007.multicastConfig
new file mode 100644
index 0000000..06d5876
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE007.multicastConfig
@@ -0,0 +1,60 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10", "of:0000000000000004/9", "of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:03/None", "00:AA:00:00:00:06/None", "00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                },
+                {
+                    "host": "h8v4"
+                },
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7", "of:0000000000000004/6", "of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:03/None", "00:BB:00:00:00:06/None", "00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                },
+                {
+                    "host": "h8v6"
+                },
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE008.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE008.multicastConfig
new file mode 100644
index 0000000..06d5876
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE008.multicastConfig
@@ -0,0 +1,60 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10", "of:0000000000000004/9", "of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:03/None", "00:AA:00:00:00:06/None", "00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                },
+                {
+                    "host": "h8v4"
+                },
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7", "of:0000000000000004/6", "of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:03/None", "00:BB:00:00:00:06/None", "00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                },
+                {
+                    "host": "h8v6"
+                },
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE101.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE101.multicastConfig
new file mode 100644
index 0000000..06d5876
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE101.multicastConfig
@@ -0,0 +1,60 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10", "of:0000000000000004/9", "of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:03/None", "00:AA:00:00:00:06/None", "00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                },
+                {
+                    "host": "h8v4"
+                },
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7", "of:0000000000000004/6", "of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:03/None", "00:BB:00:00:00:06/None", "00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                },
+                {
+                    "host": "h8v6"
+                },
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE102.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE102.multicastConfig
new file mode 100644
index 0000000..06d5876
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE102.multicastConfig
@@ -0,0 +1,60 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10", "of:0000000000000004/9", "of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:03/None", "00:AA:00:00:00:06/None", "00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                },
+                {
+                    "host": "h8v4"
+                },
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7", "of:0000000000000004/6", "of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:03/None", "00:BB:00:00:00:06/None", "00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                },
+                {
+                    "host": "h8v6"
+                },
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE103.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE103.multicastConfig
new file mode 100644
index 0000000..06d5876
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE103.multicastConfig
@@ -0,0 +1,60 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10", "of:0000000000000004/9", "of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:03/None", "00:AA:00:00:00:06/None", "00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                },
+                {
+                    "host": "h8v4"
+                },
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7", "of:0000000000000004/6", "of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:03/None", "00:BB:00:00:00:06/None", "00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                },
+                {
+                    "host": "h8v6"
+                },
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE201.multicastConfig b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE201.multicastConfig
new file mode 100644
index 0000000..06d5876
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/multicast/CASE201.multicastConfig
@@ -0,0 +1,60 @@
+[
+    {
+        "ipVersion": 4,
+        "sIP": "10.2.0.1",
+        "group": "224.2.0.1",
+        "sPorts": ["of:0000000000000002/9"],
+        "dPorts": ["of:0000000000000002/10", "of:0000000000000004/9", "of:0000000000000001/5"],
+        "dHosts": ["00:AA:00:00:00:03/None", "00:AA:00:00:00:06/None", "00:AA:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v4",
+                "interface": "h3v4-eth0",
+                "Ether": "01:00:5e:02:00:01",
+                "UDP": 40051,
+                "filter": "ip host 224.2.0.1",
+                "packet": "dst=01:00:5e:02:00:01 src=00:aa:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v4"
+                },
+                {
+                    "host": "h8v4"
+                },
+                {
+                    "host": "h1v4"
+                }
+            ]
+        }
+    },
+    {
+        "ipVersion": 6,
+        "sIP": "1002::3fe",
+        "group": "ff08::3fe",
+        "sPorts": ["of:0000000000000002/6"],
+        "dPorts": ["of:0000000000000002/7", "of:0000000000000004/6", "of:0000000000000001/3"],
+        "dHosts": ["00:BB:00:00:00:03/None", "00:BB:00:00:00:06/None", "00:BB:00:00:00:01/None"],
+        "scapy": {
+            "src": {
+                "host": "h3v6",
+                "interface": "h3v6-eth0",
+                "Ether": "33:33:00:00:03:fe",
+                "UDP": 40051,
+                "filter": "ip6 host ff08::3fe",
+                "packet": "dst=33:33:00:00:03:fe src=00:bb:00:00:00:02"
+            },
+            "dst": [
+                {
+                    "host": "h4v6"
+                },
+                {
+                    "host": "h8v6"
+                },
+                {
+                    "host": "h1v6"
+                }
+            ]
+        }
+    }
+]
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/switchFailure/CASE201.switchFailureChart b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/switchFailure/CASE201.switchFailureChart
new file mode 100644
index 0000000..6614e5f
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/dependencies/switchFailure/CASE201.switchFailureChart
@@ -0,0 +1,18 @@
+{
+    "spine101": { "switches_before_failure": 10,
+                  "links_before_failure": 48,
+                  "switches_after_failure": 9,
+                  "links_after_failure": 30 },
+    "spine102": { "switches_before_failure": 10,
+                  "links_before_failure": 48,
+                  "switches_after_failure": 9,
+                  "links_after_failure": 30 },
+    "spine103": { "switches_before_failure": 10,
+                  "links_before_failure": 48,
+                  "switches_after_failure": 9,
+                  "links_after_failure": 42 },
+    "spine104": { "switches_before_failure": 10,
+                  "links_before_failure": 48,
+                  "switches_after_failure": 9,
+                  "links_after_failure": 42 }
+}