diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index 23d442d..ca86a89 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -1121,6 +1121,36 @@
                 main.log.exception( self.name + ": Uncaught exception!" )
                 main.cleanAndExit()
 
+    def addRoute( self, host, dstIP, interface, ipv6=False ):
+        """
+        Add a route to host
+        Ex: h1 route add -host 224.2.0.1 h1-eth0
+        """
+        if self.handle:
+            try:
+                cmd = str( host )
+                if ipv6:
+                    cmd += " route -A inet6 add "
+                else:
+                    cmd += " route add -host "
+                cmd += str( dstIP ) + " " + str( interface )
+                self.handle.sendline( cmd )
+                self.handle.expect( "mininet>" )
+                response = self.handle.before
+                main.log.debug( "response = " + response )
+                return main.TRUE
+            except pexpect.TIMEOUT:
+                main.log.error( self.name + ": TIMEOUT exception found" )
+                main.log.error( self.name + ":     " + self.handle.before )
+                main.cleanAndExit()
+            except pexpect.EOF:
+                main.log.error( self.name + ": EOF exception found" )
+                main.log.error( self.name + ":     " + self.handle.before )
+                return main.FALSE
+            except Exception:
+                main.log.exception( self.name + ": Uncaught exception!" )
+                main.cleanAndExit()
+
     def addStaticMACAddress( self, host, GW, macaddr ):
         """
            Changes the mac address of a gateway host"""
diff --git a/TestON/drivers/common/cli/onosclidriver.py b/TestON/drivers/common/cli/onosclidriver.py
index b7d10bd..03fb50f 100755
--- a/TestON/drivers/common/cli/onosclidriver.py
+++ b/TestON/drivers/common/cli/onosclidriver.py
@@ -6115,3 +6115,205 @@
         except Exception:
             main.log.exception( self.name + ": Uncaught exception!" )
             main.cleanAndExit()
+
+    def mcastJoin( self, sIP, groupIP, sPort, dPorts ):
+        """
+        Create a multicast route by calling 'mcast-join' command
+        sIP: source IP of the multicast route
+        groupIP: group IP of the multicast route
+        sPort: source port (e.g. of:0000000000000001/3 ) of the multicast route
+        dPorts: a list of destination ports of the multicast route
+        Returns main.TRUE if mcast route is added; Otherwise main.FALSE
+        """
+        try:
+            cmdStr = "mcast-join"
+            cmdStr += " " + str( sIP )
+            cmdStr += " " + str( groupIP )
+            cmdStr += " " + str( sPort )
+            assert isinstance( dPorts, list )
+            for dPort in dPorts:
+                cmdStr += " " + str( dPort )
+            handle = self.sendline( cmdStr )
+            assert handle is not None, "Error in sendline"
+            assert "Command not found:" not in handle, handle
+            assert "Unsupported command:" not in handle, handle
+            assert "Error executing command" not in handle, handle
+            if "Added the mcast route" in handle:
+                return main.TRUE
+            else:
+                return main.FALSE
+        except AssertionError:
+            main.log.exception( "" )
+            return None
+        except TypeError:
+            main.log.exception( self.name + ": Object not as expected" )
+            return None
+        except pexpect.EOF:
+            main.log.error( self.name + ": EOF exception found" )
+            main.log.error( self.name + ":    " + self.handle.before )
+            main.cleanAndExit()
+        except Exception:
+            main.log.exception( self.name + ": Uncaught exception!" )
+            main.cleanAndExit()
+
+    def mcastDelete( self, sIP, groupIP, dPorts ):
+        """
+        Delete a multicast route by calling 'mcast-delete' command
+        sIP: source IP of the multicast route
+        groupIP: group IP of the multicast route
+        dPorts: a list of destination ports of the multicast route
+        Returns main.TRUE if mcast route is deleted; Otherwise main.FALSE
+        """
+        try:
+            cmdStr = "mcast-delete"
+            cmdStr += " " + str( sIP )
+            cmdStr += " " + str( groupIP )
+            assert isinstance( dPorts, list )
+            for dPort in dPorts:
+                cmdStr += " " + str( dPort )
+            handle = self.sendline( cmdStr )
+            assert handle is not None, "Error in sendline"
+            assert "Command not found:" not in handle, handle
+            assert "Unsupported command:" not in handle, handle
+            assert "Error executing command" not in handle, handle
+            if "Updated the mcast route" in handle:
+                return main.TRUE
+            else:
+                return main.FALSE
+        except AssertionError:
+            main.log.exception( "" )
+            return None
+        except TypeError:
+            main.log.exception( self.name + ": Object not as expected" )
+            return None
+        except pexpect.EOF:
+            main.log.error( self.name + ": EOF exception found" )
+            main.log.error( self.name + ":    " + self.handle.before )
+            main.cleanAndExit()
+        except Exception:
+            main.log.exception( self.name + ": Uncaught exception!" )
+            main.cleanAndExit()
+
+    def mcastHostJoin( self, sAddr, gAddr, srcs, sinks ):
+        """
+        Create a multicast route by calling 'mcast-host-join' command
+        sAddr: we can provide * for ASM or a specific address for SSM
+        gAddr: specifies multicast group address
+        srcs: a list of the source connect points e.g. ["of:0000000000000003/12"]
+        sinks: a list of HostId of the sinks e.g. ["00:AA:00:00:01:05/40"]
+        Returns main.TRUE if mcast route is added; Otherwise main.FALSE
+        """
+        try:
+            cmdStr = "mcast-host-join"
+            cmdStr += " -sAddr " + str( sAddr )
+            cmdStr += " -gAddr " + str( gAddr )
+            assert isinstance( srcs, list )
+            for src in srcs:
+                cmdStr += " -srcs " + str( src )
+            assert isinstance( sinks, list )
+            for sink in sinks:
+                cmdStr += " -sinks " + str( sink )
+            handle = self.sendline( cmdStr )
+            assert handle is not None, "Error in sendline"
+            assert "Command not found:" not in handle, handle
+            assert "Unsupported command:" not in handle, handle
+            assert "Error executing command" not in handle, handle
+            if "Added the mcast route" in handle:
+                return main.TRUE
+            else:
+                return main.FALSE
+        except AssertionError:
+            main.log.exception( "" )
+            return None
+        except TypeError:
+            main.log.exception( self.name + ": Object not as expected" )
+            return None
+        except pexpect.EOF:
+            main.log.error( self.name + ": EOF exception found" )
+            main.log.error( self.name + ":    " + self.handle.before )
+            main.cleanAndExit()
+        except Exception:
+            main.log.exception( self.name + ": Uncaught exception!" )
+            main.cleanAndExit()
+
+    def mcastHostDelete( self, sAddr, gAddr, host=None ):
+        """
+        Delete multicast sink(s) by calling 'mcast-host-delete' command
+        sAddr: we can provide * for ASM or a specific address for SSM
+        gAddr: specifies multicast group address
+        hosts: HostId of the sink e.g. "00:AA:00:00:01:05/40",
+               will delete the route if not specified
+        Returns main.TRUE if the mcast sink is deleted; Otherwise main.FALSE
+        """
+        try:
+            cmdStr = "mcast-host-delete"
+            cmdStr += " -sAddr " + str( sAddr )
+            cmdStr += " -gAddr " + str( gAddr )
+            if host:
+                cmdStr += " -h " + str( host )
+            handle = self.sendline( cmdStr )
+            assert handle is not None, "Error in sendline"
+            assert "Command not found:" not in handle, handle
+            assert "Unsupported command:" not in handle, handle
+            assert "Error executing command" not in handle, handle
+            if "Updated the mcast route" in handle:
+                return main.TRUE
+            elif "Deleted the mcast route" in handle:
+                return main.TRUE
+            else:
+                return main.FALSE
+        except AssertionError:
+            main.log.exception( "" )
+            return None
+        except TypeError:
+            main.log.exception( self.name + ": Object not as expected" )
+            return None
+        except pexpect.EOF:
+            main.log.error( self.name + ": EOF exception found" )
+            main.log.error( self.name + ":    " + self.handle.before )
+            main.cleanAndExit()
+        except Exception:
+            main.log.exception( self.name + ": Uncaught exception!" )
+            main.cleanAndExit()
+
+    def mcastSourceDelete( self, sAddr, gAddr, srcs=None ):
+        """
+        Delete multicast src(s) by calling 'mcast-source-delete' command
+        sAddr: we can provide * for ASM or a specific address for SSM
+        gAddr: specifies multicast group address
+        srcs: a list of connect points of the sources e.g. ["00:AA:00:00:01:05/40"],
+              will delete the route if not specified
+        Returns main.TRUE if mcast sink is deleted; Otherwise main.FALSE
+        """
+        try:
+            cmdStr = "mcast-source-delete"
+            cmdStr += " -sAddr " + str( sAddr )
+            cmdStr += " -gAddr " + str( gAddr )
+            if srcs:
+                assert isinstance( srcs, list )
+                for src in srcs:
+                    cmdStr += " -src " + str( src )
+            handle = self.sendline( cmdStr )
+            assert handle is not None, "Error in sendline"
+            assert "Command not found:" not in handle, handle
+            assert "Unsupported command:" not in handle, handle
+            assert "Error executing command" not in handle, handle
+            if "Updated the mcast route" in handle:
+                return main.TRUE
+            elif "Deleted the mcast route" in handle:
+                return main.TRUE
+            else:
+                return main.FALSE
+        except AssertionError:
+            main.log.exception( "" )
+            return None
+        except TypeError:
+            main.log.exception( self.name + ": Object not as expected" )
+            return None
+        except pexpect.EOF:
+            main.log.error( self.name + ": EOF exception found" )
+            main.log.error( self.name + ":    " + self.handle.before )
+            main.cleanAndExit()
+        except Exception:
+            main.log.exception( self.name + ": Uncaught exception!" )
+            main.cleanAndExit()
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.params b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.params
index 0189744..6af0cde 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.params
@@ -1,5 +1,5 @@
 <PARAMS>
-    <testcases>1</testcases>
+    <testcases>1,2,3,4,5,6,7,8,101,102,103,201</testcases>
 
     <GRAPH>
         <nodeCluster>Fabric</nodeCluster>
@@ -7,20 +7,21 @@
     </GRAPH>
 
     <SCALE>
-        <size>1</size>
-        <max>1</max>
+        <size>3</size>
+        <max>3</max>
     </SCALE>
 
     <DEPENDENCY>
         <useCommonConf>False</useCommonConf>
         <useCommonTopo>True</useCommonTopo>
-        <topology>trellis_fabric.py</topology>
+        <topology>hagg_fabric.py</topology>
         <lib>routinglib.py,trellislib.py</lib>
+        <conf>bgpdbgp1.conf,bgpdbgp2.conf,bgpdr1.conf,bgpdr2.conf,dhcpd6.conf,dhcpd.conf,zebradbgp1.conf,zebradbgp2.conf</conf>
     </DEPENDENCY>
 
     <ENV>
         <cellName>productionCell</cellName>
-        <cellApps>drivers,segmentrouting,openflow,fpm,netcfghostprovider</cellApps>
+        <cellApps>drivers,segmentrouting,openflow,fpm,dhcprelay,netcfghostprovider,routeradvertisement,t3,mcast</cellApps>
     </ENV>
 
     <GIT>
@@ -33,11 +34,17 @@
     </CTRL>
 
     <timers>
-        <LinkDiscovery>12</LinkDiscovery>
-        <SwitchDiscovery>12</SwitchDiscovery>
+        <LinkDiscovery>30</LinkDiscovery>
+        <SwitchDiscovery>30</SwitchDiscovery>
+        <OnosDiscovery>30</OnosDiscovery>
+        <loadNetcfgSleep>5</loadNetcfgSleep>
+        <startMininetSleep>60</startMininetSleep>
+        <balanceMasterSleep>10</balanceMasterSleep>
+        <mcastSleep>5</mcastSleep>
     </timers>
 
-    <SLEEP>
-        <startup>10</startup>
-    </SLEEP>
+    <SCAPY>
+        <HOSTNAMES>h1v4,h3v4,h4v4,h8v4,h1v6,h3v6,h4v6,h8v6</HOSTNAMES>
+    </SCAPY>
+
 </PARAMS>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.py b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.py
index 616ba4c..b2a7139 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.py
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.py
@@ -4,8 +4,12 @@
 
     def CASE1( self, main ):
         """
-        Sets up 3 ONOS instances
-        Start 2x2 topology of hardware switches
+        Sets up 3 ONOS instances, start H-AGG topology
+        Create a Multicast flow between a source and sink on the same dual-tor leaf
+        Verify flows and groups
+        Verify traffic
+        Remove sink
+        Verify flows and groups
         """
         try:
             from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
@@ -18,135 +22,260 @@
             main.funcs = SRMulticastTest()
         main.funcs.runTest( main,
                             test_idx=1,
-                            topology='2x2',
-                            onosNodes=1,
-                            description="TBD" )
+                            onosNodes=3,
+                            description="Create a Multicast flow between a source and sink on the same dual-tor leaf" )
 
-    def CASE01( self, main ):
+    def CASE2( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Create a Multicast flow between a source and sink on the same dual-tor leaf
-        Verify flows and groups
-        Verify traffic
-        Remove sink
-        Verify flows and groups
-        """
-        pass
-
-    def CASE02( self, main ):
-        """
-        Sets up 3 ONOS instances, start 2x5 topology
+        Sets up 3 ONOS instances, start H-AGG topology
         Create a Multicast flow between a source and sink on different dual-tor leaves
         Verify flows and groups
         Verify traffic
         Remove sink
         Verify flows and groups
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=2,
+                            onosNodes=3,
+                            description="Create a Multicast flow between a source and sink on different dual-tor leaves" )
 
-    def CASE03( self, main ):
+    def CASE3( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
+        Sets up 3 ONOS instances, start H-AGG topology
         Create a Multicast flow between a source and sink on different leaves (sink on single-tor)
         Verify flows and groups
         Verify traffic
         Remove sink
         Verify flows and groups
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=3,
+                            onosNodes=3,
+                            description="Create a Multicast flow between a source and sink on different leaves (sink on single-tor)" )
 
-    def CASE04( self, main ):
+    def CASE4( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE01 and CASE02
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE1 and CASE2
         Verify flows and groups
         Verify traffic
         Remove sinks
         Verify flows and groups
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=4,
+                            onosNodes=3,
+                            description="Combines CASE1 and CASE2" )
 
-    def CASE05( self, main ):
+    def CASE5( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE02 and CASE03
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE2 and CASE3
         Verify flows and groups
         Verify traffic
         Remove sinks
         Verify flows and groups
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=5,
+                            onosNodes=3,
+                            description="Combines CASE2 and CASE3" )
 
-    def CASE06( self, main ):
+    def CASE6( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE01 and CASE03
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE1 and CASE3
         Verify flows and groups
         Verify traffic
         Remove sinks
         Verify flows and groups
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=5,
+                            onosNodes=3,
+                            description="Combines CASE1 and CASE3" )
 
-    def CASE07( self, main ):
+    def CASE7( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE01, CASE02 and CASE03
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE1, CASE2 and CASE3
         Verify flows and groups
         Verify traffic
         Remove sinks
         Verify flows and groups
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=7,
+                            onosNodes=3,
+                            description="Combines CASE7 with route removal" )
 
