diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
index 687f915..22988d8 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
@@ -78,6 +78,8 @@
             main.bmv2 = "bmv2.py"
             main.scale = ( main.params[ 'SCALE' ][ 'size' ] ).split( "," )
             main.maxNodes = int( main.params[ 'SCALE' ][ 'max' ] )
+            main.trellisOar = main.params[ 'DEPENDENCY' ][ 'trellisOar' ]
+            main.t3Oar = main.params[ 'DEPENDENCY' ][ 't3Oar' ] if 't3Oar' in main.params[ 'DEPENDENCY' ] else None
 
             stepResult = main.testSetUp.envSetup( False )
         except Exception as e:
@@ -110,7 +112,7 @@
                                   useSSH=Testcaselib.useSSH,
                                   installParallel=parallel, includeCaseDesc=False )
         ready = utilities.retry( main.Cluster.active( 0 ).CLI.summary,
-                                 main.FALSE,
+                                 [ None, main.FALSE ],
                                  sleep=cliSleep,
                                  attempts=10 )
         if ready:
@@ -122,6 +124,16 @@
             main.log.error( "ONOS startup failed!" )
             main.cleanAndExit()
 
+        # Install segmentrouting and t3 app
+        appInstallResult = main.ONOSbench.onosAppInstall( main.Cluster.runningNodes[0].ipAddress, main.trellisOar)
+        if main.t3Oar:
+            appInstallResult = appInstallResult and main.ONOSbench.onosAppInstall( main.Cluster.runningNodes[0].ipAddress, main.t3Oar)
+        utilities.assert_equals( expect=main.TRUE, actual=appInstallResult,
+                                 onpass="SR app installation succeded",
+                                 onfail="SR app installation failed" )
+        if not appInstallResult:
+            main.cleanAndExit()
+
         for ctrl in main.Cluster.active():
             ctrl.CLI.logSet( "DEBUG", "org.onosproject.segmentrouting" )
             ctrl.CLI.logSet( "DEBUG", "org.onosproject.driver" )
@@ -997,7 +1009,7 @@
         Testcaselib.verifyTopology( main, switches, links, expNodes )
 
         ready = utilities.retry( main.Cluster.active( 0 ).CLI.summary,
-                                 main.FALSE,
+                                 [ None, main.FALSE ],
                                  attempts=10,
                                  sleep=12 )
         if ready:
