Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
2ff7bfc4
Commit
2ff7bfc4
authored
Nov 08, 2018
by
Guy De Souza
Browse files
Options
Browse Files
Download
Plain Diff
Merge with develop-nr
parents
6d760fe4
e1757a8a
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
2036 additions
and
2526 deletions
+2036
-2526
ci-scripts/Jenkinsfile-gitlab
ci-scripts/Jenkinsfile-gitlab
+24
-24
ci-scripts/buildOnVM.sh
ci-scripts/buildOnVM.sh
+101
-400
ci-scripts/createVM.sh
ci-scripts/createVM.sh
+21
-165
ci-scripts/destroyAllRunningVM.sh
ci-scripts/destroyAllRunningVM.sh
+24
-62
ci-scripts/oai-ci-vm-tool
ci-scripts/oai-ci-vm-tool
+573
-0
ci-scripts/reportBuildLocally.sh
ci-scripts/reportBuildLocally.sh
+239
-376
ci-scripts/reportTestLocally.sh
ci-scripts/reportTestLocally.sh
+325
-461
ci-scripts/runTestOnVM.sh
ci-scripts/runTestOnVM.sh
+524
-658
ci-scripts/waitBuildOnVM.sh
ci-scripts/waitBuildOnVM.sh
+95
-331
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+1
-1
openair1/PHY/INIT/nr_init.c
openair1/PHY/INIT/nr_init.c
+2
-2
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+4
-4
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+48
-25
openair1/SIMULATION/NR_PHY/pbchsim.c
openair1/SIMULATION/NR_PHY/pbchsim.c
+9
-2
targets/RT/USER/nr-ue.c
targets/RT/USER/nr-ue.c
+44
-13
No files found.
ci-scripts/Jenkinsfile-gitlab
View file @
2ff7bfc4
...
...
@@ -118,7 +118,7 @@ pipeline {
stage
(
"Start VM -- basic-sim"
)
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
...
...
@@ -126,7 +126,7 @@ pipeline {
stage
(
"Start VM -- gnb-usrp"
)
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
...
...
@@ -134,7 +134,7 @@ pipeline {
stage
(
"Start VM -- nu-ue-usrp"
)
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
...
...
@@ -142,7 +142,7 @@ pipeline {
stage
(
"Start VM -- enb-usrp"
)
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
...
...
@@ -150,7 +150,7 @@ pipeline {
stage
(
"Start VM -- enb-ethernet"
)
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
...
...
@@ -158,7 +158,7 @@ pipeline {
stage
(
"Start VM -- ue-ethernet"
)
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
...
...
@@ -166,7 +166,7 @@ pipeline {
stage
(
"Start VM -- phy-sim"
)
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
...
...
@@ -174,7 +174,7 @@ pipeline {
stage
(
"Start VM -- cppcheck"
)
{
steps
{
timeout
(
time:
5
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
buildOnVM.sh
--workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
sh
"./ci-scripts/
oai-ci-vm-tool build
--workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID} --daemon"
}
}
}
...
...
@@ -185,7 +185,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Analysis with cppcheck"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
...
...
@@ -194,7 +194,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Build eNb-USRP"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
...
...
@@ -203,7 +203,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Build basic-sim"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
...
...
@@ -212,7 +212,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Build eNb-ethernet"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant enb-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
...
...
@@ -221,7 +221,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Build UE-ethernet"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant ue-ethernet --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
...
...
@@ -230,7 +230,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Build gNb-usrp"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant gnb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
...
...
@@ -239,7 +239,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Build nr-UE-usrp"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant nu-ue-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
...
...
@@ -248,7 +248,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Build phy-sim"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
waitBuildOnVM.sh
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
sh
"./ci-scripts/
oai-ci-vm-tool wait
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
}
}
}
...
...
@@ -286,7 +286,7 @@ pipeline {
archiveArtifacts
artifacts:
'archives/vm_build_logs.zip'
}
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
sh
"./ci-scripts/
reportBuildLocally.sh
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
sh
"./ci-scripts/
oai-ci-vm-tool report-build --workspace $WORKSPACE
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
sh
"./ci-scripts/checkAddedWarnings.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}"
def
res
=
readFile
(
'./oai_warning_files.txt'
).
trim
();
if
(
"0"
.
equals
(
res
))
{
...
...
@@ -297,7 +297,7 @@ pipeline {
addGitLabMRComment
comment:
message
}
}
else
{
sh
"./ci-scripts/
reportBuildLocally.sh
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
sh
"./ci-scripts/
oai-ci-vm-tool report-build --workspace $WORKSPACE
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
}
if
(
fileExists
(
'build_results.html'
))
{
sh
"sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' build_results.html"
...
...
@@ -314,7 +314,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Test phy-sim"
)
{
timeout
(
time:
45
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
runTestOnVM.sh
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool test
--workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
...
...
@@ -323,7 +323,7 @@ pipeline {
steps
{
gitlabCommitStatus
(
name:
"Test basic-sim"
)
{
timeout
(
time:
20
,
unit:
'MINUTES'
)
{
sh
"./ci-scripts/
runTestOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive
"
sh
"./ci-scripts/
oai-ci-vm-tool test --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}
"
}
}
}
...
...
@@ -518,9 +518,9 @@ pipeline {
if
(
fileExists
(
'archives/vm_tests_logs.zip'
))
{
archiveArtifacts
artifacts:
'archives/vm_tests_logs.zip'
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
sh
"./ci-scripts/
reportTestLocally.sh
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
sh
"./ci-scripts/
oai-ci-vm-tool report-test --workspace $WORKSPACE
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
}
else
{
sh
"./ci-scripts/
reportTestLocally.sh
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
sh
"./ci-scripts/
oai-ci-vm-tool report-test --workspace $WORKSPACE
--git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
}
if
(
fileExists
(
'test_simulator_results.html'
))
{
sh
"sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' test_simulator_results.html"
...
...
@@ -533,7 +533,7 @@ pipeline {
}
stage
(
"Destroy all Virtual Machines"
)
{
steps
{
sh
"./ci-scripts/
destroyAllRunningVM.sh
--job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool destroy
--job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
...
...
@@ -541,7 +541,7 @@ pipeline {
always
{
script
{
// Stage destroy may not be run if error in previous stage
sh
"./ci-scripts/
destroyAllRunningVM.sh
--job-name ${JOB_NAME} --build-id ${BUILD_ID}"
sh
"./ci-scripts/
oai-ci-vm-tool destroy
--job-name ${JOB_NAME} --build-id ${BUILD_ID}"
emailext
attachmentsPattern:
'*results*.html'
,
body:
'''Hi,
Here are attached HTML report files for $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
...
...
ci-scripts/buildOnVM.sh
View file @
2ff7bfc4
...
...
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# */
function
usage
{
echo
"OAI
VM Build Check
script"
function
build_
usage
{
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
...
...
@@ -31,9 +31,9 @@ function usage {
echo
""
echo
"Usage:"
echo
"------"
echo
"
buildOnVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool build
[OPTIONS]"
echo
""
echo
"Options:"
echo
"
Mandatory
Options:"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
...
...
@@ -44,14 +44,9 @@ function usage {
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
"Options:"
echo
"--------"
variant_usage
echo
" Specify the variant to build."
echo
""
echo
" --keep-vm-alive OR -k"
...
...
@@ -65,414 +60,120 @@ function usage {
echo
""
}
function
variant_usage
{
echo
"OAI VM Build Check script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
""
}
if
[
$#
-lt
1
]
||
[
$#
-gt
9
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP"
KEEP_VM_ALIVE
=
0
DAEMON
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
shift
shift
;;
-k
|
--keep-vm-alive
)
KEEP_VM_ALIVE
=
1
shift
;;
-D
|
--daemon
)
DAEMON
=
1
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
shift
;;
-v5
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
shift
;;
-v6
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
;;
gnb-usrp
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
;;
nu-ue-usrp
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
!
-f
$JENKINS_WKSP
/localZip.zip
]
then
echo
"Missing localZip.zip file!"
exit
1
fi
if
[
!
-f
/etc/apt/apt.conf.d/01proxy
]
then
echo
"Missing /etc/apt/apt.conf.d/01proxy file!"
echo
"Is apt-cacher installed and configured?"
exit
1
fi
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
ARCHIVES_LOC
=
${
JENKINS_WKSP
}
/archives/
${
ARCHIVES_LOC
}
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"BUILD_OPTIONS =
$BUILD_OPTIONS
"
IS_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$VM_NAME
`
function
build_on_vm
{
if
[
!
-f
$JENKINS_WKSP
/localZip.zip
]
then
echo
"Missing localZip.zip file!"
STATUS
=
1
return
fi
if
[
!
-f
/etc/apt/apt.conf.d/01proxy
]
then
echo
"Missing /etc/apt/apt.conf.d/01proxy file!"
echo
"Is apt-cacher installed and configured?"
STATUS
=
1
return
fi
if
[
$IS_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"
Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base
"
echo
"
OAI CI VM script
"
echo
"############################################################"
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
fi
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"BUILD_OPTIONS =
$BUILD_OPTIONS
"
echo
"############################################################"
echo
"Copying GIT repo into VM (
$VM_NAME
)"
echo
"############################################################"
scp
-o
StrictHostKeyChecking
=
no localZip.zip ubuntu@
$VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no /etc/apt/apt.conf.d/01proxy ubuntu@
$VM_IP_ADDR
:/home/ubuntu
IS_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$VM_NAME
`
echo
"############################################################"
echo
"Running install and build script on VM (
$VM_NAME
)"
echo
"############################################################"
echo
"sudo cp 01proxy /etc/apt/apt.conf.d/"
>
$VM_CMDS
echo
"touch /home/ubuntu/.hushlogin"
>>
$VM_CMDS
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
if
[
$DAEMON
-eq
0
]
then
echo
"echo
\"
sudo apt-get --yes --quiet install zip cppcheck
\"
"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1"
>>
$VM_CMDS
else
echo
"echo
\"
sudo apt-get --yes --quiet install zip daemon cppcheck
\"
"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip daemon cppcheck >> zip-install.txt 2>&1"
>>
$VM_CMDS
fi
else
if
[
$DAEMON
-eq
0
]
if
[
$IS_VM_ALIVE
-eq
0
]
then
echo
"echo
\"
sudo apt-get --yes --quiet install zip subversion libboost-dev
\"
"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1"
>>
$VM_CMDS
else
echo
"echo
\"
sudo apt-get --yes --quiet install zip daemon subversion libboost-dev
\"
"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip daemon subversion libboost-dev >> zip-install.txt 2>&1"
>>
$VM_CMDS
fi
fi
echo
"mkdir tmp"
>>
$VM_CMDS
echo
"cd tmp"
>>
$VM_CMDS
echo
"echo
\"
unzip -qq -DD ../localZip.zip
\"
"
>>
$VM_CMDS
echo
"unzip -qq -DD ../localZip.zip"
>>
$VM_CMDS
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
echo
"mkdir cmake_targets/log"
>>
$VM_CMDS
echo
"chmod 777 cmake_targets/log"
>>
$VM_CMDS
echo
"cp /home/ubuntu/zip-install.txt cmake_targets/log"
>>
$VM_CMDS
echo
"echo
\"
cppcheck
$BUILD_OPTIONS
.
\"
"
>>
$VM_CMDS
if
[
$DAEMON
-eq
0
]
then
echo
"cppcheck
$BUILD_OPTIONS
. 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt"
>>
$VM_CMDS
else
echo
"echo
\"
cppcheck
$BUILD_OPTIONS
.
\"
> ./my-vm-build.sh"
>>
$VM_CMDS
echo
"chmod 775 ./my-vm-build.sh "
>>
$VM_CMDS
echo
"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp -O /home/ubuntu/tmp/cmake_targets/log/cppcheck_build.txt -E /home/ubuntu/tmp/cmake_targets/log/cppcheck.xml ./my-vm-build.sh"
>>
$VM_CMDS
fi
else
echo
"echo
\"
source oaienv
\"
"
>>
$VM_CMDS
echo
"source oaienv"
>>
$VM_CMDS
echo
"cd cmake_targets/"
>>
$VM_CMDS
echo
"mkdir log"
>>
$VM_CMDS
echo
"chmod 777 log"
>>
$VM_CMDS
echo
"cp /home/ubuntu/zip-install.txt log"
>>
$VM_CMDS
if
[
$DAEMON
-eq
0
]
then
echo
"echo
\"
./build_oai -I
$BUILD_OPTIONS
\"
"
>>
$VM_CMDS
echo
"./build_oai -I
$BUILD_OPTIONS
> log/install-build.txt 2>&1"
>>
$VM_CMDS
else
echo
"echo
\"
./build_oai -I
$BUILD_OPTIONS
\"
> ./my-vm-build.sh"
>>
$VM_CMDS
echo
"chmod 775 ./my-vm-build.sh "
>>
$VM_CMDS
echo
"echo
\"
sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh
\"
"
>>
$VM_CMDS
echo
"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh"
>>
$VM_CMDS
echo
"VM_MEMORY =
$VM_MEMORY
MBytes"
echo
"VM_CPU =
$VM_CPU
"
echo
"############################################################"
echo
"Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base"
echo
"############################################################"
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
fi
fi
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
if
[
$DAEMON
-eq
1
]
then
rm
-f
$VM_CMDS
echo
"STATUS is OK"
exit
0
fi
echo
"############################################################"
echo
"Creating a tmp folder to store results and artifacts"
echo
"############################################################"
if
[
!
-d
$JENKINS_WKSP
/archives
]
then
mkdir
$JENKINS_WKSP
/archives
fi
if
[
!
-d
$ARCHIVES_LOC
]
then
mkdir
$ARCHIVES_LOC
fi
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.txt
$ARCHIVES_LOC
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.xml
$ARCHIVES_LOC
fi
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
if
[
$KEEP_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"
Destroying VM"
echo
"
Copying GIT repo into VM (
$VM_NAME
)"
echo
"############################################################"
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
fi
rm
-f
$VM_CMDS
echo
"############################################################"
echo
"Checking build status"
echo
"############################################################"
scp
-o
StrictHostKeyChecking
=
no
$JENKINS_WKSP
/localZip.zip ubuntu@
$VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no /etc/apt/apt.conf.d/01proxy ubuntu@
$VM_IP_ADDR
:/home/ubuntu
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/
*
.txt
$ARCHIVES_LOC
/
*
.xml
`
STATUS
=
0
NB_FOUND_FILES
=
0
for
FULLFILE
in
$LOG_FILES
do
if
[[
$FULLFILE
==
*
"
$LOG_PATTERN
"
*
]]
echo
"############################################################"
echo
"Running install and build script on VM (
$VM_NAME
)"
echo
"############################################################"
echo
"sudo cp 01proxy /etc/apt/apt.conf.d/"
>
$VM_CMDS
echo
"touch /home/ubuntu/.hushlogin"
>>
$VM_CMDS
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
filename
=
$(
basename
--
"
$FULLFILE
"
)
if
[
"
$LOG_PATTERN
"
==
".Rel15.txt"
]
if
[
$DAEMON
-eq
0
]
then
PASS_PATTERN
=
`
echo
$filename
|
sed
-e
"s#
$LOG_PATTERN
##"
`
echo
"echo
\"
sudo apt-get --yes --quiet install zip cppcheck
\"
"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1"
>>
$VM_CMDS
else
echo
"echo
\"
sudo apt-get --yes --quiet install zip daemon cppcheck
\"
"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip daemon cppcheck >> zip-install.txt 2>&1"
>>
$VM_CMDS
fi
if
[
"
$LOG_PATTERN
"
==
"basic_simulator"
]
else
if
[
$DAEMON
-eq
0
]
then
PASS_PATTERN
=
"lte-"
echo
"echo
\"
sudo apt-get --yes --quiet install zip subversion libboost-dev
\"
"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1"
>>
$VM_CMDS
else
echo
"echo
\"
sudo apt-get --yes --quiet install zip daemon subversion libboost-dev
\"
"
>>
$VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install zip daemon subversion libboost-dev >> zip-install.txt 2>&1"
>>
$VM_CMDS
fi
if
[
"
$LOG_PATTERN
"
==
"cppcheck.xml"
]
fi
echo
"mkdir tmp"
>>
$VM_CMDS
echo
"cd tmp"
>>
$VM_CMDS
echo
"echo
\"
unzip -qq -DD ../localZip.zip
\"
"
>>
$VM_CMDS
echo
"unzip -qq -DD ../localZip.zip"
>>
$VM_CMDS
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
echo
"mkdir cmake_targets/log"
>>
$VM_CMDS
echo
"chmod 777 cmake_targets/log"
>>
$VM_CMDS
echo
"cp /home/ubuntu/zip-install.txt cmake_targets/log"
>>
$VM_CMDS
echo
"echo
\"
cppcheck
$BUILD_OPTIONS
.
\"
"
>>
$VM_CMDS
if
[
$DAEMON
-eq
0
]
then
PASS_PATTERN
=
"results version"
LOCAL_STAT
=
`
egrep
-c
"
$PASS_PATTERN
"
$FULLFILE
`
echo
"cppcheck
$BUILD_OPTIONS
. 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt"
>>
$VM_CMDS
else
LOCAL_STAT
=
`
egrep
-c
"Built target
$PASS_PATTERN
"
$FULLFILE
`
echo
"echo
\"
cppcheck
$BUILD_OPTIONS
.
\"
> ./my-vm-build.sh"
>>
$VM_CMDS
echo
"chmod 775 ./my-vm-build.sh "
>>
$VM_CMDS
echo
"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp -O /home/ubuntu/tmp/cmake_targets/log/cppcheck_build.txt -E /home/ubuntu/tmp/cmake_targets/log/cppcheck.xml ./my-vm-build.sh"
>>
$VM_CMDS
fi
else
echo
"echo
\"
source oaienv
\"
"
>>
$VM_CMDS
echo
"source oaienv"
>>
$VM_CMDS
echo
"cd cmake_targets/"
>>
$VM_CMDS
echo
"mkdir log"
>>
$VM_CMDS
echo
"chmod 777 log"
>>
$VM_CMDS
echo
"cp /home/ubuntu/zip-install.txt log"
>>
$VM_CMDS
if
[
$DAEMON
-eq
0
]
then
echo
"echo
\"
./build_oai -I
$BUILD_OPTIONS
\"
"
>>
$VM_CMDS
echo
"./build_oai -I
$BUILD_OPTIONS
> log/install-build.txt 2>&1"
>>
$VM_CMDS
else
echo
"echo
\"
./build_oai -I
$BUILD_OPTIONS
\"
> ./my-vm-build.sh"
>>
$VM_CMDS
echo
"chmod 775 ./my-vm-build.sh "
>>
$VM_CMDS
echo
"echo
\"
sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh
\"
"
>>
$VM_CMDS
echo
"sudo -E daemon --inherit --unsafe --name=build_daemon --chdir=/home/ubuntu/tmp/cmake_targets -o /home/ubuntu/tmp/cmake_targets/log/install-build.txt ./my-vm-build.sh"
>>
$VM_CMDS
fi
if
[
$LOCAL_STAT
-eq
0
]
;
then
STATUS
=
-1
;
fi
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
fi
done
if
[
$NB_PATTERN_FILES
-ne
$NB_FOUND_FILES
]
;
then
STATUS
=
-1
;
fi
if
[
$STATUS
-eq
0
]
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
exit
$STATUS
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
rm
-f
$VM_CMDS
}
ci-scripts/createVM.sh
View file @
2ff7bfc4
...
...
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# */
function
usage
{
echo
"OAI
VM Creation
script"
function
create_
usage
{
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
...
...
@@ -31,9 +31,9 @@ function usage {
echo
""
echo
"Usage:"
echo
"------"
echo
"
createVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool create
[OPTIONS]"
echo
""
echo
"Options:"
echo
"
Mandatory
Options:"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
...
...
@@ -41,14 +41,7 @@ function usage {
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
variant_usage
echo
" Specify the variant to build."
echo
""
echo
" --help OR -h"
...
...
@@ -56,158 +49,21 @@ function usage {
echo
""
}
function
variant_usage
{
echo
"OAI VM Build Check script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
""
}
if
[
$#
-lt
1
]
||
[
$#
-gt
6
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
function
create_vm
{
echo
"############################################################"
echo
"OAI CI VM script"
echo
"############################################################"
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_MEMORY =
$VM_MEMORY
MBytes"
echo
"VM_CPU =
$VM_CPU
"
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
echo
"############################################################"
echo
"Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base"
echo
"############################################################"
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
VM_MEMORY
=
8192
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
shift
;;
-v5
)
VM_NAME
=
ci-gnb-usrp
shift
;;
-v6
)
VM_NAME
=
ci-ue-nr-usrp
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
VM_MEMORY
=
8192
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
;;
gnb-usrp
)
VM_NAME
=
ci-gnb-usrp
;;
nu-ue-usrp
)
VM_NAME
=
ci-ue-nr-usrp
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_MEMORY =
$VM_MEMORY
MBytes"
echo
"VM_CPU =
$VM_CPU
"
echo
"############################################################"
echo
"Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base"
echo
"############################################################"
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
exit
0
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
}
ci-scripts/destroyAllRunningVM.sh
View file @
2ff7bfc4
...
...
@@ -20,15 +20,17 @@
# * contact@openairinterface.org
# */
function
usage
{
echo
"OAI
VM Destroy
script"
function
destroy_
usage
{
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
""
echo
"Usage:"
echo
"------"
echo
"
destroyAllRunningVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool destroy
[OPTIONS]"
echo
""
echo
"Options:"
echo
"
Mandatory
Options:"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
...
...
@@ -36,66 +38,26 @@ function usage {
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
"Options:"
echo
"--------"
echo
" --help OR -h"
echo
" Print this help message."
echo
""
}
if
[
$#
-gt
4
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
LIST_CI_VM
=
`
uvt-kvm list |
grep
$VM_TEMPLATE
`
for
CI_VM
in
$LIST_CI_VM
do
VM_IP_ADDR
=
`
uvt-kvm ip
$CI_VM
`
echo
"VM to destroy:
$CI_VM
-- IP
$VM_IP_ADDR
"
uvt-kvm destroy
$CI_VM
ssh-keygen
-R
$VM_IP_ADDR
done
exit
0
function
destroy_vm
{
echo
"############################################################"
echo
"OAI CI VM script"
echo
"############################################################"
echo
"VM_TEMPLATE =
$VM_TEMPLATE
"
LIST_CI_VM
=
`
uvt-kvm list |
grep
$VM_TEMPLATE
`
for
CI_VM
in
$LIST_CI_VM
do
VM_IP_ADDR
=
`
uvt-kvm ip
$CI_VM
`
echo
"VM to destroy:
$CI_VM
-- IP
$VM_IP_ADDR
"
uvt-kvm destroy
$CI_VM
ssh-keygen
-R
$VM_IP_ADDR
done
}
ci-scripts/oai-ci-vm-tool
0 → 100755
View file @
2ff7bfc4
#!/bin/bash
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
function
top_usage
{
echo
"OAI CI VM script"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
" -- xenial image already synced"
echo
""
echo
"Usage:"
echo
"------"
echo
" oai-ci-vm-tool (-h|--help) {create,destroy,build,wait,test,report-build,report-test} ..."
echo
""
}
function
variant_usage
{
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
}
MY_DIR
=
$(
dirname
$(
readlink
-f
$0
))
.
$MY_DIR
/createVM.sh
.
$MY_DIR
/buildOnVM.sh
.
$MY_DIR
/waitBuildOnVM.sh
.
$MY_DIR
/destroyAllRunningVM.sh
.
$MY_DIR
/runTestOnVM.sh
.
$MY_DIR
/reportBuildLocally.sh
.
$MY_DIR
/reportTestLocally.sh
if
[
$#
-lt
1
]
then
echo
"Syntax Error: too few arguments"
echo
""
top_usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP"
KEEP_VM_ALIVE
=
0
RUN_OPTIONS
=
"none"
DAEMON
=
0
MR_TRIG
=
0
PU_TRIG
=
0
HELP_CMD
=
0
CREATE_CMD
=
0
BUILD_CMD
=
0
WAIT_CMD
=
0
DESTROY_CMD
=
0
TEST_CMD
=
0
REPORT_BUILD_CMD
=
0
REPORT_TEST_CMD
=
0
NBARGS
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
HELP_CMD
=
1
shift
;;
create
)
CREATE_CMD
=
1
# It is implied to keep the VM when creating it
KEEP_VM_ALIVE
=
1
shift
;;
build
)
BUILD_CMD
=
1
shift
;;
wait
)
WAIT_CMD
=
1
shift
;;
test
)
TEST_CMD
=
1
shift
;;
destroy
)
DESTROY_CMD
=
1
shift
;;
report-build
)
REPORT_BUILD_CMD
=
1
shift
;;
report-test
)
REPORT_TEST_CMD
=
1
shift
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
NBARGS
=
$[$NBARGS
+1]
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
NBARGS
=
$[$NBARGS
+2]
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
NBARGS
=
$[$NBARGS
+4]
shift
shift
;;
-k
|
--keep-vm-alive
)
KEEP_VM_ALIVE
=
1
NBARGS
=
$[$NBARGS
+8]
shift
;;
-D
|
--daemon
)
DAEMON
=
1
NBARGS
=
$[$NBARGS
+16]
shift
;;
-gu
|
--git-url
)
GIT_URL
=
"
$2
"
NBARGS
=
$[$NBARGS
+32]
shift
shift
;;
--trigger
)
TRIG
=
"
$2
"
case
$TRIG
in
merge-request
)
MR_TRIG
=
1
;;
push
)
PU_TRIG
=
1
;;
*
)
echo
""
echo
"Syntax Error: Invalid Trigger option ->
$TRIG
"
echo
""
trigger_usage
exit
;;
esac
NBARGS
=
$[$NBARGS
+64]
shift
shift
;;
-mr
)
MR_TRIG
=
1
NBARGS
=
$[$NBARGS
+64]
shift
;;
-pu
)
PU_TRIG
=
1
NBARGS
=
$[$NBARGS
+64]
shift
;;
-sb
|
--src-branch
)
SOURCE_BRANCH
=
"
$2
"
NBARGS
=
$[$NBARGS
+1024]
shift
shift
;;
-sc
|
--src-commit
)
SOURCE_COMMIT_ID
=
"
$2
"
NBARGS
=
$[$NBARGS
+2048]
shift
shift
;;
-tb
|
--target-branch
)
TARGET_BRANCH
=
"
$2
"
NBARGS
=
$[$NBARGS
+4096]
shift
shift
;;
-tc
|
--target-commit
)
TARGET_COMMIT_ID
=
"
$2
"
NBARGS
=
$[$NBARGS
+8192]
shift
shift
;;
-br
|
--branch
)
SOURCE_BRANCH
=
"
$2
"
NBARGS
=
$[$NBARGS
+16384]
shift
shift
;;
-co
|
--commit
)
SOURCE_COMMIT_ID
=
"
$2
"
NBARGS
=
$[$NBARGS
+32768]
shift
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
RUN_OPTIONS
=
"complex"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
RUN_OPTIONS
=
"./run_exec_autotests.bash -g
\"
01510*
\"
-q -np -b"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v5
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v6
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
NBARGS
=
$[$NBARGS
+256]
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
NBARGS
=
$[$NBARGS
+256]
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
NBARGS
=
$[$NBARGS
+256]
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
RUN_OPTIONS
=
"complex"
NBARGS
=
$[$NBARGS
+256]
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
RUN_OPTIONS
=
"./run_exec_autotests.bash -g
\"
01510*
\"
-q -np -b"
NBARGS
=
$[$NBARGS
+256]
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
NBARGS
=
$[$NBARGS
+256]
;;
gnb-usrp
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
NBARGS
=
$[$NBARGS
+256]
;;
nu-ue-usrp
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
NBARGS
=
$[$NBARGS
+256]
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
NBARGS
=
$[$NBARGS
+256]
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
NBARGS
=
$[$NBARGS
+256]
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
top_usage
exit
1
esac
done
MANY_CMDS
=
$[$CREATE_CMD
+
$BUILD_CMD
+
$WAIT_CMD
+
$DESTROY_CMD
+
$TEST_CMD
+
$REPORT_BUILD_CMD
+
$REPORT_TEST_CMD
]
if
[
$MANY_CMDS
-gt
1
]
then
echo
"Syntax Error: too many commands"
top_usage
exit
1
fi
if
[
$HELP_CMD
-eq
1
]
then
if
[
$MANY_CMDS
-eq
0
]
then
top_usage
exit
0
fi
if
[
$CREATE_CMD
-eq
1
]
then
create_usage
exit
0
fi
if
[
$BUILD_CMD
-eq
1
]
then
build_usage
exit
0
fi
if
[
$WAIT_CMD
-eq
1
]
then
wait_usage
exit
0
fi
if
[
$TEST_CMD
-eq
1
]
then
run_test_usage
exit
0
fi
if
[
$DESTROY_CMD
-eq
1
]
then
destroy_usage
exit
0
fi
if
[
$REPORT_BUILD_CMD
-eq
1
]
then
report_build_usage
exit
0
fi
if
[
$REPORT_TEST_CMD
-eq
1
]
then
report_test_usage
exit
0
fi
else
if
[
$MANY_CMDS
-eq
0
]
then
echo
"Syntax Error: no command"
top_usage
exit
1
fi
# For create, mandatory options: jn, id. Optional: variant
if
[
$CREATE_CMD
-eq
1
]
&&
[
$NBARGS
-ne
3
]
&&
[
$NBARGS
-ne
259
]
then
echo
"Syntax Error: unsupported option(s) for create command"
create_usage
exit
1
fi
# For build, mandatory options: jn, id, ws. Optional: variant, k, D
if
[
$BUILD_CMD
-eq
1
]
&&
[
$NBARGS
-ne
7
]
&&
[
$NBARGS
-ne
263
]
&&
[
$NBARGS
-ne
15
]
&&
[
$NBARGS
-ne
271
]
&&
[
$NBARGS
-ne
23
]
&&
[
$NBARGS
-ne
279
]
&&
[
$NBARGS
-ne
31
]
&&
[
$NBARGS
-ne
287
]
then
echo
"Syntax Error: unsupported option(s) for build command"
build_usage
exit
1
fi
# For wait, mandatory options: jn, id, ws. Optional: variant, k
if
[
$WAIT_CMD
-eq
1
]
&&
[
$NBARGS
-ne
7
]
&&
[
$NBARGS
-ne
263
]
&&
[
$NBARGS
-ne
15
]
&&
[
$NBARGS
-ne
271
]
then
echo
"Syntax Error: unsupported option(s) for wait command"
wait_usage
exit
1
fi
# For test, mandatory options: jn, id, ws. Optional: variant, k
if
[
$TEST_CMD
-eq
1
]
&&
[
$NBARGS
-ne
7
]
&&
[
$NBARGS
-ne
263
]
&&
[
$NBARGS
-ne
15
]
&&
[
$NBARGS
-ne
271
]
then
echo
"Syntax Error: unsupported option(s) for test command"
run_test_usage
exit
1
fi
# For destroy, mandatory options: jn, id.
if
[
$DESTROY_CMD
-eq
1
]
&&
[
$NBARGS
-ne
3
]
then
echo
"Syntax Error: unsupported option(s) for destroy command"
destroy_usage
exit
1
fi
# For report-build, mandatory options: jn, id, ws, gu, pu, br,co.
# or: jn, id, ws, gu, mr, sb, sc, tb, tc.
if
[
$REPORT_BUILD_CMD
-eq
1
]
&&
[
$NBARGS
-ne
15463
]
&&
[
$NBARGS
-ne
49255
]
then
echo
"Syntax Error: unsupported option(s) for report-build command"
report_build_usage
exit
1
fi
# For report-test, mandatory options: jn, id, ws, gu, pu, br,co.
# or: jn, id, ws, gu, mr, sb, sc, tb, tc.
if
[
$REPORT_TEST_CMD
-eq
1
]
&&
[
$NBARGS
-ne
15463
]
&&
[
$NBARGS
-ne
49255
]
then
echo
"Syntax Error: unsupported option(s) for report-test command"
report_test_usage
exit
1
fi
fi
# Checking uvt-kvm is installed
UVT_KVM_PATH
=
`
which uvt-kvm |
grep
-c
uvt-kvm
`
if
[
$UVT_KVM_PATH
-eq
0
]
then
echo
"Error: uvt-kvm is not installed"
top_usage
exit
1
fi
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
ARCHIVES_LOC
=
${
JENKINS_WKSP
}
/archives/
${
ARCHIVES_LOC
}
STATUS
=
0
if
[
$CREATE_CMD
-eq
1
]
then
create_vm
fi
if
[
$BUILD_CMD
-eq
1
]
then
build_on_vm
if
[
$DAEMON
-eq
0
]
&&
[
$STATUS
-eq
0
]
then
check_on_vm_build
fi
fi
if
[
$WAIT_CMD
-eq
1
]
then
wait_on_vm_build
if
[
$STATUS
-eq
0
]
then
check_on_vm_build
fi
fi
if
[
$TEST_CMD
-eq
1
]
then
ARCHIVES_LOC
=
${
ARCHIVES_LOC
}
/test
run_test_on_vm
fi
if
[
$DESTROY_CMD
-eq
1
]
then
destroy_vm
fi
if
[
$REPORT_BUILD_CMD
-eq
1
]
then
report_build
fi
if
[
$REPORT_TEST_CMD
-eq
1
]
then
report_test
fi
# Did command pass or fail?
if
[
$STATUS
-eq
0
]
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
exit
$STATUS
ci-scripts/reportBuildLocally.sh
View file @
2ff7bfc4
...
...
@@ -20,14 +20,13 @@
# * contact@openairinterface.org
# */
function
usage
{
echo
"OAI
Local Build Report
script"
function
report_build_
usage
{
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
"Usage:"
echo
"------"
echo
""
echo
" reportBuildLocally.sh [OPTIONS]"
echo
" oai-ci-vm-tool report-build [OPTIONS]"
echo
""
echo
"Options:"
echo
"--------"
...
...
@@ -47,6 +46,9 @@ function usage {
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --trigger merge-request OR -mr"
echo
" --trigger push OR -pu"
echo
" Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
...
...
@@ -79,7 +81,7 @@ function usage {
}
function
trigger_usage
{
echo
"OAI
Local Build Report
script"
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
" --trigger merge-request OR -mr"
...
...
@@ -153,8 +155,8 @@ function summary_table_row {
echo
" <td bgcolor =
\"
lightcyan
\"
>
$1
</th>"
>>
./build_results.html
if
[
-f
$2
]
then
STATUS
=
`
egrep
-c
"
$3
"
$2
`
if
[
$STATUS
-eq
1
]
BUILD_
STATUS
=
`
egrep
-c
"
$3
"
$2
`
if
[
$
BUILD_
STATUS
-eq
1
]
then
echo
" <td bgcolor =
\"
green
\"
>OK</th>"
>>
./build_results.html
else
...
...
@@ -263,384 +265,245 @@ function sca_summary_table_footer {
echo
" <p style=
\"
margin-left: 30px
\"
>Graphical Interface tool : <strong><code>cppcheck-gui -l cppcheck/cppcheck.xml</code></strong></p>"
>>
./build_results.html
}
jb_checker
=
0
mr_checker
=
0
pu_checker
=
0
MR_TRIG
=
0
PU_TRIG
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-gu
|
--git-url
)
GIT_URL
=
"
$2
"
let
"jb_checker|=0x1"
shift
shift
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
let
"jb_checker|=0x2"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
let
"jb_checker|=0x4"
shift
shift
;;
--trigger
)
TRIG
=
"
$2
"
case
$TRIG
in
merge-request
)
MR_TRIG
=
1
;;
push
)
PU_TRIG
=
1
;;
*
)
echo
""
echo
"Syntax Error: Invalid Trigger option ->
$TRIG
"
echo
""
trigger_usage
exit
;;
esac
let
"jb_checker|=0x8"
shift
shift
;;
-mr
)
MR_TRIG
=
1
let
"jb_checker|=0x8"
shift
;;
-pu
)
PU_TRIG
=
1
let
"jb_checker|=0x8"
shift
;;
-sb
|
--src-branch
)
SOURCE_BRANCH
=
"
$2
"
let
"mr_checker|=0x1"
shift
shift
;;
-sc
|
--src-commit
)
SOURCE_COMMIT_ID
=
"
$2
"
let
"mr_checker|=0x2"
shift
shift
;;
-tb
|
--target-branch
)
TARGET_BRANCH
=
"
$2
"
let
"mr_checker|=0x4"
shift
shift
;;
-tc
|
--target-commit
)
TARGET_COMMIT_ID
=
"
$2
"
let
"mr_checker|=0x8"
shift
shift
;;
-br
|
--branch
)
SOURCE_BRANCH
=
"
$2
"
let
"pu_checker|=0x1"
shift
shift
;;
-co
|
--commit
)
SOURCE_COMMIT_ID
=
"
$2
"
let
"pu_checker|=0x2"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
;;
esac
done
if
[
$jb_checker
-ne
15
]
then
echo
""
echo
"Syntax Error: missing job information."
# TODO : list missing info
echo
""
exit
1
fi
if
[
$PU_TRIG
-eq
1
]
&&
[
$MR_TRIG
-eq
1
]
then
echo
""
echo
"Syntax Error: trigger action incoherent."
echo
""
trigger_usage
exit
1
fi
if
[
$PU_TRIG
-eq
1
]
then
if
[
$pu_checker
-ne
3
]
then
echo
""
echo
"Syntax Error: missing push information."
# TODO : list missing info
echo
""
exit
1
fi
fi
if
[
$MR_TRIG
-eq
1
]
then
if
[
$mr_checker
-ne
15
]
then
echo
""
echo
"Syntax Error: missing merge-request information."
# TODO : list missing info
echo
""
exit
1
fi
fi
echo
"<!DOCTYPE html>"
>
./build_results.html
echo
"<html class=
\"
no-js
\"
lang=
\"
en-US
\"
>"
>>
./build_results.html
echo
"<head>"
>>
./build_results.html
echo
" <title>Build Results for
$JOB_NAME
job build #
$BUILD_ID
</title>"
>>
./build_results.html
echo
" <base href =
\"
http://www.openairinterface.org/
\"
/>"
>>
./build_results.html
echo
"</head>"
>>
./build_results.html
echo
"<body>"
>>
./build_results.html
echo
" <table style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <tr style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <a href=
\"
http://www.openairinterface.org/
\"
>"
>>
./build_results.html
echo
" <img src=
\"
/wp-content/uploads/2016/03/cropped-oai_final_logo2.png
\"
alt=
\"\"
border=
\"
none
\"
height=50 width=150>"
>>
./build_results.html
echo
" </img>"
>>
./build_results.html
echo
" </a>"
>>
./build_results.html
echo
" </td>"
>>
./build_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none; vertical-align: center;
\"
>"
>>
./build_results.html
echo
" <b><font size =
\"
6
\"
>Job Summary -- Job:
$JOB_NAME
-- Build-ID:
$BUILD_ID
</font></b>"
>>
./build_results.html
echo
" </td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" </table>"
>>
./build_results.html
echo
" <br>"
>>
./build_results.html
echo
" <table border =
\"
1
\"
>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Build Start Time (UTC)</td>"
>>
./build_results.html
echo
" <td>TEMPLATE_BUILD_TIME</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>GIT Repository</td>"
>>
./build_results.html
echo
" <td>
$GIT_URL
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Job Trigger</td>"
>>
./build_results.html
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td>Push Event</td>"
>>
./build_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td>Merge-Request</td>"
>>
./build_results.html
;
fi
echo
" </tr>"
>>
./build_results.html
if
[
$PU_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Branch</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Commit ID</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
fi
if
[
$MR_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Branch</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
function
report_build
{
echo
"############################################################"
echo
"OAI CI VM script"
echo
"############################################################"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
cd
${
JENKINS_WKSP
}
echo
"<!DOCTYPE html>"
>
./build_results.html
echo
"<html class=
\"
no-js
\"
lang=
\"
en-US
\"
>"
>>
./build_results.html
echo
"<head>"
>>
./build_results.html
echo
" <title>Build Results for
$JOB_NAME
job build #
$BUILD_ID
</title>"
>>
./build_results.html
echo
" <base href =
\"
http://www.openairinterface.org/
\"
/>"
>>
./build_results.html
echo
"</head>"
>>
./build_results.html
echo
"<body>"
>>
./build_results.html
echo
" <table style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <tr style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./build_results.html
echo
" <a href=
\"
http://www.openairinterface.org/
\"
>"
>>
./build_results.html
echo
" <img src=
\"
/wp-content/uploads/2016/03/cropped-oai_final_logo2.png
\"
alt=
\"\"
border=
\"
none
\"
height=50 width=150>"
>>
./build_results.html
echo
" </img>"
>>
./build_results.html
echo
" </a>"
>>
./build_results.html
echo
" </td>"
>>
./build_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none; vertical-align: center;
\"
>"
>>
./build_results.html
echo
" <b><font size =
\"
6
\"
>Job Summary -- Job:
$JOB_NAME
-- Build-ID:
$BUILD_ID
</font></b>"
>>
./build_results.html
echo
" </td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" </table>"
>>
./build_results.html
echo
" <br>"
>>
./build_results.html
echo
" <table border =
\"
1
\"
>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
Source Commit ID
</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
Build Start Time (UTC)
</td>"
>>
./build_results.html
echo
" <td>
TEMPLATE_BUILD_TIME
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
Target Branch
</td>"
>>
./build_results.html
echo
" <td>
$
TARGET_BRANCH
</td>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
GIT Repository
</td>"
>>
./build_results.html
echo
" <td>
$
GIT_URL
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Commit ID</td>"
>>
./build_results.html
echo
" <td>
$TARGET_COMMIT_ID
</td>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Job Trigger</td>"
>>
./build_results.html
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td>Push Event</td>"
>>
./build_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td>Merge-Request</td>"
>>
./build_results.html
;
fi
echo
" </tr>"
>>
./build_results.html
fi
echo
" </table>"
>>
./build_results.html
echo
" <h2>Build Summary</h2>"
>>
./build_results.html
if
[
-f
./oai_rules_result.txt
]
then
echo
" <h3>OAI Coding / Formatting Guidelines Check</h3>"
>>
./build_results.html
echo
" <table border = "
1
">"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Result:</td>"
>>
./build_results.html
NB_FILES
=
`
cat
./oai_rules_result.txt
`
if
[
$NB_FILES
=
"0"
]
then
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td bgcolor =
\"
green
\"
>All files in repository follow OAI rules. </td>"
>>
./build_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td bgcolor =
\"
green
\"
>All modified files in Merge-Request follow OAI rules.</td>"
>>
./build_results.html
;
fi
if
[
$PU_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Branch</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" </table>"
>>
./build_results.html
else
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td bgcolor =
\"
orange
\"
>
$NB_FILES
files in repository DO NOT follow OAI rules. </td>"
>>
./build_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td bgcolor =
\"
orange
\"
>
$NB_FILES
modified files in Merge-Request DO NOT follow OAI rules.</td>"
>>
./build_results.html
;
fi
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Commit ID</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
if
[
-f
./oai_rules_result_list.txt
]
then
awk
'{print " <tr><td></td><td>"$1"</td></tr>"}'
./oai_rules_result_list.txt
>>
./build_results.html
fi
if
[
$MR_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Branch</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Commit ID</td>"
>>
./build_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Branch</td>"
>>
./build_results.html
echo
" <td>
$TARGET_BRANCH
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Commit ID</td>"
>>
./build_results.html
echo
" <td>
$TARGET_COMMIT_ID
</td>"
>>
./build_results.html
echo
" </tr>"
>>
./build_results.html
fi
echo
" </table>"
>>
./build_results.html
echo
" <h2>Build Summary</h2>"
>>
./build_results.html
if
[
-f
./oai_rules_result.txt
]
then
echo
" <h3>OAI Coding / Formatting Guidelines Check</h3>"
>>
./build_results.html
echo
" <table border = "
1
">"
>>
./build_results.html
echo
" <tr>"
>>
./build_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Result:</td>"
>>
./build_results.html
NB_FILES
=
`
cat
./oai_rules_result.txt
`
if
[
$NB_FILES
=
"0"
]
then
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td bgcolor =
\"
green
\"
>All files in repository follow OAI rules. </td>"
>>
./build_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td bgcolor =
\"
green
\"
>All modified files in Merge-Request follow OAI rules.</td>"
>>
./build_results.html
;
fi
echo
" </tr>"
>>
./build_results.html
echo
" </table>"
>>
./build_results.html
else
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td bgcolor =
\"
orange
\"
>
$NB_FILES
files in repository DO NOT follow OAI rules. </td>"
>>
./build_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td bgcolor =
\"
orange
\"
>
$NB_FILES
modified files in Merge-Request DO NOT follow OAI rules.</td>"
>>
./build_results.html
;
fi
echo
" </tr>"
>>
./build_results.html
if
[
-f
./oai_rules_result_list.txt
]
then
awk
'{print " <tr><td></td><td>"$1"</td></tr>"}'
./oai_rules_result_list.txt
>>
./build_results.html
fi
echo
" </table>"
>>
./build_results.html
echo
" <p>Please apply the following command to this(ese) file(s): </p>"
>>
./build_results.html
echo
" <p style=
\"
margin-left: 30px
\"
><strong><code>astyle --options=ci-scripts/astyle-options.txt filename(s)</code></strong></p>"
>>
./build_results.html
fi
echo
" </table>"
>>
./build_results.html
echo
" <p>Please apply the following command to this(ese) file(s): </p>"
>>
./build_results.html
echo
" <p style=
\"
margin-left: 30px
\"
><strong><code>astyle --options=ci-scripts/astyle-options.txt filename(s)</code></strong></p>"
>>
./build_results.html
fi
fi
echo
" <h2>Ubuntu 16.04 LTS -- Summary</h2>"
>>
./build_results.html
sca_summary_table_header
"OAI Static Code Analysis with CPPCHECK"
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Uninitialized variable"
uninitvar
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Uninitialized struct member"
uninitStructMember
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Memory leak"
memleak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Memory is freed twice"
doubleFree
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Resource leak"
resourceLeak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Possible null pointer dereference"
nullPointer
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Array access out of bounds"
arrayIndexOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Buffer is accessed out of bounds"
bufferAccessOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Expression depends on order of evaluation of side effects"
unknownEvaluationOrder
sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
summary_table_header
"OAI Build eNB -- USRP option"
summary_table_row
"LTE SoftModem - Release 15"
./archives/enb_usrp/lte-softmodem.Rel15.txt
"Built target lte-softmodem"
./enb_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/enb_usrp/coding.Rel15.txt
"Built target coding"
./enb_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/enb_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./enb_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/enb_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_usrp_row4.html
summary_table_footer
summary_table_header
"OAI Build basic simulator option"
summary_table_row
"Basic Simulator eNb - Release 15"
./archives/basic_sim/basic_simulator_enb.txt
"Built target lte-softmodem"
./basic_sim_row1.html
summary_table_row
"Basic Simulator UE - Release 15"
./archives/basic_sim/basic_simulator_ue.txt
"Built target lte-uesoftmodem"
./basic_sim_row2.html
summary_table_row
"Conf 2 UE data - Release 15"
./archives/basic_sim/conf2uedata.Rel15.txt
"Built target conf2uedata"
./basic_sim_row3.html
summary_table_footer
summary_table_header
"OAI Build Physical simulators option"
summary_table_row
"DL Simulator - Release 15"
./archives/phy_sim/dlsim.Rel15.txt
"Built target dlsim"
./phy_sim_row1.html
summary_table_row
"UL Simulator - Release 15"
./archives/phy_sim/ulsim.Rel15.txt
"Built target ulsim"
./phy_sim_row2.html
summary_table_row
"Coding - Release 15"
./archives/phy_sim/coding.Rel15.txt
"Built target coding"
./phy_sim_row3.html
if
[
-f
./archives/phy_sim/ldpctest.Rel15.txt
]
then
summary_table_row
"LDPC Test - Release 15"
./archives/phy_sim/ldpctest.Rel15.txt
"Built target ldpctest"
./phy_sim_row4.html
fi
if
[
-f
./archives/phy_sim/polartest.Rel15.txt
]
then
summary_table_row
"Polar Test - Release 15"
./archives/phy_sim/polartest.Rel15.txt
"Built target polartest"
./phy_sim_row5.html
fi
if
[
-f
./archives/phy_sim/nr_pbchsim.Rel15.txt
]
then
summary_table_row
"PBCH Test - Release 15"
./archives/phy_sim/nr_pbchsim.Rel15.txt
"Built target nr_pbchsim"
./phy_sim_row6.html
fi
summary_table_footer
if
[
-f
archives/gnb_usrp/nr-softmodem.Rel15.txt
]
then
summary_table_header
"OAI Build gNB -- USRP option"
summary_table_row
"LTE SoftModem - Release 15"
./archives/gnb_usrp/nr-softmodem.Rel15.txt
"Built target nr-softmodem"
./gnb_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/gnb_usrp/coding.Rel15.txt
"Built target coding"
./gnb_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/gnb_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./gnb_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/gnb_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./gnb_usrp_row4.html
echo
" <h2>Ubuntu 16.04 LTS -- Summary</h2>"
>>
./build_results.html
sca_summary_table_header
"OAI Static Code Analysis with CPPCHECK"
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Uninitialized variable"
uninitvar
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Uninitialized struct member"
uninitStructMember
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Memory leak"
memleak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Memory is freed twice"
doubleFree
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Resource leak"
resourceLeak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Possible null pointer dereference"
nullPointer
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Array access out of bounds"
arrayIndexOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Buffer is accessed out of bounds"
bufferAccessOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml
"Expression depends on order of evaluation of side effects"
unknownEvaluationOrder
sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
summary_table_header
"OAI Build eNB -- USRP option"
summary_table_row
"LTE SoftModem - Release 15"
./archives/enb_usrp/lte-softmodem.Rel15.txt
"Built target lte-softmodem"
./enb_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/enb_usrp/coding.Rel15.txt
"Built target coding"
./enb_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/enb_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./enb_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/enb_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_usrp_row4.html
summary_table_footer
fi
if
[
-f
archives/nrue_usrp/nr-uesoftmodem.Rel15.txt
]
then
summary_table_header
"OAI Build 5G NR UE -- USRP option"
summary_table_row
"UE SoftModem - Release 15"
./archives/nrue_usrp/nr-uesoftmodem.Rel15.txt
"Built target nr-uesoftmodem"
./nrue_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/nrue_usrp/coding.Rel15.txt
"Built target coding"
./nrue_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/nrue_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./nrue_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/nrue_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./nrue_usrp_row4.html
summary_table_header
"OAI Build basic simulator option"
summary_table_row
"Basic Simulator eNb - Release 15"
./archives/basic_sim/basic_simulator_enb.txt
"Built target lte-softmodem"
./basic_sim_row1.html
summary_table_row
"Basic Simulator UE - Release 15"
./archives/basic_sim/basic_simulator_ue.txt
"Built target lte-uesoftmodem"
./basic_sim_row2.html
summary_table_row
"Conf 2 UE data - Release 15"
./archives/basic_sim/conf2uedata.Rel15.txt
"Built target conf2uedata"
./basic_sim_row3.html
summary_table_footer
fi
summary_table_header
"OAI Build eNB -- ETHERNET transport option"
summary_table_row
"LTE SoftModem w/o S1 - Release 15"
./archives/enb_eth/lte-softmodem-nos1.Rel15.txt
"Built target lte-softmodem"
./enb_eth_row1.html
summary_table_row
"Coding - Release 15"
./archives/enb_eth/coding.Rel15.txt
"Built target coding"
./enb_eth_row2.html
summary_table_row
"OAI ETHERNET transport - Release 15"
./archives/enb_eth/oai_eth_transpro.Rel15.txt
"Built target oai_eth_transpro"
./enb_eth_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/enb_eth/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_eth_row4.html
summary_table_row
"RB Tools - Release 15"
./archives/enb_eth/rb_tool.Rel15.txt
"Built target rb_tool"
./enb_eth_row5.html
summary_table_row
"NAS Mesh - Release 15"
./archives/enb_eth/nasmesh.Rel15.txt
"Built target nasmesh"
./enb_eth_row6.html
summary_table_footer
summary_table_header
"OAI Build UE -- ETHERNET transport option"
summary_table_row
"LTE UE SoftModem w/o S1 - Release 15"
./archives/ue_eth/lte-uesoftmodem-nos1.Rel15.txt
"Built target lte-uesoftmodem"
./ue_eth_row1.html
summary_table_row
"Coding - Release 15"
./archives/ue_eth/coding.Rel15.txt
"Built target coding"
./ue_eth_row2.html
summary_table_row
"OAI ETHERNET transport - Release 15"
./archives/ue_eth/oai_eth_transpro.Rel15.txt
"Built target oai_eth_transpro"
./ue_eth_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/ue_eth/params_libconfig.Rel15.txt
"Built target params_libconfig"
./ue_eth_row4.html
summary_table_row
"RB Tools - Release 15"
./archives/ue_eth/rb_tool.Rel15.txt
"Built target rb_tool"
./ue_eth_row5.html
summary_table_row
"NAS Mesh - Release 15"
./archives/ue_eth/nasmesh.Rel15.txt
"Built target nasmesh"
./ue_eth_row6.html
summary_table_footer
echo
" <h2>Red Hat (CentOS Linux release 7.4.1708) -- Summary</h2>"
>>
./build_results.html
summary_table_header
"Red Hat -- OAI Build eNB -- USRP option"
summary_table_row
"LTE SoftModem - Release 15"
./archives/red_hat/lte-softmodem.Rel15.txt
"Built target lte-softmodem"
./enb_usrp_rh_row1.html
summary_table_row
"Coding - Release 15"
./archives/red_hat/coding.Rel15.txt
"Built target coding"
./enb_usrp_rh_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/red_hat/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./enb_usrp_rh_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/red_hat/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_usrp_rh_row4.html
summary_table_footer
echo
" <h3>Details</h3>"
>>
./build_results.html
for
DETAILS_TABLE
in
`
ls
./enb_usrp_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./basic_sim_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./phy_sim_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./gnb_usrp_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./nrue_usrp_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./enb_eth_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./ue_eth_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./enb_usrp_rh_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
rm
-f
./enb_usrp_row
*
.html ./basic_sim_row
*
.html ./phy_sim_row
*
.html ./enb_eth_row
*
.html ./ue_eth_row
*
.html ./enb_usrp_rh_row
*
.html
echo
"</body>"
>>
./build_results.html
echo
"</html>"
>>
./build_results.html
exit
0
summary_table_header
"OAI Build Physical simulators option"
summary_table_row
"DL Simulator - Release 15"
./archives/phy_sim/dlsim.Rel15.txt
"Built target dlsim"
./phy_sim_row1.html
summary_table_row
"UL Simulator - Release 15"
./archives/phy_sim/ulsim.Rel15.txt
"Built target ulsim"
./phy_sim_row2.html
summary_table_row
"Coding - Release 15"
./archives/phy_sim/coding.Rel15.txt
"Built target coding"
./phy_sim_row3.html
if
[
-f
./archives/phy_sim/ldpctest.Rel15.txt
]
then
summary_table_row
"LDPC Test - Release 15"
./archives/phy_sim/ldpctest.Rel15.txt
"Built target ldpctest"
./phy_sim_row4.html
fi
if
[
-f
./archives/phy_sim/polartest.Rel15.txt
]
then
summary_table_row
"Polar Test - Release 15"
./archives/phy_sim/polartest.Rel15.txt
"Built target polartest"
./phy_sim_row5.html
fi
if
[
-f
./archives/phy_sim/nr_pbchsim.Rel15.txt
]
then
summary_table_row
"PBCH Test - Release 15"
./archives/phy_sim/nr_pbchsim.Rel15.txt
"Built target nr_pbchsim"
./phy_sim_row6.html
fi
summary_table_footer
if
[
-f
archives/gnb_usrp/nr-softmodem.Rel15.txt
]
then
summary_table_header
"OAI Build gNB -- USRP option"
summary_table_row
"LTE SoftModem - Release 15"
./archives/gnb_usrp/nr-softmodem.Rel15.txt
"Built target nr-softmodem"
./gnb_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/gnb_usrp/coding.Rel15.txt
"Built target coding"
./gnb_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/gnb_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./gnb_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/gnb_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./gnb_usrp_row4.html
summary_table_footer
fi
if
[
-f
archives/nrue_usrp/nr-uesoftmodem.Rel15.txt
]
then
summary_table_header
"OAI Build 5G NR UE -- USRP option"
summary_table_row
"UE SoftModem - Release 15"
./archives/nrue_usrp/nr-uesoftmodem.Rel15.txt
"Built target nr-uesoftmodem"
./nrue_usrp_row1.html
summary_table_row
"Coding - Release 15"
./archives/nrue_usrp/coding.Rel15.txt
"Built target coding"
./nrue_usrp_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/nrue_usrp/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./nrue_usrp_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/nrue_usrp/params_libconfig.Rel15.txt
"Built target params_libconfig"
./nrue_usrp_row4.html
summary_table_footer
fi
summary_table_header
"OAI Build eNB -- ETHERNET transport option"
summary_table_row
"LTE SoftModem w/o S1 - Release 15"
./archives/enb_eth/lte-softmodem-nos1.Rel15.txt
"Built target lte-softmodem"
./enb_eth_row1.html
summary_table_row
"Coding - Release 15"
./archives/enb_eth/coding.Rel15.txt
"Built target coding"
./enb_eth_row2.html
summary_table_row
"OAI ETHERNET transport - Release 15"
./archives/enb_eth/oai_eth_transpro.Rel15.txt
"Built target oai_eth_transpro"
./enb_eth_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/enb_eth/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_eth_row4.html
summary_table_row
"RB Tools - Release 15"
./archives/enb_eth/rb_tool.Rel15.txt
"Built target rb_tool"
./enb_eth_row5.html
summary_table_row
"NAS Mesh - Release 15"
./archives/enb_eth/nasmesh.Rel15.txt
"Built target nasmesh"
./enb_eth_row6.html
summary_table_footer
summary_table_header
"OAI Build UE -- ETHERNET transport option"
summary_table_row
"LTE UE SoftModem w/o S1 - Release 15"
./archives/ue_eth/lte-uesoftmodem-nos1.Rel15.txt
"Built target lte-uesoftmodem"
./ue_eth_row1.html
summary_table_row
"Coding - Release 15"
./archives/ue_eth/coding.Rel15.txt
"Built target coding"
./ue_eth_row2.html
summary_table_row
"OAI ETHERNET transport - Release 15"
./archives/ue_eth/oai_eth_transpro.Rel15.txt
"Built target oai_eth_transpro"
./ue_eth_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/ue_eth/params_libconfig.Rel15.txt
"Built target params_libconfig"
./ue_eth_row4.html
summary_table_row
"RB Tools - Release 15"
./archives/ue_eth/rb_tool.Rel15.txt
"Built target rb_tool"
./ue_eth_row5.html
summary_table_row
"NAS Mesh - Release 15"
./archives/ue_eth/nasmesh.Rel15.txt
"Built target nasmesh"
./ue_eth_row6.html
summary_table_footer
if
[
-e
./archives/red_hat
]
then
echo
" <h2>Red Hat (CentOS Linux release 7.4.1708) -- Summary</h2>"
>>
./build_results.html
summary_table_header
"Red Hat -- OAI Build eNB -- USRP option"
summary_table_row
"LTE SoftModem - Release 15"
./archives/red_hat/lte-softmodem.Rel15.txt
"Built target lte-softmodem"
./enb_usrp_rh_row1.html
summary_table_row
"Coding - Release 15"
./archives/red_hat/coding.Rel15.txt
"Built target coding"
./enb_usrp_rh_row2.html
summary_table_row
"OAI USRP device if - Release 15"
./archives/red_hat/oai_usrpdevif.Rel15.txt
"Built target oai_usrpdevif"
./enb_usrp_rh_row3.html
summary_table_row
"Parameters Lib Config - Release 15"
./archives/red_hat/params_libconfig.Rel15.txt
"Built target params_libconfig"
./enb_usrp_rh_row4.html
summary_table_footer
fi
echo
" <h3>Details</h3>"
>>
./build_results.html
for
DETAILS_TABLE
in
`
ls
./enb_usrp_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./basic_sim_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./phy_sim_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./gnb_usrp_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./nrue_usrp_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./enb_eth_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
for
DETAILS_TABLE
in
`
ls
./ue_eth_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
if
[
-e
./archives/red_hat
]
then
for
DETAILS_TABLE
in
`
ls
./enb_usrp_rh_row
*
.html
`
do
cat
$DETAILS_TABLE
>>
./build_results.html
done
fi
rm
-f
./
*
_row
*
.html
echo
"</body>"
>>
./build_results.html
echo
"</html>"
>>
./build_results.html
}
ci-scripts/reportTestLocally.sh
View file @
2ff7bfc4
...
...
@@ -20,14 +20,13 @@
# * contact@openairinterface.org
# */
function
usage
{
echo
"OAI
Test Report
script"
function
report_test_
usage
{
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
"Usage:"
echo
"------"
echo
""
echo
" reportTestLocally.sh [OPTIONS]"
echo
" oai-ci-vm-tool report-test [OPTIONS]"
echo
""
echo
"Options:"
echo
"--------"
...
...
@@ -47,6 +46,9 @@ function usage {
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --trigger merge-request OR -mr"
echo
" --trigger push OR -pu"
echo
" Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
...
...
@@ -78,513 +80,375 @@ function usage {
echo
""
}
function
trigger_usage
{
echo
"OAI Test Report script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
" --trigger merge-request OR -mr"
echo
" --trigger push OR -pu"
echo
" Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
echo
""
}
jb_checker
=
0
mr_checker
=
0
pu_checker
=
0
MR_TRIG
=
0
PU_TRIG
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
function
report_test
{
echo
"############################################################"
echo
"OAI CI VM script"
echo
"############################################################"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-gu
|
--git-url
)
GIT_URL
=
"
$2
"
let
"jb_checker|=0x1"
shift
shift
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
let
"jb_checker|=0x2"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
let
"jb_checker|=0x4"
shift
shift
;;
--trigger
)
TRIG
=
"
$2
"
case
$TRIG
in
merge-request
)
MR_TRIG
=
1
;;
push
)
PU_TRIG
=
1
;;
*
)
echo
""
echo
"Syntax Error: Invalid Trigger option ->
$TRIG
"
echo
""
trigger_usage
exit
;;
esac
let
"jb_checker|=0x8"
shift
shift
;;
-mr
)
MR_TRIG
=
1
let
"jb_checker|=0x8"
shift
;;
-pu
)
PU_TRIG
=
1
let
"jb_checker|=0x8"
shift
;;
-sb
|
--src-branch
)
SOURCE_BRANCH
=
"
$2
"
let
"mr_checker|=0x1"
shift
shift
;;
-sc
|
--src-commit
)
SOURCE_COMMIT_ID
=
"
$2
"
let
"mr_checker|=0x2"
shift
shift
;;
-tb
|
--target-branch
)
TARGET_BRANCH
=
"
$2
"
let
"mr_checker|=0x4"
shift
shift
;;
-tc
|
--target-commit
)
TARGET_COMMIT_ID
=
"
$2
"
let
"mr_checker|=0x8"
shift
shift
;;
-br
|
--branch
)
SOURCE_BRANCH
=
"
$2
"
let
"pu_checker|=0x1"
shift
shift
;;
-co
|
--commit
)
SOURCE_COMMIT_ID
=
"
$2
"
let
"pu_checker|=0x2"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
;;
esac
done
if
[
$jb_checker
-ne
15
]
then
echo
""
echo
"Syntax Error: missing job information."
# TODO : list missing info
echo
""
exit
1
fi
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
if
[
$PU_TRIG
-eq
1
]
&&
[
$MR_TRIG
-eq
1
]
then
echo
""
echo
"Syntax Error: trigger action incoherent."
echo
""
trigger_usage
exit
1
fi
if
[
$PU_TRIG
-eq
1
]
then
if
[
$pu_checker
-ne
3
]
then
echo
""
echo
"Syntax Error: missing push information."
# TODO : list missing info
echo
""
exit
1
fi
fi
cd
${
JENKINS_WKSP
}
if
[
$MR_TRIG
-eq
1
]
then
if
[
$mr_checker
-ne
15
]
then
echo
""
echo
"Syntax Error: missing merge-request information."
# TODO : list missing info
echo
""
exit
1
fi
fi
echo
"<!DOCTYPE html>"
>
./test_simulator_results.html
echo
"<html class=
\"
no-js
\"
lang=
\"
en-US
\"
>"
>>
./test_simulator_results.html
echo
"<head>"
>>
./test_simulator_results.html
echo
" <title>Simulator Results for
$JOB_NAME
job build #
$BUILD_ID
</title>"
>>
./test_simulator_results.html
echo
" <base href =
\"
http://www.openairinterface.org/
\"
/>"
>>
./test_simulator_results.html
echo
"</head>"
>>
./test_simulator_results.html
echo
"<body>"
>>
./test_simulator_results.html
echo
" <table style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <tr style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <a href=
\"
http://www.openairinterface.org/
\"
>"
>>
./test_simulator_results.html
echo
" <img src=
\"
/wp-content/uploads/2016/03/cropped-oai_final_logo2.png
\"
alt=
\"\"
border=
\"
none
\"
height=50 width=150>"
>>
./test_simulator_results.html
echo
" </img>"
>>
./test_simulator_results.html
echo
" </a>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none; vertical-align: center;
\"
>"
>>
./test_simulator_results.html
echo
" <b><font size =
\"
6
\"
>Job Summary -- Job:
$JOB_NAME
-- Build-ID:
$BUILD_ID
</font></b>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" </table>"
>>
./test_simulator_results.html
echo
" <br>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Build Start Time (UTC)</td>"
>>
./test_simulator_results.html
echo
" <td>TEMPLATE_BUILD_TIME</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>GIT Repository</td>"
>>
./test_simulator_results.html
echo
" <td><a href=
\"
$GIT_URL
\"
>
$GIT_URL
</a></td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Job Trigger</td>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td>Push Event</td>"
>>
./test_simulator_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td>Merge-Request</td>"
>>
./test_simulator_results.html
;
fi
echo
" </tr>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Branch</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
fi
if
[
$MR_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Branch</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
"<!DOCTYPE html>"
>
./test_simulator_results.html
echo
"<html class=
\"
no-js
\"
lang=
\"
en-US
\"
>"
>>
./test_simulator_results.html
echo
"<head>"
>>
./test_simulator_results.html
echo
" <title>Simulator Results for
$JOB_NAME
job build #
$BUILD_ID
</title>"
>>
./test_simulator_results.html
echo
" <base href =
\"
http://www.openairinterface.org/
\"
/>"
>>
./test_simulator_results.html
echo
"</head>"
>>
./test_simulator_results.html
echo
"<body>"
>>
./test_simulator_results.html
echo
" <table style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <tr style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none;
\"
>"
>>
./test_simulator_results.html
echo
" <a href=
\"
http://www.openairinterface.org/
\"
>"
>>
./test_simulator_results.html
echo
" <img src=
\"
/wp-content/uploads/2016/03/cropped-oai_final_logo2.png
\"
alt=
\"\"
border=
\"
none
\"
height=50 width=150>"
>>
./test_simulator_results.html
echo
" </img>"
>>
./test_simulator_results.html
echo
" </a>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
echo
" <td style=
\"
border-collapse: collapse; border: none; vertical-align: center;
\"
>"
>>
./test_simulator_results.html
echo
" <b><font size =
\"
6
\"
>Job Summary -- Job:
$JOB_NAME
-- Build-ID:
$BUILD_ID
</font></b>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" </table>"
>>
./test_simulator_results.html
echo
" <br>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
Source Commit ID
</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
Build Start Time (UTC)
</td>"
>>
./test_simulator_results.html
echo
" <td>
TEMPLATE_BUILD_TIME
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
Target Branch
</td>"
>>
./test_simulator_results.html
echo
" <td>
$TARGET_BRANCH
</td>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>
GIT Repository
</td>"
>>
./test_simulator_results.html
echo
" <td>
<a href=
\"
$GIT_URL
\"
>
$GIT_URL
</a>
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td>
$TARGET_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Job Trigger</td>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
;
then
echo
" <td>Push Event</td>"
>>
./test_simulator_results.html
;
fi
if
[
$MR_TRIG
-eq
1
]
;
then
echo
" <td>Merge-Request</td>"
>>
./test_simulator_results.html
;
fi
echo
" </tr>"
>>
./test_simulator_results.html
fi
echo
" </table>"
>>
./test_simulator_results.html
echo
" <h2>Test Summary</h2>"
>>
./test_simulator_results.html
if
[
$PU_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Branch</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
fi
if
[
$MR_TRIG
-eq
1
]
then
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Branch</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_BRANCH
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Source Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td>
$SOURCE_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Branch</td>"
>>
./test_simulator_results.html
echo
" <td>
$TARGET_BRANCH
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td bgcolor =
\"
lightcyan
\"
>Target Commit ID</td>"
>>
./test_simulator_results.html
echo
" <td>
$TARGET_COMMIT_ID
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
fi
echo
" </table>"
>>
./test_simulator_results.html
echo
" <h2>Test Summary</h2>"
>>
./test_simulator_results.html
ARCHIVES_LOC
=
archives/basic_sim/test
if
[
-d
$ARCHIVES_LOC
]
then
echo
" <h3>Basic Simulator Check</h3>"
>>
./test_simulator_results.html
ARCHIVES_LOC
=
archives/basic_sim/test
if
[
-d
$ARCHIVES_LOC
]
then
echo
" <h3>Basic Simulator Check</h3>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <tr bgcolor =
\"
#33CCFF
\"
>"
>>
./test_simulator_results.html
echo
" <th>Log File Name</th>"
>>
./test_simulator_results.html
echo
" <th>Command</th>"
>>
./test_simulator_results.html
echo
" <th>Status</th>"
>>
./test_simulator_results.html
echo
" <th>Statistics</th>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <tr bgcolor =
\"
#33CCFF
\"
>"
>>
./test_simulator_results.html
echo
" <th>Log File Name</th>"
>>
./test_simulator_results.html
echo
" <th>Command</th>"
>>
./test_simulator_results.html
echo
" <th>Status</th>"
>>
./test_simulator_results.html
echo
" <th>Statistics</th>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
TRANS_MODES
=(
"fdd"
"tdd"
)
BW_CASES
=(
05 10 20
)
for
TMODE
in
${
TRANS_MODES
[@]
}
do
for
BW
in
${
BW_CASES
[@]
}
TRANS_MODES
=(
"fdd"
"tdd"
)
BW_CASES
=(
05 10 20
)
for
TMODE
in
${
TRANS_MODES
[@]
}
do
ENB_LOG
=
$ARCHIVES_LOC
/
${
TMODE
}
_
${
BW
}
MHz_enb.log
UE_LOG
=
`
echo
$ENB_LOG
|
sed
-e
"s#enb#ue#"
`
if
[
-f
$ENB_LOG
]
&&
[
-f
$UE_LOG
]
then
NAME_ENB
=
`
echo
$ENB_LOG
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
NAME_UE
=
`
echo
$UE_LOG
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td>
$NAME_ENB
---
$NAME_UE
</td>"
>>
./test_simulator_results.html
echo
" <td>N/A</td>"
>>
./test_simulator_results.html
NB_ENB_GOT_SYNC
=
`
egrep
-c
"got sync"
$ENB_LOG
`
NB_UE_GOT_SYNC
=
`
egrep
-c
"got sync"
$UE_LOG
`
NB_ENB_SYNCED_WITH_UE
=
`
egrep
-c
"got UE capabilities for UE"
$ENB_LOG
`
if
[
$NB_ENB_GOT_SYNC
-eq
1
]
&&
[
$NB_UE_GOT_SYNC
-eq
2
]
&&
[
$NB_ENB_SYNCED_WITH_UE
-eq
1
]
then
echo
" <td bgcolor =
\"
green
\"
>OK</td>"
>>
./test_simulator_results.html
else
echo
" <td bgcolor =
\"
red
\"
>KO</td>"
>>
./test_simulator_results.html
fi
echo
" <td><pre>"
>>
./test_simulator_results.html
if
[
$NB_ENB_GOT_SYNC
-eq
1
]
then
echo
"<font color =
\"
blue
\"
>- eNB --> got sync</font>"
>>
./test_simulator_results.html
else
echo
"<font color =
\"
red
\"
><b>- eNB NEVER got sync</b></font>"
>>
./test_simulator_results.html
fi
if
[
$NB_UE_GOT_SYNC
-eq
2
]
then
echo
"<font color =
\"
blue
\"
>- UE --> got sync</font>"
>>
./test_simulator_results.html
else
echo
"<font color =
\"
red
\"
><b>- UE NEVER got sync</b></font>"
>>
./test_simulator_results.html
fi
if
[
$NB_ENB_SYNCED_WITH_UE
-eq
1
]
then
echo
"<font color =
\"
blue
\"
>- UE attached to eNB</font>"
>>
./test_simulator_results.html
else
echo
"<font color =
\"
red
\"
><b>- UE NEVER attached to eNB</b></font>"
>>
./test_simulator_results.html
fi
NB_SEGFAULT_ENB
=
`
egrep
-i
-c
"Segmentation Fault"
$ENB_LOG
`
if
[
$NB_SEGFAULT_ENB
-ne
0
]
then
echo
"<font color =
\"
red
\"
><b>- eNB --> Segmentation Fault</b></font>"
>>
./test_simulator_results.html
fi
NB_SEGFAULT_UE
=
`
egrep
-i
-c
"Segmentation Fault"
$UE_LOG
`
if
[
$NB_SEGFAULT_UE
-ne
0
]
then
echo
"<font color =
\"
red
\"
><b>- UE --> Segmentation Fault</b></font>"
>>
./test_simulator_results.html
fi
NB_ASSERTION_ENB
=
`
egrep
-i
-c
"Assertion"
$ENB_LOG
`
if
[
$NB_ASSERTION_ENB
-ne
0
]
then
echo
"<font color =
\"
red
\"
><b>- eNB --> Assertion</b></font>"
>>
./test_simulator_results.html
awk
'BEGIN{assertion=10}{if(assertion < 3){print " " $0; assertion++};if ($0 ~/Assertion/){print " " $0;assertion=1}}END{}'
$ENB_LOG
>>
./test_simulator_results.html
fi
NB_ASSERTION_UE
=
`
egrep
-i
-c
"Assertion"
$UE_LOG
`
if
[
$NB_ASSERTION_UE
-ne
0
]
then
echo
"<font color =
\"
red
\"
><b>- eNB --> Assertion</b></font>"
>>
./test_simulator_results.html
awk
'BEGIN{assertion=10}{if(assertion < 3){print " " $0; assertion++};if ($0 ~/Assertion/){print " " $0;assertion=1}}END{}'
$UE_LOG
>>
./test_simulator_results.html
fi
echo
" </pre></td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
fi
PING_CASE
=
$ARCHIVES_LOC
/
${
TMODE
}
_
${
BW
}
MHz_ping_ue.txt
if
[
-f
$PING_CASE
]
then
echo
" <tr>"
>>
./test_simulator_results.html
NAME
=
`
echo
$PING_CASE
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
echo
" <td>
$NAME
</td>"
>>
./test_simulator_results.html
CMD
=
`
egrep
"COMMAND IS"
$PING_CASE
|
sed
-e
"s#COMMAND IS: ##"
`
echo
" <td>
$CMD
</td>"
>>
./test_simulator_results.html
FILE_COMPLETE
=
`
egrep
-c
"ping statistics"
$PING_CASE
`
if
[
$FILE_COMPLETE
-eq
0
]
for
BW
in
${
BW_CASES
[@]
}
do
ENB_LOG
=
$ARCHIVES_LOC
/
${
TMODE
}
_
${
BW
}
MHz_enb.log
UE_LOG
=
`
echo
$ENB_LOG
|
sed
-e
"s#enb#ue#"
`
if
[
-f
$ENB_LOG
]
&&
[
-f
$UE_LOG
]
then
echo
" <td bgcolor =
\"
red
\"
>KO</td>"
>>
./test_simulator_results.html
NAME_ENB
=
`
echo
$ENB_LOG
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
NAME_UE
=
`
echo
$UE_LOG
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td>
$NAME_ENB
---
$NAME_UE
</td>"
>>
./test_simulator_results.html
echo
" <td>N/A</td>"
>>
./test_simulator_results.html
else
NB_
TR_PACKETS
=
`
egrep
"packets transmitted"
$PING_CASE
|
sed
-e
"s# packets transmitted.*##"
`
NB_
RC_PACKETS
=
`
egrep
"packets transmitted"
$PING_CASE
|
sed
-e
"s#^.*packets transmitted, ##"
-e
"s# received,.*##"
`
if
[
$NB_
TR_PACKETS
-eq
$NB_RC_PACKETS
]
NB_ENB_GOT_SYNC
=
`
egrep
-c
"got sync"
$ENB_LOG
`
NB_
UE_GOT_SYNC
=
`
egrep
-c
"got sync"
$UE_LOG
`
NB_
ENB_SYNCED_WITH_UE
=
`
egrep
-c
"got UE capabilities for UE"
$ENB_LOG
`
if
[
$NB_
ENB_GOT_SYNC
-eq
1
]
&&
[
$NB_UE_GOT_SYNC
-eq
2
]
&&
[
$NB_ENB_SYNCED_WITH_UE
-eq
1
]
then
echo
" <td bgcolor =
\"
green
\"
>OK</td>"
>>
./test_simulator_results.html
else
echo
" <td bgcolor =
\"
red
\"
>KO</td>"
>>
./test_simulator_results.html
fi
echo
" <td>"
>>
./test_simulator_results.html
echo
" <pre>"
>>
./test_simulator_results.html
STATS
=
`
egrep
"packets transmitted"
$PING_CASE
|
sed
-e
"s#^.*received, ##"
-e
"s#, time.*##"
-e
"s# packet loss##"
`
echo
"Packet Loss :
$STATS
"
>>
./test_simulator_results.html
RTTMIN
=
`
egrep
"rtt min"
$PING_CASE
|
awk
'{split($4,a,"/"); print a[1] " " $5}'
`
echo
"RTT Minimal :
$RTTMIN
"
>>
./test_simulator_results.html
RTTAVG
=
`
egrep
"rtt min"
$PING_CASE
|
awk
'{split($4,a,"/"); print a[2] " " $5}'
`
echo
"RTT Average :
$RTTAVG
"
>>
./test_simulator_results.html
RTTMAX
=
`
egrep
"rtt min"
$PING_CASE
|
awk
'{split($4,a,"/"); print a[3] " " $5}'
`
echo
"RTT Maximal :
$RTTMAX
"
>>
./test_simulator_results.html
echo
" </pre>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
fi
echo
" </tr>"
>>
./test_simulator_results.html
fi
if
[
-f
$ARCHIVES_LOC
/
${
TMODE
}
_
${
BW
}*
iperf
*
dl
*
client
*
txt
]
then
IPERF_TESTS
=
`
ls
$ARCHIVES_LOC
/
${
TMODE
}
_
${
BW
}*
iperf
*
client
*
txt
`
else
echo
"There are no iperf files"
IPERF_TESTS
=
""
fi
for
IPERF_CASE
in
$IPERF_TESTS
do
echo
" <tr>"
>>
./test_simulator_results.html
NAME
=
`
echo
$IPERF_CASE
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
echo
" <td>
$NAME
</td>"
>>
./test_simulator_results.html
CMD
=
`
egrep
"COMMAND IS"
$IPERF_CASE
|
sed
-e
"s#COMMAND IS: ##"
`
echo
" <td>
$CMD
</td>"
>>
./test_simulator_results.html
REQ_BITRATE
=
`
echo
$CMD
|
sed
-e
"s#^.*-b ##"
-e
"s#-i 1.*##"
`
if
[[
$REQ_BITRATE
=
~ .
*
K.
*
]]
then
REQ_BITRATE
=
`
echo
$REQ_BITRATE
|
sed
-e
"s#K##"
`
FLOAT_REQ_BITRATE
=
`
echo
"
$REQ_BITRATE
* 1000.0"
| bc
-l
`
fi
if
[[
$REQ_BITRATE
=
~ .
*
M.
*
]]
then
REQ_BITRATE
=
`
echo
$REQ_BITRATE
|
sed
-e
"s#M##"
`
FLOAT_REQ_BITRATE
=
`
echo
"
$REQ_BITRATE
* 1000000.0"
| bc
-l
`
echo
" <td><pre>"
>>
./test_simulator_results.html
if
[
$NB_ENB_GOT_SYNC
-eq
1
]
then
echo
"<font color =
\"
blue
\"
>- eNB --> got sync</font>"
>>
./test_simulator_results.html
else
echo
"<font color =
\"
red
\"
><b>- eNB NEVER got sync</b></font>"
>>
./test_simulator_results.html
fi
if
[
$NB_UE_GOT_SYNC
-eq
2
]
then
echo
"<font color =
\"
blue
\"
>- UE --> got sync</font>"
>>
./test_simulator_results.html
else
echo
"<font color =
\"
red
\"
><b>- UE NEVER got sync</b></font>"
>>
./test_simulator_results.html
fi
if
[
$NB_ENB_SYNCED_WITH_UE
-eq
1
]
then
echo
"<font color =
\"
blue
\"
>- UE attached to eNB</font>"
>>
./test_simulator_results.html
else
echo
"<font color =
\"
red
\"
><b>- UE NEVER attached to eNB</b></font>"
>>
./test_simulator_results.html
fi
NB_SEGFAULT_ENB
=
`
egrep
-i
-c
"Segmentation Fault"
$ENB_LOG
`
if
[
$NB_SEGFAULT_ENB
-ne
0
]
then
echo
"<font color =
\"
red
\"
><b>- eNB --> Segmentation Fault</b></font>"
>>
./test_simulator_results.html
fi
NB_SEGFAULT_UE
=
`
egrep
-i
-c
"Segmentation Fault"
$UE_LOG
`
if
[
$NB_SEGFAULT_UE
-ne
0
]
then
echo
"<font color =
\"
red
\"
><b>- UE --> Segmentation Fault</b></font>"
>>
./test_simulator_results.html
fi
NB_ASSERTION_ENB
=
`
egrep
-i
-c
"Assertion"
$ENB_LOG
`
if
[
$NB_ASSERTION_ENB
-ne
0
]
then
echo
"<font color =
\"
red
\"
><b>- eNB --> Assertion</b></font>"
>>
./test_simulator_results.html
awk
'BEGIN{assertion=10}{if(assertion < 3){print " " $0; assertion++};if ($0 ~/Assertion/){print " " $0;assertion=1}}END{}'
$ENB_LOG
>>
./test_simulator_results.html
fi
NB_ASSERTION_UE
=
`
egrep
-i
-c
"Assertion"
$UE_LOG
`
if
[
$NB_ASSERTION_UE
-ne
0
]
then
echo
"<font color =
\"
red
\"
><b>- eNB --> Assertion</b></font>"
>>
./test_simulator_results.html
awk
'BEGIN{assertion=10}{if(assertion < 3){print " " $0; assertion++};if ($0 ~/Assertion/){print " " $0;assertion=1}}END{}'
$UE_LOG
>>
./test_simulator_results.html
fi
echo
" </pre></td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
fi
if
[[
$REQ_BITRATE
=
~ .
*
G.
*
]]
PING_CASE
=
$ARCHIVES_LOC
/
${
TMODE
}
_
${
BW
}
MHz_ping_ue.txt
if
[
-f
$PING_CASE
]
then
REQ_BITRATE
=
`
echo
$REQ_BITRATE
|
sed
-e
"s#G##"
`
FLOAT_REQ_BITRATE
=
`
echo
"
$REQ_BITRATE
* 1000000000.0"
| bc
-l
`
echo
" <tr>"
>>
./test_simulator_results.html
NAME
=
`
echo
$PING_CASE
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
echo
" <td>
$NAME
</td>"
>>
./test_simulator_results.html
CMD
=
`
egrep
"COMMAND IS"
$PING_CASE
|
sed
-e
"s#COMMAND IS: ##"
`
echo
" <td>
$CMD
</td>"
>>
./test_simulator_results.html
FILE_COMPLETE
=
`
egrep
-c
"ping statistics"
$PING_CASE
`
if
[
$FILE_COMPLETE
-eq
0
]
then
echo
" <td bgcolor =
\"
red
\"
>KO</td>"
>>
./test_simulator_results.html
echo
" <td>N/A</td>"
>>
./test_simulator_results.html
else
NB_TR_PACKETS
=
`
egrep
"packets transmitted"
$PING_CASE
|
sed
-e
"s# packets transmitted.*##"
`
NB_RC_PACKETS
=
`
egrep
"packets transmitted"
$PING_CASE
|
sed
-e
"s#^.*packets transmitted, ##"
-e
"s# received,.*##"
`
if
[
$NB_TR_PACKETS
-eq
$NB_RC_PACKETS
]
then
echo
" <td bgcolor =
\"
green
\"
>OK</td>"
>>
./test_simulator_results.html
else
echo
" <td bgcolor =
\"
red
\"
>KO</td>"
>>
./test_simulator_results.html
fi
echo
" <td>"
>>
./test_simulator_results.html
echo
" <pre>"
>>
./test_simulator_results.html
STATS
=
`
egrep
"packets transmitted"
$PING_CASE
|
sed
-e
"s#^.*received, ##"
-e
"s#, time.*##"
-e
"s# packet loss##"
`
echo
"Packet Loss :
$STATS
"
>>
./test_simulator_results.html
RTTMIN
=
`
egrep
"rtt min"
$PING_CASE
|
awk
'{split($4,a,"/"); print a[1] " " $5}'
`
echo
"RTT Minimal :
$RTTMIN
"
>>
./test_simulator_results.html
RTTAVG
=
`
egrep
"rtt min"
$PING_CASE
|
awk
'{split($4,a,"/"); print a[2] " " $5}'
`
echo
"RTT Average :
$RTTAVG
"
>>
./test_simulator_results.html
RTTMAX
=
`
egrep
"rtt min"
$PING_CASE
|
awk
'{split($4,a,"/"); print a[3] " " $5}'
`
echo
"RTT Maximal :
$RTTMAX
"
>>
./test_simulator_results.html
echo
" </pre>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
fi
echo
" </tr>"
>>
./test_simulator_results.html
fi
FILE_COMPLETE
=
`
egrep
-c
"Server Report"
$IPERF_CASE
`
if
[
$FILE_COMPLETE
-eq
0
]
if
[
-f
$ARCHIVES_LOC
/
${
TMODE
}
_
${
BW
}*
iperf
*
dl
*
client
*
txt
]
then
echo
" <td bgcolor =
\"
red
\"
>KO</td>"
>>
./test_simulator_results.html
SERVER_FILE
=
`
echo
$IPERF_CASE
|
sed
-e
"s#client#server#"
`
FLOAT_EFF_BITRATE
=
`
grep
--color
=
never sec
$SERVER_FILE
|
sed
-e
"s#^.*Bytes *##"
-e
"s#sec *.*#sec#"
|
awk
'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; printf "%.0f", br}'
`
EFFECTIVE_BITRATE
=
`
grep
--color
=
never sec
$SERVER_FILE
|
sed
-e
"s#^.*Bytes *##"
-e
"s#sec *.*#sec#"
|
awk
'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; if(br>1000000){printf "%.2f MBits/sec", br/1000000}}'
`
PERF
=
`
echo
"100 *
$FLOAT_EFF_BITRATE
/
$FLOAT_REQ_BITRATE
"
| bc
-l
|
awk
'{printf "%.2f", $0}'
`
JITTER
=
`
grep
--color
=
never sec
$SERVER_FILE
|
sed
-e
"s#^.*/sec *##"
-e
"s# *ms.*##"
|
awk
'BEGIN{s=0;n=0}{n++;s+=$1}END{jitter=s/n; printf "%.3f ms", jitter}'
`
PACKETLOSS_NOSIGN
=
`
grep
--color
=
never sec
$SERVER_FILE
|
sed
-e
"s#^.*(##"
-e
"s#%.*##"
|
awk
'BEGIN{s=0;n=0}{n++;s+=$1}END{per=s/n; printf "%.1f", per}'
`
PACKETLOSS
=
`
echo
"
${
PACKETLOSS_NOSIGN
}
%"
`
IPERF_TESTS
=
`
ls
$ARCHIVES_LOC
/
${
TMODE
}
_
${
BW
}*
iperf
*
client
*
txt
`
else
EFFECTIVE_BITRATE
=
`
tail
-n3
$IPERF_CASE
| egrep
"Mbits/sec"
|
sed
-e
"s#^.*MBytes *##"
-e
"s#sec.*#sec#"
`
if
[[
$EFFECTIVE_BITRATE
=
~ .
*
Kbits/sec.
*
]]
echo
"There are no iperf files"
IPERF_TESTS
=
""
fi
for
IPERF_CASE
in
$IPERF_TESTS
do
echo
" <tr>"
>>
./test_simulator_results.html
NAME
=
`
echo
$IPERF_CASE
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
echo
" <td>
$NAME
</td>"
>>
./test_simulator_results.html
CMD
=
`
egrep
"COMMAND IS"
$IPERF_CASE
|
sed
-e
"s#COMMAND IS: ##"
`
echo
" <td>
$CMD
</td>"
>>
./test_simulator_results.html
REQ_BITRATE
=
`
echo
$CMD
|
sed
-e
"s#^.*-b ##"
-e
"s#-i 1.*##"
`
if
[[
$REQ_BITRATE
=
~ .
*
K.
*
]]
then
EFFECTIVE_BITRATE
=
`
echo
$EFFECTIVE_BITRATE
|
sed
-e
"s# *Kbits/sec.*
##"
`
FLOAT_
EFF_BITRATE
=
`
echo
"
$EFFECTIVE_BITRATE
* 100
0"
| bc
-l
`
REQ_BITRATE
=
`
echo
$REQ_BITRATE
|
sed
-e
"s#K
##"
`
FLOAT_
REQ_BITRATE
=
`
echo
"
$REQ_BITRATE
* 1000.
0"
| bc
-l
`
fi
if
[[
$
EFFECTIVE_BITRATE
=
~ .
*
Mbits/sec
.
*
]]
if
[[
$
REQ_BITRATE
=
~ .
*
M
.
*
]]
then
EFFECTIVE_BITRATE
=
`
echo
$EFFECTIVE_BITRATE
|
sed
-e
"s# *Mbits/sec.*
##"
`
FLOAT_
EFF_BITRATE
=
`
echo
"
$EFFECTIVE_BITRATE
* 100000
0"
| bc
-l
`
REQ_BITRATE
=
`
echo
$REQ_BITRATE
|
sed
-e
"s#M
##"
`
FLOAT_
REQ_BITRATE
=
`
echo
"
$REQ_BITRATE
* 1000000.
0"
| bc
-l
`
fi
if
[[
$
EFFECTIVE_BITRATE
=
~ .
*
Gbits/sec
.
*
]]
if
[[
$
REQ_BITRATE
=
~ .
*
G
.
*
]]
then
EFFECTIVE_BITRATE
=
`
echo
$EFFECTIVE_BITRATE
|
sed
-e
"s# *Gbits/sec.*
##"
`
FLOAT_
EFF_BITRATE
=
`
echo
"
$EFFECTIVE_BITRATE
* 100000000
0"
| bc
-l
`
REQ_BITRATE
=
`
echo
$REQ_BITRATE
|
sed
-e
"s#G
##"
`
FLOAT_
REQ_BITRATE
=
`
echo
"
$REQ_BITRATE
* 1000000000.
0"
| bc
-l
`
fi
PERF
=
`
echo
"100 *
$FLOAT_EFF_BITRATE
/
$FLOAT_REQ_BITRATE
"
| bc
-l
|
awk
'{printf "%.2f", $0}'
`
PERF_INT
=
`
echo
"100 *
$FLOAT_EFF_BITRATE
/
$FLOAT_REQ_BITRATE
"
| bc
-l
|
awk
'{printf "%.0f", $0}'
`
if
[[
$PERF_INT
-lt
90
]]
FILE_COMPLETE
=
`
egrep
-c
"Server Report"
$IPERF_CASE
`
if
[
$FILE_COMPLETE
-eq
0
]
then
echo
" <td bgcolor =
\"
red
\"
>KO</td>"
>>
./test_simulator_results.html
SERVER_FILE
=
`
echo
$IPERF_CASE
|
sed
-e
"s#client#server#"
`
FLOAT_EFF_BITRATE
=
`
grep
--color
=
never sec
$SERVER_FILE
|
sed
-e
"s#^.*Bytes *##"
-e
"s#sec *.*#sec#"
|
awk
'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; printf "%.0f", br}'
`
EFFECTIVE_BITRATE
=
`
grep
--color
=
never sec
$SERVER_FILE
|
sed
-e
"s#^.*Bytes *##"
-e
"s#sec *.*#sec#"
|
awk
'BEGIN{s=0;n=0}{n++;if ($2 ~/Mbits/){a = $1 * 1000000};if ($2 ~/Kbits/){a = $1 * 1000};s=s+a}END{br=s/n; if(br>1000000){printf "%.2f MBits/sec", br/1000000}}'
`
PERF
=
`
echo
"100 *
$FLOAT_EFF_BITRATE
/
$FLOAT_REQ_BITRATE
"
| bc
-l
|
awk
'{printf "%.2f", $0}'
`
JITTER
=
`
grep
--color
=
never sec
$SERVER_FILE
|
sed
-e
"s#^.*/sec *##"
-e
"s# *ms.*##"
|
awk
'BEGIN{s=0;n=0}{n++;s+=$1}END{jitter=s/n; printf "%.3f ms", jitter}'
`
PACKETLOSS_NOSIGN
=
`
grep
--color
=
never sec
$SERVER_FILE
|
sed
-e
"s#^.*(##"
-e
"s#%.*##"
|
awk
'BEGIN{s=0;n=0}{n++;s+=$1}END{per=s/n; printf "%.1f", per}'
`
PACKETLOSS
=
`
echo
"
${
PACKETLOSS_NOSIGN
}
%"
`
else
echo
" <td bgcolor =
\"
green
\"
>OK</td>"
>>
./test_simulator_results.html
EFFECTIVE_BITRATE
=
`
tail
-n3
$IPERF_CASE
| egrep
"Mbits/sec"
|
sed
-e
"s#^.*MBytes *##"
-e
"s#sec.*#sec#"
`
if
[[
$EFFECTIVE_BITRATE
=
~ .
*
Kbits/sec.
*
]]
then
EFFECTIVE_BITRATE
=
`
echo
$EFFECTIVE_BITRATE
|
sed
-e
"s# *Kbits/sec.*##"
`
FLOAT_EFF_BITRATE
=
`
echo
"
$EFFECTIVE_BITRATE
* 1000"
| bc
-l
`
fi
if
[[
$EFFECTIVE_BITRATE
=
~ .
*
Mbits/sec.
*
]]
then
EFFECTIVE_BITRATE
=
`
echo
$EFFECTIVE_BITRATE
|
sed
-e
"s# *Mbits/sec.*##"
`
FLOAT_EFF_BITRATE
=
`
echo
"
$EFFECTIVE_BITRATE
* 1000000"
| bc
-l
`
fi
if
[[
$EFFECTIVE_BITRATE
=
~ .
*
Gbits/sec.
*
]]
then
EFFECTIVE_BITRATE
=
`
echo
$EFFECTIVE_BITRATE
|
sed
-e
"s# *Gbits/sec.*##"
`
FLOAT_EFF_BITRATE
=
`
echo
"
$EFFECTIVE_BITRATE
* 1000000000"
| bc
-l
`
fi
PERF
=
`
echo
"100 *
$FLOAT_EFF_BITRATE
/
$FLOAT_REQ_BITRATE
"
| bc
-l
|
awk
'{printf "%.2f", $0}'
`
PERF_INT
=
`
echo
"100 *
$FLOAT_EFF_BITRATE
/
$FLOAT_REQ_BITRATE
"
| bc
-l
|
awk
'{printf "%.0f", $0}'
`
if
[[
$PERF_INT
-lt
90
]]
then
echo
" <td bgcolor =
\"
red
\"
>KO</td>"
>>
./test_simulator_results.html
else
echo
" <td bgcolor =
\"
green
\"
>OK</td>"
>>
./test_simulator_results.html
fi
EFFECTIVE_BITRATE
=
`
tail
-n3
$IPERF_CASE
| egrep
"Mbits/sec"
|
sed
-e
"s#^.*MBytes *##"
-e
"s#sec.*#sec#"
`
JITTER
=
`
tail
-n3
$IPERF_CASE
| egrep
"Mbits/sec"
|
sed
-e
"s#^.*Mbits/sec *##"
-e
"s#ms.*#ms#"
`
PACKETLOSS
=
`
tail
-n3
$IPERF_CASE
| egrep
"Mbits/sec"
|
sed
-e
"s#^.*(##"
-e
"s#).*##"
`
fi
EFFECTIVE_BITRATE
=
`
tail
-n3
$IPERF_CASE
| egrep
"Mbits/sec"
|
sed
-e
"s#^.*MBytes *##"
-e
"s#sec.*#sec#"
`
JITTER
=
`
tail
-n3
$IPERF_CASE
| egrep
"Mbits/sec"
|
sed
-e
"s#^.*Mbits/sec *##"
-e
"s#ms.*#ms#"
`
PACKETLOSS
=
`
tail
-n3
$IPERF_CASE
| egrep
"Mbits/sec"
|
sed
-e
"s#^.*(##"
-e
"s#).*##"
`
fi
echo
" <td>"
>>
./test_simulator_results.html
echo
" <pre>"
>>
./test_simulator_results.html
echo
"Bitrate :
$EFFECTIVE_BITRATE
"
>>
./test_simulator_results.html
echo
"Bitrate Perf :
$PERF
%"
>>
./test_simulator_results.html
echo
"Jitter :
$JITTER
"
>>
./test_simulator_results.html
echo
"Packet Loss :
$PACKETLOSS
"
>>
./test_simulator_results.html
echo
" </pre>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
echo
" <td>"
>>
./test_simulator_results.html
echo
" <pre>"
>>
./test_simulator_results.html
echo
"Bitrate :
$EFFECTIVE_BITRATE
"
>>
./test_simulator_results.html
echo
"Bitrate Perf :
$PERF
%"
>>
./test_simulator_results.html
echo
"Jitter :
$JITTER
"
>>
./test_simulator_results.html
echo
"Packet Loss :
$PACKETLOSS
"
>>
./test_simulator_results.html
echo
" </pre>"
>>
./test_simulator_results.html
echo
" </td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
done
done
done
done
echo
" </table>"
>>
./test_simulator_results.html
fi
ARCHIVES_LOC
=
archives/phy_sim/test
if
[
-d
$ARCHIVES_LOC
]
then
echo
" <h3>Physical Simulators Check</h3>"
>>
./test_simulator_results.html
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <tr bgcolor =
\"
#33CCFF
\"
>"
>>
./test_simulator_results.html
echo
" <th>Log File Name</th>"
>>
./test_simulator_results.html
echo
" <th>Nb Tests</th>"
>>
./test_simulator_results.html
echo
" <th>Nb Errors</th>"
>>
./test_simulator_results.html
echo
" <th>Nb Failures</th>"
>>
./test_simulator_results.html
echo
" <th>Nb Failures</th>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
XML_TESTS
=
`
ls
$ARCHIVES_LOC
/
*
xml
`
for
XML_FILE
in
$XML_TESTS
do
echo
" <tr>"
>>
./test_simulator_results.html
NAME
=
`
echo
$XML_FILE
|
sed
-e
"s#
$ARCHIVES_LOC
/##"
`
NB_TESTS
=
`
egrep
"testsuite errors"
$XML_FILE
|
sed
-e
"s#^.*tests='##"
-e
"s#' *time=.*##"
`
NB_ERRORS
=
`
egrep
"testsuite errors"
$XML_FILE
|
sed
-e
"s#^.*errors='##"
-e
"s#' *failures=.*##"
`
NB_FAILURES
=
`
egrep
"testsuite errors"
$XML_FILE
|
sed
-e
"s#^.*failures='##"
-e
"s#' *hostname=.*##"
`
NB_SKIPPED
=
`
egrep
"testsuite errors"
$XML_FILE
|
sed
-e
"s#^.*skipped='##"
-e
"s#' *tests=.*##"
`
if
[
$NB_ERRORS
-eq
0
]
&&
[
$NB_FAILURES
-eq
0
]
then
echo
" <td bgcolor =
\"
green
\"
>
$NAME
</td>"
>>
./test_simulator_results.html
else
echo
" <td bgcolor =
\"
red
\"
>
$NAME
</td>"
>>
./test_simulator_results.html
fi
echo
" <td>
$NB_TESTS
</td>"
>>
./test_simulator_results.html
echo
" <td>
$NB_ERRORS
</td>"
>>
./test_simulator_results.html
echo
" <td>
$NB_FAILURES
</td>"
>>
./test_simulator_results.html
echo
" <td>
$NB_SKIPPED
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
done
echo
" </table>"
>>
./test_simulator_results.html
fi
echo
" </table>"
>>
./test_simulator_results.html
ARCHIVES_LOC
=
archives/phy_sim/test
if
[
-d
$ARCHIVES_LOC
]
then
echo
" <h3>Physical Simulators Check</h3>"
>>
./test_simulator_results.html
echo
" <h4>Details</h4>"
>>
./test_simulator_results.html
for
XML_FILE
in
$XML_TESTS
do
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <tr bgcolor =
\"
#33CCFF
\"
>"
>>
./test_simulator_results.html
echo
" <th>Test Name</th>"
>>
./test_simulator_results.html
echo
" <th>Description</th>"
>>
./test_simulator_results.html
echo
" <th>Result</th>"
>>
./test_simulator_results.html
echo
" <th>Time</th>"
>>
./test_simulator_results.html
echo
" <th>Log File Name</th>"
>>
./test_simulator_results.html
echo
" <th>Nb Tests</th>"
>>
./test_simulator_results.html
echo
" <th>Nb Errors</th>"
>>
./test_simulator_results.html
echo
" <th>Nb Failures</th>"
>>
./test_simulator_results.html
echo
" <th>Nb Failures</th>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
TESTCASES_LIST
=
`
sed
-e
"s# #@#g"
$XML_FILE
|
grep
testcase
`
for
TESTCASE
in
$TESTCASES_LIST
XML_TESTS
=
`
ls
$ARCHIVES_LOC
/
*
xml
`
for
XML_FILE
in
$XML_TESTS
do
echo
" <tr>"
>>
./test_simulator_results.html
NAME
=
`
echo
$
TESTCASE
|
sed
-e
"s#^.*name='##"
-e
"s#'@description=.*##"
|
sed
-e
"s#@# #g
"
`
echo
" <td>
$NAME
</td>"
>>
./test_simulator_results.html
DESC
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*description='##"
-e
"s#'@Run_result=.*##"
|
sed
-e
"s#@# #g
"
`
echo
" <td>
$DESC
</td>"
>>
./test_simulator_results.html
RESULT
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*RESULT='##"
-e
"s#'.*##"
|
sed
-e
"s#@# #g
"
`
if
[
[
$RESULT
=
~ .
*
PASS.
*
]
]
NAME
=
`
echo
$
XML_FILE
|
sed
-e
"s#
$ARCHIVES_LOC
/##
"
`
NB_TESTS
=
`
egrep
"testsuite errors"
$XML_FILE
|
sed
-e
"s#^.*tests='##"
-e
"s#' *time=.*##"
`
NB_ERRORS
=
`
egrep
"testsuite errors"
$XML_FILE
|
sed
-e
"s#^.*errors='##"
-e
"s#' *failures=.*##
"
`
NB_FAILURES
=
`
egrep
"testsuite errors"
$XML_FILE
|
sed
-e
"s#^.*failures='##"
-e
"s#' *hostname=.*##"
`
NB_SKIPPED
=
`
egrep
"testsuite errors"
$XML_FILE
|
sed
-e
"s#^.*skipped='##"
-e
"s#' *tests=.*##
"
`
if
[
$NB_ERRORS
-eq
0
]
&&
[
$NB_FAILURES
-eq
0
]
then
echo
"
<td bgcolor =
\"
green
\"
>
$RESULT
</td>"
>>
./test_simulator_results.html
echo
"
<td bgcolor =
\"
green
\"
>
$NAME
</td>"
>>
./test_simulator_results.html
else
echo
"
<td bgcolor =
\"
red
\"
>
$RESULT
</td>"
>>
./test_simulator_results.html
echo
"
<td bgcolor =
\"
red
\"
>
$NAME
</td>"
>>
./test_simulator_results.html
fi
TIME
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*time='##"
-e
"s#'@RESULT=.*##"
|
sed
-e
"s#@# #g"
`
echo
" <td>
$TIME
</td>"
>>
./test_simulator_results.html
echo
" <td>
$NB_TESTS
</td>"
>>
./test_simulator_results.html
echo
" <td>
$NB_ERRORS
</td>"
>>
./test_simulator_results.html
echo
" <td>
$NB_FAILURES
</td>"
>>
./test_simulator_results.html
echo
" <td>
$NB_SKIPPED
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
done
echo
" </table>"
>>
./test_simulator_results.html
done
fi
echo
"</body>"
>>
./test_simulator_results.html
echo
"</html>"
>>
./test_simulator_results.html
echo
" <h4>Details</h4>"
>>
./test_simulator_results.html
for
XML_FILE
in
$XML_TESTS
do
echo
" <table border =
\"
1
\"
>"
>>
./test_simulator_results.html
echo
" <tr bgcolor =
\"
#33CCFF
\"
>"
>>
./test_simulator_results.html
echo
" <th>Test Name</th>"
>>
./test_simulator_results.html
echo
" <th>Description</th>"
>>
./test_simulator_results.html
echo
" <th>Result</th>"
>>
./test_simulator_results.html
echo
" <th>Time</th>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
PREV_SECTION
=
0
PREV_TIME_IN_SECS
=
0
TESTCASES_LIST
=
`
sed
-e
"s# #@#g"
$XML_FILE
|
grep
testcase
`
for
TESTCASE
in
$TESTCASES_LIST
do
NAME
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*name='##"
-e
"s#'@description=.*##"
|
sed
-e
"s#@# #g"
`
SECTION
=
`
echo
$NAME
|
sed
-e
"s#
\.
.*##"
`
if
[
$SECTION
!=
$PREV_SECTION
]
then
echo
" <tr bgcolor =
\"
#8FBC8F
\"
>"
>>
./test_simulator_results.html
echo
" <td align =
\"
center
\"
colspan = 4 >
\"
$SECTION
\"
series</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
PREV_SECTION
=
$SECTION
PREV_TIME_IN_SECS
=
0
fi
DESC
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*description='##"
-e
"s#'@Run_result=.*##"
|
sed
-e
"s#@# #g"
`
RESULT
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*RESULT='##"
-e
"s#'.*##"
|
sed
-e
"s#@# #g"
`
TIME_IN_SECS
=
`
echo
$TESTCASE
|
sed
-e
"s#^.*time='##"
-e
"s#'@RESULT=.*##"
|
sed
-e
"s#@# #g"
-e
"s# s.*##"
`
TIME
=
`
echo
"
$TIME_IN_SECS
-
$PREV_TIME_IN_SECS
"
| bc
-l
|
awk
'{printf "%.2f s", $0}'
`
PREV_TIME_IN_SECS
=
$TIME_IN_SECS
echo
" <tr>"
>>
./test_simulator_results.html
echo
" <td>
$NAME
</td>"
>>
./test_simulator_results.html
echo
" <td>
$DESC
</td>"
>>
./test_simulator_results.html
if
[[
$RESULT
=
~ .
*
PASS.
*
]]
then
echo
" <td bgcolor =
\"
green
\"
>
$RESULT
</td>"
>>
./test_simulator_results.html
else
SPLITTED_LINE
=
`
echo
-e
$TESTCASE
|
sed
-e
"s#@#
\n
#g"
`
NB_RUNS
=
`
echo
-e
"
${
SPLITTED_LINE
}
"
|
grep
-v
Run_result | egrep
-c
"Run_"
`
NB_FAILS
=
`
echo
-e
"
${
SPLITTED_LINE
}
"
|
grep
-v
Run_result | egrep
-c
"=FAIL"
`
echo
" <td bgcolor =
\"
red
\"
>
${
RESULT
}
(
${
NB_FAILS
}
/
${
NB_RUNS
}
)</td>"
>>
./test_simulator_results.html
fi
echo
" <td>
$TIME
</td>"
>>
./test_simulator_results.html
echo
" </tr>"
>>
./test_simulator_results.html
done
echo
" </table>"
>>
./test_simulator_results.html
done
fi
exit
0
echo
"</body>"
>>
./test_simulator_results.html
echo
"</html>"
>>
./test_simulator_results.html
}
ci-scripts/runTestOnVM.sh
View file @
2ff7bfc4
...
...
@@ -20,15 +20,18 @@
# * contact@openairinterface.org
# */
function
usage
{
echo
"OAI
VM Test Run
script"
function
run_test_
usage
{
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
echo
" -- xenial image already synced"
echo
" Default:"
echo
" -- eNB with USRP"
echo
""
echo
"Usage:"
echo
"------"
echo
"
runTestOnVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool test
[OPTIONS]"
echo
""
echo
"Options:"
echo
"--------"
...
...
@@ -41,12 +44,7 @@ function usage {
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
variant_usage
echo
" Specify the variant to build."
echo
""
echo
" --keep-vm-alive OR -k"
...
...
@@ -57,19 +55,6 @@ function usage {
echo
""
}
function
variant_usage
{
echo
"OAI VM Test Run script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
""
}
function
start_basic_sim_enb
{
local
LOC_VM_IP_ADDR
=
$2
local
LOC_EPC_IP_ADDR
=
$3
...
...
@@ -95,6 +80,7 @@ function start_basic_sim_enb {
echo
"echo
\"
ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-
$LOC_CONF_FILE
\"
> ./my-lte-softmodem-run.sh "
>>
$1
echo
"chmod 775 ./my-lte-softmodem-run.sh"
>>
$1
echo
"cat ./my-lte-softmodem-run.sh"
>>
$1
echo
"if [ -e /home/ubuntu/tmp/cmake_targets/log/
$LOC_LOG_FILE
]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/
$LOC_LOG_FILE
; fi"
>>
$1
echo
"sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/enb -o /home/ubuntu/tmp/cmake_targets/log/
$LOC_LOG_FILE
./my-lte-softmodem-run.sh"
>>
$1
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$LOC_VM_IP_ADDR
<
$1
...
...
@@ -112,6 +98,7 @@ function start_basic_sim_ue {
echo
"echo
\"
./lte-uesoftmodem -C
${
LOC_FREQUENCY
}
000000 -r
$LOC_NB_RBS
--ue-rxgain 140
\"
> ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"chmod 775 ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"cat ./my-lte-uesoftmodem-run.sh"
>>
$1
echo
"if [ -e /home/ubuntu/tmp/cmake_targets/log/
$LOC_UE_LOG_FILE
]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/
$LOC_UE_LOG_FILE
; fi"
>>
$1
echo
"sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/ue -o /home/ubuntu/tmp/cmake_targets/log/
$LOC_UE_LOG_FILE
./my-lte-uesoftmodem-run.sh"
>>
$1
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$2
<
$1
...
...
@@ -299,740 +286,619 @@ function terminate_ltebox_epc {
rm
$1
}
if
[
$#
-lt
1
]
||
[
$#
-gt
9
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp/test
KEEP_VM_ALIVE
=
0
RUN_OPTIONS
=
"none"
STATUS
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
shift
shift
;;
-k
|
--keep-vm-alive
)
KEEP_VM_ALIVE
=
1
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
RUN_OPTIONS
=
"complex"
ARCHIVES_LOC
=
basic_sim/test
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
RUN_OPTIONS
=
"./run_exec_autotests.bash -g
\"
01510*
\"
-q -np -b"
ARCHIVES_LOC
=
phy_sim/test
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
RUN_OPTIONS
=
"complex"
ARCHIVES_LOC
=
basic_sim/test
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
RUN_OPTIONS
=
"./run_exec_autotests.bash -g
\"
01510*
\"
-q -np -b"
ARCHIVES_LOC
=
phy_sim/test
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
ARCHIVES_LOC
=
${
JENKINS_WKSP
}
/archives/
${
ARCHIVES_LOC
}
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"############################################################"
echo
"Waiting for VM to be started"
echo
"############################################################"
uvt-kvm
wait
$VM_NAME
--insecure
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
if
[
"
$RUN_OPTIONS
"
==
"none"
]
then
echo
"No run on VM testing for this variant currently"
exit
$STATUS
fi
if
[[
$RUN_OPTIONS
=
~ .
*
run_exec_autotests.
*
]]
then
function
run_test_on_vm
{
echo
"############################################################"
echo
"
Running test script on VM (
$VM_NAME
)
"
echo
"
OAI CI VM script
"
echo
"############################################################"
echo
"echo
\"
sudo apt-get --yes --quiet install bc
\"
"
>
$VM_CMDS
echo
"sudo apt-get update > bc-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install bc >> bc-install.txt 2>&1"
>>
$VM_CMDS
echo
"cd tmp"
>>
$VM_CMDS
echo
"echo
\"
source oaienv
\"
"
>>
$VM_CMDS
echo
"source oaienv"
>>
$VM_CMDS
echo
"echo
\"
cd cmake_targets/autotests
\"
"
>>
$VM_CMDS
echo
"cd cmake_targets/autotests"
>>
$VM_CMDS
echo
"echo
\"
rm -Rf log
\"
"
>>
$VM_CMDS
echo
"rm -Rf log"
>>
$VM_CMDS
echo
"
$RUN_OPTIONS
"
|
sed
-e
's@"@\\"@g'
-e
's@^@echo "@'
-e
's@$@"@'
>>
$VM_CMDS
echo
"
$RUN_OPTIONS
"
>>
$VM_CMDS
echo
"cp /home/ubuntu/bc-install.txt log"
>>
$VM_CMDS
echo
"cd log"
>>
$VM_CMDS
echo
"zip -r -qq tmp.zip *.* 0*"
>>
$VM_CMDS
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"############################################################"
echo
"
Creating a tmp folder to store results and artifacts
"
echo
"
Waiting for VM to be started
"
echo
"############################################################"
uvt-kvm
wait
$VM_NAME
--insecure
if
[
-d
$ARCHIVES_LOC
]
then
rm
-Rf
$ARCHIVES_LOC
fi
mkdir
--parents
$ARCHIVES_LOC
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/autotests/log/tmp.zip
$ARCHIVES_LOC
pushd
$ARCHIVES_LOC
unzip
-qq
-DD
tmp.zip
rm
tmp.zip
if
[
-f
results_autotests.xml
]
if
[
"
$RUN_OPTIONS
"
==
"none"
]
then
FUNCTION
=
`
echo
$VM_NAME
|
sed
-e
"s@
$VM_TEMPLATE
@@"
`
NEW_NAME
=
`
echo
"results_autotests.xml"
|
sed
-e
"s@results_autotests@results_autotests-
$FUNCTION
@"
`
echo
"<?xml version=
\"
1.0
\"
encoding=
\"
UTF-8
\"
?>"
>
$NEW_NAME
echo
"<?xml-stylesheet type=
\"
text/xsl
\"
href=
\"
$FUNCTION
.xsl
\"
?>"
>>
$NEW_NAME
cat
results_autotests.xml
>>
$NEW_NAME
sed
-e
"s@TEMPLATE@
$FUNCTION
@"
$JENKINS_WKSP
/ci-scripts/template.xsl
>
$FUNCTION
.xsl
#mv results_autotests.xml $NEW_NAME
rm
results_autotests.xml
echo
"No run on VM testing for this variant currently"
exit
$STATUS
fi
popd
if
[
$KEEP_VM_ALIVE
-eq
0
]
if
[
[
$RUN_OPTIONS
=
~ .
*
run_exec_autotests.
*
]
]
then
echo
"############################################################"
echo
"
Destroying VM
"
echo
"
Running test script on VM (
$VM_NAME
)
"
echo
"############################################################"
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
fi
rm
-f
$VM_CMDS
echo
"############################################################"
echo
"Checking run status"
echo
"############################################################"
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/results_autotests
*
.xml
`
NB_FOUND_FILES
=
0
NB_RUNS
=
0
NB_FAILURES
=
0
for
FULLFILE
in
$LOG_FILES
do
TESTSUITES
=
`
egrep
"testsuite errors"
$FULLFILE
`
for
TESTSUITE
in
$TESTSUITES
do
if
[[
"
$TESTSUITE
"
==
*
"tests="
*
]]
then
RUNS
=
`
echo
$TESTSUITE
|
awk
'BEGIN{FS="="}{print $2}END{}'
|
sed
-e
"s@'@@g"
`
NB_RUNS
=
$((
NB_RUNS
+
RUNS
))
fi
if
[[
"
$TESTSUITE
"
==
*
"failures="
*
]]
then
FAILS
=
`
echo
$TESTSUITE
|
awk
'BEGIN{FS="="}{print $2}END{}'
|
sed
-e
"s@'@@g"
`
NB_FAILURES
=
$((
NB_FAILURES
+
FAILS
))
fi
done
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
done
echo
"NB_FOUND_FILES =
$NB_FOUND_FILES
"
echo
"NB_RUNS =
$NB_RUNS
"
echo
"NB_FAILURES =
$NB_FAILURES
"
echo
"echo
\"
sudo apt-get --yes --quiet install bc
\"
"
>
$VM_CMDS
echo
"sudo apt-get update > bc-install.txt 2>&1"
>>
$VM_CMDS
echo
"sudo apt-get --yes install bc >> bc-install.txt 2>&1"
>>
$VM_CMDS
echo
"cd tmp"
>>
$VM_CMDS
echo
"echo
\"
source oaienv
\"
"
>>
$VM_CMDS
echo
"source oaienv"
>>
$VM_CMDS
echo
"echo
\"
cd cmake_targets/autotests
\"
"
>>
$VM_CMDS
echo
"cd cmake_targets/autotests"
>>
$VM_CMDS
echo
"echo
\"
rm -Rf log
\"
"
>>
$VM_CMDS
echo
"rm -Rf log"
>>
$VM_CMDS
echo
"
$RUN_OPTIONS
"
|
sed
-e
's@"@\\"@g'
-e
's@^@echo "@'
-e
's@$@"@'
>>
$VM_CMDS
echo
"
$RUN_OPTIONS
"
>>
$VM_CMDS
echo
"cp /home/ubuntu/bc-install.txt log"
>>
$VM_CMDS
echo
"cd log"
>>
$VM_CMDS
echo
"zip -r -qq tmp.zip *.* 0*"
>>
$VM_CMDS
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
if
[
$NB_FOUND_FILES
-eq
0
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_RUNS
-eq
0
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_FAILURES
-ne
0
]
;
then
STATUS
=
-1
;
fi
echo
"############################################################"
echo
"Creating a tmp folder to store results and artifacts"
echo
"############################################################"
fi
if
[
-d
$ARCHIVES_LOC
]
then
rm
-Rf
$ARCHIVES_LOC
fi
mkdir
--parents
$ARCHIVES_LOC
if
[[
"
$RUN_OPTIONS
"
==
"complex"
]]
&&
[[
$VM_NAME
=
~ .
*
-basic-sim
.
*
]]
then
PING_STATUS
=
0
IPERF_STATUS
=
0
if
[
-d
$ARCHIVES_LOC
]
then
rm
-Rf
$ARCHIVES_LOC
fi
mkdir
--parents
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/autotests/log/tmp.zip
$ARCHIVES_LOC
pushd
$ARCHIVES_LOC
unzip
-qq
-DD
tmp.zip
rm
tmp.zip
if
[
-f
results_autotests.xml
]
then
FUNCTION
=
`
echo
$VM_NAME
|
sed
-e
"s@
$VM_TEMPLATE
@@"
`
NEW_NAME
=
`
echo
"results_autotests.xml"
|
sed
-e
"s@results_autotests@results_autotests-
$FUNCTION
@"
`
echo
"<?xml version=
\"
1.0
\"
encoding=
\"
UTF-8
\"
?>"
>
$NEW_NAME
echo
"<?xml-stylesheet type=
\"
text/xsl
\"
href=
\"
$FUNCTION
.xsl
\"
?>"
>>
$NEW_NAME
cat
results_autotests.xml
>>
$NEW_NAME
sed
-e
"s@TEMPLATE@
$FUNCTION
@"
$JENKINS_WKSP
/ci-scripts/template.xsl
>
$FUNCTION
.xsl
#mv results_autotests.xml $NEW_NAME
rm
results_autotests.xml
fi
popd
EPC_VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#basic-sim#epc#"
`
LTEBOX
=
0
if
[
-d
/opt/ltebox-archives/
]
then
# Checking if all ltebox archives are available to run ltebx epc on a brand new VM
if
[
-f
/opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb
]
&&
[
-f
/opt/ltebox-archives/etc-conf.zip
]
&&
[
-f
/opt/ltebox-archives/hss-sim.zip
]
if
[
$KEEP_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"
Test EPC on VM (
$EPC_VM_NAME
) will be using ltebox
"
echo
"
Destroying VM
"
echo
"############################################################"
LTEBOX
=
1
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
fi
fi
# Here we could have other types of EPC detection
rm
-f
$VM_CMDS
# Do we need to start the EPC VM
EPC_VM_CMDS
=
`
echo
$VM_CMDS
|
sed
-e
"s#cmds#epc-cmds#"
`
echo
"EPC_VM_CMD_FILE =
$EPC_VM_CMDS
"
IS_EPC_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$EPC_VM_NAME
`
if
[
$IS_EPC_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"C
reating test EPC VM (
$EPC_VM_NAME
) on Ubuntu Cloud Image base
"
echo
"C
hecking run status
"
echo
"############################################################"
uvt-kvm create
$EPC_VM_NAME
release
=
xenial
--unsafe-caching
fi
uvt-kvm
wait
$EPC_VM_NAME
--insecure
EPC_VM_IP_ADDR
=
`
uvt-kvm ip
$EPC_VM_NAME
`
echo
"
$EPC_VM_NAME
has for IP addr =
$EPC_VM_IP_ADDR
"
scp
-o
StrictHostKeyChecking
=
no /etc/apt/apt.conf.d/01proxy ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/results_autotests
*
.xml
`
NB_FOUND_FILES
=
0
NB_RUNS
=
0
NB_FAILURES
=
0
# ltebox specific actions (install and start)
LTE_BOX_TO_INSTALL
=
1
if
[
$LTEBOX
-eq
1
]
then
echo
"ls -ls /opt/ltebox/tools/start_ltebox"
>
$EPC_VM_CMDS
RESPONSE
=
`
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
<
$EPC_VM_CMDS
`
NB_EXES
=
`
echo
$RESPONSE
|
grep
-c
ltebox
`
if
[
$NB_EXES
-eq
1
]
;
then
LTE_BOX_TO_INSTALL
=
0
;
fi
fi
for
FULLFILE
in
$LOG_FILES
do
TESTSUITES
=
`
egrep
"testsuite errors"
$FULLFILE
`
for
TESTSUITE
in
$TESTSUITES
do
if
[[
"
$TESTSUITE
"
==
*
"tests="
*
]]
then
RUNS
=
`
echo
$TESTSUITE
|
awk
'BEGIN{FS="="}{print $2}END{}'
|
sed
-e
"s@'@@g"
`
NB_RUNS
=
$((
NB_RUNS
+
RUNS
))
fi
if
[[
"
$TESTSUITE
"
==
*
"failures="
*
]]
then
FAILS
=
`
echo
$TESTSUITE
|
awk
'BEGIN{FS="="}{print $2}END{}'
|
sed
-e
"s@'@@g"
`
NB_FAILURES
=
$((
NB_FAILURES
+
FAILS
))
fi
done
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
done
echo
"NB_FOUND_FILES =
$NB_FOUND_FILES
"
echo
"NB_RUNS =
$NB_RUNS
"
echo
"NB_FAILURES =
$NB_FAILURES
"
if
[
$NB_FOUND_FILES
-eq
0
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_RUNS
-eq
0
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_FAILURES
-ne
0
]
;
then
STATUS
=
-1
;
fi
if
[
$LTEBOX
-eq
1
]
&&
[
$LTE_BOX_TO_INSTALL
-eq
1
]
then
echo
"############################################################"
echo
"Copying ltebox archives into EPC VM (
$EPC_VM_NAME
)"
echo
"############################################################"
scp
-o
StrictHostKeyChecking
=
no /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no /opt/ltebox-archives/etc-conf.zip ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no /opt/ltebox-archives/hss-sim.zip ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu
echo
"############################################################"
echo
"Install EPC on EPC VM (
$EPC_VM_NAME
)"
echo
"############################################################"
echo
"sudo cp 01proxy /etc/apt/apt.conf.d/"
>
$EPC_VM_CMDS
echo
"touch /home/ubuntu/.hushlogin"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf
\"
"
>>
$EPC_VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$EPC_VM_CMDS
echo
"sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf >> zip-install.txt 2>&1"
>>
$EPC_VM_CMDS
# Installing HSS
echo
"echo
\"
cd /opt
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo unzip -qq /home/ubuntu/hss-sim.zip
\"
"
>>
$EPC_VM_CMDS
echo
"sudo unzip -qq /home/ubuntu/hss-sim.zip"
>>
$EPC_VM_CMDS
echo
"echo
\"
cd /opt/hss_sim0609
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt/hss_sim0609"
>>
$EPC_VM_CMDS
# Installing ltebox
echo
"echo
\"
cd /home/ubuntu
\"
"
>>
$EPC_VM_CMDS
echo
"cd /home/ubuntu"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb
\"
"
>>
$EPC_VM_CMDS
echo
"sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb >> zip-install.txt 2>&1"
>>
$EPC_VM_CMDS
echo
"echo
\"
cd /opt/ltebox/etc/
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt/ltebox/etc/"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo unzip -qq -o /home/ubuntu/etc-conf.zip
\"
"
>>
$EPC_VM_CMDS
echo
"sudo unzip -qq -o /home/ubuntu/etc-conf.zip"
>>
$EPC_VM_CMDS
echo
"sudo sed -i -e 's#EPC_VM_IP_ADDRESS#
$EPC_VM_IP_ADDR
#' gw.conf"
>>
$EPC_VM_CMDS
echo
"sudo sed -i -e 's#EPC_VM_IP_ADDRESS#
$EPC_VM_IP_ADDR
#' mme.conf"
>>
$EPC_VM_CMDS
fi
# Starting EPC
if
[
$LTEBOX
-eq
1
]
if
[[
"
$RUN_OPTIONS
"
==
"complex"
]]
&&
[[
$VM_NAME
=
~ .
*
-basic-sim
.
*
]]
then
echo
"############################################################"
echo
"Start EPC on EPC VM (
$EPC_VM_NAME
)"
echo
"############################################################"
echo
"echo
\"
cd /opt/hss_sim0609
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt/hss_sim0609"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real
\"
"
>>
$EPC_VM_CMDS
echo
"sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real"
>>
$EPC_VM_CMDS
PING_STATUS
=
0
IPERF_STATUS
=
0
if
[
-d
$ARCHIVES_LOC
]
then
rm
-Rf
$ARCHIVES_LOC
fi
mkdir
--parents
$ARCHIVES_LOC
echo
"echo
\"
cd /opt/ltebox/tools/
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt/ltebox/tools/"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo ./start_ltebox
\"
"
>>
$EPC_VM_CMDS
echo
"nohup sudo ./start_ltebox > /home/ubuntu/ltebox.txt"
>>
$EPC_VM_CMDS
EPC_VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#basic-sim#epc#"
`
LTEBOX
=
0
if
[
-d
/opt/ltebox-archives/
]
then
# Checking if all ltebox archives are available to run ltebx epc on a brand new VM
if
[
-f
/opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb
]
&&
[
-f
/opt/ltebox-archives/etc-conf.zip
]
&&
[
-f
/opt/ltebox-archives/hss-sim.zip
]
then
echo
"############################################################"
echo
"Test EPC on VM (
$EPC_VM_NAME
) will be using ltebox"
echo
"############################################################"
LTEBOX
=
1
fi
fi
# Here we could have other types of EPC detection
# Do we need to start the EPC VM
EPC_VM_CMDS
=
`
echo
$VM_CMDS
|
sed
-e
"s#cmds#epc-cmds#"
`
echo
"EPC_VM_CMD_FILE =
$EPC_VM_CMDS
"
IS_EPC_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$EPC_VM_NAME
`
if
[
$IS_EPC_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"Creating test EPC VM (
$EPC_VM_NAME
) on Ubuntu Cloud Image base"
echo
"############################################################"
uvt-kvm create
$EPC_VM_NAME
release
=
xenial
--unsafe-caching
fi
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
<
$EPC_VM_CMDS
rm
-f
$EPC_VM_CMDS
uvt-kvm
wait
$EPC_VM_NAME
--insecure
EPC_VM_IP_ADDR
=
`
uvt-kvm ip
$EPC_VM_NAME
`
echo
"
$EPC_VM_NAME
has for IP addr =
$EPC_VM_IP_ADDR
"
scp
-o
StrictHostKeyChecking
=
no /etc/apt/apt.conf.d/01proxy ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu
# ltebox specific actions (install and start)
LTE_BOX_TO_INSTALL
=
1
if
[
$LTEBOX
-eq
1
]
then
echo
"ls -ls /opt/ltebox/tools/start_ltebox"
>
$EPC_VM_CMDS
RESPONSE
=
`
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
<
$EPC_VM_CMDS
`
NB_EXES
=
`
echo
$RESPONSE
|
grep
-c
ltebox
`
if
[
$NB_EXES
-eq
1
]
;
then
LTE_BOX_TO_INSTALL
=
0
;
fi
fi
# We may have some adaptation to do
if
[
-f
/opt/ltebox-archives/adapt_ue_sim.txt
]
if
[
$LTEBOX
-eq
1
]
&&
[
$LTE_BOX_TO_INSTALL
-eq
1
]
then
echo
"############################################################"
echo
"Doing some adaptation on UE side"
echo
"Copying ltebox archives into EPC VM (
$EPC_VM_NAME
)"
echo
"############################################################"
scp
-o
StrictHostKeyChecking
=
no /opt/ltebox-archives/ltebox_2.2.70_16_04_amd64.deb ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no /opt/ltebox-archives/etc-conf.zip ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu
scp
-o
StrictHostKeyChecking
=
no /opt/ltebox-archives/hss-sim.zip ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu
echo
"############################################################"
echo
"Install EPC on EPC VM (
$EPC_VM_NAME
)"
echo
"############################################################"
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
< /opt/ltebox-archives/adapt_ue_sim.txt
echo
"sudo cp 01proxy /etc/apt/apt.conf.d/"
>
$EPC_VM_CMDS
echo
"touch /home/ubuntu/.hushlogin"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo apt-get --yes --quiet install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf
\"
"
>>
$EPC_VM_CMDS
echo
"sudo apt-get update > zip-install.txt 2>&1"
>>
$EPC_VM_CMDS
echo
"sudo apt-get --yes install zip openjdk-8-jre libconfuse-dev libreadline-dev liblog4c-dev libgcrypt-dev libsctp-dev python2.7 python2.7-dev daemon iperf >> zip-install.txt 2>&1"
>>
$EPC_VM_CMDS
# Installing HSS
echo
"echo
\"
cd /opt
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo unzip -qq /home/ubuntu/hss-sim.zip
\"
"
>>
$EPC_VM_CMDS
echo
"sudo unzip -qq /home/ubuntu/hss-sim.zip"
>>
$EPC_VM_CMDS
echo
"echo
\"
cd /opt/hss_sim0609
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt/hss_sim0609"
>>
$EPC_VM_CMDS
# Installing ltebox
echo
"echo
\"
cd /home/ubuntu
\"
"
>>
$EPC_VM_CMDS
echo
"cd /home/ubuntu"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb
\"
"
>>
$EPC_VM_CMDS
echo
"sudo dpkg -i ltebox_2.2.70_16_04_amd64.deb >> zip-install.txt 2>&1"
>>
$EPC_VM_CMDS
echo
"echo
\"
cd /opt/ltebox/etc/
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt/ltebox/etc/"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo unzip -qq -o /home/ubuntu/etc-conf.zip
\"
"
>>
$EPC_VM_CMDS
echo
"sudo unzip -qq -o /home/ubuntu/etc-conf.zip"
>>
$EPC_VM_CMDS
echo
"sudo sed -i -e 's#EPC_VM_IP_ADDRESS#
$EPC_VM_IP_ADDR
#' gw.conf"
>>
$EPC_VM_CMDS
echo
"sudo sed -i -e 's#EPC_VM_IP_ADDRESS#
$EPC_VM_IP_ADDR
#' mme.conf"
>>
$EPC_VM_CMDS
fi
i
=
"0"
echo
"ifconfig tun5 | egrep -c
\"
inet addr
\"
"
>
$EPC_VM_CMDS
while
[
$i
-lt
10
]
do
sleep
2
CONNECTED
=
`
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
<
$EPC_VM_CMDS
`
if
[
$CONNECTED
-eq
1
]
# Starting EPC
if
[
$LTEBOX
-eq
1
]
then
echo
"############################################################"
echo
"Start EPC on EPC VM (
$EPC_VM_NAME
)"
echo
"############################################################"
echo
"echo
\"
cd /opt/hss_sim0609
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt/hss_sim0609"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real
\"
"
>>
$EPC_VM_CMDS
echo
"sudo daemon --unsafe --name=simulated_hss --chdir=/opt/hss_sim0609 ./starthss_real"
>>
$EPC_VM_CMDS
echo
"echo
\"
cd /opt/ltebox/tools/
\"
"
>>
$EPC_VM_CMDS
echo
"cd /opt/ltebox/tools/"
>>
$EPC_VM_CMDS
echo
"echo
\"
sudo ./start_ltebox
\"
"
>>
$EPC_VM_CMDS
echo
"nohup sudo ./start_ltebox > /home/ubuntu/ltebox.txt"
>>
$EPC_VM_CMDS
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
<
$EPC_VM_CMDS
rm
-f
$EPC_VM_CMDS
# We may have some adaptation to do
if
[
-f
/opt/ltebox-archives/adapt_ue_sim.txt
]
then
i
=
"100"
else
i
=
$[$i
+1]
echo
"############################################################"
echo
"Doing some adaptation on UE side"
echo
"############################################################"
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
< /opt/ltebox-archives/adapt_ue_sim.txt
fi
done
rm
$EPC_VM_CMDS
if
[
$i
-lt
50
]
i
=
"0"
echo
"ifconfig tun5 | egrep -c
\"
inet addr
\"
"
>
$EPC_VM_CMDS
while
[
$i
-lt
10
]
do
sleep
2
CONNECTED
=
`
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
<
$EPC_VM_CMDS
`
if
[
$CONNECTED
-eq
1
]
then
i
=
"100"
else
i
=
$[$i
+1]
fi
done
rm
$EPC_VM_CMDS
if
[
$i
-lt
50
]
then
echo
"Problem w/ starting ltebox EPC"
exit
-1
fi
fi
# HERE ADD ANY INSTALL ACTIONS FOR ANOTHER EPC
# Retrieve EPC real IP address
if
[
$LTEBOX
-eq
1
]
then
# in our configuration file, we are using pool 5
echo
"ifconfig tun5 | egrep
\"
inet addr
\"
| sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*
\$
##'"
>
$EPC_VM_CMDS
REAL_EPC_IP_ADDR
=
`
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
<
$EPC_VM_CMDS
`
echo
"EPC IP Address is :
$REAL_EPC_IP_ADDR
"
rm
$EPC_VM_CMDS
fi
echo
"############################################################"
echo
"Starting the eNB in FDD-5MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
fdd_05MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
25 lte-fdd-basic-sim.conf
echo
"############################################################"
echo
"Starting the UE in FDD-5MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
fdd_05MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
25 2680
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ starting ltebox EPC"
echo
"Problem w/ eNB and UE not syncing"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
# HERE ADD ANY INSTALL ACTIONS FOR ANOTHER EPC
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
fdd_05MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
# Retrieve EPC real IP address
if
[
$LTEBOX
-eq
1
]
then
# in our configuration file, we are using pool 5
echo
"ifconfig tun5 | egrep
\"
inet addr
\"
| sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*
\$
##'"
>
$EPC_VM_CMDS
REAL_EPC_IP_ADDR
=
`
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
<
$EPC_VM_CMDS
`
echo
"EPC IP Address is :
$REAL_EPC_IP_ADDR
"
rm
$EPC_VM_CMDS
fi
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_05MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
15
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
15
echo
"############################################################"
echo
"Starting the eNB in FDD-5MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
fdd_05MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
25 lte-fdd-basic-sim.conf
echo
"############################################################"
echo
"Iperf UL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_05MHz_iperf_ul
iperf_ul
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
2
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
2
echo
"############################################################"
echo
"Starting the UE in FDD-5MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
fdd_05MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
25 2680
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
sleep
10
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
fdd_05MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
echo
"############################################################"
echo
"Starting the eNB in FDD-10MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
fdd_10MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
50 lte-fdd-basic-sim.conf
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_05MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
15
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
15
echo
"############################################################"
echo
"Starting the UE in FDD-10MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
fdd_10MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
50 2680
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
echo
"############################################################"
echo
"Iperf UL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_05MHz_iperf_ul
iperf_ul
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
2
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
2
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
fdd_10MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
echo
"############################################################"
echo
"Terminate enb/ue simulators
"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
sleep
10
echo
"############################################################"
echo
"Iperf DL
"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_10MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
15
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
15
echo
"############################################################"
echo
"Starting the eNB in FDD-10MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
fdd_10MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
50 lte-fdd-basic-sim.conf
echo
"############################################################"
echo
"Iperf UL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_10MHz_iperf_ul
iperf_ul
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
2
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
2
echo
"############################################################"
echo
"Starting the UE in FDD-10MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
fdd_10MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
50 2680
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
sleep
10
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
fdd_10MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_10MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
15
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
15
echo
"############################################################"
echo
"Starting the eNB in FDD-20MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
fdd_20MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
100 lte-fdd-basic-sim.conf
echo
"############################################################"
echo
"Iperf UL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_10MHz_iperf_ul
iperf_ul
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
2
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
2
echo
"############################################################"
echo
"Starting the UE in FDD-20MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
fdd_20MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
100 2680
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
sleep
10
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
fdd_20MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
echo
"############################################################"
echo
"Starting the eNB in FDD-20MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
fdd_20MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
100 lte-fdd-basic-sim.conf
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_20MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
15
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
15
echo
"############################################################"
echo
"Starting the UE in FDD-20MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
fdd_20MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
100 2680
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
fdd_20MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
sleep
10
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
fdd_20MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
15
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
15
echo
"############################################################"
echo
"Starting the eNB in TDD-5MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
tdd_05MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
25 lte-tdd-basic-sim.conf
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
sleep
10
echo
"############################################################"
echo
"Starting the UE in TDD-5MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
tdd_05MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
25 2350
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
echo
"############################################################"
echo
"Starting the eNB in TDD-5MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
tdd_05MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
25 lte-tdd-basic-sim.conf
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
tdd_05MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
# Bug in TDD 5Mhz --- not running it
# echo "############################################################"
# echo "Iperf DL"
# echo "############################################################"
# CURR_IPERF_LOG_BASE=tdd_05MHz_iperf_dl
# iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
# scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
# scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
# check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
echo
"############################################################"
echo
"Starting the UE in TDD-5MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
tdd_05MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
25 2350
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
sleep
10
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
tdd_05MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
# Bug in TDD 5Mhz --- not running it
# echo "############################################################"
# echo "Iperf DL"
# echo "############################################################"
# CURR_IPERF_LOG_BASE=tdd_05MHz_iperf_dl
# iperf_dl $VM_CMDS $VM_IP_ADDR $EPC_VM_CMDS $EPC_VM_IP_ADDR 6 $CURR_IPERF_LOG_BASE
# scp -o StrictHostKeyChecking=no ubuntu@$EPC_VM_IP_ADDR:/home/ubuntu/${CURR_IPERF_LOG_BASE}_client.txt $ARCHIVES_LOC
# scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/${CURR_IPERF_LOG_BASE}_server.txt $ARCHIVES_LOC
# check_iperf $ARCHIVES_LOC/$CURR_IPERF_LOG_BASE 6
echo
"############################################################"
echo
"Starting the eNB in TDD-10MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
tdd_10MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
50 lte-tdd-basic-sim.conf
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
sleep
10
echo
"############################################################"
echo
"Starting the UE in TDD-10MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
tdd_10MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
50 2350
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
echo
"############################################################"
echo
"Starting the eNB in TDD-10MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
tdd_10MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
50 lte-tdd-basic-sim.conf
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
tdd_10MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
echo
"############################################################"
echo
"Starting the UE in TDD-10MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
tdd_10MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
50 2350
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
tdd_10MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
6
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
6
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
sleep
10
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
tdd_10MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
echo
"############################################################"
echo
"Starting the eNB in TDD-20MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
tdd_20MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
100 lte-tdd-basic-sim.conf
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
tdd_10MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
6
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
6
echo
"############################################################"
echo
"Starting the UE in TDD-20MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
tdd_20MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
100 2350
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
sleep
10
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
tdd_20MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
echo
"############################################################"
echo
"Starting the eNB in TDD-20MHz mode"
echo
"############################################################"
CURRENT_ENB_LOG_FILE
=
tdd_20MHz_enb.log
start_basic_sim_enb
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_IP_ADDR
$CURRENT_ENB_LOG_FILE
100 lte-tdd-basic-sim.conf
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
tdd_20MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
6
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
6
echo
"############################################################"
echo
"Starting the UE in TDD-20MHz mode"
echo
"############################################################"
CURRENT_UE_LOG_FILE
=
tdd_20MHz_ue.log
start_basic_sim_ue
$VM_CMDS
$VM_IP_ADDR
$CURRENT_UE_LOG_FILE
100 2350
if
[
$UE_SYNC
-eq
0
]
then
echo
"Problem w/ eNB and UE not syncing"
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
exit
-1
fi
get_ue_ip_addr
$VM_CMDS
$VM_IP_ADDR
echo
"############################################################"
echo
"Pinging the UE"
echo
"############################################################"
PING_LOG_FILE
=
tdd_20MHz_ping_ue.txt
ping_ue_ip_addr
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
$UE_IP_ADDR
$PING_LOG_FILE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
$PING_LOG_FILE
$ARCHIVES_LOC
check_ping_result
$ARCHIVES_LOC
/
$PING_LOG_FILE
20
echo
"############################################################"
echo
"Iperf DL"
echo
"############################################################"
CURR_IPERF_LOG_BASE
=
tdd_20MHz_iperf_dl
iperf_dl
$VM_CMDS
$VM_IP_ADDR
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
6
$CURR_IPERF_LOG_BASE
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$EPC_VM_IP_ADDR
:/home/ubuntu/
${
CURR_IPERF_LOG_BASE
}
_client.txt
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
${
CURR_IPERF_LOG_BASE
}
_server.txt
$ARCHIVES_LOC
check_iperf
$ARCHIVES_LOC
/
$CURR_IPERF_LOG_BASE
6
echo
"############################################################"
echo
"Terminate enb/ue simulators"
echo
"############################################################"
terminate_enb_ue_basic_sim
$VM_CMDS
$VM_IP_ADDR
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
$CURRENT_UE_LOG_FILE
$ARCHIVES_LOC
recover_core_dump
$VM_CMDS
$VM_IP_ADDR
$ARCHIVES_LOC
/
$CURRENT_ENB_LOG_FILE
$ARCHIVES_LOC
sleep
10
echo
"############################################################"
echo
"Terminate EPC"
echo
"############################################################"
sleep
10
if
[
$LTEBOX
-eq
1
]
then
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
fi
echo
"############################################################"
echo
"Terminate EPC"
echo
"############################################################"
echo
"############################################################"
echo
"Checking run status"
echo
"############################################################"
if
[
$LTEBOX
-eq
1
]
then
terminate_ltebox_epc
$EPC_VM_CMDS
$EPC_VM_IP_ADDR
fi
if
[
$PING_STATUS
-ne
0
]
;
then
STATUS
=
-1
;
fi
if
[
$IPERF_STATUS
-ne
0
]
;
then
STATUS
=
-1
;
fi
if
[
$KEEP_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"Destroying VMs"
echo
"############################################################"
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
uvt-kvm destroy
$EPC_VM_NAME
ssh-keygen
-R
$EPC_VM_IP_ADDR
fi
fi
echo
"############################################################"
echo
"Checking run status"
echo
"############################################################"
if
[
$STATUS
-eq
0
]
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
if
[
$PING_STATUS
-ne
0
]
;
then
STATUS
=
-1
;
fi
if
[
$IPERF_STATUS
-ne
0
]
;
then
STATUS
=
-1
;
fi
exit
$STATUS
fi
}
ci-scripts/waitBuildOnVM.sh
View file @
2ff7bfc4
...
...
@@ -20,8 +20,8 @@
# * contact@openairinterface.org
# */
function
usage
{
echo
"OAI
VM Build Check
script"
function
wait_
usage
{
echo
"OAI
CI VM
script"
echo
" Original Author: Raphael Defosseux"
echo
" Requirements:"
echo
" -- uvtool uvtool-libvirt apt-cacher"
...
...
@@ -31,9 +31,9 @@ function usage {
echo
""
echo
"Usage:"
echo
"------"
echo
"
waitBuildOnVM.sh
[OPTIONS]"
echo
"
oai-ci-vm-tool wait
[OPTIONS]"
echo
""
echo
"Options:"
echo
"
Mandatory
Options:"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
...
...
@@ -44,16 +44,11 @@ function usage {
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
variant_usage
echo
" Specify the variant to build."
echo
""
echo
"Options:"
echo
"--------"
echo
" --keep-vm-alive OR -k"
echo
" Keep the VM alive after the build."
echo
""
...
...
@@ -62,345 +57,114 @@ function usage {
echo
""
}
function
variant_usage
{
echo
"OAI VM Build Check script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
" --variant enb-usrp OR -v1"
echo
" --variant basic-sim OR -v2"
echo
" --variant phy-sim OR -v3"
echo
" --variant cppcheck OR -v4"
echo
" --variant gnb-usrp OR -v5"
echo
" --variant nu-ue-usrp OR -v6"
echo
" --variant enb-ethernet OR -v7"
echo
" --variant ue-ethernet OR -v8"
echo
""
}
if
[
$#
-lt
1
]
||
[
$#
-gt
9
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
VM_TEMPLATE
=
ci-
JOB_NAME
=
XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP"
KEEP_VM_ALIVE
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
shift
shift
;;
-k
|
--keep-vm-alive
)
KEEP_VM_ALIVE
=
1
shift
;;
-v1
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
shift
;;
-v2
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
shift
;;
-v3
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
shift
;;
-v4
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
shift
;;
-v5
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
shift
;;
-v6
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
shift
;;
-v7
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
shift
;;
-v8
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
shift
;;
--variant
)
variant
=
"
$2
"
case
$variant
in
enb-usrp
)
VM_NAME
=
ci-enb-usrp
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--eNB -w USRP --mu"
;;
basic-sim
)
VM_NAME
=
ci-basic-sim
ARCHIVES_LOC
=
basic_sim
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
ARCHIVES_LOC
=
phy_sim
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--phy_simulators"
;;
cppcheck
)
VM_NAME
=
ci-cppcheck
VM_MEMORY
=
8192
ARCHIVES_LOC
=
cppcheck
LOG_PATTERN
=
cppcheck.xml
NB_PATTERN_FILES
=
1
BUILD_OPTIONS
=
"--enable=warning --force --xml --xml-version=2 -i openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c"
;;
gnb-usrp
)
VM_NAME
=
ci-gnb-usrp
ARCHIVES_LOC
=
gnb_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--gNB -w USRP"
;;
nu-ue-usrp
)
VM_NAME
=
ci-ue-nr-usrp
ARCHIVES_LOC
=
nrue_usrp
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
4
BUILD_OPTIONS
=
"--nrUE -w USRP"
;;
enb-ethernet
)
VM_NAME
=
ci-enb-ethernet
ARCHIVES_LOC
=
enb_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--eNB -t ETHERNET --noS1"
;;
ue-ethernet
)
VM_NAME
=
ci-ue-ethernet
ARCHIVES_LOC
=
ue_eth
LOG_PATTERN
=
.Rel15.txt
NB_PATTERN_FILES
=
6
BUILD_OPTIONS
=
"--UE -t ETHERNET --noS1"
;;
*
)
echo
""
echo
"Syntax Error: Invalid Variant option ->
$variant
"
echo
""
variant_usage
exit
1
esac
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
function
wait_on_vm_build
{
echo
"############################################################"
echo
"OAI CI VM script"
echo
"############################################################"
if
[
!
-f
$JENKINS_WKSP
/localZip.zip
]
then
echo
"Missing localZip.zip file!"
exit
1
fi
if
[
!
-f
/etc/apt/apt.conf.d/01proxy
]
then
echo
"Missing /etc/apt/apt.conf.d/01proxy file!"
echo
"Is apt-cacher installed and configured?"
exit
1
fi
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"BUILD_OPTIONS =
$BUILD_OPTIONS
"
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
then
VM_TEMPLATE
=
ci-
else
VM_TEMPLATE
=
${
JOB_NAME
}
-b
${
BUILD_ID
}
-
fi
IS_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$VM_NAME
`
VM_NAME
=
`
echo
$VM_NAME
|
sed
-e
"s#ci-#
$VM_TEMPLATE
#"
`
VM_CMDS
=
${
VM_NAME
}
_cmds.txt
ARCHIVES_LOC
=
${
JENKINS_WKSP
}
/archives/
${
ARCHIVES_LOC
}
if
[
$IS_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"You should have created the VM before doing anything"
echo
"############################################################"
STATUS
=
1
return
fi
echo
"VM_NAME =
$VM_NAME
"
echo
"VM_CMD_FILE =
$VM_CMDS
"
echo
"JENKINS_WKSP =
$JENKINS_WKSP
"
echo
"ARCHIVES_LOC =
$ARCHIVES_LOC
"
echo
"BUILD_OPTIONS =
$BUILD_OPTIONS
"
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
IS_VM_ALIVE
=
`
uvt-kvm list |
grep
-c
$VM_NAME
`
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
if
[
$IS_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"
You should have created the VM before doing anything
"
echo
"
Waiting build process to end on VM (
$VM_NAME
)
"
echo
"############################################################"
exit
1
fi
echo
"Waiting for VM to be started"
uvt-kvm
wait
$VM_NAME
--insecure
VM_IP_ADDR
=
`
uvt-kvm ip
$VM_NAME
`
echo
"
$VM_NAME
has for IP addr =
$VM_IP_ADDR
"
echo
"############################################################"
echo
"Waiting build process to end on VM (
$VM_NAME
)"
echo
"############################################################"
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
echo
"echo
\"
ps -aux | grep cppcheck
\"
"
>>
$VM_CMDS
echo
"while [
\$
(ps -aux | grep --color=never cppcheck | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done"
>>
$VM_CMDS
else
echo
"echo
\"
ps -aux | grep build
\"
"
>>
$VM_CMDS
echo
"while [
\$
(ps -aux | grep --color=never build_oai | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done"
>>
$VM_CMDS
fi
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
echo
"echo
\"
ps -aux | grep cppcheck
\"
"
>>
$VM_CMDS
echo
"while [
\$
(ps -aux | grep --color=never cppcheck | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done"
>>
$VM_CMDS
else
echo
"echo
\"
ps -aux | grep build
\"
"
>>
$VM_CMDS
echo
"while [
\$
(ps -aux | grep --color=never build_oai | grep -v grep | wc -l) -gt 0 ]; do sleep 3; done"
>>
$VM_CMDS
fi
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
rm
-f
$VM_CMDS
}
ssh
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
<
$VM_CMDS
function
check_on_vm_build
{
echo
"############################################################"
echo
"Creating a tmp folder to store results and artifacts"
echo
"############################################################"
if
[
!
-d
$JENKINS_WKSP
/archives
]
then
mkdir
$JENKINS_WKSP
/archives
fi
echo
"############################################################"
echo
"Creating a tmp folder to store results and artifacts"
echo
"############################################################"
if
[
!
-d
$JENKINS_WKSP
/archives
]
then
mkdir
$JENKINS_WKSP
/archives
fi
if
[
!
-d
$ARCHIVES_LOC
]
then
mkdir
$ARCHIVES_LOC
fi
if
[
!
-d
$ARCHIVES_LOC
]
then
mkdir
$ARCHIVES_LOC
fi
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.txt
$ARCHIVES_LOC
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.xml
$ARCHIVES_LOC
fi
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.txt
$ARCHIVES_LOC
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
scp
-o
StrictHostKeyChecking
=
no ubuntu@
$VM_IP_ADDR
:/home/ubuntu/tmp/cmake_targets/log/
*
.xml
$ARCHIVES_LOC
fi
if
[
$KEEP_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"Destroying VM"
echo
"############################################################"
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
fi
rm
-f
$VM_CMDS
if
[
$KEEP_VM_ALIVE
-eq
0
]
then
echo
"############################################################"
echo
"
Destroying VM"
echo
"
Checking build status"
echo
"############################################################"
uvt-kvm destroy
$VM_NAME
ssh-keygen
-R
$VM_IP_ADDR
fi
rm
-f
$VM_CMDS
echo
"############################################################"
echo
"Checking build status"
echo
"############################################################"
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/
*
.txt
$ARCHIVES_LOC
/
*
.xml
`
STATUS
=
0
NB_FOUND_FILES
=
0
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/
*
.txt
$ARCHIVES_LOC
/
*
.xml
`
STATUS
=
0
NB_FOUND_FILES
=
0
for
FULLFILE
in
$LOG_FILES
do
if
[[
$FULLFILE
==
*
"
$LOG_PATTERN
"
*
]]
then
filename
=
$(
basename
--
"
$FULLFILE
"
)
if
[
"
$LOG_PATTERN
"
==
".Rel15.txt"
]
then
PASS_PATTERN
=
`
echo
$filename
|
sed
-e
"s#
$LOG_PATTERN
##"
`
fi
if
[
"
$LOG_PATTERN
"
==
"basic_simulator"
]
then
PASS_PATTERN
=
"lte-"
fi
if
[
"
$LOG_PATTERN
"
==
"cppcheck.xml"
]
for
FULLFILE
in
$LOG_FILES
do
if
[[
$FULLFILE
==
*
"
$LOG_PATTERN
"
*
]]
then
PASS_PATTERN
=
"results version"
LOCAL_STAT
=
`
egrep
-c
"
$PASS_PATTERN
"
$FULLFILE
`
else
LOCAL_STAT
=
`
egrep
-c
"Built target
$PASS_PATTERN
"
$FULLFILE
`
filename
=
$(
basename
--
"
$FULLFILE
"
)
if
[
"
$LOG_PATTERN
"
==
".Rel15.txt"
]
then
PASS_PATTERN
=
`
echo
$filename
|
sed
-e
"s#
$LOG_PATTERN
##"
`
fi
if
[
"
$LOG_PATTERN
"
==
"basic_simulator"
]
then
PASS_PATTERN
=
"lte-"
fi
if
[
"
$LOG_PATTERN
"
==
"cppcheck.xml"
]
then
PASS_PATTERN
=
"results version"
LOCAL_STAT
=
`
egrep
-c
"
$PASS_PATTERN
"
$FULLFILE
`
else
LOCAL_STAT
=
`
egrep
-c
"Built target
$PASS_PATTERN
"
$FULLFILE
`
fi
if
[
$LOCAL_STAT
-eq
0
]
;
then
STATUS
=
-1
;
fi
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
fi
if
[
$LOCAL_STAT
-eq
0
]
;
then
STATUS
=
-1
;
fi
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
fi
done
done
if
[
$NB_PATTERN_FILES
-ne
$NB_FOUND_FILES
]
;
then
STATUS
=
-1
;
fi
if
[
$NB_PATTERN_FILES
-ne
$NB_FOUND_FILES
]
;
then
STATUS
=
-1
;
fi
if
[
$STATUS
-eq
0
]
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
exit
$STATUS
}
cmake_targets/autotests/test_case_list.xml
View file @
2ff7bfc4
...
...
@@ -1055,7 +1055,7 @@
<main_exec_args>
-s-11 -S-10 -n1000
-s-11 -S-10 -n10 -I
</main_exec_args>
<tags>
nr_pbchsim.test1
</tags>
<search_expr_true>
n_errors \(negative CRC\) = 0
</search_expr_true>
<search_expr_true>
PBCH test OK
</search_expr_true>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<nruns>
3
</nruns>
</testCase>
...
...
openair1/PHY/INIT/nr_init.c
View file @
2ff7bfc4
...
...
@@ -406,7 +406,7 @@ void nr_phy_config_request_sim(PHY_VARS_gNB *gNB,int N_RB_DL,int N_RB_UL,int mu)
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
=
N_RB_UL
;
gNB_config
->
sch_config
.
half_frame_index
.
value
=
0
;
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
0
;
gNB_config
->
sch_config
.
n_ssb_crb
.
value
=
(
N_RB_DL
-
20
)
>>
1
;
gNB_config
->
sch_config
.
n_ssb_crb
.
value
=
(
N_RB_DL
-
20
);
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
0
;
...
...
@@ -441,7 +441,7 @@ void nr_phy_config_request(NR_PHY_Config_t *phy_config)
gNB_config
->
rf_config
.
ul_carrier_bandwidth
.
value
=
phy_config
->
cfg
->
rf_config
.
ul_carrier_bandwidth
.
value
;
//106;
gNB_config
->
sch_config
.
half_frame_index
.
value
=
0
;
gNB_config
->
sch_config
.
ssb_subcarrier_offset
.
value
=
phy_config
->
cfg
->
sch_config
.
ssb_subcarrier_offset
.
value
;
//0;
gNB_config
->
sch_config
.
n_ssb_crb
.
value
=
(
phy_config
->
cfg
->
rf_config
.
dl_carrier_bandwidth
.
value
-
20
)
>>
1
;
gNB_config
->
sch_config
.
n_ssb_crb
.
value
=
(
phy_config
->
cfg
->
rf_config
.
dl_carrier_bandwidth
.
value
-
20
);
gNB_config
->
sch_config
.
physical_cell_id
.
value
=
phy_config
->
cfg
->
sch_config
.
physical_cell_id
.
value
;
if
(
phy_config
->
cfg
->
subframe_config
.
duplex_mode
.
value
==
0
)
{
...
...
openair1/PHY/INIT/nr_init_ue.c
View file @
2ff7bfc4
...
...
@@ -655,7 +655,7 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
int
i
,
j
,
k
,
l
;
int
eNB_id
;
int
th_id
;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
)
>>
1
;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
);
abstraction_flag
=
0
;
fp
->
nb_antennas_tx
=
1
;
fp
->
nb_antennas_rx
=
1
;
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
2ff7bfc4
...
...
@@ -49,7 +49,7 @@
//#define NR_LTE_PDCCH_DCI_SWITCH
#define NR_PDCCH_DCI_RUN // activates new nr functions
//
#define NR_PDCCH_DCI_DEBUG // activates NR_PDCCH_DCI_DEBUG logs
#define NR_PDCCH_DCI_DEBUG // activates NR_PDCCH_DCI_DEBUG logs
#define NR_NBR_CORESET_ACT_BWP 3 // The number of CoreSets per BWP is limited to 3 (including initial CORESET: ControlResourceId 0)
#define NR_NBR_SEARCHSPACE_ACT_BWP 10 // The number of SearSpaces per BWP is limited to 10 (including initial SEARCHSPACE: SearchSpaceId 0)
#define PDCCH_TEST_POLAR_TEMP_FIX
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
2ff7bfc4
...
...
@@ -149,7 +149,7 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
int
rx_power
=
0
;
//aarx,
//nfapi_nr_config_request_t* config;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
)
>>
1
;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
);
// First try TDD normal prefix, mu 1
fp
->
Ncp
=
NORMAL
;
fp
->
frame_type
=
TDD
;
...
...
@@ -212,12 +212,12 @@ int nr_initial_sync(PHY_VARS_NR_UE *ue, runmode_t mode)
nr_gold_pdcch
(
ue
,
0
,
2
);
/*
int nb_prefix_samples0 = f
rame_parms
->nb_prefix_samples0;
f
rame_parms->nb_prefix_samples0 = frame_parms->nb_prefix_samples.
int nb_prefix_samples0 = f
p
->nb_prefix_samples0;
f
p->nb_prefix_samples0 = fp->nb_prefix_samples;
nr_slot_fep(ue,0, 0, ue->ssb_offset, 0, 1, NR_PDCCH_EST);
nr_slot_fep(ue,1, 0, ue->ssb_offset, 0, 1, NR_PDCCH_EST);
f
rame_parms
->nb_prefix_samples0 = nb_prefix_samples0;
f
p
->nb_prefix_samples0 = nb_prefix_samples0;
LOG_I(PHY,"[UE %d] AUTOTEST Cell Sync : frame = %d, rx_offset %d, freq_offset %d \n",
ue->Mod_id,
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
2ff7bfc4
...
...
@@ -5557,8 +5557,8 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
#endif
//nr_gold_pdcch(ue,0, 2);
/*
for (l=0; l<2; l++) {
for
(
int
l
=
0
;
l
<
2
;
l
++
)
{
if
(
abstraction_flag
==
0
)
{
#if UE_TIMING_TRACE
start_meas
(
&
ue
->
ofdm_demod_stats
);
...
...
@@ -5566,40 +5566,63 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eN
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP
,
VCD_FUNCTION_IN
);
nr_slot_fep
(
ue
,
l,
nr_tti_rx,
ue->ssb_offset
,
0,
1,
l
,
nr_tti_rx
,
0
,
0
,
1
,
NR_PDCCH_EST
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP
,
VCD_FUNCTION_OUT
);
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
ofdm_demod_stats
);
#endif
}
}*/
//ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
}
//if (do_pdcch_flag) {
// if ((l==pilot1) || ((pmch_flag==1)&(l==l2))) {
// LOG_D(PHY,"[UE %d] Frame %d: Calling pdcch procedures (eNB %d)\n",ue->Mod_id,frame_rx,eNB_id);
write_output
(
"rxdataF.m"
,
"rxF"
,
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
nr_tti_rx
>>
1
]].
rxdataF
[
0
],
ue
->
frame_parms
.
ofdm_symbol_size
*
2
,
1
,
1
);
//start_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
if
(
nr_ue_pdcch_procedures
(
eNB_id
,
ue
,
proc
,
abstraction_flag
)
==
-
1
)
{
LOG_E
(
PHY
,
"[UE %d] Frame %d, nr_tti_rx %d: Error in pdcch procedures
\n
"
,
ue
->
Mod_id
,
frame_rx
,
nr_tti_rx
);
return
(
-
1
);
}
//stop_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
//printf("nr_tti_rx %d n_pdcch_sym %d pdcch procedures %5.3f \n",
// nr_tti_rx, ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols,
// (ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]].p_time)/(cpuf*1000.0));
LOG_D
(
PHY
,
"num_pdcch_symbols %d
\n
"
,
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
nr_tti_rx
]][
eNB_id
]
->
num_pdcch_symbols
);
// }
//}
//ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
// } // for l=1..l2
//if (do_pdcch_flag) {
// if ((l==pilot1) || ((pmch_flag==1)&(l==l2))) {
// LOG_D(PHY,"[UE %d] Frame %d: Calling pdcch procedures (eNB %d)\n",ue->Mod_id,frame_rx,eNB_id);
//start_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
//printf(">>> at phy_procedures_nrUE_RX, nr_ue_pdcch_procedures init, dlsch->active=%d\n",
// ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->active);
if
(
nr_ue_pdcch_procedures
(
eNB_id
,
ue
,
proc
,
abstraction_flag
)
==
-
1
)
{
LOG_E
(
PHY
,
"[UE %d] Frame %d, nr_tti_rx %d: Error in pdcch procedures
\n
"
,
ue
->
Mod_id
,
frame_rx
,
nr_tti_rx
);
return
(
-
1
);
}
//for (int m=0;m<1000;m++) printf("%d",m);
//printf("\n>>> at phy_procedures_nrUE_RX, nr_ue_pdcch_procedures end, dlsch->active=%d\n",
// ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->active);
// preparing for PDSCH procedures
// if (ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0]->active == 1) {
// ue_pdsch_procedures(ue,
// proc,
// eNB_id,
// PDSCH,
// ue->dlsch[ue->current_thread_id[nr_tti_rx]][eNB_id][0],
// NULL,
// ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols,
// ue->frame_parms.symbols_per_tti>>1,
// abstraction_flag);
// }
#if 0
//stop_meas(&ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]]);
//printf("nr_tti_rx %d n_pdcch_sym %d pdcch procedures %5.3f \n",
// nr_tti_rx, ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols,
// (ue->rx_pdcch_stats[ue->current_thread_id[nr_tti_rx]].p_time)/(cpuf*1000.0));
LOG_D(PHY,"num_pdcch_symbols %d\n",ue->pdcch_vars[ue->current_thread_id[nr_tti_rx]][eNB_id]->num_pdcch_symbols);
// }
//}
// } // for l=1..l2
ue_measurement_procedures(l-1,ue,proc,eNB_id,(nr_tti_rx<<1),abstraction_flag,mode);
LOG_D(PHY," ------ end FFT/ChannelEst/PDCCH slot 0: AbsSubframe %d.%d ------ \n", frame_rx%1024, nr_tti_rx);
...
...
openair1/SIMULATION/NR_PHY/pbchsim.c
View file @
2ff7bfc4
...
...
@@ -133,6 +133,8 @@ int main(int argc, char **argv)
int
loglvl
=
OAILOG_WARNING
;
float
target_error_rate
=
0
.
01
;
cpuf
=
get_cpu_freq_GHz
();
if
(
load_configmodule
(
argc
,
argv
)
==
0
)
{
...
...
@@ -296,6 +298,7 @@ int main(int argc, char **argv)
case
'I'
:
run_initial_sync
=
1
;
target_error_rate
=
0
.
1
;
break
;
case
'L'
:
...
...
@@ -442,11 +445,10 @@ int main(int argc, char **argv)
for
(
int
i
=
0
;
i
<
4
;
i
++
)
gNB
->
pbch_pdu
[
i
]
=
i
+
1
;
nr_common_signal_procedures
(
gNB
,
frame
,
subframe
);
/*
LOG_M
(
"txsigF0.m"
,
"txsF0"
,
gNB
->
common_vars
.
txdataF
[
0
],
frame_length_complex_samples_no_prefix
,
1
,
1
);
if
(
gNB
->
frame_parms
.
nb_antennas_tx
>
1
)
LOG_M
(
"txsigF1.m"
,
"txsF1"
,
gNB
->
common_vars
.
txdataF
[
1
],
frame_length_complex_samples_no_prefix
,
1
,
1
);
*/
//TODO: loop over slots
for
(
aa
=
0
;
aa
<
gNB
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
{
if
(
gNB_config
->
subframe_config
.
dl_cyclic_prefix_type
.
value
==
1
)
{
...
...
@@ -572,6 +574,11 @@ int main(int argc, char **argv)
printf
(
"SNR %f : n_errors (negative CRC) = %d/%d
\n
"
,
SNR
,
n_errors
,
n_trials
);
if
((
float
)
n_errors
/
(
float
)
n_trials
<=
target_error_rate
)
{
printf
(
"PBCH test OK
\n
"
);
break
;
}
if
(
n_trials
==
1
)
break
;
...
...
targets/RT/USER/nr-ue.c
View file @
2ff7bfc4
...
...
@@ -963,7 +963,7 @@ nb_sf_init=5;
#if BASIC_SIMULATOR
{
int
t
;
for
(
t
=
0
;
t
<
2
;
t
++
)
{
for
(
t
=
0
;
t
<
RX_NB_TH
;
t
++
)
{
UE_rxtx_proc_t
*
proc
=
&
UE
->
proc
.
proc_rxtx
[
t
];
pthread_mutex_lock
(
&
proc
->
mutex_rxtx
);
while
(
proc
->
instance_cnt_rxtx
>=
0
)
pthread_cond_wait
(
&
proc
->
cond_rxtx
,
&
proc
->
mutex_rxtx
);
...
...
@@ -971,13 +971,13 @@ nb_sf_init=5;
}
}
#endif
LOG_D
(
PHY
,
"Process subframe %d thread Idx %d
\n
"
,
subframe_nr
,
UE
->
current_thread_id
[
subframe_nr
]);
thread_idx
++
;
if
(
thread_idx
>=
RX_NB_TH
)
thread_idx
=
0
;
if
(
UE
->
mode
!=
loop_through_memory
)
{
for
(
i
=
0
;
i
<
UE
->
frame_parms
.
nb_antennas_rx
;
i
++
)
rxp
[
i
]
=
(
void
*
)
&
UE
->
common_vars
.
rxdata
[
i
][
UE
->
frame_parms
.
ofdm_symbol_size
+
...
...
@@ -1040,9 +1040,6 @@ nb_sf_init=5;
if
(
first_symbols
<
0
)
LOG_E
(
PHY
,
"can't compensate: diff =%d
\n
"
,
first_symbols
);
}
}
//UE->mode != loop_through_memory
else
rt_sleep_ns
(
1000
*
1000
);
pickTime
(
gotIQs
);
// operate on thread sf mod 2
...
...
@@ -1054,13 +1051,13 @@ nb_sf_init=5;
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
++
;
}
#ifdef SAIF_ENABLED
if
(
!
(
proc
->
frame_rx
%
4000
))
{
printf
(
"frame_rx=%d rx_thread_busy=%ld - rate %8.3f
\n
"
,
proc
->
frame_rx
,
g_ue_rx_thread_busy
,
(
float
)
g_ue_rx_thread_busy
/
(
proc
->
frame_rx
*
10
+
1
)
*
100
.
0
);
fflush
(
stdout
);
}
if
(
!
(
proc
->
frame_rx
%
4000
))
{
printf
(
"frame_rx=%d rx_thread_busy=%ld - rate %8.3f
\n
"
,
proc
->
frame_rx
,
g_ue_rx_thread_busy
,
(
float
)
g_ue_rx_thread_busy
/
(
proc
->
frame_rx
*
10
+
1
)
*
100
.
0
);
fflush
(
stdout
);
}
#endif
}
//UE->proc.proc_rxtx[0].gotIQs=readTime(gotIQs);
...
...
@@ -1078,7 +1075,7 @@ nb_sf_init=5;
proc
->
frame_tx
=
(
proc
->
frame_tx
+
1
)
%
MAX_FRAME_NUMBER
;
proc
->
nr_tti_tx
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
}
proc
->
subframe_tx
=
subframe_nr
+
DURATION_RX_TO_TX
;
proc
->
subframe_tx
=
proc
->
nr_tti_rx
;
proc
->
timestamp_tx
=
timestamp
+
(
DURATION_RX_TO_TX
*
UE
->
frame_parms
.
samples_per_subframe
)
-
UE
->
frame_parms
.
ofdm_symbol_size
-
UE
->
frame_parms
.
nb_prefix_samples0
;
...
...
@@ -1114,7 +1111,41 @@ nb_sf_init=5;
// initStaticTime(lastTime);
// updateTimes(lastTime, &t1, 20000, "Delay between two IQ acquisitions (case 1)");
// pickStaticTime(lastTime);
}
//UE->mode != loop_through_memory
else
{
proc
->
nr_tti_rx
=
subframe_nr
;
proc
->
subframe_rx
=
subframe_nr
;
if
(
subframe_nr
==
0
)
{
for
(
th_id
=
0
;
th_id
<
RX_NB_TH
;
th_id
++
)
{
UE
->
proc
.
proc_rxtx
[
th_id
].
frame_rx
++
;
}
}
proc
->
frame_tx
=
proc
->
frame_rx
;
proc
->
nr_tti_tx
=
subframe_nr
+
DURATION_RX_TO_TX
;
if
(
proc
->
nr_tti_tx
>
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
)
{
proc
->
frame_tx
=
(
proc
->
frame_tx
+
1
)
%
MAX_FRAME_NUMBER
;
proc
->
nr_tti_tx
%=
NR_NUMBER_OF_SUBFRAMES_PER_FRAME
;
}
proc
->
subframe_tx
=
proc
->
nr_tti_tx
;
printf
(
"Processing subframe %d
\n
"
,
proc
->
subframe_rx
);
if
(
UE
->
if_inst
!=
NULL
&&
UE
->
if_inst
->
ul_indication
!=
NULL
){
UE
->
ul_indication
.
module_id
=
0
;
UE
->
ul_indication
.
gNB_index
=
0
;
UE
->
ul_indication
.
cc_id
=
0
;
UE
->
ul_indication
.
slot
=
0
;
// to be fill
UE
->
ul_indication
.
frame
=
0
;
// to be fill
// [TODO] mapping right after NR initial sync
UE
->
ul_indication
.
frame
=
proc
->
frame_rx
;
UE
->
ul_indication
.
slot
=
proc
->
nr_tti_rx
;
UE
->
if_inst
->
ul_indication
(
&
UE
->
ul_indication
);
}
phy_procedures_nrUE_RX
(
UE
,
proc
,
0
,
0
,
1
,
UE
->
mode
,
no_relay
);
getchar
();
}
// else loop_through_memory
}
// start_rx_stream==1
}
// UE->is_synchronized==1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment