diff --git a/ci-scripts/buildOnVM.sh b/ci-scripts/buildOnVM.sh
index d4ee84701cdbebe478fc16bc1b1d78a2fc4d57ae..ee5fc56c5f9711cce9c8477b9270041cf75799e1 100755
--- a/ci-scripts/buildOnVM.sh
+++ b/ci-scripts/buildOnVM.sh
@@ -213,6 +213,6 @@ function build_on_vm {
             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
     fi
-    ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
     rm -f $VM_CMDS
 }
diff --git a/ci-scripts/oai-ci-vm-tool b/ci-scripts/oai-ci-vm-tool
index bfef93a844f93a1a5f3a651d7e0afce61b15bfe3..c12639173a801cd44496aff6e3897f12cebdae33 100755
--- a/ci-scripts/oai-ci-vm-tool
+++ b/ci-scripts/oai-ci-vm-tool
@@ -44,6 +44,7 @@ function variant_usage {
     echo " # non-OSA Build Variants"
     echo "    --variant flexran-rtc  OR -v10"
     echo " # OpenAirInterface Test Variants"
+    echo "    --variant rf-sim       OR -v21"
     echo "    --variant l2-sim       OR -v22"
 }
 
@@ -302,6 +303,13 @@ case $key in
     NBARGS=$[$NBARGS+256]
     shift
     ;;
+    -v21)
+    VM_NAME=ci-rf-sim
+    ARCHIVES_LOC=rf_sim
+    RUN_OPTIONS="complex"
+    NBARGS=$[$NBARGS+256]
+    shift
+    ;;
     -v22)
     VM_NAME=ci-l2-sim
     ARCHIVES_LOC=l2_sim
@@ -377,6 +385,12 @@ case $key in
         BUILD_OPTIONS="cmake . && make -j2"
         NBARGS=$[$NBARGS+256]
         ;;
+        rf-sim)
+        VM_NAME=ci-rf-sim
+        ARCHIVES_LOC=rf_sim
+        RUN_OPTIONS="complex"
+        NBARGS=$[$NBARGS+256]
+        ;;
         l2-sim)
         VM_NAME=ci-l2-sim
         ARCHIVES_LOC=l2_sim
