diff --git a/jjb/pipeline/voltha/master/bbsim-tests.groovy b/jjb/pipeline/voltha/master/bbsim-tests.groovy
index 674b4b0..ae5c58a 100644
--- a/jjb/pipeline/voltha/master/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/master/bbsim-tests.groovy
@@ -44,7 +44,7 @@
 //   per-script to be sure latest repository changes are being used.
 // -----------------------------------------------------------------------
 String pipelineVer() {
-    String version = 'ebc180201844dad3a9a3d6551f3e257797e08ab7'    
+    String version = '5addce3fac89095d103ac5c6eedff2bb02e9ec63'
     return(version)
 }
 
@@ -136,7 +136,7 @@
 
                     // todo: fatal unless (proc count==0)
                     pgrep_proc(proc)
-                    enter('Cleanup')
+                    leave('Cleanup')
                 } // script
             } // timeout
         } // teardown
@@ -159,7 +159,8 @@
                 'prometheus.pushgateway.enabled=false',
             ].join(',')
 
-            sh("""
+            sh(label  : 'Deploy common infrastructure',
+               script : """
     helm repo add onf https://charts.opencord.org
     helm repo update
 
@@ -324,7 +325,7 @@
                     ],
                     logLevel: logLevel
                 ])
-                enter('setOnosLogLevels')
+                leave('setOnosLogLevels')
             } // script
         } // if (teardown)
     } // stage('Deploy Voltha')
@@ -333,7 +334,9 @@
     // -----------------------------------------------------------------------
     stage("Run test ${testTarget} on workflow ${workflow}")
     {
-        sh """
+        sh(
+            label : 'Monitor using mem_consumption.py',
+            script : """
         echo -e "\n** Monitor using mem_consumption.py ?"
 
     if [ ${withMonitoring} = true ] ; then
@@ -355,7 +358,7 @@
     fi
 
     echo -e '** Monitor memory consumption: LEAVE\n'
-    """
+    """)
 
         sh """
         echo -e "\n** make testTarget=[${testTarget}]"
@@ -369,7 +372,9 @@
 
         getPodsInfo("${logsDir}")
 
-        sh """
+        sh(
+            label : 'Gather robot Framework logs',
+            script : """
       echo -e '\n** Gather robot Framework logs: ENTER'
       # set +e
       # collect logs collected in the Robot Framework StartLogging keyword
@@ -378,11 +383,13 @@
       rm -f *-combined.log
 
       echo -e '** Gather robot Framework logs: LEAVE\n'
-    """
+    """)
 
     // -----------------------------------------------------------------------
     // -----------------------------------------------------------------------
-    sh """
+        sh(
+            label  : 'Monitor pod-mem-consumption',
+            script : """
     echo -e '** Monitor pod-mem-consumption: ENTER'
     if [ ${withMonitoring} = true ] ; then
       cat <<EOM
@@ -401,7 +408,7 @@
       python scripts/mem_consumption.py -o $WORKSPACE/voltha-pods-mem-consumption-${workflow} -a 0.0.0.0:31301 -n ${volthaNamespace}
     fi
     echo -e '** Monitor pod-mem-consumption: LEAVE\n'
-    """
+    """)
     } // stage
 
     return
@@ -598,7 +605,7 @@
                     // Announce ourselves for log usability
                     enter('Parse and execute tests')
 
-                    def tests = readYaml text: testTargets
+                    def tests = readYaml text: testTargets // typeof == Map (?)
                     println("** [DEBUG]: tests=$tests")
 
                     // Display expected tests for times when output goes dark
@@ -632,7 +639,7 @@
 """)
 
                         try {
-                            leave("execute_test (target=$target)")
+                            enter("execute_test (target=$target)")
                             execute_test(target, workflow, testLogging, teardown, flags)
                         }
                         catch (Exception err) {
