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
spbro
OpenXG-RAN
Commits
0dae0551
Commit
0dae0551
authored
Sep 23, 2024
by
Jaroslava Fiedlerova
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/ci-remove-unused-code' into integration_2024_w38b
parents
11aeba06
ec2afa22
Changes
55
Show whitespace changes
Inline
Side-by-side
Showing
55 changed files
with
51 additions
and
3144 deletions
+51
-3144
ci-scripts/Jenkinsfile-cluster
ci-scripts/Jenkinsfile-cluster
+2
-0
ci-scripts/Jenkinsfile-nrue
ci-scripts/Jenkinsfile-nrue
+2
-0
ci-scripts/Jenkinsfile-physim-deploy
ci-scripts/Jenkinsfile-physim-deploy
+2
-0
ci-scripts/Jenkinsfile-tmp-full-ran
ci-scripts/Jenkinsfile-tmp-full-ran
+3
-27
ci-scripts/Jenkinsfile-tmp-multi-enb
ci-scripts/Jenkinsfile-tmp-multi-enb
+2
-0
ci-scripts/Jenkinsfile-tmp-multi-enb-nsa
ci-scripts/Jenkinsfile-tmp-multi-enb-nsa
+2
-0
ci-scripts/Jenkinsfile-tmp-ran
ci-scripts/Jenkinsfile-tmp-ran
+2
-0
ci-scripts/Jenkinsfile-tmp-ue
ci-scripts/Jenkinsfile-tmp-ue
+0
-266
ci-scripts/Jenkinsfile-trig-nsa
ci-scripts/Jenkinsfile-trig-nsa
+0
-160
ci-scripts/build_fr1_from_yaml.py
ci-scripts/build_fr1_from_yaml.py
+0
-79
ci-scripts/build_fr1_template.yaml
ci-scripts/build_fr1_template.yaml
+0
-40
ci-scripts/checkAddedWarnings.sh
ci-scripts/checkAddedWarnings.sh
+2
-2
ci-scripts/checkCodingFormattingRules.sh
ci-scripts/checkCodingFormattingRules.sh
+16
-16
ci-scripts/cls_log_mgt.py
ci-scripts/cls_log_mgt.py
+0
-94
ci-scripts/cls_module.py
ci-scripts/cls_module.py
+0
-21
ci-scripts/cls_oaicitest.py
ci-scripts/cls_oaicitest.py
+0
-438
ci-scripts/cls_physim1.py
ci-scripts/cls_physim1.py
+1
-1
ci-scripts/doGitLabMerge.sh
ci-scripts/doGitLabMerge.sh
+2
-2
ci-scripts/docker/Dockerfile.cppcheck.xenial
ci-scripts/docker/Dockerfile.cppcheck.xenial
+2
-2
ci-scripts/epc.py
ci-scripts/epc.py
+2
-2
ci-scripts/main.py
ci-scripts/main.py
+0
-66
ci-scripts/ran.py
ci-scripts/ran.py
+1
-1
ci-scripts/xml_class_list.yml
ci-scripts/xml_class_list.yml
+0
-4
ci-scripts/xml_files/fr1_gnb_build.xml
ci-scripts/xml_files/fr1_gnb_build.xml
+0
-41
ci-scripts/xml_files/fr1_multi_node_build.xml
ci-scripts/xml_files/fr1_multi_node_build.xml
+0
-73
ci-scripts/xml_files/fr1_sa_oaiue_b200.xml
ci-scripts/xml_files/fr1_sa_oaiue_b200.xml
+0
-120
ci-scripts/xml_files/fr1_sa_oaiue_n310.xml
ci-scripts/xml_files/fr1_sa_oaiue_n310.xml
+0
-136
ci-scripts/xml_files/fr1_sa_oaiue_x300.xml
ci-scripts/xml_files/fr1_sa_oaiue_x300.xml
+0
-121
ci-scripts/xml_files/fr1_sa_quectel.xml
ci-scripts/xml_files/fr1_sa_quectel.xml
+0
-168
ci-scripts/xml_files/fr1_sa_quectel_162prb.xml
ci-scripts/xml_files/fr1_sa_quectel_162prb.xml
+0
-157
ci-scripts/xml_files/fr1_sa_quectel_stages.xml
ci-scripts/xml_files/fr1_sa_quectel_stages.xml
+0
-189
ci-scripts/xml_files/gnb_nr_ue_usrp_run.xml
ci-scripts/xml_files/gnb_nr_ue_usrp_run.xml
+0
-71
ci-scripts/xml_files/gnb_nr_ue_usrp_run_multi_thread.xml
ci-scripts/xml_files/gnb_nr_ue_usrp_run_multi_thread.xml
+0
-71
ci-scripts/xml_files/gnb_nr_ue_usrp_terminate.xml
ci-scripts/xml_files/gnb_nr_ue_usrp_terminate.xml
+0
-44
ci-scripts/xml_files/if4p5_usrp210_band40_build.xml
ci-scripts/xml_files/if4p5_usrp210_band40_build.xml
+0
-39
ci-scripts/xml_files/if4p5_usrp210_band40_epc_closure.xml
ci-scripts/xml_files/if4p5_usrp210_band40_epc_closure.xml
+0
-48
ci-scripts/xml_files/if4p5_usrp210_band40_epc_start.xml
ci-scripts/xml_files/if4p5_usrp210_band40_epc_start.xml
+0
-48
ci-scripts/xml_files/if4p5_usrp210_band7_build.xml
ci-scripts/xml_files/if4p5_usrp210_band7_build.xml
+0
-39
ci-scripts/xml_files/if4p5_usrp210_band7_epc_closure.xml
ci-scripts/xml_files/if4p5_usrp210_band7_epc_closure.xml
+0
-48
ci-scripts/xml_files/if4p5_usrp210_band7_epc_start.xml
ci-scripts/xml_files/if4p5_usrp210_band7_epc_start.xml
+0
-48
ci-scripts/xml_files/multi_rru_band38_build.xml
ci-scripts/xml_files/multi_rru_band38_build.xml
+0
-84
ci-scripts/xml_files/multi_rru_band38_full_termination.xml
ci-scripts/xml_files/multi_rru_band38_full_termination.xml
+0
-53
ci-scripts/xml_files/multi_rru_band38_test_10mhz_tm1.xml
ci-scripts/xml_files/multi_rru_band38_test_10mhz_tm1.xml
+0
-87
ci-scripts/xml_files/nr_ue_usrp_build.xml
ci-scripts/xml_files/nr_ue_usrp_build.xml
+0
-41
ci-scripts/xml_files/simple_dummy_build.xml
ci-scripts/xml_files/simple_dummy_build.xml
+0
-47
ci-scripts/xml_files/ue_band20_build.xml
ci-scripts/xml_files/ue_band20_build.xml
+0
-38
ci-scripts/xml_files/ue_band20_test_10mhz_orange.xml
ci-scripts/xml_files/ue_band20_test_10mhz_orange.xml
+0
-51
ci-scripts/xml_files/ue_band20_test_10mhz_sfr.xml
ci-scripts/xml_files/ue_band20_test_10mhz_sfr.xml
+0
-51
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz/entrypoint.sh
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz/entrypoint.sh
+1
-1
ci-scripts/yaml_files/fr1_epc_20897/entrypoint.sh
ci-scripts/yaml_files/fr1_epc_20897/entrypoint.sh
+1
-1
ci-scripts/yaml_files/magma_lte_20892/entrypoint.sh
ci-scripts/yaml_files/magma_lte_20892/entrypoint.sh
+1
-1
ci-scripts/yaml_files/magma_nsa_20897/entrypoint.sh
ci-scripts/yaml_files/magma_nsa_20897/entrypoint.sh
+1
-1
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+3
-3
docker/Dockerfile.build.ubuntu22.cross-arm64
docker/Dockerfile.build.ubuntu22.cross-arm64
+2
-2
openair1/PHY/TOOLS/Makefile
openair1/PHY/TOOLS/Makefile
+1
-1
No files found.
ci-scripts/Jenkinsfile-cluster
View file @
0dae0551
...
...
@@ -200,6 +200,8 @@ pipeline {
if
(
fileExists
(
xmlFile
))
{
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
xmlFile
+
" "
echo
"Test XML file : ${xmlFile}"
}
else
{
echo
"Test XML file ${xmlFile}: no such file"
}
}
withCredentials
([
...
...
ci-scripts/Jenkinsfile-nrue
View file @
0dae0551
...
...
@@ -193,6 +193,8 @@ pipeline {
if
(
fileExists
(
xmlFile
))
{
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
xmlFile
+
" "
echo
"Test XML file : ${xmlFile}"
}
else
{
echo
"Test XML file ${xmlFile}: no such file"
}
}
}
...
...
ci-scripts/Jenkinsfile-physim-deploy
View file @
0dae0551
...
...
@@ -186,6 +186,8 @@ pipeline {
if
(
fileExists
(
xmlFile
))
{
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
xmlFile
+
" "
echo
"Test XML file : ${xmlFile}"
}
else
{
echo
"Test XML file ${xmlFile}: no such file"
}
}
}
...
...
ci-scripts/Jenkinsfile-tmp-full-ran
View file @
0dae0551
...
...
@@ -39,10 +39,8 @@ if (params.LockResources != null && params.LockResources.trim().length() > 0)
// Terminate Status
def
termENB
=
0
def
termOAIUE
=
1
def
termStatusArray
=
new
Boolean
[
termOAIUE
+
1
]
def
termStatusArray
=
new
Boolean
[
termENB
+
1
]
termStatusArray
[
termENB
]
=
false
termStatusArray
[
termOAIUE
]
=
false
// Global Parameters. Normally they should be populated when the master job
// triggers the slave job with parameters
...
...
@@ -194,6 +192,8 @@ pipeline {
if
(
fileExists
(
xmlFile
))
{
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
xmlFile
+
" "
echo
"Test XML file : ${xmlFile}"
}
else
{
echo
"Test XML file ${xmlFile}: no such file"
}
}
}
...
...
@@ -241,23 +241,6 @@ pipeline {
}
}
}
stage
(
'Terminate OAI-UE'
)
{
steps
{
echo
'\u2705 \u001B[32mTerminate OAI-UE\u001B[0m'
withCredentials
([
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.UE_Credentials}"
,
usernameVariable:
'UE_Username'
,
passwordVariable:
'UE_Password'
]
])
{
sh
"python3 ci-scripts/main.py --mode=TerminateOAIUE --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password}"
}
}
post
{
success
{
script
{
termStatusArray
[
termOAIUE
]
=
true
}
}
}
}
}
}
stage
(
'Log Collection'
)
{
...
...
@@ -473,13 +456,6 @@ pipeline {
sh
"python3 ci-scripts/main.py --mode=TerminateeNB --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}"
}
}
if
(!
termStatusArray
[
termOAIUE
])
{
withCredentials
([
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.UE_Credentials}"
,
usernameVariable:
'UE_Username'
,
passwordVariable:
'UE_Password'
]
])
{
sh
"python3 ci-scripts/main.py --mode=TerminateOAIUE --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password}"
}
}
}
}
}
...
...
ci-scripts/Jenkinsfile-tmp-multi-enb
View file @
0dae0551
...
...
@@ -189,6 +189,8 @@ pipeline {
if
(
fileExists
(
xmlFile
))
{
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
xmlFile
+
" "
echo
"Test XML file : ${xmlFile}"
}
else
{
echo
"Test XML file ${xmlFile}: no such file"
}
}
}
...
...
ci-scripts/Jenkinsfile-tmp-multi-enb-nsa
View file @
0dae0551
...
...
@@ -200,6 +200,8 @@ pipeline {
if
(
fileExists
(
xmlFile
))
{
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
xmlFile
+
" "
echo
"Test XML file : ${xmlFile}"
}
else
{
echo
"Test XML file ${xmlFile}: no such file"
}
}
}
...
...
ci-scripts/Jenkinsfile-tmp-ran
View file @
0dae0551
...
...
@@ -181,6 +181,8 @@ pipeline {
if
(
fileExists
(
xmlFile
))
{
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
xmlFile
+
" "
echo
"Test XML file : ${xmlFile}"
}
else
{
echo
"Test XML file ${xmlFile}: no such file"
}
}
}
...
...
ci-scripts/Jenkinsfile-tmp-ue
deleted
100644 → 0
View file @
11aeba06
#
!
/bin/
groovy
/*
* 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
*/
// Template Jenkins Declarative Pipeline script to run Test w/ RF HW
// Location of the python executor node shall be in the same subnet as the others servers
def
pythonExecutor
=
params
.
pythonExecutor
// Location of the test XML file to be run
def
testXMLFile
=
params
.
pythonTestXmlFile
def
mainPythonAllXmlFiles
=
""
def
buildStageStatus
=
true
// Name of the test stage
def
testStageName
=
params
.
pipelineTestStageName
def
lockResources
=
[]
if
(
params
.
LockResources
!=
null
&&
params
.
LockResources
.
trim
().
length
()
>
0
)
params
.
LockResources
.
trim
().
split
(
","
).
each
{
lockResources
+=
[
resource:
it
.
trim
()]}
// Terminate Status
def
termUE
=
0
def
termENB
=
1
def
termSPGW
=
2
def
termMME
=
3
def
termHSS
=
4
def
termStatusArray
=
new
Boolean
[
termHSS
+
1
]
termStatusArray
[
termUE
]
=
false
termStatusArray
[
termENB
]
=
false
termStatusArray
[
termSPGW
]
=
false
termStatusArray
[
termMME
]
=
false
termStatusArray
[
termHSS
]
=
false
// Global Parameters. Normally they should be populated when the master job
// triggers the slave job with parameters
def
eNB_Repository
def
eNB_Branch
def
eNB_CommitID
def
eNB_AllowMergeRequestProcess
=
false
def
eNB_TargetBranch
pipeline
{
agent
{
label
pythonExecutor
}
options
{
ansiColor
(
'xterm'
)
lock
(
extra:
lockResources
)
}
stages
{
stage
(
"Verify Parameters"
)
{
steps
{
script
{
echo
'\u2705 \u001B[32mVerify Parameters\u001B[0m'
def
allParametersPresent
=
true
// It is already to late to check it
if
(
params
.
pythonExecutor
!=
null
)
{
echo
"eNB CI executor node : ${pythonExecutor}"
}
// If not present picking a default Stage Name
if
(
params
.
pipelineTestStageName
==
null
)
{
// picking default
testStageName
=
'Template Test Stage'
}
if
(
params
.
LockResources
==
null
)
{
echo
"no LockResources given"
allParametersPresent
=
false
}
if
(
params
.
UE_IPAddress
==
null
)
{
allParametersPresent
=
false
}
if
(
params
.
UE_SourceCodePath
==
null
)
{
allParametersPresent
=
false
}
if
(
params
.
UE_Credentials
==
null
)
{
allParametersPresent
=
false
}
// the following 4 parameters should be pushed by the master trigger
// if not present, take the job GIT variables (used for developing)
if
(
params
.
eNB_Repository
==
null
)
{
eNB_Repository
=
env
.
GIT_URL
}
else
{
eNB_Repository
=
params
.
eNB_Repository
}
echo
"eNB_Repository : ${eNB_Repository}"
if
(
params
.
eNB_Branch
==
null
)
{
eNB_Branch
=
env
.
GIT_BRANCH
}
else
{
eNB_Branch
=
params
.
eNB_Branch
}
echo
"eNB_Branch : ${eNB_Branch}"
if
(
params
.
eNB_CommitID
==
null
)
{
eNB_CommitID
=
env
.
GIT_COMMIT
}
else
{
eNB_CommitID
=
params
.
eNB_CommitID
}
echo
"eNB_CommitID : ${eNB_CommitID}"
if
(
params
.
eNB_mergeRequest
!=
null
)
{
eNB_AllowMergeRequestProcess
=
params
.
eNB_mergeRequest
if
(
eNB_AllowMergeRequestProcess
)
{
if
(
params
.
eNB_TargetBranch
!=
null
)
{
eNB_TargetBranch
=
params
.
eNB_TargetBranch
}
else
{
eNB_TargetBranch
=
'develop'
}
echo
"eNB_TargetBranch : ${eNB_TargetBranch}"
}
}
/*
if (params.EPC_IPAddress == null) {
allParametersPresent = false
}
if (params.EPC_Type == null) {
allParametersPresent = false
}
if (params.EPC_SourceCodePath == null) {
allParametersPresent = false
}
if (params.EPC_Credentials == null) {
allParametersPresent = false
}
*/
if
(
allParametersPresent
)
{
echo
"All parameters are present"
if
(
eNB_AllowMergeRequestProcess
)
{
sh
"git fetch"
sh
"./ci-scripts/doGitLabMerge.sh --src-branch ${eNB_Branch} --src-commit ${eNB_CommitID} --target-branch ${eNB_TargetBranch} --target-commit latest"
}
else
{
sh
"git fetch"
sh
"git checkout -f ${eNB_CommitID}"
}
}
else
{
echo
"Some parameters are missing"
sh
"./ci-scripts/fail.sh"
}
}
}
}
stage
(
"Build and Test"
)
{
steps
{
script
{
dir
(
'ci-scripts'
)
{
echo
"\u2705 \u001B[32m${testStageName}\u001B[0m"
// If not present picking a default XML file
if
(
params
.
pythonTestXmlFile
==
null
)
{
// picking default
testXMLFile
=
'xml_files/ue_band20_build.xml'
echo
"Test XML file(default): ${testXMLFile}"
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
testXMLFile
+
" "
}
else
{
String
[]
myXmlTestSuite
=
testXMLFile
.
split
(
"\\r?\\n"
)
for
(
xmlFile
in
myXmlTestSuite
)
{
if
(
fileExists
(
xmlFile
))
{
mainPythonAllXmlFiles
+=
"--XMLTestFile="
+
xmlFile
+
" "
echo
"Test XML file : ${xmlFile}"
}
}
}
withCredentials
([
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.UE_Credentials}"
,
usernameVariable:
'UE_Username'
,
passwordVariable:
'UE_Password'
],
])
{
sh
"python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} ${mainPythonAllXmlFiles}"
String
[]
myXmlTestSuite
=
testXMLFile
.
split
(
"\\r?\\n"
)
for
(
xmlFile
in
myXmlTestSuite
)
{
if
(
fileExists
(
xmlFile
))
{
try
{
timeout
(
time:
60
,
unit:
'MINUTES'
)
{
sh
"python3 main.py --mode=TestUE --UEIPAddress=${params.UE_IPAddress} --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath} --XMLTestFile=${xmlFile}"
}
}
catch
(
Exception
e
)
{
currentBuild
.
result
=
'FAILURE'
buildStageStatus
=
false
}
}
}
sh
"python3 main.py --mode=FinalizeHtml --finalStatus=${buildStageStatus} --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password}"
}
}
}
}
}
stage
(
'Log Collection'
)
{
parallel
{
stage
(
'Log Collection (OAI UE - Build)'
)
{
steps
{
echo
'\u2705 \u001B[32mLog Collection (OAI UE - Build)\u001B[0m'
withCredentials
([
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.UE_Credentials}"
,
usernameVariable:
'UE_Username'
,
passwordVariable:
'UE_Password'
]
])
{
sh
"python3 ci-scripts/main.py --mode=LogCollectBuild --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath}"
echo
'\u2705 \u001B[32mLog Transfer (UE - Build)\u001B[0m'
sh
"sshpass -p \'${UE_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${UE_Username}@${params.UE_IPAddress}:${UE_SourceCodePath}/cmake_targets/build.log.zip ./build.log.${env.BUILD_ID}.zip || true"
}
script
{
if
(
fileExists
(
"build.log.${env.BUILD_ID}.zip"
))
{
archiveArtifacts
"build.log.${env.BUILD_ID}.zip"
}
}
}
}
stage
(
'Log Collection (OAI UE - Run)'
)
{
steps
{
echo
'\u2705 \u001B[32mLog Collection (OAI UE - Run)\u001B[0m'
withCredentials
([
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.UE_Credentials}"
,
usernameVariable:
'UE_Username'
,
passwordVariable:
'UE_Password'
]
])
{
sh
"python3 ci-scripts/main.py --mode=LogCollectOAIUE --UEIPAddress=${params.UE_IPAddress} --UEUserName=${UE_Username} --UEPassword=${UE_Password} --UESourceCodePath=${params.UE_SourceCodePath}"
echo
'\u2705 \u001B[32mLog Transfer (UE - Run)\u001B[0m'
sh
"sshpass -p \'${UE_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${UE_Username}@${params.UE_IPAddress}:${UE_SourceCodePath}/cmake_targets/ue.log.zip ./ue.log.${env.BUILD_ID}.zip || true"
}
script
{
if
(
fileExists
(
"ue.log.${env.BUILD_ID}.zip"
))
{
archiveArtifacts
"ue.log.${env.BUILD_ID}.zip"
}
if
(
fileExists
(
"ci-scripts/test_results.html"
))
{
sh
"mv ci-scripts/test_results.html test_results-${JOB_NAME}.html"
sh
"sed -i -e 's#TEMPLATE_JOB_NAME#${JOB_NAME}#' -e 's@build #TEMPLATE_BUILD_ID@build #${BUILD_ID}@' -e 's#Build-ID: TEMPLATE_BUILD_ID#Build-ID: <a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' -e 's#TEMPLATE_STAGE_NAME#${testStageName}#' test_results-${JOB_NAME}.html"
archiveArtifacts
"test_results-${JOB_NAME}.html"
}
}
}
}
}
}
}
post
{
always
{
script
{
if
(
params
.
pipelineZipsConsoleLog
!=
null
)
{
if
(
params
.
pipelineZipsConsoleLog
)
{
echo
"Archiving Jenkins console log"
sh
"wget --no-check-certificate --no-proxy ${env.JENKINS_URL}/job/${env.JOB_NAME}/${env.BUILD_ID}/consoleText -O consoleText.log || true"
sh
"zip -m consoleText.log.${env.BUILD_ID}.zip consoleText.log || true"
if
(
fileExists
(
"consoleText.log.${env.BUILD_ID}.zip"
))
{
archiveArtifacts
"consoleText.log.${env.BUILD_ID}.zip"
}
}
}
}
}
}
}
ci-scripts/Jenkinsfile-trig-nsa
deleted
100644 → 0
View file @
11aeba06
#
!
/bin/
groovy
/*
* 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
*/
// necessary for reading JSON
import
groovy.json.JsonSlurper
// Template Jenkins Declarative Pipeline script to run Test w/ RF HW
// Location of the python executor node shall be in the same subnet as the others servers
def
pythonExecutor
=
params
.
pythonExecutor
def
TARGET_BRANCH
=
"develop"
def
ALLOW_MERGE
=
true
def
GitPostArgs
=
''
def
jobStatus
pipeline
{
agent
{
label
pythonExecutor
}
stages
{
stage
(
"Launcher"
)
{
steps
{
script
{
// retrieve MR that are opened nd with tag NSA
MR_LIST
=
sh
returnStdout:
true
,
script:
'curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests?state=opened&per_page=100&labels=NSA" | jq -cj "[.[].iid]"'
echo
"List of selected MRs: ${MR_LIST.trim()}"
def
MR_ARRAY
=
new
JsonSlurper
().
parseText
(
MR_LIST
.
trim
())
// for every selected MR, retrieve the branch name and the latest commit
for
(
MR
in
MR_ARRAY
)
{
SRC_BRANCH
=
sh
returnStdout:
true
,
script:
"""curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests/${MR}" | jq ".source_branch" || true """
SRC_BRANCH
=
SRC_BRANCH
.
trim
()
COMMIT_ID
=
sh
returnStdout:
true
,
script:
"""curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests/${MR}" | jq ".sha" || true """
COMMIT_ID
=
COMMIT_ID
.
trim
()
echo
"Testing NSA on : ${MR} ${SRC_BRANCH} ${COMMIT_ID}"
commit
=
COMMIT_ID
.
replace
(
"\""
,
""
)
GitPostArgs
=
MR
+
' '
+
commit
+
' '
echo
GitPostArgs
//calling LTE 2x2
jobName
=
"RAN-LTE-2x2-Module-OAIEPC"
jobStatus
=
build
job:
jobName
,
wait
:
true
,
propagate
:
false
,
parameters:
[
string
(
name:
'eNB_MR'
,
value:
String
.
valueOf
(
MR
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
SRC_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
COMMIT_ID
)),
string
(
name:
'eNB_TargetBranch'
,
value:
String
.
valueOf
(
TARGET_BRANCH
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
]
jobResult
=
jobStatus
.
getResult
()
build_url
=
jobStatus
.
getAbsoluteUrl
()
build_id
=
jobStatus
.
getNumber
().
toString
()
GitPostArgs
+=
jobName
+
' '
+
build_url
+
' '
+
build_id
+
' '
+
jobResult
+
' '
echo
GitPostArgs
//calling NSA B200
jobName
=
"RAN-NSA-B200-Module-LTEBOX"
jobStatus
=
build
job:
jobName
,
wait
:
true
,
propagate
:
false
,
parameters:
[
string
(
name:
'eNB_MR'
,
value:
String
.
valueOf
(
MR
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
SRC_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
COMMIT_ID
)),
string
(
name:
'eNB_TargetBranch'
,
value:
String
.
valueOf
(
TARGET_BRANCH
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
]
jobResult
=
jobStatus
.
getResult
()
build_url
=
jobStatus
.
getAbsoluteUrl
()
build_id
=
jobStatus
.
getNumber
().
toString
()
GitPostArgs
+=
jobName
+
' '
+
build_url
+
' '
+
build_id
+
' '
+
jobResult
+
' '
echo
GitPostArgs
//calling NSA 2x2
jobName
=
"RAN-NSA-2x2-Module-OAIEPC"
jobStatus
=
build
job:
jobName
,
wait
:
true
,
propagate
:
false
,
parameters:
[
string
(
name:
'eNB_MR'
,
value:
String
.
valueOf
(
MR
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
SRC_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
COMMIT_ID
)),
string
(
name:
'eNB_TargetBranch'
,
value:
String
.
valueOf
(
TARGET_BRANCH
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
]
jobResult
=
jobStatus
.
getResult
()
build_url
=
jobStatus
.
getAbsoluteUrl
()
build_id
=
jobStatus
.
getNumber
().
toString
()
GitPostArgs
+=
jobName
+
' '
+
build_url
+
' '
+
build_id
+
' '
+
jobResult
+
' '
echo
GitPostArgs
//calling SA
jobName
=
"RAN-SA-Module-CN5G"
jobStatus
=
build
job:
jobName
,
wait
:
true
,
propagate
:
false
,
parameters:
[
string
(
name:
'eNB_MR'
,
value:
String
.
valueOf
(
MR
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
SRC_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
COMMIT_ID
)),
string
(
name:
'eNB_TargetBranch'
,
value:
String
.
valueOf
(
TARGET_BRANCH
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
]
jobResult
=
jobStatus
.
getResult
()
build_url
=
jobStatus
.
getAbsoluteUrl
()
build_id
=
jobStatus
.
getNumber
().
toString
()
GitPostArgs
+=
jobName
+
' '
+
build_url
+
' '
+
build_id
+
' '
+
jobResult
+
' '
echo
GitPostArgs
//calling SA-AmariS
jobName
=
"RAN-SA-AmariS-CN5G"
jobStatus
=
build
job:
jobName
,
wait
:
true
,
propagate
:
false
,
parameters:
[
string
(
name:
'eNB_MR'
,
value:
String
.
valueOf
(
MR
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
SRC_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
COMMIT_ID
)),
string
(
name:
'eNB_TargetBranch'
,
value:
String
.
valueOf
(
TARGET_BRANCH
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
]
jobResult
=
jobStatus
.
getResult
()
build_url
=
jobStatus
.
getAbsoluteUrl
()
build_id
=
jobStatus
.
getNumber
().
toString
()
GitPostArgs
+=
jobName
+
' '
+
build_url
+
' '
+
build_id
+
' '
+
jobResult
+
' '
echo
GitPostArgs
//calling OAIUE N310-X300
jobName
=
"RAN-SA-OAIUE-N310-X300-CN5G"
jobStatus
=
build
job:
jobName
,
wait
:
true
,
propagate
:
false
,
parameters:
[
string
(
name:
'eNB_MR'
,
value:
String
.
valueOf
(
MR
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
SRC_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
COMMIT_ID
)),
string
(
name:
'eNB_TargetBranch'
,
value:
String
.
valueOf
(
TARGET_BRANCH
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
Boolean
.
valueOf
(
ALLOW_MERGE
))
]
jobResult
=
jobStatus
.
getResult
()
build_url
=
jobStatus
.
getAbsoluteUrl
()
build_id
=
jobStatus
.
getNumber
().
toString
()
GitPostArgs
+=
jobName
+
' '
+
build_url
+
' '
+
build_id
+
' '
+
jobResult
+
' '
echo
GitPostArgs
//git report the test results in 1 block, at the end of the test sequence of one MR
dir
(
'ci-scripts/ran_dashboard'
)
{
sh
"python3 Hdashboard.py gitpost ${GitPostArgs}"
}
}
}
}
}
}
}
ci-scripts/build_fr1_from_yaml.py
deleted
100755 → 0
View file @
11aeba06
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Jul 7 23:04:51 2020
@author: hardy
"""
import
yaml
import
sys
import
subprocess
def
main
():
f_yaml
=
sys
.
argv
[
1
]
f_sh
=
sys
.
argv
[
2
]
#filename='py_params_template.yaml'
with
open
(
f_yaml
,
'r'
)
as
file
:
# The FullLoader parameter handles the conversion from YAML
# scalar values to Python the dictionary format
print
(
'Loading '
+
f_yaml
)
params
=
yaml
.
load
(
file
,
Loader
=
yaml
.
FullLoader
)
with
open
(
f_sh
,
'w'
)
as
f
:
f
.
write
(
'#!/bin/sh
\n
'
)
for
i
in
range
(
0
,
len
(
params
[
'steps'
])):
step
=
params
[
'steps'
][
i
].
split
(
','
)
mode
=
step
[
0
]
f_xml
=
step
[
1
]
line
=
'python3 main.py '
+
\
'--mode='
+
mode
+
' '
+
\
'--ranRepository='
+
params
[
'ranRepository'
]
+
' '
+
\
'--ranBranch='
+
params
[
'ranBranch'
]
+
' '
+
\
'--ranCommitID='
+
params
[
'ranCommitID'
]
+
' '
+
\
'--ranAllowMerge='
+
params
[
'ranAllowMerge'
]
+
' '
+
\
'--ranTargetBranch='
+
params
[
'ranTargetBranch'
]
+
' '
+
\
\
'--UEIPAddress='
+
params
[
'UE'
][
'UEIPAddress'
]
+
' '
+
\
'--UEUserName='
+
params
[
'UE'
][
'UEUserName'
]
+
' '
+
\
'--UEPassword='
+
params
[
'UE'
][
'UEPassword'
]
+
' '
+
\
'--UESourceCodePath='
+
params
[
'UE'
][
'UESourceCodePath'
]
+
' '
+
\
\
'--EPCIPAddress='
+
params
[
'EPC'
][
'EPCIPAddress'
]
+
' '
+
\
'--EPCUserName='
+
params
[
'EPC'
][
'EPCUserName'
]
+
' '
+
\
'--EPCPassword='
+
params
[
'EPC'
][
'EPCPassword'
]
+
' '
+
\
'--EPCSourceCodePath='
+
params
[
'EPC'
][
'EPCSourceCodePath'
]
+
' '
+
\
'--EPCType='
+
params
[
'EPC'
][
'EPCType'
]
+
' '
+
\
\
'--eNBIPAddress='
+
params
[
'RAN'
][
0
][
'eNBIPAddress'
]
+
' '
+
\
'--eNBUserName='
+
params
[
'RAN'
][
0
][
'eNBUserName'
]
+
' '
+
\
'--eNBPassword='
+
params
[
'RAN'
][
0
][
'eNBPassword'
]
+
' '
+
\
'--eNBSourceCodePath='
+
params
[
'RAN'
][
0
][
'eNBSourceCodePath'
]
+
' '
+
\
\
'--eNB1IPAddress='
+
params
[
'RAN'
][
1
][
'eNB1IPAddress'
]
+
' '
+
\
'--eNB1UserName='
+
params
[
'RAN'
][
1
][
'eNB1UserName'
]
+
' '
+
\
'--eNB1Password='
+
params
[
'RAN'
][
1
][
'eNB1Password'
]
+
' '
+
\
'--eNB1SourceCodePath='
+
params
[
'RAN'
][
1
][
'eNB1SourceCodePath'
]
+
' '
if
mode
!=
"InitiateHtml"
:
line
+=
'--XMLTestFile='
+
f_xml
#if mode is InitiateHTML we have a special processing to mention all xml files from the list
#loop starting at 1 to avoid the xml file mentioned with InitiateHtml in yaml file (file is none)
else
:
for
i
in
range
(
1
,
len
(
params
[
'steps'
])):
step
=
params
[
'steps'
][
i
].
split
(
','
)
f_xml
=
step
[
1
]
line
+=
'--XMLTestFile='
+
f_xml
+
' '
line
+=
'
\n
'
print
(
line
)
f
.
write
(
line
)
subprocess
.
call
([
'chmod'
,
'777'
,
f_sh
])
if
__name__
==
"__main__"
:
main
()
ci-scripts/build_fr1_template.yaml
deleted
100755 → 0
View file @
11aeba06
ranRepository
:
https://gitlab.eurecom.fr/oai/openairinterface5g.git
ranBranch
:
integration_2021_wk13_a
ranCommitID
:
104aa7eed5d6702c1b9da663414079ef698da206
ranAllowMerge
:
'
yes'
ranTargetBranch
:
develop
steps
:
-
InitiateHtml,none
-
TesteNB,xml_files/fr1_multi_node_build.xml
-
TesteNB,xml_files/fr1_epc_start.xml
-
TesteNB,xml_files/fr1_nsa_base_next.xml
#ue toggle, nodes initialize, ue toggle, ping, nodes terminate
-
TesteNB,xml_files/fr1_epc_closure.xml
RAN
:
-
eNBIPAddress
:
192.168.18.199
#eNB on Minimassive
eNBUserName
:
oaicicd
eNBPassword
:
HzB*nkryaITdVd08TKlT#2Z5a!7M#~qn
eNBSourceCodePath
:
/tmp/CI-FR1-eNB
-
eNB1IPAddress
:
192.168.18.198
#gNB on Mozart
eNB1UserName
:
oaicicd
eNB1Password
:
7zkDOFgh@w3HvRBMPTMh@BAx
eNB1SourceCodePath
:
/tmp/CI-FR1-gNB
EPC
:
#on Nikaia
EPCIPAddress
:
192.168.18.99
EPCUserName
:
nikaia
EPCPassword
:
linux
EPCSourceCodePath
:
/tmp/CI-FR1-EPC
EPCType
:
ltebox
UE
:
UEIPAddress
:
none
UEUserName
:
none
UEPassword
:
none
UESourceCodePath
:
none
ci-scripts/checkAddedWarnings.sh
View file @
0dae0551
...
...
@@ -106,11 +106,11 @@ echo "Merged Commit is : $MERGE_COMMMIT"
echo
"Target Init is :
$TARGET_INIT_COMMIT
"
# Retrieve the list of modified files since the latest develop commit
MODIFIED_FILES
=
`
git log
$TARGET_INIT_COMMIT
..
$MERGE_COMMMIT
--oneline
--name-status
|
egrep
"^M|^A"
|
sed
-e
"s@^M
\t
*@@"
-e
"s@^A
\t
*@@"
|
sort
|
uniq
`
MODIFIED_FILES
=
`
git log
$TARGET_INIT_COMMIT
..
$MERGE_COMMMIT
--oneline
--name-status
|
grep
-E
"^M|^A"
|
sed
-e
"s@^M
\t
*@@"
-e
"s@^A
\t
*@@"
|
sort
|
uniq
`
NB_WARNINGS_FILES
=
0
# Retrieve list of warnings
LIST_WARNING_FILES
=
`
egrep
"error:|warning:"
archives/
*
/
*
.txt | egrep
-v
"jobserver unavailable|Clock skew detected."
|
sed
-e
"s#^.*/home/ubuntu/tmp/##"
-e
"s#^.*/tmp/CI-eNB/##"
-e
"s#common/utils/.*/itti#common/utils/itti#"
|
awk
-F
":"
'{print $1}'
|
sort
|
uniq
`
LIST_WARNING_FILES
=
`
grep
-E
"error:|warning:"
archives/
*
/
*
.txt |
grep
-E
-v
"jobserver unavailable|Clock skew detected."
|
sed
-e
"s#^.*/home/ubuntu/tmp/##"
-e
"s#^.*/tmp/CI-eNB/##"
-e
"s#common/utils/.*/itti#common/utils/itti#"
|
awk
-F
":"
'{print $1}'
|
sort
|
uniq
`
echo
""
echo
"List of files that have been modified by the Merge Request AND"
...
...
ci-scripts/checkCodingFormattingRules.sh
View file @
0dae0551
...
...
@@ -64,18 +64,18 @@ then
awk
'/#[ \t]*ifndef/ { gsub("^.*ifndef *",""); if (names[$1]!="") print "files with same {define ", FILENAME, names[$1]; names[$1]=FILENAME } /#[ \t]*define/ { gsub("^.*define *",""); if(names[$1]!=FILENAME) print "error in declaration", FILENAME, $1, names[$1]; nextfile }'
`
find openair
*
common targets executables
-name
*
.h |grep
-v
LFDS
`
>
header-files-w-incorrect-define.txt
# Testing if explicit GNU GPL license banner
egrep
-irl
--exclude-dir
=
.git
--include
=
*
.cpp
--include
=
*
.c
--include
=
*
.h
"General Public License"
.
| egrep
-v
"openair3/NAS/COMMON/milenage.h"
>
files-w-gnu-gpl-license-banner.txt
grep
-E
-irl
--exclude-dir
=
.git
--include
=
*
.cpp
--include
=
*
.c
--include
=
*
.h
"General Public License"
.
|
grep
-E
-v
"openair3/NAS/COMMON/milenage.h"
>
files-w-gnu-gpl-license-banner.txt
# Looking at exotic/suspect banner
LIST_OF_FILES_W_BANNER
=
`
egrep
-irl
--exclude-dir
=
.git
--include
=
*
.cpp
--include
=
*
.c
--include
=
*
.h
"Copyright|copyleft"
.
`
LIST_OF_FILES_W_BANNER
=
`
grep
-E
-irl
--exclude-dir
=
.git
--include
=
*
.cpp
--include
=
*
.c
--include
=
*
.h
"Copyright|copyleft"
.
`
if
[
-f
./files-w-suspect-banner.txt
]
;
then
rm
-f
./files-w-suspect-banner.txt
;
fi
for
FILE
in
$LIST_OF_FILES_W_BANNER
do
IS_NFAPI
=
`
echo
$FILE
|
egrep
-c
"nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"
||
true
`
IS_OAI_LICENCE_PRESENT
=
`
egrep
-c
"OAI Public License"
$FILE
||
true
`
IS_BSD_LICENCE_PRESENT
=
`
egrep
-c
"the terms of the BSD Licence|License-Identifier: BSD-2-Clause"
$FILE
||
true
`
IS_MIT_LICENCE_PRESENT
=
`
egrep
-c
"MIT License"
$FILE
||
true
`
IS_EXCEPTION
=
`
echo
$FILE
|
egrep
-c
"common/utils/collection/tree.h|common/utils/collection/queue.h|openair2/UTIL/OPT/packet-rohc.h|openair3/NAS/COMMON/milenage.h|openair1/PHY/CODING/crc.h|openair1/PHY/CODING/crcext.h|openair1/PHY/CODING/types.h|openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c|openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_offload.h"
||
true
`
IS_NFAPI
=
`
echo
$FILE
|
grep
-E
-c
"nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"
||
true
`
IS_OAI_LICENCE_PRESENT
=
`
grep
-E
-c
"OAI Public License"
$FILE
||
true
`
IS_BSD_LICENCE_PRESENT
=
`
grep
-E
-c
"the terms of the BSD Licence|License-Identifier: BSD-2-Clause"
$FILE
||
true
`
IS_MIT_LICENCE_PRESENT
=
`
grep
-E
-c
"MIT License"
$FILE
||
true
`
IS_EXCEPTION
=
`
echo
$FILE
|
grep
-E
-c
"common/utils/collection/tree.h|common/utils/collection/queue.h|openair2/UTIL/OPT/packet-rohc.h|openair3/NAS/COMMON/milenage.h|openair1/PHY/CODING/crc.h|openair1/PHY/CODING/crcext.h|openair1/PHY/CODING/types.h|openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c|openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_offload.h"
||
true
`
if
[
$IS_OAI_LICENCE_PRESENT
-eq
0
]
&&
[
$IS_BSD_LICENCE_PRESENT
-eq
0
]
&&
[
$IS_MIT_LICENCE_PRESENT
-eq
0
]
then
if
[
$IS_NFAPI
-eq
0
]
&&
[
$IS_EXCEPTION
-eq
0
]
...
...
@@ -147,7 +147,7 @@ echo " ----------------------------------------------------------"
echo
""
# Retrieve the list of modified files since the latest develop commit
MODIFIED_FILES
=
`
git log
$TARGET_INIT_COMMIT
..
$MERGE_COMMMIT
--oneline
--name-status
|
egrep
"^M|^A"
|
sed
-e
"s@^M
\t
*@@"
-e
"s@^A
\t
*@@"
|
sort
|
uniq
`
MODIFIED_FILES
=
`
git log
$TARGET_INIT_COMMIT
..
$MERGE_COMMMIT
--oneline
--name-status
|
grep
-E
"^M|^A"
|
sed
-e
"s@^M
\t
*@@"
-e
"s@^A
\t
*@@"
|
sort
|
uniq
`
NB_TO_FORMAT
=
0
if
[
-f
header-files-w-incorrect-define.txt
]
then
...
...
@@ -173,20 +173,20 @@ do
if
[
$EXT
=
"c"
]
||
[
$EXT
=
"h"
]
||
[
$EXT
=
"cpp"
]
||
[
$EXT
=
"hpp"
]
then
# Testing if explicit GNU GPL license banner
GNU_EXCEPTION
=
`
echo
$FULLFILE
|
egrep
-c
"openair3/NAS/COMMON/milenage.h"
||
true
`
GNU_EXCEPTION
=
`
echo
$FULLFILE
|
grep
-E
-c
"openair3/NAS/COMMON/milenage.h"
||
true
`
if
[
$GNU_EXCEPTION
-eq
0
]
then
egrep
-il
"General Public License"
$FULLFILE
>>
files-w-gnu-gpl-license-banner.txt
grep
-E
-il
"General Public License"
$FULLFILE
>>
files-w-gnu-gpl-license-banner.txt
fi
# Looking at exotic/suspect banner
IS_BANNER
=
`
egrep
-i
-c
"Copyright|copyleft"
$FULLFILE
||
true
`
IS_BANNER
=
`
grep
-E
-i
-c
"Copyright|copyleft"
$FULLFILE
||
true
`
if
[
$IS_BANNER
-ne
0
]
then
IS_NFAPI
=
`
echo
$FULLFILE
|
egrep
-c
"nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"
||
true
`
IS_OAI_LICENCE_PRESENT
=
`
egrep
-c
"OAI Public License"
$FULLFILE
||
true
`
IS_BSD_LICENCE_PRESENT
=
`
egrep
-c
"the terms of the BSD Licence|License-Identifier: BSD-2-Clause"
$FULLFILE
||
true
`
IS_MIT_LICENCE_PRESENT
=
`
egrep
-c
"MIT License"
$FULLFILE
||
true
`
IS_EXCEPTION
=
`
echo
$FULLFILE
|
egrep
-c
"common/utils/collection/tree.h|common/utils/collection/queue.h|openair2/UTIL/OPT/packet-rohc.h|openair3/NAS/COMMON/milenage.h|openair1/PHY/CODING/crc.h|openair1/PHY/CODING/crcext.h|openair1/PHY/CODING/types.h|openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c|openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_offload.h"
||
true
`
IS_NFAPI
=
`
echo
$FULLFILE
|
grep
-E
-c
"nfapi/open-nFAPI|nfapi/oai_integration/vendor_ext"
||
true
`
IS_OAI_LICENCE_PRESENT
=
`
grep
-E
-c
"OAI Public License"
$FULLFILE
||
true
`
IS_BSD_LICENCE_PRESENT
=
`
grep
-E
-c
"the terms of the BSD Licence|License-Identifier: BSD-2-Clause"
$FULLFILE
||
true
`
IS_MIT_LICENCE_PRESENT
=
`
grep
-E
-c
"MIT License"
$FULLFILE
||
true
`
IS_EXCEPTION
=
`
echo
$FULLFILE
|
grep
-E
-c
"common/utils/collection/tree.h|common/utils/collection/queue.h|openair2/UTIL/OPT/packet-rohc.h|openair3/NAS/COMMON/milenage.h|openair1/PHY/CODING/crc.h|openair1/PHY/CODING/crcext.h|openair1/PHY/CODING/types.h|openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c|openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_offload.h"
||
true
`
if
[
$IS_OAI_LICENCE_PRESENT
-eq
0
]
&&
[
$IS_BSD_LICENCE_PRESENT
-eq
0
]
&&
[
$IS_MIT_LICENCE_PRESENT
-eq
0
]
then
if
[
$IS_NFAPI
-eq
0
]
&&
[
$IS_EXCEPTION
-eq
0
]
...
...
ci-scripts/cls_log_mgt.py
deleted
100644 → 0
View file @
11aeba06
# * 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
# */
#---------------------------------------------------------------------
#
# Required Python Version
# Python 3.x
#
#---------------------------------------------------------------------
#USAGE:
# log=Log_Mgt(Username,IPAddress,Password,Path)
# log.LogRotation()
import
logging
import
re
import
subprocess
import
sshconnection
class
Log_Mgt
:
def
__init__
(
self
,
Username
,
IPAddress
,
Password
,
Path
):
self
.
Username
=
Username
self
.
IPAddress
=
IPAddress
self
.
Password
=
Password
self
.
path
=
Path
#-----------------$
#PRIVATE# Methods$
#-----------------$
def
__CheckUsedSpace
(
self
):
HOST
=
self
.
Username
+
'@'
+
self
.
IPAddress
COMMAND
=
"df "
+
self
.
path
ssh
=
subprocess
.
Popen
([
"ssh"
,
"%s"
%
HOST
,
COMMAND
],
shell
=
False
,
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
result
=
ssh
.
stdout
.
readlines
()
s
=
result
[
1
].
decode
(
'utf-8'
).
rstrip
()
#result[1] is the second line with the results we are looking for
used
=
s
.
split
()[
4
]
#get 4th field ex: 70%
m
=
re
.
match
(
'^(\d+)\%'
,
used
)
if
m
is
not
None
:
return
int
(
m
.
group
(
1
))
def
__RemoveOldest
(
self
,
days
):
mySSH
=
sshconnection
.
SSHConnection
()
mySSH
.
open
(
self
.
IPAddress
,
self
.
Username
,
self
.
Password
)
COMMAND
=
'echo '
+
self
.
Password
+
' | sudo -S find '
+
self
.
path
+
' -type f -mtime +'
+
str
(
days
)
+
' -delete'
mySSH
.
command
(
COMMAND
,
'\$'
,
20
)
mySSH
.
close
()
#-----------------$
#PUBLIC Methods$
#-----------------$
def
LogRotation
(
self
):
doLoop
=
True
nbDays
=
14
while
doLoop
and
nbDays
>
1
:
used_space
=
self
.
__CheckUsedSpace
()
#avail space in target folder
if
used_space
>
80
:
logging
.
debug
(
'
\u001B
[1;37;41m Used Disk ('
+
str
(
used_space
)
+
'%) > 80%, on '
+
self
.
Username
+
'@'
+
self
.
IPAddress
+
'
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;37;41m Removing Artifacts older than '
+
str
(
nbDays
)
+
' days
\u001B
[0m'
)
self
.
__RemoveOldest
(
nbDays
)
nbDays
-=
1
else
:
logging
.
debug
(
'Used Disk ('
+
str
(
used_space
)
+
'%) < 80%, on '
+
self
.
Username
+
'@'
+
self
.
IPAddress
+
', no cleaning required'
)
doLoop
=
False
ci-scripts/cls_module.py
View file @
0dae0551
...
...
@@ -35,8 +35,6 @@ import subprocess
from
datetime
import
datetime
import
yaml
#for log rotation mgt
import
cls_log_mgt
import
cls_cmd
class
Module_UE
:
...
...
@@ -220,25 +218,6 @@ class Module_UE:
def
_disableTrace
(
self
):
raise
Exception
(
"not implemented"
)
mySSH
=
sshconnection
.
SSHConnection
()
mySSH
.
open
(
self
.
HostIPAddress
,
self
.
HostUsername
,
self
.
HostPassword
)
mySSH
.
command
(
'echo '
+
' '
+
' | sudo -S killall --signal=SIGINT *QLog*'
,
'\$'
,
5
)
mySSH
.
close
()
def
_logCollect
(
self
):
raise
Exception
(
"not implemented"
)
mySSH
=
sshconnection
.
SSHConnection
()
mySSH
.
open
(
self
.
HostIPAddress
,
self
.
HostUsername
,
self
.
HostPassword
)
#archive qlog to USB stick in /media/usb-drive/ci_qlogs with datetime suffix
now
=
datetime
.
now
()
now_string
=
now
.
strftime
(
"%Y%m%d-%H%M"
)
source
=
'ci_qlog'
destination
=
self
.
LogStore
+
'/ci_qlog_'
+
now_string
+
'.zip'
#qlog artifact is zipped into the target folder
mySSH
.
command
(
'echo $USER; echo '
+
' '
+
' | nohup sudo -S zip -r '
+
destination
+
' '
+
source
+
' > /dev/null 2>&1 &'
,
'\$'
,
10
)
mySSH
.
close
()
#post action : log cleaning to make sure enough space is reserved for the next run
Log_Mgt
=
cls_log_mgt
.
Log_Mgt
(
self
.
HostUsername
,
self
.
HostIPAddress
,
self
.
HostPassword
,
self
.
LogStore
)
return
destination
ci-scripts/cls_oaicitest.py
View file @
0dae0551
...
...
@@ -254,30 +254,14 @@ class OaiCiTest():
self
.
iperf_profile
=
''
self
.
iperf_options
=
''
self
.
iperf_tcp_rate_target
=
''
self
.
nbMaxUEtoAttach
=
-
1
self
.
UEDevices
=
[]
self
.
UEDevicesStatus
=
[]
self
.
UEDevicesRemoteServer
=
[]
self
.
UEDevicesRemoteUser
=
[]
self
.
UEDevicesOffCmd
=
[]
self
.
UEDevicesOnCmd
=
[]
self
.
UEDevicesRebootCmd
=
[]
self
.
idle_sleep_time
=
0
self
.
x2_ho_options
=
'network'
self
.
x2NbENBs
=
0
self
.
x2ENBBsIds
=
[]
self
.
x2ENBConnectedUEs
=
[]
self
.
repeatCounts
=
[]
self
.
finalStatus
=
False
self
.
UEIPAddress
=
''
self
.
UEUserName
=
''
self
.
UEPassword
=
''
self
.
UE_instance
=
0
self
.
UESourceCodePath
=
''
self
.
UELogFile
=
''
self
.
Build_OAI_UE_args
=
''
self
.
Initialize_OAI_UE_args
=
''
self
.
clean_repository
=
True
self
.
air_interface
=
''
self
.
ue_ids
=
[]
self
.
nodes
=
[]
...
...
@@ -285,112 +269,6 @@ class OaiCiTest():
self
.
svr_id
=
None
self
.
cmd_prefix
=
''
# prefix before {lte,nr}-uesoftmodem
def
BuildOAIUE
(
self
,
HTML
):
if
self
.
UEIPAddress
==
''
or
self
.
ranRepository
==
''
or
self
.
ranBranch
==
''
or
self
.
UEUserName
==
''
or
self
.
UEPassword
==
''
or
self
.
UESourceCodePath
==
''
:
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
'Insufficient Parameter'
)
SSH
=
sshconnection
.
SSHConnection
()
SSH
.
open
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
)
result
=
re
.
search
(
'--nrUE'
,
self
.
Build_OAI_UE_args
)
if
result
is
not
None
:
self
.
air_interface
=
'nr-uesoftmodem'
ue_prefix
=
'NR '
else
:
self
.
air_interface
=
'lte-uesoftmodem'
ue_prefix
=
''
result
=
re
.
search
(
'([a-zA-Z0-9\:\-\.\/])+\.git'
,
self
.
ranRepository
)
if
result
is
not
None
:
full_ran_repo_name
=
self
.
ranRepository
.
replace
(
'git/'
,
'git'
)
else
:
full_ran_repo_name
=
self
.
ranRepository
+
'.git'
SSH
.
command
(
f'mkdir -p
{
self
.
UESourceCodePath
}
'
,
'\$'
,
5
)
SSH
.
command
(
f'cd
{
self
.
UESourceCodePath
}
'
,
'\$'
,
5
)
SSH
.
command
(
f'if [ ! -e .git ]; then stdbuf -o0 git clone
{
full_ran_repo_name
}
.; else stdbuf -o0 git fetch --prune; fi'
,
'\$'
,
600
)
# here add a check if git clone or git fetch went smoothly
SSH
.
command
(
'git config user.email "jenkins@openairinterface.org"'
,
'\$'
,
5
)
SSH
.
command
(
'git config user.name "OAI Jenkins"'
,
'\$'
,
5
)
if
self
.
clean_repository
:
SSH
.
command
(
'ls *.txt'
,
'\$'
,
5
)
result
=
re
.
search
(
'LAST_BUILD_INFO'
,
SSH
.
getBefore
())
if
result
is
not
None
:
mismatch
=
False
SSH
.
command
(
'grep --colour=never SRC_COMMIT LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
result
=
re
.
search
(
self
.
ranCommitID
,
SSH
.
getBefore
())
if
result
is
None
:
mismatch
=
True
SSH
.
command
(
'grep --colour=never MERGED_W_TGT_BRANCH LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
if
self
.
ranAllowMerge
:
result
=
re
.
search
(
'YES'
,
SSH
.
getBefore
())
if
result
is
None
:
mismatch
=
True
SSH
.
command
(
'grep --colour=never TGT_BRANCH LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
if
self
.
ranTargetBranch
==
''
:
result
=
re
.
search
(
'develop'
,
SSH
.
getBefore
())
else
:
result
=
re
.
search
(
self
.
ranTargetBranch
,
SSH
.
getBefore
())
if
result
is
None
:
mismatch
=
True
else
:
result
=
re
.
search
(
'NO'
,
SSH
.
getBefore
())
if
result
is
None
:
mismatch
=
True
if
not
mismatch
:
SSH
.
close
()
HTML
.
CreateHtmlTestRow
(
self
.
Build_OAI_UE_args
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
return
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S git clean -x -d -ff'
,
'\$'
,
30
)
# if the commit ID is provided use it to point to it
if
self
.
ranCommitID
!=
''
:
SSH
.
command
(
f'git checkout -f
{
self
.
ranCommitID
}
'
,
'\$'
,
30
)
# if the branch is not develop, then it is a merge request and we need to do
# the potential merge. Note that merge conflicts should already been checked earlier
if
self
.
ranAllowMerge
:
if
self
.
ranTargetBranch
==
''
:
if
(
self
.
ranBranch
!=
'develop'
)
and
(
self
.
ranBranch
!=
'origin/develop'
):
SSH
.
command
(
'git merge --ff origin/develop -m "Temporary merge for CI"'
,
'\$'
,
30
)
else
:
logging
.
debug
(
f'Merging with the target branch:
{
self
.
ranTargetBranch
}
'
)
SSH
.
command
(
f'git merge --ff origin/
{
self
.
ranTargetBranch
}
-m "Temporary merge for CI"'
,
'\$'
,
30
)
SSH
.
command
(
'source oaienv'
,
'\$'
,
5
)
SSH
.
command
(
'cd cmake_targets'
,
'\$'
,
5
)
SSH
.
command
(
'mkdir -p log'
,
'\$'
,
5
)
SSH
.
command
(
'chmod 777 log'
,
'\$'
,
5
)
# no need to remove in log (git clean did the trick)
SSH
.
command
(
f'stdbuf -o0 ./build_oai
{
self
.
Build_OAI_UE_args
}
2>&1 | stdbuf -o0 tee compile_oai_ue.log'
,
'Bypassing the Tests|build have failed'
,
1200
)
SSH
.
command
(
'ls ran_build/build'
,
'\$'
,
3
)
SSH
.
command
(
'ls ran_build/build'
,
'\$'
,
3
)
buildStatus
=
True
result
=
re
.
search
(
self
.
air_interface
,
SSH
.
getBefore
())
if
result
is
None
:
buildStatus
=
False
SSH
.
command
(
f'mkdir -p build_log_
{
self
.
testCase_id
}
'
,
'\$'
,
5
)
SSH
.
command
(
f'mv log/* build_log_
{
self
.
testCase_id
}
'
,
'\$'
,
5
)
SSH
.
command
(
f'mv compile_oai_ue.log build_log_
{
self
.
testCase_id
}
'
,
'\$'
,
5
)
if
buildStatus
:
# Generating a BUILD INFO file
SSH
.
command
(
f'echo "SRC_BRANCH:
{
self
.
ranBranch
}
" > ../LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
SSH
.
command
(
f'echo "SRC_COMMIT:
{
self
.
ranCommitID
}
" >> ../LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
if
self
.
ranAllowMerge
:
SSH
.
command
(
'echo "MERGED_W_TGT_BRANCH: YES" >> ../LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
if
self
.
ranTargetBranch
==
''
:
SSH
.
command
(
'echo "TGT_BRANCH: develop" >> ../LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
else
:
SSH
.
command
(
f'echo "TGT_BRANCH:
{
self
.
ranTargetBranch
}
" >> ../LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
else
:
SSH
.
command
(
'echo "MERGED_W_TGT_BRANCH: NO" >> ../LAST_BUILD_INFO.txt'
,
'\$'
,
2
)
SSH
.
close
()
HTML
.
CreateHtmlTestRow
(
self
.
Build_OAI_UE_args
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
,
'OAI UE'
)
else
:
SSH
.
close
()
logging
.
error
(
'
\u001B
[1m Building OAI UE Failed
\u001B
[0m'
)
HTML
.
CreateHtmlTestRow
(
self
.
Build_OAI_UE_args
,
'KO'
,
CONST
.
ALL_PROCESSES_OK
,
'OAI UE'
)
HTML
.
CreateHtmlTabFooter
(
False
)
self
.
ConditionalExit
()
def
InitializeUE
(
self
,
HTML
):
ues
=
[
cls_module
.
Module_UE
(
n
.
strip
())
for
n
in
self
.
ue_ids
]
messages
=
[]
...
...
@@ -402,211 +280,6 @@ class OaiCiTest():
[
f
.
result
()
for
f
in
futures
]
HTML
.
CreateHtmlTestRowQueue
(
'N/A'
,
'OK'
,
messages
)
def
InitializeOAIUE
(
self
,
HTML
,
RAN
,
EPC
,
CONTAINERS
):
if
self
.
UEIPAddress
==
''
or
self
.
UEUserName
==
''
or
self
.
UEPassword
==
''
or
self
.
UESourceCodePath
==
''
:
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
'Insufficient Parameter'
)
if
self
.
air_interface
==
'lte-uesoftmodem'
:
result
=
re
.
search
(
'--no-L2-connect'
,
str
(
self
.
Initialize_OAI_UE_args
))
if
result
is
None
:
check_eNB
=
True
check_OAI_UE
=
False
UE_prefix
=
''
else
:
UE_prefix
=
'NR '
SSH
=
sshconnection
.
SSHConnection
()
SSH
.
open
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
)
SSH
.
command
(
f'cd
{
self
.
UESourceCodePath
}
'
,
'\$'
,
5
)
# Initialize_OAI_UE_args usually start with -C and followed by the location in repository
SSH
.
command
(
'source oaienv'
,
'\$'
,
5
)
SSH
.
command
(
'cd cmake_targets/ran_build/build'
,
'\$'
,
5
)
if
self
.
air_interface
==
'lte-uesoftmodem'
:
result
=
re
.
search
(
'--no-L2-connect'
,
str
(
self
.
Initialize_OAI_UE_args
))
# We may have to regenerate the .u* files
if
result
is
None
:
SSH
.
command
(
'ls /tmp/*.sed'
,
'\$'
,
5
)
result
=
re
.
search
(
'adapt_usim_parameters'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
'sed -f /tmp/adapt_usim_parameters.sed ../../../openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf > ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf'
,
'\$'
,
5
)
else
:
SSH
.
command
(
'sed -e "s#93#92#" -e "s#8baf473f2f8fd09487cccbd7097c6862#fec86ba6eb707ed08905757b1bb44b8f#" -e "s#e734f8734007d6c5ce7a0508809e7e9c#C42449363BBAD02B66D16BC975D77CC1#" ../../../openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf > ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf'
,
'\$'
,
5
)
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S rm -Rf .u*'
,
'\$'
,
5
)
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S ../../nas_sim_tools/build/conf2uedata -c ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf -o .'
,
'\$'
,
5
)
else
:
SSH
.
command
(
f'if [ -e rbconfig.raw ]; then echo
{
self
.
UEPassword
}
| sudo -S rm rbconfig.raw; fi'
,
'\$'
,
5
)
SSH
.
command
(
f'if [ -e reconfig.raw ]; then echo
{
self
.
UEPassword
}
| sudo -S rm reconfig.raw; fi'
,
'\$'
,
5
)
# Copy the RAW files from gNB running directory (maybe on another machine)
copyin_res
=
SSH
.
copyin
(
RAN
.
eNBIPAddress
,
RAN
.
eNBUserName
,
RAN
.
eNBPassword
,
RAN
.
eNBSourceCodePath
+
'/cmake_targets/rbconfig.raw'
,
'.'
)
if
(
copyin_res
==
0
):
SSH
.
copyout
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
,
'./rbconfig.raw'
,
self
.
UESourceCodePath
+
'/cmake_targets/ran_build/build'
)
copyin_res
=
SSH
.
copyin
(
RAN
.
eNBIPAddress
,
RAN
.
eNBUserName
,
RAN
.
eNBPassword
,
RAN
.
eNBSourceCodePath
+
'/cmake_targets/reconfig.raw'
,
'.'
)
if
(
copyin_res
==
0
):
SSH
.
copyout
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
,
'./reconfig.raw'
,
self
.
UESourceCodePath
+
'/cmake_targets/ran_build/build'
)
SSH
.
command
(
f'echo "ulimit -c unlimited &&
{
self
.
cmd_prefix
}
./
{
self
.
air_interface
}
{
self
.
Initialize_OAI_UE_args
}
" > ./my-lte-uesoftmodem-run
{
self
.
UE_instance
}
.sh'
,
'\$'
,
5
)
SSH
.
command
(
f'chmod 775 ./my-lte-uesoftmodem-run
{
self
.
UE_instance
}
.sh'
,
'\$'
,
5
)
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S rm -Rf
{
self
.
UESourceCodePath
}
/cmake_targets/ue_
{
self
.
testCase_id
}
.log'
,
'\$'
,
5
)
self
.
UELogFile
=
f'ue_
{
self
.
testCase_id
}
.log'
# We are now looping several times to hope we really sync w/ an eNB
doOutterLoop
=
True
outterLoopCounter
=
5
gotSyncStatus
=
True
fullSyncStatus
=
True
while
(
doOutterLoop
):
SSH
.
command
(
f'cd
{
self
.
UESourceCodePath
}
/cmake_targets/ran_build/build'
,
'\$'
,
5
)
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S rm -Rf
{
self
.
UESourceCodePath
}
/cmake_targets/ue_
{
self
.
testCase_id
}
.log'
,
'\$'
,
5
)
SSH
.
command
(
f'echo $USER; nohup sudo -E stdbuf -o0 ./my-lte-uesoftmodem-run
{
self
.
UE_instance
}
.sh >
{
self
.
UESourceCodePath
}
/cmake_targets/ue_
{
self
.
testCase_id
}
.log 2>&1 &'
,
self
.
UEUserName
,
5
)
time
.
sleep
(
6
)
SSH
.
command
(
'cd ../..'
,
'\$'
,
5
)
doLoop
=
True
loopCounter
=
10
gotSyncStatus
=
True
# the 'got sync' message is for the UE threads synchronization
while
(
doLoop
):
loopCounter
=
loopCounter
-
1
if
(
loopCounter
==
0
):
# Here should never occur
logging
.
error
(
'"got sync" message never showed!'
)
gotSyncStatus
=
False
doLoop
=
False
continue
SSH
.
command
(
f'stdbuf -o0 cat ue_
{
self
.
testCase_id
}
.log | egrep --text --color=never -i "wait|sync"'
,
'\$'
,
4
)
if
self
.
air_interface
==
'nr-uesoftmodem'
:
result
=
re
.
search
(
'Starting sync detection'
,
SSH
.
getBefore
())
else
:
result
=
re
.
search
(
'got sync'
,
SSH
.
getBefore
())
if
result
is
None
:
time
.
sleep
(
10
)
else
:
doLoop
=
False
logging
.
debug
(
'Found "got sync" message!'
)
if
gotSyncStatus
==
False
:
# we certainly need to stop the lte-uesoftmodem process if it is still running!
SSH
.
command
(
'ps -aux | grep --text --color=never softmodem | grep -v grep'
,
'\$'
,
4
)
result
=
re
.
search
(
'-uesoftmodem'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S killall --signal=SIGINT -r *-uesoftmodem'
,
'\$'
,
4
)
time
.
sleep
(
3
)
outterLoopCounter
=
outterLoopCounter
-
1
if
(
outterLoopCounter
==
0
):
doOutterLoop
=
False
continue
# We are now checking if sync w/ eNB DOES NOT OCCUR
# Usually during the cell synchronization stage, the UE returns with No cell synchronization message
# That is the case for LTE
# In NR case, it's a positive message that will show if synchronization occurs
doLoop
=
True
if
self
.
air_interface
==
'nr-uesoftmodem'
:
loopCounter
=
10
else
:
# We are now checking if sync w/ eNB DOES NOT OCCUR
# Usually during the cell synchronization stage, the UE returns with No cell synchronization message
loopCounter
=
10
while
(
doLoop
):
loopCounter
=
loopCounter
-
1
if
(
loopCounter
==
0
):
if
self
.
air_interface
==
'nr-uesoftmodem'
:
# Here we do have great chances that UE did NOT cell-sync w/ gNB
doLoop
=
False
fullSyncStatus
=
False
logging
.
debug
(
'Never seen the NR-Sync message (Measured Carrier Frequency) --> try again'
)
time
.
sleep
(
6
)
# Stopping the NR-UE
SSH
.
command
(
'ps -aux | grep --text --color=never softmodem | grep -v grep'
,
'\$'
,
4
)
result
=
re
.
search
(
'nr-uesoftmodem'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S killall --signal=SIGINT nr-uesoftmodem'
,
'\$'
,
4
)
time
.
sleep
(
6
)
else
:
# Here we do have a great chance that the UE did cell-sync w/ eNB
doLoop
=
False
doOutterLoop
=
False
fullSyncStatus
=
True
continue
SSH
.
command
(
f'stdbuf -o0 cat ue_
{
self
.
testCase_id
}
.log | egrep --text --color=never -i "wait|sync|Frequency"'
,
'\$'
,
4
)
if
self
.
air_interface
==
'nr-uesoftmodem'
:
# Positive messaging -->
result
=
re
.
search
(
'Measured Carrier Frequency'
,
SSH
.
getBefore
())
if
result
is
not
None
:
doLoop
=
False
doOutterLoop
=
False
fullSyncStatus
=
True
else
:
time
.
sleep
(
6
)
else
:
# Negative messaging -->
result
=
re
.
search
(
'No cell synchronization found'
,
SSH
.
getBefore
())
if
result
is
None
:
time
.
sleep
(
6
)
else
:
doLoop
=
False
fullSyncStatus
=
False
logging
.
debug
(
'Found: "No cell synchronization" message! --> try again'
)
time
.
sleep
(
6
)
SSH
.
command
(
'ps -aux | grep --text --color=never softmodem | grep -v grep'
,
'\$'
,
4
)
result
=
re
.
search
(
'lte-uesoftmodem'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S killall --signal=SIGINT lte-uesoftmodem'
,
'\$'
,
4
)
outterLoopCounter
=
outterLoopCounter
-
1
if
(
outterLoopCounter
==
0
):
doOutterLoop
=
False
if
fullSyncStatus
and
gotSyncStatus
:
doInterfaceCheck
=
False
if
self
.
air_interface
==
'lte-uesoftmodem'
:
result
=
re
.
search
(
'--no-L2-connect'
,
str
(
self
.
Initialize_OAI_UE_args
))
if
result
is
None
:
doInterfaceCheck
=
True
# For the moment, only in explicit noS1 without kernel module (ie w/ tunnel interface)
if
self
.
air_interface
==
'nr-uesoftmodem'
:
result
=
re
.
search
(
'--noS1'
,
str
(
self
.
Initialize_OAI_UE_args
))
if
result
is
not
None
:
doInterfaceCheck
=
True
if
doInterfaceCheck
:
SSH
.
command
(
'ifconfig oaitun_ue1'
,
'\$'
,
4
)
SSH
.
command
(
'ifconfig oaitun_ue1'
,
'\$'
,
4
)
# ifconfig output is different between ubuntu 16 and ubuntu 18
result
=
re
.
search
(
'inet addr:[0-9]|inet [0-9]'
,
SSH
.
getBefore
())
if
result
is
not
None
:
logging
.
debug
(
'
\u001B
[1m oaitun_ue1 interface is mounted and configured
\u001B
[0m'
)
tunnelInterfaceStatus
=
True
else
:
logging
.
debug
(
SSH
.
getBefore
())
logging
.
error
(
'
\u001B
[1m oaitun_ue1 interface is either NOT mounted or NOT configured
\u001B
[0m'
)
tunnelInterfaceStatus
=
False
if
RAN
.
eNBmbmsEnables
[
0
]:
SSH
.
command
(
'ifconfig oaitun_uem1'
,
'\$'
,
4
)
result
=
re
.
search
(
'inet addr'
,
SSH
.
getBefore
())
if
result
is
not
None
:
logging
.
debug
(
'
\u001B
[1m oaitun_uem1 interface is mounted and configured
\u001B
[0m'
)
tunnelInterfaceStatus
=
tunnelInterfaceStatus
and
True
else
:
logging
.
error
(
'
\u001B
[1m oaitun_uem1 interface is either NOT mounted or NOT configured
\u001B
[0m'
)
tunnelInterfaceStatus
=
False
else
:
tunnelInterfaceStatus
=
True
else
:
tunnelInterfaceStatus
=
True
SSH
.
close
()
if
fullSyncStatus
and
gotSyncStatus
and
tunnelInterfaceStatus
:
HTML
.
CreateHtmlTestRow
(
self
.
air_interface
+
' '
+
self
.
Initialize_OAI_UE_args
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
,
'OAI UE'
)
logging
.
debug
(
'
\u001B
[1m Initialize OAI UE Completed
\u001B
[0m'
)
else
:
if
self
.
air_interface
==
'lte-uesoftmodem'
:
if
RAN
.
eNBmbmsEnables
[
0
]:
HTML
.
htmlUEFailureMsg
=
'oaitun_ue1/oaitun_uem1 interfaces are either NOT mounted or NOT configured'
else
:
HTML
.
htmlUEFailureMsg
=
'oaitun_ue1 interface is either NOT mounted or NOT configured'
HTML
.
CreateHtmlTestRow
(
self
.
air_interface
+
' '
+
self
.
Initialize_OAI_UE_args
,
'KO'
,
CONST
.
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE
,
'OAI UE'
)
else
:
HTML
.
htmlUEFailureMsg
=
'nr-uesoftmodem did NOT synced'
HTML
.
CreateHtmlTestRow
(
self
.
air_interface
+
' '
+
self
.
Initialize_OAI_UE_args
,
'KO'
,
CONST
.
OAI_UE_PROCESS_COULD_NOT_SYNC
,
'OAI UE'
)
logging
.
error
(
'
\033
[91mInitialize OAI UE Failed!
\033
[0m'
)
self
.
AutoTerminateUEandeNB
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
def
AttachUE
(
self
,
HTML
,
RAN
,
EPC
,
CONTAINERS
):
ues
=
[
cls_module
.
Module_UE
(
ue_id
,
server_name
)
for
ue_id
,
server_name
in
zip
(
self
.
ue_ids
,
self
.
nodes
)]
with
concurrent
.
futures
.
ThreadPoolExecutor
(
max_workers
=
64
)
as
executor
:
...
...
@@ -1186,69 +859,7 @@ class OaiCiTest():
messages
=
[
f"UE
{
ue
.
getName
()
}
:
{
log
}
"
for
(
ue
,
log
)
in
zip
(
ues
,
archive_info
)]
HTML
.
CreateHtmlTestRowQueue
(
f'N/A'
,
'OK'
,
messages
)
def
TerminateOAIUE
(
self
,
HTML
,
RAN
,
EPC
,
CONTAINERS
):
SSH
=
sshconnection
.
SSHConnection
()
SSH
.
open
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
)
SSH
.
command
(
f'cd
{
self
.
UESourceCodePath
}
/cmake_targets'
,
'\$'
,
5
)
SSH
.
command
(
'ps -aux | grep --color=never softmodem | grep -v grep'
,
'\$'
,
5
)
result
=
re
.
search
(
'-uesoftmodem'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S killall --signal SIGINT -r .*-uesoftmodem || true'
,
'\$'
,
5
)
time
.
sleep
(
10
)
SSH
.
command
(
'ps -aux | grep --color=never softmodem | grep -v grep'
,
'\$'
,
5
)
result
=
re
.
search
(
'-uesoftmodem'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S killall --signal SIGKILL -r .*-uesoftmodem || true'
,
'\$'
,
5
)
time
.
sleep
(
5
)
SSH
.
command
(
f'rm -f my-lte-uesoftmodem-run
{
self
.
UE_instance
}
.sh'
,
'\$'
,
5
)
SSH
.
close
()
result
=
re
.
search
(
'ue_'
,
str
(
self
.
UELogFile
))
if
result
is
not
None
:
copyin_res
=
SSH
.
copyin
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
,
f'
{
self
.
UESourceCodePath
}
/cmake_targets/
{
self
.
UELogFile
}
'
,
'.'
)
if
(
copyin_res
==
-
1
):
logging
.
debug
(
'
\u001B
[1;37;41m Could not copy UE logfile to analyze it!
\u001B
[0m'
)
HTML
.
htmlUEFailureMsg
=
'Could not copy UE logfile to analyze it!'
HTML
.
CreateHtmlTestRow
(
'N/A'
,
'KO'
,
CONST
.
OAI_UE_PROCESS_NOLOGFILE_TO_ANALYZE
,
'UE'
)
self
.
UELogFile
=
''
return
logging
.
debug
(
'
\u001B
[1m Analyzing UE logfile
\u001B
[0m'
)
logStatus
=
self
.
AnalyzeLogFile_UE
(
self
.
UELogFile
,
HTML
,
RAN
)
result
=
re
.
search
(
'--no-L2-connect'
,
str
(
self
.
Initialize_OAI_UE_args
))
if
result
is
not
None
:
ueAction
=
'Sniffing'
else
:
ueAction
=
'Connection'
if
(
logStatus
<
0
):
logging
.
debug
(
f'
\u001B
[1m
{
ueAction
}
Failed
\u001B
[0m'
)
HTML
.
htmlUEFailureMsg
=
'<b>'
+
ueAction
+
' Failed</b>
\n
'
+
HTML
.
htmlUEFailureMsg
HTML
.
CreateHtmlTestRow
(
'N/A'
,
'KO'
,
logStatus
,
'UE'
)
if
self
.
air_interface
==
'lte-uesoftmodem'
:
# In case of sniffing on commercial eNBs we have random results
# Not an error then
if
(
logStatus
!=
CONST
.
OAI_UE_PROCESS_COULD_NOT_SYNC
)
or
(
ueAction
!=
'Sniffing'
):
self
.
Initialize_OAI_UE_args
=
''
self
.
AutoTerminateUEandeNB
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
else
:
if
(
logStatus
==
CONST
.
OAI_UE_PROCESS_COULD_NOT_SYNC
):
self
.
Initialize_OAI_UE_args
=
''
self
.
AutoTerminateUEandeNB
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
else
:
logging
.
debug
(
f'
\u001B
[1m
{
ueAction
}
Completed
\u001B
[0m'
)
HTML
.
htmlUEFailureMsg
=
'<b>'
+
ueAction
+
' Completed</b>
\n
'
+
HTML
.
htmlUEFailureMsg
HTML
.
CreateHtmlTestRow
(
'N/A'
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
self
.
UELogFile
=
''
else
:
HTML
.
CreateHtmlTestRow
(
'N/A'
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
def
AutoTerminateUEandeNB
(
self
,
HTML
,
RAN
,
EPC
,
CONTAINERS
):
# TODO: terminate UE?
if
(
self
.
Initialize_OAI_UE_args
!=
''
):
self
.
testCase_id
=
'AUTO-KILL-OAI-UE'
HTML
.
testCase_id
=
self
.
testCase_id
self
.
desc
=
'Automatic Termination of OAI-UE'
HTML
.
desc
=
self
.
desc
self
.
ShowTestID
()
self
.
TerminateOAIUE
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
if
(
RAN
.
Initialize_eNB_args
!=
''
):
self
.
testCase_id
=
'AUTO-KILL-RAN'
HTML
.
testCase_id
=
self
.
testCase_id
...
...
@@ -1310,55 +921,6 @@ class OaiCiTest():
time
.
sleep
(
self
.
idle_sleep_time
)
HTML
.
CreateHtmlTestRow
(
str
(
self
.
idle_sleep_time
)
+
' sec'
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
def
X2_Status
(
self
,
idx
,
fileName
,
EPC
):
cmd
=
"curl --silent http://"
+
EPC
.
IPAddress
+
":9999/stats | jq '.' > "
+
fileName
message
=
cmd
+
'
\n
'
logging
.
debug
(
cmd
)
subprocess
.
run
(
cmd
,
shell
=
True
)
if
idx
==
0
:
cmd
=
"jq '.mac_stats | length' "
+
fileName
strNbEnbs
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
universal_newlines
=
True
)
self
.
x2NbENBs
=
int
(
strNbEnbs
.
strip
())
cnt
=
0
while
cnt
<
self
.
x2NbENBs
:
cmd
=
"jq '.mac_stats["
+
str
(
cnt
)
+
"].bs_id' "
+
fileName
bs_id
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
universal_newlines
=
True
)
self
.
x2ENBBsIds
[
idx
].
append
(
bs_id
.
strip
())
cmd
=
"jq '.mac_stats["
+
str
(
cnt
)
+
"].ue_mac_stats | length' "
+
fileName
stNbUEs
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
universal_newlines
=
True
)
nbUEs
=
int
(
stNbUEs
.
strip
())
ueIdx
=
0
self
.
x2ENBConnectedUEs
[
idx
].
append
([])
while
ueIdx
<
nbUEs
:
cmd
=
"jq '.mac_stats["
+
str
(
cnt
)
+
"].ue_mac_stats["
+
str
(
ueIdx
)
+
"].rnti' "
+
fileName
rnti
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
universal_newlines
=
True
)
self
.
x2ENBConnectedUEs
[
idx
][
cnt
].
append
(
rnti
.
strip
())
ueIdx
+=
1
cnt
+=
1
cnt
=
0
while
cnt
<
self
.
x2NbENBs
:
msg
=
" -- eNB: "
+
str
(
self
.
x2ENBBsIds
[
idx
][
cnt
])
+
" is connected to "
+
str
(
len
(
self
.
x2ENBConnectedUEs
[
idx
][
cnt
]))
+
" UE(s)"
logging
.
debug
(
msg
)
message
+=
msg
+
'
\n
'
ueIdx
=
0
while
ueIdx
<
len
(
self
.
x2ENBConnectedUEs
[
idx
][
cnt
]):
msg
=
" -- UE rnti: "
+
str
(
self
.
x2ENBConnectedUEs
[
idx
][
cnt
][
ueIdx
])
logging
.
debug
(
msg
)
message
+=
msg
+
'
\n
'
ueIdx
+=
1
cnt
+=
1
return
message
def
Perform_X2_Handover
(
self
,
HTML
,
RAN
,
EPC
):
html_queue
=
SimpleQueue
()
fullMessage
=
'<pre style="background-color:white">'
msg
=
f'Doing X2 Handover w/ option
{
self
.
x2_ho_options
}
'
logging
.
debug
(
msg
)
fullMessage
+=
msg
+
'
\n
'
if
self
.
x2_ho_options
==
'network'
:
HTML
.
CreateHtmlTestRow
(
'Cannot perform requested X2 Handover'
,
'KO'
,
CONST
.
ALL_PROCESSES_OK
)
def
LogCollectBuild
(
self
,
RAN
):
# Some pipelines are using "none" IP / Credentials
# In that case, just forget about it
...
...
ci-scripts/cls_physim1.py
View file @
0dae0551
...
...
@@ -214,7 +214,7 @@ class PhySim:
mySSH
.
command
(
'for pod in $(oc get pods | tail -n +2 | awk
\'
{print $1}
\'
); do oc describe pod $pod >> cmake_targets/log/physim_pods_summary.txt; done'
,
'\$'
,
10
)
mySSH
.
copyin
(
lIpAddr
,
lUserName
,
lPassWord
,
lSourcePath
+
'/cmake_targets/log/physim_test.txt'
,
'.'
)
try
:
listLogFiles
=
subprocess
.
check_output
(
'
egrep
--colour=never "Execution Log file|Linux oai-" physim_test.txt'
,
shell
=
True
,
universal_newlines
=
True
)
listLogFiles
=
subprocess
.
check_output
(
'
grep -E
--colour=never "Execution Log file|Linux oai-" physim_test.txt'
,
shell
=
True
,
universal_newlines
=
True
)
for
line
in
listLogFiles
.
split
(
'
\n
'
):
res1
=
re
.
search
(
'Linux (?P<pod>oai-[a-zA-Z0-9\-]+) '
,
str
(
line
))
res2
=
re
.
search
(
'Execution Log file = (?P<name>[a-zA-Z0-9\-\/\.\_\+]+)'
,
str
(
line
))
...
...
ci-scripts/doGitLabMerge.sh
View file @
0dae0551
...
...
@@ -126,7 +126,7 @@ git config user.email "jenkins@openairinterface.org"
git config user.name
"OAI Jenkins"
git checkout
-f
$SOURCE_COMMIT_ID
>
checkout.txt 2>&1
STATUS
=
`
egrep
-c
"fatal: reference is not a tree"
checkout.txt
`
STATUS
=
`
grep
-E
-c
"fatal: reference is not a tree"
checkout.txt
`
rm
-f
checkout.txt
if
[
$STATUS
-ne
0
]
then
...
...
@@ -137,7 +137,7 @@ fi
git merge
--ff
$TARGET_COMMIT_ID
-m
"Temporary merge for CI"
STATUS
=
`
git status |
egrep
-c
"You have unmerged paths.|fix conflicts"
`
STATUS
=
`
git status |
grep
-E
-c
"You have unmerged paths.|fix conflicts"
`
if
[
$STATUS
-ne
0
]
then
echo
"There are merge conflicts.. Cannot perform further build tasks"
...
...
ci-scripts/docker/Dockerfile.cppcheck.xenial
View file @
0dae0551
...
...
@@ -52,8 +52,8 @@ RUN mkdir -p cmake_targets/log && \
-I openair3/NAS/COMMON/UTIL \
-j`nproc` . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt
RUN
egrep
-c 'severity="error' cmake_targets/log/cppcheck.xml
RUN
grep -E
-c 'severity="error' cmake_targets/log/cppcheck.xml
RUN
egrep
-c 'severity="warning' cmake_targets/log/cppcheck.xml
RUN
grep -E
-c 'severity="warning' cmake_targets/log/cppcheck.xml
RUN cat cmake_targets/log/cppcheck.xml
ci-scripts/epc.py
View file @
0dae0551
...
...
@@ -568,7 +568,7 @@ class EPCManagement():
mySSH
.
command
(
'python3 ./core-network.py '
+
self
.
cfgUnDeploy
,
'\$'
,
60
)
mySSH
.
command
(
'docker volume prune --force || true'
,
'\$'
,
60
)
time
.
sleep
(
2
)
mySSH
.
command
(
'tshark -r /tmp/oai-cn5g-v1.5.pcap |
egrep
--colour=never "Tracking area update" '
,
'\$'
,
30
)
mySSH
.
command
(
'tshark -r /tmp/oai-cn5g-v1.5.pcap |
grep -E
--colour=never "Tracking area update" '
,
'\$'
,
30
)
result
=
re
.
search
(
'Tracking area update request'
,
mySSH
.
getBefore
())
if
result
is
not
None
:
message
=
'UE requested '
+
str
(
mySSH
.
getBefore
().
count
(
'Tracking area update request'
))
+
'Tracking area update request(s)'
...
...
@@ -769,7 +769,7 @@ class EPCManagement():
mySSH
.
command
(
'docker cp prod-magma-mme:/tmp/mme_check_run.pcap mme_'
+
self
.
testCase_id
+
'.pcap'
,
'\$'
,
60
)
else
:
mySSH
.
command
(
'docker cp prod-oai-mme:/tmp/mme_check_run.pcap mme_'
+
self
.
testCase_id
+
'.pcap'
,
'\$'
,
60
)
mySSH
.
command
(
'tshark -r mme_'
+
self
.
testCase_id
+
'.pcap |
egrep
--colour=never "Tracking area update"'
,
'\$'
,
60
)
mySSH
.
command
(
'tshark -r mme_'
+
self
.
testCase_id
+
'.pcap |
grep -E
--colour=never "Tracking area update"'
,
'\$'
,
60
)
result
=
re
.
search
(
'Tracking area update request'
,
mySSH
.
getBefore
())
if
result
is
not
None
:
message
=
'UE requested '
+
str
(
mySSH
.
getBefore
().
count
(
'Tracking area update request'
))
+
'Tracking area update request(s)'
...
...
ci-scripts/main.py
View file @
0dae0551
...
...
@@ -225,47 +225,6 @@ def GetParametersFromXML(action):
else
:
CiTestObj
.
nodes
=
[
None
]
*
len
(
CiTestObj
.
ue_ids
)
elif
action
==
'Build_OAI_UE'
:
CiTestObj
.
Build_OAI_UE_args
=
test
.
findtext
(
'Build_OAI_UE_args'
)
CiTestObj
.
clean_repository
=
test
.
findtext
(
'clean_repository'
)
if
(
CiTestObj
.
clean_repository
==
'false'
):
CiTestObj
.
clean_repository
=
False
else
:
CiTestObj
.
clean_repository
=
True
elif
action
==
'Initialize_OAI_UE'
:
CiTestObj
.
Initialize_OAI_UE_args
=
test
.
findtext
(
'Initialize_OAI_UE_args'
)
UE_instance
=
test
.
findtext
(
'UE_instance'
)
if
(
UE_instance
is
None
):
CiTestObj
.
UE_instance
=
0
else
:
CiTestObj
.
UE_instance
=
UE_instance
#local variable air_interface
air_interface
=
test
.
findtext
(
'air_interface'
)
if
(
air_interface
is
None
)
or
(
air_interface
.
lower
()
not
in
[
'nr'
,
'lte'
]):
CiTestObj
.
air_interface
=
'lte-uesoftmodem'
elif
(
air_interface
.
lower
()
in
[
'nr'
,
'lte'
]):
CiTestObj
.
air_interface
=
air_interface
.
lower
()
+
'-uesoftmodem'
else
:
logging
.
error
(
'OCP UE -- NOT SUPPORTED'
)
CiTestObj
.
cmd_prefix
=
test
.
findtext
(
'cmd_prefix'
)
or
""
elif
action
==
'Terminate_OAI_UE'
:
UE_instance
=
test
.
findtext
(
'UE_instance'
)
if
(
UE_instance
is
None
):
CiTestObj
.
UE_instance
=
'0'
else
:
CiTestObj
.
UE_instance
=
int
(
UE_instance
)
#local variable air_interface
air_interface
=
test
.
findtext
(
'air_interface'
)
if
(
air_interface
is
None
)
or
(
air_interface
.
lower
()
not
in
[
'nr'
,
'lte'
]):
CiTestObj
.
air_interface
=
'lte-uesoftmodem'
else
:
CiTestObj
.
air_interface
=
air_interface
.
lower
()
+
'-uesoftmodem'
elif
action
==
'Ping'
:
CiTestObj
.
ping_args
=
test
.
findtext
(
'ping_args'
)
CiTestObj
.
ping_packetloss_threshold
=
test
.
findtext
(
'ping_packetloss_threshold'
)
...
...
@@ -319,17 +278,6 @@ def GetParametersFromXML(action):
else
:
CiTestObj
.
idle_sleep_time
=
int
(
string_field
)
elif
action
==
'Perform_X2_Handover'
:
string_field
=
test
.
findtext
(
'x2_ho_options'
)
if
(
string_field
is
None
):
CiTestObj
.
x2_ho_options
=
'network'
else
:
if
string_field
!=
'network'
:
logging
.
error
(
'ERROR: test-case has wrong option '
+
string_field
)
CiTestObj
.
x2_ho_options
=
'network'
else
:
CiTestObj
.
x2_ho_options
=
string_field
elif
action
==
'Build_PhySim'
:
ldpc
.
buildargs
=
test
.
findtext
(
'physim_build_args'
)
forced_workspace_cleanup
=
test
.
findtext
(
'forced_workspace_cleanup'
)
...
...
@@ -520,12 +468,6 @@ if re.match('^TerminateeNB$', mode, re.IGNORECASE):
RAN
.
eNB_serverId
[
0
]
=
'0'
RAN
.
eNBSourceCodePath
=
'/tmp/'
RAN
.
TerminateeNB
(
HTML
,
EPC
)
elif
re
.
match
(
'^TerminateOAIUE$'
,
mode
,
re
.
IGNORECASE
):
if
CiTestObj
.
UEIPAddress
==
''
or
CiTestObj
.
UEUserName
==
''
or
CiTestObj
.
UEPassword
==
''
:
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
'Insufficient Parameter'
)
signal
.
signal
(
signal
.
SIGUSR1
,
receive_signal
)
CiTestObj
.
TerminateOAIUE
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
elif
re
.
match
(
'^TerminateHSS$'
,
mode
,
re
.
IGNORECASE
):
if
EPC
.
IPAddress
==
''
or
EPC
.
UserName
==
''
or
EPC
.
Password
==
''
or
EPC
.
Type
==
''
or
EPC
.
SourceCodePath
==
''
:
HELP
.
GenericHelp
(
CONST
.
Version
)
...
...
@@ -780,12 +722,6 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
CiTestObj
.
DataEnableUE
(
HTML
)
elif
action
==
'CheckStatusUE'
:
CiTestObj
.
CheckStatusUE
(
HTML
)
elif
action
==
'Build_OAI_UE'
:
CiTestObj
.
BuildOAIUE
(
HTML
)
elif
action
==
'Initialize_OAI_UE'
:
CiTestObj
.
InitializeOAIUE
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
elif
action
==
'Terminate_OAI_UE'
:
CiTestObj
.
TerminateOAIUE
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
elif
action
==
'Ping'
:
CiTestObj
.
Ping
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
elif
action
==
'Iperf'
:
...
...
@@ -814,8 +750,6 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
EPC
.
UndeployEpc
(
HTML
)
elif
action
==
'IdleSleep'
:
CiTestObj
.
IdleSleep
(
HTML
)
elif
action
==
'Perform_X2_Handover'
:
CiTestObj
.
Perform_X2_Handover
(
HTML
,
RAN
,
EPC
)
elif
action
==
'Build_PhySim'
:
HTML
=
ldpc
.
Build_PhySim
(
HTML
,
CONST
)
if
ldpc
.
exitStatus
==
1
:
...
...
ci-scripts/ran.py
View file @
0dae0551
...
...
@@ -512,7 +512,7 @@ class RANManagement():
self
.
prematureExit
=
True
return
else
:
mySSH
.
command
(
'stdbuf -o0 cat enb_'
+
self
.
testCase_id
+
'.log |
egrep
--text --color=never -i "wait|sync|Starting|Started"'
,
'\$'
,
4
)
mySSH
.
command
(
'stdbuf -o0 cat enb_'
+
self
.
testCase_id
+
'.log |
grep -E
--text --color=never -i "wait|sync|Starting|Started"'
,
'\$'
,
4
)
if
rruCheck
:
result
=
re
.
search
(
'wait RUs'
,
mySSH
.
getBefore
())
else
:
...
...
ci-scripts/xml_class_list.yml
View file @
0dae0551
...
...
@@ -13,9 +13,6 @@
-
Terminate_UE
-
Attach_UE
-
Detach_UE
-
Build_OAI_UE
-
Initialize_OAI_UE
-
Terminate_OAI_UE
-
DataDisable_UE
-
DataEnable_UE
-
CheckStatusUE
...
...
@@ -33,7 +30,6 @@
-
Initialize_5GCN
-
Terminate_5GCN
-
IdleSleep
-
Perform_X2_Handover
-
Build_Image
-
Build_Run_Tests
-
Deploy_Object
...
...
ci-scripts/xml_files/fr1_gnb_build.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
Build
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
000001
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000001"
>
<class>
Build_eNB
</class>
<desc>
Build gNB
</desc>
<Build_eNB_args>
-w USRP -c --gNB --ninja --noavx512
</Build_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<forced_workspace_cleanup>
True
</forced_workspace_cleanup>
</testCase>
</testCaseList>
ci-scripts/xml_files/fr1_multi_node_build.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
Build
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
000001 000002
000004 000005 000003
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000001"
>
<class>
Build_eNB
</class>
<desc>
Build eNB
</desc>
<Build_eNB_args>
-w USRP -c --eNB --ninja
</Build_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<backgroundBuild>
True
</backgroundBuild>
<forced_workspace_cleanup>
True
</forced_workspace_cleanup>
</testCase>
<testCase
id=
"000004"
>
<class>
WaitEndBuild_eNB
</class>
<desc>
Wait for end of Build eNB
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
</testCase>
<testCase
id=
"000002"
>
<class>
Build_eNB
</class>
<desc>
Build gNB
</desc>
<Build_eNB_args>
-w USRP -c --gNB --ninja --noavx512
</Build_eNB_args>
<eNB_instance>
1
</eNB_instance>
<eNB_serverId>
1
</eNB_serverId>
<backgroundBuild>
True
</backgroundBuild>
<forced_workspace_cleanup>
True
</forced_workspace_cleanup>
</testCase>
<testCase
id=
"000003"
>
<class>
WaitEndBuild_eNB
</class>
<desc>
Wait for end of Build gNB
</desc>
<eNB_instance>
1
</eNB_instance>
<eNB_serverId>
1
</eNB_serverId>
</testCase>
<testCase
id=
"000005"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
120
</idle_sleep_time_in_sec>
</testCase>
</testCaseList>
ci-scripts/xml_files/fr1_sa_oaiue_b200.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
TEST-SA-FR1-Tab1
</htmlTabRef>
<htmlTabName>
SA Ping DL UL with OAI NR UE
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
040000
000002
010000
000002
050000
050001
000001
010002
080000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"010000"
>
<class>
Initialize_OAI_UE
</class>
<desc>
Initialize OAI UE
</desc>
<air_interface>
nr
</air_interface>
<Initialize_OAI_UE_args>
--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "serial=30C51D1" --numerology 1 -r 106 --band 78 -C 3319680000 --ue-txgain 0 -E --log_config.global_log_options level,nocolor,time
</Initialize_OAI_UE_args>
</testCase>
<testCase
id=
"010002"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate OAI UE
</desc>
</testCase>
<testCase
id=
"040000"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize gNB
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf --sa -q --usrp-tx-thread-config 1 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<eNB_Trace>
yes
</eNB_Trace>
<eNB_Stats>
yes
</eNB_Stats>
<USRP_IPAddress>
172.21.19.14
</USRP_IPAddress>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
20
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"050000"
>
<class>
Ping
</class>
<desc>
Ping from CN to UE: 20pings in 20sec
</desc>
<ping_args>
-c 20 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"050001"
>
<class>
Ping
</class>
<desc>
Ping from CN to UE: 100pings in 20sec
</desc>
<id>
oai_ue_obelix
</id>
<ping_args>
-c 100 -i 0.2 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"070000"
>
<class>
Iperf
</class>
<desc>
iperf (DL/60Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 60M -t 60 -R
</iperf_args>
<id>
oai_ue_obelix
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"070001"
>
<class>
Iperf
</class>
<desc>
iperf (UL/3Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 3M -t 60
</iperf_args>
<id>
oai_ue_obelix
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"080000"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
</testCase>
</testCaseList>
ci-scripts/xml_files/fr1_sa_oaiue_n310.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
TEST-SA-FR1-Tab1
</htmlTabRef>
<htmlTabName>
SA Ping DL UL with OAI NR UE (N310)
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
100000
040000
000002
010000
000002
050000
050001
000001
010002
080000
200000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"010000"
>
<class>
Initialize_OAI_UE
</class>
<desc>
Initialize OAI UE (N310)
</desc>
<air_interface>
nr
</air_interface>
<Initialize_OAI_UE_args>
--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "mgmt_addr=172.21.19.13,addr=192.168.10.2" --numerology 1 -r 106 --band 78 -C 3319680000 --ue-txgain 0 --ue-rxgain 70 --ue-fo-compensation --log_config.global_log_options level,nocolor,time
</Initialize_OAI_UE_args>
</testCase>
<testCase
id=
"010002"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate OAI UE
</desc>
</testCase>
<testCase
id=
"100000"
>
<class>
Custom_Command
</class>
<desc>
Disable Sleep States
</desc>
<node>
asterix
</node>
<command>
sudo cpupower idle-set -D 0
</command>
</testCase>
<testCase
id=
"200000"
>
<class>
Custom_Command
</class>
<desc>
Enable Sleep States
</desc>
<node>
asterix
</node>
<command>
sudo cpupower idle-set -E
</command>
</testCase>
<testCase
id=
"040000"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize gNB
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/gnb.sa.band78.106prb.usrp310.2x2.conf --gNBs.[0].min_rxtxtime 5 --sa --usrp-tx-thread-config 1 --tune-offset 30000000 --thread-pool 1,3,5,7,9,11,13,15 --gNBs.[0].min_rxtxtime 5 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<eNB_Trace>
yes
</eNB_Trace>
<eNB_Stats>
yes
</eNB_Stats>
<USRP_IPAddress>
172.21.19.14
</USRP_IPAddress>
<cmd_prefix>
numactl --cpunodebind=netdev:ens2f0np0 --membind=netdev:ens2f0np0
</cmd_prefix>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
20
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"050000"
>
<class>
Ping
</class>
<desc>
Ping from CN to UE: 20pings in 20sec
</desc>
<id>
oai_ue_obelix
</id>
<ping_args>
-c 20 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"050001"
>
<class>
Ping
</class>
<desc>
Ping from CN to UE: 100pings in 20sec
</desc>
<id>
oai_ue_obelix
</id>
<ping_args>
-c 100 -i 0.2 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"070000"
>
<class>
Iperf
</class>
<desc>
iperf (DL/60Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<id>
oai_ue_obelix
</id>
<iperf_args>
-u -b 60M -t 60 -R
</iperf_args>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"070001"
>
<class>
Iperf
</class>
<desc>
iperf (UL/3Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<id>
oai_ue_obelix
</id>
<iperf_args>
-u -b 3M -t 60
</iperf_args>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"080000"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
</testCase>
</testCaseList>
ci-scripts/xml_files/fr1_sa_oaiue_x300.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
TEST-SA-FR1-Tab2
</htmlTabRef>
<htmlTabName>
SA Ping DL UL with OAI NR UE (X300)
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
041000
000002
011000
000002
051000
051001
000001
010002
080000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"011000"
>
<class>
Initialize_OAI_UE
</class>
<desc>
Initialize OAI UE (X300)
</desc>
<air_interface>
nr
</air_interface>
<Initialize_OAI_UE_args>
--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "addr=192.168.60.2" --numerology 1 -r 106 --band 78 -C 3319680000 --ue-txgain 0 --ue-rxgain 70 --ue-fo-compensation --log_config.global_log_options level,nocolor,time
</Initialize_OAI_UE_args>
</testCase>
<testCase
id=
"010002"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate OAI UE
</desc>
</testCase>
<testCase
id=
"041000"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize gNB
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf --sa --usrp-tx-thread-config 1 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<eNB_Trace>
yes
</eNB_Trace>
<eNB_Stats>
yes
</eNB_Stats>
<USRP_IPAddress>
172.21.19.14
</USRP_IPAddress>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
20
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"051000"
>
<class>
Ping
</class>
<desc>
Ping from CN to UE: 20pings in 20sec
</desc>
<id>
oai_ue_obelix
</id>
<ping_args>
-c 20 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"051001"
>
<class>
Ping
</class>
<desc>
Ping from CN to UE: 100pings in 20sec
</desc>
<id>
oai_ue_obelix
</id>
<ping_args>
-c 100 -i 0.2 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"070000"
>
<class>
Iperf
</class>
<desc>
iperf (DL/60Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<id>
oai_ue_obelix
</id>
<iperf_args>
-u -b 60M -t 60 -R
</iperf_args>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"070001"
>
<class>
Iperf
</class>
<desc>
iperf (UL/3Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<id>
oai_ue_obelix
</id>
<iperf_args>
-u -b 3M -t 60
</iperf_args>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"080000"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
</testCase>
</testCaseList>
ci-scripts/xml_files/fr1_sa_quectel.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
TEST-SA-FR1-Tab1
</htmlTabRef>
<htmlTabName>
SA Ping DL UL with Quectel, 2.5ms TDD
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
100000
300000
010000
040000
010010
050000
050001
070000
070001
070002
010001
080000
020000
200000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"100000"
>
<class>
Custom_Command
</class>
<desc>
Disable Sleep States
</desc>
<node>
asterix
</node>
<command>
sudo cpupower idle-set -D 0
</command>
</testCase>
<testCase
id=
"200000"
>
<class>
Custom_Command
</class>
<desc>
Enable Sleep States
</desc>
<node>
asterix
</node>
<command>
sudo cpupower idle-set -E
</command>
</testCase>
<testCase
id=
"300000"
>
<class>
Custom_Command
</class>
<desc>
Reboot USRP
</desc>
<node>
asterix
</node>
<command>
ssh root@172.21.19.14 reboot ; sleep 45
</command>
</testCase>
<testCase
id=
"010000"
>
<class>
Initialize_UE
</class>
<desc>
Initialize Quectel
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"010010"
>
<class>
Attach_UE
</class>
<desc>
Attach Quectel UE
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"010001"
>
<class>
Detach_UE
</class>
<desc>
Detach Quectel UE
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"020000"
>
<class>
Terminate_UE
</class>
<desc>
Terminate Quectel
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"040000"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize gNB
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/gnb.sa.band78.106prb.usrpn310.ddsuu-2x2.conf --sa -q --usrp-tx-thread-config 1 --T_stdout 2 --tune-offset 30000000 --thread-pool 1,3,5,7,9,11,13,15 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<eNB_Trace>
yes
</eNB_Trace>
<eNB_Stats>
yes
</eNB_Stats>
<rt_stats_cfg>
datalog_rt_stats.2x2.yaml
</rt_stats_cfg>
<USRP_IPAddress>
172.21.19.14
</USRP_IPAddress>
<cmd_prefix>
numactl --cpunodebind=netdev:ens2f0np0 --membind=netdev:ens2f0np0
</cmd_prefix>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
20
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"050000"
>
<class>
Ping
</class>
<desc>
Ping: 40pings in 40sec
</desc>
<id>
nrmodule2_quectel
</id>
<ping_args>
-c 40 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
1
</ping_packetloss_threshold>
<ping_rttavg_threshold>
10
</ping_rttavg_threshold>
</testCase>
<testCase
id=
"050001"
>
<class>
Ping
</class>
<desc>
Ping: 100pings in 20sec
</desc>
<id>
nrmodule2_quectel
</id>
<ping_args>
-c 100 -i 0,2 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
1
</ping_packetloss_threshold>
<ping_rttavg_threshold>
10
</ping_rttavg_threshold>
</testCase>
<testCase
id=
"070000"
>
<class>
Iperf
</class>
<desc>
iperf (DL/60Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 60M -t 60 -R
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
95
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"070001"
>
<class>
Iperf
</class>
<desc>
iperf (UL/7Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 7M -t 60
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
95
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"070002"
>
<class>
Iperf
</class>
<desc>
iperf (BIDIR TCP)(10 sec)(single-ue profile)
</desc>
<iperf_args>
-t 10 --bidir
</iperf_args>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"080000"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<d_retx_th>
5,80,100,100
</d_retx_th>
<u_retx_th>
5,80,100,100
</u_retx_th>
</testCase>
</testCaseList>
ci-scripts/xml_files/fr1_sa_quectel_162prb.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
TEST-SA-FR1-Tab3
</htmlTabRef>
<htmlTabName>
SA 162PRB
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
100000
010000
042000
010001
052000
000001
072000
000001
072001
000001
072002
000001
010011
010002
080000
200000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"010000"
>
<class>
Initialize_UE
</class>
<desc>
Initialize Quectel
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"010001"
>
<class>
Attach_UE
</class>
<desc>
Attach Quectel UE
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"010011"
>
<class>
Detach_UE
</class>
<desc>
Detach Quectel UE
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"010002"
>
<class>
Terminate_UE
</class>
<desc>
Terminate Quectel
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"042000"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize gNB
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/gnb.sa.band78.162prb.usrpn310.2x2.conf --sa -q --usrp-tx-thread-config 1 --tune-offset 30000000 --thread-pool 1,3,5,7,9,11,13,15 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<eNB_Trace>
yes
</eNB_Trace>
<eNB_Stats>
yes
</eNB_Stats>
<rt_stats_cfg>
datalog_rt_stats.2x2.yaml
</rt_stats_cfg>
<USRP_IPAddress>
172.21.19.14
</USRP_IPAddress>
<cmd_prefix>
numactl --cpunodebind=netdev:ens2f0np0 --membind=netdev:ens2f0np0
</cmd_prefix>
</testCase>
<testCase
id=
"100000"
>
<class>
Custom_Command
</class>
<desc>
Disable Sleep States
</desc>
<node>
asterix
</node>
<command>
sudo cpupower idle-set -D 0
</command>
</testCase>
<testCase
id=
"200000"
>
<class>
Custom_Command
</class>
<desc>
Enable Sleep States
</desc>
<node>
asterix
</node>
<command>
sudo cpupower idle-set -E
</command>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
20
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"052000"
>
<class>
Ping
</class>
<desc>
Ping: 40pings in 40sec
</desc>
<id>
nrmodule2_quectel
</id>
<ping_args>
-c 40 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
1
</ping_packetloss_threshold>
<ping_rttavg_threshold>
20
</ping_rttavg_threshold>
</testCase>
<testCase
id=
"072000"
>
<class>
Iperf
</class>
<desc>
iperf (DL/180Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 180M -t 60 -R
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
50
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
50
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"072001"
>
<class>
Iperf
</class>
<desc>
iperf (UL/3Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 3M -t 60
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
95
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"072002"
>
<class>
Iperf
</class>
<desc>
iperf (BIDIR TCP)(10 sec)(single-ue profile)
</desc>
<iperf_args>
-t 10 --bidir
</iperf_args>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"080000"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<d_retx_th>
5,80,100,100
</d_retx_th>
<u_retx_th>
5,80,100,100
</u_retx_th>
</testCase>
</testCaseList>
ci-scripts/xml_files/fr1_sa_quectel_stages.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
TEST-SA-FR1-Tab2
</htmlTabRef>
<htmlTabName>
SA Staged DL with QUECTEL
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
011002
100000
041000
000002
011000
011001
000001
051000
000001
071000
000001
071001
000001
071002
000001
071003
000001
071004
000001
071005
000001
011011
011002
081000
200000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"100000"
>
<class>
Custom_Command
</class>
<desc>
Disable Sleep States
</desc>
<node>
asterix
</node>
<command>
sudo cpupower idle-set -D 0
</command>
</testCase>
<testCase
id=
"200000"
>
<class>
Custom_Command
</class>
<desc>
Enable Sleep States
</desc>
<node>
asterix
</node>
<command>
sudo cpupower idle-set -E
</command>
</testCase>
<testCase
id=
"011000"
>
<class>
Initialize_UE
</class>
<desc>
Initialize Quectel
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"011001"
>
<class>
Attach_UE
</class>
<desc>
Attach Quectel UE
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"011011"
>
<class>
Detach_UE
</class>
<desc>
Detach Quectel UE
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"011002"
>
<class>
Terminate_UE
</class>
<desc>
Terminate Quectel
</desc>
<id>
nrmodule2_quectel
</id>
</testCase>
<testCase
id=
"041000"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize gNB
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/gnb.sa.band78.106prb.usrp310.2x2.conf --sa -q --usrp-tx-thread-config 1 --tune-offset 30000000 --thread-pool 1,3,5,7,9,11,13,15 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<eNB_Trace>
yes
</eNB_Trace>
<eNB_Stats>
yes
</eNB_Stats>
<rt_stats_cfg>
datalog_rt_stats.2x2.yaml
</rt_stats_cfg>
<USRP_IPAddress>
172.21.19.14
</USRP_IPAddress>
<cmd_prefix>
numactl --cpunodebind=netdev:ens2f0np0 --membind=netdev:ens2f0np0
</cmd_prefix>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
20
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"051000"
>
<class>
Ping
</class>
<desc>
Ping: 40pings in 40sec
</desc>
<id>
nrmodule2_quectel
</id>
<ping_args>
-c 40 %cn_ip%
</ping_args>
<ping_packetloss_threshold>
1
</ping_packetloss_threshold>
<ping_rttavg_threshold>
20
</ping_rttavg_threshold>
</testCase>
<testCase
id=
"071000"
>
<class>
Iperf
</class>
<desc>
iperf (DL/10Mbps/UDP)(30 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 10M -t 30 -R
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
95
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"071001"
>
<class>
Iperf
</class>
<desc>
iperf (DL/20Mbps/UDP)(30 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 20M -t 30 -R
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
95
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"071002"
>
<class>
Iperf
</class>
<desc>
iperf (DL/40Mbps/UDP)(30 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 40M -t 30 -R
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
95
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"071003"
>
<class>
Iperf
</class>
<desc>
iperf (DL/60Mbps/UDP)(30 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 60M -t 30 -R
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
5
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
95
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"071004"
>
<class>
Iperf
</class>
<desc>
iperf (DL/90Mbps/UDP)(30 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 90M -t 30 -R
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
10
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
90
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"071005"
>
<class>
Iperf
</class>
<desc>
iperf (DL/130Mbps/UDP)(30 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 130M -t 30 -R
</iperf_args>
<id>
nrmodule2_quectel
</id>
<iperf_packetloss_threshold>
50
</iperf_packetloss_threshold>
<iperf_bitrate_threshold>
50
</iperf_bitrate_threshold>
</testCase>
<testCase
id=
"081000"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<air_interface>
nr
</air_interface>
<d_retx_th>
5,80,100,100
</d_retx_th>
<u_retx_th>
5,80,100,100
</u_retx_th>
</testCase>
</testCaseList>
ci-scripts/xml_files/gnb_nr_ue_usrp_run.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
run-oai-gnb-nr-ue
</htmlTabRef>
<htmlTabName>
Run-gNB-and-NR-UE
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
090101 000001 090102 000002 090108 090109
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"090101"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize gNB USRP
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/gnb.band78.106prb.usrpn300.phytest-dora.conf --phy-test --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<air_interface>
NR
</air_interface>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Waiting for NR UE to synchronize w/ gNB
</desc>
<idle_sleep_time_in_sec>
180
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"090102"
>
<class>
Initialize_OAI_UE
</class>
<desc>
Initialize NR UE USRP
</desc>
<Initialize_OAI_UE_args>
--phy-test --usrp-args "addr=192.168.30.2,second_addr=192.168.50.2,clock_source=external,time_source=external" --ue-rxgain 50 --log_config.global_log_options level,nocolor,time
</Initialize_OAI_UE_args>
<air_interface>
NR
</air_interface>
</testCase>
<testCase
id=
"090108"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate NR UE
</desc>
<air_interface>
NR
</air_interface>
</testCase>
<testCase
id=
"090109"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<air_interface>
NR
</air_interface>
</testCase>
</testCaseList>
ci-scripts/xml_files/gnb_nr_ue_usrp_run_multi_thread.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
run-oai-gnb-nr-ue-tx-write-thread
</htmlTabRef>
<htmlTabName>
Run-gNB-and-NR-UE-TX-Write-Thread
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
090103 000001 090104 000002 090108 090109
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"090103"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize gNB USRP (Tx-Write-Threading enabled)
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/gnb.band78.106prb.usrpn300.phytest-dora.conf --phy-test --usrp-tx-thread-config 1 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<air_interface>
NR
</air_interface>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Waiting for NR UE to synchronize w/ gNB
</desc>
<idle_sleep_time_in_sec>
180
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"090104"
>
<class>
Initialize_OAI_UE
</class>
<desc>
Initialize NR UE USRP
</desc>
<Initialize_OAI_UE_args>
--phy-test --usrp-args "addr=192.168.30.2,second_addr=192.168.50.2,clock_source=external,time_source=external" --ue-rxgain 75 --log_config.global_log_options level,nocolor,time
</Initialize_OAI_UE_args>
<air_interface>
NR
</air_interface>
</testCase>
<testCase
id=
"090108"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate NR UE
</desc>
<air_interface>
NR
</air_interface>
</testCase>
<testCase
id=
"090109"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<air_interface>
NR
</air_interface>
</testCase>
</testCaseList>
ci-scripts/xml_files/gnb_nr_ue_usrp_terminate.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
terminate-oai-gnb-nr-ue
</htmlTabRef>
<htmlTabName>
Terminate-gNB-and-NR-UE
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<TestCaseRequestedList>
090108 090109
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"090108"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate NR UE
</desc>
<air_interface>
NR
</air_interface>
</testCase>
<testCase
id=
"090109"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate gNB
</desc>
<air_interface>
NR
</air_interface>
</testCase>
</testCaseList>
ci-scripts/xml_files/if4p5_usrp210_band40_build.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
Build
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
010101
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase
id=
"010101"
>
<class>
Build_eNB
</class>
<desc>
Build eNB (USRP -- Ethernet Fronthaul)
</desc>
<Build_eNB_args>
-w USRP -c --eNB --ninja
</Build_eNB_args>
</testCase>
</testCaseList>
ci-scripts/xml_files/if4p5_usrp210_band40_epc_closure.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
epc-closure
</htmlTabRef>
<htmlTabName>
EPC-Closure
</htmlTabName>
<htmlTabIcon>
log-out
</htmlTabIcon>
<TestCaseRequestedList>
050201 060201 070201
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase
id=
"050201"
>
<class>
Terminate_HSS
</class>
<desc>
Terminate HSS
</desc>
</testCase>
<testCase
id=
"060201"
>
<class>
Terminate_MME
</class>
<desc>
Terminate MME
</desc>
</testCase>
<testCase
id=
"070201"
>
<class>
Terminate_SPGW
</class>
<desc>
Terminate SPGW
</desc>
</testCase>
</testCaseList>
ci-scripts/xml_files/if4p5_usrp210_band40_epc_start.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
epc-start-tab
</htmlTabRef>
<htmlTabName>
EPC-Start
</htmlTabName>
<htmlTabIcon>
log-in
</htmlTabIcon>
<TestCaseRequestedList>
050101 060101 070101
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase
id=
"050101"
>
<class>
Initialize_HSS
</class>
<desc>
Initialize HSS
</desc>
</testCase>
<testCase
id=
"060101"
>
<class>
Initialize_MME
</class>
<desc>
Initialize MME
</desc>
</testCase>
<testCase
id=
"070101"
>
<class>
Initialize_SPGW
</class>
<desc>
Initialize SPGW
</desc>
</testCase>
</testCaseList>
ci-scripts/xml_files/if4p5_usrp210_band7_build.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
Build
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
010101
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase
id=
"010101"
>
<class>
Build_eNB
</class>
<desc>
Build eNB (USRP -- Ethernet Fronthaul)
</desc>
<Build_eNB_args>
-w USRP -c --eNB --ninja
</Build_eNB_args>
</testCase>
</testCaseList>
ci-scripts/xml_files/if4p5_usrp210_band7_epc_closure.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
epc-closure
</htmlTabRef>
<htmlTabName>
EPC-Closure
</htmlTabName>
<htmlTabIcon>
log-out
</htmlTabIcon>
<TestCaseRequestedList>
050201 060201 070201
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase
id=
"050201"
>
<class>
Terminate_HSS
</class>
<desc>
Terminate HSS
</desc>
</testCase>
<testCase
id=
"060201"
>
<class>
Terminate_MME
</class>
<desc>
Terminate MME
</desc>
</testCase>
<testCase
id=
"070201"
>
<class>
Terminate_SPGW
</class>
<desc>
Terminate SPGW
</desc>
</testCase>
</testCaseList>
ci-scripts/xml_files/if4p5_usrp210_band7_epc_start.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
epc-start-tab
</htmlTabRef>
<htmlTabName>
EPC-Start
</htmlTabName>
<htmlTabIcon>
log-in
</htmlTabIcon>
<TestCaseRequestedList>
050101 060101 070101 040101
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase
id=
"050101"
>
<class>
Initialize_HSS
</class>
<desc>
Initialize HSS
</desc>
</testCase>
<testCase
id=
"060101"
>
<class>
Initialize_MME
</class>
<desc>
Initialize MME
</desc>
</testCase>
<testCase
id=
"070101"
>
<class>
Initialize_SPGW
</class>
<desc>
Initialize SPGW
</desc>
</testCase>
</testCaseList>
ci-scripts/xml_files/multi_rru_band38_build.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
Build
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
010101 010102 010103
000102 000103 000101
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"010101"
>
<class>
Build_eNB
</class>
<desc>
Build RCC
</desc>
<Build_eNB_args>
-w USRP -c --eNB --ninja
</Build_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
<backgroundBuild>
True
</backgroundBuild>
</testCase>
<testCase
id=
"000101"
>
<class>
WaitEndBuild_eNB
</class>
<desc>
Wait for end of Build RCC
</desc>
<Build_eNB_args>
-w USRP -c --eNB --ninja
</Build_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
</testCase>
<testCase
id=
"010102"
>
<class>
Build_eNB
</class>
<desc>
Build Master RRU
</desc>
<Build_eNB_args>
-w USRP -c --RU --ninja
</Build_eNB_args>
<eNB_instance>
1
</eNB_instance>
<eNB_serverId>
1
</eNB_serverId>
<backgroundBuild>
True
</backgroundBuild>
</testCase>
<testCase
id=
"000102"
>
<class>
WaitEndBuild_eNB
</class>
<desc>
Wait for end of Build Master RRU
</desc>
<Build_eNB_args>
-w USRP -c --RU --ninja
</Build_eNB_args>
<eNB_instance>
1
</eNB_instance>
<eNB_serverId>
1
</eNB_serverId>
</testCase>
<testCase
id=
"010103"
>
<class>
Build_eNB
</class>
<desc>
Build Slave RRU
</desc>
<Build_eNB_args>
-w USRP -c --RU --ninja
</Build_eNB_args>
<eNB_instance>
2
</eNB_instance>
<eNB_serverId>
2
</eNB_serverId>
<backgroundBuild>
True
</backgroundBuild>
</testCase>
<testCase
id=
"000103"
>
<class>
WaitEndBuild_eNB
</class>
<desc>
Wait for end of Build Slave RRU
</desc>
<Build_eNB_args>
-w USRP -c --RU --ninja
</Build_eNB_args>
<eNB_instance>
2
</eNB_instance>
<eNB_serverId>
2
</eNB_serverId>
</testCase>
</testCaseList>
ci-scripts/xml_files/multi_rru_band38_full_termination.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
test-full-termintation
</htmlTabRef>
<htmlTabName>
Test-RCC-RRUs-Termination
</htmlTabName>
<htmlTabIcon>
off
</htmlTabIcon>
<TestCaseRequestedList>
030211 030212 030213
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"030211"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate RCC
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
</testCase>
<testCase
id=
"030212"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate Master RRU
</desc>
<eNB_instance>
1
</eNB_instance>
<eNB_serverId>
1
</eNB_serverId>
</testCase>
<testCase
id=
"030213"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate Slave RRU
</desc>
<eNB_instance>
2
</eNB_instance>
<eNB_serverId>
2
</eNB_serverId>
</testCase>
</testCaseList>
ci-scripts/xml_files/multi_rru_band38_test_10mhz_tm1.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
test-multi-rru-10
</htmlTabRef>
<htmlTabName>
Test-Multi-RRU-10MHz
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
030211 030212 030213
030111 030112 030113
000001
030211 030212 030213
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
60
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"030111"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize RCC (TDD/Band38/10MHz)
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/rcc.band38.tm1.50PRB.multi.rru.conf --noS1 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
</testCase>
<testCase
id=
"030112"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize Master RRU (TDD/Band38/10MHz)
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/rru.band38.tm1.master.conf --noS1 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
1
</eNB_instance>
<eNB_serverId>
1
</eNB_serverId>
</testCase>
<testCase
id=
"030113"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize Slave RRU (TDD/Band38/10MHz)
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/rru.band38.tm1.slave.conf --noS1 --log_config.global_log_options level,nocolor,time
</Initialize_eNB_args>
<eNB_instance>
2
</eNB_instance>
<eNB_serverId>
2
</eNB_serverId>
</testCase>
<testCase
id=
"030211"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate RCC
</desc>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
</testCase>
<testCase
id=
"030212"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate Master RRU
</desc>
<eNB_instance>
1
</eNB_instance>
<eNB_serverId>
1
</eNB_serverId>
</testCase>
<testCase
id=
"030213"
>
<class>
Terminate_eNB
</class>
<desc>
Terminate Slave RRU
</desc>
<eNB_instance>
2
</eNB_instance>
<eNB_serverId>
2
</eNB_serverId>
</testCase>
</testCaseList>
ci-scripts/xml_files/nr_ue_usrp_build.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
nr-ue-build-tab
</htmlTabRef>
<htmlTabName>
Build-NR-UE
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
010102
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"010102"
>
<mode>
TestUE
</mode>
<class>
Build_OAI_UE
</class>
<desc>
Build NR UE (USRP)
</desc>
<Build_OAI_UE_args>
--nrUE -w USRP --ninja
</Build_OAI_UE_args>
<clean_repository>
false
</clean_repository>
</testCase>
</testCaseList>
ci-scripts/xml_files/simple_dummy_build.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
Build
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
000001
</TestCaseRequestedList>
<TestCaseExclusionList>
</TestCaseExclusionList>
<testCase
id=
"010101"
>
<class>
Build_eNB
</class>
<desc>
Build Master eNB (USRP)
</desc>
<Build_eNB_args>
-w USRP -c --eNB
</Build_eNB_args>
<eNB_instance>
0
</eNB_instance>
<eNB_serverId>
0
</eNB_serverId>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
5
</idle_sleep_time_in_sec>
</testCase>
</testCaseList>
ci-scripts/xml_files/ue_band20_build.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
build-tab
</htmlTabRef>
<htmlTabName>
Build
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
090101
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"090101"
>
<class>
Build_OAI_UE
</class>
<desc>
Build OAI UE
</desc>
<Build_OAI_UE_args>
-w USRP --UE --ninja
</Build_OAI_UE_args>
</testCase>
</testCaseList>
ci-scripts/xml_files/ue_band20_test_10mhz_orange.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
test-10mhz-orange
</htmlTabRef>
<htmlTabName>
Test-10Mhz-Orange
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
090109
090110 000001 090109
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"090110"
>
<class>
Initialize_OAI_UE
</class>
<desc>
Initialize OAI UE -- sniffing Orange frequency
</desc>
<Initialize_OAI_UE_args>
-C 816000000 -r 50 --ue-rxgain 135 --ue-scan-carrier --no-L2-connect --log_config.global_log_options level,nocolor,time
</Initialize_OAI_UE_args>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
30
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"090109"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate OAI UE
</desc>
</testCase>
</testCaseList>
ci-scripts/xml_files/ue_band20_test_10mhz_sfr.xml
deleted
100644 → 0
View file @
11aeba06
<!--
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
-->
<testCaseList>
<htmlTabRef>
test-10mHz-sfr
</htmlTabRef>
<htmlTabName>
Test-10MHz-SFR
</htmlTabName>
<htmlTabIcon>
tasks
</htmlTabIcon>
<repeatCount>
1
</repeatCount>
<TestCaseRequestedList>
090109
090111 000001 090109
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"090111"
>
<class>
Initialize_OAI_UE
</class>
<desc>
Initialize OAI UE -- sniffing SFR frequency
</desc>
<Initialize_OAI_UE_args>
-C 806000000 -r 50 --ue-rxgain 130 --ue-scan-carrier --no-L2-connect --log_config.global_log_options level,nocolor,time
</Initialize_OAI_UE_args>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
30
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"090109"
>
<class>
Terminate_OAI_UE
</class>
<desc>
Terminate OAI UE
</desc>
</testCase>
</testCaseList>
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz/entrypoint.sh
View file @
0dae0551
...
...
@@ -19,7 +19,7 @@ MME_CONF[@HSS_IP_ADDR@]="192.168.61.2"
cp
mme_fd.conf.tmplt
$PREFIX
/mme_fd.conf
for
K
in
"
${
!MME_CONF[@]
}
"
;
do
egrep
-lRZ
"
$K
"
$PREFIX
/mme_fd.conf | xargs
-0
-l
sed
-i
-e
"s|
$K
|
${
MME_CONF
[
$K
]
}
|g"
grep
-E
-lRZ
"
$K
"
$PREFIX
/mme_fd.conf | xargs
-0
-l
sed
-i
-e
"s|
$K
|
${
MME_CONF
[
$K
]
}
|g"
ret
=
$?
;
[[
ret
-ne
0
]]
&&
echo
"Could not replace
$K
with
${
MME_CONF
[
$K
]
}
"
done
...
...
ci-scripts/yaml_files/fr1_epc_20897/entrypoint.sh
View file @
0dae0551
...
...
@@ -11,7 +11,7 @@ then
ifconfig
${
MME_INTERFACE_NAME_FOR_S10
}
${
MME_IPV4_ADDRESS_FOR_S10
}
up
fi
LIST_OF_NETWORKS
=
`
ifconfig
-s
|
egrep
-v
"^Iface|^lo"
|
cut
-d
' '
-f1
`
LIST_OF_NETWORKS
=
`
ifconfig
-s
|
grep
-E
-v
"^Iface|^lo"
|
cut
-d
' '
-f1
`
for
if_name
in
$LIST_OF_NETWORKS
do
...
...
ci-scripts/yaml_files/magma_lte_20892/entrypoint.sh
View file @
0dae0551
...
...
@@ -19,7 +19,7 @@ MME_CONF[@HSS_IP_ADDR@]="192.168.61.194"
cp
mme_fd.conf.tmplt
$PREFIX
/mme_fd.conf
for
K
in
"
${
!MME_CONF[@]
}
"
;
do
egrep
-lRZ
"
$K
"
$PREFIX
/mme_fd.conf | xargs
-0
-l
sed
-i
-e
"s|
$K
|
${
MME_CONF
[
$K
]
}
|g"
grep
-E
-lRZ
"
$K
"
$PREFIX
/mme_fd.conf | xargs
-0
-l
sed
-i
-e
"s|
$K
|
${
MME_CONF
[
$K
]
}
|g"
ret
=
$?
;
[[
ret
-ne
0
]]
&&
echo
"Tried to replace
$K
with
${
MME_CONF
[
$K
]
}
"
done
...
...
ci-scripts/yaml_files/magma_nsa_20897/entrypoint.sh
View file @
0dae0551
...
...
@@ -19,7 +19,7 @@ MME_CONF[@HSS_IP_ADDR@]="192.168.61.194"
cp
mme_fd.conf.tmplt
$PREFIX
/mme_fd.conf
for
K
in
"
${
!MME_CONF[@]
}
"
;
do
egrep
-lRZ
"
$K
"
$PREFIX
/mme_fd.conf | xargs
-0
-l
sed
-i
-e
"s|
$K
|
${
MME_CONF
[
$K
]
}
|g"
grep
-E
-lRZ
"
$K
"
$PREFIX
/mme_fd.conf | xargs
-0
-l
sed
-i
-e
"s|
$K
|
${
MME_CONF
[
$K
]
}
|g"
ret
=
$?
;
[[
ret
-ne
0
]]
&&
echo
"Tried to replace
$K
with
${
MME_CONF
[
$K
]
}
"
done
...
...
cmake_targets/tools/build_helper
View file @
0dae0551
...
...
@@ -42,7 +42,7 @@ KERNEL_VERSION=$(uname -r | cut -d '.' -f1)
KERNEL_MAJOR=$(uname -r | cut -d '.' -f2)
#check if we run inside a container
IS_CONTAINER=`
egrep
-c "docker|podman|kubepods|libpod|buildah" /proc/self/cgroup || true`
IS_CONTAINER=`
grep -E
-c "docker|podman|kubepods|libpod|buildah" /proc/self/cgroup || true`
#sudo is not needed when we are root
if [ "$UID" = 0 ]
then
...
...
@@ -187,7 +187,7 @@ check_warnings() {
#we look for 'warning:' in the compilation log file
#this is how gcc starts a warning
#this is not perfect, we may get false positive
warning_count=`grep "warning:" "$1" |
egrep
-v "jobserver unavailable|disabling jobserver mode" | wc -l`
warning_count=`grep "warning:" "$1" |
grep -E
-v "jobserver unavailable|disabling jobserver mode" | wc -l`
if [ $warning_count -gt 0 ]; then
echo_error "WARNING: $warning_count warnings. See $1"
fi
...
...
@@ -223,7 +223,7 @@ compilations() {
ret=$?
} > $dlog/$logfile 2>&1
# Print the errors and warnings for CI purposes
egrep
-A3 "warning:|error:" $dlog/$logfile || true
grep -E
-A3 "warning:|error:" $dlog/$logfile || true
check_warnings "$dlog/$logfile"
if [[ $ret -eq 0 ]]; then
echo_success "$targets compiled"
...
...
docker/Dockerfile.build.ubuntu22.cross-arm64
View file @
0dae0551
...
...
@@ -48,7 +48,7 @@ RUN /bin/sh oaienv && \
# making always passing so we can analyze the all.txt file
ninja dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim lte-softmodem nr-softmodem nr-cuup oairu lte-uesoftmodem nr-uesoftmodem params_libconfig coding rfsimulator > ../../log/all.txt 2>&1; \
# displaying errors and warnings
egrep
-A3 "warning:|error:" ../../log/all.txt || true && \
grep -E
-A3 "warning:|error:" ../../log/all.txt || true && \
# will fail only if string "errors:" is found
egrep
"error:" -vqz ../../log/all.txt && \
grep -E
"error:" -vqz ../../log/all.txt && \
echo "====== End of log for cross-build executables ======"
openair1/PHY/TOOLS/Makefile
View file @
0dae0551
...
...
@@ -13,7 +13,7 @@ oai_dfts_sse4.s: oai_dfts.c
dft_cycles_avx2
:
oai_dfts_avx2
./oai_dfts_avx2 |
egrep
cycles
./oai_dfts_avx2 |
grep
-E
cycles
oai_dfts_aarch64
:
oai_dfts_neon.c
gcc
-O2
-std
=
gnu99
-gdwarf-2
-lgcc
-lrt
-g
-ggdb
-o
oai_dfts_neon oai_dfts_neon.c ../../../common/utils/time_meas.c ../../SIMULATION/TOOLS/taus.c
$$
OPENAIR_HOME/common/utils/LOG/log.c ../../SIMULATION/TOOLS/rangen_double.c
-I
$$
OPENAIR_HOME
-I
$$
OPENAIR1_DIR
-I
$$
OPENAIR_TARGETS
-I
$$
OPENAIR_TARGETS/COMMON
-I
$$
OPENAIR_HOME/radio/COMMON
-I
$$
OPENAIR2_DIR
-I
$$
OPENAIR2_DIR/COMMON
-I
$$
OPENAIR_HOME/common/utils
-I
$$
OPENAIR_HOME/common/utils/T
-I
$$
OPENAIR_HOME/common/utils/msc
-I
$$
OPENAIR_HOME/nfapi/open-nFAPI/nfapi/public_inc
-DMR_MAIN
-DNB_ANTENNAS_RX
=
1
-DNB_ANTENNAS_TX
=
1
-DMAX_NUM_CCs
=
1
-lm
-lpthread
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