-    def CASE08( self, main ):
+    def CASE8( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with route removal
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with route removal
         Verify flows and groups
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=8,
+                            onosNodes=3,
+                            description="Combines CASE7 with route removal",
+                            removeRoute=True )
 
     def CASE101( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with a link failure (link ingress-spine)
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with a link failure (link ingress-spine)
         Verify flows and groups
         Verify traffic
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=101,
+                            onosNodes=3,
+                            description="Combines CASE7 with a link failure (link ingress-spine)",
+                            linkFailure=True )
 
     def CASE102( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with a link failure (link spine-egress-dt-leaf)
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with a link failure (link spine-egress-dt-leaf)
         Verify flows and groups
         Verify traffic
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=102,
+                            onosNodes=3,
+                            description="Combines CASE7 with a link failure (link spine-engress-dt-leaf)",
+                            linkFailure=True )
 
     def CASE103( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with a link failure (link spine-egress-st-leaf)
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with a link failure (link spine-egress-st-leaf)
         Verify flows and groups
         Verify traffic
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=103,
+                            onosNodes=3,
+                            description="Combines CASE7 with a link failure (link spine-engress-st-leaf)",
+                            linkFailure=True )
 
     def CASE201( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with spine failure
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with spine failure
         Verify flows and groups
         Verify traffic
         """
-        pass
+        try:
+            from tests.USECASE.SegmentRouting.SRMulticast.dependencies.SRMulticastTest import SRMulticastTest
+        except ImportError:
+            main.log.error( "SRMulticastTest not found. Exiting the test" )
+            main.cleanAndExit()
+        try:
+            main.funcs
+        except ( NameError, AttributeError ):
+            main.funcs = SRMulticastTest()
+        main.funcs.runTest( main,
+                            test_idx=201,
+                            onosNodes=3,
+                            description="Combines CASE7 with spine failure",
+                            switchFailure=True )
 
     def CASE202( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with ingress failure and recovery
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with ingress failure and recovery
         Verify flows and groups are removed (failure)
         Verify flows and groups (recovery)
         Verify traffic (recovery)
@@ -155,8 +284,8 @@
 
     def CASE203( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with egress-dt-leaf failure and recovery
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with egress-dt-leaf failure and recovery
         Verify flows and groups are removed for the failing sink (failure)
         Verify traffic on remaining sinks (failure)
         Verify flows and groups (recovery)
@@ -166,8 +295,8 @@
 
     def CASE204( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with egress-st-leaf failure and recovery
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with egress-st-leaf failure and recovery
         Verify flows and groups are removed for the failing sink (failure)
         Verify traffic on remaining sinks (failure)
         Verify flows and groups (recovery)
@@ -177,8 +306,8 @@
 
     def CASE205( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with egress leaves failure and recovery
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with egress leaves failure and recovery
         Verify flows and groups are removed for the failing sinks (failure)
         Verify traffic on remaining sink (failure)
         Verify flows and groups (recovery)
@@ -188,8 +317,8 @@
 
     def CASE301( self, main ):
         """
-        Sets up 3 ONOS instances, start 2x5 topology
-        Combines CASE07 with ONOS failure and recovery
+        Sets up 3 ONOS instances, start H-AGG topology
+        Combines CASE7 with ONOS failure and recovery
         Verify flows and groups (failure)
         Verify traffic (failure)
         Verify flows and groups (recovery)
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.topo b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.topo
index 34a2013..1c3f8a6 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.topo
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.topo
@@ -16,151 +16,32 @@
                 <rest_port></rest_port>
                 <prompt></prompt>  # TODO: we technically need a few of these, one per component
                 <onos_home></onos_home>  # defines where onos home is
-                <nodes>1</nodes>  # number of nodes in the cluster
+                <nodes>3</nodes>  # number of nodes in the cluster
             </COMPONENTS>
         </ONOScell>
 
-        <OFDPASwitchLeaf205>
-            <host>10.128.0.205</host>
-            <user>root</user>
-            <password>onl</password>
-            <type>OFDPASwitchDriver</type>
-            <connect_order>2</connect_order>
-            <COMPONENTS>
-                <shortName>leaf205</shortName>
-                <dpid>0x205</dpid>
-                <port1>49</port1>
-                <link1>OFDPASwitchSpine227</link1>
-                <port2>51</port2>
-                <link2>OFDPASwitchSpine228</link2>
-                <port3>33</port3>
-                <link3>Host1</link3>
-                <port4>44</port4>
-                <link4>Host2</link4>
-            </COMPONENTS>
-        </OFDPASwitchLeaf205>
-
-        <OFDPASwitchLeaf206>
-            <host>10.128.0.206</host>
-            <user>root</user>
-            <password>onl</password>
-            <type>OFDPASwitchDriver</type>
-            <connect_order>3</connect_order>
-            <COMPONENTS>
-                <shortName>leaf206</shortName>
-                <dpid>0x206</dpid>
-                <port1>49</port1>
-                <link1>OFDPASwitchSpine227</link1>
-                <port2>51</port2>
-                <link2>OFDPASwitchSpine228</link2>
-                <port3>33</port3>
-                <link3>Host3</link3>
-                <port4>44</port4>
-                <link4>Host4</link4>
-            </COMPONENTS>
-        </OFDPASwitchLeaf206>
-
-        <OFDPASwitchSpine227>
-            <host>10.128.0.227</host>
-            <user>root</user>
-            <password>onl</password>
-            <type>OFDPASwitchDriver</type>
-            <connect_order>4</connect_order>
-            <COMPONENTS>
-                <shortName>spine227</shortName>
-                <dpid>0x227</dpid>
-                <port1>25</port1>
-                <link1>OFDPASwitchLeaf205</link1>
-                <port2>27</port2>
-                <link2>OFDPASwitchLeaf206</link2>
-            </COMPONENTS>
-        </OFDPASwitchSpine227>
-
-        <OFDPASwitchSpine228>
-            <host>10.128.0.228</host>
-            <user>root</user>
-            <password>onl</password>
-            <type>OFDPASwitchDriver</type>
-            <connect_order>5</connect_order>
-            <COMPONENTS>
-                <shortName>spine228</shortName>
-                <dpid>0x228</dpid>
-                <port1>25</port1>
-                <link1>OFDPASwitchLeaf205</link1>
-                <port2>27</port2>
-                <link2>OFDPASwitchLeaf206</link2>
-            </COMPONENTS>
-        </OFDPASwitchSpine228>
-
-        <Host1>
-            <host>10.128.100.58</host>
-            <user>mininet</user>
-            <password>mininet</password>
-            <type>HostDriver</type>
-            <connect_order>6</connect_order>
-            <COMPONENTS>
-                <ip>10.0.10.10</ip>
-                <ip6></ip6>
-                <shortName>h1</shortName>
-                <port1>0</port1>
-                <link1>OFDPASwitchLeaf205</link1>
-            </COMPONENTS>
-        </Host1>
-
-        <Host2>
-            <host>10.128.100.59</host>
-            <user>mininet</user>
-            <password>mininet</password>
-            <type>HostDriver</type>
-            <connect_order>7</connect_order>
-            <COMPONENTS>
-                <ip>10.0.10.20</ip>
-                <ip6></ip6>
-                <shortName>h2</shortName>
-                <port1>0</port1>
-                <link1>OFDPASwitchLeaf205</link1>
-            </COMPONENTS>
-        </Host2>
-
-        <Host3>
-            <host>10.128.100.60</host>
-            <user>mininet</user>
-            <password>mininet</password>
-            <type>HostDriver</type>
-            <connect_order>8</connect_order>
-            <COMPONENTS>
-                <ip>10.0.20.10</ip>
-                <ip6></ip6>
-                <shortName>h3</shortName>
-                <port1>0</port1>
-                <link1>OFDPASwitchLeaf206</link1>
-            </COMPONENTS>
-        </Host3>
-
-        <Host4>
-            <host>10.128.100.61</host>
-            <user>mininet</user>
-            <password>mininet</password>
-            <type>HostDriver</type>
-            <connect_order>9</connect_order>
-            <COMPONENTS>
-                <ip>10.0.20.20</ip>
-                <ip6></ip6>
-                <shortName>h4</shortName>
-                <port1>0</port1>
-                <link1>OFDPASwitchLeaf206</link1>
-            </COMPONENTS>
-        </Host4>
-
-        <NetworkBench>
-            <host>localhost</host>
+        <Mininet1>
+            <host>OCN</host>
             <user>sdn</user>
             <password>rocks</password>
-            <type>NetworkDriver</type>
-            <connect_order>10</connect_order>
+            <type>MininetCliDriver</type>
+            <connect_order>2</connect_order>
             <COMPONENTS>
+                <home>~/mininet/custom/</home>
+                <prompt></prompt>
             </COMPONENTS>
-        </NetworkBench>
+        </Mininet1>
+
+        <Scapy>
+            <host>OCN</host>
+            <user>sdn</user>
+            <password>rocks</password>
+            <type>MininetScapyCliDriver</type>
+            <connect_order>3</connect_order>
+            <COMPONENTS>
+                <prompt></prompt>
+            </COMPONENTS>
+        </Scapy>
 
     </COMPONENT>
 </TOPOLOGY>
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.topo.physical b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.topo.physical
new file mode 100644
index 0000000..34a2013
--- /dev/null
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.topo.physical
@@ -0,0 +1,166 @@
+<TOPOLOGY>
+    <COMPONENT>
+        <ONOScell>
+            <host>localhost</host>  # ONOS "bench" machine
+            <user>sdn</user>
+            <password>rocks</password>
+            <type>OnosClusterDriver</type>
+            <connect_order>1</connect_order>
+            <COMPONENTS>
+                <cluster_name></cluster_name>  # Used as a prefix for cluster components. Defaults to 'ONOS'
+                <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>
+                <web_pass></web_pass>
+                <rest_port></rest_port>
+                <prompt></prompt>  # TODO: we technically need a few of these, one per component
+                <onos_home></onos_home>  # defines where onos home is
+                <nodes>1</nodes>  # number of nodes in the cluster
+            </COMPONENTS>
+        </ONOScell>
+
+        <OFDPASwitchLeaf205>
+            <host>10.128.0.205</host>
+            <user>root</user>
+            <password>onl</password>
+            <type>OFDPASwitchDriver</type>
+            <connect_order>2</connect_order>
+            <COMPONENTS>
+                <shortName>leaf205</shortName>
+                <dpid>0x205</dpid>
+                <port1>49</port1>
+                <link1>OFDPASwitchSpine227</link1>
+                <port2>51</port2>
+                <link2>OFDPASwitchSpine228</link2>
+                <port3>33</port3>
+                <link3>Host1</link3>
+                <port4>44</port4>
+                <link4>Host2</link4>
+            </COMPONENTS>
+        </OFDPASwitchLeaf205>
+
+        <OFDPASwitchLeaf206>
+            <host>10.128.0.206</host>
+            <user>root</user>
+            <password>onl</password>
+            <type>OFDPASwitchDriver</type>
+            <connect_order>3</connect_order>
+            <COMPONENTS>
+                <shortName>leaf206</shortName>
+                <dpid>0x206</dpid>
+                <port1>49</port1>
+                <link1>OFDPASwitchSpine227</link1>
+                <port2>51</port2>
+                <link2>OFDPASwitchSpine228</link2>
+                <port3>33</port3>
+                <link3>Host3</link3>
+                <port4>44</port4>
+                <link4>Host4</link4>
+            </COMPONENTS>
+        </OFDPASwitchLeaf206>
+
+        <OFDPASwitchSpine227>
+            <host>10.128.0.227</host>
+            <user>root</user>
+            <password>onl</password>
+            <type>OFDPASwitchDriver</type>
+            <connect_order>4</connect_order>
+            <COMPONENTS>
+                <shortName>spine227</shortName>
+                <dpid>0x227</dpid>
+                <port1>25</port1>
+                <link1>OFDPASwitchLeaf205</link1>
+                <port2>27</port2>
+                <link2>OFDPASwitchLeaf206</link2>
+            </COMPONENTS>
+        </OFDPASwitchSpine227>
+
+        <OFDPASwitchSpine228>
+            <host>10.128.0.228</host>
+            <user>root</user>
+            <password>onl</password>
+            <type>OFDPASwitchDriver</type>
+            <connect_order>5</connect_order>
+            <COMPONENTS>
+                <shortName>spine228</shortName>
+                <dpid>0x228</dpid>
+                <port1>25</port1>
+                <link1>OFDPASwitchLeaf205</link1>
+                <port2>27</port2>
+                <link2>OFDPASwitchLeaf206</link2>
+            </COMPONENTS>
+        </OFDPASwitchSpine228>
+
+        <Host1>
+            <host>10.128.100.58</host>
+            <user>mininet</user>
+            <password>mininet</password>
+            <type>HostDriver</type>
+            <connect_order>6</connect_order>
+            <COMPONENTS>
+                <ip>10.0.10.10</ip>
+                <ip6></ip6>
+                <shortName>h1</shortName>
+                <port1>0</port1>
+                <link1>OFDPASwitchLeaf205</link1>
+            </COMPONENTS>
+        </Host1>
+
+        <Host2>
+            <host>10.128.100.59</host>
+            <user>mininet</user>
+            <password>mininet</password>
+            <type>HostDriver</type>
+            <connect_order>7</connect_order>
+            <COMPONENTS>
+                <ip>10.0.10.20</ip>
+                <ip6></ip6>
+                <shortName>h2</shortName>
+                <port1>0</port1>
+                <link1>OFDPASwitchLeaf205</link1>
+            </COMPONENTS>
+        </Host2>
+
+        <Host3>
+            <host>10.128.100.60</host>
+            <user>mininet</user>
+            <password>mininet</password>
+            <type>HostDriver</type>
+            <connect_order>8</connect_order>
+            <COMPONENTS>
+                <ip>10.0.20.10</ip>
+                <ip6></ip6>
+                <shortName>h3</shortName>
+                <port1>0</port1>
+                <link1>OFDPASwitchLeaf206</link1>
+            </COMPONENTS>
+        </Host3>
+
+        <Host4>
+            <host>10.128.100.61</host>
+            <user>mininet</user>
+            <password>mininet</password>
+            <type>HostDriver</type>
+            <connect_order>9</connect_order>
+            <COMPONENTS>
+                <ip>10.0.20.20</ip>
+                <ip6></ip6>
+                <shortName>h4</shortName>
+                <port1>0</port1>
+                <link1>OFDPASwitchLeaf206</link1>
+            </COMPONENTS>
+        </Host4>
+
+        <NetworkBench>
+            <host>localhost</host>
+            <user>sdn</user>
+            <password>rocks</password>
+            <type>NetworkDriver</type>
+            <connect_order>10</connect_order>
+            <COMPONENTS>
+            </COMPONENTS>
+        </NetworkBench>
+
+    </COMPONENT>
+</TOPOLOGY>
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 }
+}
diff --git a/TestON/tests/USECASE/SegmentRouting/SRRouting/SRRouting.params b/TestON/tests/USECASE/SegmentRouting/SRRouting/SRRouting.params
index 1b6aec0..e8199bd 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRRouting/SRRouting.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRRouting/SRRouting.params
@@ -43,7 +43,4 @@
         <balanceMasterSleep>10</balanceMasterSleep>
     </timers>
 
