diff --git a/TestON/tests/USECASE/SegmentRouting/SRBridging/SRBridging.params.tofino b/TestON/tests/USECASE/SegmentRouting/SRBridging/SRBridging.params.tofino
index 7442bf4..88d669b 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRBridging/SRBridging.params.tofino
+++ b/TestON/tests/USECASE/SegmentRouting/SRBridging/SRBridging.params.tofino
@@ -5,6 +5,7 @@
         <nodeCluster>Fabric</nodeCluster>
         <builds>20</builds>
         <jobName>SRBridging-tofino</jobName>
+        <branch>master</branch>
     </GRAPH>
 
     <SCALE>
diff --git a/TestON/tests/dependencies/ONOSSetup.py b/TestON/tests/dependencies/ONOSSetup.py
index 1afbfa9..03275a1 100644
--- a/TestON/tests/dependencies/ONOSSetup.py
+++ b/TestON/tests/dependencies/ONOSSetup.py
@@ -132,11 +132,12 @@
                                  onpass="Successfully construct " +
                                         "test variables ",
                                  onfail="Failed to construct test variables" )
+        branch = main.params[ 'GRAPH' ].get('branch')
 
         if main.params[ 'GRAPH' ].get('jobName'):
-            url = self.generateGraphURL( testname=main.params[ 'GRAPH' ][ 'jobName' ] )
+            url = self.generateGraphURL( testname=main.params[ 'GRAPH' ][ 'jobName' ], branch=branch )
         else:
-            url = self.generateGraphURL()
+            url = self.generateGraphURL( branch=branch )
         main.log.wiki( url )
 
         if not main.persistentSetup:
@@ -145,14 +146,15 @@
             #       Or try to link to deployment job?
             main.commit = main.ONOSbench.getVersion( report=True )
 
-    def generateGraphURL( self, testname=main.TEST, width=525, height=350 ):
+    def generateGraphURL( self, testname=main.TEST, width=525, height=350, branch=None ):
         """
         Description:
             Obtain the URL for the graph that corresponds to the test being run.
         """
 
         nodeCluster = main.params[ 'GRAPH' ][ 'nodeCluster' ]
-        branch = main.ONOSbench.getBranchName()
+        if not branch:
+            branch = main.ONOSbench.getBranchName()
         maxBuildsToShow = main.params[ 'GRAPH' ][ 'builds' ]
 
         return '<ac:structured-macro ac:name="html">\n' + \
