CI: importing from develop build and test on basic simulator
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
This commit is contained in:
@@ -41,7 +41,7 @@ pipeline {
|
|||||||
disableConcurrentBuilds()
|
disableConcurrentBuilds()
|
||||||
timestamps()
|
timestamps()
|
||||||
gitLabConnection('OAI GitLab')
|
gitLabConnection('OAI GitLab')
|
||||||
gitlabBuilds(builds: ["Build eNb-USRP", "Build gNb-usrp", "Build nr-UE-usrp", "Build phy-sim", "Analysis with cppcheck"])
|
gitlabBuilds(builds: ["Build eNb-USRP", "Build basic-sim", "Build gNb-usrp", "Build nr-UE-usrp", "Build phy-sim", "Analysis with cppcheck", "Test phy-sim", "Test basic-sim"])
|
||||||
ansiColor('xterm')
|
ansiColor('xterm')
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ pipeline {
|
|||||||
allParametersPresent = false
|
allParametersPresent = false
|
||||||
}
|
}
|
||||||
if (allParametersPresent) {
|
if (allParametersPresent) {
|
||||||
echo "Performing Red Hat Build"
|
echo "Performing Red Hat Build"
|
||||||
doRedHatBuild = true
|
doRedHatBuild = true
|
||||||
} else {
|
} else {
|
||||||
doRedHatBuild = false
|
doRedHatBuild = false
|
||||||
@@ -125,6 +125,12 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stage ("Start VM -- basic-sim") {
|
||||||
|
steps {
|
||||||
|
sh "./ci-scripts/createVM.sh --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
stage ("Start VM -- phy-sim") {
|
stage ("Start VM -- phy-sim") {
|
||||||
steps {
|
steps {
|
||||||
sh "./ci-scripts/createVM.sh --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
sh "./ci-scripts/createVM.sh --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
@@ -148,28 +154,35 @@ pipeline {
|
|||||||
stage ("Analysis with cppcheck") {
|
stage ("Analysis with cppcheck") {
|
||||||
steps {
|
steps {
|
||||||
gitlabCommitStatus(name: "Analysis with cppcheck") {
|
gitlabCommitStatus(name: "Analysis with cppcheck") {
|
||||||
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ("Build eNb-USRP") {
|
stage ("Build eNb-USRP") {
|
||||||
steps {
|
steps {
|
||||||
gitlabCommitStatus(name: "Build eNb-USRP") {
|
gitlabCommitStatus(name: "Build eNb-USRP") {
|
||||||
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage ("Build basic simulator") {
|
||||||
|
steps {
|
||||||
|
gitlabCommitStatus(name: "Build basic-sim") {
|
||||||
|
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ("Build 5G gNB-USRP") {
|
stage ("Build 5G gNB-USRP") {
|
||||||
steps {
|
steps {
|
||||||
gitlabCommitStatus(name: "Build gNb-usrp") {
|
gitlabCommitStatus(name: "Build gNb-usrp") {
|
||||||
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ("Build 5G NR-UE-USRP") {
|
stage ("Build 5G NR-UE-USRP") {
|
||||||
steps {
|
steps {
|
||||||
gitlabCommitStatus(name: "Build nr-UE-usrp") {
|
gitlabCommitStatus(name: "Build nr-UE-usrp") {
|
||||||
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
sh "./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -205,7 +218,7 @@ pipeline {
|
|||||||
always {
|
always {
|
||||||
script {
|
script {
|
||||||
dir ('archives') {
|
dir ('archives') {
|
||||||
sh "zip -r -qq vm_build_logs.zip enb_usrp phy_sim cppcheck gnb_usrp nrue_usrp red_hat"
|
sh "zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck gnb_usrp nrue_usrp red_hat"
|
||||||
}
|
}
|
||||||
if(fileExists('archives/vm_build_logs.zip')) {
|
if(fileExists('archives/vm_build_logs.zip')) {
|
||||||
archiveArtifacts artifacts: 'archives/vm_build_logs.zip'
|
archiveArtifacts artifacts: 'archives/vm_build_logs.zip'
|
||||||
@@ -225,6 +238,7 @@ pipeline {
|
|||||||
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/reportBuildLocally.sh --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')) {
|
if(fileExists('build_results.html')) {
|
||||||
|
sh "sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' build_results.html"
|
||||||
archiveArtifacts artifacts: 'build_results.html'
|
archiveArtifacts artifacts: 'build_results.html'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -237,13 +251,15 @@ pipeline {
|
|||||||
stage ("Test physical simulators") {
|
stage ("Test physical simulators") {
|
||||||
steps {
|
steps {
|
||||||
gitlabCommitStatus(name: "Test phy-sim") {
|
gitlabCommitStatus(name: "Test phy-sim") {
|
||||||
sh "./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
sh "./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ("Test basic simulator") {
|
stage ("Test basic simulator") {
|
||||||
steps {
|
steps {
|
||||||
echo '\u2705 \u001B[32mBasic Simulator testing not done in this pipeline\u001B[0m'
|
gitlabCommitStatus(name: "Test basic-sim") {
|
||||||
|
sh "./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ("Test FDD - Band 7 - B210") {
|
stage ("Test FDD - Band 7 - B210") {
|
||||||
@@ -266,6 +282,7 @@ pipeline {
|
|||||||
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/reportTestLocally.sh --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')) {
|
if(fileExists('test_simulator_results.html')) {
|
||||||
|
sh "sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' test_simulator_results.html"
|
||||||
archiveArtifacts artifacts: 'test_simulator_results.html'
|
archiveArtifacts artifacts: 'test_simulator_results.html'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -273,7 +290,6 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage ("Destroy all Virtual Machines") {
|
stage ("Destroy all Virtual Machines") {
|
||||||
steps {
|
steps {
|
||||||
sh "./ci-scripts/destroyAllRunningVM.sh --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
sh "./ci-scripts/destroyAllRunningVM.sh --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
|
|||||||
@@ -1,153 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
function usage {
|
|
||||||
echo "OAI Local Build Check script"
|
|
||||||
echo " Original Author: Raphael Defosseux"
|
|
||||||
echo ""
|
|
||||||
echo "Usage:"
|
|
||||||
echo "------"
|
|
||||||
echo " buildLocally.sh [OPTIONS]"
|
|
||||||
echo ""
|
|
||||||
echo "Options:"
|
|
||||||
echo "--------"
|
|
||||||
echo " --workspace #### OR -ws ####"
|
|
||||||
echo " Specify the workspace"
|
|
||||||
echo ""
|
|
||||||
echo " --help OR -h"
|
|
||||||
echo " Print this help message."
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ $# -ne 2 ] && [ $# -ne 1 ]
|
|
||||||
then
|
|
||||||
echo "Syntax Error: not the correct number of arguments"
|
|
||||||
echo ""
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]
|
|
||||||
do
|
|
||||||
key="$1"
|
|
||||||
|
|
||||||
case $key in
|
|
||||||
-h|--help)
|
|
||||||
shift
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
-ws|--workspace)
|
|
||||||
JENKINS_WKSP="$2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Syntax Error: unknown option: $key"
|
|
||||||
echo ""
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
cd $JENKINS_WKSP
|
|
||||||
STATUS=0
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# Creating a tmp folder to store results and artifacts
|
|
||||||
############################################################
|
|
||||||
if [ ! -d $JENKINS_WKSP/archives ]
|
|
||||||
then
|
|
||||||
mkdir $JENKINS_WKSP/archives
|
|
||||||
fi
|
|
||||||
|
|
||||||
source oaienv
|
|
||||||
cd $JENKINS_WKSP/cmake_targets
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# Building eNb with USRP option
|
|
||||||
############################################################
|
|
||||||
ARCHIVES_LOC=$JENKINS_WKSP/archives/enb_usrp
|
|
||||||
if [ ! -d $ARCHIVES_LOC ]
|
|
||||||
then
|
|
||||||
mkdir $ARCHIVES_LOC
|
|
||||||
fi
|
|
||||||
./build_oai --eNB -w USRP -c
|
|
||||||
|
|
||||||
# Generated log files:
|
|
||||||
if [ -f $JENKINS_WKSP/cmake_targets/log/lte-softmodem.Rel14.txt ]
|
|
||||||
then
|
|
||||||
LOCAL_STAT=`egrep -c "Built target lte-softmodem" $JENKINS_WKSP/cmake_targets/log/lte-softmodem.Rel14.txt`
|
|
||||||
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
|
|
||||||
cp $JENKINS_WKSP/cmake_targets/log/lte-softmodem.Rel14.txt $ARCHIVES_LOC
|
|
||||||
else
|
|
||||||
STATUS=-1
|
|
||||||
fi
|
|
||||||
if [ -f $JENKINS_WKSP/cmake_targets/log/params_libconfig.Rel14.txt ]
|
|
||||||
then
|
|
||||||
LOCAL_STAT=`egrep -c "Built target params_libconfig" $JENKINS_WKSP/cmake_targets/log/params_libconfig.Rel14.txt`
|
|
||||||
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
|
|
||||||
cp $JENKINS_WKSP/cmake_targets/log/params_libconfig.Rel14.txt $ARCHIVES_LOC
|
|
||||||
else
|
|
||||||
STATUS=-1
|
|
||||||
fi
|
|
||||||
if [ -f $JENKINS_WKSP/cmake_targets/log/coding.Rel14.txt ]
|
|
||||||
then
|
|
||||||
LOCAL_STAT=`egrep -c "Built target coding" $JENKINS_WKSP/cmake_targets/log/coding.Rel14.txt`
|
|
||||||
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
|
|
||||||
cp $JENKINS_WKSP/cmake_targets/log/coding.Rel14.txt $ARCHIVES_LOC
|
|
||||||
else
|
|
||||||
STATUS=-1
|
|
||||||
fi
|
|
||||||
if [ -f $JENKINS_WKSP/cmake_targets/log/oai_usrpdevif.Rel14.txt ]
|
|
||||||
then
|
|
||||||
LOCAL_STAT=`egrep -c "Built target oai_usrpdevif" $JENKINS_WKSP/cmake_targets/log/oai_usrpdevif.Rel14.txt`
|
|
||||||
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
|
|
||||||
cp $JENKINS_WKSP/cmake_targets/log/oai_usrpdevif.Rel14.txt $ARCHIVES_LOC
|
|
||||||
else
|
|
||||||
STATUS=-1
|
|
||||||
fi
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# Building basic simulator
|
|
||||||
############################################################
|
|
||||||
ARCHIVES_LOC=$JENKINS_WKSP/archives/basic_sim
|
|
||||||
if [ ! -d $ARCHIVES_LOC ]
|
|
||||||
then
|
|
||||||
mkdir $ARCHIVES_LOC
|
|
||||||
fi
|
|
||||||
cd $JENKINS_WKSP/cmake_targets
|
|
||||||
./build_oai --basic-simulator -c
|
|
||||||
|
|
||||||
# Generated log files:
|
|
||||||
if [ -f $JENKINS_WKSP/cmake_targets/log/basic_simulator_enb.txt ]
|
|
||||||
then
|
|
||||||
LOCAL_STAT=`egrep -c "Built target lte-softmodem" $JENKINS_WKSP/cmake_targets/log/basic_simulator_enb.txt`
|
|
||||||
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
|
|
||||||
cp $JENKINS_WKSP/cmake_targets/log/basic_simulator_enb.txt $ARCHIVES_LOC
|
|
||||||
else
|
|
||||||
STATUS=-1
|
|
||||||
fi
|
|
||||||
if [ -f $JENKINS_WKSP/cmake_targets/log/basic_simulator_ue.txt ]
|
|
||||||
then
|
|
||||||
LOCAL_STAT=`egrep -c "Built target lte-uesoftmodem" $JENKINS_WKSP/cmake_targets/log/basic_simulator_ue.txt`
|
|
||||||
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
|
|
||||||
cp $JENKINS_WKSP/cmake_targets/log/basic_simulator_ue.txt $ARCHIVES_LOC
|
|
||||||
else
|
|
||||||
STATUS=-1
|
|
||||||
fi
|
|
||||||
if [ -f $JENKINS_WKSP/cmake_targets/log/conf2uedata.Rel14.txt ]
|
|
||||||
then
|
|
||||||
LOCAL_STAT=`egrep -c "Built target conf2uedata" $JENKINS_WKSP/cmake_targets/log/conf2uedata.Rel14.txt`
|
|
||||||
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
|
|
||||||
cp $JENKINS_WKSP/cmake_targets/log/conf2uedata.Rel14.txt $ARCHIVES_LOC
|
|
||||||
else
|
|
||||||
STATUS=-1
|
|
||||||
fi
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# Creating a zip for Jenkins archiving
|
|
||||||
############################################################
|
|
||||||
cd $JENKINS_WKSP/archives/
|
|
||||||
zip -r local_build_logs.zip basic_sim enb_usrp
|
|
||||||
|
|
||||||
exit $STATUS
|
|
||||||
@@ -90,6 +90,7 @@ JOB_NAME=XX
|
|||||||
BUILD_ID=XX
|
BUILD_ID=XX
|
||||||
VM_NAME=ci-enb-usrp
|
VM_NAME=ci-enb-usrp
|
||||||
VM_MEMORY=2048
|
VM_MEMORY=2048
|
||||||
|
VM_CPU=4
|
||||||
ARCHIVES_LOC=enb_usrp
|
ARCHIVES_LOC=enb_usrp
|
||||||
LOG_PATTERN=.Rel15.txt
|
LOG_PATTERN=.Rel15.txt
|
||||||
NB_PATTERN_FILES=4
|
NB_PATTERN_FILES=4
|
||||||
@@ -139,6 +140,8 @@ case $key in
|
|||||||
LOG_PATTERN=basic_simulator
|
LOG_PATTERN=basic_simulator
|
||||||
NB_PATTERN_FILES=2
|
NB_PATTERN_FILES=2
|
||||||
BUILD_OPTIONS="--basic-simulator"
|
BUILD_OPTIONS="--basic-simulator"
|
||||||
|
VM_MEMORY=8192
|
||||||
|
VM_CPU=4
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
-v3)
|
-v3)
|
||||||
@@ -206,6 +209,8 @@ case $key in
|
|||||||
LOG_PATTERN=basic_simulator
|
LOG_PATTERN=basic_simulator
|
||||||
NB_PATTERN_FILES=2
|
NB_PATTERN_FILES=2
|
||||||
BUILD_OPTIONS="--basic-simulator"
|
BUILD_OPTIONS="--basic-simulator"
|
||||||
|
VM_MEMORY=8192
|
||||||
|
VM_CPU=4
|
||||||
;;
|
;;
|
||||||
phy-sim)
|
phy-sim)
|
||||||
VM_NAME=ci-phy-sim
|
VM_NAME=ci-phy-sim
|
||||||
@@ -304,7 +309,7 @@ then
|
|||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu 4 --unsafe-caching --template ci-scripts/template-host.xml
|
uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Waiting for VM to be started"
|
echo "Waiting for VM to be started"
|
||||||
@@ -323,6 +328,7 @@ echo "############################################################"
|
|||||||
echo "Running install and build script on VM ($VM_NAME)"
|
echo "Running install and build script on VM ($VM_NAME)"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
|
echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
|
||||||
|
echo "touch /home/ubuntu/.hushlogin" >> $VM_CMDS
|
||||||
if [[ "$VM_NAME" == *"-cppcheck"* ]]
|
if [[ "$VM_NAME" == *"-cppcheck"* ]]
|
||||||
then
|
then
|
||||||
echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS
|
echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ eNBs =
|
|||||||
tdd_config_s = 0;
|
tdd_config_s = 0;
|
||||||
prefix_type = "NORMAL";
|
prefix_type = "NORMAL";
|
||||||
eutra_band = 7;
|
eutra_band = 7;
|
||||||
downlink_frequency = 2685000000L;
|
downlink_frequency = 2680000000L;
|
||||||
uplink_frequency_offset = -120000000;
|
uplink_frequency_offset = -120000000;
|
||||||
Nid_cell = 0;
|
Nid_cell = 0;
|
||||||
N_RB_DL = 100;
|
N_RB_DL = 100;
|
||||||
@@ -183,12 +183,14 @@ eNBs =
|
|||||||
|
|
||||||
NETWORK_INTERFACES :
|
NETWORK_INTERFACES :
|
||||||
{
|
{
|
||||||
|
|
||||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
||||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
||||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
|
||||||
|
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.12.111/24";
|
||||||
|
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ eNBs =
|
|||||||
tdd_config_s = 0;
|
tdd_config_s = 0;
|
||||||
prefix_type = "NORMAL";
|
prefix_type = "NORMAL";
|
||||||
eutra_band = 7;
|
eutra_band = 7;
|
||||||
downlink_frequency = 2685000000L;
|
downlink_frequency = 2680000000L;
|
||||||
uplink_frequency_offset = -120000000;
|
uplink_frequency_offset = -120000000;
|
||||||
Nid_cell = 0;
|
Nid_cell = 0;
|
||||||
N_RB_DL = 25;
|
N_RB_DL = 25;
|
||||||
@@ -183,12 +183,14 @@ eNBs =
|
|||||||
|
|
||||||
NETWORK_INTERFACES :
|
NETWORK_INTERFACES :
|
||||||
{
|
{
|
||||||
|
|
||||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
||||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
||||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
|
||||||
|
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.12.111/24";
|
||||||
|
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ eNBs =
|
|||||||
tdd_config_s = 0;
|
tdd_config_s = 0;
|
||||||
prefix_type = "NORMAL";
|
prefix_type = "NORMAL";
|
||||||
eutra_band = 7;
|
eutra_band = 7;
|
||||||
downlink_frequency = 2685000000L;
|
downlink_frequency = 2680000000L;
|
||||||
uplink_frequency_offset = -120000000;
|
uplink_frequency_offset = -120000000;
|
||||||
Nid_cell = 0;
|
Nid_cell = 0;
|
||||||
N_RB_DL = 50;
|
N_RB_DL = 50;
|
||||||
@@ -183,12 +183,14 @@ eNBs =
|
|||||||
|
|
||||||
NETWORK_INTERFACES :
|
NETWORK_INTERFACES :
|
||||||
{
|
{
|
||||||
|
|
||||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
||||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
||||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
|
||||||
|
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.12.111/24";
|
||||||
|
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -0,0 +1,259 @@
|
|||||||
|
Active_eNBs = ( "eNB-Eurecom-LTEBox");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
eNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
eNB_ID = 0xe00;
|
||||||
|
|
||||||
|
cell_type = "CELL_MACRO_ENB";
|
||||||
|
|
||||||
|
eNB_name = "eNB-Eurecom-LTEBox";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = "1";
|
||||||
|
|
||||||
|
mobile_country_code = "208";
|
||||||
|
|
||||||
|
mobile_network_code = "93";
|
||||||
|
|
||||||
|
tr_s_preference = "local_mac"
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
component_carriers = (
|
||||||
|
{
|
||||||
|
node_function = "3GPP_eNODEB";
|
||||||
|
node_timing = "synch_to_ext_device";
|
||||||
|
node_synch_ref = 0;
|
||||||
|
frame_type = "FDD";
|
||||||
|
tdd_config = 3;
|
||||||
|
tdd_config_s = 0;
|
||||||
|
prefix_type = "NORMAL";
|
||||||
|
eutra_band = 7;
|
||||||
|
downlink_frequency = 2680000000L;
|
||||||
|
uplink_frequency_offset = -120000000;
|
||||||
|
Nid_cell = 0;
|
||||||
|
N_RB_DL = 25;
|
||||||
|
Nid_cell_mbsfn = 0;
|
||||||
|
nb_antenna_ports = 1;
|
||||||
|
nb_antennas_tx = 1;
|
||||||
|
nb_antennas_rx = 1;
|
||||||
|
tx_gain = 90;
|
||||||
|
rx_gain = 125;
|
||||||
|
pbch_repetition = "FALSE";
|
||||||
|
prach_root = 0;
|
||||||
|
prach_config_index = 0;
|
||||||
|
prach_high_speed = "DISABLE";
|
||||||
|
prach_zero_correlation = 1;
|
||||||
|
prach_freq_offset = 2;
|
||||||
|
pucch_delta_shift = 1;
|
||||||
|
pucch_nRB_CQI = 0;
|
||||||
|
pucch_nCS_AN = 0;
|
||||||
|
pucch_n1_AN = 0;
|
||||||
|
pdsch_referenceSignalPower = -27;
|
||||||
|
pdsch_p_b = 0;
|
||||||
|
pusch_n_SB = 1;
|
||||||
|
pusch_enable64QAM = "DISABLE";
|
||||||
|
pusch_hoppingMode = "interSubFrame";
|
||||||
|
pusch_hoppingOffset = 0;
|
||||||
|
pusch_groupHoppingEnabled = "ENABLE";
|
||||||
|
pusch_groupAssignment = 0;
|
||||||
|
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||||
|
pusch_nDMRS1 = 1;
|
||||||
|
phich_duration = "NORMAL";
|
||||||
|
phich_resource = "ONESIXTH";
|
||||||
|
srs_enable = "DISABLE";
|
||||||
|
/* srs_BandwidthConfig =;
|
||||||
|
srs_SubframeConfig =;
|
||||||
|
srs_ackNackST =;
|
||||||
|
srs_MaxUpPts =;*/
|
||||||
|
|
||||||
|
pusch_p0_Nominal = -96;
|
||||||
|
pusch_alpha = "AL1";
|
||||||
|
pucch_p0_Nominal = -104;
|
||||||
|
msg3_delta_Preamble = 6;
|
||||||
|
pucch_deltaF_Format1 = "deltaF2";
|
||||||
|
pucch_deltaF_Format1b = "deltaF3";
|
||||||
|
pucch_deltaF_Format2 = "deltaF0";
|
||||||
|
pucch_deltaF_Format2a = "deltaF0";
|
||||||
|
pucch_deltaF_Format2b = "deltaF0";
|
||||||
|
|
||||||
|
rach_numberOfRA_Preambles = 64;
|
||||||
|
rach_preamblesGroupAConfig = "DISABLE";
|
||||||
|
/*
|
||||||
|
rach_sizeOfRA_PreamblesGroupA = ;
|
||||||
|
rach_messageSizeGroupA = ;
|
||||||
|
rach_messagePowerOffsetGroupB = ;
|
||||||
|
*/
|
||||||
|
rach_powerRampingStep = 4;
|
||||||
|
rach_preambleInitialReceivedTargetPower = -108;
|
||||||
|
rach_preambleTransMax = 10;
|
||||||
|
rach_raResponseWindowSize = 10;
|
||||||
|
rach_macContentionResolutionTimer = 48;
|
||||||
|
rach_maxHARQ_Msg3Tx = 4;
|
||||||
|
|
||||||
|
pcch_default_PagingCycle = 128;
|
||||||
|
pcch_nB = "oneT";
|
||||||
|
bcch_modificationPeriodCoeff = 2;
|
||||||
|
ue_TimersAndConstants_t300 = 1000;
|
||||||
|
ue_TimersAndConstants_t301 = 1000;
|
||||||
|
ue_TimersAndConstants_t310 = 1000;
|
||||||
|
ue_TimersAndConstants_t311 = 10000;
|
||||||
|
ue_TimersAndConstants_n310 = 20;
|
||||||
|
ue_TimersAndConstants_n311 = 1;
|
||||||
|
ue_TransmissionMode = 1;
|
||||||
|
|
||||||
|
//Parameters for SIB18
|
||||||
|
rxPool_sc_CP_Len = "normal";
|
||||||
|
rxPool_sc_Period = "sf40";
|
||||||
|
rxPool_data_CP_Len = "normal";
|
||||||
|
rxPool_ResourceConfig_prb_Num = 20;
|
||||||
|
rxPool_ResourceConfig_prb_Start = 5;
|
||||||
|
rxPool_ResourceConfig_prb_End = 44;
|
||||||
|
rxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||||
|
rxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||||
|
rxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||||
|
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000";
|
||||||
|
rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||||
|
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||||
|
/* rxPool_dataHoppingConfig_hoppingParameter = 0;
|
||||||
|
rxPool_dataHoppingConfig_numSubbands = "ns1";
|
||||||
|
rxPool_dataHoppingConfig_rbOffset = 0;
|
||||||
|
rxPool_commTxResourceUC-ReqAllowed = "TRUE";
|
||||||
|
*/
|
||||||
|
// Parameters for SIB19
|
||||||
|
discRxPool_cp_Len = "normal"
|
||||||
|
discRxPool_discPeriod = "rf32"
|
||||||
|
discRxPool_numRetx = 1;
|
||||||
|
discRxPool_numRepetition = 2;
|
||||||
|
discRxPool_ResourceConfig_prb_Num = 5;
|
||||||
|
discRxPool_ResourceConfig_prb_Start = 3;
|
||||||
|
discRxPool_ResourceConfig_prb_End = 21;
|
||||||
|
discRxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||||
|
discRxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||||
|
discRxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||||
|
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff";
|
||||||
|
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||||
|
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
srb1_parameters :
|
||||||
|
{
|
||||||
|
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||||
|
timer_poll_retransmit = 80;
|
||||||
|
|
||||||
|
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||||
|
timer_reordering = 35;
|
||||||
|
|
||||||
|
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||||
|
timer_status_prohibit = 0;
|
||||||
|
|
||||||
|
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||||
|
poll_pdu = 4;
|
||||||
|
|
||||||
|
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||||
|
poll_byte = 99999;
|
||||||
|
|
||||||
|
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||||
|
max_retx_threshold = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////// MME parameters:
|
||||||
|
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
active = "yes";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
|
||||||
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||||
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||||
|
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
|
||||||
|
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
phy_test_mode = 0;
|
||||||
|
puSch10xSnr = 200;
|
||||||
|
puCch10xSnr = 200;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "yes"
|
||||||
|
nb_tx = 1
|
||||||
|
nb_rx = 1
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [7];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 125;
|
||||||
|
eNB_instances = [0];
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
NETWORK_CONTROLLER :
|
||||||
|
{
|
||||||
|
FLEXRAN_ENABLED = "no";
|
||||||
|
FLEXRAN_INTERFACE_NAME = "lo";
|
||||||
|
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
|
||||||
|
FLEXRAN_PORT = 2210;
|
||||||
|
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||||
|
FLEXRAN_AWAIT_RECONF = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level ="info";
|
||||||
|
global_log_verbosity ="medium";
|
||||||
|
hw_log_level ="info";
|
||||||
|
hw_log_verbosity ="medium";
|
||||||
|
phy_log_level ="info";
|
||||||
|
phy_log_verbosity ="medium";
|
||||||
|
mac_log_level ="info";
|
||||||
|
mac_log_verbosity ="high";
|
||||||
|
rlc_log_level ="info";
|
||||||
|
rlc_log_verbosity ="medium";
|
||||||
|
pdcp_log_level ="info";
|
||||||
|
pdcp_log_verbosity ="medium";
|
||||||
|
rrc_log_level ="info";
|
||||||
|
rrc_log_verbosity ="medium";
|
||||||
|
};
|
||||||
|
|
||||||
@@ -84,6 +84,7 @@ JOB_NAME=XX
|
|||||||
BUILD_ID=XX
|
BUILD_ID=XX
|
||||||
VM_NAME=ci-enb-usrp
|
VM_NAME=ci-enb-usrp
|
||||||
VM_MEMORY=2048
|
VM_MEMORY=2048
|
||||||
|
VM_CPU=4
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]
|
while [[ $# -gt 0 ]]
|
||||||
do
|
do
|
||||||
@@ -111,6 +112,7 @@ case $key in
|
|||||||
;;
|
;;
|
||||||
-v2)
|
-v2)
|
||||||
VM_NAME=ci-basic-sim
|
VM_NAME=ci-basic-sim
|
||||||
|
VM_MEMORY=8192
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
-v3)
|
-v3)
|
||||||
@@ -146,6 +148,7 @@ case $key in
|
|||||||
;;
|
;;
|
||||||
basic-sim)
|
basic-sim)
|
||||||
VM_NAME=ci-basic-sim
|
VM_NAME=ci-basic-sim
|
||||||
|
VM_MEMORY=8192
|
||||||
;;
|
;;
|
||||||
phy-sim)
|
phy-sim)
|
||||||
VM_NAME=ci-phy-sim
|
VM_NAME=ci-phy-sim
|
||||||
@@ -196,11 +199,12 @@ VM_CMDS=${VM_NAME}_cmds.txt
|
|||||||
|
|
||||||
echo "VM_NAME = $VM_NAME"
|
echo "VM_NAME = $VM_NAME"
|
||||||
echo "VM_MEMORY = $VM_MEMORY MBytes"
|
echo "VM_MEMORY = $VM_MEMORY MBytes"
|
||||||
|
echo "VM_CPU = $VM_CPU"
|
||||||
|
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu 4 --unsafe-caching --template ci-scripts/template-host.xml
|
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"
|
echo "Waiting for VM to be started"
|
||||||
uvt-kvm wait $VM_NAME --insecure
|
uvt-kvm wait $VM_NAME --insecure
|
||||||
|
|
||||||
|
|||||||
+145
-67
@@ -317,58 +317,123 @@ then
|
|||||||
echo " <th>Statistics</th>" >> ./test_simulator_results.html
|
echo " <th>Statistics</th>" >> ./test_simulator_results.html
|
||||||
echo " </tr>" >> ./test_simulator_results.html
|
echo " </tr>" >> ./test_simulator_results.html
|
||||||
|
|
||||||
PING_TESTS=`ls $ARCHIVES_LOC/ping*txt`
|
BW_CASES=(05 10 20)
|
||||||
for PING_CASE in $PING_TESTS
|
for BW in ${BW_CASES[@]}
|
||||||
do
|
do
|
||||||
echo " <tr>" >> ./test_simulator_results.html
|
ENB_LOG=$ARCHIVES_LOC/enb_${BW}MHz.log
|
||||||
NAME=`echo $PING_CASE | sed -e "s#$ARCHIVES_LOC/##"`
|
UE_LOG=`echo $ENB_LOG | sed -e "s#enb#ue#"`
|
||||||
echo " <td>$NAME</td>" >> ./test_simulator_results.html
|
if [ -f $ENB_LOG ] && [ -f $UE_LOG ]
|
||||||
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
|
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
|
echo " <td>N/A</td>" >> ./test_simulator_results.html
|
||||||
else
|
NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG`
|
||||||
NB_TR_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s# packets transmitted.*##"`
|
NB_UE_GOT_SYNC=`egrep -c "got sync" $UE_LOG`
|
||||||
NB_RC_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*packets transmitted, ##" -e "s# received,.*##"`
|
NB_ENB_SYNCED_WITH_UE=`egrep -c "got UE capabilities for UE" $ENB_LOG`
|
||||||
if [ $NB_TR_PACKETS -eq $NB_RC_PACKETS ]
|
if [ $NB_ENB_GOT_SYNC -eq 1 ] && [ $NB_UE_GOT_SYNC -eq 2 ] && [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
|
||||||
then
|
then
|
||||||
echo " <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
|
echo " <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
|
||||||
else
|
else
|
||||||
echo " <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
|
echo " <td bgcolor = \"red\" >OK</td>" >> ./test_simulator_results.html
|
||||||
fi
|
fi
|
||||||
echo " <td>" >> ./test_simulator_results.html
|
echo " <td><pre>" >> ./test_simulator_results.html
|
||||||
echo " <pre>" >> ./test_simulator_results.html
|
if [ $NB_ENB_GOT_SYNC -eq 1 ]
|
||||||
STATS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*received, ##" -e "s#, time.*##" -e "s# packet loss##"`
|
then
|
||||||
echo "Packet Loss : $STATS" >> ./test_simulator_results.html
|
echo "<font color = \"blue\">- eNB --> got sync</font>" >> ./test_simulator_results.html
|
||||||
RTTMIN=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[1] " " $5}'`
|
else
|
||||||
echo "RTT Minimal : $RTTMIN" >> ./test_simulator_results.html
|
echo "<font color = \"red\"><b>- eNB NEVER got sync</b></font>" >> ./test_simulator_results.html
|
||||||
RTTAVG=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[2] " " $5}'`
|
fi
|
||||||
echo "RTT Average : $RTTAVG" >> ./test_simulator_results.html
|
if [ $NB_UE_GOT_SYNC -eq 2 ]
|
||||||
RTTMAX=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[3] " " $5}'`
|
then
|
||||||
echo "RTT Maximal : $RTTMAX" >> ./test_simulator_results.html
|
echo "<font color = \"blue\">- UE --> got sync</font>" >> ./test_simulator_results.html
|
||||||
echo " </pre>" >> ./test_simulator_results.html
|
else
|
||||||
echo " </td>" >> ./test_simulator_results.html
|
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
|
fi
|
||||||
echo " </tr>" >> ./test_simulator_results.html
|
PING_CASE=$ARCHIVES_LOC/${BW}MHz_ping_ue.txt
|
||||||
done
|
if [ -f $PING_CASE ]
|
||||||
|
|
||||||
IPERF_TESTS=`ls $ARCHIVES_LOC/iperf*client*txt`
|
|
||||||
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
|
|
||||||
FILE_COMPLETE=`egrep -c "Server Report" $IPERF_CASE`
|
|
||||||
if [ $FILE_COMPLETE -eq 0 ]
|
|
||||||
then
|
then
|
||||||
echo " <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
|
echo " <tr>" >> ./test_simulator_results.html
|
||||||
echo " <td>N/A</td>" >> ./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
|
||||||
|
|
||||||
|
if [ -f $ARCHIVES_LOC/${BW}*iperf*dl*client*txt ]
|
||||||
|
then
|
||||||
|
IPERF_TESTS=`ls $ARCHIVES_LOC/${BW}*iperf*client*txt`
|
||||||
else
|
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.*##"`
|
REQ_BITRATE=`echo $CMD | sed -e "s#^.*-b ##" -e "s#-i 1.*##"`
|
||||||
if [[ $REQ_BITRATE =~ .*K.* ]]
|
if [[ $REQ_BITRATE =~ .*K.* ]]
|
||||||
then
|
then
|
||||||
@@ -385,43 +450,56 @@ then
|
|||||||
REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#G##"`
|
REQ_BITRATE=`echo $REQ_BITRATE | sed -e "s#G##"`
|
||||||
FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000000.0" | bc -l`
|
FLOAT_REQ_BITRATE=`echo "$REQ_BITRATE * 1000000000.0" | bc -l`
|
||||||
fi
|
fi
|
||||||
EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
|
FILE_COMPLETE=`egrep -c "Server Report" $IPERF_CASE`
|
||||||
if [[ $EFFECTIVE_BITRATE =~ .*Kbits/sec.* ]]
|
if [ $FILE_COMPLETE -eq 0 ]
|
||||||
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
|
then
|
||||||
echo " <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
|
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
|
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
|
fi
|
||||||
echo " <td>" >> ./test_simulator_results.html
|
echo " <td>" >> ./test_simulator_results.html
|
||||||
echo " <pre>" >> ./test_simulator_results.html
|
echo " <pre>" >> ./test_simulator_results.html
|
||||||
EFFECTIVE_BITRATE=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
|
|
||||||
echo "Bitrate : $EFFECTIVE_BITRATE" >> ./test_simulator_results.html
|
echo "Bitrate : $EFFECTIVE_BITRATE" >> ./test_simulator_results.html
|
||||||
echo "Bitrate Perf : $PERF %" >> ./test_simulator_results.html
|
echo "Bitrate Perf : $PERF %" >> ./test_simulator_results.html
|
||||||
JITTER=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*Mbits/sec *##" -e "s#ms.*#ms#"`
|
|
||||||
echo "Jitter : $JITTER" >> ./test_simulator_results.html
|
echo "Jitter : $JITTER" >> ./test_simulator_results.html
|
||||||
PACKETLOSS=`tail -n3 $IPERF_CASE | egrep "Mbits/sec" | sed -e "s#^.*(##" -e "s#).*##"`
|
|
||||||
echo "Packet Loss : $PACKETLOSS" >> ./test_simulator_results.html
|
echo "Packet Loss : $PACKETLOSS" >> ./test_simulator_results.html
|
||||||
echo " </pre>" >> ./test_simulator_results.html
|
echo " </pre>" >> ./test_simulator_results.html
|
||||||
echo " </td>" >> ./test_simulator_results.html
|
echo " </td>" >> ./test_simulator_results.html
|
||||||
fi
|
echo " </tr>" >> ./test_simulator_results.html
|
||||||
echo " </tr>" >> ./test_simulator_results.html
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
echo " </table>" >> ./test_simulator_results.html
|
echo " </table>" >> ./test_simulator_results.html
|
||||||
|
|||||||
+536
-6
@@ -70,6 +70,196 @@ function variant_usage {
|
|||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function start_basic_sim_enb {
|
||||||
|
local LOC_VM_IP_ADDR=$2
|
||||||
|
local LOC_EPC_IP_ADDR=$3
|
||||||
|
local LOC_LOG_FILE=$4
|
||||||
|
local LOC_NB_RBS=$5
|
||||||
|
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 ENODEB=1\"" >> $1
|
||||||
|
echo "export ENODEB=1" >> $1
|
||||||
|
echo "echo \"source oaienv\"" >> $1
|
||||||
|
echo "source oaienv" >> $1
|
||||||
|
echo "cd ci-scripts/conf_files/" >> $1
|
||||||
|
echo "cp lte-basic-sim.conf ci-lte-basic-sim.conf" >> $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-lte-basic-sim.conf" >> $1
|
||||||
|
echo "echo \"grep N_RB_DL ci-lte-basic-sim.conf\"" >> $1
|
||||||
|
echo "grep N_RB_DL ci-lte-basic-sim.conf | sed -e 's#N_RB_DL.*=#N_RB_DL =#'" >> $1
|
||||||
|
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/basic_simulator/enb/\"" >> $1
|
||||||
|
echo "cd /home/ubuntu/tmp/cmake_targets/basic_simulator/enb/" >> $1
|
||||||
|
echo "echo \"./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-lte-basic-sim.conf\" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
|
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||||
|
echo "cat ./my-lte-softmodem-run.sh" >> $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
|
||||||
|
sleep 60
|
||||||
|
rm $1
|
||||||
|
}
|
||||||
|
|
||||||
|
function start_basic_sim_ue {
|
||||||
|
local LOC_UE_LOG_FILE=$3
|
||||||
|
local LOC_NB_RBS=$4
|
||||||
|
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/basic_simulator/ue\"" > $1
|
||||||
|
echo "cd /home/ubuntu/tmp/cmake_targets/basic_simulator/ue" > $1
|
||||||
|
echo "echo \"./lte-uesoftmodem -C 2680000000 -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 "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
|
||||||
|
rm $1
|
||||||
|
|
||||||
|
local i="0"
|
||||||
|
echo "ifconfig oip1 | egrep -c \"inet addr\"" > $1
|
||||||
|
while [ $i -lt 40 ]
|
||||||
|
do
|
||||||
|
sleep 5
|
||||||
|
CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1`
|
||||||
|
if [ $CONNECTED -eq 1 ]
|
||||||
|
then
|
||||||
|
i="100"
|
||||||
|
else
|
||||||
|
i=$[$i+1]
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm $1
|
||||||
|
if [ $i -lt 50 ]
|
||||||
|
then
|
||||||
|
UE_SYNC=0
|
||||||
|
else
|
||||||
|
UE_SYNC=1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_ue_ip_addr {
|
||||||
|
echo "ifconfig oip1 | 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 "UE IP Address for EPC is : $UE_IP_ADDR"
|
||||||
|
rm $1
|
||||||
|
}
|
||||||
|
|
||||||
|
function ping_ue_ip_addr {
|
||||||
|
echo "echo \"ping -c 20 $3\"" > $1
|
||||||
|
echo "echo \"COMMAND IS: ping -c 20 $3\" > $4" > $1
|
||||||
|
echo "ping -c 20 $UE_IP_ADDR | tee -a $4" >> $1
|
||||||
|
ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
||||||
|
rm -f $1
|
||||||
|
}
|
||||||
|
|
||||||
|
function check_ping_result {
|
||||||
|
local LOC_PING_FILE=$1
|
||||||
|
local LOC_NB_PINGS=$2
|
||||||
|
if [ -f $LOC_PING_FILE ]
|
||||||
|
then
|
||||||
|
local FILE_COMPLETE=`egrep -c "ping statistics" $LOC_PING_FILE`
|
||||||
|
if [ $FILE_COMPLETE -eq 0 ]
|
||||||
|
then
|
||||||
|
PING_STATUS=-1
|
||||||
|
else
|
||||||
|
local ALL_PACKET_RECEIVED=`egrep -c "$LOC_NB_PINGS received" $LOC_PING_FILE`
|
||||||
|
if [ $ALL_PACKET_RECEIVED -eq 1 ]
|
||||||
|
then
|
||||||
|
echo "got all ping packets"
|
||||||
|
else
|
||||||
|
PING_STATUS=-1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
PING_STATUS=-1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function iperf_dl {
|
||||||
|
local REQ_BANDWIDTH=$5
|
||||||
|
local BASE_LOG_FILE=$6
|
||||||
|
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
|
||||||
|
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
|
||||||
|
rm -f $3
|
||||||
|
|
||||||
|
echo "killall --signal SIGKILL iperf" >> $1
|
||||||
|
ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
||||||
|
rm $1
|
||||||
|
}
|
||||||
|
|
||||||
|
function iperf_ul {
|
||||||
|
local REQ_BANDWIDTH=$5
|
||||||
|
local BASE_LOG_FILE=$6
|
||||||
|
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
|
||||||
|
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
|
||||||
|
rm -f $1
|
||||||
|
|
||||||
|
echo "killall --signal SIGKILL iperf" >> $3
|
||||||
|
ssh -o StrictHostKeyChecking=no ubuntu@$4 < $3
|
||||||
|
rm $3
|
||||||
|
}
|
||||||
|
|
||||||
|
function check_iperf {
|
||||||
|
local LOC_BASE_LOG=$1
|
||||||
|
local LOC_REQ_BW=$2
|
||||||
|
local LOC_REQ_BW_MINUS_ONE=`echo "$LOC_REQ_BW - 1" | bc -l`
|
||||||
|
if [ -f ${LOC_BASE_LOG}_client.txt ]
|
||||||
|
then
|
||||||
|
local FILE_COMPLETE=`egrep -c "Server Report" ${LOC_BASE_LOG}_client.txt`
|
||||||
|
if [ $FILE_COMPLETE -eq 0 ]
|
||||||
|
then
|
||||||
|
IPERF_STATUS=-1
|
||||||
|
else
|
||||||
|
local EFFECTIVE_BANDWIDTH=`tail -n3 ${LOC_BASE_LOG}_client.txt | egrep "Mbits/sec" | sed -e "s#^.*MBytes *##" -e "s#sec.*#sec#"`
|
||||||
|
if [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW}.*Mbits.* ]] || [[ $EFFECTIVE_BANDWIDTH =~ .*${LOC_REQ_BW_MINUS_ONE}.*Mbits.* ]]
|
||||||
|
then
|
||||||
|
echo "got requested DL bandwidth: $EFFECTIVE_BANDWIDTH"
|
||||||
|
else
|
||||||
|
IPERF_STATUS=-1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
IPERF_STATUS=-1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function terminate_enb_ue_basic_sim {
|
||||||
|
echo "echo \"sudo daemon --name=enb_daemon --stop\"" > $1
|
||||||
|
echo "sudo daemon --name=enb_daemon --stop" >> $1
|
||||||
|
echo "echo \"sudo daemon --name=ue_daemon --stop\"" >> $1
|
||||||
|
echo "sudo daemon --name=ue_daemon --stop" >> $1
|
||||||
|
echo "echo \"sudo killall --signal SIGKILL lte-softmodem\"" >> $1
|
||||||
|
echo "sudo killall --signal SIGKILL lte-softmodem" >> $1
|
||||||
|
ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
||||||
|
rm -f $1
|
||||||
|
}
|
||||||
|
|
||||||
|
function terminate_ltebox_epc {
|
||||||
|
echo "echo \"cd /opt/ltebox/tools\"" > $1
|
||||||
|
echo "cd /opt/ltebox/tools" >> $1
|
||||||
|
echo "echo \"sudo ./stop_ltebox\"" >> $1
|
||||||
|
echo "sudo ./stop_ltebox" >> $1
|
||||||
|
echo "echo \"sudo daemon --name=simulated_hss --stop\"" >> $1
|
||||||
|
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
|
||||||
|
rm $1
|
||||||
|
}
|
||||||
|
|
||||||
if [ $# -lt 1 ] || [ $# -gt 9 ]
|
if [ $# -lt 1 ] || [ $# -gt 9 ]
|
||||||
then
|
then
|
||||||
echo "Syntax Error: not the correct number of arguments"
|
echo "Syntax Error: not the correct number of arguments"
|
||||||
@@ -122,6 +312,8 @@ case $key in
|
|||||||
;;
|
;;
|
||||||
-v2)
|
-v2)
|
||||||
VM_NAME=ci-basic-sim
|
VM_NAME=ci-basic-sim
|
||||||
|
RUN_OPTIONS="complex"
|
||||||
|
ARCHIVES_LOC=basic_sim/test
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
-v3)
|
-v3)
|
||||||
@@ -150,6 +342,8 @@ case $key in
|
|||||||
;;
|
;;
|
||||||
basic-sim)
|
basic-sim)
|
||||||
VM_NAME=ci-basic-sim
|
VM_NAME=ci-basic-sim
|
||||||
|
RUN_OPTIONS="complex"
|
||||||
|
ARCHIVES_LOC=basic_sim/test
|
||||||
;;
|
;;
|
||||||
phy-sim)
|
phy-sim)
|
||||||
VM_NAME=ci-phy-sim
|
VM_NAME=ci-phy-sim
|
||||||
@@ -210,8 +404,11 @@ echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
|
|||||||
if [ "$RUN_OPTIONS" == "none" ]
|
if [ "$RUN_OPTIONS" == "none" ]
|
||||||
then
|
then
|
||||||
echo "No run on VM testing for this variant currently"
|
echo "No run on VM testing for this variant currently"
|
||||||
else
|
exit $STATUS
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $RUN_OPTIONS =~ .*run_exec_autotests.* ]]
|
||||||
|
then
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "Running test script on VM ($VM_NAME)"
|
echo "Running test script on VM ($VM_NAME)"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
@@ -271,7 +468,7 @@ else
|
|||||||
rm -f $VM_CMDS
|
rm -f $VM_CMDS
|
||||||
|
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "Checking build status"
|
echo "Checking run status"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
|
|
||||||
LOG_FILES=`ls $ARCHIVES_LOC/results_autotests*.xml`
|
LOG_FILES=`ls $ARCHIVES_LOC/results_autotests*.xml`
|
||||||
@@ -306,13 +503,346 @@ else
|
|||||||
if [ $NB_RUNS -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 [ $NB_FAILURES -ne 0 ]; then STATUS=-1; fi
|
||||||
|
|
||||||
if [ $STATUS -eq 0 ]
|
fi
|
||||||
|
|
||||||
|
if [[ "$RUN_OPTIONS" == "complex" ]] && [[ $VM_NAME =~ .*-basic-sim.* ]]
|
||||||
|
then
|
||||||
|
PING_STATUS=0
|
||||||
|
IPERF_STATUS=0
|
||||||
|
if [ -d $ARCHIVES_LOC ]
|
||||||
then
|
then
|
||||||
echo "STATUS seems OK"
|
rm -Rf $ARCHIVES_LOC
|
||||||
else
|
|
||||||
echo "STATUS failed?"
|
|
||||||
fi
|
fi
|
||||||
|
mkdir --parents $ARCHIVES_LOC
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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 ]
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
||||||
|
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 at 5MHz"
|
||||||
|
echo "############################################################"
|
||||||
|
CURRENT_ENB_LOG_FILE=enb_05MHz.log
|
||||||
|
start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 25
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Starting the UE at 5MHz"
|
||||||
|
echo "############################################################"
|
||||||
|
CURRENT_UE_LOG_FILE=ue_05MHz.log
|
||||||
|
start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 25
|
||||||
|
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_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_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR 05MHz_ping_ue.txt
|
||||||
|
scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/05MHz_ping_ue.txt $ARCHIVES_LOC
|
||||||
|
check_ping_result $ARCHIVES_LOC/05MHz_ping_ue.txt 20
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Iperf DL"
|
||||||
|
echo "############################################################"
|
||||||
|
CURR_IPERF_LOG_BASE=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 "Iperf UL"
|
||||||
|
echo "############################################################"
|
||||||
|
CURR_IPERF_LOG_BASE=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 "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
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Starting the eNB at 10MHz"
|
||||||
|
echo "############################################################"
|
||||||
|
CURRENT_ENB_LOG_FILE=enb_10MHz.log
|
||||||
|
start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 50
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Starting the UE at 10MHz"
|
||||||
|
echo "############################################################"
|
||||||
|
CURRENT_UE_LOG_FILE=ue_10MHz.log
|
||||||
|
start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 50
|
||||||
|
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_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_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR 10MHz_ping_ue.txt
|
||||||
|
scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/10MHz_ping_ue.txt $ARCHIVES_LOC
|
||||||
|
check_ping_result $ARCHIVES_LOC/10MHz_ping_ue.txt 20
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Iperf DL"
|
||||||
|
echo "############################################################"
|
||||||
|
CURR_IPERF_LOG_BASE=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 "Iperf UL"
|
||||||
|
echo "############################################################"
|
||||||
|
CURR_IPERF_LOG_BASE=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 "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
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Starting the eNB at 20MHz"
|
||||||
|
echo "############################################################"
|
||||||
|
CURRENT_ENB_LOG_FILE=enb_20MHz.log
|
||||||
|
start_basic_sim_enb $VM_CMDS $VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE 100
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Starting the UE at 20MHz"
|
||||||
|
echo "############################################################"
|
||||||
|
CURRENT_UE_LOG_FILE=ue_20MHz.log
|
||||||
|
start_basic_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE 100
|
||||||
|
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_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_ue_ip_addr $EPC_VM_CMDS $EPC_VM_IP_ADDR $UE_IP_ADDR 20MHz_ping_ue.txt
|
||||||
|
scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/20MHz_ping_ue.txt $ARCHIVES_LOC
|
||||||
|
check_ping_result $ARCHIVES_LOC/20MHz_ping_ue.txt 20
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Iperf DL"
|
||||||
|
echo "############################################################"
|
||||||
|
CURR_IPERF_LOG_BASE=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 "Iperf UL"
|
||||||
|
echo "############################################################"
|
||||||
|
# CURR_IPERF_LOG_BASE=20MHz_iperf_ul
|
||||||
|
# iperf_ul $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 1 $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 1
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Terminate EPC"
|
||||||
|
echo "############################################################"
|
||||||
|
|
||||||
|
if [ $LTEBOX -eq 1 ]
|
||||||
|
then
|
||||||
|
terminate_ltebox_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Checking run status"
|
||||||
|
echo "############################################################"
|
||||||
|
|
||||||
|
if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi
|
||||||
|
if [ $IPERF_STATUS -ne 0 ]; then STATUS=-1; fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $STATUS -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "STATUS seems OK"
|
||||||
|
else
|
||||||
|
echo "STATUS failed?"
|
||||||
|
fi
|
||||||
|
|
||||||
exit $STATUS
|
exit $STATUS
|
||||||
|
|||||||
Reference in New Issue
Block a user