-    <SLEEP>
-        <startup>10</startup>
-    </SLEEP>
 </PARAMS>
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
index 3afb6d3..1711ef9 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
@@ -67,12 +67,12 @@
             main.forHost = "host/"
             main.forSwitchFailure = "switchFailure/"
             main.forLinkFailure = "linkFailure/"
+            main.forMulticast = "multicast/"
             main.topology = main.params[ 'DEPENDENCY' ][ 'topology' ]
             main.topologyLib = main.params[ 'DEPENDENCY' ][ 'lib' ] if 'lib' in main.params[ 'DEPENDENCY' ] else None
             main.topologyConf = main.params[ 'DEPENDENCY' ][ 'conf' ] if 'conf' in main.params[ 'DEPENDENCY' ] else None
             main.scale = ( main.params[ 'SCALE' ][ 'size' ] ).split( "," )
             main.maxNodes = int( main.params[ 'SCALE' ][ 'max' ] )
-            main.startUpSleep = int( main.params[ 'SLEEP' ][ 'startup' ] )
 
             stepResult = main.testSetUp.envSetup( False )
         except Exception as e:
@@ -160,8 +160,14 @@
     @staticmethod
     def loadLinkFailureChart( main ):
         with open( "%s%s.linkFailureChart" % ( main.configPath + main.forLinkFailure,
-                                                 main.cfgName ) ) as sfc:
-            main.linkFailureChart = json.load( sfc )
+                                                 main.cfgName ) ) as lfc:
+            main.linkFailureChart = json.load( lfc )
+
+    @staticmethod
+    def loadMulticastConfig( main ):
+        with open( "%s%s.multicastConfig" % ( main.configPath + main.forMulticast,
+                                                 main.cfgName ) ) as cfg:
+            main.multicastConfig = json.load( cfg )
 
     @staticmethod
     def startMininet( main, topology, args="" ):
@@ -681,6 +687,16 @@
         except ( NameError, AttributeError ):
             main.utils = Utils()
 
+        if hasattr( main, "scapyHosts" ):
+            scapyResult = main.TRUE
+            for host in main.scapyHosts:
+                scapyResult = host.stopScapy() and scapyResult
+                main.log.info( "Stopped Scapy Host: {0}".format( host.name ) )
+            for host in main.scapyHosts:
+                scapyResult = main.Scapy.removeHostComponent( host.name ) and scapyResult
+                main.log.info( "Removed Scapy Host Component: {0}".format( host.name ) )
+            main.scapyHosts = []
+
         if hasattr( main, 'Mininet1' ):
             main.utils.mininetCleanup( main.Mininet1 )
 
@@ -939,3 +955,67 @@
                 cfg[ "ports" ][ connectPoint ][ "interfaces" ][ 0 ][ "vlan-native" ] = native
 
         main.Cluster.active( 0 ).REST.setNetCfg( json.loads( json.dumps( cfg ) ) )
+
+    @staticmethod
+    def startScapyHosts( main ):
+        """
+        Create host components and start Scapy CLIs
+        """
+        main.step( "Start Scapy CLIs" )
+        main.scapyHostNames = main.params[ 'SCAPY' ][ 'HOSTNAMES' ].split( ',' )
+        main.scapyHosts = []
+        for hostName in main.scapyHostNames:
+            main.Scapy.createHostComponent( hostName )
+            main.scapyHosts.append( getattr( main, hostName ) )
+        for host in main.scapyHosts:
+            host.startHostCli()
+            host.startScapy()
+            host.updateSelf()
+            main.log.debug( host.name )
+            main.log.debug( host.hostIp )
+            main.log.debug( host.hostMac )
+
+    @staticmethod
+    def verifyMulticastTraffic( main, entry, expect, skipOnFail=False ):
+        """
+        Verify multicast traffic using scapy
+        """
+        srcEntry = entry["scapy"]["src"]
+        for dstEntry in entry["scapy"]["dst"]:
+            # Set up scapy receiver
+            receiver = getattr( main, dstEntry["host"] )
+            receiver.startFilter( pktFilter=srcEntry["filter"] )
+            # Set up scapy sender
+            main.Network.addRoute( str( srcEntry["host"] ),
+                                   str( entry["group"] ),
+                                   str( srcEntry["interface"] ),
+                                   True if entry["ipVersion"] == 6 else False )
+            sender = getattr( main, srcEntry["host"] )
+            sender.buildEther( dst=str( srcEntry["Ether"] ) )
+            if entry["ipVersion"] == 4:
+                sender.buildIP( dst=str( entry["group"] ) )
+            elif entry["ipVersion"] == 6:
+                sender.buildIPv6( dst=str( entry["group"] ) )
+            sender.buildUDP( ipVersion=entry["ipVersion"], dport=srcEntry["UDP"] )
+            # Send packet and check received packet
+            sender.sendPacket( iface=srcEntry["interface"] )
+            finished = receiver.checkFilter()
+            packet = ""
+            if finished:
+                packets = receiver.readPackets()
+                for packet in packets.splitlines():
+                    main.log.debug( packet )
+            else:
+                kill = receiver.killFilter()
+                main.log.debug( kill )
+                sender.handle.sendline( "" )
+                sender.handle.expect( sender.scapyPrompt )
+                main.log.debug( sender.handle.before )
+            if skipOnFail and finished != expect:
+                Testcaselib.saveOnosDiagnostics( main )
+                Testcaselib.cleanup( main, copyKarafLog=False )
+                main.skipCase()
+            utilities.assert_equals( expect=expect,
+                                     actual=srcEntry["packet"] in packet,
+                                     onpass="Pass",
+                                     onfail="Fail" )
