diff --git a/ci-scripts/Jenkinsfile-gitlab b/ci-scripts/Jenkinsfile-gitlab
index e02f071c2ff2a2e60e35df3d412353dfb57ad483..f170aa081f9a6ac019e3841e683a9c43c059d180 100644
--- a/ci-scripts/Jenkinsfile-gitlab
+++ b/ci-scripts/Jenkinsfile-gitlab
@@ -118,7 +118,7 @@ pipeline {
         stage ("Start VM -- basic-sim") {
             steps {
                 timeout (time: 5, unit: 'MINUTES') {
-                    sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
+                    sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
                 }
             }
         }
@@ -126,7 +126,7 @@ pipeline {
         stage ("Start VM -- gnb-usrp") {
             steps {
                 timeout (time: 5, unit: 'MINUTES') {
-                    sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
+                    sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
                 }
             }
         }
@@ -134,7 +134,7 @@ pipeline {
         stage ("Start VM -- nu-ue-usrp") {
             steps {
                 timeout (time: 5, unit: 'MINUTES') {
-                    sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
+                    sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
                 }
             }
         }
@@ -142,7 +142,7 @@ pipeline {
         stage ("Start VM -- enb-usrp") {
             steps {
                 timeout (time: 5, unit: 'MINUTES') {
-                    sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
+                    sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
                 }
             }
         }
@@ -150,7 +150,7 @@ pipeline {
         stage ("Start VM -- enb-ethernet") {
             steps {
                 timeout (time: 5, unit: 'MINUTES') {
-                    sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
+                    sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
                 }
             }
         }
@@ -158,7 +158,7 @@ pipeline {
         stage ("Start VM -- ue-ethernet") {
             steps {
                 timeout (time: 5, unit: 'MINUTES') {
-                    sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
+                    sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
                 }
             }
         }
@@ -166,7 +166,7 @@ pipeline {
         stage ("Start VM -- phy-sim") {
             steps {
                 timeout (time: 5, unit: 'MINUTES') {
-                    sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
+                    sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
                 }
             }
         }
@@ -174,7 +174,7 @@ pipeline {
         stage ("Start VM -- cppcheck") {
             steps {
                 timeout (time: 5, unit: 'MINUTES') {
-                    sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
+                    sh "./ci-scripts/oai-ci-vm-tool build --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
                 }
             }
         }
@@ -185,7 +185,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Analysis with cppcheck") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/waitBuildOnVM.sh --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
+                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
                             }
                         }
                     }
@@ -194,7 +194,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Build eNb-USRP") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/waitBuildOnVM.sh --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
+                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
                             }
                         }
                     }
@@ -203,7 +203,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Build basic-sim") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/waitBuildOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
+                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
                             }
                         }
                     }
@@ -212,7 +212,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Build eNb-ethernet") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/waitBuildOnVM.sh --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
+                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
                             }
                         }
                     }
@@ -221,7 +221,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Build UE-ethernet") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/waitBuildOnVM.sh --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
+                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
                             }
                         }
                     }
@@ -230,7 +230,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Build gNb-usrp") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/waitBuildOnVM.sh --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
+                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
                             }
                         }
                     }
@@ -239,7 +239,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Build nr-UE-usrp") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/waitBuildOnVM.sh --workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
+                                sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
                             }
                         }
                     }
@@ -248,7 +248,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Build phy-sim") {
                             timeout (time: 20, unit: 'MINUTES') {
-                               sh "./ci-scripts/waitBuildOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
+                               sh "./ci-scripts/oai-ci-vm-tool wait --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
                             }
                         }
                     }
@@ -286,7 +286,7 @@ pipeline {
                             archiveArtifacts artifacts: 'archives/vm_build_logs.zip'
                         }
                         if ("MERGE".equals(env.gitlabActionType)) {
-                            sh "./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
+                            sh "./ci-scripts/oai-ci-vm-tool report-build --workspace $WORKSPACE --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
                             sh "./ci-scripts/checkAddedWarnings.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}"
                             def res=readFile('./oai_warning_files.txt').trim();
                             if ("0".equals(res)) {
@@ -297,7 +297,7 @@ pipeline {
                                 addGitLabMRComment comment: message
                             }
                         } else {
-                            sh "./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
+                            sh "./ci-scripts/oai-ci-vm-tool report-build --workspace $WORKSPACE --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
                         }
                         if(fileExists('build_results.html')) {
                             sh "sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' build_results.html"
@@ -314,7 +314,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Test phy-sim") {
                             timeout (time: 45, unit: 'MINUTES') {
-                                sh "./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
+                                sh "./ci-scripts/oai-ci-vm-tool test --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
                             }
                         }
                     }
