[ONOS-7747] Add router failure test cases to SRRouting

Change-Id: I06706c36caa181fff50c0f13c5976298e017940f
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
index 5bd3bdd..7ec46f2 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
@@ -781,6 +781,40 @@
                                  onfail="Failed to recover switch?" )
 
     @staticmethod
+    def killRouter( main, router, sleep=None ):
+        """
+        Kill bgpd process on a quagga router
+        router: name of the router to be killed. E.g. "bgp1"
+        """
+        sleep = float( sleep )
+        main.step( "Kill " + str( router ) )
+        if hasattr( main, 'Mininet1' ):
+            main.Mininet1.handle.sendline( "px {}.stopProtocols()".format( router ) )
+            main.Mininet1.handle.expect( "mininet>" )
+        else:
+            # TODO: support killing router in physical network
+            pass
+        main.log.info( "Waiting %s seconds for router down to be discovered" % ( sleep ) )
+        time.sleep( sleep )
+
+    @staticmethod
+    def recoverRouter( main, router, sleep=None ):
+        """
+        Restart bgpd process on a quagga router
+        router: name of the router to be recovered. E.g. "bgp1"
+        """
+        sleep = float( sleep )
+        main.step( "Recovering " + str( router ) )
+        if hasattr( main, 'Mininet1' ):
+            main.Mininet1.handle.sendline( "px {}.startProtocols()".format( router ) )
+            main.Mininet1.handle.expect( "mininet>" )
+        else:
+            # TODO: support recovering router in physical network
+            pass
+        main.log.info( "Waiting %s seconds for router up to be discovered" % ( sleep ) )
+        time.sleep( sleep )
+
+    @staticmethod
     def cleanup( main, copyKarafLog=True, removeHostComponent=False ):
         """
         Stop Onos-cluster.