From db4bce547f2e66d7ceb67e3c0d9065284c7f4c10 Mon Sep 17 00:00:00 2001 From: Raphael Defosseux <raphael.defosseux@eurecom.fr> Date: Fri, 22 Mar 2019 16:34:44 +0100 Subject: [PATCH] CI: running l2-nfapi-simulator on 2 separate VM Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr> --- .../conf_files/rcc.band7.tm1.nfapi.conf | 16 +-- ci-scripts/conf_files/ue.nfapi.conf | 14 +- ci-scripts/oai-ci-vm-tool | 28 ++-- ci-scripts/runTestOnVM.sh | 121 ++++++++++++------ 4 files changed, 112 insertions(+), 67 deletions(-) diff --git a/ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf b/ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf index 40fba82f9c2..52c0593d1b3 100644 --- a/ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf +++ b/ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf @@ -201,13 +201,13 @@ eNBs = MACRLCs = ( { num_cc = 1; - local_s_if_name = "lo:"; - remote_s_address = "127.0.0.1"; - local_s_address = "127.0.0.2"; - local_s_portc = 50001; - remote_s_portc = 50000; - local_s_portd = 50011; - remote_s_portd = 50010; + local_s_if_name = "ens3"; + remote_s_address = "CI_UE_IP_ADDR"; + local_s_address = "CI_ENB_IP_ADDR"; + local_s_portc = 50001; + remote_s_portc = 50000; + local_s_portd = 50011; + remote_s_portd = 50010; tr_s_preference = "nfapi"; tr_n_preference = "local_RRC"; } @@ -216,7 +216,7 @@ MACRLCs = ( THREAD_STRUCT = ( { #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT" - parallel_config = "PARALLEL_RU_L1_TRX_SPLIT"; + parallel_config = "PARALLEL_SINGLE_THREAD"; #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE" worker_config = "WORKER_ENABLE"; } diff --git a/ci-scripts/conf_files/ue.nfapi.conf b/ci-scripts/conf_files/ue.nfapi.conf index ea0236cab4e..a5584f20f99 100644 --- a/ci-scripts/conf_files/ue.nfapi.conf +++ b/ci-scripts/conf_files/ue.nfapi.conf @@ -20,13 +20,13 @@ L1s = ( { num_cc = 1; tr_n_preference = "nfapi"; - local_n_if_name = "lo"; - remote_n_address = "127.0.0.2"; - local_n_address = "127.0.0.1"; - local_n_portc = 50000; - remote_n_portc = 50001; - local_n_portd = 50010; - remote_n_portd = 50011; + local_n_if_name = "ens3"; + remote_n_address = "CI_ENB_IP_ADDR"; + local_n_address = "CI_UE_IP_ADDR"; + local_n_portc = 50000; + remote_n_portc = 50001; + local_n_portd = 50010; + remote_n_portd = 50011; } ); diff --git a/ci-scripts/oai-ci-vm-tool b/ci-scripts/oai-ci-vm-tool index 917b0e74911..909975d0606 100755 --- a/ci-scripts/oai-ci-vm-tool +++ b/ci-scripts/oai-ci-vm-tool @@ -270,26 +270,28 @@ case $key in ;; -v7) VM_NAME=ci-enb-ethernet + VM_MEMORY=4096 + VM_CPU=4 ARCHIVES_LOC=enb_eth LOG_PATTERN=.Rel14.txt - NB_PATTERN_FILES=8 - BUILD_OPTIONS="--eNB -t ETHERNET --noS1" + NB_PATTERN_FILES=6 + BUILD_OPTIONS="--eNB -t ETHERNET" NBARGS=$[$NBARGS+256] shift ;; -v8) VM_NAME=ci-ue-ethernet + VM_MEMORY=4096 + VM_CPU=4 ARCHIVES_LOC=ue_eth LOG_PATTERN=.Rel14.txt - NB_PATTERN_FILES=8 - BUILD_OPTIONS="--UE -t ETHERNET --noS1" + NB_PATTERN_FILES=10 + BUILD_OPTIONS="--UE -t ETHERNET" NBARGS=$[$NBARGS+256] shift ;; -v9) VM_NAME=ci-l2-sim - VM_MEMORY=8192 - VM_CPU=8 ARCHIVES_LOC=l2_sim LOG_PATTERN=.Rel14.txt NB_PATTERN_FILES=6 @@ -349,24 +351,26 @@ case $key in ;; enb-ethernet) VM_NAME=ci-enb-ethernet + VM_MEMORY=4096 + VM_CPU=4 ARCHIVES_LOC=enb_eth LOG_PATTERN=.Rel14.txt - NB_PATTERN_FILES=8 - BUILD_OPTIONS="--eNB -t ETHERNET --noS1" + NB_PATTERN_FILES=6 + BUILD_OPTIONS="--eNB -t ETHERNET" NBARGS=$[$NBARGS+256] ;; ue-ethernet) VM_NAME=ci-ue-ethernet + VM_MEMORY=4096 + VM_CPU=4 ARCHIVES_LOC=ue_eth LOG_PATTERN=.Rel14.txt - NB_PATTERN_FILES=8 - BUILD_OPTIONS="--UE -t ETHERNET --noS1" + NB_PATTERN_FILES=10 + BUILD_OPTIONS="--UE -t ETHERNET" NBARGS=$[$NBARGS+256] ;; l2-sim) VM_NAME=ci-l2-sim - VM_MEMORY=8192 - VM_CPU=8 ARCHIVES_LOC=l2_sim LOG_PATTERN=.Rel14.txt NB_PATTERN_FILES=6 diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh index 8d2c5cda06e..05464560d87 100755 --- a/ci-scripts/runTestOnVM.sh +++ b/ci-scripts/runTestOnVM.sh @@ -536,11 +536,12 @@ function build_ue_on_separate_folder { } function start_l2_sim_enb { - local LOC_VM_IP_ADDR=$2 + 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 + local LOC_UE_VM_IP_ADDR=$4 + local LOC_LOG_FILE=$5 + local LOC_NB_RBS=$6 + local LOC_CONF_FILE=$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 @@ -548,7 +549,7 @@ function start_l2_sim_enb { 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_VM_IP_ADDR#' 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 @@ -560,7 +561,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_VM_IP_ADDR < $1 + ssh -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1 rm $1 local i="0" @@ -568,7 +569,7 @@ function start_l2_sim_enb { while [ $i -lt 10 ] do sleep 5 - CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1` + CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_ENB_VM_IP_ADDR < $1` if [ $CONNECTED -ne 0 ] then i="100" @@ -589,19 +590,25 @@ function start_l2_sim_enb { } function start_l2_sim_ue { - local LOC_VM_IP_ADDR=$2 - local LOC_LOG_FILE=$3 - local LOC_CONF_FILE=$4 - echo "echo \"cd /home/ubuntu/tmp-ue/cmake_targets/lte_build_oai/build/\"" >> $1 - echo "sudo chmod 777 /home/ubuntu/tmp-ue/cmake_targets/lte_build_oai/build/" >> $1 - echo "cd /home/ubuntu/tmp-ue/cmake_targets/lte_build_oai/build/" >> $1 - echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp-ue/ci-scripts/conf_files/$LOC_CONF_FILE --L2-emul 3 --num-ues 1\" > ./my-lte-softmodem-run.sh " >> $1 + local LOC_UE_VM_IP_ADDR=$2 + local LOC_ENB_VM_IP_ADDR=$3 + local LOC_LOG_FILE=$4 + local LOC_CONF_FILE=$5 + 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 "cd /home/ubuntu/tmp/ci-scripts/conf_files/" >> $1 + echo "cp $LOC_CONF_FILE ci-$LOC_CONF_FILE" >> $1 + echo "sed -i -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 \"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 + echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues 1\" > ./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=ue_daemon --chdir=/home/ubuntu/tmp-ue/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $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_VM_IP_ADDR < $1 + ssh -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1 rm $1 local i="0" @@ -609,7 +616,7 @@ function start_l2_sim_ue { while [ $i -lt 10 ] do sleep 5 - CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1` + CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1` if [ $CONNECTED -eq 1 ] then i="100" @@ -633,7 +640,7 @@ function start_l2_sim_ue { while [ $i -lt 10 ] do sleep 5 - CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1` + CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_UE_VM_IP_ADDR < $1` if [ $CONNECTED -eq 1 ] then i="100" @@ -657,18 +664,49 @@ function run_test_on_vm { echo "############################################################" echo "OAI CI VM script" echo "############################################################" - echo "VM_NAME = $VM_NAME" - echo "VM_CMD_FILE = $VM_CMDS" + if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-l2-sim.* ]] + then + ENB_VM_NAME=`echo $VM_NAME | sed -e "s#l2-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_CMDS=${UE_VM_NAME}_cmds.txt + echo "ENB_VM_NAME = $ENB_VM_NAME" + echo "ENB_VM_CMD_FILE = $ENB_VM_CMDS" + else + echo "VM_NAME = $VM_NAME" + echo "VM_CMD_FILE = $VM_CMDS" + fi 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 + if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-l2-sim.* ]] + then + echo "############################################################" + echo "Waiting for ENB VM to be started" + echo "############################################################" + uvt-kvm wait $ENB_VM_NAME --insecure + + ENB_VM_IP_ADDR=`uvt-kvm ip $ENB_VM_NAME` + echo "$ENB_VM_NAME has for IP addr = $ENB_VM_IP_ADDR" - VM_IP_ADDR=`uvt-kvm ip $VM_NAME` - echo "$VM_NAME has for IP addr = $VM_IP_ADDR" + echo "############################################################" + echo "Waiting for UE VM to be started" + echo "############################################################" + uvt-kvm wait $UE_VM_NAME --insecure + + UE_VM_IP_ADDR=`uvt-kvm ip $UE_VM_NAME` + echo "$UE_VM_NAME has for IP addr = $UE_VM_IP_ADDR" + else + 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" + fi if [ "$RUN_OPTIONS" == "none" ] then @@ -1270,7 +1308,7 @@ function run_test_on_vm { mkdir --parents $ARCHIVES_LOC # Building UE elsewhere in VM - build_ue_on_separate_folder $VM_CMDS $VM_IP_ADDR + #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#"` @@ -1289,19 +1327,20 @@ function run_test_on_vm { echo "Starting the eNB in FDD-5MHz mode" echo "############################################################" CURRENT_ENB_LOG_FILE=fdd_05MHz_enb.log - start_l2_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 rcc.band7.tm1.nfapi.conf + start_l2_sim_enb $ENB_VM_CMDS $ENB_VM_IP_ADDR $EPC_VM_IP_ADDR $UE_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25 rcc.band7.tm1.nfapi.conf echo "############################################################" echo "Starting the UEs" echo "############################################################" CURRENT_UE_LOG_FILE=fdd_05MHz_ue.log - start_l2_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE ue.nfapi.conf + start_l2_sim_ue $UE_VM_CMDS $UE_VM_IP_ADDR $ENB_VM_IP_ADDR $CURRENT_UE_LOG_FILE ue.nfapi.conf 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 + terminate_enb_ue_basic_sim $ENB_VM_CMDS $ENB_VM_IP_ADDR + terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR + 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 terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log STATUS=-1 @@ -1312,21 +1351,21 @@ function run_test_on_vm { echo "Pinging the EPC from UE" echo "############################################################" PING_LOG_FILE=fdd_05MHz_ping_epc.txt - ping_epc_ip_addr $VM_CMDS $VM_IP_ADDR $REAL_EPC_IP_ADDR $PING_LOG_FILE - scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC + ping_epc_ip_addr $UE_VM_CMDS $UE_VM_IP_ADDR $REAL_EPC_IP_ADDR $PING_LOG_FILE + 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 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 + terminate_enb_ue_basic_sim $ENB_VM_CMDS $ENB_VM_IP_ADDR + terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR + 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 echo "############################################################" echo "Terminate EPC" echo "############################################################" - terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR if [ $KEEP_VM_ALIVE -eq 0 ] @@ -1334,8 +1373,10 @@ function run_test_on_vm { echo "############################################################" echo "Destroying VMs" echo "############################################################" - uvt-kvm destroy $VM_NAME - ssh-keygen -R $VM_IP_ADDR + 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 -- GitLab