@@ -323,7 +323,7 @@ pipeline {
                     steps {
                         gitlabCommitStatus(name: "Test basic-sim") {
                             timeout (time: 20, unit: 'MINUTES') {
-                                sh "./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
+                                sh "./ci-scripts/oai-ci-vm-tool test --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
                             }
                         }
                     }
@@ -518,9 +518,9 @@ pipeline {
                         if(fileExists('archives/vm_tests_logs.zip')) {
                             archiveArtifacts artifacts: 'archives/vm_tests_logs.zip'
                             if ("MERGE".equals(env.gitlabActionType)) {
-                                sh "./ci-scripts/reportTestLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
+                                sh "./ci-scripts/oai-ci-vm-tool report-test --workspace $WORKSPACE --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
                             } else {
-                                sh "./ci-scripts/reportTestLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
+                                sh "./ci-scripts/oai-ci-vm-tool report-test --workspace $WORKSPACE --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
                             }
                             if(fileExists('test_simulator_results.html')) {
                                 sh "sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' test_simulator_results.html"
@@ -533,7 +533,7 @@ pipeline {
         }
         stage ("Destroy all Virtual Machines") {
             steps {
-                sh "./ci-scripts/destroyAllRunningVM.sh --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
+                sh "./ci-scripts/oai-ci-vm-tool destroy --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
             }
         }
     }
@@ -541,7 +541,7 @@ pipeline {
         always {
             script {
                 // Stage destroy may not be run if error in previous stage
-                sh "./ci-scripts/destroyAllRunningVM.sh --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
+                sh "./ci-scripts/oai-ci-vm-tool destroy --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
                 emailext attachmentsPattern: '*results*.html',
                      body: '''Hi,
 Here are attached HTML report files for $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
diff --git a/ci-scripts/buildOnVM.sh b/ci-scripts/buildOnVM.sh
index 456d8741546977dde381db5fdf3c566ca8bbfc4e..aed449f180f59fe1d0ba49ecd3e98c9062d09243 100755
--- a/ci-scripts/buildOnVM.sh
+++ b/ci-scripts/buildOnVM.sh
@@ -20,8 +20,8 @@
 # *      contact@openairinterface.org
 # */
 
-function usage {
-    echo "OAI VM Build Check script"
+function build_usage {
+    echo "OAI CI VM script"
     echo "   Original Author: Raphael Defosseux"
     echo "   Requirements:"
     echo "     -- uvtool uvtool-libvirt apt-cacher"
@@ -31,9 +31,9 @@ function usage {
     echo ""
     echo "Usage:"
     echo "------"
-    echo "    buildOnVM.sh [OPTIONS]"
+    echo "    oai-ci-vm-tool build [OPTIONS]"
     echo ""
-    echo "Options:"
+    echo "Mandatory Options:"
     echo "--------"
     echo "    --job-name #### OR -jn ####"
     echo "    Specify the name of the Jenkins job."
@@ -44,14 +44,9 @@ function usage {
     echo "    --workspace #### OR -ws ####"
     echo "    Specify the workspace."
     echo ""
-    echo "    --variant enb-usrp     OR -v1"
-    echo "    --variant basic-sim    OR -v2"
-    echo "    --variant phy-sim      OR -v3"
-    echo "    --variant cppcheck     OR -v4"
-    echo "    --variant gnb-usrp     OR -v5"
-    echo "    --variant nu-ue-usrp   OR -v6"
-    echo "    --variant enb-ethernet OR -v7"
-    echo "    --variant ue-ethernet  OR -v8"
+    echo "Options:"
+    echo "--------"
+    variant_usage
     echo "    Specify the variant to build."
     echo ""
     echo "    --keep-vm-alive OR -k"
@@ -65,414 +60,120 @@ function usage {
     echo ""
 }
 
-function variant_usage {
-    echo "OAI VM Build Check script"
-    echo "   Original Author: Raphael Defosseux"
-    echo ""
-    echo "    --variant enb-usrp     OR -v1"
-    echo "    --variant basic-sim    OR -v2"
-    echo "    --variant phy-sim      OR -v3"
-    echo "    --variant cppcheck     OR -v4"
-    echo "    --variant gnb-usrp     OR -v5"
-    echo "    --variant nu-ue-usrp   OR -v6"
-    echo "    --variant enb-ethernet OR -v7"
-    echo "    --variant ue-ethernet  OR -v8"
-    echo ""
-}
-
-if [ $# -lt 1 ] || [ $# -gt 9 ]
-then
-    echo "Syntax Error: not the correct number of arguments"
-    echo ""
-    usage
-    exit 1
-fi
-
-VM_TEMPLATE=ci-
-JOB_NAME=XX
-BUILD_ID=XX
-VM_NAME=ci-enb-usrp
-VM_MEMORY=2048
-VM_CPU=4
-ARCHIVES_LOC=enb_usrp
-LOG_PATTERN=.Rel15.txt
-NB_PATTERN_FILES=4
-BUILD_OPTIONS="--eNB -w USRP"
-KEEP_VM_ALIVE=0
-DAEMON=0
-
-while [[ $# -gt 0 ]]
-do
-key="$1"
-
-case $key in
-    -h|--help)
-    shift
-    usage
-    exit 0
-    ;;
-    -jn|--job-name)
-    JOB_NAME="$2"
-    shift
-    shift
-    ;;
-    -id|--build-id)
-    BUILD_ID="$2"
-    shift
-    shift
-    ;;
-    -ws|--workspace)
-    JENKINS_WKSP="$2"
-    shift
-    shift
-    ;;
-    -k|--keep-vm-alive)
-    KEEP_VM_ALIVE=1
-    shift
-    ;;
-    -D|--daemon)
-    DAEMON=1
-    shift
-    ;;
-    -v1)
-    VM_NAME=ci-enb-usrp
-    ARCHIVES_LOC=enb_usrp
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=4
-    BUILD_OPTIONS="--eNB -w USRP --mu"
-    shift
-    ;;
-    -v2)
-    VM_NAME=ci-basic-sim
-    ARCHIVES_LOC=basic_sim
-    LOG_PATTERN=basic_simulator
-    NB_PATTERN_FILES=2
-    BUILD_OPTIONS="--basic-simulator"
-    VM_MEMORY=8192
-    VM_CPU=4
-    shift
-    ;;
-    -v3)
-    VM_NAME=ci-phy-sim
-    ARCHIVES_LOC=phy_sim
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=6
-    BUILD_OPTIONS="--phy_simulators"
-    shift
-    ;;
-    -v4)
-    VM_NAME=ci-cppcheck
-    VM_MEMORY=8192
-    ARCHIVES_LOC=cppcheck
-    LOG_PATTERN=cppcheck.xml
-    NB_PATTERN_FILES=1
-    BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
-    shift
-    ;;
-    -v5)
-    VM_NAME=ci-gnb-usrp
-    ARCHIVES_LOC=gnb_usrp
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=4
-    BUILD_OPTIONS="--gNB -w USRP"
-    shift
-    ;;
-    -v6)
-    VM_NAME=ci-ue-nr-usrp
-    ARCHIVES_LOC=nrue_usrp
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=4
-    BUILD_OPTIONS="--nrUE -w USRP"
-    shift
-    ;;
-    -v7)
-    VM_NAME=ci-enb-ethernet
-    ARCHIVES_LOC=enb_eth
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=6
-    BUILD_OPTIONS="--eNB -t ETHERNET --noS1"
-    shift
-    ;;
-    -v8)
-    VM_NAME=ci-ue-ethernet
-    ARCHIVES_LOC=ue_eth
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=6
-    BUILD_OPTIONS="--UE -t ETHERNET --noS1"
-    shift
-    ;;
-    --variant)
-    variant="$2"
-    case $variant in
-        enb-usrp)
-        VM_NAME=ci-enb-usrp
-        ARCHIVES_LOC=enb_usrp
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=4
-        BUILD_OPTIONS="--eNB -w USRP --mu"
-        ;;
-        basic-sim)
-        VM_NAME=ci-basic-sim
-        ARCHIVES_LOC=basic_sim
-        LOG_PATTERN=basic_simulator
-        NB_PATTERN_FILES=2
-        BUILD_OPTIONS="--basic-simulator"
-        VM_MEMORY=8192
-        VM_CPU=4
-        ;;
-        phy-sim)
-        VM_NAME=ci-phy-sim
-        ARCHIVES_LOC=phy_sim
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=6
-        BUILD_OPTIONS="--phy_simulators"
-        ;;
-        cppcheck)
-        VM_NAME=ci-cppcheck
-        VM_MEMORY=8192
-        ARCHIVES_LOC=cppcheck
-        LOG_PATTERN=cppcheck.xml
-        NB_PATTERN_FILES=1
-        BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
-        ;;
-        gnb-usrp)
-        VM_NAME=ci-gnb-usrp
-        ARCHIVES_LOC=gnb_usrp
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=4
-        BUILD_OPTIONS="--gNB -w USRP"
-        ;;
-        nu-ue-usrp)
-        VM_NAME=ci-ue-nr-usrp
-        ARCHIVES_LOC=nrue_usrp
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=4
-        BUILD_OPTIONS="--nrUE -w USRP"
-        ;;
-        enb-ethernet)
-        VM_NAME=ci-enb-ethernet
-        ARCHIVES_LOC=enb_eth
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=6
-        BUILD_OPTIONS="--eNB -t ETHERNET --noS1"
-        ;;
-        ue-ethernet)
-        VM_NAME=ci-ue-ethernet
-        ARCHIVES_LOC=ue_eth
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=6
-        BUILD_OPTIONS="--UE -t ETHERNET --noS1"
-        ;;
-        *)
-        echo ""
-        echo "Syntax Error: Invalid Variant option -> $variant"
-        echo ""
-        variant_usage
-        exit 1
-    esac
-    shift
-    shift
-    ;;
-    *)
-    echo "Syntax Error: unknown option: $key"
-    echo ""
-    usage
-    exit 1
-esac
-done
-
-if [ ! -f $JENKINS_WKSP/localZip.zip ]
-then
-    echo "Missing localZip.zip file!"
-    exit 1
-fi
-if [ ! -f /etc/apt/apt.conf.d/01proxy ]
-then
-    echo "Missing /etc/apt/apt.conf.d/01proxy file!"
-    echo "Is apt-cacher installed and configured?"
-    exit 1
-fi
-
-if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
-then
-    VM_TEMPLATE=ci-
-else
-    VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
-fi
-
-VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"`
-VM_CMDS=${VM_NAME}_cmds.txt
-ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC}
-
-echo "VM_NAME             = $VM_NAME"
-echo "VM_CMD_FILE         = $VM_CMDS"
-echo "JENKINS_WKSP        = $JENKINS_WKSP"
-echo "ARCHIVES_LOC        = $ARCHIVES_LOC"
-echo "BUILD_OPTIONS       = $BUILD_OPTIONS"
-
-IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
+function build_on_vm {
+    if [ ! -f $JENKINS_WKSP/localZip.zip ]
+    then
+        echo "Missing localZip.zip file!"
+        STATUS=1
+        return
+    fi
+    if [ ! -f /etc/apt/apt.conf.d/01proxy ]
+    then
+        echo "Missing /etc/apt/apt.conf.d/01proxy file!"
+        echo "Is apt-cacher installed and configured?"
+        STATUS=1
+        return
+    fi
 
-if [ $IS_VM_ALIVE -eq 0 ]
-then
     echo "############################################################"
-    echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
+    echo "OAI CI VM script"
     echo "############################################################"
-    uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
-fi
-
-echo "Waiting for VM to be started"
-uvt-kvm wait $VM_NAME --insecure
 
-VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
-echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
+    echo "VM_NAME             = $VM_NAME"
+    echo "VM_CMD_FILE         = $VM_CMDS"
+    echo "JENKINS_WKSP        = $JENKINS_WKSP"
+    echo "ARCHIVES_LOC        = $ARCHIVES_LOC"
+    echo "BUILD_OPTIONS       = $BUILD_OPTIONS"
 
-echo "############################################################"
-echo "Copying GIT repo into VM ($VM_NAME)" 
-echo "############################################################"
-scp -o StrictHostKeyChecking=no localZip.zip ubuntu@$VM_IP_ADDR:/home/ubuntu
-scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$VM_IP_ADDR:/home/ubuntu
+    IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
 
-echo "############################################################"
-echo "Running install and build script on VM ($VM_NAME)"
-echo "############################################################"
-echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
-echo "touch /home/ubuntu/.hushlogin" >> $VM_CMDS
-if [[ "$VM_NAME" == *"-cppcheck"* ]]
-then
-    if [ $DAEMON -eq 0 ]
-    then
-        echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS
-        echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
-        echo "sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS
-    else
-        echo "echo \"sudo apt-get --yes --quiet install zip daemon cppcheck \"" >> $VM_CMDS
-        echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
-        echo "sudo apt-get --yes install zip daemon cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS
-    fi
-else
-    if [ $DAEMON -eq 0 ]
+    if [ $IS_VM_ALIVE -eq 0 ]
     then
-        echo "echo \"sudo apt-get --yes --quiet install zip subversion libboost-dev \"" >> $VM_CMDS
-        echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
-        echo "sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
-    else
-        echo "echo \"sudo apt-get --yes --quiet install zip daemon subversion libboost-dev \"" >> $VM_CMDS
-        echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
-        echo "sudo apt-get --yes install zip daemon subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
-    fi
-fi
-echo "mkdir tmp" >> $VM_CMDS
-echo "cd tmp" >> $VM_CMDS
-echo "echo \"unzip -qq -DD ../localZip.zip\"" >> $VM_CMDS
-echo "unzip -qq -DD ../localZip.zip" >> $VM_CMDS
-if [[ "$VM_NAME" == *"-cppcheck"* ]]
-then
-    echo "mkdir cmake_targets/log" >> $VM_CMDS
-    echo "chmod 777 cmake_targets/log" >> $VM_CMDS
-    echo "cp /home/ubuntu/zip-install.txt cmake_targets/log" >> $VM_CMDS
-    echo "echo \"cppcheck $BUILD_OPTIONS . \"" >> $VM_CMDS
-    if [ $DAEMON -eq 0 ]
-    then
-        echo "cppcheck $BUILD_OPTIONS . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt" >> $VM_CMDS
-    else
-        echo "echo \"cppcheck $BUILD_OPTIONS .\" > ./my-vm-build.sh" >> $VM_CMDS
-        echo "chmod 775 ./my-vm-build.sh " >> $VM_CMDS
-        echo "sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp -O /home/ubuntu/tmp/cmake_targets/log/cppcheck_build.txt -E /home/ubuntu/tmp/cmake_targets/log/cppcheck.xml ./my-vm-build.sh" >> $VM_CMDS
-    fi
-else
-    echo "echo \"source oaienv\"" >> $VM_CMDS
-    echo "source oaienv" >> $VM_CMDS
-    echo "cd cmake_targets/" >> $VM_CMDS
-    echo "mkdir log" >> $VM_CMDS
-    echo "chmod 777 log" >> $VM_CMDS
-    echo "cp /home/ubuntu/zip-install.txt log" >> $VM_CMDS
-    if [ $DAEMON -eq 0 ]
-    then
-        echo "echo \"./build_oai -I $BUILD_OPTIONS \"" >> $VM_CMDS
-        echo "./build_oai -I $BUILD_OPTIONS > log/install-build.txt 2>&1" >> $VM_CMDS
-    else
-        echo "echo \"./build_oai -I $BUILD_OPTIONS\" > ./my-vm-build.sh" >> $VM_CMDS
-        echo "chmod 775 ./my-vm-build.sh " >> $VM_CMDS
-        echo "echo \"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh\"" >> $VM_CMDS
-        echo "sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh" >> $VM_CMDS
+        echo "VM_MEMORY           = $VM_MEMORY MBytes"
+        echo "VM_CPU              = $VM_CPU"
+        echo "############################################################"
+        echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
+        echo "############################################################"
+        uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
     fi
-fi
-ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
-if [ $DAEMON -eq 1 ]
-then
-    rm -f $VM_CMDS
-    echo "STATUS is OK"
-    exit 0
-fi
-
-echo "############################################################"
-echo "Creating a tmp folder to store results and artifacts"
-echo "############################################################"
-if [ ! -d $JENKINS_WKSP/archives ]
-then
-    mkdir $JENKINS_WKSP/archives
-fi
 
-if [ ! -d $ARCHIVES_LOC ]
-then
-    mkdir $ARCHIVES_LOC
-fi
+    echo "Waiting for VM to be started"
+    uvt-kvm wait $VM_NAME --insecure
 
-scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.txt $ARCHIVES_LOC
-if [[ "$VM_NAME" == *"-cppcheck"* ]]
-then
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.xml $ARCHIVES_LOC
-fi
+    VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
+    echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
 
-if [ $KEEP_VM_ALIVE -eq 0 ]
-then
     echo "############################################################"
-    echo "Destroying VM"
+    echo "Copying GIT repo into VM ($VM_NAME)" 
     echo "############################################################"
-    uvt-kvm destroy $VM_NAME
-    ssh-keygen -R $VM_IP_ADDR
-fi
-rm -f $VM_CMDS
-
-echo "############################################################"
-echo "Checking build status" 
-echo "############################################################"
+    scp -o StrictHostKeyChecking=no $JENKINS_WKSP/localZip.zip ubuntu@$VM_IP_ADDR:/home/ubuntu
+    scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$VM_IP_ADDR:/home/ubuntu
 
-LOG_FILES=`ls $ARCHIVES_LOC/*.txt $ARCHIVES_LOC/*.xml`
-STATUS=0
-NB_FOUND_FILES=0
-
-for FULLFILE in $LOG_FILES 
-do
-    if [[ $FULLFILE == *"$LOG_PATTERN"* ]]
+    echo "############################################################"
+    echo "Running install and build script on VM ($VM_NAME)"
+    echo "############################################################"
+    echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
+    echo "touch /home/ubuntu/.hushlogin" >> $VM_CMDS
+    if [[ "$VM_NAME" == *"-cppcheck"* ]]
     then
-        filename=$(basename -- "$FULLFILE")
-        if [ "$LOG_PATTERN" == ".Rel15.txt" ]
+        if [ $DAEMON -eq 0 ]
         then
-            PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"`
+            echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS
+            echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
+            echo "sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS
+        else
+            echo "echo \"sudo apt-get --yes --quiet install zip daemon cppcheck \"" >> $VM_CMDS
+            echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
+            echo "sudo apt-get --yes install zip daemon cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS
         fi
-        if [ "$LOG_PATTERN" == "basic_simulator" ]
+    else
+        if [ $DAEMON -eq 0 ]
         then
-            PASS_PATTERN="lte-"
+            echo "echo \"sudo apt-get --yes --quiet install zip subversion libboost-dev \"" >> $VM_CMDS
+            echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
+            echo "sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
+        else
+            echo "echo \"sudo apt-get --yes --quiet install zip daemon subversion libboost-dev \"" >> $VM_CMDS
+            echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
+            echo "sudo apt-get --yes install zip daemon subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
         fi
-        if [ "$LOG_PATTERN" == "cppcheck.xml" ]
+    fi
+    echo "mkdir tmp" >> $VM_CMDS
+    echo "cd tmp" >> $VM_CMDS
+    echo "echo \"unzip -qq -DD ../localZip.zip\"" >> $VM_CMDS
+    echo "unzip -qq -DD ../localZip.zip" >> $VM_CMDS
+    if [[ "$VM_NAME" == *"-cppcheck"* ]]
+    then
+        echo "mkdir cmake_targets/log" >> $VM_CMDS
+        echo "chmod 777 cmake_targets/log" >> $VM_CMDS
+        echo "cp /home/ubuntu/zip-install.txt cmake_targets/log" >> $VM_CMDS
+        echo "echo \"cppcheck $BUILD_OPTIONS . \"" >> $VM_CMDS
+        if [ $DAEMON -eq 0 ]
         then
-            PASS_PATTERN="results version"
-            LOCAL_STAT=`egrep -c "$PASS_PATTERN" $FULLFILE`
+            echo "cppcheck $BUILD_OPTIONS . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt" >> $VM_CMDS
         else
-            LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE`
+            echo "echo \"cppcheck $BUILD_OPTIONS .\" > ./my-vm-build.sh" >> $VM_CMDS
+            echo "chmod 775 ./my-vm-build.sh " >> $VM_CMDS
+            echo "sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp -O /home/ubuntu/tmp/cmake_targets/log/cppcheck_build.txt -E /home/ubuntu/tmp/cmake_targets/log/cppcheck.xml ./my-vm-build.sh" >> $VM_CMDS
+        fi
+    else
+        echo "echo \"source oaienv\"" >> $VM_CMDS
+        echo "source oaienv" >> $VM_CMDS
+        echo "cd cmake_targets/" >> $VM_CMDS
+        echo "mkdir log" >> $VM_CMDS
+        echo "chmod 777 log" >> $VM_CMDS
+        echo "cp /home/ubuntu/zip-install.txt log" >> $VM_CMDS
+        if [ $DAEMON -eq 0 ]
+        then
+            echo "echo \"./build_oai -I $BUILD_OPTIONS \"" >> $VM_CMDS
+            echo "./build_oai -I $BUILD_OPTIONS > log/install-build.txt 2>&1" >> $VM_CMDS
+        else
+            echo "echo \"./build_oai -I $BUILD_OPTIONS\" > ./my-vm-build.sh" >> $VM_CMDS
+            echo "chmod 775 ./my-vm-build.sh " >> $VM_CMDS
+            echo "echo \"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh\"" >> $VM_CMDS
+            echo "sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh" >> $VM_CMDS
         fi
-        if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
-        NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
     fi
-done
-
-if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi
-
-if [ $STATUS -eq 0 ]
-then
-    echo "STATUS seems OK"
-else
-    echo "STATUS failed?"
-fi
-exit $STATUS
+    ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+    rm -f $VM_CMDS
+}
diff --git a/ci-scripts/createVM.sh b/ci-scripts/createVM.sh
index 682d485e2121441fa751cc1eeb904c0a81598d6c..192008d86723d357f7a6dcb1d75674f3cf657377 100755
--- a/ci-scripts/createVM.sh
+++ b/ci-scripts/createVM.sh
@@ -20,8 +20,8 @@
 # *      contact@openairinterface.org
 # */
 
-function usage {
-    echo "OAI VM Creation script"
+function create_usage {
+    echo "OAI CI VM script"
     echo "   Original Author: Raphael Defosseux"
     echo "   Requirements:"
     echo "     -- uvtool uvtool-libvirt apt-cacher"
@@ -31,9 +31,9 @@ function usage {
     echo ""
     echo "Usage:"
     echo "------"
-    echo "    createVM.sh [OPTIONS]"
+    echo "    oai-ci-vm-tool create [OPTIONS]"
     echo ""
-    echo "Options:"
+    echo "Mandatory Options:"
     echo "--------"
     echo "    --job-name #### OR -jn ####"
     echo "    Specify the name of the Jenkins job."
@@ -41,14 +41,7 @@ function usage {
     echo "    --build-id #### OR -id ####"
     echo "    Specify the build ID of the Jenkins job."
     echo ""
-    echo "    --variant enb-usrp     OR -v1"
-    echo "    --variant basic-sim    OR -v2"
-    echo "    --variant phy-sim      OR -v3"
-    echo "    --variant cppcheck     OR -v4"
-    echo "    --variant gnb-usrp     OR -v5"
-    echo "    --variant nu-ue-usrp   OR -v6"
-    echo "    --variant enb-ethernet OR -v7"
-    echo "    --variant ue-ethernet  OR -v8"
+    variant_usage
     echo "    Specify the variant to build."
     echo ""
     echo "    --help OR -h"
@@ -56,158 +49,21 @@ function usage {
     echo ""
 }
 
-function variant_usage {
-    echo "OAI VM Build Check script"
-    echo "   Original Author: Raphael Defosseux"
-    echo ""
-    echo "    --variant enb-usrp     OR -v1"
-    echo "    --variant basic-sim    OR -v2"
-    echo "    --variant phy-sim      OR -v3"
-    echo "    --variant cppcheck     OR -v4"
-    echo "    --variant gnb-usrp     OR -v5"
-    echo "    --variant nu-ue-usrp   OR -v6"
-    echo "    --variant enb-ethernet OR -v7"
-    echo "    --variant ue-ethernet  OR -v8"
-    echo ""
-}
-
-if [ $# -lt 1 ] || [ $# -gt 6 ]
-then
-    echo "Syntax Error: not the correct number of arguments"
-    echo ""
-    usage
-    exit 1
-fi
-
-VM_TEMPLATE=ci-
-JOB_NAME=XX
-BUILD_ID=XX
-VM_NAME=ci-enb-usrp
-VM_MEMORY=2048
-VM_CPU=4
+function create_vm {
+    echo "############################################################"
+    echo "OAI CI VM script"
+    echo "############################################################"
+    echo "VM_NAME             = $VM_NAME"
+    echo "VM_MEMORY           = $VM_MEMORY MBytes"
+    echo "VM_CPU              = $VM_CPU"
 
-while [[ $# -gt 0 ]]
-do
-key="$1"
+    echo "############################################################"
+    echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
+    echo "############################################################"
+    uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
+    echo "Waiting for VM to be started"
+    uvt-kvm wait $VM_NAME --insecure
 
-case $key in
-    -h|--help)
-    shift
-    usage
-    exit 0
-    ;;
-    -jn|--job-name)
-    JOB_NAME="$2"
-    shift
-    shift
-    ;;
-    -id|--build-id)
-    BUILD_ID="$2"
-    shift
-    shift
-    ;;
-    -v1)
-    VM_NAME=ci-enb-usrp
-    shift
-    ;;
-    -v2)
-    VM_NAME=ci-basic-sim
-    VM_MEMORY=8192
-    shift
-    ;;
-    -v3)
-    VM_NAME=ci-phy-sim
-    shift
-    ;;
-    -v4)
-    VM_NAME=ci-cppcheck
-    VM_MEMORY=8192
-    shift
-    ;;
-    -v5)
-    VM_NAME=ci-gnb-usrp
-    shift
-    ;;
-    -v6)
-    VM_NAME=ci-ue-nr-usrp
-    shift
-    ;;
-    -v7)
-    VM_NAME=ci-enb-ethernet
-    shift
-    ;;
-    -v8)
-    VM_NAME=ci-ue-ethernet
-    shift
-    ;;
-    --variant)
-    variant="$2"
-    case $variant in
-        enb-usrp)
-        VM_NAME=ci-enb-usrp
-        ;;
-        basic-sim)
-        VM_NAME=ci-basic-sim
-        VM_MEMORY=8192
-        ;;
-        phy-sim)
-        VM_NAME=ci-phy-sim
-        ;;
-        cppcheck)
-        VM_NAME=ci-cppcheck
-        VM_MEMORY=8192
-        ;;
-        gnb-usrp)
-        VM_NAME=ci-gnb-usrp
-        ;;
-        nu-ue-usrp)
-        VM_NAME=ci-ue-nr-usrp
-        ;;
-        enb-ethernet)
-        VM_NAME=ci-enb-ethernet
-        ;;
-        ue-ethernet)
-        VM_NAME=ci-ue-ethernet
-        ;;
-        *)
-        echo ""
-        echo "Syntax Error: Invalid Variant option -> $variant"
-        echo ""
-        variant_usage
-        exit 1
-    esac
-    shift
-    shift
-    ;;
-    *)
-    echo "Syntax Error: unknown option: $key"
-    echo ""
-    usage
-    exit 1
-esac
-done
-
-if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
-then
-    VM_TEMPLATE=ci-
-else
-    VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
-fi
-
-VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"`
-VM_CMDS=${VM_NAME}_cmds.txt
-
-echo "VM_NAME             = $VM_NAME"
-echo "VM_MEMORY           = $VM_MEMORY MBytes"
-echo "VM_CPU              = $VM_CPU"
-
-echo "############################################################"
-echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
-echo "############################################################"
-uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
-echo "Waiting for VM to be started"
-uvt-kvm wait $VM_NAME --insecure
-
-VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
-echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
-exit 0
+    VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
+    echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
+}
diff --git a/ci-scripts/destroyAllRunningVM.sh b/ci-scripts/destroyAllRunningVM.sh
index 5e152bc59083b9c740f4a9674d3c6e78f03d8215..76a7fd0b508fd755a70be54e9c0a40f5b5a8ea84 100755
--- a/ci-scripts/destroyAllRunningVM.sh
+++ b/ci-scripts/destroyAllRunningVM.sh
@@ -20,15 +20,17 @@
 # *      contact@openairinterface.org
 # */
 
-function usage {
-    echo "OAI VM Destroy script"
+function destroy_usage {
+    echo "OAI CI VM script"
     echo "   Original Author: Raphael Defosseux"
+    echo "   Requirements:"
+    echo "     -- uvtool uvtool-libvirt apt-cacher"
     echo ""
     echo "Usage:"
     echo "------"
-    echo "    destroyAllRunningVM.sh [OPTIONS]"
+    echo "    oai-ci-vm-tool destroy [OPTIONS]"
     echo ""
-    echo "Options:"
+    echo "Mandatory Options:"
     echo "--------"
     echo "    --job-name #### OR -jn ####"
     echo "    Specify the name of the Jenkins job."
@@ -36,66 +38,26 @@ function usage {
     echo "    --build-id #### OR -id ####"
     echo "    Specify the build ID of the Jenkins job."
     echo ""
+    echo "Options:"
+    echo "--------"
     echo "    --help OR -h"
     echo "    Print this help message."
     echo ""
 }
 
-if [ $# -gt 4 ]
-then
-    echo "Syntax Error: not the correct number of arguments"
-    echo ""
-    usage
-    exit 1
-fi
-
-VM_TEMPLATE=ci-
-JOB_NAME=XX
-BUILD_ID=XX
-
-while [[ $# -gt 0 ]]
-do
-key="$1"
-case $key in
-    -h|--help)
-    shift
-    usage
-    exit 0
-    ;;
-    -jn|--job-name)
-    JOB_NAME="$2"
-    shift
-    shift
-    ;;
-    -id|--build-id)
-    BUILD_ID="$2"
-    shift
-    shift
-    ;;
-    *)
-    echo "Syntax Error: unknown option: $key"
-    echo ""
-    usage
-    exit 1
-esac
-done
-
-if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
-then
-    VM_TEMPLATE=ci-
-else
-    VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
-fi
-
-LIST_CI_VM=`uvt-kvm list | grep $VM_TEMPLATE`
-
-for CI_VM in $LIST_CI_VM
-do
-    VM_IP_ADDR=`uvt-kvm ip $CI_VM`
-    echo "VM to destroy: $CI_VM -- IP $VM_IP_ADDR"
-    uvt-kvm destroy $CI_VM
-    ssh-keygen -R $VM_IP_ADDR
-done
-
-exit 0
-
+function destroy_vm {
+    echo "############################################################"
+    echo "OAI CI VM script"
+    echo "############################################################"
+    echo "VM_TEMPLATE         = $VM_TEMPLATE"
+
+    LIST_CI_VM=`uvt-kvm list | grep $VM_TEMPLATE`
+
+    for CI_VM in $LIST_CI_VM
+    do
+        VM_IP_ADDR=`uvt-kvm ip $CI_VM`
+        echo "VM to destroy: $CI_VM -- IP $VM_IP_ADDR"
+        uvt-kvm destroy $CI_VM
+        ssh-keygen -R $VM_IP_ADDR
+    done
+}
diff --git a/ci-scripts/oai-ci-vm-tool b/ci-scripts/oai-ci-vm-tool
new file mode 100755
index 0000000000000000000000000000000000000000..8d3dbb4ddd132ca172fd125d4ffe607cf68e02a6
--- /dev/null
+++ b/ci-scripts/oai-ci-vm-tool
@@ -0,0 +1,573 @@
+#!/bin/bash
+#/*
+# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+# * contributor license agreements.  See the NOTICE file distributed with
+# * this work for additional information regarding copyright ownership.
+# * The OpenAirInterface Software Alliance licenses this file to You under
+# * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+# * except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# *      http://www.openairinterface.org/?page_id=698
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# *-------------------------------------------------------------------------------
+# * For more information about the OpenAirInterface (OAI) Software Alliance:
+# *      contact@openairinterface.org
+# */
+
+function top_usage {
+    echo "OAI CI VM script"
+    echo "   Original Author: Raphael Defosseux"
+    echo "   Requirements:"
+    echo "     -- uvtool uvtool-libvirt apt-cacher"
+    echo "     -- xenial image already synced"
+    echo ""
+    echo "Usage:"
+    echo "------"
+    echo "    oai-ci-vm-tool (-h|--help) {create,destroy,build,wait,test,report-build,report-test} ..."
+    echo ""
+}
+
+function variant_usage {
+    echo "    --variant enb-usrp     OR -v1"
+    echo "    --variant basic-sim    OR -v2"
+    echo "    --variant phy-sim      OR -v3"
+    echo "    --variant cppcheck     OR -v4"
+    echo "    --variant gnb-usrp     OR -v5"
+    echo "    --variant nu-ue-usrp   OR -v6"
+    echo "    --variant enb-ethernet OR -v7"
+    echo "    --variant ue-ethernet  OR -v8"
+}
+
+MY_DIR=$(dirname $(readlink -f $0))
+. $MY_DIR/createVM.sh
+. $MY_DIR/buildOnVM.sh
+. $MY_DIR/waitBuildOnVM.sh
+. $MY_DIR/destroyAllRunningVM.sh
+. $MY_DIR/runTestOnVM.sh
+. $MY_DIR/reportBuildLocally.sh
+. $MY_DIR/reportTestLocally.sh
+
+if [ $# -lt 1 ]
+then
+    echo "Syntax Error: too few arguments"
+    echo ""
+    top_usage
+    exit 1
+fi
+
+VM_TEMPLATE=ci-
+JOB_NAME=XX
+BUILD_ID=XX
+VM_NAME=ci-enb-usrp
+VM_MEMORY=2048
+VM_CPU=4
+ARCHIVES_LOC=enb_usrp
+LOG_PATTERN=.Rel15.txt
+NB_PATTERN_FILES=4
+BUILD_OPTIONS="--eNB -w USRP"
+KEEP_VM_ALIVE=0
+RUN_OPTIONS="none"
+DAEMON=0
+MR_TRIG=0
+PU_TRIG=0
+
+HELP_CMD=0
+CREATE_CMD=0
+BUILD_CMD=0
+WAIT_CMD=0
+DESTROY_CMD=0
+TEST_CMD=0
+REPORT_BUILD_CMD=0
+REPORT_TEST_CMD=0
+NBARGS=0
+
+while [[ $# -gt 0 ]]
+do
+key="$1"
+
+case $key in
+    -h|--help)
+    HELP_CMD=1
+    shift
+    ;;
+    create)
+    CREATE_CMD=1
+    # It is implied to keep the VM when creating it
+    KEEP_VM_ALIVE=1
+    shift
+    ;;
+    build)
+    BUILD_CMD=1
+    shift
+    ;;
+    wait)
+    WAIT_CMD=1
+    shift
+    ;;
+    test)
+    TEST_CMD=1
+    shift
+    ;;
+    destroy)
+    DESTROY_CMD=1
+    shift
+    ;;
+    report-build)
+    REPORT_BUILD_CMD=1
+    shift
+    ;;
+    report-test)
+    REPORT_TEST_CMD=1
+    shift
+    ;;
+    -jn|--job-name)
+    JOB_NAME="$2"
+    NBARGS=$[$NBARGS+1]
+    shift
+    shift
+    ;;
+    -id|--build-id)
+    BUILD_ID="$2"
+    NBARGS=$[$NBARGS+2]
+    shift
+    shift
+    ;;
+    -ws|--workspace)
+    JENKINS_WKSP="$2"
+    NBARGS=$[$NBARGS+4]
+    shift
+    shift
+    ;;
+    -k|--keep-vm-alive)
+    KEEP_VM_ALIVE=1
+    NBARGS=$[$NBARGS+8]
+    shift
+    ;;
+    -D|--daemon)
+    DAEMON=1
+    NBARGS=$[$NBARGS+16]
+    shift
+    ;;
+    -gu|--git-url)
+    GIT_URL="$2"
+    NBARGS=$[$NBARGS+32]
+    shift
+    shift
+    ;;
+    --trigger)
+    TRIG="$2"
+    case $TRIG in
+        merge-request)
+        MR_TRIG=1
+        ;;
+        push)
+        PU_TRIG=1
+        ;;
+        *)
+        echo ""
+        echo "Syntax Error: Invalid Trigger option -> $TRIG"
+        echo ""
+        trigger_usage
+        exit
+        ;;
+    esac
+    NBARGS=$[$NBARGS+64]
+    shift
+    shift
+    ;;
+    -mr)
+    MR_TRIG=1
+    NBARGS=$[$NBARGS+64]
+    shift
+    ;;
+    -pu)
+    PU_TRIG=1
+    NBARGS=$[$NBARGS+64]
+    shift
+    ;;
+    -sb|--src-branch)
+    SOURCE_BRANCH="$2"
+    NBARGS=$[$NBARGS+1024]
+    shift
+    shift
+    ;;
+    -sc|--src-commit)
+    SOURCE_COMMIT_ID="$2"
+    NBARGS=$[$NBARGS+2048]
+    shift
+    shift
+    ;;
+    -tb|--target-branch)
+    TARGET_BRANCH="$2"
+    NBARGS=$[$NBARGS+4096]
+    shift
+    shift
+    ;;
+    -tc|--target-commit)
+    TARGET_COMMIT_ID="$2"
+    NBARGS=$[$NBARGS+8192]
+    shift
+    shift
+    ;;
+    -br|--branch)
+    SOURCE_BRANCH="$2"
+    NBARGS=$[$NBARGS+16384]
+    shift
+    shift
+    ;;
+    -co|--commit)
+    SOURCE_COMMIT_ID="$2"
+    NBARGS=$[$NBARGS+32768]
+    shift
+    shift
+    ;;
+    -v1)
+    VM_NAME=ci-enb-usrp
+    ARCHIVES_LOC=enb_usrp
+    LOG_PATTERN=.Rel15.txt
+    NB_PATTERN_FILES=4
+    BUILD_OPTIONS="--eNB -w USRP --mu"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
+    -v2)
+    VM_NAME=ci-basic-sim
+    ARCHIVES_LOC=basic_sim
+    LOG_PATTERN=basic_simulator
+    NB_PATTERN_FILES=2
+    BUILD_OPTIONS="--basic-simulator"
+    VM_MEMORY=8192
+    VM_CPU=4
+    RUN_OPTIONS="complex"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
+    -v3)
+    VM_NAME=ci-phy-sim
+    ARCHIVES_LOC=phy_sim
+    LOG_PATTERN=.Rel15.txt
+    NB_PATTERN_FILES=6
+    BUILD_OPTIONS="--phy_simulators"
+    RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
+    -v4)
+    VM_NAME=ci-cppcheck
+    VM_MEMORY=8192
+    ARCHIVES_LOC=cppcheck
+    LOG_PATTERN=cppcheck.xml
+    NB_PATTERN_FILES=1
+    BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
+    -v5)
+    VM_NAME=ci-gnb-usrp
+    ARCHIVES_LOC=gnb_usrp
+    LOG_PATTERN=.Rel15.txt
+    NB_PATTERN_FILES=4
+    BUILD_OPTIONS="--gNB -w USRP"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
+    -v6)
+    VM_NAME=ci-ue-nr-usrp
+    ARCHIVES_LOC=nrue_usrp
+    LOG_PATTERN=.Rel15.txt
+    NB_PATTERN_FILES=4
+    BUILD_OPTIONS="--nrUE -w USRP"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
+    -v7)
+    VM_NAME=ci-enb-ethernet
+    ARCHIVES_LOC=enb_eth
+    LOG_PATTERN=.Rel15.txt
+    NB_PATTERN_FILES=6
+    BUILD_OPTIONS="--eNB -t ETHERNET --noS1"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
+    -v8)
+    VM_NAME=ci-ue-ethernet
+    ARCHIVES_LOC=ue_eth
+    LOG_PATTERN=.Rel15.txt
+    NB_PATTERN_FILES=6
+    BUILD_OPTIONS="--UE -t ETHERNET --noS1"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
+    --variant)
+    variant="$2"
+    case $variant in
+        enb-usrp)
+        VM_NAME=ci-enb-usrp
+        ARCHIVES_LOC=enb_usrp
+        LOG_PATTERN=.Rel15.txt
+        NB_PATTERN_FILES=4
+        BUILD_OPTIONS="--eNB -w USRP --mu"
+        NBARGS=$[$NBARGS+256]
+        ;;
+        basic-sim)
+        VM_NAME=ci-basic-sim
+        ARCHIVES_LOC=basic_sim
+        LOG_PATTERN=basic_simulator
+        NB_PATTERN_FILES=2
+        BUILD_OPTIONS="--basic-simulator"
+        VM_MEMORY=8192
+        VM_CPU=4
+        RUN_OPTIONS="complex"
+        NBARGS=$[$NBARGS+256]
+        ;;
+        phy-sim)
+        VM_NAME=ci-phy-sim
+        ARCHIVES_LOC=phy_sim
+        LOG_PATTERN=.Rel15.txt
+        NB_PATTERN_FILES=6
+        BUILD_OPTIONS="--phy_simulators"
+        RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b"
+        NBARGS=$[$NBARGS+256]
+        ;;
+        cppcheck)
+        VM_NAME=ci-cppcheck
+        VM_MEMORY=8192
+        ARCHIVES_LOC=cppcheck
+        LOG_PATTERN=cppcheck.xml
+        NB_PATTERN_FILES=1
+        BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
+        NBARGS=$[$NBARGS+256]
+        ;;
+        gnb-usrp)
+        VM_NAME=ci-gnb-usrp
+        ARCHIVES_LOC=gnb_usrp
+        LOG_PATTERN=.Rel15.txt
+        NB_PATTERN_FILES=4
+        BUILD_OPTIONS="--gNB -w USRP"
+        NBARGS=$[$NBARGS+256]
+        ;;
+        nu-ue-usrp)
+        VM_NAME=ci-ue-nr-usrp
+        ARCHIVES_LOC=nrue_usrp
+        LOG_PATTERN=.Rel15.txt
+        NB_PATTERN_FILES=4
+        BUILD_OPTIONS="--nrUE -w USRP"
+        NBARGS=$[$NBARGS+256]
+        ;;
+        enb-ethernet)
+        VM_NAME=ci-enb-ethernet
+        ARCHIVES_LOC=enb_eth
+        LOG_PATTERN=.Rel15.txt
+        NB_PATTERN_FILES=6
+        BUILD_OPTIONS="--eNB -t ETHERNET --noS1"
+        NBARGS=$[$NBARGS+256]
+        ;;
+        ue-ethernet)
+        VM_NAME=ci-ue-ethernet
+        ARCHIVES_LOC=ue_eth
+        LOG_PATTERN=.Rel15.txt
+        NB_PATTERN_FILES=6
+        BUILD_OPTIONS="--UE -t ETHERNET --noS1"
+        NBARGS=$[$NBARGS+256]
+        ;;
+        *)
+        echo ""
+        echo "Syntax Error: Invalid Variant option -> $variant"
+        echo ""
+        variant_usage
+        exit 1
+    esac
+    shift
+    shift
+    ;;
+    *)
+    echo "Syntax Error: unknown option: $key"
+    echo ""
+    top_usage
+    exit 1
+esac
+done
+
+MANY_CMDS=$[$CREATE_CMD+$BUILD_CMD+$WAIT_CMD+$DESTROY_CMD+$TEST_CMD+$REPORT_BUILD_CMD+$REPORT_TEST_CMD]
+if [ $MANY_CMDS -gt 1 ]
+then
+    echo "Syntax Error: too many commands"
+    top_usage
+    exit 1
+fi
+
+if [ $HELP_CMD -eq 1 ]
+then
+    if [ $MANY_CMDS -eq 0 ]
+    then
+        top_usage
+        exit 0
+    fi
+    if [ $CREATE_CMD -eq 1 ]
+    then
+        create_usage
+        exit 0
+    fi
+    if [ $BUILD_CMD -eq 1 ]
+    then
+        build_usage
+        exit 0
+    fi
+    if [ $WAIT_CMD -eq 1 ]
+    then
+        wait_usage
+        exit 0
+    fi
+    if [ $TEST_CMD -eq 1 ]
+    then
+        run_test_usage
+        exit 0
+    fi
+    if [ $DESTROY_CMD -eq 1 ]
+    then
+        destroy_usage
+        exit 0
+    fi
+    if [ $REPORT_BUILD_CMD -eq 1 ]
+    then
+        report_build_usage
+        exit 0
+    fi
+    if [ $REPORT_TEST_CMD -eq 1 ]
+    then
+        report_test_usage
+        exit 0
+    fi
+else
+    if [ $MANY_CMDS -eq 0 ]
+    then
+        echo "Syntax Error: no command"
+        top_usage
+        exit 1
+    fi
+    # For create, mandatory options: jn, id. Optional: variant
+    if [ $CREATE_CMD -eq 1 ] && [ $NBARGS -ne 3 ] && [ $NBARGS -ne 259 ]
+    then
+        echo "Syntax Error: unsupported option(s) for create command"
+        create_usage
+        exit 1
+    fi
+    # For build, mandatory options: jn, id, ws. Optional: variant, k, D
+    if [ $BUILD_CMD -eq 1 ] && [ $NBARGS -ne 7 ] && [ $NBARGS -ne 263 ] && [ $NBARGS -ne 15 ] && [ $NBARGS -ne 271 ] && [ $NBARGS -ne 23 ] && [ $NBARGS -ne 279 ] && [ $NBARGS -ne 31 ] && [ $NBARGS -ne 287 ]
+    then
+        echo "Syntax Error: unsupported option(s) for build command"
+        build_usage
+        exit 1
+    fi
+    # For wait, mandatory options: jn, id, ws. Optional: variant, k
+    if [ $WAIT_CMD -eq 1 ] && [ $NBARGS -ne 7 ] && [ $NBARGS -ne 263 ] && [ $NBARGS -ne 15 ] && [ $NBARGS -ne 271 ]
+    then
+        echo "Syntax Error: unsupported option(s) for wait command"
+        wait_usage
+        exit 1
+    fi
+    # For test, mandatory options: jn, id, ws. Optional: variant, k
+    if [ $TEST_CMD -eq 1 ] && [ $NBARGS -ne 7 ] && [ $NBARGS -ne 263 ] && [ $NBARGS -ne 15 ] && [ $NBARGS -ne 271 ]
+    then
+        echo "Syntax Error: unsupported option(s) for test command"
+        run_test_usage
+        exit 1
+    fi
+    # For destroy, mandatory options: jn, id.
+    if [ $DESTROY_CMD -eq 1 ] && [ $NBARGS -ne 3 ]
+    then
+        echo "Syntax Error: unsupported option(s) for destroy command"
+        destroy_usage
+        exit 1
+    fi
+    # For report-build, mandatory options: jn, id, ws, gu, pu, br,co.
+    #                                  or: jn, id, ws, gu, mr, sb, sc, tb, tc.
+    if [ $REPORT_BUILD_CMD -eq 1 ] && [ $NBARGS -ne 15463 ] && [ $NBARGS -ne 49255 ]
+    then
+        echo "Syntax Error: unsupported option(s) for report-build command"
+        report_build_usage
+        exit 1
+    fi
+    # For report-test, mandatory options: jn, id, ws, gu, pu, br,co.
+    #                                 or: jn, id, ws, gu, mr, sb, sc, tb, tc.
+    if [ $REPORT_TEST_CMD -eq 1 ] && [ $NBARGS -ne 15463 ] && [ $NBARGS -ne 49255 ]
+    then
+        echo "Syntax Error: unsupported option(s) for report-test command"
+        report_test_usage
+        exit 1
+    fi
+fi
+
+# Checking uvt-kvm is installed
+UVT_KVM_PATH=`which uvt-kvm | grep -c uvt-kvm`
+if [ $UVT_KVM_PATH -eq 0 ]
+then
+    echo "Error: uvt-kvm is not installed"
+    top_usage
+    exit 1
+fi
+
+if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
+then
+    VM_TEMPLATE=ci-
+else
+    VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
+fi
+
+VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"`
+VM_CMDS=${VM_NAME}_cmds.txt
+ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC}
+
+STATUS=0
+if [ $CREATE_CMD -eq 1 ]
+then
+    create_vm
+fi
+if [ $BUILD_CMD -eq 1 ]
+then
+    build_on_vm
+    if [ $DAEMON -eq 0 ] && [ $STATUS -eq 0 ]
+    then
+        check_on_vm_build
+    fi
+fi
+if [ $WAIT_CMD -eq 1 ]
+then
+    wait_on_vm_build
+    if [ $STATUS -eq 0 ]
+    then
+        check_on_vm_build
+    fi
+fi
+if [ $TEST_CMD -eq 1 ]
+then
+    ARCHIVES_LOC=${ARCHIVES_LOC}/test
+    run_test_on_vm
+fi
+if [ $DESTROY_CMD -eq 1 ]
+then
+    destroy_vm
+fi
+if [ $REPORT_BUILD_CMD -eq 1 ]
+then
+    report_build
+fi
+if [ $REPORT_TEST_CMD -eq 1 ]
+then
+    report_test
+fi
+
+# Did command pass or fail?
+if [ $STATUS -eq 0 ]
+then
+    echo "STATUS seems OK"
+else
+    echo "STATUS failed?"
+fi
+exit $STATUS
diff --git a/ci-scripts/reportBuildLocally.sh b/ci-scripts/reportBuildLocally.sh
index e0336c6dabc58b76313071004d773bb0ecb46fa4..2e78e6f6cdd8dc68b4c61656cc4fab0ecccb5f2d 100755
--- a/ci-scripts/reportBuildLocally.sh
+++ b/ci-scripts/reportBuildLocally.sh
@@ -20,14 +20,13 @@
 # *      contact@openairinterface.org
 # */
 
-function usage {
-    echo "OAI Local Build Report script"
+function report_build_usage {
+    echo "OAI CI VM script"
     echo "   Original Author: Raphael Defosseux"
     echo ""
     echo "Usage:"
     echo "------"
-    echo ""
-    echo "    reportBuildLocally.sh [OPTIONS]"
+    echo "    oai-ci-vm-tool report-build [OPTIONS]"
     echo ""
     echo "Options:"
     echo "--------"
@@ -47,6 +46,9 @@ function usage {
     echo "    --build-id #### OR -id ####"
     echo "    Specify the build ID of the Jenkins job."
     echo ""
+    echo "    --workspace #### OR -ws ####"
+    echo "    Specify the workspace."
+    echo ""
     echo "    --trigger merge-request OR -mr"
     echo "    --trigger push          OR -pu"
     echo "    Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
@@ -79,7 +81,7 @@ function usage {
 }
 
 function trigger_usage {
-    echo "OAI Local Build Report script"
+    echo "OAI CI VM script"
     echo "   Original Author: Raphael Defosseux"
     echo ""
     echo "    --trigger merge-request OR -mr"
@@ -153,8 +155,8 @@ function summary_table_row {
     echo "        <td bgcolor = \"lightcyan\" >$1</th>" >> ./build_results.html
     if [ -f $2 ]
     then
-        STATUS=`egrep -c "$3" $2`
-        if [ $STATUS -eq 1 ]
+        BUILD_STATUS=`egrep -c "$3" $2`
+        if [ $BUILD_STATUS -eq 1 ]
         then
             echo "        <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
         else
@@ -263,384 +265,245 @@ function sca_summary_table_footer {
     echo "   <p style=\"margin-left: 30px\">Graphical Interface tool : <strong><code>cppcheck-gui -l cppcheck/cppcheck.xml</code></strong></p>" >> ./build_results.html
 }
 
-jb_checker=0
-mr_checker=0
-pu_checker=0
-MR_TRIG=0
-PU_TRIG=0
-while [[ $# -gt 0 ]]
-do
-key="$1"
-
-case $key in
-    -h|--help)
-    shift
-    usage
-    exit 0
-    ;;
-    -gu|--git-url)
-    GIT_URL="$2"
-    let "jb_checker|=0x1"
-    shift
-    shift
-    ;;
-    -jn|--job-name)
-    JOB_NAME="$2"
-    let "jb_checker|=0x2"
-    shift
-    shift
-    ;;
-    -id|--build-id)
-    BUILD_ID="$2"
-    let "jb_checker|=0x4"
-    shift
-    shift
-    ;;
-    --trigger)
-    TRIG="$2"
-    case $TRIG in
-        merge-request)
-        MR_TRIG=1
-        ;;
-        push)
-        PU_TRIG=1
-        ;;
-        *)
-        echo ""
-        echo "Syntax Error: Invalid Trigger option -> $TRIG"
-        echo ""
-        trigger_usage
-        exit
-        ;;
-    esac
-    let "jb_checker|=0x8"
-    shift
-    shift
-    ;;
-    -mr)
-    MR_TRIG=1
-    let "jb_checker|=0x8"
-    shift
-    ;;
-    -pu)
-    PU_TRIG=1
-    let "jb_checker|=0x8"
-    shift
-    ;;
-    -sb|--src-branch)
-    SOURCE_BRANCH="$2"
-    let "mr_checker|=0x1"
-    shift
-    shift
-    ;;
-    -sc|--src-commit)
-    SOURCE_COMMIT_ID="$2"
-    let "mr_checker|=0x2"
-    shift
-    shift
-    ;;
-    -tb|--target-branch)
-    TARGET_BRANCH="$2"
-    let "mr_checker|=0x4"
-    shift
-    shift
-    ;;
-    -tc|--target-commit)
-    TARGET_COMMIT_ID="$2"
-    let "mr_checker|=0x8"
-    shift
-    shift
-    ;;
-    -br|--branch)
-    SOURCE_BRANCH="$2"
-    let "pu_checker|=0x1"
-    shift
-    shift
-    ;;
-    -co|--commit)
-    SOURCE_COMMIT_ID="$2"
-    let "pu_checker|=0x2"
-    shift
-    shift
-    ;;
-    *)
-    echo "Syntax Error: unknown option: $key"
-    echo ""
-    usage
-    exit 1
-    ;;
-esac
-
-done
-
-if [ $jb_checker -ne 15 ]
-then
-    echo ""
-    echo "Syntax Error: missing job information."
-    # TODO : list missing info
-    echo ""
-    exit 1
-fi
-
-if [ $PU_TRIG -eq 1 ] && [ $MR_TRIG -eq 1 ]
-then
-    echo ""
-    echo "Syntax Error: trigger action incoherent."
-    echo ""
-    trigger_usage
-    exit 1
-fi
-
-if [ $PU_TRIG -eq 1 ]
-then
-    if [ $pu_checker -ne 3 ]
-    then
-        echo ""
-        echo "Syntax Error: missing push information."
-        # TODO : list missing info
-        echo ""
-        exit 1
-    fi
-fi
-
-if [ $MR_TRIG -eq 1 ]
-then
-    if [ $mr_checker -ne 15 ]
-    then
-        echo ""
-        echo "Syntax Error: missing merge-request information."
-        # TODO : list missing info
-        echo ""
-        exit 1
-    fi
-fi
-
-echo "<!DOCTYPE html>" > ./build_results.html
-echo "<html class=\"no-js\" lang=\"en-US\">" >> ./build_results.html
-echo "<head>" >> ./build_results.html
-echo "  <title>Build Results for $JOB_NAME job build #$BUILD_ID</title>" >> ./build_results.html
-echo "  <base href = \"http://www.openairinterface.org/\" />" >> ./build_results.html
-echo "</head>" >> ./build_results.html
-echo "<body>" >> ./build_results.html
-echo "  <table style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
-echo "    <tr style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
-echo "      <td style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
-echo "        <a href=\"http://www.openairinterface.org/\">" >> ./build_results.html
-echo "           <img src=\"/wp-content/uploads/2016/03/cropped-oai_final_logo2.png\" alt=\"\" border=\"none\" height=50 width=150>" >> ./build_results.html
-echo "           </img>" >> ./build_results.html
-echo "        </a>" >> ./build_results.html
-echo "      </td>" >> ./build_results.html
-echo "      <td style=\"border-collapse: collapse; border: none; vertical-align: center;\">" >> ./build_results.html
-echo "        <b><font size = \"6\">Job Summary -- Job: $JOB_NAME -- Build-ID: $BUILD_ID</font></b>" >> ./build_results.html
-echo "      </td>" >> ./build_results.html
-echo "    </tr>" >> ./build_results.html
-echo "  </table>" >> ./build_results.html
-echo "  <br>" >> ./build_results.html
-echo "   <table border = \"1\">" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >Build Start Time (UTC)</td>" >> ./build_results.html
-echo "        <td>TEMPLATE_BUILD_TIME</td>" >> ./build_results.html
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >GIT Repository</td>" >> ./build_results.html
-echo "        <td>$GIT_URL</td>" >> ./build_results.html
-echo "      </tr>" >> ./build_results.html
-echo "      <tr>" >> ./build_results.html
-echo "        <td bgcolor = \"lightcyan\" >Job Trigger</td>" >> ./build_results.html
-if [ $PU_TRIG -eq 1 ]; then echo "        <td>Push Event</td>" >> ./build_results.html; fi
-if [ $MR_TRIG -eq 1 ]; then echo "        <td>Merge-Request</td>" >> ./build_results.html; fi
-echo "      </tr>" >> ./build_results.html
-if [ $PU_TRIG -eq 1 ]
-then
-    echo "      <tr>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Branch</td>" >> ./build_results.html
-    echo "        <td>$SOURCE_BRANCH</td>" >> ./build_results.html
-    echo "      </tr>" >> ./build_results.html
-    echo "      <tr>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Commit ID</td>" >> ./build_results.html
-    echo "        <td>$SOURCE_COMMIT_ID</td>" >> ./build_results.html
-    echo "      </tr>" >> ./build_results.html
-fi
-if [ $MR_TRIG -eq 1 ]
-then
-    echo "      <tr>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Source Branch</td>" >> ./build_results.html
-    echo "        <td>$SOURCE_BRANCH</td>" >> ./build_results.html
-    echo "      </tr>" >> ./build_results.html
+function report_build {
+    echo "############################################################"
+    echo "OAI CI VM script"
+    echo "############################################################"
+
+    echo "JENKINS_WKSP        = $JENKINS_WKSP"
+
+    cd ${JENKINS_WKSP}
+    echo "<!DOCTYPE html>" > ./build_results.html
+    echo "<html class=\"no-js\" lang=\"en-US\">" >> ./build_results.html
+    echo "<head>" >> ./build_results.html
+    echo "  <title>Build Results for $JOB_NAME job build #$BUILD_ID</title>" >> ./build_results.html
+    echo "  <base href = \"http://www.openairinterface.org/\" />" >> ./build_results.html
+    echo "</head>" >> ./build_results.html
+    echo "<body>" >> ./build_results.html
+    echo "  <table style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
+    echo "    <tr style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
+    echo "      <td style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
+    echo "        <a href=\"http://www.openairinterface.org/\">" >> ./build_results.html
+    echo "           <img src=\"/wp-content/uploads/2016/03/cropped-oai_final_logo2.png\" alt=\"\" border=\"none\" height=50 width=150>" >> ./build_results.html
+    echo "           </img>" >> ./build_results.html
+    echo "        </a>" >> ./build_results.html
+    echo "      </td>" >> ./build_results.html
+    echo "      <td style=\"border-collapse: collapse; border: none; vertical-align: center;\">" >> ./build_results.html
+    echo "        <b><font size = \"6\">Job Summary -- Job: $JOB_NAME -- Build-ID: $BUILD_ID</font></b>" >> ./build_results.html
+    echo "      </td>" >> ./build_results.html
+    echo "    </tr>" >> ./build_results.html
+    echo "  </table>" >> ./build_results.html
+    echo "  <br>" >> ./build_results.html
+    echo "   <table border = \"1\">" >> ./build_results.html
     echo "      <tr>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Source Commit ID</td>" >> ./build_results.html
-    echo "        <td>$SOURCE_COMMIT_ID</td>" >> ./build_results.html
+    echo "        <td bgcolor = \"lightcyan\" >Build Start Time (UTC)</td>" >> ./build_results.html
+    echo "        <td>TEMPLATE_BUILD_TIME</td>" >> ./build_results.html
     echo "      </tr>" >> ./build_results.html
     echo "      <tr>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Target Branch</td>" >> ./build_results.html
-    echo "        <td>$TARGET_BRANCH</td>" >> ./build_results.html
+    echo "        <td bgcolor = \"lightcyan\" >GIT Repository</td>" >> ./build_results.html
+    echo "        <td>$GIT_URL</td>" >> ./build_results.html
     echo "      </tr>" >> ./build_results.html
     echo "      <tr>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Target Commit ID</td>" >> ./build_results.html
-    echo "        <td>$TARGET_COMMIT_ID</td>" >> ./build_results.html
+    echo "        <td bgcolor = \"lightcyan\" >Job Trigger</td>" >> ./build_results.html
+    if [ $PU_TRIG -eq 1 ]; then echo "        <td>Push Event</td>" >> ./build_results.html; fi
+    if [ $MR_TRIG -eq 1 ]; then echo "        <td>Merge-Request</td>" >> ./build_results.html; fi
     echo "      </tr>" >> ./build_results.html
-fi
-echo "   </table>" >> ./build_results.html
-echo "   <h2>Build Summary</h2>" >> ./build_results.html
-
-if [ -f ./oai_rules_result.txt ]
-then
-    echo "   <h3>OAI Coding / Formatting Guidelines Check</h3>" >> ./build_results.html
-    echo "   <table border = "1">" >> ./build_results.html
-    echo "      <tr>" >> ./build_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Result:</td>" >> ./build_results.html
-    NB_FILES=`cat ./oai_rules_result.txt`
-    if [ $NB_FILES = "0" ]
-    then 
-        if [ $PU_TRIG -eq 1 ]; then echo "        <td bgcolor = \"green\">All files in repository follow OAI rules. </td>" >> ./build_results.html; fi
-        if [ $MR_TRIG -eq 1 ]; then echo "        <td bgcolor = \"green\">All modified files in Merge-Request follow OAI rules.</td>" >> ./build_results.html; fi
+    if [ $PU_TRIG -eq 1 ]
+    then
+        echo "      <tr>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Branch</td>" >> ./build_results.html
+        echo "        <td>$SOURCE_BRANCH</td>" >> ./build_results.html
         echo "      </tr>" >> ./build_results.html
-        echo "   </table>" >> ./build_results.html
-    else
-        if [ $PU_TRIG -eq 1 ]; then echo "        <td bgcolor = \"orange\">$NB_FILES files in repository DO NOT follow OAI rules. </td>" >> ./build_results.html; fi
-        if [ $MR_TRIG -eq 1 ]; then echo "        <td bgcolor = \"orange\">$NB_FILES modified files in Merge-Request DO NOT follow OAI rules.</td>" >> ./build_results.html; fi
+        echo "      <tr>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Commit ID</td>" >> ./build_results.html
+        echo "        <td>$SOURCE_COMMIT_ID</td>" >> ./build_results.html
         echo "      </tr>" >> ./build_results.html
-        if [ -f ./oai_rules_result_list.txt ]
-        then
-            awk '{print "      <tr><td></td><td>"$1"</td></tr>"}' ./oai_rules_result_list.txt >> ./build_results.html
+    fi
+    if [ $MR_TRIG -eq 1 ]
+    then
+        echo "      <tr>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Source Branch</td>" >> ./build_results.html
+        echo "        <td>$SOURCE_BRANCH</td>" >> ./build_results.html
+        echo "      </tr>" >> ./build_results.html
+        echo "      <tr>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Source Commit ID</td>" >> ./build_results.html
+        echo "        <td>$SOURCE_COMMIT_ID</td>" >> ./build_results.html
+        echo "      </tr>" >> ./build_results.html
+        echo "      <tr>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Target Branch</td>" >> ./build_results.html
+        echo "        <td>$TARGET_BRANCH</td>" >> ./build_results.html
+        echo "      </tr>" >> ./build_results.html
+        echo "      <tr>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Target Commit ID</td>" >> ./build_results.html
+        echo "        <td>$TARGET_COMMIT_ID</td>" >> ./build_results.html
+        echo "      </tr>" >> ./build_results.html
+    fi
+    echo "   </table>" >> ./build_results.html
+    echo "   <h2>Build Summary</h2>" >> ./build_results.html
+
+    if [ -f ./oai_rules_result.txt ]
+    then
+        echo "   <h3>OAI Coding / Formatting Guidelines Check</h3>" >> ./build_results.html
+        echo "   <table border = "1">" >> ./build_results.html
+        echo "      <tr>" >> ./build_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Result:</td>" >> ./build_results.html
+        NB_FILES=`cat ./oai_rules_result.txt`
+        if [ $NB_FILES = "0" ]
+        then 
+            if [ $PU_TRIG -eq 1 ]; then echo "        <td bgcolor = \"green\">All files in repository follow OAI rules. </td>" >> ./build_results.html; fi
+            if [ $MR_TRIG -eq 1 ]; then echo "        <td bgcolor = \"green\">All modified files in Merge-Request follow OAI rules.</td>" >> ./build_results.html; fi
+            echo "      </tr>" >> ./build_results.html
+            echo "   </table>" >> ./build_results.html
+        else
+            if [ $PU_TRIG -eq 1 ]; then echo "        <td bgcolor = \"orange\">$NB_FILES files in repository DO NOT follow OAI rules. </td>" >> ./build_results.html; fi
+            if [ $MR_TRIG -eq 1 ]; then echo "        <td bgcolor = \"orange\">$NB_FILES modified files in Merge-Request DO NOT follow OAI rules.</td>" >> ./build_results.html; fi
+            echo "      </tr>" >> ./build_results.html
+            if [ -f ./oai_rules_result_list.txt ]
+            then
+                awk '{print "      <tr><td></td><td>"$1"</td></tr>"}' ./oai_rules_result_list.txt >> ./build_results.html
+            fi
+            echo "   </table>" >> ./build_results.html
+            echo "   <p>Please apply the following command to this(ese) file(s): </p>" >> ./build_results.html
+            echo "   <p style=\"margin-left: 30px\"><strong><code>astyle --options=ci-scripts/astyle-options.txt filename(s)</code></strong></p>" >> ./build_results.html
         fi
-        echo "   </table>" >> ./build_results.html
-        echo "   <p>Please apply the following command to this(ese) file(s): </p>" >> ./build_results.html
-        echo "   <p style=\"margin-left: 30px\"><strong><code>astyle --options=ci-scripts/astyle-options.txt filename(s)</code></strong></p>" >> ./build_results.html
     fi
-fi
-
-echo "   <h2>Ubuntu 16.04 LTS -- Summary</h2>" >> ./build_results.html
-
-sca_summary_table_header "OAI Static Code Analysis with CPPCHECK"
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized variable" uninitvar
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized struct member" uninitStructMember
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory leak" memleak
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory is freed twice" doubleFree
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Resource leak" resourceLeak
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Possible null pointer dereference" nullPointer
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Array access  out of bounds" arrayIndexOutOfBounds
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Buffer is accessed out of bounds" bufferAccessOutOfBounds
-sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Expression depends on order of evaluation of side effects" unknownEvaluationOrder
-sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
-
-summary_table_header "OAI Build eNB -- USRP option"
-summary_table_row "LTE SoftModem - Release 15" ./archives/enb_usrp/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_usrp_row1.html
-summary_table_row "Coding - Release 15" ./archives/enb_usrp/coding.Rel15.txt "Built target coding" ./enb_usrp_row2.html
-summary_table_row "OAI USRP device if - Release 15" ./archives/enb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_usrp_row3.html
-summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_row4.html
-summary_table_footer
-
-summary_table_header "OAI Build basic simulator option"
-summary_table_row "Basic Simulator eNb - Release 15" ./archives/basic_sim/basic_simulator_enb.txt "Built target lte-softmodem" ./basic_sim_row1.html
-summary_table_row "Basic Simulator UE - Release 15" ./archives/basic_sim/basic_simulator_ue.txt "Built target lte-uesoftmodem" ./basic_sim_row2.html
-summary_table_row "Conf 2 UE data - Release 15" ./archives/basic_sim/conf2uedata.Rel15.txt "Built target conf2uedata" ./basic_sim_row3.html
-summary_table_footer
-
-summary_table_header "OAI Build Physical simulators option"
-summary_table_row "DL Simulator - Release 15" ./archives/phy_sim/dlsim.Rel15.txt "Built target dlsim" ./phy_sim_row1.html
-summary_table_row "UL Simulator - Release 15" ./archives/phy_sim/ulsim.Rel15.txt "Built target ulsim" ./phy_sim_row2.html
-summary_table_row "Coding - Release 15" ./archives/phy_sim/coding.Rel15.txt "Built target coding" ./phy_sim_row3.html
-if [ -f ./archives/phy_sim/ldpctest.Rel15.txt ]
-then
-    summary_table_row "LDPC Test - Release 15" ./archives/phy_sim/ldpctest.Rel15.txt "Built target ldpctest" ./phy_sim_row4.html
-fi
-if [ -f ./archives/phy_sim/polartest.Rel15.txt ]
-then
-    summary_table_row "Polar Test - Release 15" ./archives/phy_sim/polartest.Rel15.txt "Built target polartest" ./phy_sim_row5.html
-fi
-if [ -f ./archives/phy_sim/nr_pbchsim.Rel15.txt ]
-then
-    summary_table_row "PBCH Test - Release 15" ./archives/phy_sim/nr_pbchsim.Rel15.txt "Built target nr_pbchsim" ./phy_sim_row6.html
-fi
-summary_table_footer
-
-
-if [ -f archives/gnb_usrp/nr-softmodem.Rel15.txt ]
-then
-    summary_table_header "OAI Build gNB -- USRP option"
-    summary_table_row "LTE SoftModem - Release 15" ./archives/gnb_usrp/nr-softmodem.Rel15.txt "Built target nr-softmodem" ./gnb_usrp_row1.html
-    summary_table_row "Coding - Release 15" ./archives/gnb_usrp/coding.Rel15.txt "Built target coding" ./gnb_usrp_row2.html
-    summary_table_row "OAI USRP device if - Release 15" ./archives/gnb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./gnb_usrp_row3.html
-    summary_table_row "Parameters Lib Config - Release 15" ./archives/gnb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./gnb_usrp_row4.html
+
+    echo "   <h2>Ubuntu 16.04 LTS -- Summary</h2>" >> ./build_results.html
+
+    sca_summary_table_header "OAI Static Code Analysis with CPPCHECK"
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized variable" uninitvar
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized struct member" uninitStructMember
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory leak" memleak
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory is freed twice" doubleFree
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Resource leak" resourceLeak
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Possible null pointer dereference" nullPointer
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Array access  out of bounds" arrayIndexOutOfBounds
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Buffer is accessed out of bounds" bufferAccessOutOfBounds
+    sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Expression depends on order of evaluation of side effects" unknownEvaluationOrder
+    sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
+
+    summary_table_header "OAI Build eNB -- USRP option"
+    summary_table_row "LTE SoftModem - Release 15" ./archives/enb_usrp/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_usrp_row1.html
+    summary_table_row "Coding - Release 15" ./archives/enb_usrp/coding.Rel15.txt "Built target coding" ./enb_usrp_row2.html
+    summary_table_row "OAI USRP device if - Release 15" ./archives/enb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_usrp_row3.html
+    summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_row4.html
     summary_table_footer
-fi
-
-if [ -f archives/nrue_usrp/nr-uesoftmodem.Rel15.txt ]
-then
-    summary_table_header "OAI Build 5G NR UE -- USRP option"
-    summary_table_row "UE SoftModem - Release 15" ./archives/nrue_usrp/nr-uesoftmodem.Rel15.txt "Built target nr-uesoftmodem" ./nrue_usrp_row1.html
-    summary_table_row "Coding - Release 15" ./archives/nrue_usrp/coding.Rel15.txt "Built target coding" ./nrue_usrp_row2.html
-    summary_table_row "OAI USRP device if - Release 15" ./archives/nrue_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./nrue_usrp_row3.html
-    summary_table_row "Parameters Lib Config - Release 15" ./archives/nrue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nrue_usrp_row4.html
+
+    summary_table_header "OAI Build basic simulator option"
+    summary_table_row "Basic Simulator eNb - Release 15" ./archives/basic_sim/basic_simulator_enb.txt "Built target lte-softmodem" ./basic_sim_row1.html
+    summary_table_row "Basic Simulator UE - Release 15" ./archives/basic_sim/basic_simulator_ue.txt "Built target lte-uesoftmodem" ./basic_sim_row2.html
+    summary_table_row "Conf 2 UE data - Release 15" ./archives/basic_sim/conf2uedata.Rel15.txt "Built target conf2uedata" ./basic_sim_row3.html
     summary_table_footer
-fi
-
-summary_table_header "OAI Build eNB -- ETHERNET transport option"
-summary_table_row "LTE SoftModem w/o S1 - Release 15" ./archives/enb_eth/lte-softmodem-nos1.Rel15.txt "Built target lte-softmodem" ./enb_eth_row1.html
-summary_table_row "Coding - Release 15" ./archives/enb_eth/coding.Rel15.txt "Built target coding" ./enb_eth_row2.html
-summary_table_row "OAI ETHERNET transport - Release 15" ./archives/enb_eth/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./enb_eth_row3.html
-summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_eth_row4.html
-summary_table_row "RB Tools - Release 15" ./archives/enb_eth/rb_tool.Rel15.txt "Built target rb_tool" ./enb_eth_row5.html
-summary_table_row "NAS Mesh - Release 15" ./archives/enb_eth/nasmesh.Rel15.txt "Built target nasmesh" ./enb_eth_row6.html
-summary_table_footer
-
-summary_table_header "OAI Build UE -- ETHERNET transport option"
-summary_table_row "LTE UE SoftModem w/o S1 - Release 15" ./archives/ue_eth/lte-uesoftmodem-nos1.Rel15.txt "Built target lte-uesoftmodem" ./ue_eth_row1.html
-summary_table_row "Coding - Release 15" ./archives/ue_eth/coding.Rel15.txt "Built target coding" ./ue_eth_row2.html
-summary_table_row "OAI ETHERNET transport - Release 15" ./archives/ue_eth/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./ue_eth_row3.html
-summary_table_row "Parameters Lib Config - Release 15" ./archives/ue_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./ue_eth_row4.html
-summary_table_row "RB Tools - Release 15" ./archives/ue_eth/rb_tool.Rel15.txt "Built target rb_tool" ./ue_eth_row5.html
-summary_table_row "NAS Mesh - Release 15" ./archives/ue_eth/nasmesh.Rel15.txt "Built target nasmesh" ./ue_eth_row6.html
-summary_table_footer
-
-echo "   <h2>Red Hat (CentOS Linux release 7.4.1708) -- Summary</h2>" >> ./build_results.html
-
-summary_table_header "Red Hat -- OAI Build eNB -- USRP option"
-summary_table_row "LTE SoftModem - Release 15" ./archives/red_hat/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_usrp_rh_row1.html
-summary_table_row "Coding - Release 15" ./archives/red_hat/coding.Rel15.txt "Built target coding" ./enb_usrp_rh_row2.html
-summary_table_row "OAI USRP device if - Release 15" ./archives/red_hat/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_usrp_rh_row3.html
-summary_table_row "Parameters Lib Config - Release 15" ./archives/red_hat/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_rh_row4.html
-summary_table_footer
-
-echo "   <h3>Details</h3>" >> ./build_results.html
-
-for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
-do
-    cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./basic_sim_row*.html`
-do
-    cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./phy_sim_row*.html`
-do
-    cat $DETAILS_TABLE >> ./build_results.html
-done
-
-for DETAILS_TABLE in `ls ./gnb_usrp_row*.html`
-do
-    cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./nrue_usrp_row*.html`
-do
-    cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./enb_eth_row*.html`
-do
-    cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./ue_eth_row*.html`
-do
-    cat $DETAILS_TABLE >> ./build_results.html
-done
-for DETAILS_TABLE in `ls ./enb_usrp_rh_row*.html`
-do
-    cat $DETAILS_TABLE >> ./build_results.html
-done
-rm -f ./enb_usrp_row*.html ./basic_sim_row*.html ./phy_sim_row*.html ./enb_eth_row*.html ./ue_eth_row*.html ./enb_usrp_rh_row*.html
-
-echo "</body>" >> ./build_results.html
-echo "</html>" >> ./build_results.html
-
-exit 0
+
+    summary_table_header "OAI Build Physical simulators option"
+    summary_table_row "DL Simulator - Release 15" ./archives/phy_sim/dlsim.Rel15.txt "Built target dlsim" ./phy_sim_row1.html
+    summary_table_row "UL Simulator - Release 15" ./archives/phy_sim/ulsim.Rel15.txt "Built target ulsim" ./phy_sim_row2.html
+    summary_table_row "Coding - Release 15" ./archives/phy_sim/coding.Rel15.txt "Built target coding" ./phy_sim_row3.html
+    if [ -f ./archives/phy_sim/ldpctest.Rel15.txt ]
+    then
+        summary_table_row "LDPC Test - Release 15" ./archives/phy_sim/ldpctest.Rel15.txt "Built target ldpctest" ./phy_sim_row4.html
+    fi
+    if [ -f ./archives/phy_sim/polartest.Rel15.txt ]
+    then
+        summary_table_row "Polar Test - Release 15" ./archives/phy_sim/polartest.Rel15.txt "Built target polartest" ./phy_sim_row5.html
+    fi
+    if [ -f ./archives/phy_sim/nr_pbchsim.Rel15.txt ]
+    then
+        summary_table_row "PBCH Test - Release 15" ./archives/phy_sim/nr_pbchsim.Rel15.txt "Built target nr_pbchsim" ./phy_sim_row6.html
+    fi
+    summary_table_footer
+
+
+    if [ -f archives/gnb_usrp/nr-softmodem.Rel15.txt ]
+    then
+        summary_table_header "OAI Build gNB -- USRP option"
+        summary_table_row "LTE SoftModem - Release 15" ./archives/gnb_usrp/nr-softmodem.Rel15.txt "Built target nr-softmodem" ./gnb_usrp_row1.html
+        summary_table_row "Coding - Release 15" ./archives/gnb_usrp/coding.Rel15.txt "Built target coding" ./gnb_usrp_row2.html
+        summary_table_row "OAI USRP device if - Release 15" ./archives/gnb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./gnb_usrp_row3.html
+        summary_table_row "Parameters Lib Config - Release 15" ./archives/gnb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./gnb_usrp_row4.html
+        summary_table_footer
+    fi
+
+    if [ -f archives/nrue_usrp/nr-uesoftmodem.Rel15.txt ]
+    then
+        summary_table_header "OAI Build 5G NR UE -- USRP option"
+        summary_table_row "UE SoftModem - Release 15" ./archives/nrue_usrp/nr-uesoftmodem.Rel15.txt "Built target nr-uesoftmodem" ./nrue_usrp_row1.html
+        summary_table_row "Coding - Release 15" ./archives/nrue_usrp/coding.Rel15.txt "Built target coding" ./nrue_usrp_row2.html
+        summary_table_row "OAI USRP device if - Release 15" ./archives/nrue_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./nrue_usrp_row3.html
+        summary_table_row "Parameters Lib Config - Release 15" ./archives/nrue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nrue_usrp_row4.html
+        summary_table_footer
+    fi
+
+    summary_table_header "OAI Build eNB -- ETHERNET transport option"
+    summary_table_row "LTE SoftModem w/o S1 - Release 15" ./archives/enb_eth/lte-softmodem-nos1.Rel15.txt "Built target lte-softmodem" ./enb_eth_row1.html
+    summary_table_row "Coding - Release 15" ./archives/enb_eth/coding.Rel15.txt "Built target coding" ./enb_eth_row2.html
+    summary_table_row "OAI ETHERNET transport - Release 15" ./archives/enb_eth/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./enb_eth_row3.html
+    summary_table_row "Parameters Lib Config - Release 15" ./archives/enb_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_eth_row4.html
+    summary_table_row "RB Tools - Release 15" ./archives/enb_eth/rb_tool.Rel15.txt "Built target rb_tool" ./enb_eth_row5.html
+    summary_table_row "NAS Mesh - Release 15" ./archives/enb_eth/nasmesh.Rel15.txt "Built target nasmesh" ./enb_eth_row6.html
+    summary_table_footer
+
+    summary_table_header "OAI Build UE -- ETHERNET transport option"
+    summary_table_row "LTE UE SoftModem w/o S1 - Release 15" ./archives/ue_eth/lte-uesoftmodem-nos1.Rel15.txt "Built target lte-uesoftmodem" ./ue_eth_row1.html
+    summary_table_row "Coding - Release 15" ./archives/ue_eth/coding.Rel15.txt "Built target coding" ./ue_eth_row2.html
+    summary_table_row "OAI ETHERNET transport - Release 15" ./archives/ue_eth/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./ue_eth_row3.html
+    summary_table_row "Parameters Lib Config - Release 15" ./archives/ue_eth/params_libconfig.Rel15.txt "Built target params_libconfig" ./ue_eth_row4.html
+    summary_table_row "RB Tools - Release 15" ./archives/ue_eth/rb_tool.Rel15.txt "Built target rb_tool" ./ue_eth_row5.html
+    summary_table_row "NAS Mesh - Release 15" ./archives/ue_eth/nasmesh.Rel15.txt "Built target nasmesh" ./ue_eth_row6.html
+    summary_table_footer
+
+    if [ -e ./archives/red_hat ]
+    then
+        echo "   <h2>Red Hat (CentOS Linux release 7.4.1708) -- Summary</h2>" >> ./build_results.html
+
+        summary_table_header "Red Hat -- OAI Build eNB -- USRP option"
+        summary_table_row "LTE SoftModem - Release 15" ./archives/red_hat/lte-softmodem.Rel15.txt "Built target lte-softmodem" ./enb_usrp_rh_row1.html
+        summary_table_row "Coding - Release 15" ./archives/red_hat/coding.Rel15.txt "Built target coding" ./enb_usrp_rh_row2.html
+        summary_table_row "OAI USRP device if - Release 15" ./archives/red_hat/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_usrp_rh_row3.html
+        summary_table_row "Parameters Lib Config - Release 15" ./archives/red_hat/params_libconfig.Rel15.txt "Built target params_libconfig" ./enb_usrp_rh_row4.html
+        summary_table_footer
+    fi
+
+    echo "   <h3>Details</h3>" >> ./build_results.html
+
+    for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
+    do
+        cat $DETAILS_TABLE >> ./build_results.html
+    done
+    for DETAILS_TABLE in `ls ./basic_sim_row*.html`
+    do
+        cat $DETAILS_TABLE >> ./build_results.html
+    done
+    for DETAILS_TABLE in `ls ./phy_sim_row*.html`
+    do
+        cat $DETAILS_TABLE >> ./build_results.html
+    done
+
+    for DETAILS_TABLE in `ls ./gnb_usrp_row*.html`
+    do
+        cat $DETAILS_TABLE >> ./build_results.html
+    done
+    for DETAILS_TABLE in `ls ./nrue_usrp_row*.html`
+    do
+        cat $DETAILS_TABLE >> ./build_results.html
+    done
+    for DETAILS_TABLE in `ls ./enb_eth_row*.html`
+    do
+        cat $DETAILS_TABLE >> ./build_results.html
+    done
+    for DETAILS_TABLE in `ls ./ue_eth_row*.html`
+    do
+        cat $DETAILS_TABLE >> ./build_results.html
+    done
+    if [ -e ./archives/red_hat ]
+    then
+    for DETAILS_TABLE in `ls ./enb_usrp_rh_row*.html`
+    do
+        cat $DETAILS_TABLE >> ./build_results.html
+    done
+    fi
+    rm -f ./*_row*.html
+
+    echo "</body>" >> ./build_results.html
+    echo "</html>" >> ./build_results.html
+}
diff --git a/ci-scripts/reportTestLocally.sh b/ci-scripts/reportTestLocally.sh
index e00956199c8f1ddd6b283e7e42b48f1a4fc1a306..7bbf52ca2b3e36b978dcfef91841db8a9ebf6198 100755
--- a/ci-scripts/reportTestLocally.sh
+++ b/ci-scripts/reportTestLocally.sh
@@ -20,14 +20,13 @@
 # *      contact@openairinterface.org
 # */
 
-function usage {
-    echo "OAI Test Report script"
+function report_test_usage {
+    echo "OAI CI VM script"
     echo "   Original Author: Raphael Defosseux"
     echo ""
     echo "Usage:"
     echo "------"
-    echo ""
-    echo "    reportTestLocally.sh [OPTIONS]"
+    echo "    oai-ci-vm-tool report-test [OPTIONS]"
     echo ""
     echo "Options:"
     echo "--------"
@@ -47,6 +46,9 @@ function usage {
     echo "    --build-id #### OR -id ####"
     echo "    Specify the build ID of the Jenkins job."
     echo ""
+    echo "    --workspace #### OR -ws ####"
+    echo "    Specify the workspace."
+    echo ""
     echo "    --trigger merge-request OR -mr"
     echo "    --trigger push          OR -pu"
     echo "    Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
@@ -78,513 +80,375 @@ function usage {
     echo ""
 }
 
-function trigger_usage {
-    echo "OAI Test Report script"
-    echo "   Original Author: Raphael Defosseux"
-    echo ""
-    echo "    --trigger merge-request OR -mr"
-    echo "    --trigger push          OR -pu"
-    echo "    Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
-    echo ""
-}
-
-jb_checker=0
-mr_checker=0
-pu_checker=0
-MR_TRIG=0
-PU_TRIG=0
-while [[ $# -gt 0 ]]
-do
-key="$1"
+function report_test {
+    echo "############################################################"
+    echo "OAI CI VM script"
+    echo "############################################################"
 
-case $key in
-    -h|--help)
-    shift
-    usage
-    exit 0
-    ;;
-    -gu|--git-url)
-    GIT_URL="$2"
-    let "jb_checker|=0x1"
-    shift
-    shift
-    ;;
-    -jn|--job-name)
-    JOB_NAME="$2"
-    let "jb_checker|=0x2"
-    shift
-    shift
-    ;;
-    -id|--build-id)
-    BUILD_ID="$2"
-    let "jb_checker|=0x4"
-    shift
-    shift
-    ;;
-    --trigger)
-    TRIG="$2"
-    case $TRIG in
-        merge-request)
-        MR_TRIG=1
-        ;;
-        push)
-        PU_TRIG=1
-        ;;
-        *)
-        echo ""
-        echo "Syntax Error: Invalid Trigger option -> $TRIG"
-        echo ""
-        trigger_usage
-        exit
-        ;;
-    esac
-    let "jb_checker|=0x8"
-    shift
-    shift
-    ;;
-    -mr)
-    MR_TRIG=1
-    let "jb_checker|=0x8"
-    shift
-    ;;
-    -pu)
-    PU_TRIG=1
-    let "jb_checker|=0x8"
-    shift
-    ;;
-    -sb|--src-branch)
-    SOURCE_BRANCH="$2"
-    let "mr_checker|=0x1"
-    shift
-    shift
-    ;;
-    -sc|--src-commit)
-    SOURCE_COMMIT_ID="$2"
-    let "mr_checker|=0x2"
-    shift
-    shift
-    ;;
-    -tb|--target-branch)
-    TARGET_BRANCH="$2"
-    let "mr_checker|=0x4"
-    shift
-    shift
-    ;;
-    -tc|--target-commit)
-    TARGET_COMMIT_ID="$2"
-    let "mr_checker|=0x8"
-    shift
-    shift
-    ;;
-    -br|--branch)
-    SOURCE_BRANCH="$2"
-    let "pu_checker|=0x1"
-    shift
-    shift
-    ;;
-    -co|--commit)
-    SOURCE_COMMIT_ID="$2"
-    let "pu_checker|=0x2"
-    shift
-    shift
-    ;;
-    *)
-    echo "Syntax Error: unknown option: $key"
-    echo ""
-    usage
-    exit 1
-    ;;
-esac
-
-done
-
-if [ $jb_checker -ne 15 ]
-then
-    echo ""
-    echo "Syntax Error: missing job information."
-    # TODO : list missing info
-    echo ""
-    exit 1
-fi
+    echo "JENKINS_WKSP        = $JENKINS_WKSP"
 
-if [ $PU_TRIG -eq 1 ] && [ $MR_TRIG -eq 1 ]
-then
-    echo ""
-    echo "Syntax Error: trigger action incoherent."
-    echo ""
-    trigger_usage
-    exit 1
-fi
-
-if [ $PU_TRIG -eq 1 ]
-then
-    if [ $pu_checker -ne 3 ]
-    then
-        echo ""
-        echo "Syntax Error: missing push information."
-        # TODO : list missing info
-        echo ""
-        exit 1
-    fi
-fi
+    cd ${JENKINS_WKSP}
 
-if [ $MR_TRIG -eq 1 ]
-then
-    if [ $mr_checker -ne 15 ]
-    then
-        echo ""
-        echo "Syntax Error: missing merge-request information."
-        # TODO : list missing info
-        echo ""
-        exit 1
-    fi
-fi
-
-echo "<!DOCTYPE html>" > ./test_simulator_results.html
-echo "<html class=\"no-js\" lang=\"en-US\">" >> ./test_simulator_results.html
-echo "<head>" >> ./test_simulator_results.html
-echo "  <title>Simulator Results for $JOB_NAME job build #$BUILD_ID</title>" >> ./test_simulator_results.html
-echo "  <base href = \"http://www.openairinterface.org/\" />" >> ./test_simulator_results.html
-echo "</head>" >> ./test_simulator_results.html
-echo "<body>" >> ./test_simulator_results.html
-echo "  <table style=\"border-collapse: collapse; border: none;\">" >> ./test_simulator_results.html
-echo "    <tr style=\"border-collapse: collapse; border: none;\">" >> ./test_simulator_results.html
-echo "      <td style=\"border-collapse: collapse; border: none;\">" >> ./test_simulator_results.html
-echo "        <a href=\"http://www.openairinterface.org/\">" >> ./test_simulator_results.html
-echo "           <img src=\"/wp-content/uploads/2016/03/cropped-oai_final_logo2.png\" alt=\"\" border=\"none\" height=50 width=150>" >> ./test_simulator_results.html
-echo "           </img>" >> ./test_simulator_results.html
-echo "        </a>" >> ./test_simulator_results.html
-echo "      </td>" >> ./test_simulator_results.html
-echo "      <td style=\"border-collapse: collapse; border: none; vertical-align: center;\">" >> ./test_simulator_results.html
-echo "        <b><font size = \"6\">Job Summary -- Job: $JOB_NAME -- Build-ID: $BUILD_ID</font></b>" >> ./test_simulator_results.html
-echo "      </td>" >> ./test_simulator_results.html
-echo "    </tr>" >> ./test_simulator_results.html
-echo "  </table>" >> ./test_simulator_results.html
-echo "  <br>" >> ./test_simulator_results.html
-echo "   <table border = \"1\">" >> ./test_simulator_results.html
-echo "      <tr>" >> ./test_simulator_results.html
-echo "        <td bgcolor = \"lightcyan\" >Build Start Time (UTC)</td>" >> ./test_simulator_results.html
-echo "        <td>TEMPLATE_BUILD_TIME</td>" >> ./test_simulator_results.html
-echo "      </tr>" >> ./test_simulator_results.html
-echo "      <tr>" >> ./test_simulator_results.html
-echo "        <td bgcolor = \"lightcyan\" >GIT Repository</td>" >> ./test_simulator_results.html
-echo "        <td><a href=\"$GIT_URL\">$GIT_URL</a></td>" >> ./test_simulator_results.html
-echo "      </tr>" >> ./test_simulator_results.html
-echo "      <tr>" >> ./test_simulator_results.html
-echo "        <td bgcolor = \"lightcyan\" >Job Trigger</td>" >> ./test_simulator_results.html
-if [ $PU_TRIG -eq 1 ]; then echo "        <td>Push Event</td>" >> ./test_simulator_results.html; fi
-if [ $MR_TRIG -eq 1 ]; then echo "        <td>Merge-Request</td>" >> ./test_simulator_results.html; fi
-echo "      </tr>" >> ./test_simulator_results.html
-if [ $PU_TRIG -eq 1 ]
-then
-    echo "      <tr>" >> ./test_simulator_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Branch</td>" >> ./test_simulator_results.html
-    echo "        <td>$SOURCE_BRANCH</td>" >> ./test_simulator_results.html
-    echo "      </tr>" >> ./test_simulator_results.html
-    echo "      <tr>" >> ./test_simulator_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Commit ID</td>" >> ./test_simulator_results.html
-    echo "        <td>$SOURCE_COMMIT_ID</td>" >> ./test_simulator_results.html
-    echo "      </tr>" >> ./test_simulator_results.html
-fi
-if [ $MR_TRIG -eq 1 ]
-then
-    echo "      <tr>" >> ./test_simulator_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Source Branch</td>" >> ./test_simulator_results.html
-    echo "        <td>$SOURCE_BRANCH</td>" >> ./test_simulator_results.html
-    echo "      </tr>" >> ./test_simulator_results.html
+    echo "<!DOCTYPE html>" > ./test_simulator_results.html
+    echo "<html class=\"no-js\" lang=\"en-US\">" >> ./test_simulator_results.html
+    echo "<head>" >> ./test_simulator_results.html
+    echo "  <title>Simulator Results for $JOB_NAME job build #$BUILD_ID</title>" >> ./test_simulator_results.html
+    echo "  <base href = \"http://www.openairinterface.org/\" />" >> ./test_simulator_results.html
+    echo "</head>" >> ./test_simulator_results.html
+    echo "<body>" >> ./test_simulator_results.html
+    echo "  <table style=\"border-collapse: collapse; border: none;\">" >> ./test_simulator_results.html
+    echo "    <tr style=\"border-collapse: collapse; border: none;\">" >> ./test_simulator_results.html
+    echo "      <td style=\"border-collapse: collapse; border: none;\">" >> ./test_simulator_results.html
+    echo "        <a href=\"http://www.openairinterface.org/\">" >> ./test_simulator_results.html
+    echo "           <img src=\"/wp-content/uploads/2016/03/cropped-oai_final_logo2.png\" alt=\"\" border=\"none\" height=50 width=150>" >> ./test_simulator_results.html
+    echo "           </img>" >> ./test_simulator_results.html
+    echo "        </a>" >> ./test_simulator_results.html
+    echo "      </td>" >> ./test_simulator_results.html
+    echo "      <td style=\"border-collapse: collapse; border: none; vertical-align: center;\">" >> ./test_simulator_results.html
+    echo "        <b><font size = \"6\">Job Summary -- Job: $JOB_NAME -- Build-ID: $BUILD_ID</font></b>" >> ./test_simulator_results.html
+    echo "      </td>" >> ./test_simulator_results.html
+    echo "    </tr>" >> ./test_simulator_results.html
+    echo "  </table>" >> ./test_simulator_results.html
+    echo "  <br>" >> ./test_simulator_results.html
+    echo "   <table border = \"1\">" >> ./test_simulator_results.html
     echo "      <tr>" >> ./test_simulator_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Source Commit ID</td>" >> ./test_simulator_results.html
-    echo "        <td>$SOURCE_COMMIT_ID</td>" >> ./test_simulator_results.html
+    echo "        <td bgcolor = \"lightcyan\" >Build Start Time (UTC)</td>" >> ./test_simulator_results.html
+    echo "        <td>TEMPLATE_BUILD_TIME</td>" >> ./test_simulator_results.html
     echo "      </tr>" >> ./test_simulator_results.html
     echo "      <tr>" >> ./test_simulator_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Target Branch</td>" >> ./test_simulator_results.html
-    echo "        <td>$TARGET_BRANCH</td>" >> ./test_simulator_results.html
+    echo "        <td bgcolor = \"lightcyan\" >GIT Repository</td>" >> ./test_simulator_results.html
+    echo "        <td><a href=\"$GIT_URL\">$GIT_URL</a></td>" >> ./test_simulator_results.html
     echo "      </tr>" >> ./test_simulator_results.html
     echo "      <tr>" >> ./test_simulator_results.html
-    echo "        <td bgcolor = \"lightcyan\" >Target Commit ID</td>" >> ./test_simulator_results.html
-    echo "        <td>$TARGET_COMMIT_ID</td>" >> ./test_simulator_results.html
+    echo "        <td bgcolor = \"lightcyan\" >Job Trigger</td>" >> ./test_simulator_results.html
+    if [ $PU_TRIG -eq 1 ]; then echo "        <td>Push Event</td>" >> ./test_simulator_results.html; fi
+    if [ $MR_TRIG -eq 1 ]; then echo "        <td>Merge-Request</td>" >> ./test_simulator_results.html; fi
     echo "      </tr>" >> ./test_simulator_results.html
-fi
-echo "   </table>" >> ./test_simulator_results.html
-echo "   <h2>Test Summary</h2>" >> ./test_simulator_results.html
+    if [ $PU_TRIG -eq 1 ]
+    then
+        echo "      <tr>" >> ./test_simulator_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Branch</td>" >> ./test_simulator_results.html
+        echo "        <td>$SOURCE_BRANCH</td>" >> ./test_simulator_results.html
+        echo "      </tr>" >> ./test_simulator_results.html
+        echo "      <tr>" >> ./test_simulator_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Commit ID</td>" >> ./test_simulator_results.html
+        echo "        <td>$SOURCE_COMMIT_ID</td>" >> ./test_simulator_results.html
+        echo "      </tr>" >> ./test_simulator_results.html
+    fi
+    if [ $MR_TRIG -eq 1 ]
+    then
+        echo "      <tr>" >> ./test_simulator_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Source Branch</td>" >> ./test_simulator_results.html
+        echo "        <td>$SOURCE_BRANCH</td>" >> ./test_simulator_results.html
+        echo "      </tr>" >> ./test_simulator_results.html
+        echo "      <tr>" >> ./test_simulator_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Source Commit ID</td>" >> ./test_simulator_results.html
+        echo "        <td>$SOURCE_COMMIT_ID</td>" >> ./test_simulator_results.html
+        echo "      </tr>" >> ./test_simulator_results.html
+        echo "      <tr>" >> ./test_simulator_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Target Branch</td>" >> ./test_simulator_results.html
+        echo "        <td>$TARGET_BRANCH</td>" >> ./test_simulator_results.html
+        echo "      </tr>" >> ./test_simulator_results.html
+        echo "      <tr>" >> ./test_simulator_results.html
+        echo "        <td bgcolor = \"lightcyan\" >Target Commit ID</td>" >> ./test_simulator_results.html
+        echo "        <td>$TARGET_COMMIT_ID</td>" >> ./test_simulator_results.html
+        echo "      </tr>" >> ./test_simulator_results.html
+    fi
+    echo "   </table>" >> ./test_simulator_results.html
+    echo "   <h2>Test Summary</h2>" >> ./test_simulator_results.html
 
-ARCHIVES_LOC=archives/basic_sim/test
-if [ -d $ARCHIVES_LOC ]
-then
-    echo "   <h3>Basic Simulator Check</h3>" >> ./test_simulator_results.html
+    ARCHIVES_LOC=archives/basic_sim/test
+    if [ -d $ARCHIVES_LOC ]
+    then
+        echo "   <h3>Basic Simulator Check</h3>" >> ./test_simulator_results.html
 
-    echo "   <table border = \"1\">" >> ./test_simulator_results.html
-    echo "      <tr bgcolor = \"#33CCFF\" >" >> ./test_simulator_results.html
-    echo "        <th>Log File Name</th>" >> ./test_simulator_results.html
-    echo "        <th>Command</th>" >> ./test_simulator_results.html
-    echo "        <th>Status</th>" >> ./test_simulator_results.html
-    echo "        <th>Statistics</th>" >> ./test_simulator_results.html
-    echo "      </tr>" >> ./test_simulator_results.html
+        echo "   <table border = \"1\">" >> ./test_simulator_results.html
+        echo "      <tr bgcolor = \"#33CCFF\" >" >> ./test_simulator_results.html
+        echo "        <th>Log File Name</th>" >> ./test_simulator_results.html
+        echo "        <th>Command</th>" >> ./test_simulator_results.html
+        echo "        <th>Status</th>" >> ./test_simulator_results.html
+        echo "        <th>Statistics</th>" >> ./test_simulator_results.html
+        echo "      </tr>" >> ./test_simulator_results.html
 
-    TRANS_MODES=("fdd" "tdd")
-    BW_CASES=(05 10 20)
-    for TMODE in ${TRANS_MODES[@]}
-    do
-        for BW in ${BW_CASES[@]}
+        TRANS_MODES=("fdd" "tdd")
+        BW_CASES=(05 10 20)
+        for TMODE in ${TRANS_MODES[@]}
         do
-            ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}MHz_enb.log
-            UE_LOG=`echo $ENB_LOG | sed -e "s#enb#ue#"`
-            if [ -f $ENB_LOG ] && [ -f $UE_LOG ]
-            then
-                NAME_ENB=`echo $ENB_LOG | sed -e "s#$ARCHIVES_LOC/##"`
-                NAME_UE=`echo $UE_LOG | sed -e "s#$ARCHIVES_LOC/##"`
-                echo "      <tr>" >> ./test_simulator_results.html
-                echo "        <td>$NAME_ENB --- $NAME_UE</td>" >> ./test_simulator_results.html
-                echo "        <td>N/A</td>" >> ./test_simulator_results.html
-                NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG`
-                NB_UE_GOT_SYNC=`egrep -c "got sync" $UE_LOG`
-                NB_ENB_SYNCED_WITH_UE=`egrep -c "got UE capabilities for UE" $ENB_LOG`
-                if [ $NB_ENB_GOT_SYNC -eq 1 ] && [ $NB_UE_GOT_SYNC -eq 2 ] && [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
-                then
-                    echo "        <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
-                else
-                    echo "        <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
-                fi
-                echo "        <td><pre>" >> ./test_simulator_results.html
-                if [ $NB_ENB_GOT_SYNC -eq 1 ]
-                then
-                    echo "<font color = \"blue\">- eNB --> got sync</font>" >> ./test_simulator_results.html
-                else
-                    echo "<font color = \"red\"><b>- eNB NEVER got sync</b></font>" >> ./test_simulator_results.html
-                fi
-                if [ $NB_UE_GOT_SYNC -eq 2 ]
-                then
-                    echo "<font color = \"blue\">- UE --> got sync</font>" >> ./test_simulator_results.html
-                else
-                    echo "<font color = \"red\"><b>- UE NEVER got sync</b></font>" >> ./test_simulator_results.html
-                fi
-                if [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
-                then
-                    echo "<font color = \"blue\">- UE attached to eNB</font>" >> ./test_simulator_results.html
-                else
-                    echo "<font color = \"red\"><b>- UE NEVER attached to eNB</b></font>" >> ./test_simulator_results.html
-                fi
-                NB_SEGFAULT_ENB=`egrep -i -c "Segmentation Fault" $ENB_LOG`
-                if [ $NB_SEGFAULT_ENB -ne 0 ]
-                then
-                    echo "<font color = \"red\"><b>- eNB --> Segmentation Fault</b></font>" >> ./test_simulator_results.html
-                fi
-                NB_SEGFAULT_UE=`egrep -i -c "Segmentation Fault" $UE_LOG`
-                if [ $NB_SEGFAULT_UE -ne 0 ]
-                then
-                    echo "<font color = \"red\"><b>- UE --> Segmentation Fault</b></font>" >> ./test_simulator_results.html
-                fi
-                NB_ASSERTION_ENB=`egrep -i -c "Assertion" $ENB_LOG`
-                if [ $NB_ASSERTION_ENB -ne 0 ]
-                then
-                    echo "<font color = \"red\"><b>- eNB --> Assertion</b></font>" >> ./test_simulator_results.html
-                    awk 'BEGIN{assertion=10}{if(assertion < 3){print "    " $0; assertion++};if ($0 ~/Assertion/){print "    " $0;assertion=1}}END{}' $ENB_LOG >> ./test_simulator_results.html
-                fi
-                NB_ASSERTION_UE=`egrep -i -c "Assertion" $UE_LOG`
-                if [ $NB_ASSERTION_UE -ne 0 ]
-                then
-                    echo "<font color = \"red\"><b>- eNB --> Assertion</b></font>" >> ./test_simulator_results.html
-                    awk 'BEGIN{assertion=10}{if(assertion < 3){print "    " $0; assertion++};if ($0 ~/Assertion/){print "    " $0;assertion=1}}END{}' $UE_LOG >> ./test_simulator_results.html
-                fi
-                echo "        </pre></td>" >> ./test_simulator_results.html
-                echo "      </tr>" >> ./test_simulator_results.html
-            fi
-            PING_CASE=$ARCHIVES_LOC/${TMODE}_${BW}MHz_ping_ue.txt
-            if [ -f $PING_CASE ]
-            then
-                echo "      <tr>" >> ./test_simulator_results.html
-                NAME=`echo $PING_CASE | sed -e "s#$ARCHIVES_LOC/##"`
-                echo "        <td>$NAME</td>" >> ./test_simulator_results.html
-                CMD=`egrep "COMMAND IS" $PING_CASE | sed -e "s#COMMAND IS: ##"`
-                echo "        <td>$CMD</td>" >> ./test_simulator_results.html
-                FILE_COMPLETE=`egrep -c "ping statistics" $PING_CASE`
-                if [ $FILE_COMPLETE -eq 0 ]
+            for BW in ${BW_CASES[@]}
+            do
+                ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}MHz_enb.log
+                UE_LOG=`echo $ENB_LOG | sed -e "s#enb#ue#"`
+                if [ -f $ENB_LOG ] && [ -f $UE_LOG ]
                 then
-                    echo "        <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
+                    NAME_ENB=`echo $ENB_LOG | sed -e "s#$ARCHIVES_LOC/##"`
+                    NAME_UE=`echo $UE_LOG | sed -e "s#$ARCHIVES_LOC/##"`
+                    echo "      <tr>" >> ./test_simulator_results.html
+                    echo "        <td>$NAME_ENB --- $NAME_UE</td>" >> ./test_simulator_results.html
                     echo "        <td>N/A</td>" >> ./test_simulator_results.html
-                else
-                    NB_TR_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s# packets transmitted.*##"`
-                    NB_RC_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*packets transmitted, ##" -e "s# received,.*##"`
-                    if [ $NB_TR_PACKETS -eq $NB_RC_PACKETS ]
+                    NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG`
+                    NB_UE_GOT_SYNC=`egrep -c "got sync" $UE_LOG`
+                    NB_ENB_SYNCED_WITH_UE=`egrep -c "got UE capabilities for UE" $ENB_LOG`
+                    if [ $NB_ENB_GOT_SYNC -eq 1 ] && [ $NB_UE_GOT_SYNC -eq 2 ] && [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
                     then
                         echo "        <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
                     else
                         echo "        <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
                     fi
-                    echo "        <td>" >> ./test_simulator_results.html
-                    echo "            <pre>" >> ./test_simulator_results.html
-                    STATS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*received, ##" -e "s#, time.*##" -e "s# packet loss##"`
-                    echo "Packet Loss : $STATS" >> ./test_simulator_results.html
-                    RTTMIN=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[1] " " $5}'`
-                    echo "RTT Minimal : $RTTMIN" >> ./test_simulator_results.html
-                    RTTAVG=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[2] " " $5}'`
-                    echo "RTT Average : $RTTAVG" >> ./test_simulator_results.html
-                    RTTMAX=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[3] " " $5}'`
-                    echo "RTT Maximal : $RTTMAX" >> ./test_simulator_results.html
-                    echo "            </pre>" >> ./test_simulator_results.html
-                    echo "        </td>" >> ./test_simulator_results.html
-                fi
-                echo "      </tr>" >> ./test_simulator_results.html
-            fi
-    
-            if [ -f $ARCHIVES_LOC/${TMODE}_${BW}*iperf*dl*client*txt ]
-            then
-                IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}*iperf*client*txt`
-            else
-                echo "There are no iperf files"
-                IPERF_TESTS=""
-            fi
-            for IPERF_CASE in $IPERF_TESTS
-            do
-                echo "      <tr>" >> ./test_simulator_results.html
-                NAME=`echo $IPERF_CASE | sed -e "s#$ARCHIVES_LOC/##"`
-                echo "        <td>$NAME</td>" >> ./test_simulator_results.html
-                CMD=`egrep "COMMAND IS" $IPERF_CASE | sed -e "s#COMMAND IS: ##"`
-                echo "        <td>$CMD</td>" >> ./test_simulator_results.html
-                REQ_BITRATE=`echo $CMD | sed -e "s#^.*-b ##" -e "s#-i 1.*##"`
-                if [[ $REQ_BITRATE =~ .*K.* ]]
-                then
-                    REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#K##"`
-                    FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000.0" | bc -l`
-                fi
-                if [[ $REQ_BITRATE =~ .*M.* ]]
-                then
-                    REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#M##"`
-                    FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000.0" | bc -l`
+                    echo "        <td><pre>" >> ./test_simulator_results.html
+                    if [ $NB_ENB_GOT_SYNC -eq 1 ]
+                    then
+                        echo "<font color = \"blue\">- eNB --> got sync</font>" >> ./test_simulator_results.html
+                    else
+                        echo "<font color = \"red\"><b>- eNB NEVER got sync</b></font>" >> ./test_simulator_results.html
+                    fi
+                    if [ $NB_UE_GOT_SYNC -eq 2 ]
+                    then
+                        echo "<font color = \"blue\">- UE --> got sync</font>" >> ./test_simulator_results.html
+                    else
+                        echo "<font color = \"red\"><b>- UE NEVER got sync</b></font>" >> ./test_simulator_results.html
+                    fi
+                    if [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
+                    then
+                        echo "<font color = \"blue\">- UE attached to eNB</font>" >> ./test_simulator_results.html
+                    else
+                        echo "<font color = \"red\"><b>- UE NEVER attached to eNB</b></font>" >> ./test_simulator_results.html
+                    fi
+                    NB_SEGFAULT_ENB=`egrep -i -c "Segmentation Fault" $ENB_LOG`
+                    if [ $NB_SEGFAULT_ENB -ne 0 ]
+                    then
+                        echo "<font color = \"red\"><b>- eNB --> Segmentation Fault</b></font>" >> ./test_simulator_results.html
+                    fi
+                    NB_SEGFAULT_UE=`egrep -i -c "Segmentation Fault" $UE_LOG`
+                    if [ $NB_SEGFAULT_UE -ne 0 ]
+                    then
+                        echo "<font color = \"red\"><b>- UE --> Segmentation Fault</b></font>" >> ./test_simulator_results.html
+                    fi
+                    NB_ASSERTION_ENB=`egrep -i -c "Assertion" $ENB_LOG`
+                    if [ $NB_ASSERTION_ENB -ne 0 ]
+                    then
+                        echo "<font color = \"red\"><b>- eNB --> Assertion</b></font>" >> ./test_simulator_results.html
+                        awk 'BEGIN{assertion=10}{if(assertion < 3){print "    " $0; assertion++};if ($0 ~/Assertion/){print "    " $0;assertion=1}}END{}' $ENB_LOG >> ./test_simulator_results.html
+                    fi
+                    NB_ASSERTION_UE=`egrep -i -c "Assertion" $UE_LOG`
+                    if [ $NB_ASSERTION_UE -ne 0 ]
+                    then
+                        echo "<font color = \"red\"><b>- eNB --> Assertion</b></font>" >> ./test_simulator_results.html
+                        awk 'BEGIN{assertion=10}{if(assertion < 3){print "    " $0; assertion++};if ($0 ~/Assertion/){print "    " $0;assertion=1}}END{}' $UE_LOG >> ./test_simulator_results.html
+                    fi
+                    echo "        </pre></td>" >> ./test_simulator_results.html
+                    echo "      </tr>" >> ./test_simulator_results.html
                 fi
-                if [[ $REQ_BITRATE =~ .*G.* ]]
+                PING_CASE=$ARCHIVES_LOC/${TMODE}_${BW}MHz_ping_ue.txt
+                if [ -f $PING_CASE ]
                 then
-                    REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#G##"`
-                    FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000000.0" | bc -l`
+                    echo "      <tr>" >> ./test_simulator_results.html
+                    NAME=`echo $PING_CASE | sed -e "s#$ARCHIVES_LOC/##"`
+                    echo "        <td>$NAME</td>" >> ./test_simulator_results.html
+                    CMD=`egrep "COMMAND IS" $PING_CASE | sed -e "s#COMMAND IS: ##"`
+                    echo "        <td>$CMD</td>" >> ./test_simulator_results.html
+                    FILE_COMPLETE=`egrep -c "ping statistics" $PING_CASE`
+                    if [ $FILE_COMPLETE -eq 0 ]
+                    then
+                        echo "        <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
+                        echo "        <td>N/A</td>" >> ./test_simulator_results.html
+                    else
+                        NB_TR_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s# packets transmitted.*##"`
+                        NB_RC_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*packets transmitted, ##" -e "s# received,.*##"`
+                        if [ $NB_TR_PACKETS -eq $NB_RC_PACKETS ]
+                        then
+                            echo "        <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
+                        else
+                            echo "        <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
+                        fi
+                        echo "        <td>" >> ./test_simulator_results.html
+                        echo "            <pre>" >> ./test_simulator_results.html
+                        STATS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*received, ##" -e "s#, time.*##" -e "s# packet loss##"`
+                        echo "Packet Loss : $STATS" >> ./test_simulator_results.html
+                        RTTMIN=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[1] " " $5}'`
+                        echo "RTT Minimal : $RTTMIN" >> ./test_simulator_results.html
+                        RTTAVG=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[2] " " $5}'`
+                        echo "RTT Average : $RTTAVG" >> ./test_simulator_results.html
+                        RTTMAX=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[3] " " $5}'`
+                        echo "RTT Maximal : $RTTMAX" >> ./test_simulator_results.html
+                        echo "            </pre>" >> ./test_simulator_results.html
+                        echo "        </td>" >> ./test_simulator_results.html
+                    fi
+                    echo "      </tr>" >> ./test_simulator_results.html
                 fi
-                FILE_COMPLETE=`egrep -c "Server Report" $IPERF_CASE`
-                if [ $FILE_COMPLETE -eq 0 ]
+        
+                if [ -f $ARCHIVES_LOC/${TMODE}_${BW}*iperf*dl*client*txt ]
                 then
-                    echo "        <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
-                    SERVER_FILE=`echo $IPERF_CASE | sed -e "s#client#server#"`
-                    FLOAT_EFF_BITRATE=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*Bytes *##" -e "s#sec *.*#sec#" | awk 'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; printf "%.0f", br}'`
-                    EFFECTIVE_BITRATE=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*Bytes *##" -e "s#sec *.*#sec#" | awk 'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; if(br>1000000){printf "%.2f MBits/sec", br/1000000}}'`
-                    PERF=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.2f", $0}'`
-                    JITTER=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*/sec *##" -e "s# *ms.*##" | awk 'BEGIN{s=0;n=0}{n++;s+=$1}END{jitter=s/n; printf "%.3f ms", jitter}'`
-                    PACKETLOSS_NOSIGN=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*(##" -e "s#%.*##" | awk 'BEGIN{s=0;n=0}{n++;s+=$1}END{per=s/n; printf "%.1f", per}'`
-                    PACKETLOSS=`echo "${PACKETLOSS_NOSIGN}%"`
+                    IPERF_TESTS=`ls $ARCHIVES_LOC/${TMODE}_${BW}*iperf*client*txt`
                 else
-                    EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
-                    if [[ $EFFECTIVE_BITRATE =~ .*Kbits/sec.* ]]
+                    echo "There are no iperf files"
+                    IPERF_TESTS=""
+                fi
+                for IPERF_CASE in $IPERF_TESTS
+                do
+                    echo "      <tr>" >> ./test_simulator_results.html
+                    NAME=`echo $IPERF_CASE | sed -e "s#$ARCHIVES_LOC/##"`
+                    echo "        <td>$NAME</td>" >> ./test_simulator_results.html
+                    CMD=`egrep "COMMAND IS" $IPERF_CASE | sed -e "s#COMMAND IS: ##"`
+                    echo "        <td>$CMD</td>" >> ./test_simulator_results.html
+                    REQ_BITRATE=`echo $CMD | sed -e "s#^.*-b ##" -e "s#-i 1.*##"`
+                    if [[ $REQ_BITRATE =~ .*K.* ]]
                     then
-                        EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Kbits/sec.*##"`
-                        FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000" | bc -l`
+                        REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#K##"`
+                        FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000.0" | bc -l`
                     fi
-                    if [[ $EFFECTIVE_BITRATE =~ .*Mbits/sec.* ]]
+                    if [[ $REQ_BITRATE =~ .*M.* ]]
                     then
-                        EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Mbits/sec.*##"`
-                        FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000000" | bc -l`
+                        REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#M##"`
+                        FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000.0" | bc -l`
                     fi
-                    if [[ $EFFECTIVE_BITRATE =~ .*Gbits/sec.* ]]
+                    if [[ $REQ_BITRATE =~ .*G.* ]]
                     then
-                        EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Gbits/sec.*##"`
-                        FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000000000" | bc -l`
+                        REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#G##"`
+                        FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000000.0" | bc -l`
                     fi
-                    PERF=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.2f", $0}'`
-                    PERF_INT=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.0f", $0}'`
-                    if [[ $PERF_INT -lt 90 ]]
+                    FILE_COMPLETE=`egrep -c "Server Report" $IPERF_CASE`
+                    if [ $FILE_COMPLETE -eq 0 ]
                     then
                         echo "        <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
+                        SERVER_FILE=`echo $IPERF_CASE | sed -e "s#client#server#"`
+                        FLOAT_EFF_BITRATE=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*Bytes *##" -e "s#sec *.*#sec#" | awk 'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; printf "%.0f", br}'`
+                        EFFECTIVE_BITRATE=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*Bytes *##" -e "s#sec *.*#sec#" | awk 'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; if(br>1000000){printf "%.2f MBits/sec", br/1000000}}'`
+                        PERF=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.2f", $0}'`
+                        JITTER=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*/sec *##" -e "s# *ms.*##" | awk 'BEGIN{s=0;n=0}{n++;s+=$1}END{jitter=s/n; printf "%.3f ms", jitter}'`
+                        PACKETLOSS_NOSIGN=`grep --color=never sec $SERVER_FILE | sed -e "s#^.*(##" -e "s#%.*##" | awk 'BEGIN{s=0;n=0}{n++;s+=$1}END{per=s/n; printf "%.1f", per}'`
+                        PACKETLOSS=`echo "${PACKETLOSS_NOSIGN}%"`
                     else
-                        echo "        <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
+                        EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
+                        if [[ $EFFECTIVE_BITRATE =~ .*Kbits/sec.* ]]
+                        then
+                            EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Kbits/sec.*##"`
+                            FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000" | bc -l`
+                        fi
+                        if [[ $EFFECTIVE_BITRATE =~ .*Mbits/sec.* ]]
+                        then
+                            EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Mbits/sec.*##"`
+                            FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000000" | bc -l`
+                        fi
+                        if [[ $EFFECTIVE_BITRATE =~ .*Gbits/sec.* ]]
+                        then
+                            EFFECTIVE_BITRATE=`echo $EFFECTIVE_BITRATE | sed -e "s# *Gbits/sec.*##"`
+                            FLOAT_EFF_BITRATE=`echo "$EFFECTIVE_BITRATE * 1000000000" | bc -l`
+                        fi
+                        PERF=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.2f", $0}'`
+                        PERF_INT=`echo "100 * $FLOAT_EFF_BITRATE / $FLOAT_REQ_BITRATE" | bc -l | awk '{printf "%.0f", $0}'`
+                        if [[ $PERF_INT -lt 90 ]]
+                        then
+                            echo "        <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
+                        else
+                            echo "        <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
+                        fi
+                        EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
+                        JITTER=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*Mbits/sec *##" -e "s#ms.*#ms#"`
+                        PACKETLOSS=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*(##" -e "s#).*##"`
                     fi
-                    EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
-                    JITTER=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*Mbits/sec *##" -e "s#ms.*#ms#"`
-                    PACKETLOSS=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*(##" -e "s#).*##"`
-                fi
-                echo "        <td>" >> ./test_simulator_results.html
-                echo "            <pre>" >> ./test_simulator_results.html
-                echo "Bitrate      : $EFFECTIVE_BITRATE" >> ./test_simulator_results.html
-                echo "Bitrate Perf : $PERF %" >> ./test_simulator_results.html
-                echo "Jitter       : $JITTER" >> ./test_simulator_results.html
-                echo "Packet Loss  : $PACKETLOSS" >> ./test_simulator_results.html
-                echo "            </pre>" >> ./test_simulator_results.html
-                echo "        </td>" >> ./test_simulator_results.html
-                echo "      </tr>" >> ./test_simulator_results.html
+                    echo "        <td>" >> ./test_simulator_results.html
+                    echo "            <pre>" >> ./test_simulator_results.html
+                    echo "Bitrate      : $EFFECTIVE_BITRATE" >> ./test_simulator_results.html
+                    echo "Bitrate Perf : $PERF %" >> ./test_simulator_results.html
+                    echo "Jitter       : $JITTER" >> ./test_simulator_results.html
+                    echo "Packet Loss  : $PACKETLOSS" >> ./test_simulator_results.html
+                    echo "            </pre>" >> ./test_simulator_results.html
+                    echo "        </td>" >> ./test_simulator_results.html
+                    echo "      </tr>" >> ./test_simulator_results.html
+                done
             done
         done
-    done
 
-    echo "   </table>" >> ./test_simulator_results.html
-fi
-
-ARCHIVES_LOC=archives/phy_sim/test
-if [ -d $ARCHIVES_LOC ]
-then
-    echo "   <h3>Physical Simulators Check</h3>" >> ./test_simulator_results.html
-
-    echo "   <table border = \"1\">" >> ./test_simulator_results.html
-    echo "      <tr bgcolor = \"#33CCFF\" >" >> ./test_simulator_results.html
-    echo "        <th>Log File Name</th>" >> ./test_simulator_results.html
-    echo "        <th>Nb Tests</th>" >> ./test_simulator_results.html
-    echo "        <th>Nb Errors</th>" >> ./test_simulator_results.html
-    echo "        <th>Nb Failures</th>" >> ./test_simulator_results.html
-    echo "        <th>Nb Failures</th>" >> ./test_simulator_results.html
-    echo "      </tr>" >> ./test_simulator_results.html
-
-    XML_TESTS=`ls $ARCHIVES_LOC/*xml`
-    for XML_FILE in $XML_TESTS
-    do
-        echo "      <tr>" >> ./test_simulator_results.html
-        NAME=`echo $XML_FILE | sed -e "s#$ARCHIVES_LOC/##"`
-        NB_TESTS=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*tests='##" -e "s#' *time=.*##"`
-        NB_ERRORS=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*errors='##" -e "s#' *failures=.*##"`
-        NB_FAILURES=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*failures='##" -e "s#' *hostname=.*##"`
-        NB_SKIPPED=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*skipped='##" -e "s#' *tests=.*##"`
-        if [ $NB_ERRORS -eq 0 ] && [ $NB_FAILURES -eq 0 ]
-        then
-            echo "        <td bgcolor = \"green\" >$NAME</td>" >> ./test_simulator_results.html
-        else
-            echo "        <td bgcolor = \"red\" >$NAME</td>" >> ./test_simulator_results.html
-        fi
-        echo "        <td>$NB_TESTS</td>" >> ./test_simulator_results.html
-        echo "        <td>$NB_ERRORS</td>" >> ./test_simulator_results.html
-        echo "        <td>$NB_FAILURES</td>" >> ./test_simulator_results.html
-        echo "        <td>$NB_SKIPPED</td>" >> ./test_simulator_results.html
-        echo "      </tr>" >> ./test_simulator_results.html
-    done
+        echo "   </table>" >> ./test_simulator_results.html
+    fi
 
-    echo "   </table>" >> ./test_simulator_results.html
+    ARCHIVES_LOC=archives/phy_sim/test
+    if [ -d $ARCHIVES_LOC ]
+    then
+        echo "   <h3>Physical Simulators Check</h3>" >> ./test_simulator_results.html
 
-    echo "   <h4>Details</h4>" >> ./test_simulator_results.html
-    for XML_FILE in $XML_TESTS
-    do
         echo "   <table border = \"1\">" >> ./test_simulator_results.html
         echo "      <tr bgcolor = \"#33CCFF\" >" >> ./test_simulator_results.html
-        echo "        <th>Test Name</th>" >> ./test_simulator_results.html
-        echo "        <th>Description</th>" >> ./test_simulator_results.html
-        echo "        <th>Result</th>" >> ./test_simulator_results.html
-        echo "        <th>Time</th>" >> ./test_simulator_results.html
+        echo "        <th>Log File Name</th>" >> ./test_simulator_results.html
+        echo "        <th>Nb Tests</th>" >> ./test_simulator_results.html
+        echo "        <th>Nb Errors</th>" >> ./test_simulator_results.html
+        echo "        <th>Nb Failures</th>" >> ./test_simulator_results.html
+        echo "        <th>Nb Failures</th>" >> ./test_simulator_results.html
         echo "      </tr>" >> ./test_simulator_results.html
-        TESTCASES_LIST=`sed -e "s# #@#g" $XML_FILE | grep testcase`
-        for TESTCASE in $TESTCASES_LIST
+
+        XML_TESTS=`ls $ARCHIVES_LOC/*xml`
+        for XML_FILE in $XML_TESTS
         do
             echo "      <tr>" >> ./test_simulator_results.html
-            NAME=`echo $TESTCASE | sed -e "s#^.*name='##" -e "s#'@description=.*##" | sed -e "s#@# #g"`
-            echo "          <td>$NAME</td>" >> ./test_simulator_results.html
-            DESC=`echo $TESTCASE | sed -e "s#^.*description='##" -e "s#'@Run_result=.*##" | sed -e "s#@# #g"`
-            echo "          <td>$DESC</td>" >> ./test_simulator_results.html
-            RESULT=`echo $TESTCASE | sed -e "s#^.*RESULT='##" -e "s#'.*##" | sed -e "s#@# #g"`
-            if [[ $RESULT =~ .*PASS.* ]]
+            NAME=`echo $XML_FILE | sed -e "s#$ARCHIVES_LOC/##"`
+            NB_TESTS=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*tests='##" -e "s#' *time=.*##"`
+            NB_ERRORS=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*errors='##" -e "s#' *failures=.*##"`
+            NB_FAILURES=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*failures='##" -e "s#' *hostname=.*##"`
+            NB_SKIPPED=`egrep "testsuite errors" $XML_FILE | sed -e "s#^.*skipped='##" -e "s#' *tests=.*##"`
+            if [ $NB_ERRORS -eq 0 ] && [ $NB_FAILURES -eq 0 ]
             then
-                echo "          <td bgcolor = \"green\" >$RESULT</td>" >> ./test_simulator_results.html
+                echo "        <td bgcolor = \"green\" >$NAME</td>" >> ./test_simulator_results.html
             else
-                echo "          <td bgcolor = \"red\" >$RESULT</td>" >> ./test_simulator_results.html
+                echo "        <td bgcolor = \"red\" >$NAME</td>" >> ./test_simulator_results.html
             fi
-            TIME=`echo $TESTCASE | sed -e "s#^.*time='##" -e "s#'@RESULT=.*##" | sed -e "s#@# #g"`
-            echo "          <td>$TIME</td>" >> ./test_simulator_results.html
+            echo "        <td>$NB_TESTS</td>" >> ./test_simulator_results.html
+            echo "        <td>$NB_ERRORS</td>" >> ./test_simulator_results.html
+            echo "        <td>$NB_FAILURES</td>" >> ./test_simulator_results.html
+            echo "        <td>$NB_SKIPPED</td>" >> ./test_simulator_results.html
             echo "      </tr>" >> ./test_simulator_results.html
         done
+
         echo "   </table>" >> ./test_simulator_results.html
-    done
-fi
 
-echo "</body>" >> ./test_simulator_results.html
-echo "</html>" >> ./test_simulator_results.html
+        echo "   <h4>Details</h4>" >> ./test_simulator_results.html
+        for XML_FILE in $XML_TESTS
+        do
+            echo "   <table border = \"1\">" >> ./test_simulator_results.html
+            echo "      <tr bgcolor = \"#33CCFF\" >" >> ./test_simulator_results.html
+            echo "        <th>Test Name</th>" >> ./test_simulator_results.html
+            echo "        <th>Description</th>" >> ./test_simulator_results.html
+            echo "        <th>Result</th>" >> ./test_simulator_results.html
+            echo "        <th>Time</th>" >> ./test_simulator_results.html
+            echo "      </tr>" >> ./test_simulator_results.html
+            PREV_SECTION=0
+            PREV_TIME_IN_SECS=0
+            TESTCASES_LIST=`sed -e "s# #@#g" $XML_FILE | grep testcase`
+            for TESTCASE in $TESTCASES_LIST
+            do
+                NAME=`echo $TESTCASE | sed -e "s#^.*name='##" -e "s#'@description=.*##" | sed -e "s#@# #g"`
+                SECTION=`echo $NAME | sed -e "s#\..*##"`
+                if [ $SECTION != $PREV_SECTION ]
+                then
+                    echo "      <tr bgcolor = \"#8FBC8F\" >" >> ./test_simulator_results.html
+                    echo "          <td align = \"center\" colspan = 4 >\"$SECTION\" series</td>" >> ./test_simulator_results.html
+                    echo "      </tr>" >> ./test_simulator_results.html
+                    PREV_SECTION=$SECTION
+                    PREV_TIME_IN_SECS=0
+                fi
+                DESC=`echo $TESTCASE | sed -e "s#^.*description='##" -e "s#'@Run_result=.*##" | sed -e "s#@# #g"`
+                RESULT=`echo $TESTCASE | sed -e "s#^.*RESULT='##" -e "s#'.*##" | sed -e "s#@# #g"`
+                TIME_IN_SECS=`echo $TESTCASE | sed -e "s#^.*time='##" -e "s#'@RESULT=.*##" | sed -e "s#@# #g" -e "s# s.*##"`
+                TIME=`echo "$TIME_IN_SECS - $PREV_TIME_IN_SECS" | bc -l | awk '{printf "%.2f s", $0}'`
+                PREV_TIME_IN_SECS=$TIME_IN_SECS
+                echo "      <tr>" >> ./test_simulator_results.html
+                echo "          <td>$NAME</td>" >> ./test_simulator_results.html
+                echo "          <td>$DESC</td>" >> ./test_simulator_results.html
+                if [[ $RESULT =~ .*PASS.* ]]
+                then
+                    echo "          <td bgcolor = \"green\" >$RESULT</td>" >> ./test_simulator_results.html
+                else
+                    SPLITTED_LINE=`echo -e $TESTCASE | sed -e "s#@#\n#g"`
+                    NB_RUNS=`echo -e "${SPLITTED_LINE}" | grep -v Run_result | egrep -c "Run_"`
+                    NB_FAILS=`echo -e "${SPLITTED_LINE}" | grep -v Run_result | egrep -c "=FAIL"`
+                    echo "          <td bgcolor = \"red\" >${RESULT} (${NB_FAILS}/${NB_RUNS})</td>" >> ./test_simulator_results.html
+                fi
+                echo "          <td>$TIME</td>" >> ./test_simulator_results.html
+                echo "      </tr>" >> ./test_simulator_results.html
+            done
+            echo "   </table>" >> ./test_simulator_results.html
+        done
+    fi
 
-exit 0
+    echo "</body>" >> ./test_simulator_results.html
+    echo "</html>" >> ./test_simulator_results.html
+}
diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh
index 0d4f116179c3fe57ecb1b7fbf22623d2c34fa332..527fe48edb25655587bacbef98f669fb4c8938ab 100755
--- a/ci-scripts/runTestOnVM.sh
+++ b/ci-scripts/runTestOnVM.sh
@@ -20,15 +20,18 @@
 # *      contact@openairinterface.org
 # */
 
-function usage {
-    echo "OAI VM Test Run script"
+function run_test_usage {
+    echo "OAI CI VM script"
     echo "   Original Author: Raphael Defosseux"
+    echo "   Requirements:"
+    echo "     -- uvtool uvtool-libvirt apt-cacher"
+    echo "     -- xenial image already synced"
     echo "   Default:"
     echo "     -- eNB with USRP"
     echo ""
     echo "Usage:"
     echo "------"
-    echo "    runTestOnVM.sh [OPTIONS]"
+    echo "    oai-ci-vm-tool test [OPTIONS]"
     echo ""
     echo "Options:"
     echo "--------"
@@ -41,12 +44,7 @@ function usage {
     echo "    --workspace #### OR -ws ####"
     echo "    Specify the workspace."
     echo ""
-    echo "    --variant enb-usrp     OR -v1"
-    echo "    --variant basic-sim    OR -v2"
-    echo "    --variant phy-sim      OR -v3"
-    echo "    --variant cppcheck     OR -v4"
-    echo "    --variant enb-ethernet OR -v7"
-    echo "    --variant ue-ethernet  OR -v8"
+    variant_usage
     echo "    Specify the variant to build."
     echo ""
     echo "    --keep-vm-alive OR -k"
@@ -57,19 +55,6 @@ function usage {
     echo ""
 }
 
-function variant_usage {
-    echo "OAI VM Test Run script"
-    echo "   Original Author: Raphael Defosseux"
-    echo ""
-    echo "    --variant enb-usrp     OR -v1"
-    echo "    --variant basic-sim    OR -v2"
-    echo "    --variant phy-sim      OR -v3"
-    echo "    --variant cppcheck     OR -v4"
-    echo "    --variant enb-ethernet OR -v7"
-    echo "    --variant ue-ethernet  OR -v8"
-    echo ""
-}
-
 function start_basic_sim_enb {
     local LOC_VM_IP_ADDR=$2
     local LOC_EPC_IP_ADDR=$3
@@ -95,6 +80,7 @@ function start_basic_sim_enb {
     echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE\" > ./my-lte-softmodem-run.sh " >> $1
     echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
     echo "cat ./my-lte-softmodem-run.sh" >> $1
+    echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE; fi" >> $1
     echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/enb -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
 
     ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1
@@ -112,6 +98,7 @@ function start_basic_sim_ue {
     echo "echo \"./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_NB_RBS --ue-rxgain 140\" > ./my-lte-uesoftmodem-run.sh" >> $1
     echo "chmod 775 ./my-lte-uesoftmodem-run.sh" >> $1
     echo "cat ./my-lte-uesoftmodem-run.sh" >> $1
+    echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE; fi" >> $1
     echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/ue -o /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ./my-lte-uesoftmodem-run.sh" >> $1
 
     ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
@@ -299,740 +286,619 @@ function terminate_ltebox_epc {
     rm $1
 }
 
-if [ $# -lt 1 ] || [ $# -gt 9 ]
-then
-    echo "Syntax Error: not the correct number of arguments"
-    echo ""
-    usage
-    exit 1
-fi
-
-VM_TEMPLATE=ci-
-JOB_NAME=XX
-BUILD_ID=XX
-VM_NAME=ci-enb-usrp
-ARCHIVES_LOC=enb_usrp/test
-KEEP_VM_ALIVE=0
-RUN_OPTIONS="none"
-STATUS=0
-
-while [[ $# -gt 0 ]]
-do
-key="$1"
-
-case $key in
-    -h|--help)
-    shift
-    usage
-    exit 0
-    ;;
-    -jn|--job-name)
-    JOB_NAME="$2"
-    shift
-    shift
-    ;;
-    -id|--build-id)
-    BUILD_ID="$2"
-    shift
-    shift
-    ;;
-    -ws|--workspace)
-    JENKINS_WKSP="$2"
-    shift
-    shift
-    ;;
-    -k|--keep-vm-alive)
-    KEEP_VM_ALIVE=1
-    shift
-    ;;
-    -v1)
-    VM_NAME=ci-enb-usrp
-    shift
-    ;;
-    -v2)
-    VM_NAME=ci-basic-sim
-    RUN_OPTIONS="complex"
-    ARCHIVES_LOC=basic_sim/test
-    shift
-    ;;
-    -v3)
-    VM_NAME=ci-phy-sim
-    RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b"
-    ARCHIVES_LOC=phy_sim/test
-    shift
-    ;;
-    -v4)
-    VM_NAME=ci-cppcheck
-    shift
-    ;;
-    -v7)
-    VM_NAME=ci-enb-ethernet
-    shift
-    ;;
-    -v8)
-    VM_NAME=ci-ue-ethernet
-    shift
-    ;;
-    --variant)
-    variant="$2"
-    case $variant in
-        enb-usrp)
-        VM_NAME=ci-enb-usrp
-        ;;
-        basic-sim)
-        VM_NAME=ci-basic-sim
-        RUN_OPTIONS="complex"
-        ARCHIVES_LOC=basic_sim/test
-        ;;
-        phy-sim)
-        VM_NAME=ci-phy-sim
-        RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b"
-        ARCHIVES_LOC=phy_sim/test
-        ;;
-        cppcheck)
-        VM_NAME=ci-cppcheck
-        ;;
-        enb-ethernet)
-        VM_NAME=ci-enb-ethernet
-        ;;
-        ue-ethernet)
-        VM_NAME=ci-ue-ethernet
-        ;;
-        *)
-        echo ""
-        echo "Syntax Error: Invalid Variant option -> $variant"
-        echo ""
-        variant_usage
-        exit 1
-    esac
-    shift
-    shift
-    ;;
-    *)
-    echo "Syntax Error: unknown option: $key"
-    echo ""
-    usage
-    exit 1
-esac
-done
-
-if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
-then
-    VM_TEMPLATE=ci-
-else
-    VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
-fi
-
-VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"`
-VM_CMDS=${VM_NAME}_cmds.txt
-ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC}
-
-echo "VM_NAME             = $VM_NAME"
-echo "VM_CMD_FILE         = $VM_CMDS"
-echo "JENKINS_WKSP        = $JENKINS_WKSP"
-echo "ARCHIVES_LOC        = $ARCHIVES_LOC"
-
-echo "############################################################"
-echo "Waiting for VM to be started"
-echo "############################################################"
-uvt-kvm wait $VM_NAME --insecure
-
-VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
-echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
-
-if [ "$RUN_OPTIONS" == "none" ]
-then
-    echo "No run on VM testing for this variant currently"
-    exit $STATUS
-fi
-
-if [[ $RUN_OPTIONS =~ .*run_exec_autotests.* ]]
-then
+function run_test_on_vm {
     echo "############################################################"
-    echo "Running test script on VM ($VM_NAME)"
+    echo "OAI CI VM script"
     echo "############################################################"
-    echo "echo \"sudo apt-get --yes --quiet install bc \"" > $VM_CMDS
-    echo "sudo apt-get update > bc-install.txt 2>&1" >> $VM_CMDS
-    echo "sudo apt-get --yes install bc >> bc-install.txt 2>&1" >> $VM_CMDS
-    echo "cd tmp" >> $VM_CMDS
-    echo "echo \"source oaienv\"" >> $VM_CMDS
-    echo "source oaienv" >> $VM_CMDS
-    echo "echo \"cd cmake_targets/autotests\"" >> $VM_CMDS
-    echo "cd cmake_targets/autotests" >> $VM_CMDS
-    echo "echo \"rm -Rf log\"" >> $VM_CMDS
-    echo "rm -Rf log" >> $VM_CMDS
-    echo "$RUN_OPTIONS" | sed -e 's@"@\\"@g' -e 's@^@echo "@' -e 's@$@"@' >> $VM_CMDS
-    echo "$RUN_OPTIONS" >> $VM_CMDS
-    echo "cp /home/ubuntu/bc-install.txt log" >> $VM_CMDS
-    echo "cd log" >> $VM_CMDS
-    echo "zip -r -qq tmp.zip *.* 0*" >> $VM_CMDS
-
-    ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+    echo "VM_NAME             = $VM_NAME"
+    echo "VM_CMD_FILE         = $VM_CMDS"
+    echo "JENKINS_WKSP        = $JENKINS_WKSP"
+    echo "ARCHIVES_LOC        = $ARCHIVES_LOC"
 
     echo "############################################################"
-    echo "Creating a tmp folder to store results and artifacts"
+    echo "Waiting for VM to be started"
     echo "############################################################"
+    uvt-kvm wait $VM_NAME --insecure
 
-    if [ -d $ARCHIVES_LOC ]
-    then
-        rm -Rf $ARCHIVES_LOC
-    fi
-    mkdir --parents $ARCHIVES_LOC
+    VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
+    echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
 
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/autotests/log/tmp.zip $ARCHIVES_LOC
-    pushd $ARCHIVES_LOC
-    unzip -qq -DD tmp.zip
-    rm tmp.zip
-    if [ -f results_autotests.xml ]
+    if [ "$RUN_OPTIONS" == "none" ]
     then
-        FUNCTION=`echo $VM_NAME | sed -e "s@$VM_TEMPLATE@@"`
-        NEW_NAME=`echo "results_autotests.xml" | sed -e "s@results_autotests@results_autotests-$FUNCTION@"`
-        echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $NEW_NAME
-        echo "<?xml-stylesheet type=\"text/xsl\" href=\"$FUNCTION.xsl\" ?>" >> $NEW_NAME
-        cat results_autotests.xml >> $NEW_NAME
-        sed -e "s@TEMPLATE@$FUNCTION@" $JENKINS_WKSP/ci-scripts/template.xsl > $FUNCTION.xsl
-        #mv results_autotests.xml $NEW_NAME
-        rm results_autotests.xml
+        echo "No run on VM testing for this variant currently"
+        exit $STATUS
     fi
-    popd
 
-    if [ $KEEP_VM_ALIVE -eq 0 ]
+    if [[ $RUN_OPTIONS =~ .*run_exec_autotests.* ]]
     then
         echo "############################################################"
-        echo "Destroying VM"
+        echo "Running test script on VM ($VM_NAME)"
         echo "############################################################"
-        uvt-kvm destroy $VM_NAME
-        ssh-keygen -R $VM_IP_ADDR
-    fi
-    rm -f $VM_CMDS
-
-    echo "############################################################"
-    echo "Checking run status"
-    echo "############################################################"
-
-    LOG_FILES=`ls $ARCHIVES_LOC/results_autotests*.xml`
-    NB_FOUND_FILES=0
-    NB_RUNS=0
-    NB_FAILURES=0
-
-    for FULLFILE in $LOG_FILES
-    do
-        TESTSUITES=`egrep "testsuite errors" $FULLFILE`
-        for TESTSUITE in $TESTSUITES
-        do
-            if [[ "$TESTSUITE" == *"tests="* ]]
-            then
-                RUNS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
-                NB_RUNS=$((NB_RUNS + RUNS))
-            fi
-            if [[ "$TESTSUITE" == *"failures="* ]]
-            then
-                FAILS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
-                NB_FAILURES=$((NB_FAILURES + FAILS))
-            fi
-        done
-        NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
-    done
-
-    echo "NB_FOUND_FILES = $NB_FOUND_FILES"
-    echo "NB_RUNS        = $NB_RUNS"
-    echo "NB_FAILURES    = $NB_FAILURES"
+        echo "echo \"sudo apt-get --yes --quiet install bc \"" > $VM_CMDS
+        echo "sudo apt-get update > bc-install.txt 2>&1" >> $VM_CMDS
+        echo "sudo apt-get --yes install bc >> bc-install.txt 2>&1" >> $VM_CMDS
+        echo "cd tmp" >> $VM_CMDS
+        echo "echo \"source oaienv\"" >> $VM_CMDS
+        echo "source oaienv" >> $VM_CMDS
+        echo "echo \"cd cmake_targets/autotests\"" >> $VM_CMDS
+        echo "cd cmake_targets/autotests" >> $VM_CMDS
+        echo "echo \"rm -Rf log\"" >> $VM_CMDS
+        echo "rm -Rf log" >> $VM_CMDS
+        echo "$RUN_OPTIONS" | sed -e 's@"@\\"@g' -e 's@^@echo "@' -e 's@$@"@' >> $VM_CMDS
+        echo "$RUN_OPTIONS" >> $VM_CMDS
+        echo "cp /home/ubuntu/bc-install.txt log" >> $VM_CMDS
+        echo "cd log" >> $VM_CMDS
+        echo "zip -r -qq tmp.zip *.* 0*" >> $VM_CMDS
+
+        ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
 
-    if [ $NB_FOUND_FILES -eq 0 ]; then STATUS=-1; fi
-    if [ $NB_RUNS -eq 0 ]; then STATUS=-1; fi
-    if [ $NB_FAILURES -ne 0 ]; then STATUS=-1; fi
+        echo "############################################################"
+        echo "Creating a tmp folder to store results and artifacts"
+        echo "############################################################"
 
-fi
+        if [ -d $ARCHIVES_LOC ]
+        then
+            rm -Rf $ARCHIVES_LOC
+        fi
+        mkdir --parents $ARCHIVES_LOC
 
-if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-basic-sim.* ]]
-then
-    PING_STATUS=0
-    IPERF_STATUS=0
-    if [ -d $ARCHIVES_LOC ]
-    then
-        rm -Rf $ARCHIVES_LOC
-    fi
-    mkdir --parents $ARCHIVES_LOC
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/autotests/log/tmp.zip $ARCHIVES_LOC
+        pushd $ARCHIVES_LOC
+        unzip -qq -DD tmp.zip
+        rm tmp.zip
+        if [ -f results_autotests.xml ]
+        then
+            FUNCTION=`echo $VM_NAME | sed -e "s@$VM_TEMPLATE@@"`
+            NEW_NAME=`echo "results_autotests.xml" | sed -e "s@results_autotests@results_autotests-$FUNCTION@"`
+            echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $NEW_NAME
+            echo "<?xml-stylesheet type=\"text/xsl\" href=\"$FUNCTION.xsl\" ?>" >> $NEW_NAME
+            cat results_autotests.xml >> $NEW_NAME
+            sed -e "s@TEMPLATE@$FUNCTION@" $JENKINS_WKSP/ci-scripts/template.xsl > $FUNCTION.xsl
+            #mv results_autotests.xml $NEW_NAME
+            rm results_autotests.xml
+        fi
+        popd
 
-    EPC_VM_NAME=`echo $VM_NAME | sed -e "s#basic-sim#epc#"`
-    LTEBOX=0
-    if [ -d /opt/ltebox-archives/ ]
-    then
-        # Checking if all ltebox archives are available to run ltebx epc on a brand new VM
-        if [ -f /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ] && [ -f /opt/ltebox-archives/etc-conf.zip ] && [ -f /opt/ltebox-archives/hss-sim.zip ]
+        if [ $KEEP_VM_ALIVE -eq 0 ]
         then
             echo "############################################################"
-            echo "Test EPC on VM ($EPC_VM_NAME) will be using ltebox"
+            echo "Destroying VM"
             echo "############################################################"
-            LTEBOX=1
+            uvt-kvm destroy $VM_NAME
+            ssh-keygen -R $VM_IP_ADDR
         fi
-    fi
-    # Here we could have other types of EPC detection
+        rm -f $VM_CMDS
 
-    # Do we need to start the EPC VM
-    EPC_VM_CMDS=`echo $VM_CMDS | sed -e "s#cmds#epc-cmds#"`
-    echo "EPC_VM_CMD_FILE     = $EPC_VM_CMDS"
-    IS_EPC_VM_ALIVE=`uvt-kvm list | grep -c $EPC_VM_NAME`
-    if [ $IS_EPC_VM_ALIVE -eq 0 ]
-    then
         echo "############################################################"
-        echo "Creating test EPC VM ($EPC_VM_NAME) on Ubuntu Cloud Image base"
+        echo "Checking run status"
         echo "############################################################"
-        uvt-kvm create $EPC_VM_NAME release=xenial --unsafe-caching
-    fi
 
-    uvt-kvm wait $EPC_VM_NAME --insecure
-    EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
-    echo "$EPC_VM_NAME has for IP addr = $EPC_VM_IP_ADDR"
-    scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+        LOG_FILES=`ls $ARCHIVES_LOC/results_autotests*.xml`
+        NB_FOUND_FILES=0
+        NB_RUNS=0
+        NB_FAILURES=0
 
-    # ltebox specific actions (install and start)
-    LTE_BOX_TO_INSTALL=1
-    if [ $LTEBOX -eq 1 ]
-    then
-        echo "ls -ls /opt/ltebox/tools/start_ltebox" > $EPC_VM_CMDS
-        RESPONSE=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
-        NB_EXES=`echo $RESPONSE | grep -c ltebox`
-        if [ $NB_EXES -eq 1 ]; then LTE_BOX_TO_INSTALL=0; fi
-    fi
+        for FULLFILE in $LOG_FILES
+        do
+            TESTSUITES=`egrep "testsuite errors" $FULLFILE`
+            for TESTSUITE in $TESTSUITES
+            do
+                if [[ "$TESTSUITE" == *"tests="* ]]
+                then
+                    RUNS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
+                    NB_RUNS=$((NB_RUNS + RUNS))
+                fi
+                if [[ "$TESTSUITE" == *"failures="* ]]
+                then
+                    FAILS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
+                    NB_FAILURES=$((NB_FAILURES + FAILS))
+                fi
+            done
+            NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
+        done
+
+        echo "NB_FOUND_FILES = $NB_FOUND_FILES"
+        echo "NB_RUNS        = $NB_RUNS"
+        echo "NB_FAILURES    = $NB_FAILURES"
+
+        if [ $NB_FOUND_FILES -eq 0 ]; then STATUS=-1; fi
+        if [ $NB_RUNS -eq 0 ]; then STATUS=-1; fi
+        if [ $NB_FAILURES -ne 0 ]; then STATUS=-1; fi
 
-    if [ $LTEBOX -eq 1 ] && [ $LTE_BOX_TO_INSTALL -eq 1 ]
-    then
-        echo "############################################################"
-        echo "Copying ltebox archives into EPC VM ($EPC_VM_NAME)" 
-        echo "############################################################"
-        scp -o StrictHostKeyChecking=no /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
-        scp -o StrictHostKeyChecking=no /opt/ltebox-archives/etc-conf.zip ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
-        scp -o StrictHostKeyChecking=no /opt/ltebox-archives/hss-sim.zip ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
-
-        echo "############################################################"
-        echo "Install EPC on EPC VM ($EPC_VM_NAME)"
-        echo "############################################################"
-        echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $EPC_VM_CMDS
-        echo "touch /home/ubuntu/.hushlogin" >> $EPC_VM_CMDS
-        echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf\"" >> $EPC_VM_CMDS
-        echo "sudo apt-get update > zip-install.txt 2>&1" >> $EPC_VM_CMDS
-        echo "sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf >> zip-install.txt 2>&1" >> $EPC_VM_CMDS
-
-        # Installing HSS
-        echo "echo \"cd /opt\"" >> $EPC_VM_CMDS
-        echo "cd /opt" >> $EPC_VM_CMDS
-        echo "echo \"sudo unzip -qq /home/ubuntu/hss-sim.zip\"" >> $EPC_VM_CMDS
-        echo "sudo unzip -qq /home/ubuntu/hss-sim.zip" >> $EPC_VM_CMDS
-        echo "echo \"cd /opt/hss_sim0609\"" >> $EPC_VM_CMDS
-        echo "cd /opt/hss_sim0609" >> $EPC_VM_CMDS
-
-        # Installing ltebox
-        echo "echo \"cd /home/ubuntu\"" >> $EPC_VM_CMDS
-        echo "cd /home/ubuntu" >> $EPC_VM_CMDS
-        echo "echo \"sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb \"" >> $EPC_VM_CMDS
-        echo "sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb >> zip-install.txt 2>&1" >> $EPC_VM_CMDS
-
-        echo "echo \"cd /opt/ltebox/etc/\"" >> $EPC_VM_CMDS
-        echo "cd /opt/ltebox/etc/" >> $EPC_VM_CMDS
-        echo "echo \"sudo unzip -qq -o /home/ubuntu/etc-conf.zip\"" >> $EPC_VM_CMDS
-        echo "sudo unzip -qq -o /home/ubuntu/etc-conf.zip" >> $EPC_VM_CMDS
-        echo "sudo sed -i  -e 's#EPC_VM_IP_ADDRESS#$EPC_VM_IP_ADDR#' gw.conf" >> $EPC_VM_CMDS
-        echo "sudo sed -i  -e 's#EPC_VM_IP_ADDRESS#$EPC_VM_IP_ADDR#' mme.conf" >> $EPC_VM_CMDS
     fi
 
-    # Starting EPC
-    if [ $LTEBOX -eq 1 ]
+    if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-basic-sim.* ]]
     then
-        echo "############################################################"
-        echo "Start EPC on EPC VM ($EPC_VM_NAME)"
-        echo "############################################################"
-        echo "echo \"cd /opt/hss_sim0609\"" >> $EPC_VM_CMDS
-        echo "cd /opt/hss_sim0609" >> $EPC_VM_CMDS
-        echo "echo \"sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real\"" >> $EPC_VM_CMDS
-        echo "sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real" >> $EPC_VM_CMDS
+        PING_STATUS=0
+        IPERF_STATUS=0
+        if [ -d $ARCHIVES_LOC ]
+        then
+            rm -Rf $ARCHIVES_LOC
+        fi
+        mkdir --parents $ARCHIVES_LOC
 
-        echo "echo \"cd /opt/ltebox/tools/\"" >> $EPC_VM_CMDS
-        echo "cd /opt/ltebox/tools/" >> $EPC_VM_CMDS
-        echo "echo \"sudo ./start_ltebox\"" >> $EPC_VM_CMDS
-        echo "nohup sudo ./start_ltebox > /home/ubuntu/ltebox.txt" >> $EPC_VM_CMDS
+        EPC_VM_NAME=`echo $VM_NAME | sed -e "s#basic-sim#epc#"`
+        LTEBOX=0
+        if [ -d /opt/ltebox-archives/ ]
+        then
+            # Checking if all ltebox archives are available to run ltebx epc on a brand new VM
+            if [ -f /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ] && [ -f /opt/ltebox-archives/etc-conf.zip ] && [ -f /opt/ltebox-archives/hss-sim.zip ]
+            then
+                echo "############################################################"
+                echo "Test EPC on VM ($EPC_VM_NAME) will be using ltebox"
+                echo "############################################################"
+                LTEBOX=1
+            fi
+        fi
+        # Here we could have other types of EPC detection
+
+        # Do we need to start the EPC VM
+        EPC_VM_CMDS=`echo $VM_CMDS | sed -e "s#cmds#epc-cmds#"`
+        echo "EPC_VM_CMD_FILE     = $EPC_VM_CMDS"
+        IS_EPC_VM_ALIVE=`uvt-kvm list | grep -c $EPC_VM_NAME`
+        if [ $IS_EPC_VM_ALIVE -eq 0 ]
+        then
+            echo "############################################################"
+            echo "Creating test EPC VM ($EPC_VM_NAME) on Ubuntu Cloud Image base"
+            echo "############################################################"
+            uvt-kvm create $EPC_VM_NAME release=xenial --unsafe-caching
+        fi
 
-        ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS
-        rm -f $EPC_VM_CMDS
+        uvt-kvm wait $EPC_VM_NAME --insecure
+        EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
+        echo "$EPC_VM_NAME has for IP addr = $EPC_VM_IP_ADDR"
+        scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+
+        # ltebox specific actions (install and start)
+        LTE_BOX_TO_INSTALL=1
+        if [ $LTEBOX -eq 1 ]
+        then
+            echo "ls -ls /opt/ltebox/tools/start_ltebox" > $EPC_VM_CMDS
+            RESPONSE=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
+            NB_EXES=`echo $RESPONSE | grep -c ltebox`
+            if [ $NB_EXES -eq 1 ]; then LTE_BOX_TO_INSTALL=0; fi
+        fi
 
-        # We may have some adaptation to do
-        if [ -f /opt/ltebox-archives/adapt_ue_sim.txt ]
+        if [ $LTEBOX -eq 1 ] && [ $LTE_BOX_TO_INSTALL -eq 1 ]
         then
             echo "############################################################"
-            echo "Doing some adaptation on UE side"
+            echo "Copying ltebox archives into EPC VM ($EPC_VM_NAME)" 
+            echo "############################################################"
+            scp -o StrictHostKeyChecking=no /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+            scp -o StrictHostKeyChecking=no /opt/ltebox-archives/etc-conf.zip ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+            scp -o StrictHostKeyChecking=no /opt/ltebox-archives/hss-sim.zip ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu
+
+            echo "############################################################"
+            echo "Install EPC on EPC VM ($EPC_VM_NAME)"
             echo "############################################################"
-            ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < /opt/ltebox-archives/adapt_ue_sim.txt
+            echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $EPC_VM_CMDS
+            echo "touch /home/ubuntu/.hushlogin" >> $EPC_VM_CMDS
+            echo "echo \"sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf\"" >> $EPC_VM_CMDS
+            echo "sudo apt-get update > zip-install.txt 2>&1" >> $EPC_VM_CMDS
+            echo "sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf >> zip-install.txt 2>&1" >> $EPC_VM_CMDS
+
+            # Installing HSS
+            echo "echo \"cd /opt\"" >> $EPC_VM_CMDS
+            echo "cd /opt" >> $EPC_VM_CMDS
+            echo "echo \"sudo unzip -qq /home/ubuntu/hss-sim.zip\"" >> $EPC_VM_CMDS
+            echo "sudo unzip -qq /home/ubuntu/hss-sim.zip" >> $EPC_VM_CMDS
+            echo "echo \"cd /opt/hss_sim0609\"" >> $EPC_VM_CMDS
+            echo "cd /opt/hss_sim0609" >> $EPC_VM_CMDS
+
+            # Installing ltebox
+            echo "echo \"cd /home/ubuntu\"" >> $EPC_VM_CMDS
+            echo "cd /home/ubuntu" >> $EPC_VM_CMDS
+            echo "echo \"sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb \"" >> $EPC_VM_CMDS
+            echo "sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb >> zip-install.txt 2>&1" >> $EPC_VM_CMDS
+
+            echo "echo \"cd /opt/ltebox/etc/\"" >> $EPC_VM_CMDS
+            echo "cd /opt/ltebox/etc/" >> $EPC_VM_CMDS
+            echo "echo \"sudo unzip -qq -o /home/ubuntu/etc-conf.zip\"" >> $EPC_VM_CMDS
+            echo "sudo unzip -qq -o /home/ubuntu/etc-conf.zip" >> $EPC_VM_CMDS
+            echo "sudo sed -i  -e 's#EPC_VM_IP_ADDRESS#$EPC_VM_IP_ADDR#' gw.conf" >> $EPC_VM_CMDS
+            echo "sudo sed -i  -e 's#EPC_VM_IP_ADDRESS#$EPC_VM_IP_ADDR#' mme.conf" >> $EPC_VM_CMDS
         fi
 
-        i="0"
-        echo "ifconfig tun5 | egrep -c \"inet addr\"" > $EPC_VM_CMDS
-        while [ $i -lt 10 ]
-        do
-            sleep 2
-            CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
-            if [ $CONNECTED -eq 1 ]
+        # Starting EPC
+        if [ $LTEBOX -eq 1 ]
+        then
+            echo "############################################################"
+            echo "Start EPC on EPC VM ($EPC_VM_NAME)"
+            echo "############################################################"
+            echo "echo \"cd /opt/hss_sim0609\"" >> $EPC_VM_CMDS
+            echo "cd /opt/hss_sim0609" >> $EPC_VM_CMDS
+            echo "echo \"sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real\"" >> $EPC_VM_CMDS
+            echo "sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real" >> $EPC_VM_CMDS
+
+            echo "echo \"cd /opt/ltebox/tools/\"" >> $EPC_VM_CMDS
+            echo "cd /opt/ltebox/tools/" >> $EPC_VM_CMDS
+            echo "echo \"sudo ./start_ltebox\"" >> $EPC_VM_CMDS
+            echo "nohup sudo ./start_ltebox > /home/ubuntu/ltebox.txt" >> $EPC_VM_CMDS
+
+            ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS
+            rm -f $EPC_VM_CMDS
+
+            # We may have some adaptation to do
+            if [ -f /opt/ltebox-archives/adapt_ue_sim.txt ]
             then
-                i="100"
-            else
-                i=$[$i+1]
+                echo "############################################################"
+                echo "Doing some adaptation on UE side"
+                echo "############################################################"
+                ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < /opt/ltebox-archives/adapt_ue_sim.txt
             fi
-        done
-        rm $EPC_VM_CMDS
-        if [ $i -lt 50 ]
+
+            i="0"
+            echo "ifconfig tun5 | egrep -c \"inet addr\"" > $EPC_VM_CMDS
+            while [ $i -lt 10 ]
+            do
+                sleep 2
+                CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
+                if [ $CONNECTED -eq 1 ]
+                then
+                    i="100"
+                else
+                    i=$[$i+1]
+                fi
+            done
+            rm $EPC_VM_CMDS
+            if [ $i -lt 50 ]
+            then
+                echo "Problem w/ starting ltebox EPC"
+                exit -1
+            fi
+        fi
+
+        # HERE ADD ANY INSTALL ACTIONS FOR ANOTHER EPC
+
+        # Retrieve EPC real IP address
+        if [ $LTEBOX -eq 1 ]
+        then
+            # in our configuration file, we are using pool 5
+            echo "ifconfig tun5 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's#  P-t-P:.*\$##'" > $EPC_VM_CMDS
+            REAL_EPC_IP_ADDR=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
+            echo "EPC IP Address     is : $REAL_EPC_IP_ADDR"
+            rm $EPC_VM_CMDS
+        fi
+
+        echo "############################################################"
+        echo "Starting the eNB in FDD-5MHz mode"
+        echo "############################################################"
+        CURRENT_ENB_LOG_FILE=fdd_05MHz_enb.log
+        start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 lte-fdd-basic-sim.conf
+
+        echo "############################################################"
+        echo "Starting the UE in FDD-5MHz mode"
+        echo "############################################################"
+        CURRENT_UE_LOG_FILE=fdd_05MHz_ue.log
+        start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25 2680
+        if [ $UE_SYNC -eq 0 ]
         then
-            echo "Problem w/ starting ltebox EPC"
+            echo "Problem w/ eNB and UE not syncing"
+            terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+            recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
             exit -1
         fi
-    fi
+        get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
 
-    # HERE ADD ANY INSTALL ACTIONS FOR ANOTHER EPC
+        echo "############################################################"
+        echo "Pinging the UE"
+        echo "############################################################"
+        PING_LOG_FILE=fdd_05MHz_ping_ue.txt
+        ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+        check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
 
-    # Retrieve EPC real IP address
-    if [ $LTEBOX -eq 1 ]
-    then
-        # in our configuration file, we are using pool 5
-        echo "ifconfig tun5 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's#  P-t-P:.*\$##'" > $EPC_VM_CMDS
-        REAL_EPC_IP_ADDR=`ssh -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR < $EPC_VM_CMDS`
-        echo "EPC IP Address     is : $REAL_EPC_IP_ADDR"
-        rm $EPC_VM_CMDS
-    fi
+        echo "############################################################"
+        echo "Iperf DL"
+        echo "############################################################"
+        CURR_IPERF_LOG_BASE=fdd_05MHz_iperf_dl
+        iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+        check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
 
-    echo "############################################################"
-    echo "Starting the eNB in FDD-5MHz mode"
-    echo "############################################################"
-    CURRENT_ENB_LOG_FILE=fdd_05MHz_enb.log
-    start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 lte-fdd-basic-sim.conf
+        echo "############################################################"
+        echo "Iperf UL"
+        echo "############################################################"
+        CURR_IPERF_LOG_BASE=fdd_05MHz_iperf_ul
+        iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 2 $CURR_IPERF_LOG_BASE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+        check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 2
 
-    echo "############################################################"
-    echo "Starting the UE in FDD-5MHz mode"
-    echo "############################################################"
-    CURRENT_UE_LOG_FILE=fdd_05MHz_ue.log
-    start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25 2680
-    if [ $UE_SYNC -eq 0 ]
-    then
-        echo "Problem w/ eNB and UE not syncing"
+        echo "############################################################"
+        echo "Terminate enb/ue simulators"
+        echo "############################################################"
         terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
         recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-        terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
-        exit -1
-    fi
-    get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+        sleep 10
 
-    echo "############################################################"
-    echo "Pinging the UE"
-    echo "############################################################"
-    PING_LOG_FILE=fdd_05MHz_ping_ue.txt
-    ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
-    check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+        echo "############################################################"
+        echo "Starting the eNB in FDD-10MHz mode"
+        echo "############################################################"
+        CURRENT_ENB_LOG_FILE=fdd_10MHz_enb.log
+        start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50 lte-fdd-basic-sim.conf
 
-    echo "############################################################"
-    echo "Iperf DL"
-    echo "############################################################"
-    CURR_IPERF_LOG_BASE=fdd_05MHz_iperf_dl
-    iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-    check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
+        echo "############################################################"
+        echo "Starting the UE in FDD-10MHz mode"
+        echo "############################################################"
+        CURRENT_UE_LOG_FILE=fdd_10MHz_ue.log
+        start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50 2680
+        if [ $UE_SYNC -eq 0 ]
+        then
+            echo "Problem w/ eNB and UE not syncing"
+            terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+            recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+            exit -1
+        fi
+        get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
 
-    echo "############################################################"
-    echo "Iperf UL"
-    echo "############################################################"
-    CURR_IPERF_LOG_BASE=fdd_05MHz_iperf_ul
-    iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 2 $CURR_IPERF_LOG_BASE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-    check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 2
+        echo "############################################################"
+        echo "Pinging the UE"
+        echo "############################################################"
+        PING_LOG_FILE=fdd_10MHz_ping_ue.txt
+        ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+        check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
 
-    echo "############################################################"
-    echo "Terminate enb/ue simulators"
-    echo "############################################################"
-    terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
-    recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    sleep 10
+        echo "############################################################"
+        echo "Iperf DL"
+        echo "############################################################"
+        CURR_IPERF_LOG_BASE=fdd_10MHz_iperf_dl
+        iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+        check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
 
-    echo "############################################################"
-    echo "Starting the eNB in FDD-10MHz mode"
-    echo "############################################################"
-    CURRENT_ENB_LOG_FILE=fdd_10MHz_enb.log
-    start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50 lte-fdd-basic-sim.conf
+        echo "############################################################"
+        echo "Iperf UL"
+        echo "############################################################"
+        CURR_IPERF_LOG_BASE=fdd_10MHz_iperf_ul
+        iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 2 $CURR_IPERF_LOG_BASE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+        check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 2
 
-    echo "############################################################"
-    echo "Starting the UE in FDD-10MHz mode"
-    echo "############################################################"
-    CURRENT_UE_LOG_FILE=fdd_10MHz_ue.log
-    start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50 2680
-    if [ $UE_SYNC -eq 0 ]
-    then
-        echo "Problem w/ eNB and UE not syncing"
+        echo "############################################################"
+        echo "Terminate enb/ue simulators"
+        echo "############################################################"
         terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
         recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-        terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
-        exit -1
-    fi
-    get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+        sleep 10
 
-    echo "############################################################"
-    echo "Pinging the UE"
-    echo "############################################################"
-    PING_LOG_FILE=fdd_10MHz_ping_ue.txt
-    ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
-    check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
-
-    echo "############################################################"
-    echo "Iperf DL"
-    echo "############################################################"
-    CURR_IPERF_LOG_BASE=fdd_10MHz_iperf_dl
-    iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-    check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
+        echo "############################################################"
+        echo "Starting the eNB in FDD-20MHz mode"
+        echo "############################################################"
+        CURRENT_ENB_LOG_FILE=fdd_20MHz_enb.log
+        start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100 lte-fdd-basic-sim.conf
 
-    echo "############################################################"
-    echo "Iperf UL"
-    echo "############################################################"
-    CURR_IPERF_LOG_BASE=fdd_10MHz_iperf_ul
-    iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 2 $CURR_IPERF_LOG_BASE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-    check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 2
+        echo "############################################################"
+        echo "Starting the UE in FDD-20MHz mode"
+        echo "############################################################"
+        CURRENT_UE_LOG_FILE=fdd_20MHz_ue.log
+        start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100 2680
+        if [ $UE_SYNC -eq 0 ]
+        then
+            echo "Problem w/ eNB and UE not syncing"
+            terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+            recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+            exit -1
+        fi
+        get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
 
-    echo "############################################################"
-    echo "Terminate enb/ue simulators"
-    echo "############################################################"
-    terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
-    recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    sleep 10
+        echo "############################################################"
+        echo "Pinging the UE"
+        echo "############################################################"
+        PING_LOG_FILE=fdd_20MHz_ping_ue.txt
+        ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+        check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
 
-    echo "############################################################"
-    echo "Starting the eNB in FDD-20MHz mode"
-    echo "############################################################"
-    CURRENT_ENB_LOG_FILE=fdd_20MHz_enb.log
-    start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100 lte-fdd-basic-sim.conf
+        echo "############################################################"
+        echo "Iperf DL"
+        echo "############################################################"
+        CURR_IPERF_LOG_BASE=fdd_20MHz_iperf_dl
+        iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+        check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
 
-    echo "############################################################"
-    echo "Starting the UE in FDD-20MHz mode"
-    echo "############################################################"
-    CURRENT_UE_LOG_FILE=fdd_20MHz_ue.log
-    start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100 2680
-    if [ $UE_SYNC -eq 0 ]
-    then
-        echo "Problem w/ eNB and UE not syncing"
+        echo "############################################################"
+        echo "Terminate enb/ue simulators"
+        echo "############################################################"
         terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
         recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-        terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
-        exit -1
-    fi
-    get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
-
-    echo "############################################################"
-    echo "Pinging the UE"
-    echo "############################################################"
-    PING_LOG_FILE=fdd_20MHz_ping_ue.txt
-    ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
-    check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+        sleep 10
 
-    echo "############################################################"
-    echo "Iperf DL"
-    echo "############################################################"
-    CURR_IPERF_LOG_BASE=fdd_20MHz_iperf_dl
-    iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 15 $CURR_IPERF_LOG_BASE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-    check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 15
+        echo "############################################################"
+        echo "Starting the eNB in TDD-5MHz mode"
+        echo "############################################################"
+        CURRENT_ENB_LOG_FILE=tdd_05MHz_enb.log
+        start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 lte-tdd-basic-sim.conf
 
-    echo "############################################################"
-    echo "Terminate enb/ue simulators"
-    echo "############################################################"
-    terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
-    recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    sleep 10
+        echo "############################################################"
+        echo "Starting the UE in TDD-5MHz mode"
+        echo "############################################################"
+        CURRENT_UE_LOG_FILE=tdd_05MHz_ue.log
+        start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25 2350
+        if [ $UE_SYNC -eq 0 ]
+        then
+            echo "Problem w/ eNB and UE not syncing"
+            terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+            recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+            exit -1
+        fi
+        get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
 
-    echo "############################################################"
-    echo "Starting the eNB in TDD-5MHz mode"
-    echo "############################################################"
-    CURRENT_ENB_LOG_FILE=tdd_05MHz_enb.log
-    start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 lte-tdd-basic-sim.conf
+        echo "############################################################"
+        echo "Pinging the UE"
+        echo "############################################################"
+        PING_LOG_FILE=tdd_05MHz_ping_ue.txt
+        ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+        check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+
+#        Bug in TDD 5Mhz --- not running it
+#        echo "############################################################"
+#        echo "Iperf DL"
+#        echo "############################################################"
+#        CURR_IPERF_LOG_BASE=tdd_05MHz_iperf_dl
+#        iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
+#        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+#        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+#        check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
 
-    echo "############################################################"
-    echo "Starting the UE in TDD-5MHz mode"
-    echo "############################################################"
-    CURRENT_UE_LOG_FILE=tdd_05MHz_ue.log
-    start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25 2350
-    if [ $UE_SYNC -eq 0 ]
-    then
-        echo "Problem w/ eNB and UE not syncing"
+        echo "############################################################"
+        echo "Terminate enb/ue simulators"
+        echo "############################################################"
         terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
         recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-        terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
-        exit -1
-    fi
-    get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+        sleep 10
 
-    echo "############################################################"
-    echo "Pinging the UE"
-    echo "############################################################"
-    PING_LOG_FILE=tdd_05MHz_ping_ue.txt
-    ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
-    check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
-
-# Bug in TDD 5Mhz --- not running it
-#    echo "############################################################"
-#    echo "Iperf DL"
-#    echo "############################################################"
-#    CURR_IPERF_LOG_BASE=tdd_05MHz_iperf_dl
-#    iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
-#    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-#    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-#    check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
+        echo "############################################################"
+        echo "Starting the eNB in TDD-10MHz mode"
+        echo "############################################################"
+        CURRENT_ENB_LOG_FILE=tdd_10MHz_enb.log
+        start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50 lte-tdd-basic-sim.conf
 
-    echo "############################################################"
-    echo "Terminate enb/ue simulators"
-    echo "############################################################"
-    terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
-    recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    sleep 10
+        echo "############################################################"
+        echo "Starting the UE in TDD-10MHz mode"
+        echo "############################################################"
+        CURRENT_UE_LOG_FILE=tdd_10MHz_ue.log
+        start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50 2350
+        if [ $UE_SYNC -eq 0 ]
+        then
+            echo "Problem w/ eNB and UE not syncing"
+            terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+            recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+            exit -1
+        fi
+        get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
 
-    echo "############################################################"
-    echo "Starting the eNB in TDD-10MHz mode"
-    echo "############################################################"
-    CURRENT_ENB_LOG_FILE=tdd_10MHz_enb.log
-    start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50 lte-tdd-basic-sim.conf
+        echo "############################################################"
+        echo "Pinging the UE"
+        echo "############################################################"
+        PING_LOG_FILE=tdd_10MHz_ping_ue.txt
+        ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+        check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
 
-    echo "############################################################"
-    echo "Starting the UE in TDD-10MHz mode"
-    echo "############################################################"
-    CURRENT_UE_LOG_FILE=tdd_10MHz_ue.log
-    start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50 2350
-    if [ $UE_SYNC -eq 0 ]
-    then
-        echo "Problem w/ eNB and UE not syncing"
+        echo "############################################################"
+        echo "Iperf DL"
+        echo "############################################################"
+        CURR_IPERF_LOG_BASE=tdd_10MHz_iperf_dl
+        iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+        check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
+
+        echo "############################################################"
+        echo "Terminate enb/ue simulators"
+        echo "############################################################"
         terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
         recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-        terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
-        exit -1
-    fi
-    get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+        sleep 10
 
-    echo "############################################################"
-    echo "Pinging the UE"
-    echo "############################################################"
-    PING_LOG_FILE=tdd_10MHz_ping_ue.txt
-    ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
-    check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+        echo "############################################################"
+        echo "Starting the eNB in TDD-20MHz mode"
+        echo "############################################################"
+        CURRENT_ENB_LOG_FILE=tdd_20MHz_enb.log
+        start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100 lte-tdd-basic-sim.conf
 
-    echo "############################################################"
-    echo "Iperf DL"
-    echo "############################################################"
-    CURR_IPERF_LOG_BASE=tdd_10MHz_iperf_dl
-    iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-    check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
+        echo "############################################################"
+        echo "Starting the UE in TDD-20MHz mode"
+        echo "############################################################"
+        CURRENT_UE_LOG_FILE=tdd_20MHz_ue.log
+        start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100 2350
+        if [ $UE_SYNC -eq 0 ]
+        then
+            echo "Problem w/ eNB and UE not syncing"
+            terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+            recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+            terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+            exit -1
+        fi
+        get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
 
-    echo "############################################################"
-    echo "Terminate enb/ue simulators"
-    echo "############################################################"
-    terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
-    recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    sleep 10
+        echo "############################################################"
+        echo "Pinging the UE"
+        echo "############################################################"
+        PING_LOG_FILE=tdd_20MHz_ping_ue.txt
+        ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+        check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
 
-    echo "############################################################"
-    echo "Starting the eNB in TDD-20MHz mode"
-    echo "############################################################"
-    CURRENT_ENB_LOG_FILE=tdd_20MHz_enb.log
-    start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100 lte-tdd-basic-sim.conf
+        echo "############################################################"
+        echo "Iperf DL"
+        echo "############################################################"
+        CURR_IPERF_LOG_BASE=tdd_20MHz_iperf_dl
+        iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
+        scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
+        check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
 
-    echo "############################################################"
-    echo "Starting the UE in TDD-20MHz mode"
-    echo "############################################################"
-    CURRENT_UE_LOG_FILE=tdd_20MHz_ue.log
-    start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100 2350
-    if [ $UE_SYNC -eq 0 ]
-    then
-        echo "Problem w/ eNB and UE not syncing"
+        echo "############################################################"
+        echo "Terminate enb/ue simulators"
+        echo "############################################################"
         terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
         recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-        terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
-        exit -1
-    fi
-    get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
-
-    echo "############################################################"
-    echo "Pinging the UE"
-    echo "############################################################"
-    PING_LOG_FILE=tdd_20MHz_ping_ue.txt
-    ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
-    check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
-
-    echo "############################################################"
-    echo "Iperf DL"
-    echo "############################################################"
-    CURR_IPERF_LOG_BASE=tdd_20MHz_iperf_dl
-    iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
-    scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
-    check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
-
-    echo "############################################################"
-    echo "Terminate enb/ue simulators"
-    echo "############################################################"
-    terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
-    recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
-    sleep 10
-
-    echo "############################################################"
-    echo "Terminate EPC"
-    echo "############################################################"
+        sleep 10
 
-    if [ $LTEBOX -eq 1 ]
-    then
-        terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
-    fi
+        echo "############################################################"
+        echo "Terminate EPC"
+        echo "############################################################"
 
-    echo "############################################################"
-    echo "Checking run status"
-    echo "############################################################"
+        if [ $LTEBOX -eq 1 ]
+        then
+            terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+        fi
 
-    if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
-    if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
+        if [ $KEEP_VM_ALIVE -eq 0 ]
+        then
+            echo "############################################################"
+            echo "Destroying VMs"
+            echo "############################################################"
+            uvt-kvm destroy $VM_NAME
+            ssh-keygen -R $VM_IP_ADDR
+            uvt-kvm destroy $EPC_VM_NAME
+            ssh-keygen -R $EPC_VM_IP_ADDR
+        fi
 
-fi
+        echo "############################################################"
+        echo "Checking run status"
+        echo "############################################################"
 
-if [ $STATUS -eq 0 ]
-then
-    echo "STATUS seems OK"
-else
-    echo "STATUS failed?"
-fi
+        if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
+        if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
 
-exit $STATUS
+    fi
+}
diff --git a/ci-scripts/waitBuildOnVM.sh b/ci-scripts/waitBuildOnVM.sh
index 011a32bbb91e5c1b02698bedb77209771a31ceef..a6f4edace8b6c2197f7383030dc89ca462ce71e5 100755
--- a/ci-scripts/waitBuildOnVM.sh
+++ b/ci-scripts/waitBuildOnVM.sh
@@ -20,8 +20,8 @@
 # *      contact@openairinterface.org
 # */
 
-function usage {
-    echo "OAI VM Build Check script"
+function wait_usage {
+    echo "OAI CI VM script"
     echo "   Original Author: Raphael Defosseux"
     echo "   Requirements:"
     echo "     -- uvtool uvtool-libvirt apt-cacher"
@@ -31,9 +31,9 @@ function usage {
     echo ""
     echo "Usage:"
     echo "------"
-    echo "    waitBuildOnVM.sh [OPTIONS]"
+    echo "    oai-ci-vm-tool wait [OPTIONS]"
     echo ""
-    echo "Options:"
+    echo "Mandatory Options:"
     echo "--------"
     echo "    --job-name #### OR -jn ####"
     echo "    Specify the name of the Jenkins job."
@@ -44,16 +44,11 @@ function usage {
     echo "    --workspace #### OR -ws ####"
     echo "    Specify the workspace."
     echo ""
-    echo "    --variant enb-usrp     OR -v1"
-    echo "    --variant basic-sim    OR -v2"
-    echo "    --variant phy-sim      OR -v3"
-    echo "    --variant cppcheck     OR -v4"
-    echo "    --variant gnb-usrp     OR -v5"
-    echo "    --variant nu-ue-usrp   OR -v6"
-    echo "    --variant enb-ethernet OR -v7"
-    echo "    --variant ue-ethernet  OR -v8"
+    variant_usage
     echo "    Specify the variant to build."
     echo ""
+    echo "Options:"
+    echo "--------"
     echo "    --keep-vm-alive OR -k"
     echo "    Keep the VM alive after the build."
     echo ""
@@ -62,345 +57,114 @@ function usage {
     echo ""
 }
 
-function variant_usage {
-    echo "OAI VM Build Check script"
-    echo "   Original Author: Raphael Defosseux"
-    echo ""
-    echo "    --variant enb-usrp     OR -v1"
-    echo "    --variant basic-sim    OR -v2"
-    echo "    --variant phy-sim      OR -v3"
-    echo "    --variant cppcheck     OR -v4"
-    echo "    --variant gnb-usrp     OR -v5"
-    echo "    --variant nu-ue-usrp   OR -v6"
-    echo "    --variant enb-ethernet OR -v7"
-    echo "    --variant ue-ethernet  OR -v8"
-    echo ""
-}
-
-if [ $# -lt 1 ] || [ $# -gt 9 ]
-then
-    echo "Syntax Error: not the correct number of arguments"
-    echo ""
-    usage
-    exit 1
-fi
-
-VM_TEMPLATE=ci-
-JOB_NAME=XX
-BUILD_ID=XX
-VM_NAME=ci-enb-usrp
-VM_MEMORY=2048
-VM_CPU=4
-ARCHIVES_LOC=enb_usrp
-LOG_PATTERN=.Rel15.txt
-NB_PATTERN_FILES=4
-BUILD_OPTIONS="--eNB -w USRP"
-KEEP_VM_ALIVE=0
-
-while [[ $# -gt 0 ]]
-do
-key="$1"
-
-case $key in
-    -h|--help)
-    shift
-    usage
-    exit 0
-    ;;
-    -jn|--job-name)
-    JOB_NAME="$2"
-    shift
-    shift
-    ;;
-    -id|--build-id)
-    BUILD_ID="$2"
-    shift
-    shift
-    ;;
-    -ws|--workspace)
-    JENKINS_WKSP="$2"
-    shift
-    shift
-    ;;
-    -k|--keep-vm-alive)
-    KEEP_VM_ALIVE=1
-    shift
-    ;;
-    -v1)
-    VM_NAME=ci-enb-usrp
-    ARCHIVES_LOC=enb_usrp
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=4
-    BUILD_OPTIONS="--eNB -w USRP --mu"
-    shift
-    ;;
-    -v2)
-    VM_NAME=ci-basic-sim
-    ARCHIVES_LOC=basic_sim
-    LOG_PATTERN=basic_simulator
-    NB_PATTERN_FILES=2
-    BUILD_OPTIONS="--basic-simulator"
-    VM_MEMORY=8192
-    VM_CPU=4
-    shift
-    ;;
-    -v3)
-    VM_NAME=ci-phy-sim
-    ARCHIVES_LOC=phy_sim
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=6
-    BUILD_OPTIONS="--phy_simulators"
-    shift
-    ;;
-    -v4)
-    VM_NAME=ci-cppcheck
-    VM_MEMORY=8192
-    ARCHIVES_LOC=cppcheck
-    LOG_PATTERN=cppcheck.xml
-    NB_PATTERN_FILES=1
-    BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
-    shift
-    ;;
-    -v5)
-    VM_NAME=ci-gnb-usrp
-    ARCHIVES_LOC=gnb_usrp
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=4
-    BUILD_OPTIONS="--gNB -w USRP"
-    shift
-    ;;
-    -v6)
-    VM_NAME=ci-ue-nr-usrp
-    ARCHIVES_LOC=nrue_usrp
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=4
-    BUILD_OPTIONS="--nrUE -w USRP"
-    shift
-    ;;
-    -v7)
-    VM_NAME=ci-enb-ethernet
-    ARCHIVES_LOC=enb_eth
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=6
-    BUILD_OPTIONS="--eNB -t ETHERNET --noS1"
-    shift
-    ;;
-    -v8)
-    VM_NAME=ci-ue-ethernet
-    ARCHIVES_LOC=ue_eth
-    LOG_PATTERN=.Rel15.txt
-    NB_PATTERN_FILES=6
-    BUILD_OPTIONS="--UE -t ETHERNET --noS1"
-    shift
-    ;;
-    --variant)
-    variant="$2"
-    case $variant in
-        enb-usrp)
-        VM_NAME=ci-enb-usrp
-        ARCHIVES_LOC=enb_usrp
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=4
-        BUILD_OPTIONS="--eNB -w USRP --mu"
-        ;;
-        basic-sim)
-        VM_NAME=ci-basic-sim
-        ARCHIVES_LOC=basic_sim
-        LOG_PATTERN=basic_simulator
-        NB_PATTERN_FILES=2
-        BUILD_OPTIONS="--basic-simulator"
-        VM_MEMORY=8192
-        VM_CPU=4
-        ;;
-        phy-sim)
-        VM_NAME=ci-phy-sim
-        ARCHIVES_LOC=phy_sim
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=6
-        BUILD_OPTIONS="--phy_simulators"
-        ;;
-        cppcheck)
-        VM_NAME=ci-cppcheck
-        VM_MEMORY=8192
-        ARCHIVES_LOC=cppcheck
-        LOG_PATTERN=cppcheck.xml
-        NB_PATTERN_FILES=1
-        BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
-        ;;
-        gnb-usrp)
-        VM_NAME=ci-gnb-usrp
-        ARCHIVES_LOC=gnb_usrp
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=4
-        BUILD_OPTIONS="--gNB -w USRP"
-        ;;
-        nu-ue-usrp)
-        VM_NAME=ci-ue-nr-usrp
-        ARCHIVES_LOC=nrue_usrp
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=4
-        BUILD_OPTIONS="--nrUE -w USRP"
-        ;;
-        enb-ethernet)
-        VM_NAME=ci-enb-ethernet
-        ARCHIVES_LOC=enb_eth
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=6
-        BUILD_OPTIONS="--eNB -t ETHERNET --noS1"
-        ;;
-        ue-ethernet)
-        VM_NAME=ci-ue-ethernet
-        ARCHIVES_LOC=ue_eth
-        LOG_PATTERN=.Rel15.txt
-        NB_PATTERN_FILES=6
-        BUILD_OPTIONS="--UE -t ETHERNET --noS1"
-        ;;
-        *)
-        echo ""
-        echo "Syntax Error: Invalid Variant option -> $variant"
-        echo ""
-        variant_usage
-        exit 1
-    esac
-    shift
-    shift
-    ;;
-    *)
-    echo "Syntax Error: unknown option: $key"
-    echo ""
-    usage
-    exit 1
-esac
-done
+function wait_on_vm_build {
+    echo "############################################################"
+    echo "OAI CI VM script"
+    echo "############################################################"
 
-if [ ! -f $JENKINS_WKSP/localZip.zip ]
-then
-    echo "Missing localZip.zip file!"
-    exit 1
-fi
-if [ ! -f /etc/apt/apt.conf.d/01proxy ]
-then
-    echo "Missing /etc/apt/apt.conf.d/01proxy file!"
-    echo "Is apt-cacher installed and configured?"
-    exit 1
-fi
+    echo "VM_NAME             = $VM_NAME"
+    echo "VM_CMD_FILE         = $VM_CMDS"
+    echo "JENKINS_WKSP        = $JENKINS_WKSP"
+    echo "ARCHIVES_LOC        = $ARCHIVES_LOC"
+    echo "BUILD_OPTIONS       = $BUILD_OPTIONS"
 
-if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
-then
-    VM_TEMPLATE=ci-
-else
-    VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
-fi
+    IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
 
-VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"`
-VM_CMDS=${VM_NAME}_cmds.txt
-ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC}
+    if [ $IS_VM_ALIVE -eq 0 ]
+    then
+        echo "############################################################"
+        echo "You should have created the VM before doing anything"
+        echo "############################################################"
+        STATUS=1
+        return
+    fi
 
-echo "VM_NAME             = $VM_NAME"
-echo "VM_CMD_FILE         = $VM_CMDS"
-echo "JENKINS_WKSP        = $JENKINS_WKSP"
-echo "ARCHIVES_LOC        = $ARCHIVES_LOC"
-echo "BUILD_OPTIONS       = $BUILD_OPTIONS"
+    echo "Waiting for VM to be started"
+    uvt-kvm wait $VM_NAME --insecure
 
-IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
+    VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
+    echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
 
-if [ $IS_VM_ALIVE -eq 0 ]
-then
     echo "############################################################"
-    echo "You should have created the VM before doing anything"
+    echo "Waiting build process to end on VM ($VM_NAME)"
     echo "############################################################"
-    exit 1
-fi
-
-echo "Waiting for VM to be started"
-uvt-kvm wait $VM_NAME --insecure
 
-VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
-echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
-
-echo "############################################################"
-echo "Waiting build process to end on VM ($VM_NAME)"
-echo "############################################################"
+    if [[ "$VM_NAME" == *"-cppcheck"* ]]
+    then
+        echo "echo \"ps -aux | grep cppcheck \"" >> $VM_CMDS
+        echo "while [ \$(ps -aux | grep --color=never cppcheck | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done" >> $VM_CMDS
+    else
+        echo "echo \"ps -aux | grep build \"" >> $VM_CMDS
+        echo "while [ \$(ps -aux | grep --color=never build_oai | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done" >> $VM_CMDS
+    fi
 
-if [[ "$VM_NAME" == *"-cppcheck"* ]]
-then
-    echo "echo \"ps -aux | grep cppcheck \"" >> $VM_CMDS
-    echo "while [ \$(ps -aux | grep --color=never cppcheck | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done" >> $VM_CMDS
-else
-    echo "echo \"ps -aux | grep build \"" >> $VM_CMDS
-    echo "while [ \$(ps -aux | grep --color=never build_oai | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done" >> $VM_CMDS
-fi
+    ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+    rm -f $VM_CMDS
+}
 
-ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+function check_on_vm_build {
+    echo "############################################################"
+    echo "Creating a tmp folder to store results and artifacts"
+    echo "############################################################"
+    if [ ! -d $JENKINS_WKSP/archives ]
+    then
+        mkdir $JENKINS_WKSP/archives
+    fi
 
-echo "############################################################"
-echo "Creating a tmp folder to store results and artifacts"
-echo "############################################################"
-if [ ! -d $JENKINS_WKSP/archives ]
-then
-    mkdir $JENKINS_WKSP/archives
-fi
+    if [ ! -d $ARCHIVES_LOC ]
+    then
+        mkdir $ARCHIVES_LOC
+    fi
 
-if [ ! -d $ARCHIVES_LOC ]
-then
-    mkdir $ARCHIVES_LOC
-fi
+    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.txt $ARCHIVES_LOC
+    if [[ "$VM_NAME" == *"-cppcheck"* ]]
+    then
+        scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.xml $ARCHIVES_LOC
+    fi
 
-scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.txt $ARCHIVES_LOC
-if [[ "$VM_NAME" == *"-cppcheck"* ]]
-then
-    scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.xml $ARCHIVES_LOC
-fi
+    if [ $KEEP_VM_ALIVE -eq 0 ]
+    then
+        echo "############################################################"
+        echo "Destroying VM"
+        echo "############################################################"
+        uvt-kvm destroy $VM_NAME
+        ssh-keygen -R $VM_IP_ADDR
+    fi
+    rm -f $VM_CMDS
 
-if [ $KEEP_VM_ALIVE -eq 0 ]
-then
     echo "############################################################"
-    echo "Destroying VM"
+    echo "Checking build status" 
     echo "############################################################"
-    uvt-kvm destroy $VM_NAME
-    ssh-keygen -R $VM_IP_ADDR
-fi
-rm -f $VM_CMDS
-
-echo "############################################################"
-echo "Checking build status" 
-echo "############################################################"
 
-LOG_FILES=`ls $ARCHIVES_LOC/*.txt $ARCHIVES_LOC/*.xml`
-STATUS=0
-NB_FOUND_FILES=0
+    LOG_FILES=`ls $ARCHIVES_LOC/*.txt $ARCHIVES_LOC/*.xml`
+    STATUS=0
+    NB_FOUND_FILES=0
 
-for FULLFILE in $LOG_FILES 
-do
-    if [[ $FULLFILE == *"$LOG_PATTERN"* ]]
-    then
-        filename=$(basename -- "$FULLFILE")
-        if [ "$LOG_PATTERN" == ".Rel15.txt" ]
-        then
-            PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"`
-        fi
-        if [ "$LOG_PATTERN" == "basic_simulator" ]
-        then
-            PASS_PATTERN="lte-"
-        fi
-        if [ "$LOG_PATTERN" == "cppcheck.xml" ]
+    for FULLFILE in $LOG_FILES 
+    do
+        if [[ $FULLFILE == *"$LOG_PATTERN"* ]]
         then
-            PASS_PATTERN="results version"
-            LOCAL_STAT=`egrep -c "$PASS_PATTERN" $FULLFILE`
-        else
-            LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE`
+            filename=$(basename -- "$FULLFILE")
+            if [ "$LOG_PATTERN" == ".Rel15.txt" ]
+            then
+                PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"`
+            fi
+            if [ "$LOG_PATTERN" == "basic_simulator" ]
+            then
+                PASS_PATTERN="lte-"
+            fi
+            if [ "$LOG_PATTERN" == "cppcheck.xml" ]
+            then
+                PASS_PATTERN="results version"
+                LOCAL_STAT=`egrep -c "$PASS_PATTERN" $FULLFILE`
+            else
+                LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE`
+            fi
+            if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
+            NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
         fi
-        if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
-        NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
-    fi
-done
+    done
 
-if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi
+    if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi
 
-if [ $STATUS -eq 0 ]
-then
-    echo "STATUS seems OK"
-else
-    echo "STATUS failed?"
-fi
-exit $STATUS
+}