diff --git a/ci-scripts/reportBuildLocally.sh b/ci-scripts/reportBuildLocally.sh
index e7ea21d4d575eed953d41f4c0f5120a97c7eda0d..b0709db15a2381ff13bac4bb3c5dd116eb8eb3fa 100755
--- a/ci-scripts/reportBuildLocally.sh
+++ b/ci-scripts/reportBuildLocally.sh
@@ -615,9 +615,9 @@ function report_build {
     summary_table_row "RF Simulator - Release 14" ./archives/ue_eth/rfsimulator.Rel14.txt "Built target rfsimulator" ./ue_eth_row5.html
     summary_table_row "TCP OAI Bridge - Release 14" ./archives/ue_eth/tcp_bridge_oai.Rel14.txt "Built target tcp_bridge_oai" ./ue_eth_row6.html
     summary_table_row "Conf 2 UE Data - Release 14" ./archives/ue_eth/conf2uedata.Rel14.txt "Built target conf2uedata" ./ue_eth_row7.html
-    summary_table_row "UE IP - Release 14" ./archives/ue_eth/ue_ip.Rel14.txt "Built target ue_ip" ./ue_eth_row7.html
-    summary_table_row "UE IP - Release 14" ./archives/ue_eth/ue_ip.Rel14.txt "Built target ue_ip" ./ue_eth_row7.html
-    summary_table_row "USIM - Release 14" ./archives/ue_eth/usim.Rel14.txt "Built target usim" ./ue_eth_row7.html
+    summary_table_row "NVRAM - Release 14" ./archives/ue_eth/nvram.Rel14.txt "Built target nvram" ./ue_eth_row8.html
+    summary_table_row "UE IP - Release 14" ./archives/ue_eth/ue_ip.Rel14.txt "Built target ue_ip" ./ue_eth_row9.html
+    summary_table_row "USIM - Release 14" ./archives/ue_eth/usim.Rel14.txt "Built target usim" ./ue_eth_row9a.html
     summary_table_footer
 
     if [ -e ./archives/red_hat ]
diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh
index 88d510a07983cd870568bf32f3a7cc6bf72223d4..34ee1f36f7a977f9ed5e165183efbd99e6f01ec2 100755
--- a/ci-scripts/runTestOnVM.sh
+++ b/ci-scripts/runTestOnVM.sh
@@ -90,7 +90,7 @@ function start_basic_sim_enb {
     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
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1
     sleep 10
     rm $1
 }
@@ -108,7 +108,7 @@ function start_basic_sim_ue {
     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
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm $1
 
     local i="0"
@@ -116,7 +116,7 @@ function start_basic_sim_ue {
     while [ $i -lt 10 ]
     do
         sleep 5
-        CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1`
+        CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1`
         if [ $CONNECTED -eq 1 ]
         then
             i="100"
@@ -134,40 +134,63 @@ function start_basic_sim_ue {
 }
 
 function get_ue_ip_addr {
-    echo "ifconfig oaitun_ue1 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's#  P-t-P:.*\$##'" > $1
-    UE_IP_ADDR=`ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1`
-    echo "Test UE IP Address is : $UE_IP_ADDR"
+    local LOC_IF_ID=$3
+    echo "ifconfig oaitun_ue${LOC_IF_ID} | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's#  P-t-P:.*\$##'" > $1
+    UE_IP_ADDR=`ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1`
+    echo "Test UE${LOC_IF_ID} IP Address is : $UE_IP_ADDR"
     rm $1
 }
 
 function get_enb_noS1_ip_addr {
     echo "ifconfig oaitun_enb1 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's#  P-t-P:.*\$##'" > $1
-    ENB_IP_ADDR=`ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1`
-    echo "Test eNB IP Address is : $UE_IP_ADDR"
+    ENB_IP_ADDR=`ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1`
+    echo "Test eNB IP Address is : $ENB_IP_ADDR"
     rm $1
 }
 
 function ping_ue_ip_addr {
+    local LOC_FG_OR_BG=$5
     echo "echo \"COMMAND IS: ping -c 20 $3\" > $4" > $1
     echo "echo \"ping -c 20 $3\"" >> $1
-    echo "ping -c 20 $UE_IP_ADDR | tee -a $4" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    if [ $LOC_FG_OR_BG -eq 0 ]
+    then
+        echo "ping -c 20 $UE_IP_ADDR >> $4" >> $1
+        echo "tail -3 $4" >> $1
+    else
+        echo "nohup ping -c 20 $UE_IP_ADDR >> $4 &" >> $1
+    fi
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm -f $1
 }
 
 function ping_epc_ip_addr {
-    echo "echo \"COMMAND IS: ping -I oaitun_ue1 -c 20 $3\" > $4" > $1
-    echo "echo \"ping -I oaitun_ue1 -c 20 $3\"" >> $1
-    echo "ping -I oaitun_ue1 -c 20 $3 | tee -a $4" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    local LOC_IF_ID=$5
+    local LOC_FG_OR_BG=$6
+    echo "echo \"COMMAND IS: ping -I oaitun_ue${LOC_IF_ID} -c 20 $3\" > $4" > $1
+    echo "echo \"ping -I oaitun_ue${LOC_IF_ID} -c 20 $3\"" >> $1
+    if [ $LOC_FG_OR_BG -eq 0 ]
+    then
+        echo "ping -I oaitun_ue${LOC_IF_ID} -c 20 $3 >> $4" >> $1
+        echo "tail -3 $4" >> $1
+    else
+        echo "nohup ping -I oaitun_ue${LOC_IF_ID} -c 20 $3 >> $4 &" >> $1
+    fi
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm -f $1
 }
 
 function ping_enb_ip_addr {
+    local LOC_FG_OR_BG=$5
     echo "echo \"COMMAND IS: ping -I oaitun_enb1 -c 20 $3\" > $4" > $1
     echo "echo \"ping -I oaitun_enb1 -c 20 $3\"" >> $1
-    echo "ping -I oaitun_enb1 -c 20 $3 | tee -a $4" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    if [ $LOC_FG_OR_BG -eq 0 ]
+    then
+        echo "ping -I oaitun_enb1 -c 20 $3 >> $4" >> $1
+        echo "tail -3 $4" >> $1
+    else
+        echo "nohup ping -I oaitun_enb1 -c 20 $3 >> $4 &" >> $1
+    fi
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm -f $1
 }
 
@@ -187,8 +210,15 @@ function check_ping_result {
             then
                 echo "got all ping packets"
             else
-                echo "got NOT all ping packets"
-                PING_STATUS=-1
+                LOC_NB_PINGS=$[$2-1]
+                ALL_PACKET_RECEIVED=`egrep -c "$LOC_NB_PINGS received" $LOC_PING_FILE`
+                if [ $ALL_PACKET_RECEIVED -eq 1 ]
+                then
+                    echo "got almost all ping packets"
+                else
+                    echo "got NOT all ping packets"
+                    PING_STATUS=-1
+                fi
             fi
         fi
     else
@@ -203,17 +233,17 @@ function iperf_dl {
     echo "echo \"iperf -u -s -i 1\"" > $1
     echo "echo \"COMMAND IS: iperf -u -s -i 1\" > tmp/cmake_targets/log/${BASE_LOG_FILE}_server.txt" > $1
     echo "nohup iperf -u -s -i 1 >> tmp/cmake_targets/log/${BASE_LOG_FILE}_server.txt &" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm $1
 
     echo "echo \"iperf -c $UE_IP_ADDR -u -t 30 -b ${REQ_BANDWIDTH}M -i 1\"" > $3
     echo "echo \"COMMAND IS: iperf -c $UE_IP_ADDR -u -t 30 -b ${REQ_BANDWIDTH}M -i 1\" > ${BASE_LOG_FILE}_client.txt" > $3
     echo "iperf -c $UE_IP_ADDR -u -t 30 -b ${REQ_BANDWIDTH}M -i 1 | tee -a ${BASE_LOG_FILE}_client.txt" >> $3
-    ssh -o StrictHostKeyChecking=no ubuntu@$4 < $3
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$4 < $3
     rm -f $3
 
     echo "killall --signal SIGKILL iperf" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm $1
 }
 
@@ -223,17 +253,17 @@ function iperf_ul {
     echo "echo \"iperf -u -s -i 1\"" > $3
     echo "echo \"COMMAND IS: iperf -u -s -i 1\" > ${BASE_LOG_FILE}_server.txt" > $3
     echo "nohup iperf -u -s -i 1 >> ${BASE_LOG_FILE}_server.txt &" >> $3
-    ssh -o StrictHostKeyChecking=no ubuntu@$4 < $3
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$4 < $3
     rm $3
 
     echo "echo \"iperf -c $REAL_EPC_IP_ADDR -u -t 30 -b ${REQ_BANDWIDTH}M -i 1\"" > $1
     echo "echo \"COMMAND IS: iperf -c $REAL_EPC_IP_ADDR -u -t 30 -b ${REQ_BANDWIDTH}M -i 1\" > /home/ubuntu/tmp/cmake_targets/log/${BASE_LOG_FILE}_client.txt" > $1
     echo "iperf -c $REAL_EPC_IP_ADDR -u -t 30 -b ${REQ_BANDWIDTH}M -i 1 | tee -a /home/ubuntu/tmp/cmake_targets/log/${BASE_LOG_FILE}_client.txt" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm -f $1
 
     echo "killall --signal SIGKILL iperf" >> $3
-    ssh -o StrictHostKeyChecking=no ubuntu@$4 < $3
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$4 < $3
     rm $3
 }
 
@@ -319,7 +349,7 @@ function terminate_enb_ue_basic_sim {
     fi
     echo "echo \"ps -aux | grep softmodem\"" >> $1
     echo "ps -aux | grep softmodem | grep -v grep" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm -f $1
 }
 
@@ -335,7 +365,7 @@ function recover_core_dump {
         echo "sudo rm core" >> $1
         echo "rm ci-lte-basic-sim.conf" >> $1
         echo "sync" >> $1
-        ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+        ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
         scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/basic_simulator/enb/basic-simulator-enb-core-${TC}.bz2 $4
         rm -f $1
     fi
@@ -360,8 +390,6 @@ function full_basic_sim_destroy {
         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
         if [ -e $JENKINS_WKSP/flexran/flexran_build_complete.txt ]
         then
             uvt-kvm destroy $FLEXRAN_CTL_VM_NAME
@@ -415,7 +443,7 @@ function install_epc_on_vm {
     if [ $LTEBOX -eq 1 ]
     then
         echo "ls -ls /opt/ltebox/tools/start_ltebox" > $LOC_EPC_VM_CMDS
-        RESPONSE=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS`
+        RESPONSE=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS`
         NB_EXES=`echo $RESPONSE | grep -c ltebox`
         if [ $NB_EXES -eq 1 ]; then LTE_BOX_TO_INSTALL=0; fi
     fi
@@ -459,7 +487,7 @@ function install_epc_on_vm {
         echo "sudo sed -i  -e 's#EPC_VM_IP_ADDRESS#$LOC_EPC_VM_IP_ADDR#' gw.conf" >> $LOC_EPC_VM_CMDS
         echo "sudo sed -i  -e 's#EPC_VM_IP_ADDRESS#$LOC_EPC_VM_IP_ADDR#' mme.conf" >> $LOC_EPC_VM_CMDS
 
-        ssh -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS
+        ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS
         rm -f $LOC_EPC_VM_CMDS
     fi
 }
@@ -481,7 +509,7 @@ function add_user_to_epc_lists {
         echo "sudo cp /tmp/subscriber.data subscriber.data" >> $LOC_EPC_VM_CMDS
         echo "sudo cp /tmp/profile.data profile.data" >> $LOC_EPC_VM_CMDS
 
-        ssh -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS
+        ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS
         rm -f $LOC_EPC_VM_CMDS
     fi
 }
@@ -506,7 +534,7 @@ function start_epc {
         echo "echo \"sudo ./start_ltebox\"" >> $LOC_EPC_VM_CMDS
         echo "nohup sudo ./start_ltebox > /home/ubuntu/ltebox.txt" >> $LOC_EPC_VM_CMDS
 
-        ssh -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS
+        ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS
         rm -f $LOC_EPC_VM_CMDS
 
         i="0"
@@ -514,7 +542,7 @@ function start_epc {
         while [ $i -lt 10 ]
         do
             sleep 2
-            CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS`
+            CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS`
             if [ $CONNECTED -eq 1 ]
             then
                 i="100"
@@ -544,7 +572,7 @@ function retrieve_real_epc_ip_addr {
     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:.*\$##'" > $LOC_EPC_VM_CMDS
-        REAL_EPC_IP_ADDR=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS`
+        REAL_EPC_IP_ADDR=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS`
         echo "EPC IP Address     is : $REAL_EPC_IP_ADDR"
         rm $LOC_EPC_VM_CMDS
     fi
@@ -561,7 +589,7 @@ function terminate_epc {
         echo "sudo daemon --name=simulated_hss --stop" >> $1
         echo "echo \"sudo killall --signal SIGKILL hss_sim\"" >> $1
         echo "sudo killall --signal SIGKILL hss_sim" >> $1
-        ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+        ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
         rm $1
     fi
 }
@@ -571,7 +599,7 @@ function start_flexran_ctrl {
     echo "if [ -f cmake_targets/log/flexran_ctl_run.log ]; then rm -f cmake_targets/log/flexran_ctl_run.log cmake_targets/log/flexran_ctl_query*.log; fi" >> $1
     echo "echo \" sudo build/rt_controller -c log_config/basic_log\"" >> $1
     echo "nohup sudo build/rt_controller -c log_config/basic_log > cmake_targets/log/flexran_ctl_run.log 2>&1 &" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm $1
     sleep 10
 }
@@ -579,7 +607,7 @@ function start_flexran_ctrl {
 function stop_flexran_ctrl {
     echo "echo \"sudo killall --signal SIGKILL rt_controller\"" > $1
     echo "sudo killall --signal SIGKILL rt_controller" > $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm $1
     sleep 2
 }
@@ -591,7 +619,7 @@ function query_flexran_ctrl_status {
     echo "echo \"LOG_NAME: $LOC_MESSAGE\" >> cmake_targets/log/flexran_ctl_query_${LOC_MESSAGE}.log" >> $1
     echo "echo \"------------------------------------------------------------\" >> cmake_targets/log/flexran_ctl_query_${LOC_MESSAGE}.log" >> $1
     echo "curl http://localhost:9999/stats | jq '.' | tee -a cmake_targets/log/flexran_ctl_query_${LOC_MESSAGE}.log" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm $1
 }
 
@@ -612,7 +640,7 @@ function build_ue_on_separate_folder {
     echo "sudo chmod 666 /etc/iproute2/rt_tables" >> $1
     echo "source init_nas_s1 UE" >> $1
     echo "ifconfig" >> $1
-    ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
     rm -f $1
 }
 
@@ -649,7 +677,7 @@ function start_l2_sim_enb {
     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/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
 
-    ssh -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
     rm $1
 
     local i="0"
@@ -657,7 +685,7 @@ function start_l2_sim_enb {
     while [ $i -lt 10 ]
     do
         sleep 5
-        CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1`
+        CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1`
         if [ $CONNECTED -ne 0 ]
         then
             i="100"
@@ -666,14 +694,39 @@ function start_l2_sim_enb {
         fi
     done
     rm $1
+    ENB_SYNC=1
     if [ $i -lt 50 ]
     then
         ENB_SYNC=0
         echo "L2-SIM eNB is NOT sync'ed: process still alive?"
     else
-        ENB_SYNC=1
         echo "L2-SIM eNB is sync'ed: waiting for UE(s) to connect"
     fi
+    if [ $LOC_S1_CONFIGURATION -eq 0 ]
+    then
+        echo "ifconfig oaitun_enb1 | egrep -c \"inet addr\"" > $1
+        # Checking oaitun_enb1 interface has now an IP address
+        i="0"
+        while [ $i -lt 10 ]
+        do
+            CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1`
+            if [ $CONNECTED -eq 1 ]
+            then
+                i="100"
+            else
+                i=$[$i+1]
+                sleep 5
+            fi
+        done
+        rm $1
+        if [ $i -lt 50 ]
+        then
+            UE_SYNC=0
+            echo "L2-SIM eNB oaitun_enb1 is DOWN or NOT CONFIGURED"
+        else
+            echo "L2-SIM eNB oaitun_enb1 is UP and CONFIGURED"
+        fi
+    fi
     sleep 10
 }
 
@@ -701,7 +754,7 @@ function add_ue_l2_sim_ue {
         echo "sudo ../../../targets/bin/conf2uedata -c ../../../openair3/NAS/TOOLS/ue_eurecom_test_sfr_multi_ues.conf -o . > /home/ubuntu/tmp/cmake_targets/log/ue_adapt.txt 2>&1" >> $1
     fi
 
-    ssh -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
     rm $1
 }
 
@@ -732,7 +785,7 @@ function start_l2_sim_ue {
     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=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
 
-    ssh -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
     rm $1
 
     local i="0"
@@ -740,7 +793,7 @@ function start_l2_sim_ue {
     while [ $i -lt 10 ]
     do
         sleep 5
-        CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1`
+        CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1`
         if [ $CONNECTED -eq 1 ]
         then
             i="100"
@@ -749,22 +802,190 @@ function start_l2_sim_ue {
         fi
     done
     rm $1
+    UE_SYNC=1
     if [ $i -lt 50 ]
     then
         UE_SYNC=0
         echo "L2-SIM UE is NOT sync'ed w/ eNB"
         return
     else
-        UE_SYNC=1
         echo "L2-SIM UE is sync'ed w/ eNB"
     fi
+    local max_interfaces_to_check=1
+    if [ $LOC_S1_CONFIGURATION -eq 0 ]; then max_interfaces_to_check=$LOC_NB_UES; fi
+    local j="1"
+    while [ $j -le $max_interfaces_to_check ]
+    do
+        echo "ifconfig oaitun_ue${j} | egrep -c \"inet addr\"" > $1
+        # Checking oaitun_ue1 interface has now an IP address
+        i="0"
+        while [ $i -lt 10 ]
+        do
+            CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1`
+            if [ $CONNECTED -eq 1 ]
+            then
+                i="100"
+            else
+                i=$[$i+1]
+                sleep 5
+            fi
+        done
+        rm $1
+        if [ $i -lt 50 ]
+        then
+            UE_SYNC=0
+            echo "L2-SIM UE oaitun_ue${j} is DOWN or NOT CONFIGURED"
+        else
+            echo "L2-SIM UE oaitun_ue${j} is UP and CONFIGURED"
+        fi
+        j=$[$j+1]
+    done
+    sleep 10
+    # for debug
+    if [ $LOC_S1_CONFIGURATION -eq 1 ]
+    then
+        echo "ifconfig" > $1
+        ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
+        rm $1
+    fi
+}
+
+function full_l2_sim_destroy {
+    if [ $KEEP_VM_ALIVE -eq 0 ]
+    then
+        echo "############################################################"
+        echo "Destroying VMs"
+        echo "############################################################"
+        uvt-kvm destroy $ENB_VM_NAME
+        ssh-keygen -R $ENB_VM_IP_ADDR
+        uvt-kvm destroy $UE_VM_NAME
+        ssh-keygen -R $UE_VM_IP_ADDR
+    fi
+}
+
+function start_rf_sim_enb {
+    local LOC_ENB_VM_IP_ADDR=$2
+    local LOC_EPC_IP_ADDR=$3
+    local LOC_LOG_FILE=$4
+    local LOC_NB_RBS=$5
+    local LOC_CONF_FILE=$6
+    # 1 is with S1 and 0 without S1 aka noS1
+    local LOC_S1_CONFIGURATION=$7
+    echo "cd /home/ubuntu/tmp" > $1
+    echo "echo \"sudo apt-get --yes --quiet install daemon \"" >> $1
+    echo "sudo apt-get --yes install daemon >> /home/ubuntu/tmp/cmake_targets/log/daemon-install.txt 2>&1" >> $1
+    echo "echo \"export RFSIMULATOR=enb\"" >> $1
+    echo "export RFSIMULATOR=enb" >> $1
+    echo "echo \"source oaienv\"" >> $1
+    echo "source oaienv" >> $1
+    echo "cd ci-scripts/conf_files/" >> $1
+    echo "cp $LOC_CONF_FILE ci-$LOC_CONF_FILE" >> $1
+    echo "sed -i -e 's#N_RB_DL.*=.*;#N_RB_DL                                         = $LOC_NB_RBS;#' -e 's#CI_MME_IP_ADDR#$LOC_EPC_IP_ADDR#' -e 's#CI_ENB_IP_ADDR#$LOC_ENB_VM_IP_ADDR#' -e 's#CI_UE_IP_ADDR#$LOC_UE_VM_IP_ADDR#' ci-$LOC_CONF_FILE" >> $1
+    echo "echo \"grep N_RB_DL ci-$LOC_CONF_FILE\"" >> $1
+    echo "grep N_RB_DL ci-$LOC_CONF_FILE | sed -e 's#N_RB_DL.*=#N_RB_DL =#'" >> $1
+    echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
+    echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
+    echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
+    if [ $LOC_S1_CONFIGURATION -eq 0 ]
+    then
+        echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --noS1\" > ./my-lte-softmodem-run.sh " >> $1
+    else
+        echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim\" > ./my-lte-softmodem-run.sh " >> $1
+    fi
+    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/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
+
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1
+    rm $1
+
+    local i="0"
+    echo "egrep -c \"got sync\" /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE" > $1
+    while [ $i -lt 10 ]
+    do
+        sleep 5
+        CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1`
+        if [ $CONNECTED -ne 0 ]
+        then
+            i="100"
+        else
+            i=$[$i+1]
+        fi
+    done
+    rm $1
+    if [ $i -lt 50 ]
+    then
+        ENB_SYNC=0
+        echo "RF-SIM eNB is NOT sync'ed: process still alive?"
+    else
+        ENB_SYNC=1
+        echo "RF-SIM eNB is sync'ed: waiting for UE(s) to connect"
+    fi
+    sleep 10
+}
+
+#start_rf_sim_ue $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_VM_IP_ADDR $CURRENT_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG
+function start_rf_sim_ue {
+    local LOC_UE_VM_IP_ADDR=$2
+    local LOC_ENB_VM_IP_ADDR=$3
+    local LOC_LOG_FILE=$4
+    local LOC_PRB=$5
+    local LOC_FREQUENCY=$6
+    # 1 is with S1 and 0 without S1 aka noS1
+    local LOC_S1_CONFIGURATION=$7
+    echo "echo \"sudo apt-get --yes --quiet install daemon \"" > $1
+    echo "sudo apt-get --yes install daemon >> /home/ubuntu/tmp/cmake_targets/log/daemon-install.txt 2>&1" >> $1
+    echo "echo \"export RFSIMULATOR=${LOC_ENB_VM_IP_ADDR}\"" >> $1
+    echo "export RFSIMULATOR=${LOC_ENB_VM_IP_ADDR}" >> $1
+    echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
+    echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
+    echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
+    if [ $LOC_S1_CONFIGURATION -eq 0 ]
+    then
+        echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --rfsim --noS1\" > ./my-lte-softmodem-run.sh " >> $1
+    else
+        echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --rfsim\" > ./my-lte-softmodem-run.sh " >> $1
+    fi
+    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=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
+
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1
+    rm $1
+
+    local i="0"
+    echo "egrep -c \"got sync\" /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE" > $1
+    while [ $i -lt 10 ]
+    do
+        sleep 5
+        CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1`
+        if [ $CONNECTED -eq 1 ]
+        then
+            i="100"
+        else
+            i=$[$i+1]
+        fi
+    done
+    rm $1
+    if [ $i -lt 50 ]
+    then
+        UE_SYNC=0
+        echo "RF-SIM UE is NOT sync'ed w/ eNB"
+        return
+    else
+        UE_SYNC=1
+        echo "RF-SIM UE is sync'ed w/ eNB"
+    fi
+    return
     # Checking oaitun_ue1 interface has now an IP address
     i="0"
     echo "ifconfig oaitun_ue1 | egrep -c \"inet addr\"" > $1
     while [ $i -lt 10 ]
     do
         sleep 5
-        CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1`
+        CONNECTED=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1`
         if [ $CONNECTED -eq 1 ]
         then
             i="100"
@@ -776,40 +997,26 @@ function start_l2_sim_ue {
     if [ $i -lt 50 ]
     then
         UE_SYNC=0
-        echo "L2-SIM UE oaitun_ue1 is NOT sync'ed w/ EPC"
+        echo "RF-SIM UE oaitun_ue1 is NOT sync'ed w/ EPC"
     else
         UE_SYNC=1
-        echo "L2-SIM UE oaitun_ue1 is sync'ed w/ EPC"
+        echo "RF-SIM UE oaitun_ue1 is sync'ed w/ EPC"
     fi
     sleep 10
 }
 
-function full_l2_sim_destroy {
-    if [ $KEEP_VM_ALIVE -eq 0 ]
-    then
-        echo "############################################################"
-        echo "Destroying VMs"
-        echo "############################################################"
-        uvt-kvm destroy $ENB_VM_NAME
-        ssh-keygen -R $ENB_VM_IP_ADDR
-        uvt-kvm destroy $UE_VM_NAME
-        ssh-keygen -R $UE_VM_IP_ADDR
-        uvt-kvm destroy $EPC_VM_NAME
-        ssh-keygen -R $EPC_VM_IP_ADDR
-    fi
-}
 
 function run_test_on_vm {
     echo "############################################################"
     echo "OAI CI VM script"
     echo "############################################################"
-    if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-l2-sim.* ]]
+    if [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-l2-sim.* )) || (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-rf-sim.* )) ]]
     then
-        ENB_VM_NAME=`echo $VM_NAME | sed -e "s#l2-sim#enb-ethernet#"`
+        ENB_VM_NAME=`echo $VM_NAME | sed -e "s#l2-sim#enb-ethernet#" -e "s#rf-sim#enb-ethernet#"`
         ENB_VM_CMDS=${ENB_VM_NAME}_cmds.txt
         echo "ENB_VM_NAME         = $ENB_VM_NAME"
         echo "ENB_VM_CMD_FILE     = $ENB_VM_CMDS"
-        UE_VM_NAME=`echo $VM_NAME | sed -e "s#l2-sim#ue-ethernet#"`
+        UE_VM_NAME=`echo $VM_NAME | sed -e "s#l2-sim#ue-ethernet#" -e "s#rf-sim#ue-ethernet#"`
         UE_VM_CMDS=${UE_VM_NAME}_cmds.txt
         echo "UE_VM_NAME          = $UE_VM_NAME"
         echo "UE_VM_CMD_FILE      = $UE_VM_CMDS"
@@ -820,7 +1027,7 @@ function run_test_on_vm {
     echo "JENKINS_WKSP        = $JENKINS_WKSP"
     echo "ARCHIVES_LOC        = $ARCHIVES_LOC"
 
-    if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-l2-sim.* ]]
+    if [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-l2-sim.* )) || (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-rf-sim.* )) ]]
     then
         echo "############################################################"
         echo "Waiting for ENB VM to be started"
@@ -874,7 +1081,7 @@ function run_test_on_vm {
         echo "cd log" >> $VM_CMDS
         echo "zip -r -qq tmp.zip *.* 0*" >> $VM_CMDS
 
-        ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
+        ssh -T -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
 
         echo "############################################################"
         echo "Creating a tmp folder to store results and artifacts"
@@ -1020,13 +1227,13 @@ function run_test_on_vm {
                   STATUS=-1
                   return
               fi
-              get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+              get_ue_ip_addr $VM_CMDS $VM_IP_ADDR 1
 
               echo "############################################################"
               echo "Pinging the UE"
               echo "############################################################"
               PING_LOG_FILE=${TMODE}_${BW}MHz_ping_ue.txt
-              ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+              ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE 0
               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
 
@@ -1138,7 +1345,7 @@ function run_test_on_vm {
                 return
             fi
             query_flexran_ctrl_status $FLEXRAN_CTL_VM_CMDS $FLEXRAN_CTL_VM_IP_ADDR 03_enb_ue_connected
-            get_ue_ip_addr $VM_CMDS $VM_IP_ADDR
+            get_ue_ip_addr $VM_CMDS $VM_IP_ADDR 1
 
             sleep 30
             echo "############################################################"
@@ -1180,6 +1387,109 @@ function run_test_on_vm {
         fi
     fi
 
+    if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-rf-sim.* ]]
+    then
+        if [ -d $ARCHIVES_LOC ]
+        then
+            rm -Rf $ARCHIVES_LOC
+        fi
+        mkdir --parents $ARCHIVES_LOC
+
+        # Creating a VM for EPC and installing SW
+        EPC_VM_NAME=`echo $VM_NAME | sed -e "s#rf-sim#epc#"`
+        EPC_VM_CMDS=${EPC_VM_NAME}_cmds.txt
+        LTEBOX=0
+        install_epc_on_vm $EPC_VM_NAME $EPC_VM_CMDS
+        EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
+
+        #EPC_CONFIGS=("wS1" "noS1")
+        #TRANS_MODES=("fdd" "tdd")
+        #BW_CASES=(05 10 20)
+        EPC_CONFIGS=("noS1")
+        TRANS_MODES=("fdd")
+        BW_CASES=(05)
+        for CN_CONFIG in ${EPC_CONFIGS[@]}
+        do
+          if [[ $CN_CONFIG =~ .*wS1.* ]]
+          then
+              echo "############################################################"
+              echo "Start EPC for the wS1 configuration"
+              echo "############################################################"
+              start_epc $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
+
+              # Retrieve EPC real IP address
+              retrieve_real_epc_ip_addr $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
+              S1_NOS1_CFG=1
+              continue
+          else
+              #echo "############################################################"
+              #echo "Terminate EPC"
+              #echo "############################################################"
+              #terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+
+              echo "############################################################"
+              echo "Running now in a no-S1 configuration"
+              echo "############################################################"
+              S1_NOS1_CFG=0
+          fi
+          for TMODE in ${TRANS_MODES[@]}
+          do
+              if [[ $TMODE =~ .*fdd.* ]]
+              then
+                  CONF_FILE=enb.band7.tm1.50PRB.usrpb210.conf
+                  FREQUENCY=2680
+              else
+                  CONF_FILE=enb.band40.tm1.50PRB.FairScheduler.usrpb210.conf
+                  FREQUENCY=2350
+              fi
+              for BW in ${BW_CASES[@]}
+              do
+                  if [[ $BW =~ .*05.* ]]; then PRB=25; fi
+                  if [[ $BW =~ .*10.* ]]; then PRB=50; fi
+                  if [[ $BW =~ .*20.* ]]; then PRB=100; fi
+
+                  echo "############################################################"
+                  echo "${CN_CONFIG} : Starting the eNB in ${TMODE}-${BW}MHz mode"
+                  echo "############################################################"
+                  CURRENT_ENB_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_enb.log
+                  start_rf_sim_enb $ENB_VM_CMDS $ENB_VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG
+
+                  echo "############################################################"
+                  echo "${CN_CONFIG} : Starting the UE"
+                  echo "############################################################"
+                  CURRENT_UE_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_ue.log
+                  start_rf_sim_ue $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_VM_IP_ADDR $CURRENT_UE_LOG_FILE $PRB $FREQUENCY $S1_NOS1_CFG
+                  if [ $UE_SYNC -eq 0 ]
+                  then
+                      echo "Problem w/ eNB and UE not syncing"
+                      terminate_enb_ue_basic_sim $ENB_VM_CMDS $ENB_VM_IP_ADDR 1
+                      terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR 2
+                      scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+                      scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+                      if [ $S1_NOS1_CFG -eq 1 ]
+                      then
+                          terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
+                      fi
+                      echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log
+                      STATUS=-1
+                      return
+                  fi
+
+                  sleep 30
+
+                  echo "############################################################"
+                  echo "${CN_CONFIG} : Terminate enb/ue simulators"
+                  echo "############################################################"
+                  terminate_enb_ue_basic_sim $ENB_VM_CMDS $ENB_VM_IP_ADDR 1
+                  terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR 2
+                  scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
+                  scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
+
+              done
+          done
+        done
+    fi
+
     if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-l2-sim.* ]]
     then
         PING_STATUS=0
@@ -1194,7 +1504,7 @@ function run_test_on_vm {
         #build_ue_on_separate_folder $VM_CMDS $VM_IP_ADDR
 
         # Creating a VM for EPC and installing SW
-        EPC_VM_NAME=`echo $VM_NAME | sed -e "s#l2-sim#l2-epc#"`
+        EPC_VM_NAME=`echo $VM_NAME | sed -e "s#l2-sim#epc#"`
         EPC_VM_CMDS=${EPC_VM_NAME}_cmds.txt
         LTEBOX=0
         install_epc_on_vm $EPC_VM_NAME $EPC_VM_CMDS
@@ -1272,44 +1582,101 @@ function run_test_on_vm {
 
                 if [ $S1_NOS1_CFG -eq 1 ]
                 then
-                    get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR
+                    get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR 1
 
                     echo "############################################################"
                     echo "${CN_CONFIG} : Pinging the EPC from UE"
                     echo "############################################################"
                     PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_epc.log
-                    ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $REAL_EPC_IP_ADDR $PING_LOG_FILE
+                    ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $REAL_EPC_IP_ADDR $PING_LOG_FILE 1 0
                     scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+                    check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
                 else
-                    get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR
                     get_enb_noS1_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR
 
                     echo "############################################################"
                     echo "${CN_CONFIG} : Pinging the eNB from UE"
                     echo "############################################################"
-                    PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_enb.log
-                    ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_IP_ADDR $PING_LOG_FILE
-                    scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+                    echo " --- Sequentially ---"
+                    local j="1"
+                    while [ $j -le $INT_NB_UES ]
+                    do
+                        PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_enb_seq_from_ue${j}.log
+                        ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_IP_ADDR $PING_LOG_FILE ${j} 0
+                        scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+                        check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+                        j=$[$j+1]
+                    done
+                    if [ $INT_NB_UES -gt 1 ]
+                    then
+                        echo " --- In parallel ---"
+                        j="1"
+                        while [ $j -le $INT_NB_UES ]
+                        do
+                            PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_enb_para_from_ue${j}.log
+                            ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_IP_ADDR $PING_LOG_FILE ${j} 1
+                            j=$[$j+1]
+                        done
+                        sleep 25
+                        j="1"
+                        while [ $j -le $INT_NB_UES ]
+                        do
+                            PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_enb_para_from_ue${j}.log
+                            scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+                            tail -3 $ARCHIVES_LOC/$PING_LOG_FILE
+                            check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+                            j=$[$j+1]
+                        done
+                    fi
                 fi
-                check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
 
                 if [ $S1_NOS1_CFG -eq 1 ]
                 then
                     echo "############################################################"
-                    echo "${CN_CONFIG} : Pinging the UE from EPC"
+                    echo "${CN_CONFIG} : Pinging the UE(s) from EPC"
                     echo "############################################################"
                     PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_ue.log
-                    ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
+                    ping_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE 0
                     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
                 else
                     echo "############################################################"
-                    echo "${CN_CONFIG} : Pinging the UE from eNB"
+                    echo "${CN_CONFIG} : Pinging the UE(s) from eNB"
                     echo "############################################################"
-                    PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_ue.log
-                    ping_enb_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE
-                    scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+                    echo " --- Sequentially ---"
+                    local j="1"
+                    while [ $j -le $INT_NB_UES ]
+                    do
+                        get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $j
+                        PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_from_enb_seq_ue${j}.log
+                        ping_enb_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE 0
+                        scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+                        check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+                        j=$[$j+1]
+                    done
+                    if [ $INT_NB_UES -gt 1 ]
+                    then
+                        echo " --- In parallel ---"
+                        j="1"
+                        while [ $j -le $INT_NB_UES ]
+                        do
+                            get_ue_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $j
+                            PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_from_enb_para_ue${j}.log
+                            ping_enb_ip_addr $ENB_VM_CMDS $ENB_VM_IP_ADDR $UE_IP_ADDR $PING_LOG_FILE 1
+                            j=$[$j+1]
+                        done
+                        sleep 25
+                        j="1"
+                        while [ $j -le $INT_NB_UES ]
+                        do
+                            PING_LOG_FILE=${TMODE}_${BW}MHz_${UES}users_${CN_CONFIG}_ping_ue${j}.log
+                            scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC
+                            tail -3 $ARCHIVES_LOC/$PING_LOG_FILE
+                            check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
+                            j=$[$j+1]
+                        done
+                    fi
                 fi
-                check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20
 
                 echo "############################################################"
                 echo "${CN_CONFIG} : Terminate enb/ue simulators"
diff --git a/ci-scripts/waitBuildOnVM.sh b/ci-scripts/waitBuildOnVM.sh
index 557cbc9267fd155f239f044cd1abfd2a402c0d3b..6bf20a7f4d209fbd42701e755684f1b32b7a0033 100755
--- a/ci-scripts/waitBuildOnVM.sh
+++ b/ci-scripts/waitBuildOnVM.sh
@@ -98,7 +98,7 @@ function wait_on_vm_build {
         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
+    ssh -T -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
     rm -f $VM_CMDS
 }