Merge branch 'develop' of https://git.aubsebian.net/maki/openairinterface5g into develop
This commit is contained in:
@@ -62,6 +62,7 @@ ForEachMacros:
|
|||||||
- BOOST_FOREACH
|
- BOOST_FOREACH
|
||||||
- RB_FOREACH
|
- RB_FOREACH
|
||||||
- UE_iterator
|
- UE_iterator
|
||||||
|
- FOR_EACH_SEQ_ARR
|
||||||
IncludeBlocks: Preserve
|
IncludeBlocks: Preserve
|
||||||
IncludeCategories:
|
IncludeCategories:
|
||||||
- Regex: '^<ext/.*\.h>'
|
- Regex: '^<ext/.*\.h>'
|
||||||
|
|||||||
@@ -1,5 +1,51 @@
|
|||||||
# RELEASE NOTES: #
|
# RELEASE NOTES: #
|
||||||
|
|
||||||
|
## [v2.3.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v2.3.0) -> July 2025. ##
|
||||||
|
|
||||||
|
General new features and improvements (both RAN and UE):
|
||||||
|
- Preliminary support for RedCap UEs
|
||||||
|
- Support for NTN LEO scenarios including SIB19 and channel emulation (see
|
||||||
|
doc/RUNMODEM.md)
|
||||||
|
- VRTSIM: new shared memory realtime radio (see develop/radio/vrtsim/README.md)
|
||||||
|
- Support for TDD pattern 2
|
||||||
|
- Support for long PRACH
|
||||||
|
- Support for SIB2
|
||||||
|
- Add unit tests using ctest (see doc/UnitTests.md)
|
||||||
|
|
||||||
|
Stability and bug fixes:
|
||||||
|
- Improve various procedures (e.g., RRC reestablishment, RRC Reject, ...)
|
||||||
|
- Add improvements for ImScope
|
||||||
|
- Bugfixes in the entire stack (e.g., #803, #805, #810, #812, #818, #852, #878,
|
||||||
|
#884, #890, #895, #901, #907, #932, #939 ...)
|
||||||
|
- Documentation updates
|
||||||
|
- And many other small fixes, like memory leaks, crashes, ...
|
||||||
|
|
||||||
|
RAN changes (gNB/CU/CU-CP/CU-UP/DU/DU-high/DU-low):
|
||||||
|
- Stability and performance improvements when running with 4-layer DL MIMO
|
||||||
|
- Stability and performance improvements when running with 2-layer UL MIMO
|
||||||
|
- Interoperability testing with Metanoia Jura and Foxconn RUs
|
||||||
|
- Support of O-RAN 7.2 M-plane (Start-up procedure including configuration
|
||||||
|
management, see also doc/ORAN_FHI7.2_Tutorial.md)
|
||||||
|
- Upgrade OSC FHI (xran) from E to F release
|
||||||
|
- Refactoring of LDPC interface and performance improvements
|
||||||
|
- Support for nFAPI in all scenarios for FR1 (see doc/nfapi.md)
|
||||||
|
- Support at least 32 UEs concurrently
|
||||||
|
- Improve robustness when running in split modes (F1, E1)
|
||||||
|
- Add basic support for beam management in FR2
|
||||||
|
- Add support for O1 on DU (see also https://gitlab.eurecom.fr/oai/o1-adapter)
|
||||||
|
- E2 agent: Support for multiple E2SM-RC report service styles
|
||||||
|
|
||||||
|
nrUE changes:
|
||||||
|
- Refactoring of threading towards better code and performance
|
||||||
|
- Add or rework various procedures (e.g., RA with C-RNTI, Going to Idle, RA, ...)
|
||||||
|
- Refactor and extend NAS implementation (e.g., Service Request, Registration
|
||||||
|
Request, Service Acept, Service Reject, ...)
|
||||||
|
- Support for continuous frequency offset compensation
|
||||||
|
- Reduce minimum RX-to-TX time to 3
|
||||||
|
|
||||||
|
Regression:
|
||||||
|
- Multiple BWPs do not work reliably on gNB; use tag 2025.w17
|
||||||
|
|
||||||
## [v2.2.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v2.2.0) -> November 2024. ##
|
## [v2.2.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v2.2.0) -> November 2024. ##
|
||||||
|
|
||||||
General 5G improvements (both gNB and UE):
|
General 5G improvements (both gNB and UE):
|
||||||
|
|||||||
+1
-10
@@ -652,7 +652,6 @@ add_library(SCHED_LIB ${SCHED_SRC})
|
|||||||
target_link_libraries(SCHED_LIB PRIVATE asn1_lte_rrc_hdrs)
|
target_link_libraries(SCHED_LIB PRIVATE asn1_lte_rrc_hdrs)
|
||||||
|
|
||||||
set(SCHED_NR_SRC
|
set(SCHED_NR_SRC
|
||||||
${OPENAIR1_DIR}/SCHED_NR/fapi_nr_l1.c
|
|
||||||
${OPENAIR1_DIR}/SCHED_NR/phy_procedures_nr_gNB.c
|
${OPENAIR1_DIR}/SCHED_NR/phy_procedures_nr_gNB.c
|
||||||
${OPENAIR1_DIR}/SCHED_NR/nr_prach_procedures.c
|
${OPENAIR1_DIR}/SCHED_NR/nr_prach_procedures.c
|
||||||
${OPENAIR1_DIR}/SCHED_NR/phy_frame_config_nr.c
|
${OPENAIR1_DIR}/SCHED_NR/phy_frame_config_nr.c
|
||||||
@@ -939,7 +938,6 @@ set(PHY_SRC_UE
|
|||||||
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dci.c
|
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dci.c
|
||||||
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dci_tools.c
|
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dci_tools.c
|
||||||
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dlsch.c
|
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dlsch.c
|
||||||
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dlsch_tools.c
|
|
||||||
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dlsch_coding.c
|
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_dlsch_coding.c
|
||||||
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
|
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
|
||||||
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_ulsch.c
|
${OPENAIR1_DIR}/PHY/NR_TRANSPORT/nr_ulsch.c
|
||||||
@@ -1215,7 +1213,6 @@ set (MAC_SRC
|
|||||||
|
|
||||||
set (MAC_NR_SRC
|
set (MAC_NR_SRC
|
||||||
${NR_PHY_INTERFACE_DIR}/NR_IF_Module.c
|
${NR_PHY_INTERFACE_DIR}/NR_IF_Module.c
|
||||||
${NR_PHY_INTERFACE_DIR}/nr_sched_response.c
|
|
||||||
${NR_GNB_MAC_DIR}/main.c
|
${NR_GNB_MAC_DIR}/main.c
|
||||||
${NR_GNB_MAC_DIR}/config.c
|
${NR_GNB_MAC_DIR}/config.c
|
||||||
${NR_GNB_MAC_DIR}/gNB_scheduler.c
|
${NR_GNB_MAC_DIR}/gNB_scheduler.c
|
||||||
@@ -1283,12 +1280,6 @@ set (MISC_NFAPI_LTE
|
|||||||
|
|
||||||
add_library(MISC_NFAPI_LTE_LIB ${MISC_NFAPI_LTE})
|
add_library(MISC_NFAPI_LTE_LIB ${MISC_NFAPI_LTE})
|
||||||
|
|
||||||
set (MISC_NFAPI_NR
|
|
||||||
${OPENAIR1_DIR}/SCHED/nfapi_nr_dummy.c
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(MISC_NFAPI_NR_LIB ${MISC_NFAPI_NR})
|
|
||||||
|
|
||||||
add_library(L2
|
add_library(L2
|
||||||
${L2_SRC}
|
${L2_SRC}
|
||||||
${MAC_SRC}
|
${MAC_SRC}
|
||||||
@@ -2091,7 +2082,7 @@ if (${T_TRACER})
|
|||||||
oai_eth_transpro HASHTABLE UTIL
|
oai_eth_transpro HASHTABLE UTIL
|
||||||
SECURITY SCHED_LIB SCHED_NR_LIB SCHED_RU_LIB SCHED_UE_LIB SCHED_NR_UE_LIB
|
SECURITY SCHED_LIB SCHED_NR_LIB SCHED_RU_LIB SCHED_UE_LIB SCHED_NR_UE_LIB
|
||||||
NFAPI_LIB NFAPI_PNF_LIB NFAPI_VNF_LIB NFAPI_USER_LIB
|
NFAPI_LIB NFAPI_PNF_LIB NFAPI_VNF_LIB NFAPI_USER_LIB
|
||||||
MISC_NFAPI_LTE_LIB MISC_NFAPI_NR_LIB
|
MISC_NFAPI_LTE_LIB
|
||||||
PHY_COMMON PHY PHY_UE PHY_NR PHY_NR_COMMON PHY_NR_UE PHY_RU
|
PHY_COMMON PHY PHY_UE PHY_NR PHY_NR_COMMON PHY_NR_UE PHY_RU
|
||||||
L2 L2_LTE L2_NR L2_LTE_NR L2_UE NR_L2_UE MAC_NR_COMMON MAC_UE_NR ngap
|
L2 L2_LTE L2_NR L2_LTE_NR L2_UE NR_L2_UE MAC_NR_COMMON MAC_UE_NR ngap
|
||||||
GTPV1U SCTP_CLIENT MME_APP LIB_NAS_UE SIMU
|
GTPV1U SCTP_CLIENT MME_APP LIB_NAS_UE SIMU
|
||||||
|
|||||||
Vendored
+233
@@ -0,0 +1,233 @@
|
|||||||
|
#!/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
|
||||||
|
*/
|
||||||
|
|
||||||
|
def pythonExecutor = params.pythonExecutor
|
||||||
|
def testXMLFile = params.pythonTestXmlFile
|
||||||
|
def mainPythonAllXmlFiles = ""
|
||||||
|
def buildStageStatus = true
|
||||||
|
def JOB_TIMESTAMP
|
||||||
|
|
||||||
|
// Choose test stage name or fallback default
|
||||||
|
def testStageName = params.pipelineTestStageName != null ? params.pipelineTestStageName : 'Template Test Stage'
|
||||||
|
|
||||||
|
// Name of the resource
|
||||||
|
def lockResources = []
|
||||||
|
if (params.LockResources != null && params.LockResources.trim().length() > 0)
|
||||||
|
params.LockResources.trim().split(",").each{lockResources += [resource: it.trim()]}
|
||||||
|
|
||||||
|
// Global Parameters. Normally they should be populated when the master job
|
||||||
|
// triggers the slave job with parameters
|
||||||
|
|
||||||
|
def sourceRepository = params.eNB_Repository ?: env.GIT_URL
|
||||||
|
def sourceBranch = params.eNB_Branch ?: env.GIT_BRANCH
|
||||||
|
def targetRepository = params.Target_Repository ?: sourceRepository
|
||||||
|
def targetBranch = params.eNB_TargetBranch ?: 'develop'
|
||||||
|
def commitID = params.eNB_CommitID ?: env.GIT_COMMIT
|
||||||
|
def is_MR = params.eNB_mergeRequest ?: false
|
||||||
|
|
||||||
|
def flexricOption = ""
|
||||||
|
def runWithOC = false
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
// Pipeline start
|
||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
label pythonExecutor
|
||||||
|
}
|
||||||
|
options {
|
||||||
|
timestamps()
|
||||||
|
ansiColor('xterm')
|
||||||
|
lock(extra: lockResources)
|
||||||
|
}
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage("Build Init") {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
echo '\u2705 \u001B[94mBuild Init\u001B[0m'
|
||||||
|
JOB_TIMESTAMP = sh(returnStdout: true, script: 'date --utc --rfc-3339=seconds | sed -e "s#+00:00##"').trim()
|
||||||
|
}
|
||||||
|
// update the build name and description
|
||||||
|
buildName "${params.eNB_MR}"
|
||||||
|
buildDescription "Branch : ${sourceBranch}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage ('Verify Parameters') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
echo '\u2705 \u001B[94mVerify Parameters\u001B[0m'
|
||||||
|
def allParametersPresent = true
|
||||||
|
|
||||||
|
if (params.LockResources == null) {
|
||||||
|
echo "no LockResources given"
|
||||||
|
allParametersPresent = false
|
||||||
|
}
|
||||||
|
if (params.eNB_SourceCodePath == null) {
|
||||||
|
echo "no eNB_SourceCodePath given"
|
||||||
|
allParametersPresent = false
|
||||||
|
}
|
||||||
|
if (params.OC_Credentials != null) {
|
||||||
|
echo "This pipeline is configured to run with Opensift Cluster."
|
||||||
|
runWithOC = true
|
||||||
|
if (params.OC_ProjectName == null) {
|
||||||
|
echo "no OC_ProjectName given"
|
||||||
|
allParametersPresent = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (params.Flexric_Tag != null) {
|
||||||
|
echo "This pipeline is configured to run with a FlexRIC deployment."
|
||||||
|
echo "Appending FlexRicTag option to the list of options"
|
||||||
|
flexricOption = "--FlexRicTag=${params.Flexric_Tag}"
|
||||||
|
echo "Using new Flexric option: ${flexricOption}"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "CI executor node : ${pythonExecutor}"
|
||||||
|
echo "Source Repository : ${sourceRepository}"
|
||||||
|
echo "Source Branch : ${sourceBranch}"
|
||||||
|
echo "Target Repository : ${targetRepository}"
|
||||||
|
echo "Target Branch : ${targetBranch}"
|
||||||
|
echo "Commit ID : ${commitID}"
|
||||||
|
|
||||||
|
if (allParametersPresent) {
|
||||||
|
echo '\u2705 \u001B[94m All parameters are present\u001B[0m'
|
||||||
|
if (is_MR) {
|
||||||
|
sh "git fetch"
|
||||||
|
sh "./ci-scripts/doGitLabMerge.sh --src-branch ${sourceBranch} --src-commit ${commitID} --target-branch ${targetBranch} --target-commit latest"
|
||||||
|
} else {
|
||||||
|
sh "git fetch"
|
||||||
|
sh "git checkout -f ${commitID}"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo "\u274C Some parameters are missing"
|
||||||
|
sh "./ci-scripts/fail.sh"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage ("Deploy and Test") {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
dir ('ci-scripts') {
|
||||||
|
echo "\u2705 \u001B[94m Deploy and Test: ${testStageName}\u001B[0m"
|
||||||
|
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
||||||
|
for (xmlFile in myXmlTestSuite) {
|
||||||
|
if (fileExists(xmlFile)) {
|
||||||
|
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
||||||
|
echo "Test XML file : ${xmlFile}"
|
||||||
|
} else {
|
||||||
|
echo "Test XML file ${xmlFile}: no such file"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sh """
|
||||||
|
python3 main.py --mode=InitiateHtml --ranRepository=${targetRepository} \
|
||||||
|
--ranBranch=${sourceBranch} --ranCommitID=${commitID} \
|
||||||
|
--ranAllowMerge=${is_MR} --ranTargetBranch=${targetBranch} \
|
||||||
|
${flexricOption} ${mainPythonAllXmlFiles}
|
||||||
|
"""
|
||||||
|
if (runWithOC) {
|
||||||
|
withCredentials([usernamePassword(credentialsId: "${params.OC_Credentials}", usernameVariable: 'OC_Username', passwordVariable: 'OC_Password')]) {
|
||||||
|
sh """
|
||||||
|
python3 main.py --mode=InitiateHtml --ranRepository=${targetRepository} \
|
||||||
|
--ranBranch=${sourceBranch} --ranCommitID=${commitID} \
|
||||||
|
--ranAllowMerge=${is_MR} --ranTargetBranch=${targetBranch} \
|
||||||
|
${flexricOption} ${mainPythonAllXmlFiles}
|
||||||
|
"""
|
||||||
|
for (xmlFile in myXmlTestSuite) {
|
||||||
|
if (fileExists(xmlFile)) {
|
||||||
|
try {
|
||||||
|
timeout (time: 60, unit: 'MINUTES') {
|
||||||
|
sh """
|
||||||
|
python3 main.py --mode=TesteNB --ranRepository=${targetRepository} \
|
||||||
|
--ranBranch=${sourceBranch} --ranCommitID=${commitID} \
|
||||||
|
--ranAllowMerge=${is_MR} --ranTargetBranch=${targetBranch} \
|
||||||
|
--eNBSourceCodePath=${params.eNB_SourceCodePath} --XMLTestFile=${xmlFile} \
|
||||||
|
--OCUserName=${OC_Username} --OCPassword=${OC_Password} --OCProjectName=${OC_ProjectName} \
|
||||||
|
${flexricOption}
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
currentBuild.result = 'FAILURE'
|
||||||
|
buildStageStatus = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (xmlFile in myXmlTestSuite) {
|
||||||
|
if (fileExists(xmlFile)) {
|
||||||
|
try {
|
||||||
|
timeout (time: 60, unit: 'MINUTES') {
|
||||||
|
sh """
|
||||||
|
python3 main.py --mode=TesteNB --ranRepository=${targetRepository} \
|
||||||
|
--ranBranch=${sourceBranch} --ranCommitID=${commitID} \
|
||||||
|
--ranAllowMerge=${is_MR} --ranTargetBranch=${targetBranch} \
|
||||||
|
--eNBSourceCodePath=${params.eNB_SourceCodePath} --XMLTestFile=${xmlFile} \
|
||||||
|
${flexricOption}
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
currentBuild.result = 'FAILURE'
|
||||||
|
buildStageStatus = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sh "python3 main.py --mode=FinalizeHtml --finalStatus=${buildStageStatus}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage ("Log Collection") {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
echo '\u2705 \u001B[94mLog Collection\u001B[0m'
|
||||||
|
dir ('ci-scripts') {
|
||||||
|
// Zipping all archived log files
|
||||||
|
sh "mkdir test_logs"
|
||||||
|
sh "mv *.log* test_logs || true"
|
||||||
|
// Zip all log files matching cmake_targets/{*.log*,log/*} into test_logs_XXXX.zip
|
||||||
|
if (fileExists('../cmake_targets/log')) {
|
||||||
|
sh "mv ../cmake_targets/log/* test_logs || true"
|
||||||
|
}
|
||||||
|
sh "zip -r -qq test_logs_${env.BUILD_ID}.zip *test_log*/"
|
||||||
|
sh "rm -rf *test_log*/"
|
||||||
|
if (fileExists("test_logs_${env.BUILD_ID}.zip")) {
|
||||||
|
archiveArtifacts artifacts: "test_logs_${env.BUILD_ID}.zip"
|
||||||
|
}
|
||||||
|
if (fileExists("test_results.html")) {
|
||||||
|
def reportName = "test_results-${env.JOB_NAME}.html"
|
||||||
|
sh "mv test_results.html ${reportName}"
|
||||||
|
sh """
|
||||||
|
sed -i -e 's#TEMPLATE_BUILD_TIME#${JOB_TIMESTAMP}#' \
|
||||||
|
-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}#' ${reportName}
|
||||||
|
"""
|
||||||
|
archiveArtifacts artifacts: "${reportName}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -271,14 +271,15 @@ pipeline {
|
|||||||
when { expression {doBuild && "PUSH".equals(env.gitlabActionType)} }
|
when { expression {doBuild && "PUSH".equals(env.gitlabActionType)} }
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
triggerSlaveJob ('RAN-DockerHub-Push', 'DockerHub-Push')
|
triggerSlaveJob ('RAN-DockerHub-Push', 'DockerHub-Push')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
post {
|
post {
|
||||||
failure {
|
failure {
|
||||||
script {
|
script {
|
||||||
echo "Push to Docker-Hub KO"
|
echo "Push to Docker-Hub KO"
|
||||||
currentBuild.result = 'FAILURE'
|
|
||||||
failingStages += '\n * RAN-DockerHub-Push'
|
failingStages += '\n * RAN-DockerHub-Push'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,9 +84,20 @@ pipeline {
|
|||||||
sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1"
|
sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1"
|
||||||
sh "docker login -u oaicicd -p oaicicd ${OAI_Registry} > /dev/null 2>&1"
|
sh "docker login -u oaicicd -p oaicicd ${OAI_Registry} > /dev/null 2>&1"
|
||||||
listOfImages.eachWithIndex { item, iindex ->
|
listOfImages.eachWithIndex { item, iindex ->
|
||||||
|
if (["oai-gnb", "oai-nr-ue", "oai-nr-cuup"].contains(item)) {
|
||||||
|
// For images built on AMD64 and ARMv8 Jetson
|
||||||
|
echo "Pushing image '${item}' for both AMD64 and ARM64 architectures with tags: ${WEEK_TAG} and develop"
|
||||||
sh "docker rmi ${DH_Account}/${item}:${WEEK_TAG} ${DH_Account}/${item}:develop || true"
|
sh "docker rmi ${DH_Account}/${item}:${WEEK_TAG} ${DH_Account}/${item}:develop || true"
|
||||||
sh "docker buildx imagetools create --tag ${DH_Account}/${item}:${WEEK_TAG} ${OAI_Registry}/${item}:armv8_develop-${WEEK_SHA} ${OAI_Registry}/${item}:develop-${WEEK_SHA}"
|
sh "docker buildx imagetools create --tag ${DH_Account}/${item}:${WEEK_TAG} ${OAI_Registry}/${item}:armv8_develop-${WEEK_SHA} ${OAI_Registry}/${item}:develop-${WEEK_SHA}"
|
||||||
sh "docker buildx imagetools create --tag ${DH_Account}/${item}:develop ${OAI_Registry}/${item}:armv8_develop-${WEEK_SHA} ${OAI_Registry}/${item}:develop-${WEEK_SHA}"
|
sh "docker buildx imagetools create --tag ${DH_Account}/${item}:develop ${OAI_Registry}/${item}:armv8_develop-${WEEK_SHA} ${OAI_Registry}/${item}:develop-${WEEK_SHA}"
|
||||||
|
} else {
|
||||||
|
sh "docker pull --quiet ${OAI_Registry}/${item}:develop-${WEEK_SHA}"
|
||||||
|
sh "docker image tag ${OAI_Registry}/${item}:develop-${WEEK_SHA} ${DH_Account}/${item}:develop"
|
||||||
|
sh "docker image tag ${OAI_Registry}/${item}:develop-${WEEK_SHA} ${DH_Account}/${item}:${WEEK_TAG}"
|
||||||
|
sh "docker push --quiet ${DH_Account}/${item}:develop"
|
||||||
|
sh "docker push --quiet ${DH_Account}/${item}:${WEEK_TAG}"
|
||||||
|
}
|
||||||
|
sh "docker rmi ${DH_Account}/${item}:${WEEK_TAG} ${DH_Account}/${item}:develop ${OAI_Registry}/${item}:develop-${WEEK_SHA} || true"
|
||||||
}
|
}
|
||||||
// Proxy is not following the same pattern.
|
// Proxy is not following the same pattern.
|
||||||
sh "docker image tag proxy:develop ${DH_Account}/proxy:develop"
|
sh "docker image tag proxy:develop ${DH_Account}/proxy:develop"
|
||||||
|
|||||||
@@ -43,10 +43,6 @@ import constants as CONST
|
|||||||
|
|
||||||
def ArgsParse(argvs,CiTestObj,RAN,HTML,CONTAINERS,HELP,SCA,CLUSTER):
|
def ArgsParse(argvs,CiTestObj,RAN,HTML,CONTAINERS,HELP,SCA,CLUSTER):
|
||||||
|
|
||||||
|
|
||||||
py_param_file_present = False
|
|
||||||
py_params={}
|
|
||||||
|
|
||||||
force_local = False
|
force_local = False
|
||||||
while len(argvs) > 1:
|
while len(argvs) > 1:
|
||||||
myArgv = argvs.pop(1) # 0th is this file's name
|
myArgv = argvs.pop(1) # 0th is this file's name
|
||||||
@@ -172,4 +168,4 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,CONTAINERS,HELP,SCA,CLUSTER):
|
|||||||
HELP.GenericHelp(CONST.Version)
|
HELP.GenericHelp(CONST.Version)
|
||||||
sys.exit('Invalid Parameter: ' + myArgv)
|
sys.exit('Invalid Parameter: ' + myArgv)
|
||||||
|
|
||||||
return py_param_file_present, py_params, mode, force_local
|
return mode, force_local
|
||||||
|
|||||||
@@ -397,9 +397,9 @@ class Cluster:
|
|||||||
# Analyze the logs
|
# Analyze the logs
|
||||||
collectInfo = {}
|
collectInfo = {}
|
||||||
for image, lf in log_files:
|
for image, lf in log_files:
|
||||||
ret = cls_containerize.AnalyzeBuildLogs(image, lf)
|
imgStatus, errors = cls_containerize.AnalyzeBuildLogs(image, lf)
|
||||||
imgStatus = ret['status']
|
info = f"Analysis of {os.path.basename(lf)}: {imgStatus=}, size {imageSize[image]}, {len(errors)} errors"
|
||||||
msg = f"size {imageSize[image]}, analysis of {os.path.basename(lf)}: {ret['errors']} errors, {ret['warnings']} warnings"
|
msg = "\n".join([info] + errors)
|
||||||
HTML.CreateHtmlTestRowQueue(image, 'OK' if imgStatus else 'KO', [msg])
|
HTML.CreateHtmlTestRowQueue(image, 'OK' if imgStatus else 'KO', [msg])
|
||||||
status = status and imgStatus
|
status = status and imgStatus
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import helpreadme as HELP
|
|||||||
import constants as CONST
|
import constants as CONST
|
||||||
import cls_oaicitest
|
import cls_oaicitest
|
||||||
from cls_ci_helper import archiveArtifact
|
from cls_ci_helper import archiveArtifact
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# Helper functions used here and in other classes
|
# Helper functions used here and in other classes
|
||||||
@@ -85,9 +86,9 @@ def CreateTag(ranCommitID, ranBranch, ranAllowMerge):
|
|||||||
return tagToUse
|
return tagToUse
|
||||||
|
|
||||||
def AnalyzeBuildLogs(image, lf):
|
def AnalyzeBuildLogs(image, lf):
|
||||||
errorandwarnings = {}
|
|
||||||
committed = False
|
committed = False
|
||||||
tagged = False
|
tagged = False
|
||||||
|
errors = []
|
||||||
with open(lf, mode='r') as inputfile:
|
with open(lf, mode='r') as inputfile:
|
||||||
for line in inputfile:
|
for line in inputfile:
|
||||||
lineHasTag = re.search(f'Successfully tagged {image}:', str(line)) is not None
|
lineHasTag = re.search(f'Successfully tagged {image}:', str(line)) is not None
|
||||||
@@ -96,11 +97,13 @@ def AnalyzeBuildLogs(image, lf):
|
|||||||
# the OpenShift Cluster builder prepends image registry URL
|
# the OpenShift Cluster builder prepends image registry URL
|
||||||
lineHasCommit = re.search(r'COMMIT [a-zA-Z0-9\.:/\-]*' + image, str(line)) is not None
|
lineHasCommit = re.search(r'COMMIT [a-zA-Z0-9\.:/\-]*' + image, str(line)) is not None
|
||||||
committed = committed or lineHasCommit
|
committed = committed or lineHasCommit
|
||||||
errorandwarnings['errors'] = 0 if committed or tagged else 1
|
if re.search(r'error:|Errors|ERROR', line):
|
||||||
errorandwarnings['warnings'] = 0
|
errors.append(f"=> {line.strip()}")
|
||||||
errorandwarnings['status'] = committed or tagged
|
status = (committed or tagged) and len(errors) == 0
|
||||||
logging.info(f"Analyzing {image}, file {lf}: {errorandwarnings}")
|
logging.info(f"Analyzing {image}, file {lf}: {status=}, {len(errors)} errors")
|
||||||
return errorandwarnings
|
for e in errors:
|
||||||
|
logging.info(e)
|
||||||
|
return status, errors
|
||||||
|
|
||||||
def GetImageName(ssh, svcName, file):
|
def GetImageName(ssh, svcName, file):
|
||||||
ret = ssh.run(f"docker compose -f {file} config --format json {svcName} | jq -r '.services.\"{svcName}\".image'", silent=True)
|
ret = ssh.run(f"docker compose -f {file} config --format json {svcName} | jq -r '.services.\"{svcName}\".image'", silent=True)
|
||||||
@@ -119,7 +122,7 @@ def ExistEnvFilePrint(ssh, wd, prompt='env vars in existing'):
|
|||||||
|
|
||||||
def WriteEnvFile(ssh, services, wd, tag, flexric_tag):
|
def WriteEnvFile(ssh, services, wd, tag, flexric_tag):
|
||||||
ret = ssh.run(f'cat {wd}/.env', silent=True, reportNonZero=False)
|
ret = ssh.run(f'cat {wd}/.env', silent=True, reportNonZero=False)
|
||||||
registry = "oai-ci" # pull_images() gives us this registry path
|
registry = "oai-ci/" # pull_images() gives us this registry path
|
||||||
envs = {"REGISTRY":registry, "TAG": tag, "FLEXRIC_TAG": flexric_tag}
|
envs = {"REGISTRY":registry, "TAG": tag, "FLEXRIC_TAG": flexric_tag}
|
||||||
if ret.returncode == 0: # it exists, we have to update
|
if ret.returncode == 0: # it exists, we have to update
|
||||||
# transforms env file to dictionary
|
# transforms env file to dictionary
|
||||||
@@ -134,7 +137,8 @@ def WriteEnvFile(ssh, services, wd, tag, flexric_tag):
|
|||||||
# or -asan images. We need to detect which kind we did pull.
|
# or -asan images. We need to detect which kind we did pull.
|
||||||
fullImageName = GetImageName(ssh, svc, f"{wd}/docker-compose.y*ml")
|
fullImageName = GetImageName(ssh, svc, f"{wd}/docker-compose.y*ml")
|
||||||
image = fullImageName.split("/")[-1].split(":")[0]
|
image = fullImageName.split("/")[-1].split(":")[0]
|
||||||
checkimg = f"{registry}/{image}-asan:{tag}"
|
# registry now includes the trailing slash ("oai-ci/")
|
||||||
|
checkimg = f"{registry}{image}-asan:{tag}"
|
||||||
ret = ssh.run(f'docker image inspect {checkimg}', reportNonZero=False)
|
ret = ssh.run(f'docker image inspect {checkimg}', reportNonZero=False)
|
||||||
if ret.returncode == 0:
|
if ret.returncode == 0:
|
||||||
logging.info(f"detected pulled image {checkimg}")
|
logging.info(f"detected pulled image {checkimg}")
|
||||||
@@ -164,25 +168,26 @@ def CopyinServiceLog(ssh, lSourcePath, svcName, wd_yaml, ctx):
|
|||||||
ssh.run(f'docker compose -f {wd_yaml} logs {svcName} --no-log-prefix &> {remote_filename}')
|
ssh.run(f'docker compose -f {wd_yaml} logs {svcName} --no-log-prefix &> {remote_filename}')
|
||||||
return archiveArtifact(ssh, ctx, remote_filename)
|
return archiveArtifact(ssh, ctx, remote_filename)
|
||||||
|
|
||||||
def GetRunningServices(ssh, file):
|
def GetDeployedServices(ssh, file):
|
||||||
ret = ssh.run(f'docker compose -f {file} config --services')
|
ret = ssh.run(f'docker compose -f {file} config --services')
|
||||||
if ret.returncode != 0:
|
if ret.returncode != 0:
|
||||||
|
logging.error("could not get services")
|
||||||
return None
|
return None
|
||||||
allServices = ret.stdout.splitlines()
|
allServices = ret.stdout.splitlines()
|
||||||
running_services = []
|
deployed_services = []
|
||||||
for s in allServices:
|
for s in allServices:
|
||||||
# outputs the hash if the container is running
|
# outputs the hash if the container has been deployed (but might be stopped)
|
||||||
ret = ssh.run(f'docker compose -f {file} ps --all --quiet -- {s}')
|
ret = ssh.run(f'docker compose -f {file} ps --all --quiet -- {s}', silent=True)
|
||||||
if ret.returncode != 0:
|
if ret.returncode != 0:
|
||||||
logging.info(f"service {s}: {ret.stdout}")
|
# error: should not happen as we iterate over docker-provided service list
|
||||||
|
logging.error(f"service {s}: {ret.stdout}")
|
||||||
elif ret.stdout == "":
|
elif ret.stdout == "":
|
||||||
logging.warning(f"could not retrieve information for service {s}")
|
logging.info(f"service {s} not deployed")
|
||||||
else:
|
else:
|
||||||
c = ret.stdout
|
c = ret.stdout
|
||||||
logging.debug(f'running service {s} with container id {c}')
|
logging.info(f'service {s} with container id {c}')
|
||||||
running_services.append((s, c))
|
deployed_services.append(s)
|
||||||
logging.info(f'stopping services: {running_services}')
|
return deployed_services
|
||||||
return running_services
|
|
||||||
|
|
||||||
def CheckLogs(self, filename, HTML, RAN):
|
def CheckLogs(self, filename, HTML, RAN):
|
||||||
success = True
|
success = True
|
||||||
@@ -214,6 +219,24 @@ def CheckLogs(self, filename, HTML, RAN):
|
|||||||
else:
|
else:
|
||||||
HTML.CreateHtmlTestRowQueue(opt, 'OK', [HTML.htmleNBFailureMsg])
|
HTML.CreateHtmlTestRowQueue(opt, 'OK', [HTML.htmleNBFailureMsg])
|
||||||
HTML.htmleNBFailureMsg = ""
|
HTML.htmleNBFailureMsg = ""
|
||||||
|
elif 'xapp' in name:
|
||||||
|
opt = f"Undeploy {name}"
|
||||||
|
with open(f'{filename}', "r") as f:
|
||||||
|
last_line = deque(f, maxlen=1).pop()
|
||||||
|
if ('Test xApp run SUCCESSFULLY' in last_line):
|
||||||
|
HTML.CreateHtmlTestRowQueue(opt, 'OK', ["xApp run successfully"])
|
||||||
|
else:
|
||||||
|
HTML.CreateHtmlTestRowQueue(opt, 'KO', ["xApp didn't run successfully"])
|
||||||
|
success = False
|
||||||
|
elif 'RIC' in name:
|
||||||
|
opt = f"Undeploy {name}"
|
||||||
|
with open(f'{filename}', 'r') as f:
|
||||||
|
last_line = deque(f, maxlen=1).pop()
|
||||||
|
if ('Removing E2 Node' in last_line):
|
||||||
|
HTML.CreateHtmlTestRowQueue(opt, 'OK', ["nearRT-RIC run successfully"])
|
||||||
|
else:
|
||||||
|
HTML.CreateHtmlTestRowQueue(opt, 'KO', ["nearRT-RIC didn't run successfully"])
|
||||||
|
success = False
|
||||||
else:
|
else:
|
||||||
logging.info(f"Skipping analysis of log '{filename}': no submatch for xNB/UE")
|
logging.info(f"Skipping analysis of log '{filename}': no submatch for xNB/UE")
|
||||||
logging.debug(f"log check: file {filename} passed analysis {success}")
|
logging.debug(f"log check: file {filename} passed analysis {success}")
|
||||||
@@ -439,9 +462,9 @@ class Containerize():
|
|||||||
|
|
||||||
# Analyze the logs
|
# Analyze the logs
|
||||||
for name, lf in log_files:
|
for name, lf in log_files:
|
||||||
ret = AnalyzeBuildLogs(name, lf)
|
imgStatus, errors = AnalyzeBuildLogs(name, lf)
|
||||||
imgStatus = ret['status']
|
info = f"Analysis of {os.path.basename(lf)}: {imgStatus=}, size {allImagesSize[name]}, {len(errors)} errors"
|
||||||
msg = f"size {allImagesSize[name]}, analysis of {os.path.basename(lf)}: {ret['errors']} errors, {ret['warnings']} warnings"
|
msg = "\n".join([info] + errors)
|
||||||
HTML.CreateHtmlTestRowQueue(name, 'OK' if imgStatus else 'KO', [msg])
|
HTML.CreateHtmlTestRowQueue(name, 'OK' if imgStatus else 'KO', [msg])
|
||||||
status = status and imgStatus
|
status = status and imgStatus
|
||||||
|
|
||||||
@@ -714,7 +737,6 @@ class Containerize():
|
|||||||
def DeployObject(self, ctx, node, HTML):
|
def DeployObject(self, ctx, node, HTML):
|
||||||
num_attempts = self.num_attempts
|
num_attempts = self.num_attempts
|
||||||
lSourcePath = self.eNBSourceCodePath
|
lSourcePath = self.eNBSourceCodePath
|
||||||
logging.debug(f'Deploying OAI Object on server: {node}')
|
|
||||||
yaml = self.yamlPath.strip('/')
|
yaml = self.yamlPath.strip('/')
|
||||||
wd = f'{lSourcePath}/{yaml}'
|
wd = f'{lSourcePath}/{yaml}'
|
||||||
wd_yaml = f'{wd}/docker-compose.y*ml'
|
wd_yaml = f'{wd}/docker-compose.y*ml'
|
||||||
@@ -725,6 +747,7 @@ class Containerize():
|
|||||||
logging.error(msg)
|
logging.error(msg)
|
||||||
HTML.CreateHtmlTestRowQueue('N/A', 'KO', [msg])
|
HTML.CreateHtmlTestRowQueue('N/A', 'KO', [msg])
|
||||||
return False
|
return False
|
||||||
|
logging.info(f'\u001B[1mDeploying object(s) "{services}" on server {node}\u001B[0m')
|
||||||
ExistEnvFilePrint(ssh, wd)
|
ExistEnvFilePrint(ssh, wd)
|
||||||
WriteEnvFile(ssh, services, wd, self.deploymentTag, self.flexricTag)
|
WriteEnvFile(ssh, services, wd, self.deploymentTag, self.flexricTag)
|
||||||
if num_attempts <= 0:
|
if num_attempts <= 0:
|
||||||
@@ -749,36 +772,68 @@ class Containerize():
|
|||||||
imagesInfo = info.stdout.splitlines()[1:]
|
imagesInfo = info.stdout.splitlines()[1:]
|
||||||
logging.debug(f'{info.stdout.splitlines()[1:]}')
|
logging.debug(f'{info.stdout.splitlines()[1:]}')
|
||||||
if deployed:
|
if deployed:
|
||||||
HTML.CreateHtmlTestRowQueue('N/A', 'OK', ['\n'.join(imagesInfo)])
|
HTML.CreateHtmlTestRowQueue(self.services, 'OK', ['\n'.join(imagesInfo)])
|
||||||
|
logging.info('\u001B[1m Deploying objects Pass\u001B[0m')
|
||||||
else:
|
else:
|
||||||
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ['\n'.join(imagesInfo)])
|
HTML.CreateHtmlTestRowQueue(self.services, 'KO', ['\n'.join(imagesInfo)])
|
||||||
|
logging.error('\u001B[1m Deploying objects Failed\u001B[0m')
|
||||||
return deployed
|
return deployed
|
||||||
|
|
||||||
|
def StopObject(self, ctx, node, HTML):
|
||||||
|
lSourcePath = self.eNBSourceCodePath
|
||||||
|
if not self.services:
|
||||||
|
raise ValueError(f'no services provided')
|
||||||
|
logging.info(f'\u001B[1m Stopping objects "{self.services}" from server: {node}\u001B[0m')
|
||||||
|
reqServices = self.services.split()
|
||||||
|
yaml = self.yamlPath.strip('/')
|
||||||
|
wd = f'{lSourcePath}/{yaml}'
|
||||||
|
wd_yaml = f'{wd}/docker-compose.y*ml'
|
||||||
|
with cls_cmd.getConnection(node) as ssh:
|
||||||
|
ExistEnvFilePrint(ssh, wd)
|
||||||
|
services = GetDeployedServices(ssh, wd_yaml)
|
||||||
|
success = []
|
||||||
|
fail = []
|
||||||
|
for s in reqServices:
|
||||||
|
if s in services:
|
||||||
|
ssh.run(f'docker compose -f {wd_yaml} stop -- {s}')
|
||||||
|
success.append(s)
|
||||||
|
else:
|
||||||
|
logging.error(f"no such service {s}")
|
||||||
|
fail.append(s)
|
||||||
|
if success == reqServices:
|
||||||
|
logging.info('\u001B[1m Stopping object Pass\u001B[0m')
|
||||||
|
HTML.CreateHtmlTestRowQueue(self.services, 'OK', [f'Stopped {self.services}'])
|
||||||
|
else:
|
||||||
|
logging.error('\u001B[1m Stopping object Failed\u001B[0m')
|
||||||
|
HTML.CreateHtmlTestRowQueue(self.services, 'KO', [f'Failed stopping {" ".join(fail)}, succeeded {" ".join(success)}'])
|
||||||
|
return success
|
||||||
|
|
||||||
def UndeployObject(self, ctx, node, HTML, RAN):
|
def UndeployObject(self, ctx, node, HTML, RAN):
|
||||||
lSourcePath = self.eNBSourceCodePath
|
lSourcePath = self.eNBSourceCodePath
|
||||||
logging.debug(f'\u001B[1m Undeploying OAI Object from server: {node}\u001B[0m')
|
logging.info(f'\u001B[1m Undeploying all objects from server {node}\u001B[0m')
|
||||||
yaml = self.yamlPath.strip('/')
|
yaml = self.yamlPath.strip('/')
|
||||||
wd = f'{lSourcePath}/{yaml}'
|
wd = f'{lSourcePath}/{yaml}'
|
||||||
|
wd_yaml = f'{wd}/docker-compose.y*ml'
|
||||||
with cls_cmd.getConnection(node) as ssh:
|
with cls_cmd.getConnection(node) as ssh:
|
||||||
ExistEnvFilePrint(ssh, wd)
|
ExistEnvFilePrint(ssh, wd)
|
||||||
services = GetRunningServices(ssh, f"{wd}/docker-compose.y*ml")
|
services = GetDeployedServices(ssh, wd_yaml)
|
||||||
copyin_res = None
|
copyin_res = None
|
||||||
|
ssh.run(f'docker compose -f {wd_yaml} stop')
|
||||||
if services is not None:
|
if services is not None:
|
||||||
all_serv = " ".join([s for s, _ in services])
|
copyin_res = [CopyinServiceLog(ssh, lSourcePath, s, wd_yaml, ctx) for s in services]
|
||||||
ssh.run(f'docker compose -f {wd}/docker-compose.y*ml stop -- {all_serv}')
|
|
||||||
copyin_res = [CopyinServiceLog(ssh, lSourcePath, s, f"{wd}/docker-compose.y*ml", ctx) for s, _ in services]
|
|
||||||
else:
|
else:
|
||||||
logging.warning('could not identify services to stop => no log file')
|
logging.warning('could not identify services to stop => no log file')
|
||||||
ssh.run(f'docker compose -f {wd}/docker-compose.y*ml down -v')
|
ssh.run(f'docker compose -f {wd_yaml} down -v')
|
||||||
ssh.run(f'rm {wd}/.env')
|
ssh.run(f'rm {wd}/.env')
|
||||||
if not copyin_res:
|
if not copyin_res:
|
||||||
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ['Could not copy logfile(s)'])
|
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ['Could not copy logfile(s)'])
|
||||||
return False
|
logging.error(f"could not copy all files: {copyin_res=} {services=}")
|
||||||
|
success = False
|
||||||
else:
|
else:
|
||||||
log_results = [CheckLogs(self, f, HTML, RAN) for f in copyin_res]
|
log_results = [CheckLogs(self, f, HTML, RAN) for f in copyin_res]
|
||||||
success = all(log_results)
|
success = all(log_results)
|
||||||
if success:
|
if success:
|
||||||
logging.info('\u001B[1m Undeploying OAI Object Pass\u001B[0m')
|
logging.info('\u001B[1m Undeploying objects Pass\u001B[0m')
|
||||||
else:
|
else:
|
||||||
logging.error('\u001B[1m Undeploying OAI Object Failed\u001B[0m')
|
logging.error('\u001B[1m Undeploying objects Failed\u001B[0m')
|
||||||
return success
|
return success
|
||||||
|
|||||||
@@ -111,10 +111,11 @@ class Module_UE:
|
|||||||
return self._collectTrace(ctx)
|
return self._collectTrace(ctx)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def attach(self, attach_tries = 4, attach_timeout = 60):
|
def attach(self, attach_tries = 3, attach_timeout = 0):
|
||||||
ip = None
|
ip = None
|
||||||
while attach_tries > 0:
|
while attach_tries > 0:
|
||||||
self._command(self.cmd_dict["attach"])
|
self._command(self.cmd_dict["attach"])
|
||||||
|
attach_timeout += 20
|
||||||
timeout = attach_timeout
|
timeout = attach_timeout
|
||||||
logging.debug("Waiting for IP address to be assigned")
|
logging.debug("Waiting for IP address to be assigned")
|
||||||
ip = self.getIP(silent=False, reportNonZero=True)
|
ip = self.getIP(silent=False, reportNonZero=True)
|
||||||
|
|||||||
+28
-25
@@ -233,10 +233,10 @@ def Custom_Command(HTML, node, command):
|
|||||||
HTML.CreateHtmlTestRowQueue(command, status, message)
|
HTML.CreateHtmlTestRowQueue(command, status, message)
|
||||||
return status == 'OK' or status == 'Warning'
|
return status == 'OK' or status == 'Warning'
|
||||||
|
|
||||||
def Custom_Script(HTML, node, script):
|
def Custom_Script(HTML, node, script, args):
|
||||||
logging.info(f"Executing custom script on {node}")
|
logging.info(f"Executing custom script on {node}")
|
||||||
with cls_cmd.getConnection(node) as c:
|
with cls_cmd.getConnection(node) as c:
|
||||||
ret = c.exec_script(script, 90)
|
ret = c.exec_script(script, 90, args)
|
||||||
logging.debug(f"Custom_Script: {script} on node: {node} - return code {ret.returncode}, output:\n{ret.stdout}")
|
logging.debug(f"Custom_Script: {script} on node: {node} - return code {ret.returncode}, output:\n{ret.stdout}")
|
||||||
status = 'OK'
|
status = 'OK'
|
||||||
message = [ret.stdout]
|
message = [ret.stdout]
|
||||||
@@ -299,18 +299,16 @@ class OaiCiTest():
|
|||||||
self.iperf_packetloss_threshold = ''
|
self.iperf_packetloss_threshold = ''
|
||||||
self.iperf_bitrate_threshold = ''
|
self.iperf_bitrate_threshold = ''
|
||||||
self.iperf_profile = ''
|
self.iperf_profile = ''
|
||||||
self.iperf_options = ''
|
|
||||||
self.iperf_tcp_rate_target = ''
|
self.iperf_tcp_rate_target = ''
|
||||||
self.finalStatus = False
|
self.finalStatus = False
|
||||||
self.air_interface=''
|
self.air_interface=''
|
||||||
self.ue_ids = []
|
self.ue_ids = []
|
||||||
self.nodes = []
|
|
||||||
self.svr_node = None
|
self.svr_node = None
|
||||||
self.svr_id = None
|
self.svr_id = None
|
||||||
self.cmd_prefix = '' # prefix before {lte,nr}-uesoftmodem
|
self.cmd_prefix = '' # prefix before {lte,nr}-uesoftmodem
|
||||||
|
|
||||||
def InitializeUE(self, HTML):
|
def InitializeUE(self, node, HTML):
|
||||||
ues = [cls_module.Module_UE(n.strip()) for n in self.ue_ids]
|
ues = [cls_module.Module_UE(n.strip(), node) for n in self.ue_ids]
|
||||||
messages = []
|
messages = []
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
futures = [executor.submit(ue.initialize) for ue in ues]
|
futures = [executor.submit(ue.initialize) for ue in ues]
|
||||||
@@ -321,8 +319,8 @@ class OaiCiTest():
|
|||||||
HTML.CreateHtmlTestRowQueue('N/A', 'OK', messages)
|
HTML.CreateHtmlTestRowQueue('N/A', 'OK', messages)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def AttachUE(self, HTML):
|
def AttachUE(self, node, HTML):
|
||||||
ues = [cls_module.Module_UE(ue_id, server_name) for ue_id, server_name in zip(self.ue_ids, self.nodes)]
|
ues = [cls_module.Module_UE(ue_id, node) for ue_id in self.ue_ids]
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
futures = [executor.submit(ue.attach) for ue in ues]
|
futures = [executor.submit(ue.attach) for ue in ues]
|
||||||
attached = [f.result() for f in futures]
|
attached = [f.result() for f in futures]
|
||||||
@@ -337,8 +335,8 @@ class OaiCiTest():
|
|||||||
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ["Could not retrieve UE IP address(es) or MTU(s) wrong!"])
|
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ["Could not retrieve UE IP address(es) or MTU(s) wrong!"])
|
||||||
return success
|
return success
|
||||||
|
|
||||||
def DetachUE(self, HTML):
|
def DetachUE(self, node, HTML):
|
||||||
ues = [cls_module.Module_UE(ue_id, server_name) for ue_id, server_name in zip(self.ue_ids, self.nodes)]
|
ues = [cls_module.Module_UE(ue_id, node) for ue_id in self.ue_ids]
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
futures = [executor.submit(ue.detach) for ue in ues]
|
futures = [executor.submit(ue.detach) for ue in ues]
|
||||||
[f.result() for f in futures]
|
[f.result() for f in futures]
|
||||||
@@ -346,8 +344,8 @@ class OaiCiTest():
|
|||||||
HTML.CreateHtmlTestRowQueue('NA', 'OK', messages)
|
HTML.CreateHtmlTestRowQueue('NA', 'OK', messages)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def DataDisableUE(self, HTML):
|
def DataDisableUE(self, node, HTML):
|
||||||
ues = [cls_module.Module_UE(n.strip()) for n in self.ue_ids]
|
ues = [cls_module.Module_UE(n.strip(), node) for n in self.ue_ids]
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
futures = [executor.submit(ue.dataDisable) for ue in ues]
|
futures = [executor.submit(ue.dataDisable) for ue in ues]
|
||||||
status = [f.result() for f in futures]
|
status = [f.result() for f in futures]
|
||||||
@@ -360,8 +358,8 @@ class OaiCiTest():
|
|||||||
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ["Could not disable UE data!"])
|
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ["Could not disable UE data!"])
|
||||||
return success
|
return success
|
||||||
|
|
||||||
def DataEnableUE(self, HTML):
|
def DataEnableUE(self, node, HTML):
|
||||||
ues = [cls_module.Module_UE(n.strip()) for n in self.ue_ids]
|
ues = [cls_module.Module_UE(n.strip(), node) for n in self.ue_ids]
|
||||||
logging.debug(f'disabling data for UEs {ues}')
|
logging.debug(f'disabling data for UEs {ues}')
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
futures = [executor.submit(ue.dataEnable) for ue in ues]
|
futures = [executor.submit(ue.dataEnable) for ue in ues]
|
||||||
@@ -375,8 +373,8 @@ class OaiCiTest():
|
|||||||
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ["Could not enable UE data!"])
|
HTML.CreateHtmlTestRowQueue('N/A', 'KO', ["Could not enable UE data!"])
|
||||||
return success
|
return success
|
||||||
|
|
||||||
def CheckStatusUE(self,HTML):
|
def CheckStatusUE(self, node, HTML):
|
||||||
ues = [cls_module.Module_UE(n.strip()) for n in self.ue_ids]
|
ues = [cls_module.Module_UE(n.strip(), node) for n in self.ue_ids]
|
||||||
logging.debug(f'checking status of UEs {ues}')
|
logging.debug(f'checking status of UEs {ues}')
|
||||||
messages = []
|
messages = []
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
@@ -446,10 +444,10 @@ class OaiCiTest():
|
|||||||
|
|
||||||
return (True, message)
|
return (True, message)
|
||||||
|
|
||||||
def Ping(self, ctx, HTML, infra_file="ci_infra.yaml"):
|
def Ping(self, ctx, node, HTML, infra_file="ci_infra.yaml"):
|
||||||
if self.ue_ids == [] or self.svr_id == None:
|
if self.ue_ids == [] or self.svr_id == None:
|
||||||
raise Exception("no module names in self.ue_ids or/and self.svr_id provided")
|
raise Exception("no module names in self.ue_ids or/and self.svr_id provided")
|
||||||
ues = [cls_module.Module_UE(ue_id, server_name, infra_file) for ue_id, server_name in zip(self.ue_ids, self.nodes)]
|
ues = [cls_module.Module_UE(ue_id, node, infra_file) for ue_id in self.ue_ids]
|
||||||
cn = cls_corenetwork.CoreNetwork(self.svr_id, self.svr_node, filename=infra_file)
|
cn = cls_corenetwork.CoreNetwork(self.svr_id, self.svr_node, filename=infra_file)
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
futures = [executor.submit(self.Ping_common, ctx, cn, ue) for ue in ues]
|
futures = [executor.submit(self.Ping_common, ctx, cn, ue) for ue in ues]
|
||||||
@@ -503,6 +501,11 @@ class OaiCiTest():
|
|||||||
t = iperf_time * 2.5
|
t = iperf_time * 2.5
|
||||||
cmd_ue.run(f'rm {client_filename}', reportNonZero=False, silent=True)
|
cmd_ue.run(f'rm {client_filename}', reportNonZero=False, silent=True)
|
||||||
if cn.runIperf3Server():
|
if cn.runIperf3Server():
|
||||||
|
# Clean up any existing iperf3 server processes on this port.
|
||||||
|
ret = cmd_svr.run(f"{cn.getCmdPrefix()} pkill -f '.*iperf3.*{port}'", reportNonZero=False)
|
||||||
|
# If pkill succeeds, it means there was a leftover iperf3 server.
|
||||||
|
if ret.returncode == 0:
|
||||||
|
logging.warning(f'Iperf3 server on port {port} detected and terminated')
|
||||||
cmd_svr.run(f'{cn.getCmdPrefix()} timeout -vk3 {t} iperf3 -s -B {svrIP} -p {port} -1 {jsonReport} >> /dev/null &', timeout=t)
|
cmd_svr.run(f'{cn.getCmdPrefix()} timeout -vk3 {t} iperf3 -s -B {svrIP} -p {port} -1 {jsonReport} >> /dev/null &', timeout=t)
|
||||||
cmd_ue.run(f'{ue.getCmdPrefix()} timeout -vk3 {t} {iperf_ue} -B {ueIP} -c {svrIP} -p {port} {iperf_opt} {jsonReport} {serverReport} -O 5 >> {client_filename}', timeout=t)
|
cmd_ue.run(f'{ue.getCmdPrefix()} timeout -vk3 {t} {iperf_ue} -B {ueIP} -c {svrIP} -p {port} {iperf_opt} {jsonReport} {serverReport} -O 5 >> {client_filename}', timeout=t)
|
||||||
dest_filename = archiveArtifact(cmd_ue, ctx, client_filename)
|
dest_filename = archiveArtifact(cmd_ue, ctx, client_filename)
|
||||||
@@ -515,12 +518,12 @@ class OaiCiTest():
|
|||||||
|
|
||||||
return (status, f'{ue_header}\n{msg}')
|
return (status, f'{ue_header}\n{msg}')
|
||||||
|
|
||||||
def Iperf(self, ctx, HTML, infra_file="ci_infra.yaml"):
|
def Iperf(self, ctx, node, HTML, infra_file="ci_infra.yaml"):
|
||||||
logging.debug(f'Iperf: iperf_args "{self.iperf_args}" iperf_packetloss_threshold "{self.iperf_packetloss_threshold}" iperf_bitrate_threshold "{self.iperf_bitrate_threshold}" iperf_profile "{self.iperf_profile}" iperf_options "{self.iperf_options}"')
|
logging.debug(f'Iperf: iperf_args "{self.iperf_args}" iperf_packetloss_threshold "{self.iperf_packetloss_threshold}" iperf_bitrate_threshold "{self.iperf_bitrate_threshold}" iperf_profile "{self.iperf_profile}"')
|
||||||
|
|
||||||
if self.ue_ids == [] or self.svr_id == None:
|
if self.ue_ids == [] or self.svr_id == None:
|
||||||
raise Exception("no module names in self.ue_ids or/and self.svr_id provided")
|
raise Exception("no module names in self.ue_ids or/and self.svr_id provided")
|
||||||
ues = [cls_module.Module_UE(ue_id, server_name, infra_file) for ue_id, server_name in zip(self.ue_ids, self.nodes)]
|
ues = [cls_module.Module_UE(ue_id, node, infra_file) for ue_id in self.ue_ids]
|
||||||
cn = cls_corenetwork.CoreNetwork(self.svr_id, self.svr_node, filename=infra_file)
|
cn = cls_corenetwork.CoreNetwork(self.svr_id, self.svr_node, filename=infra_file)
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
futures = [executor.submit(self.Iperf_Module, ctx, cn, ue, i, len(ues)) for i, ue in enumerate(ues)]
|
futures = [executor.submit(self.Iperf_Module, ctx, cn, ue, i, len(ues)) for i, ue in enumerate(ues)]
|
||||||
@@ -544,10 +547,10 @@ class OaiCiTest():
|
|||||||
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'KO', messages)
|
HTML.CreateHtmlTestRowQueue(self.iperf_args, 'KO', messages)
|
||||||
return success
|
return success
|
||||||
|
|
||||||
def Iperf2_Unidir(self, ctx, HTML, infra_file="ci_infra.yaml"):
|
def Iperf2_Unidir(self, ctx, node, HTML, infra_file="ci_infra.yaml"):
|
||||||
if self.ue_ids == [] or self.svr_id == None or len(self.ue_ids) != 1:
|
if self.ue_ids == [] or self.svr_id == None or len(self.ue_ids) != 1:
|
||||||
raise Exception("no module names in self.ue_ids or/and self.svr_id provided, multi UE scenario not supported")
|
raise Exception("no module names in self.ue_ids or/and self.svr_id provided, multi UE scenario not supported")
|
||||||
ue = cls_module.Module_UE(self.ue_ids[0].strip(),self.nodes[0].strip(), infra_file)
|
ue = cls_module.Module_UE(self.ue_ids[0].strip(), node, infra_file)
|
||||||
cn = cls_corenetwork.CoreNetwork(self.svr_id, self.svr_node, filename=infra_file)
|
cn = cls_corenetwork.CoreNetwork(self.svr_id, self.svr_node, filename=infra_file)
|
||||||
ueIP = ue.getIP()
|
ueIP = ue.getIP()
|
||||||
if not ueIP:
|
if not ueIP:
|
||||||
@@ -847,8 +850,8 @@ class OaiCiTest():
|
|||||||
global_status = CONST.OAI_UE_PROCESS_COULD_NOT_SYNC
|
global_status = CONST.OAI_UE_PROCESS_COULD_NOT_SYNC
|
||||||
return global_status
|
return global_status
|
||||||
|
|
||||||
def TerminateUE(self, ctx, HTML):
|
def TerminateUE(self, ctx, node, HTML):
|
||||||
ues = [cls_module.Module_UE(n.strip()) for n in self.ue_ids]
|
ues = [cls_module.Module_UE(n.strip(), node) for n in self.ue_ids]
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
with concurrent.futures.ThreadPoolExecutor(max_workers=64) as executor:
|
||||||
futures = [executor.submit(ue.terminate, ctx) for ue in ues]
|
futures = [executor.submit(ue.terminate, ctx) for ue in ues]
|
||||||
archives = [f.result() for f in futures]
|
archives = [f.result() for f in futures]
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ security = {
|
|||||||
# preferred ciphering algorithms
|
# preferred ciphering algorithms
|
||||||
# the first one of the list that an UE supports in chosen
|
# the first one of the list that an UE supports in chosen
|
||||||
# valid values: nea0, nea1, nea2, nea3
|
# valid values: nea0, nea1, nea2, nea3
|
||||||
ciphering_algorithms = ( "nea0" );
|
ciphering_algorithms = ( "nea2", "nea0" );
|
||||||
|
|
||||||
# preferred integrity algorithms
|
# preferred integrity algorithms
|
||||||
# the first one of the list that an UE supports in chosen
|
# the first one of the list that an UE supports in chosen
|
||||||
@@ -63,7 +63,7 @@ security = {
|
|||||||
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||||
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||||
drb_ciphering = "yes";
|
drb_ciphering = "yes";
|
||||||
drb_integrity = "no";
|
drb_integrity = "yes";
|
||||||
};
|
};
|
||||||
|
|
||||||
log_config :
|
log_config :
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ gNBs =
|
|||||||
////////// Physical parameters:
|
////////// Physical parameters:
|
||||||
|
|
||||||
min_rxtxtime = 2;
|
min_rxtxtime = 2;
|
||||||
do_CSIRS = 1;
|
|
||||||
do_SRS = 1;
|
do_SRS = 1;
|
||||||
|
|
||||||
servingCellConfigCommon = (
|
servingCellConfigCommon = (
|
||||||
@@ -135,11 +134,11 @@ gNBs =
|
|||||||
# pattern1
|
# pattern1
|
||||||
# dl_UL_TransmissionPeriodicity
|
# dl_UL_TransmissionPeriodicity
|
||||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||||
dl_UL_TransmissionPeriodicity = 6;
|
dl_UL_TransmissionPeriodicity = 5;
|
||||||
nrofDownlinkSlots = 7;
|
nrofDownlinkSlots = 3;
|
||||||
nrofDownlinkSymbols = 6;
|
nrofDownlinkSymbols = 10;
|
||||||
nrofUplinkSlots = 2;
|
nrofUplinkSlots = 1;
|
||||||
nrofUplinkSymbols = 4;
|
nrofUplinkSymbols = 2;
|
||||||
|
|
||||||
ssPBCH_BlockPower = -25;
|
ssPBCH_BlockPower = -25;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ gNBs =
|
|||||||
pdsch_AntennaPorts_N1 = 2;
|
pdsch_AntennaPorts_N1 = 2;
|
||||||
pusch_AntennaPorts = 2;
|
pusch_AntennaPorts = 2;
|
||||||
do_CSIRS = 1;
|
do_CSIRS = 1;
|
||||||
do_SRS = 0;
|
do_SRS = 1;
|
||||||
min_rxtxtime = 2;
|
min_rxtxtime = 2;
|
||||||
|
|
||||||
servingCellConfigCommon = (
|
servingCellConfigCommon = (
|
||||||
@@ -155,7 +155,7 @@ gNBs =
|
|||||||
nrofUplinkSlots = 3; #1;
|
nrofUplinkSlots = 3; #1;
|
||||||
nrofUplinkSymbols = 0;
|
nrofUplinkSymbols = 0;
|
||||||
|
|
||||||
ssPBCH_BlockPower = -25;
|
ssPBCH_BlockPower = -15;
|
||||||
}
|
}
|
||||||
|
|
||||||
);
|
);
|
||||||
@@ -176,8 +176,8 @@ gNBs =
|
|||||||
|
|
||||||
NETWORK_INTERFACES :
|
NETWORK_INTERFACES :
|
||||||
{
|
{
|
||||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.202";
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.53";
|
||||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.202";
|
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.53";
|
||||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -195,7 +195,7 @@ MACRLCs = (
|
|||||||
remote_s_portd = 50010; // pnf p7 port [!]
|
remote_s_portd = 50010; // pnf p7 port [!]
|
||||||
tr_s_preference = "aerial";
|
tr_s_preference = "aerial";
|
||||||
tr_n_preference = "local_RRC";
|
tr_n_preference = "local_RRC";
|
||||||
pusch_TargetSNRx10 = 200; # 150;
|
pusch_TargetSNRx10 = 280; # 150;
|
||||||
pucch_TargetSNRx10 = 200; #200;
|
pucch_TargetSNRx10 = 200; #200;
|
||||||
dl_max_mcs = 28;
|
dl_max_mcs = 28;
|
||||||
ul_max_mcs = 28;
|
ul_max_mcs = 28;
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ gNBs =
|
|||||||
pdsch_AntennaPorts_N1 = 2;
|
pdsch_AntennaPorts_N1 = 2;
|
||||||
pusch_AntennaPorts = 2;
|
pusch_AntennaPorts = 2;
|
||||||
do_CSIRS = 1;
|
do_CSIRS = 1;
|
||||||
do_SRS = 0;
|
do_SRS = 1;
|
||||||
min_rxtxtime = 2;
|
min_rxtxtime = 2;
|
||||||
|
force_UL256qam_off = 1;
|
||||||
servingCellConfigCommon = (
|
servingCellConfigCommon = (
|
||||||
{
|
{
|
||||||
#spCellConfigCommon
|
#spCellConfigCommon
|
||||||
@@ -168,8 +168,8 @@ gNBs =
|
|||||||
|
|
||||||
NETWORK_INTERFACES :
|
NETWORK_INTERFACES :
|
||||||
{
|
{
|
||||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.202";
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.53";
|
||||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.202";
|
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.53";
|
||||||
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -187,7 +187,7 @@ MACRLCs = (
|
|||||||
remote_s_portd = 50010; // pnf p7 port [!]
|
remote_s_portd = 50010; // pnf p7 port [!]
|
||||||
tr_s_preference = "aerial";
|
tr_s_preference = "aerial";
|
||||||
tr_n_preference = "local_RRC";
|
tr_n_preference = "local_RRC";
|
||||||
pusch_TargetSNRx10 = 220; # 150;
|
pusch_TargetSNRx10 = 260; # 150;
|
||||||
pucch_TargetSNRx10 = 200; #200;
|
pucch_TargetSNRx10 = 200; #200;
|
||||||
dl_max_mcs = 28;
|
dl_max_mcs = 28;
|
||||||
ul_max_mcs = 28;
|
ul_max_mcs = 28;
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ RUs = (
|
|||||||
max_pdschReferenceSignalPower = -27;
|
max_pdschReferenceSignalPower = -27;
|
||||||
max_rxgain = 50;
|
max_rxgain = 50;
|
||||||
eNB_instances = [0];
|
eNB_instances = [0];
|
||||||
|
sl_ahead = 3;
|
||||||
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
|
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ gNBs =
|
|||||||
|
|
||||||
////////// Physical parameters:
|
////////// Physical parameters:
|
||||||
|
|
||||||
do_SINR = 1;
|
CSI_report_type = "ssb_sinr";
|
||||||
min_rxtxtime = 6;
|
min_rxtxtime = 6;
|
||||||
disable_harq = 1;
|
disable_harq = 1;
|
||||||
cu_sibs = [2];
|
cu_sibs = [2];
|
||||||
|
|||||||
@@ -106,8 +106,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
|
|||||||
@@ -0,0 +1,237 @@
|
|||||||
|
Active_gNBs = ( "gNB-OAI");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_ID = 0xe00;
|
||||||
|
gNB_name = "gNB-OAI";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
plmn_list = ({ mcc = 001; mnc = 03; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
|
||||||
|
|
||||||
|
// Include neighbour configuration for N2 handover
|
||||||
|
@include "neighbour-config-ho.conf"
|
||||||
|
|
||||||
|
nr_cellid = 12345678L;
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
|
||||||
|
servingCellConfigCommon = (
|
||||||
|
{
|
||||||
|
#spCellConfigCommon
|
||||||
|
|
||||||
|
physCellId = 0;
|
||||||
|
|
||||||
|
# downlinkConfigCommon
|
||||||
|
#frequencyInfoDL
|
||||||
|
# this is 3610.56 MHz
|
||||||
|
absoluteFrequencySSB = 679104;
|
||||||
|
dl_frequencyBand = 77;
|
||||||
|
# this is 3599.94 MHz
|
||||||
|
dl_absoluteFrequencyPointA = 678388;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
dl_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
dl_subcarrierSpacing = 1;
|
||||||
|
dl_carrierBandwidth = 51;
|
||||||
|
#initialDownlinkBWP
|
||||||
|
#genericParameters
|
||||||
|
# this is RBstart=27,L=48 (275*(L-1))+RBstart
|
||||||
|
initialDLBWPlocationAndBandwidth = 13750;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
|
#pdcch-ConfigCommon
|
||||||
|
initialDLBWPcontrolResourceSetZero = 12;
|
||||||
|
initialDLBWPsearchSpaceZero = 0;
|
||||||
|
|
||||||
|
#uplinkConfigCommon
|
||||||
|
#frequencyInfoUL
|
||||||
|
ul_frequencyBand = 77;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
ul_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
ul_subcarrierSpacing = 1;
|
||||||
|
ul_carrierBandwidth = 51;
|
||||||
|
pMax = 20;
|
||||||
|
#initialUplinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialULBWPlocationAndBandwidth = 13750;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
|
#rach-ConfigCommon
|
||||||
|
#rach-ConfigGeneric
|
||||||
|
prach_ConfigurationIndex = 98;
|
||||||
|
#prach_msg1_FDM
|
||||||
|
#0 = one, 1=two, 2=four, 3=eight
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 13;
|
||||||
|
preambleReceivedTargetPower = -96;
|
||||||
|
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||||
|
preambleTransMax = 6;
|
||||||
|
#powerRampingStep
|
||||||
|
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||||
|
powerRampingStep = 1;
|
||||||
|
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||||
|
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||||
|
#one (0..15) 4,8,12,16,...60,64
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14;
|
||||||
|
#ra_ContentionResolutionTimer
|
||||||
|
#(0..7) 8,16,24,32,40,48,56,64
|
||||||
|
ra_ContentionResolutionTimer = 7;
|
||||||
|
rsrp_ThresholdSSB = 19;
|
||||||
|
#prach-RootSequenceIndex_PR
|
||||||
|
#1 = 839, 2 = 139
|
||||||
|
prach_RootSequenceIndex_PR = 2;
|
||||||
|
prach_RootSequenceIndex = 1;
|
||||||
|
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||||
|
#
|
||||||
|
msg1_SubcarrierSpacing = 1,
|
||||||
|
# restrictedSetConfig
|
||||||
|
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||||
|
restrictedSetConfig = 0,
|
||||||
|
|
||||||
|
msg3_DeltaPreamble = 1;
|
||||||
|
p0_NominalWithGrant =-90;
|
||||||
|
|
||||||
|
# pucch-ConfigCommon setup :
|
||||||
|
# pucchGroupHopping
|
||||||
|
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||||
|
pucchGroupHopping = 0;
|
||||||
|
hoppingId = 40;
|
||||||
|
p0_nominal = -90;
|
||||||
|
|
||||||
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
|
# ssb_periodicityServingCell
|
||||||
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
|
ssb_periodicityServingCell = 2;
|
||||||
|
|
||||||
|
# dmrs_TypeA_position
|
||||||
|
# 0 = pos2, 1 = pos3
|
||||||
|
dmrs_TypeA_Position = 0;
|
||||||
|
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
subcarrierSpacing = 1;
|
||||||
|
|
||||||
|
|
||||||
|
#tdd-UL-DL-ConfigurationCommon
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
referenceSubcarrierSpacing = 1;
|
||||||
|
# pattern1
|
||||||
|
# dl_UL_TransmissionPeriodicity
|
||||||
|
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||||
|
dl_UL_TransmissionPeriodicity = 6;
|
||||||
|
nrofDownlinkSlots = 7;
|
||||||
|
nrofDownlinkSymbols = 6;
|
||||||
|
nrofUplinkSlots = 2;
|
||||||
|
nrofUplinkSymbols = 4;
|
||||||
|
|
||||||
|
ssPBCH_BlockPower = -25;
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////// AMF parameters:
|
||||||
|
amf_ip_address = ({ ipv4 = "172.21.6.109"; });
|
||||||
|
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.19.98";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.19.98";
|
||||||
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
pusch_TargetSNRx10 = 200;
|
||||||
|
pucch_TargetSNRx10 = 200;
|
||||||
|
ul_prbblack_SNR_threshold = 10;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
prach_dtx_threshold = 120;
|
||||||
|
pucch0_dtx_threshold = 100;
|
||||||
|
ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "yes"
|
||||||
|
nb_tx = 1
|
||||||
|
nb_rx = 1
|
||||||
|
att_tx = 0;
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [77];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 114;
|
||||||
|
eNB_instances = [0];
|
||||||
|
clock_src = "external";
|
||||||
|
time_src = "external";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
security = {
|
||||||
|
# preferred ciphering algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nea0, nea1, nea2, nea3
|
||||||
|
ciphering_algorithms = ( "nea2", "nea0" );
|
||||||
|
|
||||||
|
# preferred integrity algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nia0, nia1, nia2, nia3
|
||||||
|
integrity_algorithms = ( "nia2", "nia0" );
|
||||||
|
|
||||||
|
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||||
|
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||||
|
drb_ciphering = "yes";
|
||||||
|
drb_integrity = "yes";
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level ="info";
|
||||||
|
hw_log_level ="info";
|
||||||
|
phy_log_level ="info";
|
||||||
|
mac_log_level ="info";
|
||||||
|
rlc_log_level ="info";
|
||||||
|
pdcp_log_level ="info";
|
||||||
|
rrc_log_level ="info";
|
||||||
|
ngap_log_level ="debug";
|
||||||
|
f1ap_log_level ="debug";
|
||||||
|
};
|
||||||
|
|
||||||
@@ -18,8 +18,6 @@ gNBs =
|
|||||||
|
|
||||||
////////// Physical parameters:
|
////////// Physical parameters:
|
||||||
|
|
||||||
do_CSIRS = 0;
|
|
||||||
do_SRS = 0;
|
|
||||||
min_rxtxtime = 6;
|
min_rxtxtime = 6;
|
||||||
|
|
||||||
servingCellConfigCommon = (
|
servingCellConfigCommon = (
|
||||||
|
|||||||
@@ -0,0 +1,256 @@
|
|||||||
|
Active_gNBs = ( "gNB-OAI");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_ID = 0xe00;
|
||||||
|
gNB_name = "gNB-OAI";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
|
||||||
|
plmn_list = ({mcc = 208; mnc = 97; mnc_length = 2;});
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
min_rxtxtime = 6;
|
||||||
|
|
||||||
|
servingCellConfigCommon = (
|
||||||
|
{
|
||||||
|
#spCellConfigCommon
|
||||||
|
|
||||||
|
physCellId = 0;
|
||||||
|
|
||||||
|
# downlinkConfigCommon
|
||||||
|
#frequencyInfoDL
|
||||||
|
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3319.68
|
||||||
|
absoluteFrequencySSB = 621312;
|
||||||
|
# this is 3300.60 MHz
|
||||||
|
dl_absoluteFrequencyPointA = 620040;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
dl_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
dl_subcarrierSpacing = 1;
|
||||||
|
dl_carrierBandwidth = 106;
|
||||||
|
#initialDownlinkBWP
|
||||||
|
#genericParameters
|
||||||
|
# this is RBstart=0,L=106 (275*(L-1))+RBstart
|
||||||
|
initialDLBWPlocationAndBandwidth = 28875;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
|
#pdcch-ConfigCommon
|
||||||
|
initialDLBWPcontrolResourceSetZero = 11;
|
||||||
|
initialDLBWPsearchSpaceZero = 0;
|
||||||
|
|
||||||
|
#uplinkConfigCommon
|
||||||
|
#frequencyInfoUL
|
||||||
|
ul_frequencyBand = 78;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
ul_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
ul_subcarrierSpacing = 1;
|
||||||
|
ul_carrierBandwidth = 106;
|
||||||
|
pMax = 20;
|
||||||
|
#initialUplinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialULBWPlocationAndBandwidth = 28875;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
|
#rach-ConfigCommon
|
||||||
|
#rach-ConfigGeneric
|
||||||
|
prach_ConfigurationIndex = 98;
|
||||||
|
#prach_msg1_FDM
|
||||||
|
#0 = one, 1=two, 2=four, 3=eight
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 12;
|
||||||
|
preambleReceivedTargetPower = -104;
|
||||||
|
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||||
|
preambleTransMax = 6;
|
||||||
|
#powerRampingStep
|
||||||
|
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||||
|
powerRampingStep = 1;
|
||||||
|
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||||
|
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||||
|
#one (0..15) 4,8,12,16,...60,64
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||||
|
#ra_ContentionResolutionTimer
|
||||||
|
#(0..7) 8,16,24,32,40,48,56,64
|
||||||
|
ra_ContentionResolutionTimer = 7;
|
||||||
|
rsrp_ThresholdSSB = 19;
|
||||||
|
#prach-RootSequenceIndex_PR
|
||||||
|
#1 = 839, 2 = 139
|
||||||
|
prach_RootSequenceIndex_PR = 2;
|
||||||
|
prach_RootSequenceIndex = 1;
|
||||||
|
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||||
|
#
|
||||||
|
msg1_SubcarrierSpacing = 1,
|
||||||
|
# restrictedSetConfig
|
||||||
|
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||||
|
restrictedSetConfig = 0,
|
||||||
|
|
||||||
|
msg3_DeltaPreamble = 1;
|
||||||
|
p0_NominalWithGrant =-90;
|
||||||
|
|
||||||
|
# pucch-ConfigCommon setup :
|
||||||
|
# pucchGroupHopping
|
||||||
|
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||||
|
pucchGroupHopping = 0;
|
||||||
|
hoppingId = 40;
|
||||||
|
p0_nominal = -90;
|
||||||
|
|
||||||
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
|
# ssb_periodicityServingCell
|
||||||
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spar e1
|
||||||
|
ssb_periodicityServingCell = 2;
|
||||||
|
|
||||||
|
# dmrs_TypeA_position
|
||||||
|
# 0 = pos2, 1 = pos3
|
||||||
|
dmrs_TypeA_Position = 0;
|
||||||
|
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
subcarrierSpacing = 1;
|
||||||
|
|
||||||
|
|
||||||
|
#tdd-UL-DL-ConfigurationCommon
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
referenceSubcarrierSpacing = 1;
|
||||||
|
# pattern1
|
||||||
|
# dl_UL_TransmissionPeriodicity
|
||||||
|
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||||
|
dl_UL_TransmissionPeriodicity = 6;
|
||||||
|
nrofDownlinkSlots = 7;
|
||||||
|
nrofDownlinkSymbols = 6;
|
||||||
|
nrofUplinkSlots = 2;
|
||||||
|
nrofUplinkSymbols = 4;
|
||||||
|
|
||||||
|
ssPBCH_BlockPower = -25;
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
////////// AMF parameters:
|
||||||
|
amf_ip_address = ({ ipv4 = "CI_MME_IP_ADDR"; });
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||||
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
pusch_TargetSNRx10 = 200;
|
||||||
|
pucch_TargetSNRx10 = 200;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
prs_config = (
|
||||||
|
{
|
||||||
|
NumPRSResources = 1;
|
||||||
|
PRSResourceSetPeriod = [20, 2];
|
||||||
|
SymbolStart = [7];
|
||||||
|
NumPRSSymbols = [6];
|
||||||
|
NumRB = 106;
|
||||||
|
RBOffset = 0;
|
||||||
|
CombSize = 4;
|
||||||
|
REOffset = [0];
|
||||||
|
PRSResourceOffset = [0];
|
||||||
|
PRSResourceRepetition = 1;
|
||||||
|
PRSResourceTimeGap = 1;
|
||||||
|
NPRS_ID = [0];
|
||||||
|
MutingPattern1 = [];
|
||||||
|
MutingPattern2 = [];
|
||||||
|
MutingBitRepetition = 1;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
prach_dtx_threshold = 120;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "yes"
|
||||||
|
nb_tx = 1
|
||||||
|
nb_rx = 1
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [78];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 75;
|
||||||
|
sf_extension = 0;
|
||||||
|
eNB_instances = [0];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
rfsimulator :
|
||||||
|
{
|
||||||
|
serveraddr = "server";
|
||||||
|
serverport = 4043;
|
||||||
|
options = (); #("saviq"); or/and "chanmod"
|
||||||
|
modelname = "AWGN";
|
||||||
|
IQfile = "/tmp/rfsimulator.iqs";
|
||||||
|
};
|
||||||
|
|
||||||
|
security = {
|
||||||
|
# preferred ciphering algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nea0, nea1, nea2, nea3
|
||||||
|
ciphering_algorithms = ( "nea0" );
|
||||||
|
|
||||||
|
# preferred integrity algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nia0, nia1, nia2, nia3
|
||||||
|
integrity_algorithms = ( "nia2", "nia0" );
|
||||||
|
|
||||||
|
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||||
|
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||||
|
drb_ciphering = "yes";
|
||||||
|
drb_integrity = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level = "info";
|
||||||
|
hw_log_level = "info";
|
||||||
|
phy_log_level = "info";
|
||||||
|
mac_log_level = "info";
|
||||||
|
rlc_log_level = "info";
|
||||||
|
pdcp_log_level = "info";
|
||||||
|
rrc_log_level = "info";
|
||||||
|
f1ap_log_level = "debug";
|
||||||
|
};
|
||||||
@@ -4,7 +4,7 @@ Active_gNBs:
|
|||||||
e2_agent:
|
e2_agent:
|
||||||
enabled: "yes"
|
enabled: "yes"
|
||||||
near_ric_ip_addr: 192.168.71.21
|
near_ric_ip_addr: 192.168.71.21
|
||||||
near_ric_port: 36421
|
e2ap_server_port: 36422
|
||||||
sm_dir: "/usr/local/lib/flexric/"
|
sm_dir: "/usr/local/lib/flexric/"
|
||||||
|
|
||||||
# Asn1_verbosity, choice in: none, info, annoying
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
@@ -152,7 +152,8 @@ MACRLCs:
|
|||||||
tr_n_preference: local_RRC
|
tr_n_preference: local_RRC
|
||||||
pusch_TargetSNRx10: 200
|
pusch_TargetSNRx10: 200
|
||||||
pucch_TargetSNRx10: 200
|
pucch_TargetSNRx10: 200
|
||||||
# min_grant_prb: 10
|
min_grant_prb: 5
|
||||||
|
stats_max_ue: 17
|
||||||
|
|
||||||
L1s:
|
L1s:
|
||||||
- num_cc: 1
|
- num_cc: 1
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ RUs = (
|
|||||||
att_tx = 0
|
att_tx = 0
|
||||||
att_rx = 0;
|
att_rx = 0;
|
||||||
bands = [78];
|
bands = [78];
|
||||||
|
sl_ahead=3;
|
||||||
max_pdschReferenceSignalPower = -27;
|
max_pdschReferenceSignalPower = -27;
|
||||||
max_rxgain = 114;
|
max_rxgain = 114;
|
||||||
sf_extension = 0;
|
sf_extension = 0;
|
||||||
|
|||||||
@@ -21,10 +21,6 @@ gNBs =
|
|||||||
nr_cellid = 12345678L
|
nr_cellid = 12345678L
|
||||||
|
|
||||||
////////// Physical parameters:
|
////////// Physical parameters:
|
||||||
pdsch_AntennaPorts_XP = 1;
|
|
||||||
pusch_AntennaPorts = 1;
|
|
||||||
do_CSIRS = 1;
|
|
||||||
do_SRS = 0;
|
|
||||||
uess_agg_levels = [2, 2, 2, 0, 0];
|
uess_agg_levels = [2, 2, 2, 0, 0];
|
||||||
|
|
||||||
servingCellConfigCommon = (
|
servingCellConfigCommon = (
|
||||||
@@ -186,6 +182,7 @@ MACRLCs = (
|
|||||||
tr_n_preference = "local_RRC";
|
tr_n_preference = "local_RRC";
|
||||||
pusch_TargetSNRx10 = 200;
|
pusch_TargetSNRx10 = 200;
|
||||||
pucch_TargetSNRx10 = 200;
|
pucch_TargetSNRx10 = 200;
|
||||||
|
stats_max_ue = 17;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ key = "fec86ba6eb707ed08905757b1bb44b8f";
|
|||||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||||
dnn= "oai";
|
dnn= "oai";
|
||||||
nssai_sst=1;
|
nssai_sst=1;
|
||||||
nssai_sd=16777215;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MACRLCs = (
|
MACRLCs = (
|
||||||
|
|||||||
@@ -0,0 +1,89 @@
|
|||||||
|
PRSs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
Active_gNBs = 1;
|
||||||
|
prs_config0 = (
|
||||||
|
{
|
||||||
|
gNB_id = 0;
|
||||||
|
NumPRSResources = 1;
|
||||||
|
PRSResourceSetPeriod = [20, 2];
|
||||||
|
SymbolStart = [7];
|
||||||
|
NumPRSSymbols = [6];
|
||||||
|
NumRB = 106;
|
||||||
|
RBOffset = 0;
|
||||||
|
CombSize = 4;
|
||||||
|
REOffset = [0];
|
||||||
|
PRSResourceOffset = [0];
|
||||||
|
PRSResourceRepetition = 1;
|
||||||
|
PRSResourceTimeGap = 1;
|
||||||
|
NPRS_ID = [0];
|
||||||
|
MutingPattern1 = [];
|
||||||
|
MutingPattern2 = [];
|
||||||
|
MutingBitRepetition = 1;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
prs_config1 = (
|
||||||
|
{
|
||||||
|
gNB_id = 1;
|
||||||
|
NumPRSResources = 1;
|
||||||
|
PRSResourceSetPeriod = [20, 2];
|
||||||
|
SymbolStart = [7];
|
||||||
|
NumPRSSymbols = [6];
|
||||||
|
NumRB = 106;
|
||||||
|
RBOffset = 0;
|
||||||
|
CombSize = 4;
|
||||||
|
REOffset = [0];
|
||||||
|
PRSResourceOffset = [1];
|
||||||
|
PRSResourceRepetition = 1;
|
||||||
|
PRSResourceTimeGap = 1;
|
||||||
|
NPRS_ID = [1];
|
||||||
|
MutingPattern1 = [];
|
||||||
|
MutingPattern2 = [];
|
||||||
|
MutingBitRepetition = 1;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
prs_config2 = (
|
||||||
|
{
|
||||||
|
gNB_id = 2;
|
||||||
|
NumPRSResources = 1;
|
||||||
|
PRSResourceSetPeriod = [20, 2];
|
||||||
|
SymbolStart = [7];
|
||||||
|
NumPRSSymbols = [6];
|
||||||
|
NumRB = 106;
|
||||||
|
RBOffset = 0;
|
||||||
|
CombSize = 4;
|
||||||
|
REOffset = [0];
|
||||||
|
PRSResourceOffset = [2];
|
||||||
|
PRSResourceRepetition = 1;
|
||||||
|
PRSResourceTimeGap = 1;
|
||||||
|
NPRS_ID = [2];
|
||||||
|
MutingPattern1 = [];
|
||||||
|
MutingPattern2 = [];
|
||||||
|
MutingBitRepetition = 1;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
prs_config3 = (
|
||||||
|
{
|
||||||
|
gNB_id = 3;
|
||||||
|
NumPRSResources = 1;
|
||||||
|
PRSResourceSetPeriod = [20, 2];
|
||||||
|
SymbolStart = [7];
|
||||||
|
NumPRSSymbols = [6];
|
||||||
|
NumRB = 106;
|
||||||
|
RBOffset = 0;
|
||||||
|
CombSize = 4;
|
||||||
|
REOffset = [0];
|
||||||
|
PRSResourceOffset = [3];
|
||||||
|
PRSResourceRepetition = 1;
|
||||||
|
PRSResourceTimeGap = 1;
|
||||||
|
NPRS_ID = [3];
|
||||||
|
MutingPattern1 = [];
|
||||||
|
MutingPattern2 = [];
|
||||||
|
MutingBitRepetition = 1;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
@@ -4,7 +4,6 @@ uicc0 = {
|
|||||||
opc= "c42449363bbad02b66d16bc975d77cc1";
|
opc= "c42449363bbad02b66d16bc975d77cc1";
|
||||||
dnn= "oai";
|
dnn= "oai";
|
||||||
nssai_sst=1;
|
nssai_sst=1;
|
||||||
nssai_sd=66051;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
thread-pool = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
thread-pool = "-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1"
|
||||||
|
|||||||
@@ -17,9 +17,6 @@ gNBs =
|
|||||||
|
|
||||||
////////// Physical parameters:
|
////////// Physical parameters:
|
||||||
|
|
||||||
do_CSIRS = 0;
|
|
||||||
do_SRS = 0;
|
|
||||||
|
|
||||||
servingCellConfigCommon = (
|
servingCellConfigCommon = (
|
||||||
{
|
{
|
||||||
#spCellConfigCommon
|
#spCellConfigCommon
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ Ref :
|
|||||||
DLSCH encoding : 200.0
|
DLSCH encoding : 200.0
|
||||||
L1 Rx processing : 530.0
|
L1 Rx processing : 530.0
|
||||||
PUSCH inner-receiver : 360.0
|
PUSCH inner-receiver : 360.0
|
||||||
Schedule Response : 1.0
|
|
||||||
DL & UL scheduling timing : 17.0
|
DL & UL scheduling timing : 17.0
|
||||||
UL Indication : 1.0
|
UL Indication : 1.0
|
||||||
Slot Indication : 13.0
|
Slot Indication : 13.0
|
||||||
@@ -31,7 +30,6 @@ DeviationThreshold :
|
|||||||
DLSCH encoding : 0.25
|
DLSCH encoding : 0.25
|
||||||
L1 Rx processing : 0.25
|
L1 Rx processing : 0.25
|
||||||
PUSCH inner-receiver : 0.25
|
PUSCH inner-receiver : 0.25
|
||||||
Schedule Response : 1.00
|
|
||||||
DL & UL scheduling timing : 0.25
|
DL & UL scheduling timing : 0.25
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.50
|
Slot Indication : 0.50
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ Ref :
|
|||||||
DLSCH encoding : 110.0
|
DLSCH encoding : 110.0
|
||||||
L1 Rx processing : 345.0
|
L1 Rx processing : 345.0
|
||||||
PUSCH inner-receiver : 150.0
|
PUSCH inner-receiver : 150.0
|
||||||
Schedule Response : 1.0
|
|
||||||
DL & UL scheduling timing : 5.0
|
DL & UL scheduling timing : 5.0
|
||||||
UL Indication : 1.0
|
UL Indication : 1.0
|
||||||
Slot Indication : 6.0
|
Slot Indication : 6.0
|
||||||
@@ -31,7 +30,6 @@ DeviationThreshold :
|
|||||||
DLSCH encoding : 0.25
|
DLSCH encoding : 0.25
|
||||||
L1 Rx processing : 0.25
|
L1 Rx processing : 0.25
|
||||||
PUSCH inner-receiver : 0.25
|
PUSCH inner-receiver : 0.25
|
||||||
Schedule Response : 1.00
|
|
||||||
DL & UL scheduling timing : 0.50
|
DL & UL scheduling timing : 0.50
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.50
|
Slot Indication : 0.50
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ Ref :
|
|||||||
DLSCH encoding : 230.0
|
DLSCH encoding : 230.0
|
||||||
L1 Rx processing : 175.0
|
L1 Rx processing : 175.0
|
||||||
PUSCH inner-receiver : 100.0
|
PUSCH inner-receiver : 100.0
|
||||||
Schedule Response : 3.0
|
|
||||||
DL & UL scheduling timing : 11.0
|
DL & UL scheduling timing : 11.0
|
||||||
UL Indication : 3.0
|
UL Indication : 3.0
|
||||||
Slot Indication : 14.0
|
Slot Indication : 14.0
|
||||||
@@ -28,7 +27,6 @@ DeviationThreshold :
|
|||||||
DLSCH encoding : 0.25
|
DLSCH encoding : 0.25
|
||||||
L1 Rx processing : 0.25
|
L1 Rx processing : 0.25
|
||||||
PUSCH inner-receiver : 0.25
|
PUSCH inner-receiver : 0.25
|
||||||
Schedule Response : 1.00
|
|
||||||
DL & UL scheduling timing : 0.50
|
DL & UL scheduling timing : 0.50
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.25
|
Slot Indication : 0.25
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ Ref :
|
|||||||
DLSCH encoding : 140.0
|
DLSCH encoding : 140.0
|
||||||
L1 Rx processing : 345.0
|
L1 Rx processing : 345.0
|
||||||
PUSCH inner-receiver : 155.0
|
PUSCH inner-receiver : 155.0
|
||||||
Schedule Response : 1.0
|
|
||||||
DL & UL scheduling timing : 8.0
|
DL & UL scheduling timing : 8.0
|
||||||
UL Indication : 3.0
|
UL Indication : 3.0
|
||||||
Slot Indication : 9.0
|
Slot Indication : 9.0
|
||||||
@@ -31,7 +30,6 @@ DeviationThreshold :
|
|||||||
DLSCH encoding : 0.25
|
DLSCH encoding : 0.25
|
||||||
L1 Rx processing : 0.25
|
L1 Rx processing : 0.25
|
||||||
PUSCH inner-receiver : 0.25
|
PUSCH inner-receiver : 0.25
|
||||||
Schedule Response : 1.00
|
|
||||||
DL & UL scheduling timing : 0.35
|
DL & UL scheduling timing : 0.35
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.35
|
Slot Indication : 0.35
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ Ref :
|
|||||||
DLSCH encoding : 90.0
|
DLSCH encoding : 90.0
|
||||||
L1 Rx processing : 290.0
|
L1 Rx processing : 290.0
|
||||||
PUSCH inner-receiver : 115.0
|
PUSCH inner-receiver : 115.0
|
||||||
Schedule Response : 1.0
|
|
||||||
DL & UL scheduling timing : 4.0
|
DL & UL scheduling timing : 4.0
|
||||||
UL Indication : 2.0
|
UL Indication : 2.0
|
||||||
Slot Indication : 5.0
|
Slot Indication : 5.0
|
||||||
@@ -31,7 +30,6 @@ DeviationThreshold :
|
|||||||
DLSCH encoding : 0.25
|
DLSCH encoding : 0.25
|
||||||
L1 Rx processing : 0.25
|
L1 Rx processing : 0.25
|
||||||
PUSCH inner-receiver : 0.25
|
PUSCH inner-receiver : 0.25
|
||||||
Schedule Response : 1.00
|
|
||||||
DL & UL scheduling timing : 0.50
|
DL & UL scheduling timing : 0.50
|
||||||
UL Indication : 1.00
|
UL Indication : 1.00
|
||||||
Slot Indication : 0.50
|
Slot Indication : 0.50
|
||||||
|
|||||||
+32
-88
@@ -85,15 +85,7 @@ def CheckClassValidity(xml_class_list,action,id):
|
|||||||
resp=True
|
resp=True
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
#assigning parameters to object instance attributes (even if the attributes do not exist !!)
|
def ExecuteActionWithParam(action, ctx, node):
|
||||||
def AssignParams(params_dict):
|
|
||||||
|
|
||||||
for key,value in params_dict.items():
|
|
||||||
setattr(CiTestObj, key, value)
|
|
||||||
setattr(RAN, key, value)
|
|
||||||
setattr(HTML, key, value)
|
|
||||||
|
|
||||||
def ExecuteActionWithParam(action, ctx):
|
|
||||||
global RAN
|
global RAN
|
||||||
global HTML
|
global HTML
|
||||||
global CONTAINERS
|
global CONTAINERS
|
||||||
@@ -102,7 +94,6 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
if action == 'Build_eNB' or action == 'Build_Image' or action == 'Build_Proxy' or action == "Build_Cluster_Image" or action == "Build_Run_Tests":
|
if action == 'Build_eNB' or action == 'Build_Image' or action == 'Build_Proxy' or action == "Build_Cluster_Image" or action == "Build_Run_Tests":
|
||||||
RAN.Build_eNB_args=test.findtext('Build_eNB_args')
|
RAN.Build_eNB_args=test.findtext('Build_eNB_args')
|
||||||
CONTAINERS.imageKind=test.findtext('kind')
|
CONTAINERS.imageKind=test.findtext('kind')
|
||||||
node = test.findtext('node')
|
|
||||||
proxy_commit = test.findtext('proxy_commit')
|
proxy_commit = test.findtext('proxy_commit')
|
||||||
if proxy_commit is not None:
|
if proxy_commit is not None:
|
||||||
CONTAINERS.proxyCommit = proxy_commit
|
CONTAINERS.proxyCommit = proxy_commit
|
||||||
@@ -118,7 +109,6 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
success = CONTAINERS.BuildRunTests(ctx, node, HTML)
|
success = CONTAINERS.BuildRunTests(ctx, node, HTML)
|
||||||
|
|
||||||
elif action == 'Initialize_eNB':
|
elif action == 'Initialize_eNB':
|
||||||
node = test.findtext('node')
|
|
||||||
datalog_rt_stats_file=test.findtext('rt_stats_cfg')
|
datalog_rt_stats_file=test.findtext('rt_stats_cfg')
|
||||||
if datalog_rt_stats_file is None:
|
if datalog_rt_stats_file is None:
|
||||||
RAN.datalog_rt_stats_file='datalog_rt_stats.default.yaml'
|
RAN.datalog_rt_stats_file='datalog_rt_stats.default.yaml'
|
||||||
@@ -139,7 +129,6 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
success = RAN.InitializeeNB(ctx, node, HTML)
|
success = RAN.InitializeeNB(ctx, node, HTML)
|
||||||
|
|
||||||
elif action == 'Terminate_eNB':
|
elif action == 'Terminate_eNB':
|
||||||
node = test.findtext('node')
|
|
||||||
#retx checkers
|
#retx checkers
|
||||||
string_field = test.findtext('d_retx_th')
|
string_field = test.findtext('d_retx_th')
|
||||||
if (string_field is not None):
|
if (string_field is not None):
|
||||||
@@ -158,68 +147,35 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
|
|
||||||
elif action == 'Initialize_UE' or action == 'Attach_UE' or action == 'Detach_UE' or action == 'Terminate_UE' or action == 'CheckStatusUE' or action == 'DataEnable_UE' or action == 'DataDisable_UE':
|
elif action == 'Initialize_UE' or action == 'Attach_UE' or action == 'Detach_UE' or action == 'Terminate_UE' or action == 'CheckStatusUE' or action == 'DataEnable_UE' or action == 'DataDisable_UE':
|
||||||
CiTestObj.ue_ids = test.findtext('id').split(' ')
|
CiTestObj.ue_ids = test.findtext('id').split(' ')
|
||||||
if force_local:
|
|
||||||
# Change all execution targets to localhost
|
|
||||||
CiTestObj.nodes = ['localhost'] * len(CiTestObj.ue_ids)
|
|
||||||
else:
|
|
||||||
if test.findtext('nodes'):
|
|
||||||
CiTestObj.nodes = test.findtext('nodes').split(' ')
|
|
||||||
if len(CiTestObj.ue_ids) != len(CiTestObj.nodes):
|
|
||||||
logging.error('Number of Nodes are not equal to the total number of UEs')
|
|
||||||
sys.exit("Mismatch in number of Nodes and UIs")
|
|
||||||
else:
|
|
||||||
CiTestObj.nodes = [None] * len(CiTestObj.ue_ids)
|
|
||||||
if action == 'Initialize_UE':
|
if action == 'Initialize_UE':
|
||||||
success = CiTestObj.InitializeUE(HTML)
|
success = CiTestObj.InitializeUE(node, HTML)
|
||||||
elif action == 'Attach_UE':
|
elif action == 'Attach_UE':
|
||||||
success = CiTestObj.AttachUE(HTML)
|
success = CiTestObj.AttachUE(node, HTML)
|
||||||
elif action == 'Detach_UE':
|
elif action == 'Detach_UE':
|
||||||
success = CiTestObj.DetachUE(HTML)
|
success = CiTestObj.DetachUE(node, HTML)
|
||||||
elif action == 'Terminate_UE':
|
elif action == 'Terminate_UE':
|
||||||
success = CiTestObj.TerminateUE(ctx, HTML)
|
success = CiTestObj.TerminateUE(ctx, node, HTML)
|
||||||
elif action == 'CheckStatusUE':
|
elif action == 'CheckStatusUE':
|
||||||
success = CiTestObj.CheckStatusUE(HTML)
|
success = CiTestObj.CheckStatusUE(node, HTML)
|
||||||
elif action == 'DataEnable_UE':
|
elif action == 'DataEnable_UE':
|
||||||
success = CiTestObj.DataEnableUE(HTML)
|
success = CiTestObj.DataEnableUE(node, HTML)
|
||||||
elif action == 'DataDisable_UE':
|
elif action == 'DataDisable_UE':
|
||||||
success = CiTestObj.DataDisableUE(HTML)
|
success = CiTestObj.DataDisableUE(node, HTML)
|
||||||
|
|
||||||
elif action == 'Ping':
|
elif action == 'Ping':
|
||||||
CiTestObj.ping_args = test.findtext('ping_args')
|
CiTestObj.ping_args = test.findtext('ping_args')
|
||||||
CiTestObj.ping_packetloss_threshold = test.findtext('ping_packetloss_threshold')
|
CiTestObj.ping_packetloss_threshold = test.findtext('ping_packetloss_threshold')
|
||||||
CiTestObj.ue_ids = test.findtext('id').split(' ')
|
CiTestObj.ue_ids = test.findtext('id').split(' ')
|
||||||
CiTestObj.svr_id = test.findtext('svr_id') or None
|
CiTestObj.svr_id = test.findtext('svr_id')
|
||||||
if test.findtext('svr_node'):
|
if test.findtext('svr_node'):
|
||||||
CiTestObj.svr_node = test.findtext('svr_node') if not force_local else 'localhost'
|
CiTestObj.svr_node = test.findtext('svr_node') if not force_local else 'localhost'
|
||||||
if force_local:
|
|
||||||
# Change all execution targets to localhost
|
|
||||||
CiTestObj.nodes = ['localhost'] * len(CiTestObj.ue_ids)
|
|
||||||
else:
|
|
||||||
if test.findtext('nodes'):
|
|
||||||
CiTestObj.nodes = test.findtext('nodes').split(' ')
|
|
||||||
if len(CiTestObj.ue_ids) != len(CiTestObj.nodes):
|
|
||||||
logging.error('Number of Nodes are not equal to the total number of UEs')
|
|
||||||
sys.exit("Mismatch in number of Nodes and UIs")
|
|
||||||
else:
|
|
||||||
CiTestObj.nodes = [None] * len(CiTestObj.ue_ids)
|
|
||||||
ping_rttavg_threshold = test.findtext('ping_rttavg_threshold') or ''
|
ping_rttavg_threshold = test.findtext('ping_rttavg_threshold') or ''
|
||||||
success = CiTestObj.Ping(ctx, HTML)
|
success = CiTestObj.Ping(ctx, node, HTML)
|
||||||
|
|
||||||
elif action == 'Iperf' or action == 'Iperf2_Unidir':
|
elif action == 'Iperf' or action == 'Iperf2_Unidir':
|
||||||
CiTestObj.iperf_args = test.findtext('iperf_args')
|
CiTestObj.iperf_args = test.findtext('iperf_args')
|
||||||
CiTestObj.ue_ids = test.findtext('id').split(' ')
|
CiTestObj.ue_ids = test.findtext('id').split(' ')
|
||||||
CiTestObj.svr_id = test.findtext('svr_id') or None
|
CiTestObj.svr_id = test.findtext('svr_id')
|
||||||
if force_local:
|
|
||||||
# Change all execution targets to localhost
|
|
||||||
CiTestObj.nodes = ['localhost'] * len(CiTestObj.ue_ids)
|
|
||||||
else:
|
|
||||||
if test.findtext('nodes'):
|
|
||||||
CiTestObj.nodes = test.findtext('nodes').split(' ')
|
|
||||||
if len(CiTestObj.ue_ids) != len(CiTestObj.nodes):
|
|
||||||
logging.error('Number of Nodes are not equal to the total number of UEs')
|
|
||||||
sys.exit("Mismatch in number of Nodes and UIs")
|
|
||||||
else:
|
|
||||||
CiTestObj.nodes = [None] * len(CiTestObj.ue_ids)
|
|
||||||
if test.findtext('svr_node'):
|
if test.findtext('svr_node'):
|
||||||
CiTestObj.svr_node = test.findtext('svr_node') if not force_local else 'localhost'
|
CiTestObj.svr_node = test.findtext('svr_node') if not force_local else 'localhost'
|
||||||
CiTestObj.iperf_packetloss_threshold = test.findtext('iperf_packetloss_threshold')
|
CiTestObj.iperf_packetloss_threshold = test.findtext('iperf_packetloss_threshold')
|
||||||
@@ -229,14 +185,10 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
if CiTestObj.iperf_profile != 'balanced' and CiTestObj.iperf_profile != 'unbalanced' and CiTestObj.iperf_profile != 'single-ue':
|
if CiTestObj.iperf_profile != 'balanced' and CiTestObj.iperf_profile != 'unbalanced' and CiTestObj.iperf_profile != 'single-ue':
|
||||||
logging.error(f'test-case has wrong profile {CiTestObj.iperf_profile}, forcing balanced')
|
logging.error(f'test-case has wrong profile {CiTestObj.iperf_profile}, forcing balanced')
|
||||||
CiTestObj.iperf_profile = 'balanced'
|
CiTestObj.iperf_profile = 'balanced'
|
||||||
CiTestObj.iperf_options = test.findtext('iperf_options') or 'check'
|
|
||||||
if CiTestObj.iperf_options != 'check' and CiTestObj.iperf_options != 'sink':
|
|
||||||
logging.error('test-case has wrong option ' + CiTestObj.iperf_options)
|
|
||||||
CiTestObj.iperf_options = 'check'
|
|
||||||
if action == 'Iperf':
|
if action == 'Iperf':
|
||||||
success = CiTestObj.Iperf(ctx, HTML)
|
success = CiTestObj.Iperf(ctx, node, HTML)
|
||||||
elif action == 'Iperf2_Unidir':
|
elif action == 'Iperf2_Unidir':
|
||||||
success = CiTestObj.Iperf2_Unidir(ctx, HTML)
|
success = CiTestObj.Iperf2_Unidir(ctx, node, HTML)
|
||||||
|
|
||||||
elif action == 'IdleSleep':
|
elif action == 'IdleSleep':
|
||||||
st = test.findtext('idle_sleep_time_in_sec') or "5"
|
st = test.findtext('idle_sleep_time_in_sec') or "5"
|
||||||
@@ -244,7 +196,6 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
|
|
||||||
elif action == 'Deploy_Run_OC_PhySim':
|
elif action == 'Deploy_Run_OC_PhySim':
|
||||||
oc_release = test.findtext('oc_release')
|
oc_release = test.findtext('oc_release')
|
||||||
node = test.findtext('node') or None
|
|
||||||
script = "scripts/oc-deploy-physims.sh"
|
script = "scripts/oc-deploy-physims.sh"
|
||||||
image_tag = cls_containerize.CreateTag(CLUSTER.ranCommitID, CLUSTER.ranBranch, CLUSTER.ranAllowMerge)
|
image_tag = cls_containerize.CreateTag(CLUSTER.ranCommitID, CLUSTER.ranBranch, CLUSTER.ranAllowMerge)
|
||||||
options = f"oaicicd-core-for-ci-ran {oc_release} {image_tag} {CLUSTER.eNBSourceCodePath}"
|
options = f"oaicicd-core-for-ci-ran {oc_release} {image_tag} {CLUSTER.eNBSourceCodePath}"
|
||||||
@@ -252,7 +203,6 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
success = cls_oaicitest.Deploy_Physim(ctx, HTML, node, workdir, script, options)
|
success = cls_oaicitest.Deploy_Physim(ctx, HTML, node, workdir, script, options)
|
||||||
|
|
||||||
elif action == 'Build_Deploy_Docker_PhySim' or action == 'Build_Deploy_Source_PhySim':
|
elif action == 'Build_Deploy_Docker_PhySim' or action == 'Build_Deploy_Source_PhySim':
|
||||||
node = test.findtext('node') or None
|
|
||||||
ctest_opt = test.findtext('ctest-opt') or ''
|
ctest_opt = test.findtext('ctest-opt') or ''
|
||||||
script = "scripts/docker-build-and-deploy-physims.sh" if action == 'Build_Deploy_Docker_PhySim' else 'scripts/source-deploy-physims.sh'
|
script = "scripts/docker-build-and-deploy-physims.sh" if action == 'Build_Deploy_Docker_PhySim' else 'scripts/source-deploy-physims.sh'
|
||||||
options = f"{CONTAINERS.eNBSourceCodePath} {ctest_opt}"
|
options = f"{CONTAINERS.eNBSourceCodePath} {ctest_opt}"
|
||||||
@@ -264,8 +214,7 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
core_op = getattr(cls_oaicitest.OaiCiTest, action)
|
core_op = getattr(cls_oaicitest.OaiCiTest, action)
|
||||||
success = core_op(cn_id, ctx, HTML)
|
success = core_op(cn_id, ctx, HTML)
|
||||||
|
|
||||||
elif action == 'Deploy_Object' or action == 'Undeploy_Object' or action == "Create_Workspace":
|
elif action == 'Deploy_Object' or action == 'Undeploy_Object' or action == "Create_Workspace" or action == "Stop_Object":
|
||||||
node = test.findtext('node')
|
|
||||||
CONTAINERS.yamlPath = test.findtext('yaml_path')
|
CONTAINERS.yamlPath = test.findtext('yaml_path')
|
||||||
string_field=test.findtext('d_retx_th')
|
string_field=test.findtext('d_retx_th')
|
||||||
if (string_field is not None):
|
if (string_field is not None):
|
||||||
@@ -278,6 +227,8 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
CONTAINERS.deploymentTag = cls_containerize.CreateTag(CONTAINERS.ranCommitID, CONTAINERS.ranBranch, CONTAINERS.ranAllowMerge)
|
CONTAINERS.deploymentTag = cls_containerize.CreateTag(CONTAINERS.ranCommitID, CONTAINERS.ranBranch, CONTAINERS.ranAllowMerge)
|
||||||
if action == 'Deploy_Object':
|
if action == 'Deploy_Object':
|
||||||
success = CONTAINERS.DeployObject(ctx, node, HTML)
|
success = CONTAINERS.DeployObject(ctx, node, HTML)
|
||||||
|
elif action == 'Stop_Object':
|
||||||
|
success = CONTAINERS.StopObject(ctx, node, HTML)
|
||||||
elif action == 'Undeploy_Object':
|
elif action == 'Undeploy_Object':
|
||||||
success = CONTAINERS.UndeployObject(ctx, node, HTML, RAN)
|
success = CONTAINERS.UndeployObject(ctx, node, HTML, RAN)
|
||||||
elif action == 'Create_Workspace':
|
elif action == 'Create_Workspace':
|
||||||
@@ -287,15 +238,12 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
success = CONTAINERS.Create_Workspace(node, HTML)
|
success = CONTAINERS.Create_Workspace(node, HTML)
|
||||||
|
|
||||||
elif action == 'LicenceAndFormattingCheck':
|
elif action == 'LicenceAndFormattingCheck':
|
||||||
node = test.findtext('node')
|
|
||||||
success = SCA.LicenceAndFormattingCheck(ctx, node, HTML)
|
success = SCA.LicenceAndFormattingCheck(ctx, node, HTML)
|
||||||
|
|
||||||
elif action == 'Cppcheck_Analysis':
|
elif action == 'Cppcheck_Analysis':
|
||||||
node = test.findtext('node')
|
|
||||||
success = SCA.CppCheckAnalysis(ctx, node, HTML)
|
success = SCA.CppCheckAnalysis(ctx, node, HTML)
|
||||||
|
|
||||||
elif action == 'Push_Local_Registry':
|
elif action == 'Push_Local_Registry':
|
||||||
node = test.findtext('node')
|
|
||||||
tag_prefix = test.findtext('tag_prefix') or ""
|
tag_prefix = test.findtext('tag_prefix') or ""
|
||||||
success = CONTAINERS.Push_Image_to_Local_Registry(node, HTML, tag_prefix)
|
success = CONTAINERS.Push_Image_to_Local_Registry(node, HTML, tag_prefix)
|
||||||
|
|
||||||
@@ -303,7 +251,6 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
if force_local:
|
if force_local:
|
||||||
# Do not pull or remove images when running locally. User is supposed to handle image creation & cleanup
|
# Do not pull or remove images when running locally. User is supposed to handle image creation & cleanup
|
||||||
return True
|
return True
|
||||||
node = test.findtext('node')
|
|
||||||
tag_prefix = test.findtext('tag_prefix') or ""
|
tag_prefix = test.findtext('tag_prefix') or ""
|
||||||
images = test.findtext('images').split()
|
images = test.findtext('images').split()
|
||||||
# hack: for FlexRIC, we need to overwrite the tag to use
|
# hack: for FlexRIC, we need to overwrite the tag to use
|
||||||
@@ -316,26 +263,21 @@ def ExecuteActionWithParam(action, ctx):
|
|||||||
success = CONTAINERS.Clean_Test_Server_Images(HTML, node, images, tag=tag)
|
success = CONTAINERS.Clean_Test_Server_Images(HTML, node, images, tag=tag)
|
||||||
|
|
||||||
elif action == 'Custom_Command':
|
elif action == 'Custom_Command':
|
||||||
node = test.findtext('node')
|
|
||||||
if force_local:
|
|
||||||
# Change all execution targets to localhost
|
|
||||||
node = 'localhost'
|
|
||||||
command = test.findtext('command')
|
command = test.findtext('command')
|
||||||
# Allow referencing repository workspace path in XML via %%workspace%%
|
# Allow referencing repository workspace path in XML via %%workspace%%
|
||||||
command = command.replace("%%workspace%%", CONTAINERS.eNBSourceCodePath)
|
command = command.replace("%%workspace%%", CONTAINERS.eNBSourceCodePath)
|
||||||
success = cls_oaicitest.Custom_Command(HTML, node, command)
|
success = cls_oaicitest.Custom_Command(HTML, node, command)
|
||||||
|
|
||||||
elif action == 'Custom_Script':
|
elif action == 'Custom_Script':
|
||||||
node = test.findtext('node')
|
|
||||||
script = test.findtext('script')
|
script = test.findtext('script')
|
||||||
|
args = test.findtext('args')
|
||||||
# Allow referencing repository workspace path in XML via %%workspace%%
|
# Allow referencing repository workspace path in XML via %%workspace%%
|
||||||
script = script.replace("%%workspace%%", CONTAINERS.eNBSourceCodePath)
|
script = script.replace("%%workspace%%", CONTAINERS.eNBSourceCodePath)
|
||||||
success = cls_oaicitest.Custom_Script(HTML, node, script)
|
success = cls_oaicitest.Custom_Script(HTML, node, script, args)
|
||||||
|
|
||||||
elif action == 'Pull_Cluster_Image':
|
elif action == 'Pull_Cluster_Image':
|
||||||
tag_prefix = test.findtext('tag_prefix') or ""
|
tag_prefix = test.findtext('tag_prefix') or ""
|
||||||
images = test.findtext('images').split()
|
images = test.findtext('images').split()
|
||||||
node = test.findtext('node')
|
|
||||||
success = CLUSTER.PullClusterImage(HTML, node, images, tag_prefix=tag_prefix)
|
success = CLUSTER.PullClusterImage(HTML, node, images, tag_prefix=tag_prefix)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@@ -353,7 +295,15 @@ def test_in_list(test, list):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
test_runner_abort = False
|
||||||
def receive_signal(signum, frame):
|
def receive_signal(signum, frame):
|
||||||
|
global test_runner_abort
|
||||||
|
if not test_runner_abort:
|
||||||
|
logging.warning("received signal, canceling steps")
|
||||||
|
logging.info("send signal again to exit immediately")
|
||||||
|
test_runner_abort = True
|
||||||
|
else:
|
||||||
|
logging.warning("received signal again, exiting")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
def ShowTestID(ctx, desc):
|
def ShowTestID(ctx, desc):
|
||||||
@@ -399,16 +349,7 @@ CLUSTER = cls_cluster.Cluster()
|
|||||||
import args_parse
|
import args_parse
|
||||||
# Force local execution, move all execution targets to localhost
|
# Force local execution, move all execution targets to localhost
|
||||||
force_local = False
|
force_local = False
|
||||||
py_param_file_present, py_params, mode, force_local = args_parse.ArgsParse(sys.argv,CiTestObj,RAN,HTML,CONTAINERS,HELP,SCA,CLUSTER)
|
mode, force_local = args_parse.ArgsParse(sys.argv,CiTestObj,RAN,HTML,CONTAINERS,HELP,SCA,CLUSTER)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
|
||||||
# TEMPORARY params management (UNUSED)
|
|
||||||
#-----------------------------------------------------------
|
|
||||||
#temporary solution for testing:
|
|
||||||
if py_param_file_present == True:
|
|
||||||
AssignParams(py_params)
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# mode amd XML class (action) analysis
|
# mode amd XML class (action) analysis
|
||||||
@@ -554,7 +495,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
#logging.info('test will be run: ' + test)
|
#logging.info('test will be run: ' + test)
|
||||||
todo_tests.append(test)
|
todo_tests.append(test)
|
||||||
|
|
||||||
signal.signal(signal.SIGUSR1, receive_signal)
|
signal.signal(signal.SIGINT, receive_signal)
|
||||||
|
|
||||||
HTML.CreateHtmlTabHeader()
|
HTML.CreateHtmlTabHeader()
|
||||||
|
|
||||||
@@ -564,6 +505,8 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
i = 0
|
i = 0
|
||||||
for test_case_id in todo_tests:
|
for test_case_id in todo_tests:
|
||||||
for test in all_tests:
|
for test in all_tests:
|
||||||
|
if test_runner_abort:
|
||||||
|
task_set_succeeded = False
|
||||||
id = test.get('id')
|
id = test.get('id')
|
||||||
if test_case_id != id:
|
if test_case_id != id:
|
||||||
continue
|
continue
|
||||||
@@ -572,6 +515,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
ctx = TestCaseCtx(i, int(id), logPath)
|
ctx = TestCaseCtx(i, int(id), logPath)
|
||||||
HTML.testCase_id=CiTestObj.testCase_id
|
HTML.testCase_id=CiTestObj.testCase_id
|
||||||
desc = test.findtext('desc')
|
desc = test.findtext('desc')
|
||||||
|
node = test.findtext('node') if not force_local else 'localhost'
|
||||||
always_exec = test.findtext('always_exec') in ['True', 'true', 'Yes', 'yes']
|
always_exec = test.findtext('always_exec') in ['True', 'true', 'Yes', 'yes']
|
||||||
may_fail = test.findtext('may_fail') in ['True', 'true', 'Yes', 'yes']
|
may_fail = test.findtext('may_fail') in ['True', 'true', 'Yes', 'yes']
|
||||||
HTML.desc = desc
|
HTML.desc = desc
|
||||||
@@ -586,7 +530,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
HTML.CreateHtmlTestRowQueue(msg, "SKIP", [])
|
HTML.CreateHtmlTestRowQueue(msg, "SKIP", [])
|
||||||
break
|
break
|
||||||
try:
|
try:
|
||||||
test_succeeded = ExecuteActionWithParam(action, ctx)
|
test_succeeded = ExecuteActionWithParam(action, ctx, node)
|
||||||
if not test_succeeded and may_fail:
|
if not test_succeeded and may_fail:
|
||||||
logging.warning(f"test ID {test_case_id} action {action} may or may not fail, proceeding despite error")
|
logging.warning(f"test ID {test_case_id} action {action} may or may not fail, proceeding despite error")
|
||||||
elif not test_succeeded:
|
elif not test_succeeded:
|
||||||
|
|||||||
+89
@@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
[[ $# -lt 1 ]] && { echo "Usage: $0 <distance_in_meters...>"; exit 1; }
|
||||||
|
DISTANCES=("$@")
|
||||||
|
|
||||||
|
IP=192.168.71.150
|
||||||
|
PORT=8091
|
||||||
|
NCAT_TIMEOUT=1 #s
|
||||||
|
SLEEP_WAIT=4 #s
|
||||||
|
MAX_RETRIES=3
|
||||||
|
|
||||||
|
set_and_verify_distance() {
|
||||||
|
local distance=$1
|
||||||
|
echo "Testing PRS ToA estimation for distance: $distance m"
|
||||||
|
|
||||||
|
# it seems that grep returns immediately with this syntax, but not echo | ncat | grep
|
||||||
|
# so prefer this to receive new distance immediately. We use --idle to keep
|
||||||
|
# ncat open for some additional time
|
||||||
|
local setdist_resp="$(grep --max-count 1 new_offset <(echo rfsimu setdistance rfsimu_channel_enB0 $distance | ncat --idle ${NCAT_TIMEOUT} ${IP} ${PORT}))"
|
||||||
|
echo "> response: ${setdist_resp}"
|
||||||
|
|
||||||
|
local gettoa_resp="$(echo "ciUE get_max_dl_toa" | ncat ${IP} ${PORT} | grep "UE max PRS DL ToA")"
|
||||||
|
echo "> response: ${gettoa_resp}"
|
||||||
|
|
||||||
|
[[ -z "$setdist_resp" || -z "$gettoa_resp" ]] && return 1
|
||||||
|
|
||||||
|
# Extract ToA values
|
||||||
|
[[ "$setdist_resp" =~ new_offset\ ([0-9]+) ]] && local set_toa="${BASH_REMATCH[1]}" || { echo "> Set ToA extraction failed for distance: $distance m"; return 1; }
|
||||||
|
|
||||||
|
[[ "$gettoa_resp" =~ UE\ max\ PRS\ DL\ ToA\ ([0-9]+) ]] && local est_toa="${BASH_REMATCH[1]}" || { echo "> Estimated ToA extraction failed for distance: $distance m"; return 1; }
|
||||||
|
|
||||||
|
# Compare extracted ToA values
|
||||||
|
[[ $set_toa == $est_toa ]] && echo "PRS SUCCESS for distance: $distance m" || { echo "PRS FAILURE for distance: $distance m (Actual ToA=$set_toa, Estimated ToA=$est_toa)" ; return 1; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
test_distance() {
|
||||||
|
local distance=$1 retries=0
|
||||||
|
|
||||||
|
# retry loop incase we didn't receive the response
|
||||||
|
while (( retries < MAX_RETRIES )); do
|
||||||
|
echo " Attempt $((retries + 1))/$MAX_RETRIES"
|
||||||
|
|
||||||
|
# Always reset to 0 m before testing target distance
|
||||||
|
if ! set_and_verify_distance 0; then
|
||||||
|
echo " Set distance 0 m failed during attempt $((retries + 1))"
|
||||||
|
else
|
||||||
|
sleep "$SLEEP_WAIT"
|
||||||
|
# Now test the actual target distance
|
||||||
|
if set_and_verify_distance "$distance"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
((retries++))
|
||||||
|
if (( retries < MAX_RETRIES )); then
|
||||||
|
sleep "$SLEEP_WAIT"
|
||||||
|
else
|
||||||
|
echo " ERROR: No valid response after $MAX_RETRIES retries for distance: $distance m"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
num_success=0
|
||||||
|
num_fail=0
|
||||||
|
|
||||||
|
for d in "${DISTANCES[@]}"; do
|
||||||
|
if test_distance "$d"; then
|
||||||
|
((num_success++))
|
||||||
|
else
|
||||||
|
((num_fail++))
|
||||||
|
fi
|
||||||
|
sleep "$SLEEP_WAIT"
|
||||||
|
done
|
||||||
|
|
||||||
|
# ---- Summary ----
|
||||||
|
echo
|
||||||
|
echo "==================== SUMMARY ===================="
|
||||||
|
echo "Total tests run : ${#DISTANCES[@]}"
|
||||||
|
echo "Successful tests: ${num_success}"
|
||||||
|
echo "Failed tests : ${num_fail}"
|
||||||
|
echo "================================================="
|
||||||
|
|
||||||
|
if [ $num_success -gt 0 ]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -60,6 +60,33 @@ class TestDeploymentMethods(unittest.TestCase):
|
|||||||
self.assertTrue(deploy)
|
self.assertTrue(deploy)
|
||||||
self.assertTrue(undeploy)
|
self.assertTrue(undeploy)
|
||||||
|
|
||||||
|
def test_stop_services(self):
|
||||||
|
self.cont.yamlPath = 'tests/simple-undep/'
|
||||||
|
self.cont.deploymentTag = "noble"
|
||||||
|
# should deploy both testA and testB
|
||||||
|
deploy = self.cont.DeployObject(self.ctx, self.node, self.html)
|
||||||
|
# should fail (no such service)
|
||||||
|
self.cont.services = "testC"
|
||||||
|
stopC = self.cont.StopObject(self.ctx, self.node, self.html)
|
||||||
|
# should stop testA
|
||||||
|
self.cont.services = "testA"
|
||||||
|
stopA = self.cont.StopObject(self.ctx, self.node, self.html)
|
||||||
|
# should (re-)stop testA (no-op)
|
||||||
|
self.cont.services = "testA"
|
||||||
|
stopA2 = self.cont.StopObject(self.ctx, self.node, self.html)
|
||||||
|
# should deploy testB
|
||||||
|
self.cont.services = "testB"
|
||||||
|
stopB = self.cont.StopObject(self.ctx, self.node, self.html)
|
||||||
|
# should not undeploy anything (everything already stopped)
|
||||||
|
self.cont.services = None
|
||||||
|
undeployAll = self.cont.UndeployObject(self.ctx, self.node, self.html, self.ran)
|
||||||
|
self.assertTrue(deploy)
|
||||||
|
self.assertFalse(stopC)
|
||||||
|
self.assertTrue(stopA)
|
||||||
|
self.assertTrue(stopA2)
|
||||||
|
self.assertTrue(stopB)
|
||||||
|
self.assertTrue(undeployAll)
|
||||||
|
|
||||||
def test_deployfails(self):
|
def test_deployfails(self):
|
||||||
# fails reliably
|
# fails reliably
|
||||||
old = self.cont.yamlPath
|
old = self.cont.yamlPath
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class TestPingIperf(unittest.TestCase):
|
|||||||
self.html.testCaseId = "000000"
|
self.html.testCaseId = "000000"
|
||||||
self.ci = cls_oaicitest.OaiCiTest()
|
self.ci = cls_oaicitest.OaiCiTest()
|
||||||
self.ci.ue_ids = ["test"]
|
self.ci.ue_ids = ["test"]
|
||||||
self.ci.nodes = ["localhost"]
|
self.node = "localhost"
|
||||||
self.ctx = TestCaseCtx.Default(tempfile.mkdtemp())
|
self.ctx = TestCaseCtx.Default(tempfile.mkdtemp())
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
with cls_cmd.LocalCmd() as c:
|
with cls_cmd.LocalCmd() as c:
|
||||||
@@ -35,7 +35,7 @@ class TestPingIperf(unittest.TestCase):
|
|||||||
self.ci.svr_id = "test"
|
self.ci.svr_id = "test"
|
||||||
infra_file = "tests/config/infra_ping_iperf.yaml"
|
infra_file = "tests/config/infra_ping_iperf.yaml"
|
||||||
# TODO Should need nothing but options and UE(s) to use
|
# TODO Should need nothing but options and UE(s) to use
|
||||||
success = self.ci.Ping(self.ctx, self.html, infra_file=infra_file)
|
success = self.ci.Ping(self.ctx, self.node, self.html, infra_file=infra_file)
|
||||||
self.assertTrue(success)
|
self.assertTrue(success)
|
||||||
|
|
||||||
def test_iperf(self):
|
def test_iperf(self):
|
||||||
@@ -50,7 +50,7 @@ class TestPingIperf(unittest.TestCase):
|
|||||||
self.ci.iperf_profile = "balanced"
|
self.ci.iperf_profile = "balanced"
|
||||||
infra_file = "tests/config/infra_ping_iperf.yaml"
|
infra_file = "tests/config/infra_ping_iperf.yaml"
|
||||||
# TODO Should need nothing but options and UE(s) to use
|
# TODO Should need nothing but options and UE(s) to use
|
||||||
success = self.ci.Iperf(self.ctx, self.html, infra_file=infra_file)
|
success = self.ci.Iperf(self.ctx, self.node, self.html, infra_file=infra_file)
|
||||||
self.assertTrue(success)
|
self.assertTrue(success)
|
||||||
|
|
||||||
def test_iperf2_unidir(self):
|
def test_iperf2_unidir(self):
|
||||||
@@ -62,7 +62,7 @@ class TestPingIperf(unittest.TestCase):
|
|||||||
self.ci.iperf_profile = "balanced"
|
self.ci.iperf_profile = "balanced"
|
||||||
infra_file = "tests/config/infra_ping_iperf.yaml"
|
infra_file = "tests/config/infra_ping_iperf.yaml"
|
||||||
# TODO Should need nothing but options and UE(s) to use
|
# TODO Should need nothing but options and UE(s) to use
|
||||||
success = self.ci.Iperf2_Unidir(self.ctx, self.html, infra_file=infra_file)
|
success = self.ci.Iperf2_Unidir(self.ctx, self.node, self.html, infra_file=infra_file)
|
||||||
self.assertTrue(success)
|
self.assertTrue(success)
|
||||||
|
|
||||||
def test_iperf_highrate(self):
|
def test_iperf_highrate(self):
|
||||||
@@ -77,7 +77,7 @@ class TestPingIperf(unittest.TestCase):
|
|||||||
self.ci.iperf_profile = "balanced"
|
self.ci.iperf_profile = "balanced"
|
||||||
infra_file = "tests/config/infra_ping_iperf.yaml"
|
infra_file = "tests/config/infra_ping_iperf.yaml"
|
||||||
# TODO Should need nothing but options and UE(s) to use
|
# TODO Should need nothing but options and UE(s) to use
|
||||||
success = self.ci.Iperf(self.ctx, self.html, infra_file=infra_file)
|
success = self.ci.Iperf(self.ctx, self.node, self.html, infra_file=infra_file)
|
||||||
self.assertTrue(success)
|
self.assertTrue(success)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
services:
|
||||||
|
testA:
|
||||||
|
image: ubuntu:${TAG:-jammy}
|
||||||
|
container_name: test_container_A
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
entrypoint: /bin/bash -c "sleep infinity"
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "true"
|
||||||
|
interval: 1s
|
||||||
|
timeout: 1s
|
||||||
|
retries: 1
|
||||||
|
testB:
|
||||||
|
image: ubuntu:${TAG:-jammy}
|
||||||
|
container_name: test_container_B
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
entrypoint: /bin/bash -c "sleep infinity"
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "true"
|
||||||
|
interval: 1s
|
||||||
|
timeout: 1s
|
||||||
|
retries: 1
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
- Build_Image
|
- Build_Image
|
||||||
- Build_Run_Tests
|
- Build_Run_Tests
|
||||||
- Deploy_Object
|
- Deploy_Object
|
||||||
|
- Stop_Object
|
||||||
- Undeploy_Object
|
- Undeploy_Object
|
||||||
- Cppcheck_Analysis
|
- Cppcheck_Analysis
|
||||||
- Deploy_Run_OC_PhySim
|
- Deploy_Run_OC_PhySim
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<testCase id="111111">
|
<testCase id="111111">
|
||||||
<class>Pull_Local_Registry</class>
|
<class>Pull_Local_Registry</class>
|
||||||
<desc>Pull Images from Local Registry</desc>
|
<desc>Pull Images from Local Registry</desc>
|
||||||
<node>obelix</node>
|
<node>localhost</node>
|
||||||
<images>oai-enb oai-lte-ue</images>
|
<images>oai-enb oai-lte-ue</images>
|
||||||
</testCase>
|
</testCase>
|
||||||
<testCase id="800813">
|
<testCase id="800813">
|
||||||
@@ -88,16 +88,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE</desc>
|
<desc>Attach OAI UE</desc>
|
||||||
<id>l2sim4g_ue</id>
|
<id>l2sim4g_ue</id>
|
||||||
<nodes>obelix</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping trf-gen from LTE-UE 1</desc>
|
<desc>Ping trf-gen from LTE-UE 1</desc>
|
||||||
<id>l2sim4g_ue</id>
|
<id>l2sim4g_ue</id>
|
||||||
<nodes>obelix</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>l2sim4g_ext_dn</svr_id>
|
<svr_id>l2sim4g_ext_dn</svr_id>
|
||||||
<svr_node>obelix</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -106,9 +106,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE 1 from trf-gen</desc>
|
<desc>Ping LTE-UE 1 from trf-gen</desc>
|
||||||
<id>l2sim4g_ext_dn</id>
|
<id>l2sim4g_ext_dn</id>
|
||||||
<nodes>obelix</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>l2sim4g_ue</svr_id>
|
<svr_id>l2sim4g_ue</svr_id>
|
||||||
<svr_node>obelix</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -117,9 +117,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP Downlink</desc>
|
<desc>Iperf UDP Downlink</desc>
|
||||||
<id>l2sim4g_ue</id>
|
<id>l2sim4g_ue</id>
|
||||||
<nodes>obelix</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>l2sim4g_ext_dn</svr_id>
|
<svr_id>l2sim4g_ext_dn</svr_id>
|
||||||
<svr_node>obelix</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 1M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -129,9 +129,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP Uplink</desc>
|
<desc>Iperf UDP Uplink</desc>
|
||||||
<id>l2sim4g_ue</id>
|
<id>l2sim4g_ue</id>
|
||||||
<nodes>obelix</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>l2sim4g_ext_dn</svr_id>
|
<svr_id>l2sim4g_ext_dn</svr_id>
|
||||||
<svr_node>obelix</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 3M</iperf_args>
|
<iperf_args>-u -t 30 -b 3M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
<class>Clean_Test_Server_Images</class>
|
<class>Clean_Test_Server_Images</class>
|
||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<desc>Clean Test Images on Test Server</desc>
|
<desc>Clean Test Images on Test Server</desc>
|
||||||
<node>obelix</node>
|
<node>localhost</node>
|
||||||
<images>oai-enb oai-lte-ue</images>
|
<images>oai-enb oai-lte-ue</images>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
|||||||
@@ -103,16 +103,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020011">
|
<testCase id="020011">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -121,9 +121,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
||||||
<id>rfsim4g_ext_dn</id>
|
<id>rfsim4g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -136,8 +136,8 @@
|
|||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030011">
|
<testCase id="030011">
|
||||||
@@ -148,8 +148,8 @@
|
|||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="100011">
|
<testCase id="100011">
|
||||||
|
|||||||
@@ -83,9 +83,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_enb_nos1</svr_id>
|
<svr_id>rfsim4g_enb_nos1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -94,9 +94,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from eNB</desc>
|
<desc>Ping LTE-UE from eNB</desc>
|
||||||
<id>rfsim4g_enb_nos1</id>
|
<id>rfsim4g_enb_nos1</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -105,9 +105,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_enb_nos1</svr_id>
|
<svr_id>rfsim4g_enb_nos1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -117,9 +117,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP UL</desc>
|
<desc>Iperf UDP UL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_enb_nos1</svr_id>
|
<svr_id>rfsim4g_enb_nos1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -103,16 +103,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020011">
|
<testCase id="020011">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -121,9 +121,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
||||||
<id>rfsim4g_ext_dn</id>
|
<id>rfsim4g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -132,9 +132,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -144,9 +144,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP UL</desc>
|
<desc>Iperf UDP UL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -103,16 +103,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020011">
|
<testCase id="020011">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -121,9 +121,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
||||||
<id>rfsim4g_ext_dn</id>
|
<id>rfsim4g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -132,9 +132,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -144,9 +144,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP UL</desc>
|
<desc>Iperf UDP UL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -80,9 +80,9 @@
|
|||||||
<class>Iperf2_Unidir</class>
|
<class>Iperf2_Unidir</class>
|
||||||
<desc>Iperf2 UDP DL</desc>
|
<desc>Iperf2 UDP DL</desc>
|
||||||
<id>rfsim4g_ue_fembms</id>
|
<id>rfsim4g_ue_fembms</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_enb_fembms</svr_id>
|
<svr_id>rfsim4g_enb_fembms</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M</iperf_args>
|
<iperf_args>-u -t 30 -b 2M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -80,9 +80,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_enb_nos1</svr_id>
|
<svr_id>rfsim4g_enb_nos1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -103,9 +103,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
<desc>Ping Traffic-Gen from LTE-UE</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -114,9 +114,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
<desc>Ping LTE-UE from Traffic-Gen</desc>
|
||||||
<id>rfsim4g_ext_dn</id>
|
<id>rfsim4g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ue</svr_id>
|
<svr_id>rfsim4g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -125,9 +125,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP DL</desc>
|
<desc>Iperf UDP DL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
<iperf_args>-u -t 30 -b 2M -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
@@ -137,9 +137,9 @@
|
|||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf UDP UL</desc>
|
<desc>Iperf UDP UL</desc>
|
||||||
<id>rfsim4g_ue</id>
|
<id>rfsim4g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim4g_ext_dn</svr_id>
|
<svr_id>rfsim4g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
<iperf_args>-u -t 30 -b 1M</iperf_args>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
|||||||
@@ -76,16 +76,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3</id>
|
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3</id>
|
||||||
<nodes>acamas acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020021">
|
<testCase id="020021">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from all NR-UEs</desc>
|
<desc>Ping ext-dn from all NR-UEs</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3</id>
|
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3</id>
|
||||||
<nodes>acamas acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_5gc_fixed_ip</svr_id>
|
<svr_id>rfsim5g_5gc_fixed_ip</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i0.25</ping_args>
|
<ping_args>-c 20 -i0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -107,7 +107,7 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000024">
|
<testCase id="000024">
|
||||||
@@ -122,9 +122,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from all NR-UEs</desc>
|
<desc>Ping ext-dn from all NR-UEs</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i0.25</ping_args>
|
<ping_args>-c 20 -i0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -132,30 +132,30 @@
|
|||||||
<testCase id="030020">
|
<testCase id="030020">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Simulate a DL radio channel with noise (3 dB)</desc>
|
<desc>Simulate a DL radio channel with noise (3 dB)</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo channelmod modify 0 noise_power_dB 3 | ncat --send-only 192.168.71.181 8091</command>
|
<command>echo channelmod modify 0 noise_power_dB 3 | ncat --send-only 192.168.71.181 8091</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030021">
|
<testCase id="030021">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/3Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030022">
|
<testCase id="030022">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (UL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/3Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 20</iperf_args>
|
<iperf_args>-u -b 3M -t 20</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
<testCase id="040001">
|
<testCase id="040001">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Trigger Reestablishment</desc>
|
<desc>Trigger Reestablishment</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci force_reestab | ncat 192.168.71.171 9090 | grep -E 'Reset RLC counters of UE RNTI [0-9a-f]{4} to trigger reestablishment'</command>
|
<command>echo ci force_reestab | ncat 192.168.71.171 9090 | grep -E 'Reset RLC counters of UE RNTI [0-9a-f]{4} to trigger reestablishment'</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
@@ -171,9 +171,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i0.5 -w25</ping_args>
|
<ping_args>-c 20 -i0.5 -w25</ping_args>
|
||||||
<ping_packetloss_threshold>80</ping_packetloss_threshold>
|
<ping_packetloss_threshold>80</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -181,56 +181,56 @@
|
|||||||
<testCase id="040002">
|
<testCase id="040002">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Verify Reestablishment</desc>
|
<desc>Verify Reestablishment</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci get_reestab_count | ncat 192.168.71.150 9090 | grep -E 'UE RNTI [0-9a-f]{4} reestab 1'</command>
|
<command>echo ci get_reestab_count | ncat 192.168.71.150 9090 | grep -E 'UE RNTI [0-9a-f]{4} reestab 1'</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040021">
|
<testCase id="040021">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Simulate a disruption of DL radio channel (ploss 55)</desc>
|
<desc>Simulate a disruption of DL radio channel (ploss 55)</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo channelmod modify 0 ploss 55 | ncat 192.168.71.181 8091</command>
|
<command>echo channelmod modify 0 ploss 55 | ncat 192.168.71.181 8091</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040022">
|
<testCase id="040022">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Get UE sync state (UE ID 0)</desc>
|
<desc>Get UE sync state (UE ID 0)</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ciUE sync_state 0 | ncat 192.168.71.181 8091 | grep -E UE_NOT_SYNC</command>
|
<command>echo ciUE sync_state 0 | ncat 192.168.71.181 8091 | grep -E UE_NOT_SYNC</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040023">
|
<testCase id="040023">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Restoration of the original DL channel conditions (ploss 20)</desc>
|
<desc>Restoration of the original DL channel conditions (ploss 20)</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo channelmod modify 0 ploss 20 | ncat 192.168.71.181 8091</command>
|
<command>echo channelmod modify 0 ploss 20 | ncat 192.168.71.181 8091</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040024">
|
<testCase id="040024">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Get UE sync state (UE ID 0)</desc>
|
<desc>Get UE sync state (UE ID 0)</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ciUE sync_state 0 | ncat 192.168.71.181 8091 | grep -E UE_CONNECTED</command>
|
<command>echo ciUE sync_state 0 | ncat 192.168.71.181 8091 | grep -E UE_CONNECTED</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040025">
|
<testCase id="040025">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Trigger Handover</desc>
|
<desc>Trigger Handover</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci trigger_f1_ho | ncat 192.168.71.150 9090</command>
|
<command>echo ci trigger_f1_ho | ncat 192.168.71.150 9090</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040026">
|
<testCase id="040026">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>UE (1) connected to DU-PCI 0?</desc>
|
<desc>UE (1) connected to DU-PCI 0?</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3584"</command>
|
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3584"</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040027">
|
<testCase id="040027">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>UE (1) connected to DU-PCI 1?</desc>
|
<desc>UE (1) connected to DU-PCI 1?</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3585"</command>
|
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3585"</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
|||||||
@@ -70,16 +70,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020011">
|
<testCase id="020011">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -88,9 +88,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -100,9 +100,9 @@
|
|||||||
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 30 -R</iperf_args>
|
<iperf_args>-u -b 3M -t 30 -R</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -112,9 +112,9 @@
|
|||||||
<desc>Iperf (UL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/3Mbps/UDP)(30 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 30</iperf_args>
|
<iperf_args>-u -b 3M -t 30</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -42,6 +42,13 @@
|
|||||||
002006
|
002006
|
||||||
444444
|
444444
|
||||||
100002
|
100002
|
||||||
|
100003
|
||||||
|
100004
|
||||||
|
100005
|
||||||
|
100006
|
||||||
|
100007
|
||||||
|
100008
|
||||||
|
100009
|
||||||
100001
|
100001
|
||||||
222221
|
222221
|
||||||
222222
|
222222
|
||||||
@@ -95,10 +102,10 @@
|
|||||||
|
|
||||||
<testCase id="000002">
|
<testCase id="000002">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>Deploy OAI FlexRIC</desc>
|
<desc>Deploy OAI nearRT-RIC</desc>
|
||||||
<node>localhost</node>
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
<services>oai-flexric</services>
|
<services>nearRT-RIC</services>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000003">
|
<testCase id="000003">
|
||||||
@@ -121,7 +128,7 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from both UEs</desc>
|
<desc>Ping ext-dn from both UEs</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2</id>
|
<id>rfsim5g_ue rfsim5g_ue2</id>
|
||||||
<nodes>carabe carabe</nodes>
|
<node>carabe</node>
|
||||||
<svr_id>oai_ext_dn</svr_id>
|
<svr_id>oai_ext_dn</svr_id>
|
||||||
<svr_node>carabe</svr_node>
|
<svr_node>carabe</svr_node>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
@@ -132,14 +139,14 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE 1 and 2</desc>
|
<desc>Attach OAI UE 1 and 2</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2</id>
|
<id>rfsim5g_ue rfsim5g_ue2</id>
|
||||||
<nodes>carabe carabe</nodes>
|
<node>carabe</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="444444">
|
<testCase id="444444">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach OAI UE 1 and 2</desc>
|
<desc>Detach OAI UE 1 and 2</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2</id>
|
<id>rfsim5g_ue rfsim5g_ue2</id>
|
||||||
<nodes>carabe carabe</nodes>
|
<node>carabe</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="100001">
|
<testCase id="100001">
|
||||||
@@ -151,8 +158,64 @@
|
|||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="100002">
|
<testCase id="100002">
|
||||||
|
<class>Stop_Object</class>
|
||||||
|
<desc>Stop RC monitoring xApp</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
|
<services>xapp-rc-moni</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100003">
|
||||||
|
<class>Stop_Object</class>
|
||||||
|
<desc>Stop KPM monitoring xApp</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
|
<services>xapp-kpm-moni</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100004">
|
||||||
|
<class>Stop_Object</class>
|
||||||
|
<desc>Stop KPM monitoring and RC control xApp</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
|
<services>xapp-kpm-rc</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100005">
|
||||||
|
<class>Stop_Object</class>
|
||||||
|
<desc>Stop custom SMs monitoring xApp</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
|
<services>xapp-gtp-mac-rlc-pdcp-moni</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100006">
|
||||||
|
<class>Stop_Object</class>
|
||||||
|
<desc>Stop OAI UEs</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
|
<services>oai-nr-ue oai-nr-ue2</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100007">
|
||||||
|
<class>Stop_Object</class>
|
||||||
|
<desc>Stop OAI gNB</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
|
<services>oai-gnb</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100008">
|
||||||
|
<class>Stop_Object</class>
|
||||||
|
<desc>Stop nearRT-RIC</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
|
<services>nearRT-RIC</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100009">
|
||||||
<class>Undeploy_Object</class>
|
<class>Undeploy_Object</class>
|
||||||
<desc>Undeploy RAN and Flexric</desc>
|
<desc>Undeploy RAN and FlexRIC</desc>
|
||||||
<node>localhost</node>
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
@@ -160,7 +223,7 @@
|
|||||||
|
|
||||||
<testCase id="010000">
|
<testCase id="010000">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>RC monitoring</desc>
|
<desc>Deploy RC monitoring</desc>
|
||||||
<node>localhost</node>
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
<services>xapp-rc-moni</services>
|
<services>xapp-rc-moni</services>
|
||||||
@@ -168,7 +231,7 @@
|
|||||||
|
|
||||||
<testCase id="010001">
|
<testCase id="010001">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>KPM monitoring</desc>
|
<desc>Deploy KPM monitoring</desc>
|
||||||
<node>localhost</node>
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
<services>xapp-kpm-moni</services>
|
<services>xapp-kpm-moni</services>
|
||||||
@@ -176,7 +239,7 @@
|
|||||||
|
|
||||||
<testCase id="010002">
|
<testCase id="010002">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>KPM monitoring and RC control</desc>
|
<desc>Deploy KPM monitoring and RC control</desc>
|
||||||
<node>localhost</node>
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
<services>xapp-kpm-rc</services>
|
<services>xapp-kpm-rc</services>
|
||||||
@@ -184,7 +247,7 @@
|
|||||||
|
|
||||||
<testCase id="010003">
|
<testCase id="010003">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>Custom SMs monitoring</desc>
|
<desc>Deploy custom SMs monitoring</desc>
|
||||||
<node>localhost</node>
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_flexric</yaml_path>
|
||||||
<services>xapp-gtp-mac-rlc-pdcp-moni</services>
|
<services>xapp-gtp-mac-rlc-pdcp-moni</services>
|
||||||
|
|||||||
@@ -125,16 +125,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10</id>
|
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10</id>
|
||||||
<nodes>acamas acamas acamas acamas acamas acamas acamas acamas acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -143,9 +143,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -154,9 +154,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from Second NR-UE</desc>
|
<desc>Ping ext-dn from Second NR-UE</desc>
|
||||||
<id>rfsim5g_ue2</id>
|
<id>rfsim5g_ue2</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -165,9 +165,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Second NR-UE from ext-dn</desc>
|
<desc>Ping Second NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue2</svr_id>
|
<svr_id>rfsim5g_ue2</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -176,9 +176,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from both UEs</desc>
|
<desc>Ping ext-dn from both UEs</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2</id>
|
<id>rfsim5g_ue rfsim5g_ue2</id>
|
||||||
<nodes>acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -187,33 +187,33 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from all UEs</desc>
|
<desc>Ping ext-dn from all UEs</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10</id>
|
<id>rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10</id>
|
||||||
<nodes>acamas acamas acamas acamas acamas acamas acamas acamas acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25 -s 1016</ping_args>
|
<ping_args>-c 20 -i 0.25 -s 1016</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030001">
|
<testCase id="030001">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/3Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030002">
|
<testCase id="030002">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (UL/1Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/1Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 1M -t 20</iperf_args>
|
<iperf_args>-u -b 1M -t 20</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -222,21 +222,21 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE 1 and 2</desc>
|
<desc>Attach OAI UE 1 and 2</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2</id>
|
<id>rfsim5g_ue rfsim5g_ue2</id>
|
||||||
<nodes>acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="444444">
|
<testCase id="444444">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach OAI UE 1 and 2</desc>
|
<desc>Detach OAI UE 1 and 2</desc>
|
||||||
<id>rfsim5g_ue rfsim5g_ue2</id>
|
<id>rfsim5g_ue rfsim5g_ue2</id>
|
||||||
<nodes>acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="444445">
|
<testCase id="444445">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach OAI UE 3 to 10</desc>
|
<desc>Detach OAI UE 3 to 10</desc>
|
||||||
<id>rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10</id>
|
<id>rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10</id>
|
||||||
<nodes>acamas acamas acamas acamas acamas acamas acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="100001">
|
<testCase id="100001">
|
||||||
|
|||||||
@@ -88,7 +88,7 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000004">
|
<testCase id="000004">
|
||||||
@@ -101,9 +101,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args> -c 20 -i0.5</ping_args>
|
<ping_args> -c 20 -i0.5</ping_args>
|
||||||
<ping_packetloss_threshold>80</ping_packetloss_threshold>
|
<ping_packetloss_threshold>80</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -112,33 +112,33 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i0.2</ping_args>
|
<ping_args>-c 20 -i0.2</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030001">
|
<testCase id="030001">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/3Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030002">
|
<testCase id="030002">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (UL/1Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/1Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 1M -t 20</iperf_args>
|
<iperf_args>-u -b 1M -t 20</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -146,14 +146,14 @@
|
|||||||
<testCase id="040001">
|
<testCase id="040001">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Force Msg3 C-RNTI RA</desc>
|
<desc>Force Msg3 C-RNTI RA</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ciUE force_crnti_ra | ncat 192.168.71.150 8091</command>
|
<command>echo ciUE force_crnti_ra | ncat 192.168.71.150 8091</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040002">
|
<testCase id="040002">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Force RRC_IDLE (UE ID 0)</desc>
|
<desc>Force RRC_IDLE (UE ID 0)</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ciUE force_RRC_IDLE | ncat 192.168.71.150 8091</command>
|
<command>echo ciUE force_RRC_IDLE | ncat 192.168.71.150 8091</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
|||||||
@@ -70,16 +70,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -88,33 +88,33 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030001">
|
<testCase id="030001">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/10Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/10Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 10M -t 20 -R</iperf_args>
|
<iperf_args>-u -b 10M -t 20 -R</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030002">
|
<testCase id="030002">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (UL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/3Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 20</iperf_args>
|
<iperf_args>-u -b 3M -t 20</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
<testCase id="004000">
|
<testCase id="004000">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Clean-Up any residual volume</desc>
|
<desc>Clean-Up any residual volume</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>docker volume rm 5g_rfsimulator_fdd_phytest_rrc.config -f</command>
|
<command>docker volume rm 5g_rfsimulator_fdd_phytest_rrc.config -f</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
<testCase id="800813">
|
<testCase id="800813">
|
||||||
@@ -77,9 +77,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping gNB from NR-UE</desc>
|
<desc>Ping gNB from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_gnb_nos1</svr_id>
|
<svr_id>rfsim5g_gnb_nos1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c20 -i0.2</ping_args>
|
<ping_args>-c20 -i0.2</ping_args>
|
||||||
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -88,33 +88,33 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from gNB</desc>
|
<desc>Ping NR-UE from gNB</desc>
|
||||||
<id>rfsim5g_gnb_nos1</id>
|
<id>rfsim5g_gnb_nos1</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c20 -i0.2</ping_args>
|
<ping_args>-c20 -i0.2</ping_args>
|
||||||
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030011">
|
<testCase id="030011">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/30kbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/30kbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 0.03M -t 20 -R -c 10.0.1.1</iperf_args>
|
<iperf_args>-u -b 0.03M -t 20 -R -c 10.0.1.1</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_gnb_nos1</svr_id>
|
<svr_id>rfsim5g_gnb_nos1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030012">
|
<testCase id="030012">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (UL/30kbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/30kbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 0.03M -t 20 -c 10.0.1.1</iperf_args>
|
<iperf_args>-u -b 0.03M -t 20 -c 10.0.1.1</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_gnb_nos1</svr_id>
|
<svr_id>rfsim5g_gnb_nos1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -70,16 +70,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i0.2</ping_args>
|
<ping_args>-c 20 -i0.2</ping_args>
|
||||||
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -88,9 +88,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i0.2</ping_args>
|
<ping_args>-c 20 -i0.2</ping_args>
|
||||||
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -48,56 +48,52 @@
|
|||||||
<testCase id="111111">
|
<testCase id="111111">
|
||||||
<class>Pull_Local_Registry</class>
|
<class>Pull_Local_Registry</class>
|
||||||
<desc>Pull Images from Local Registry</desc>
|
<desc>Pull Images from Local Registry</desc>
|
||||||
<svr_id>0</svr_id>
|
<node>localhost</node>
|
||||||
<images>oai-gnb-asan oai-nr-ue</images>
|
<images>oai-gnb-asan oai-nr-ue</images>
|
||||||
</testCase>
|
</testCase>
|
||||||
<testCase id="800813">
|
<testCase id="800813">
|
||||||
<class>Create_Workspace</class>
|
<class>Create_Workspace</class>
|
||||||
<desc>Create new Workspace</desc>
|
<desc>Create new Workspace</desc>
|
||||||
<eNB_instance>0</eNB_instance>
|
<node>localhost</node>
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
<testCase id="000001">
|
<testCase id="000001">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>Deploy OAI 5G CoreNetwork</desc>
|
<desc>Deploy OAI 5G CoreNetwork</desc>
|
||||||
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_multiue</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_multiue</yaml_path>
|
||||||
<services>mysql oai-amf oai-smf oai-upf oai-ext-dn</services>
|
<services>mysql oai-amf oai-smf oai-upf oai-ext-dn</services>
|
||||||
<eNB_instance>0</eNB_instance>
|
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000002">
|
<testCase id="000002">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>Deploy OAI 5G gNB RF sim SA</desc>
|
<desc>Deploy OAI 5G gNB RF sim SA</desc>
|
||||||
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_multiue</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_multiue</yaml_path>
|
||||||
<services>oai-gnb</services>
|
<services>oai-gnb</services>
|
||||||
<eNB_instance>0</eNB_instance>
|
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000003">
|
<testCase id="000003">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>Deploy OAI 5G NR-UE RF sim SA</desc>
|
<desc>Deploy OAI 5G NR-UE RF sim SA</desc>
|
||||||
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_multiue</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_multiue</yaml_path>
|
||||||
<services>oai-nr-ue</services>
|
<services>oai-nr-ue</services>
|
||||||
<eNB_instance>0</eNB_instance>
|
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000008">
|
<testCase id="000008">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_multiue1 rfsim5g_multiue2 rfsim5g_multiue3 rfsim5g_multiue4 rfsim5g_multiue5 rfsim5g_multiue6 rfsim5g_multiue7 rfsim5g_multiue8 rfsim5g_multiue9 rfsim5g_multiue10</id>
|
<id>rfsim5g_multiue1 rfsim5g_multiue2 rfsim5g_multiue3 rfsim5g_multiue4 rfsim5g_multiue5 rfsim5g_multiue6 rfsim5g_multiue7 rfsim5g_multiue8 rfsim5g_multiue9 rfsim5g_multiue10</id>
|
||||||
<nodes>acamas acamas acamas acamas acamas acamas acamas acamas acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_multiue1</id>
|
<id>rfsim5g_multiue1</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -106,9 +102,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_multiue1</svr_id>
|
<svr_id>rfsim5g_multiue1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -117,9 +113,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from Second NR-UE</desc>
|
<desc>Ping ext-dn from Second NR-UE</desc>
|
||||||
<id>rfsim5g_multiue2</id>
|
<id>rfsim5g_multiue2</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -128,9 +124,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping Second NR-UE from ext-dn</desc>
|
<desc>Ping Second NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_multiue2</svr_id>
|
<svr_id>rfsim5g_multiue2</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -139,9 +135,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from both UEs</desc>
|
<desc>Ping ext-dn from both UEs</desc>
|
||||||
<id>rfsim5g_multiue1 rfsim5g_multiue2</id>
|
<id>rfsim5g_multiue1 rfsim5g_multiue2</id>
|
||||||
<nodes>acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -150,33 +146,33 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from all UEs</desc>
|
<desc>Ping ext-dn from all UEs</desc>
|
||||||
<id>rfsim5g_multiue1 rfsim5g_multiue2 rfsim5g_multiue3 rfsim5g_multiue4 rfsim5g_multiue5 rfsim5g_multiue6 rfsim5g_multiue7 rfsim5g_multiue8 rfsim5g_multiue9 rfsim5g_multiue10</id>
|
<id>rfsim5g_multiue1 rfsim5g_multiue2 rfsim5g_multiue3 rfsim5g_multiue4 rfsim5g_multiue5 rfsim5g_multiue6 rfsim5g_multiue7 rfsim5g_multiue8 rfsim5g_multiue9 rfsim5g_multiue10</id>
|
||||||
<nodes>acamas acamas acamas acamas acamas acamas acamas acamas acamas acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25 -s 1016</ping_args>
|
<ping_args>-c 20 -i 0.25 -s 1016</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030001">
|
<testCase id="030001">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/3Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
||||||
<id>rfsim5g_multiue1</id>
|
<id>rfsim5g_multiue1</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030002">
|
<testCase id="030002">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (UL/1Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/1Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 1M -t 20</iperf_args>
|
<iperf_args>-u -b 1M -t 20</iperf_args>
|
||||||
<id>rfsim5g_multiue1</id>
|
<id>rfsim5g_multiue1</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -185,7 +181,7 @@
|
|||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach OAI UEs</desc>
|
<desc>Detach OAI UEs</desc>
|
||||||
<id>rfsim5g_multiue1</id>
|
<id>rfsim5g_multiue1</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="100001">
|
<testCase id="100001">
|
||||||
@@ -195,15 +191,14 @@
|
|||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_multiue</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_multiue</yaml_path>
|
||||||
<d_retx_th>1,0,0,0</d_retx_th>
|
<d_retx_th>1,0,0,0</d_retx_th>
|
||||||
<u_retx_th>1,0,0,0</u_retx_th>
|
<u_retx_th>1,0,0,0</u_retx_th>
|
||||||
<eNB_instance>0</eNB_instance>
|
<node>localhost</node>
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="222222">
|
<testCase id="222222">
|
||||||
<class>Clean_Test_Server_Images</class>
|
<class>Clean_Test_Server_Images</class>
|
||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<desc>Clean Test Images on Test Server</desc>
|
<desc>Clean Test Images on Test Server</desc>
|
||||||
<svr_id>0</svr_id>
|
<node>localhost</node>
|
||||||
<images>oai-gnb-asan oai-nr-ue</images>
|
<images>oai-gnb-asan oai-nr-ue</images>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
|||||||
@@ -55,58 +55,54 @@
|
|||||||
<testCase id="111111">
|
<testCase id="111111">
|
||||||
<class>Pull_Local_Registry</class>
|
<class>Pull_Local_Registry</class>
|
||||||
<desc>Pull Images from Local Registry</desc>
|
<desc>Pull Images from Local Registry</desc>
|
||||||
<svr_id>0</svr_id>
|
<node>localhost</node>
|
||||||
<images>oai-gnb-asan oai-nr-cuup-asan oai-nr-ue-asan</images>
|
<images>oai-gnb-asan oai-nr-cuup-asan oai-nr-ue-asan</images>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="800813">
|
<testCase id="800813">
|
||||||
<class>Create_Workspace</class>
|
<class>Create_Workspace</class>
|
||||||
<desc>Create new Workspace</desc>
|
<desc>Create new Workspace</desc>
|
||||||
<eNB_instance>0</eNB_instance>
|
<node>localhost</node>
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000001">
|
<testCase id="000001">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>Deploy OAI 5G CoreNetwork</desc>
|
<desc>Deploy OAI 5G CoreNetwork</desc>
|
||||||
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_n2_ho</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_n2_ho</yaml_path>
|
||||||
<services>mysql oai-amf oai-smf oai-upf oai-ext-dn</services>
|
<services>mysql oai-amf oai-smf oai-upf oai-ext-dn</services>
|
||||||
<eNB_instance>0</eNB_instance>
|
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000002">
|
<testCase id="000002">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>Deploy OAI 5G CU-CP/CU-UP/DU 0 + UE RFsim SA</desc>
|
<desc>Deploy OAI 5G CU-CP/CU-UP/DU 0 + UE RFsim SA</desc>
|
||||||
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_n2_ho</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_n2_ho</yaml_path>
|
||||||
<services>oai-cucp-0 oai-cuup-0 oai-du-0 oai-nr-ue</services>
|
<services>oai-cucp-0 oai-cuup-0 oai-du-0 oai-nr-ue</services>
|
||||||
<eNB_instance>0</eNB_instance>
|
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000003">
|
<testCase id="000003">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000004">
|
<testCase id="000004">
|
||||||
<class>Deploy_Object</class>
|
<class>Deploy_Object</class>
|
||||||
<desc>Deploy OAI 5G CU-CP/CU-UP/DU 1 RFsim SA</desc>
|
<desc>Deploy OAI 5G CU-CP/CU-UP/DU 1 RFsim SA</desc>
|
||||||
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_n2_ho</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_n2_ho</yaml_path>
|
||||||
<services>oai-cucp-1 oai-cuup-1 oai-du-1</services>
|
<services>oai-cucp-1 oai-cuup-1 oai-du-1</services>
|
||||||
<eNB_instance>0</eNB_instance>
|
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 50 -i 0.25</ping_args>
|
<ping_args>-c 50 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -115,33 +111,33 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 50 -i 0.25</ping_args>
|
<ping_args>-c 50 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>10</ping_packetloss_threshold>
|
<ping_packetloss_threshold>10</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030001">
|
<testCase id="030001">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/10Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/10Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030002">
|
<testCase id="030002">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (UL/4Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/4Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 1M -t 20</iperf_args>
|
<iperf_args>-u -b 1M -t 20</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -155,7 +151,7 @@
|
|||||||
<testCase id="050001">
|
<testCase id="050001">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Trigger N2 Handover</desc>
|
<desc>Trigger N2 Handover</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci trigger_n2_ho 1,1 | ncat 192.168.71.150 9090</command>
|
<command>echo ci trigger_n2_ho 1,1 | ncat 192.168.71.150 9090</command>
|
||||||
<command_fail>yes</command_fail>
|
<command_fail>yes</command_fail>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -163,14 +159,14 @@
|
|||||||
<testCase id="050002">
|
<testCase id="050002">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>UE (1) connected to DU-PCI 1?</desc>
|
<desc>UE (1) connected to DU-PCI 1?</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.180 9090 | grep "1234"</command>
|
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.180 9090 | grep "1234"</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="050003">
|
<testCase id="050003">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Trigger N2 Handover</desc>
|
<desc>Trigger N2 Handover</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci trigger_n2_ho 0,1 | ncat 192.168.71.180 9090</command>
|
<command>echo ci trigger_n2_ho 0,1 | ncat 192.168.71.180 9090</command>
|
||||||
<command_fail>yes</command_fail>
|
<command_fail>yes</command_fail>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -178,7 +174,7 @@
|
|||||||
<testCase id="050004">
|
<testCase id="050004">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>UE (1) connected to DU-PCI 0?</desc>
|
<desc>UE (1) connected to DU-PCI 0?</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3584"</command>
|
<command>echo ci fetch_du_by_ue_id 1 | ncat 192.168.71.150 9090 | grep "3584"</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
@@ -186,9 +182,8 @@
|
|||||||
<class>Undeploy_Object</class>
|
<class>Undeploy_Object</class>
|
||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<desc>Undeploy all OAI 5G stack</desc>
|
<desc>Undeploy all OAI 5G stack</desc>
|
||||||
|
<node>localhost</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_n2_ho</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_n2_ho</yaml_path>
|
||||||
<eNB_instance>0</eNB_instance>
|
|
||||||
<eNB_serverId>0</eNB_serverId>
|
|
||||||
<d_retx_th>10,100,100,100</d_retx_th>
|
<d_retx_th>10,100,100,100</d_retx_th>
|
||||||
<u_retx_th>10,100,100,100</u_retx_th>
|
<u_retx_th>10,100,100,100</u_retx_th>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -197,7 +192,7 @@
|
|||||||
<class>Clean_Test_Server_Images</class>
|
<class>Clean_Test_Server_Images</class>
|
||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<desc>Clean Test Images on Test Server</desc>
|
<desc>Clean Test Images on Test Server</desc>
|
||||||
<svr_id>0</svr_id>
|
<node>localhost</node>
|
||||||
<images>oai-gnb-asan oai-nr-cuup-asan oai-nr-ue-asan</images>
|
<images>oai-gnb-asan oai-nr-cuup-asan oai-nr-ue-asan</images>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
|||||||
@@ -74,16 +74,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -92,9 +92,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
<testCase id="040001">
|
<testCase id="040001">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Trigger Reestablishment</desc>
|
<desc>Trigger Reestablishment</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci force_reestab | ncat 192.168.71.140 9090 | grep -E 'Reset RLC counters of UE RNTI [0-9a-f]{4} to trigger reestablishment'</command>
|
<command>echo ci force_reestab | ncat 192.168.71.140 9090 | grep -E 'Reset RLC counters of UE RNTI [0-9a-f]{4} to trigger reestablishment'</command>
|
||||||
<command_fail>yes</command_fail>
|
<command_fail>yes</command_fail>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -111,9 +111,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i0.5 -w25</ping_args>
|
<ping_args>-c 20 -i0.5 -w25</ping_args>
|
||||||
<ping_packetloss_threshold>80</ping_packetloss_threshold>
|
<ping_packetloss_threshold>80</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
<testCase id="040002">
|
<testCase id="040002">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Verify Reestablishment</desc>
|
<desc>Verify Reestablishment</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>echo ci get_reestab_count | ncat 192.168.71.140 9090 | grep -E 'UE RNTI [0-9a-f]{4} reestab 1'</command>
|
<command>echo ci get_reestab_count | ncat 192.168.71.140 9090 | grep -E 'UE RNTI [0-9a-f]{4} reestab 1'</command>
|
||||||
<command_fail>yes</command_fail>
|
<command_fail>yes</command_fail>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -69,16 +69,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -87,9 +87,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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>rfsim-5gnr-prs</htmlTabRef>
|
||||||
|
<htmlTabName>Monolithic gNB with PRS</htmlTabName>
|
||||||
|
<htmlTabIcon>wrench</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
111111
|
||||||
|
800813
|
||||||
|
000012
|
||||||
|
000013
|
||||||
|
040001
|
||||||
|
040023
|
||||||
|
100011
|
||||||
|
222222
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="111111">
|
||||||
|
<class>Pull_Local_Registry</class>
|
||||||
|
<desc>Pull Images from Local Registry</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<images>oai-gnb-asan oai-nr-ue-asan</images>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="800813">
|
||||||
|
<class>Create_Workspace</class>
|
||||||
|
<desc>Create new Workspace</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000012">
|
||||||
|
<class>Deploy_Object</class>
|
||||||
|
<desc>Deploy OAI 5G gNB+UE RF sim SA</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_prs</yaml_path>
|
||||||
|
<services>oai-gnb oai-nr-ue</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000013">
|
||||||
|
<class>Attach_UE</class>
|
||||||
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
|
<id>rfsim5g_ue</id>
|
||||||
|
<node>localhost</node>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040001">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>2</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040023">
|
||||||
|
<class>Custom_Script</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Set and verify distance at 50, 100, 150 m</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<script>scripts/set-and-verify-distance-prs.sh</script>
|
||||||
|
<args>50 100 150</args>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100011">
|
||||||
|
<class>Undeploy_Object</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Undeploy all OAI 5G stack</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_prs</yaml_path>
|
||||||
|
<d_retx_th>30,100,100,100</d_retx_th>
|
||||||
|
<u_retx_th>30,100,100,100</u_retx_th>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="222222">
|
||||||
|
<class>Clean_Test_Server_Images</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Clean Test Images on Test Server</desc>
|
||||||
|
<node>localhost</node>
|
||||||
|
<images>oai-gnb-asan oai-nr-ue-asan</images>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
<testCase id="000005">
|
<testCase id="000005">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Check that UE synched</desc>
|
<desc>Check that UE synched</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>docker logs rfsim5g-oai-nr-ue-2 | grep -m 1 "PSBCH RX:OK"</command>
|
<command>docker logs rfsim5g-oai-nr-ue-2 | grep -m 1 "PSBCH RX:OK"</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
|||||||
@@ -63,14 +63,14 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>localhost</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>localhost</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>localhost</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach OAI UE 1</desc>
|
<desc>Detach OAI UE 1</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>localhost</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="100001">
|
<testCase id="100001">
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
<testCase id="004000">
|
<testCase id="004000">
|
||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Clean-Up any residual volume</desc>
|
<desc>Clean-Up any residual volume</desc>
|
||||||
<node>acamas</node>
|
<node>localhost</node>
|
||||||
<command>docker volume rm 5g_rfsimulator_tdd_dora_rrc.config -f</command>
|
<command>docker volume rm 5g_rfsimulator_tdd_dora_rrc.config -f</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
<testCase id="800813">
|
<testCase id="800813">
|
||||||
@@ -83,9 +83,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping gNB from NR-UE</desc>
|
<desc>Ping gNB from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_gnb_nos1</svr_id>
|
<svr_id>rfsim5g_gnb_nos1</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c20 -i0.2</ping_args>
|
<ping_args>-c20 -i0.2</ping_args>
|
||||||
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -94,9 +94,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from gNB</desc>
|
<desc>Ping NR-UE from gNB</desc>
|
||||||
<id>rfsim5g_gnb_nos1</id>
|
<id>rfsim5g_gnb_nos1</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c20 -i0.2</ping_args>
|
<ping_args>-c20 -i0.2</ping_args>
|
||||||
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
<ping_packetloss_threshold>0</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -36,6 +36,11 @@
|
|||||||
020003
|
020003
|
||||||
030001
|
030001
|
||||||
030002
|
030002
|
||||||
|
050001
|
||||||
|
050002
|
||||||
|
050003
|
||||||
|
020001
|
||||||
|
020002
|
||||||
100001
|
100001
|
||||||
222222
|
222222
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
@@ -72,16 +77,16 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach OAI UE (Wait for IP)</desc>
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020001">
|
<testCase id="020001">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE</desc>
|
<desc>Ping ext-dn from NR-UE</desc>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -90,9 +95,9 @@
|
|||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping NR-UE from ext-dn</desc>
|
<desc>Ping NR-UE from ext-dn</desc>
|
||||||
<id>rfsim5g_ext_dn</id>
|
<id>rfsim5g_ext_dn</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ue</svr_id>
|
<svr_id>rfsim5g_ue</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
@@ -101,50 +106,70 @@
|
|||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Verify 2nd PDU session is up</desc>
|
<desc>Verify 2nd PDU session is up</desc>
|
||||||
<id>rfsim5g_ue_pdu_2</id>
|
<id>rfsim5g_ue_pdu_2</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="020003">
|
<testCase id="020003">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>Ping ext-dn from NR-UE on PDU session ID 2</desc>
|
<desc>Ping ext-dn from NR-UE on PDU session ID 2</desc>
|
||||||
<id>rfsim5g_ue_pdu_2</id>
|
<id>rfsim5g_ue_pdu_2</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<ping_args>-c 20 -i 0.25</ping_args>
|
<ping_args>-c 20 -i 0.25</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030001">
|
<testCase id="030001">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (DL/3Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (DL/3Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030002">
|
<testCase id="030002">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Iperf (UL/1Mbps/UDP)(30 sec)</desc>
|
<desc>Iperf (UL/1Mbps/UDP)(20 sec)</desc>
|
||||||
<iperf_args>-u -b 1M -t 20</iperf_args>
|
<iperf_args>-u -b 1M -t 20</iperf_args>
|
||||||
<id>rfsim5g_ue</id>
|
<id>rfsim5g_ue</id>
|
||||||
<nodes>acamas</nodes>
|
<node>localhost</node>
|
||||||
<svr_id>rfsim5g_ext_dn</svr_id>
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
||||||
<svr_node>acamas</svr_node>
|
<svr_node>localhost</svr_node>
|
||||||
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
||||||
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="050001">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>Trigger PDU Session Release via gNB telnet</desc>
|
||||||
|
<node>acamas</node>
|
||||||
|
<command>echo ci pdu_session_release 2 | ncat 192.168.71.140 9090</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="050002">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>Add PDU Session via UE telnet</desc>
|
||||||
|
<node>acamas</node>
|
||||||
|
<command>echo ci add_pdu_session 6,7 | ncat 192.168.71.150 8091</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="050003">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>Trigger PDU Session Release via gNB telnet</desc>
|
||||||
|
<node>acamas</node>
|
||||||
|
<command>echo ci pdu_session_release 6 | ncat 192.168.71.140 9090</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
<testCase id="100001">
|
<testCase id="100001">
|
||||||
<class>Undeploy_Object</class>
|
<class>Undeploy_Object</class>
|
||||||
<always_exec>true</always_exec>
|
<always_exec>true</always_exec>
|
||||||
<desc>Undeploy all OAI 5G stack</desc>
|
<desc>Undeploy all OAI 5G stack</desc>
|
||||||
<node>localhost</node>
|
<node>localhost</node>
|
||||||
<services>oai-vnf oai-pnf</services>
|
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_u0_25prb</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_u0_25prb</yaml_path>
|
||||||
<d_retx_th>1,0,0,0</d_retx_th>
|
<d_retx_th>1,0,0,0</d_retx_th>
|
||||||
<u_retx_th>1,0,0,0</u_retx_th>
|
<u_retx_th>1,0,0,0</u_retx_th>
|
||||||
|
|||||||
@@ -247,6 +247,7 @@
|
|||||||
<testCase id="060000">
|
<testCase id="060000">
|
||||||
<class>UndeployCoreNetwork</class>
|
<class>UndeployCoreNetwork</class>
|
||||||
<desc>Terminate EPC</desc>
|
<desc>Terminate EPC</desc>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
<cn_id>ltebox-nepes</cn_id>
|
<cn_id>ltebox-nepes</cn_id>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
|||||||
@@ -88,8 +88,8 @@
|
|||||||
|
|
||||||
<testCase id="000022">
|
<testCase id="000022">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (DL/UDP/500M)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (DL/UDP/800M)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 500M -t 30 -R</iperf_args>
|
<iperf_args>-u -b 800M -t 30 -R</iperf_args>
|
||||||
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
||||||
<id>up2-aerial</id>
|
<id>up2-aerial</id>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
@@ -98,8 +98,8 @@
|
|||||||
|
|
||||||
<testCase id="000033">
|
<testCase id="000033">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (UL/UDP/40M)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (UL/UDP/150M)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 40M -t 30 -l 1428</iperf_args>
|
<iperf_args>-u -b 150M -t 30 -l 1428</iperf_args>
|
||||||
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
||||||
<id>up2-aerial</id>
|
<id>up2-aerial</id>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
@@ -119,9 +119,9 @@
|
|||||||
|
|
||||||
<testCase id="300033">
|
<testCase id="300033">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>Optional iperf (UL/UDP/90M)(30 sec)(single-ue profile)</desc>
|
<desc>Optional iperf (UL/UDP/200M)(30 sec)(single-ue profile)</desc>
|
||||||
<may_fail>true</may_fail>
|
<may_fail>true</may_fail>
|
||||||
<iperf_args>-u -b 90M -t 30 -l 1428</iperf_args>
|
<iperf_args>-u -b 200M -t 30 -l 1428</iperf_args>
|
||||||
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
||||||
<id>up2-aerial</id>
|
<id>up2-aerial</id>
|
||||||
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>
|
||||||
|
|||||||
@@ -97,8 +97,8 @@
|
|||||||
|
|
||||||
<testCase id="000032">
|
<testCase id="000032">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (UL/UDP/200M)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (UL/UDP/300M)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 200M -t 30 -l 1428</iperf_args>
|
<iperf_args>-u -b 300M -t 30 -l 1428</iperf_args>
|
||||||
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
||||||
<id>up2-aerial</id>
|
<id>up2-aerial</id>
|
||||||
<iperf_packetloss_threshold>10</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>10</iperf_packetloss_threshold>
|
||||||
@@ -107,9 +107,9 @@
|
|||||||
|
|
||||||
<testCase id="000033">
|
<testCase id="000033">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (UL/UDP/220M)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (UL/UDP/380M)(30 sec)(single-ue profile)</desc>
|
||||||
<may_fail>true</may_fail>
|
<may_fail>true</may_fail>
|
||||||
<iperf_args>-u -b 220M -t 30 -l 1428</iperf_args>
|
<iperf_args>-u -b 380M -t 30 -l 1428</iperf_args>
|
||||||
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
<svr_id>oc-cn5g-20897-aerial</svr_id>
|
||||||
<id>up2-aerial</id>
|
<id>up2-aerial</id>
|
||||||
<iperf_packetloss_threshold>10</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>10</iperf_packetloss_threshold>
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Set attenuator to 0 for DU0 and 17 for DU1</desc>
|
<desc>Set attenuator to 0 for DU0 and 17 for DU1</desc>
|
||||||
<node>rocket</node>
|
<node>rocket</node>
|
||||||
<command>python3 %%workspace%%/ci-scripts/attenuatorctl.py -r 1,2 0 -r 3,4 17 -d 5</command>
|
<command>python3 %%workspace%%/ci-scripts/attenuatorctl.py -s 1,2 0 -s 3,4 25</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000007">
|
<testCase id="000007">
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
<class>Custom_Command</class>
|
<class>Custom_Command</class>
|
||||||
<desc>Attenuate DU1 by 17dB and remove attenuation on DU0 to trigger Handover</desc>
|
<desc>Attenuate DU1 by 17dB and remove attenuation on DU0 to trigger Handover</desc>
|
||||||
<node>rocket</node>
|
<node>rocket</node>
|
||||||
<command>python3 %%workspace%%/ci-scripts/attenuatorctl.py -r 1,2 0 -r 3,4 17 -d 5</command>
|
<command>python3 %%workspace%%/ci-scripts/attenuatorctl.py -r 1,2 0 -r 3,4 25 -d 5</command>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000017">
|
<testCase id="000017">
|
||||||
|
|||||||
@@ -0,0 +1,230 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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-MONO-N2-HO-B210</htmlTabRef>
|
||||||
|
<htmlTabName>Monolithic N2 Handover 20 MHz TDD SA</htmlTabName>
|
||||||
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
000001
|
||||||
|
000002
|
||||||
|
000023
|
||||||
|
000003
|
||||||
|
000004
|
||||||
|
000005
|
||||||
|
000006
|
||||||
|
000007
|
||||||
|
000008
|
||||||
|
000009
|
||||||
|
000010
|
||||||
|
000011
|
||||||
|
000012
|
||||||
|
000013
|
||||||
|
000014
|
||||||
|
000015
|
||||||
|
000017
|
||||||
|
000018
|
||||||
|
000019
|
||||||
|
000016
|
||||||
|
000020
|
||||||
|
000021
|
||||||
|
000022
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="000001">
|
||||||
|
<class>DeployCoreNetwork</class>
|
||||||
|
<desc>Initialize 5G Core</desc>
|
||||||
|
<cn_id>oc-cn5g-00103-ho</cn_id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>Pull_Local_Registry</class>
|
||||||
|
<desc>Pull Images from Local Registry</desc>
|
||||||
|
<images>oai-gnb</images>
|
||||||
|
<node>groot</node>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000023">
|
||||||
|
<class>Pull_Local_Registry</class>
|
||||||
|
<desc>Pull Images from Local Registry</desc>
|
||||||
|
<images>oai-gnb</images>
|
||||||
|
<node>rocket</node>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000003">
|
||||||
|
<class>Create_Workspace</class>
|
||||||
|
<desc>Create new Workspace for groot</desc>
|
||||||
|
<node>groot</node>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000005">
|
||||||
|
<class>Create_Workspace</class>
|
||||||
|
<desc>Create new Workspace on rocket</desc>
|
||||||
|
<node>rocket</node>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000004">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>Set initial attenuation on target gNB</desc>
|
||||||
|
<node>rocket</node>
|
||||||
|
<command>python3 %%workspace%%/ci-scripts/attenuatorctl.py -s 1,2 0 -s 3,4 25</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000005">
|
||||||
|
<class>Deploy_Object</class>
|
||||||
|
<desc>Deploy Monolithic gNB-PCI0 (TDD/Band77/20MHz/B210) in a container</desc>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_sa_n2_ho_b210</yaml_path>
|
||||||
|
<node>groot</node>
|
||||||
|
<services>oai-gnb-pci0</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000006">
|
||||||
|
<class>Deploy_Object</class>
|
||||||
|
<desc>Deploy Monolithic gNB-PCI1 (TDD/Band77/20MHz/B210) in a container</desc>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_sa_n2_ho_b210</yaml_path>
|
||||||
|
<node>rocket</node>
|
||||||
|
<services>oai-gnb-pci1</services>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000007">
|
||||||
|
<class>Attach_UE</class>
|
||||||
|
<desc>Attach Quectel</desc>
|
||||||
|
<id>raspix</id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000008">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping: 100pings in 20sec</desc>
|
||||||
|
<id>raspix</id>
|
||||||
|
<svr_id>oc-cn5g-00103-ho</svr_id>
|
||||||
|
<ping_args>-c 100 -i 0.2</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000009">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000010">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>Gradually attenuate gNB-PCI0 (ch1-2=15dB) and gNB-PCI1 (ch3-4=0dB) over 5s to trigger N2 Handover to gNB-PCI1</desc>
|
||||||
|
<node>rocket</node>
|
||||||
|
<command>python3 %%workspace%%/ci-scripts/attenuatorctl.py -r 1,2 15 -r 3,4 0 -d 5</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000011">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping: 50pings in 10sec</desc>
|
||||||
|
<id>raspix</id>
|
||||||
|
<svr_id>oc-cn5g-00103-ho</svr_id>
|
||||||
|
<ping_args>-c 50 -i 0.2</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000012">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>UE connected to gNB-PCI1?</desc>
|
||||||
|
<node>rocket</node>
|
||||||
|
<command>echo ci fetch_du_by_ue_id 1 | ncat 127.0.0.1 9090 | grep "3585"</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000013">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>Gradually attenuate gNB-PCI0 (ch1-2=0dB) and gNB-PCI1 (ch3-4=15dB) over 5s to trigger N2 Handover back to gNB-PCI0</desc>
|
||||||
|
<node>rocket</node>
|
||||||
|
<command>python3 %%workspace%%/ci-scripts/attenuatorctl.py -r 1,2 0 -r 3,4 25 -d 5</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000014">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping: 50pings in 10sec</desc>
|
||||||
|
<id>raspix</id>
|
||||||
|
<svr_id>oc-cn5g-00103-ho</svr_id>
|
||||||
|
<ping_args>-c 50 -i 0.2</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000015">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>UE connected to gNB-PCI0?</desc>
|
||||||
|
<node>groot</node>
|
||||||
|
<command>echo ci fetch_du_by_ue_id 1 | ncat 127.0.0.1 9090 | grep "3584"</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000016">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Reset all attenuators to 0dB</desc>
|
||||||
|
<node>rocket</node>
|
||||||
|
<command>python3 %%workspace%%/ci-scripts/attenuatorctl.py -s 1-4 0</command>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000017">
|
||||||
|
<class>Detach_UE</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Detach Quectel</desc>
|
||||||
|
<id>raspix</id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000018">
|
||||||
|
<class>Undeploy_Object</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Undeploy Monolithic gNB-PCI0</desc>
|
||||||
|
<node>groot</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_sa_n2_ho_b210</yaml_path>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000019">
|
||||||
|
<class>Undeploy_Object</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Undeploy Monolithic gNB-PCI1</desc>
|
||||||
|
<node>rocket</node>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/5g_sa_n2_ho_b210</yaml_path>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000020">
|
||||||
|
<class>Clean_Test_Server_Images</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Clean Test Images on Test Server</desc>
|
||||||
|
<node>groot</node>
|
||||||
|
<images>oai-gnb</images>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000021">
|
||||||
|
<class>Clean_Test_Server_Images</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Clean Test Images on Test Server</desc>
|
||||||
|
<node>rocket</node>
|
||||||
|
<images>oai-gnb</images>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000022">
|
||||||
|
<class>UndeployCoreNetwork</class>
|
||||||
|
<always_exec>true</always_exec>
|
||||||
|
<desc>Terminate 5G Core</desc>
|
||||||
|
<cn_id>oc-cn5g-00103-ho</cn_id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
@@ -146,7 +146,6 @@
|
|||||||
<desc>Undeploy gNB</desc>
|
<desc>Undeploy gNB</desc>
|
||||||
<node>matix</node>
|
<node>matix</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_sa_n310_2x2_100MHz</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_sa_n310_2x2_100MHz</yaml_path>
|
||||||
<services>oai-gnb</services>
|
|
||||||
<d_retx_th>10,100,100,100</d_retx_th>
|
<d_retx_th>10,100,100,100</d_retx_th>
|
||||||
<u_retx_th>10,100,100,100</u_retx_th>
|
<u_retx_th>10,100,100,100</u_retx_th>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -146,7 +146,6 @@
|
|||||||
<desc>Undeploy gNB</desc>
|
<desc>Undeploy gNB</desc>
|
||||||
<node>matix</node>
|
<node>matix</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_sa_n310_2x2_60MHz</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_sa_n310_2x2_60MHz</yaml_path>
|
||||||
<services>oai-gnb</services>
|
|
||||||
<d_retx_th>15,100,100,100</d_retx_th>
|
<d_retx_th>15,100,100,100</d_retx_th>
|
||||||
<u_retx_th>20,100,100,100</u_retx_th>
|
<u_retx_th>20,100,100,100</u_retx_th>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -146,7 +146,6 @@
|
|||||||
<desc>Undeploy VNF-PNF</desc>
|
<desc>Undeploy VNF-PNF</desc>
|
||||||
<node>matix</node>
|
<node>matix</node>
|
||||||
<yaml_path>ci-scripts/yaml_files/5g_sa_n310_4x4_60MHz</yaml_path>
|
<yaml_path>ci-scripts/yaml_files/5g_sa_n310_4x4_60MHz</yaml_path>
|
||||||
<services>oai-vnf oai-pnf</services>
|
|
||||||
<d_retx_th>10,100,100,100</d_retx_th>
|
<d_retx_th>10,100,100,100</d_retx_th>
|
||||||
<u_retx_th>10,100,100,100</u_retx_th>
|
<u_retx_th>10,100,100,100</u_retx_th>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_enb:
|
oai_enb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${ENB_IMG:-oai-enb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${ENB_IMG:-oai-enb}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: l2sim4g-oai-enb
|
container_name: l2sim4g-oai-enb
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
@@ -210,7 +210,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue1:
|
oai_ue1:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: l2sim4g-oai-lte-ue1
|
container_name: l2sim4g-oai-lte-ue1
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
@@ -229,7 +229,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue2:
|
oai_ue2:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: l2sim4g-oai-lte-ue2
|
container_name: l2sim4g-oai-lte-ue2
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_enb0:
|
oai_enb0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${ENB_IMG:-oai-enb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${ENB_IMG:-oai-enb}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-enb
|
container_name: rfsim4g-oai-enb
|
||||||
networks:
|
networks:
|
||||||
@@ -197,7 +197,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue0:
|
oai_ue0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-lte-ue0
|
container_name: rfsim4g-oai-lte-ue0
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
oai_enb0:
|
oai_enb0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${ENB_IMG:-oai-enb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${ENB_IMG:-oai-enb}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-enb
|
container_name: rfsim4g-oai-enb
|
||||||
networks:
|
networks:
|
||||||
@@ -19,7 +19,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue0:
|
oai_ue0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-lte-ue0
|
container_name: rfsim4g-oai-lte-ue0
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_enb0:
|
oai_enb0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${ENB_IMG:-oai-enb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${ENB_IMG:-oai-enb}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-enb
|
container_name: rfsim4g-oai-enb
|
||||||
networks:
|
networks:
|
||||||
@@ -197,7 +197,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue0:
|
oai_ue0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-lte-ue0
|
container_name: rfsim4g-oai-lte-ue0
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_enb0:
|
oai_enb0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${ENB_IMG:-oai-enb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${ENB_IMG:-oai-enb}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-enb
|
container_name: rfsim4g-oai-enb
|
||||||
networks:
|
networks:
|
||||||
@@ -197,7 +197,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue0:
|
oai_ue0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-lte-ue0
|
container_name: rfsim4g-oai-lte-ue0
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
oai_enb0:
|
oai_enb0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${ENB_IMG:-oai-enb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${ENB_IMG:-oai-enb}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-enb
|
container_name: rfsim4g-oai-enb
|
||||||
networks:
|
networks:
|
||||||
@@ -19,7 +19,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue0:
|
oai_ue0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-lte-ue0
|
container_name: rfsim4g-oai-lte-ue0
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
oai_enb0:
|
oai_enb0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${ENB_IMG:-oai-enb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${ENB_IMG:-oai-enb}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-enb
|
container_name: rfsim4g-oai-enb
|
||||||
networks:
|
networks:
|
||||||
@@ -19,7 +19,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue0:
|
oai_ue0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-lte-ue0
|
container_name: rfsim4g-oai-lte-ue0
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_enb0:
|
oai_enb0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${ENB_IMG:-oai-enb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${ENB_IMG:-oai-enb}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-enb
|
container_name: rfsim4g-oai-enb
|
||||||
networks:
|
networks:
|
||||||
@@ -197,7 +197,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai_ue0:
|
oai_ue0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${LTEUE_IMG:-oai-lte-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim4g-oai-lte-ue0
|
container_name: rfsim4g-oai-lte-ue0
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-cu:
|
oai-cu:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cu
|
container_name: rfsim5g-oai-cu
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -121,7 +121,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-du-pci0:
|
oai-du-pci0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-du-pci0
|
container_name: rfsim5g-oai-du-pci0
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -152,7 +152,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-du-pci1:
|
oai-du-pci1:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-du-pci1
|
container_name: rfsim5g-oai-du-pci1
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -187,7 +187,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ services:
|
|||||||
start_period: 10s
|
start_period: 10s
|
||||||
start_interval: 500ms
|
start_interval: 500ms
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -113,7 +113,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
ipc: host
|
ipc: host
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
services:
|
services:
|
||||||
mysql:
|
mysql:
|
||||||
container_name: "mysql"
|
container_name: "rfsim5g-mysql"
|
||||||
image: mysql:8.0
|
image: mysql:8.0
|
||||||
init: true
|
init: true
|
||||||
volumes:
|
volumes:
|
||||||
- ./conf/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
|
- ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
|
||||||
- ./conf/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
|
- ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
|
||||||
- ./conf/sql.cnf:/etc/mysql/conf.d/custom.cnf
|
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Tokyo
|
- TZ=Europe/Paris
|
||||||
- MYSQL_DATABASE=oai_db
|
- MYSQL_DATABASE=oai_db
|
||||||
- MYSQL_USER=test
|
- MYSQL_USER=test
|
||||||
- MYSQL_PASSWORD=test
|
- MYSQL_PASSWORD=test
|
||||||
@@ -23,40 +22,38 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.71.131
|
ipv4_address: 192.168.71.131
|
||||||
|
|
||||||
oai-amf:
|
oai-amf:
|
||||||
container_name: "oai-amf"
|
container_name: "rfsim5g-oai-amf"
|
||||||
image: oaisoftwarealliance/oai-amf:v2.1.9
|
image: oaisoftwarealliance/oai-amf:v2.1.10
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Tokyo
|
- TZ=Europe/paris
|
||||||
volumes:
|
volumes:
|
||||||
- ./conf/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
|
- ./mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
|
||||||
depends_on:
|
depends_on:
|
||||||
- mysql
|
- mysql
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.71.132
|
ipv4_address: 192.168.71.132
|
||||||
|
|
||||||
oai-smf:
|
oai-smf:
|
||||||
container_name: "oai-smf"
|
container_name: "rfsim5g-oai-smf"
|
||||||
image: oaisoftwarealliance/oai-smf:v2.1.9
|
image: oaisoftwarealliance/oai-smf:v2.1.10
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Tokyo
|
- TZ=Europe/Paris
|
||||||
volumes:
|
volumes:
|
||||||
- ./conf/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
|
- ./mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-amf
|
- oai-amf
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.71.133
|
ipv4_address: 192.168.71.133
|
||||||
|
|
||||||
oai-upf:
|
oai-upf:
|
||||||
container_name: "oai-upf"
|
container_name: "rfsim5g-oai-upf"
|
||||||
image: oaisoftwarealliance/oai-upf:v2.1.9
|
image: oaisoftwarealliance/oai-upf:v2.1.10
|
||||||
|
init: true
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Tokyo
|
- TZ=Europe/Paris
|
||||||
volumes:
|
volumes:
|
||||||
- ./conf/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
|
- ./mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-smf
|
- oai-smf
|
||||||
cap_add:
|
cap_add:
|
||||||
@@ -72,10 +69,9 @@ services:
|
|||||||
traffic_net:
|
traffic_net:
|
||||||
ipv4_address: 192.168.72.134
|
ipv4_address: 192.168.72.134
|
||||||
interface_name: eth1
|
interface_name: eth1
|
||||||
|
|
||||||
oai-ext-dn:
|
oai-ext-dn:
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: oai-ext-dn
|
container_name: rfsim5g-oai-ext-dn
|
||||||
image: oaisoftwarealliance/trf-gen-cn5g:focal
|
image: oaisoftwarealliance/trf-gen-cn5g:focal
|
||||||
init: true
|
init: true
|
||||||
entrypoint: /bin/bash -c \
|
entrypoint: /bin/bash -c \
|
||||||
@@ -93,22 +89,23 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: nakaolab:oct29
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
|
cap_add:
|
||||||
|
- SYS_NICE
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim --log_config.global_log_options level,nocolor,time
|
||||||
|
ASAN_OPTIONS: detect_leaks=0
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-ext-dn
|
- oai-ext-dn
|
||||||
command: ["-c", "/oai-ran/cmake_targets/ran_build/build/nr-softmodem -O /opt/oai-gnb/etc/gnb.yaml --rfsim --log_config.global_log_options level,nocolor,time"]
|
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.71.140
|
ipv4_address: 192.168.71.140
|
||||||
volumes:
|
volumes:
|
||||||
# - ../../conf_files/gnb.sa.band78.273prb.rfsim.2x2.conf:/opt/oai-gnb/etc/gnb.conf
|
|
||||||
- ../../conf_files/gnb.sa.band78.106prb.rfsim.yaml:/opt/oai-gnb/etc/gnb.yaml
|
- ../../conf_files/gnb.sa.band78.106prb.rfsim.yaml:/opt/oai-gnb/etc/gnb.yaml
|
||||||
# - ../../conf_files/gnb.sa.band78.106prb.rfsim.2x2.conf:/opt/oai-gnb/etc/gnb.conf
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: /bin/bash -c "pgrep nr-softmodem"
|
test: /bin/bash -c "pgrep nr-softmodem"
|
||||||
start_period: 10s
|
start_period: 10s
|
||||||
@@ -116,59 +113,22 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
oai-nr-ue:
|
||||||
oai-flexric:
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
image: nakaolab:oct29
|
container_name: rfsim5g-oai-nr-ue
|
||||||
container_name: oai-flexric
|
|
||||||
command: ["-c", "stdbuf -o0 /oai-ran/openair2/E2AP/flexric/build/examples/ric/nearRT-RIC"]
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.71.21
|
|
||||||
volumes:
|
|
||||||
- ./conf/flexric.conf:/oai-ran/openair2/E2AP/flexric/flexric.conf
|
|
||||||
- ./conf/flexric.conf:/usr/local/etc/flexric/flexric.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nearRT-RIC"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
|
|
||||||
xapp-chatgpt:
|
|
||||||
image: nakaolab:oct29
|
|
||||||
command: ["-c", "XAPP_DURATION=3600 /oai-ran/openair2/E2AP/flexric/build/examples/xApp/c/monitor/xapp_chatgpt"]
|
|
||||||
# command: ["-lc","ulimit -c unlimited; export XAPP_DURATION=3600; gdb -q -batch \
|
|
||||||
# -ex 'set pagination off' \
|
|
||||||
# -ex run \
|
|
||||||
# -ex 'bt full' \
|
|
||||||
# -ex 'thread apply all bt full' \
|
|
||||||
# --args /oai-ran/openair2/E2AP/flexric/build/examples/xApp/c/monitor/xapp_chatgpt"]
|
|
||||||
container_name: xapp-chatgpt
|
|
||||||
environment:
|
|
||||||
- TZ=Asia/Tokyo
|
|
||||||
depends_on:
|
|
||||||
- oai-flexric
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.71.26
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep -f xapp_chatgpt"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
|
|
||||||
oai-nr-ue1:
|
|
||||||
image: nakaolab:oct29
|
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3319680000 --ssb 516 --uecap_file ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/uecap_ports2.xml --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue1
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.71.151
|
ipv4_address: 192.168.71.150
|
||||||
devices:
|
devices:
|
||||||
- /dev/net/tun:/dev/net/tun
|
- /dev/net/tun:/dev/net/tun
|
||||||
volumes:
|
volumes:
|
||||||
@@ -180,16 +140,44 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue2:
|
oai-nr-ue2:
|
||||||
image: nakaolab:oct29
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001101 -C 3319680000 --ssb 516 --uecap_file ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/uecap_ports2.xml --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
container_name: rfsim5g-oai-nr-ue2
|
||||||
container_name: oai-nr-ue2
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001101 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
|
depends_on:
|
||||||
|
- oai-gnb
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.71.151
|
||||||
|
devices:
|
||||||
|
- /dev/net/tun:/dev/net/tun
|
||||||
|
volumes:
|
||||||
|
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
||||||
|
start_period: 10s
|
||||||
|
start_interval: 500ms
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
oai-nr-ue3:
|
||||||
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
|
container_name: rfsim5g-oai-nr-ue3
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN # for interface bringup
|
||||||
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001102 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
@@ -206,16 +194,17 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
oai-nr-ue4:
|
||||||
oai-nr-ue3:
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
image: nakaolab:oct29
|
container_name: rfsim5g-oai-nr-ue4
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001102 -C 3319680000 --ssb 516 --uecap_file ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/uecap_ports2.xml --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue3
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001103 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
@@ -232,16 +221,17 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
oai-nr-ue5:
|
||||||
oai-nr-ue4:
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
image: nakaolab:oct29
|
container_name: rfsim5g-oai-nr-ue5
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001103 -C 3319680000 --ssb 516 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue4
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001104 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
@@ -258,16 +248,17 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
oai-nr-ue6:
|
||||||
oai-nr-ue5:
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
image: nakaolab:oct29
|
container_name: rfsim5g-oai-nr-ue6
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001104 -C 3319680000 --ssb 516 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue5
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001105 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
@@ -284,16 +275,17 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
oai-nr-ue7:
|
||||||
oai-nr-ue6:
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
image: nakaolab:oct29
|
container_name: rfsim5g-oai-nr-ue7
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001105 -C 3319680000 --ssb 516 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue6
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001106 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
@@ -310,16 +302,17 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
oai-nr-ue8:
|
||||||
oai-nr-ue7:
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
image: nakaolab:oct29
|
container_name: rfsim5g-oai-nr-ue8
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3319680000 --ssb 516 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue7
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001107 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
@@ -336,16 +329,17 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
oai-nr-ue9:
|
||||||
oai-nr-ue8:
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
image: nakaolab:oct29
|
container_name: rfsim5g-oai-nr-ue9
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001107 -C 3319680000 --ssb 516 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue8
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001108 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
@@ -362,16 +356,17 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
oai-nr-ue10:
|
||||||
oai-nr-ue9:
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
image: nakaolab:oct29
|
container_name: rfsim5g-oai-nr-ue10
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001108 -C 3319680000 --ssb 516 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue9
|
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
|
- SYS_NICE
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001109 -C 3319680000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
@@ -389,71 +384,13 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue10:
|
|
||||||
image: nakaolab:oct29
|
|
||||||
command: ["-c", "stdbuf -oL /oai-ran/cmake_targets/ran_build/build/nr-uesoftmodem --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001109 -C 3319680000 --ssb 516 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time"]
|
|
||||||
container_name: oai-nr-ue10
|
|
||||||
cap_drop:
|
|
||||||
- ALL
|
|
||||||
cap_add:
|
|
||||||
- NET_ADMIN # for interface bringup
|
|
||||||
- NET_RAW # for ping
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.71.160
|
|
||||||
devices:
|
|
||||||
- /dev/net/tun:/dev/net/tun
|
|
||||||
volumes:
|
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
# iperf3:
|
|
||||||
# image: networkstatic/iperf3:latest
|
|
||||||
# container_name: iperf3
|
|
||||||
# command: ["-c 'for p in $(seq 5201 5210); do iperf3 -s -p $$p & done;'"]
|
|
||||||
# ports:
|
|
||||||
# - "5201-5210:5201-5210/tcp"
|
|
||||||
# - "5201-5210:5201-5210/udp"
|
|
||||||
# networks:
|
|
||||||
# public_net:
|
|
||||||
# ipv4_address: 192.168.71.130
|
|
||||||
# restart: unless-stopped
|
|
||||||
|
|
||||||
iperf_udp:
|
|
||||||
image: mlabbe/iperf
|
|
||||||
container_name: iperf_udp
|
|
||||||
command: ["-u -s -p 5201"]
|
|
||||||
ports:
|
|
||||||
- "5201:5201/udp"
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.71.129
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
iperf_tcp:
|
|
||||||
image: mlabbe/iperf
|
|
||||||
container_name: iperf_tcp
|
|
||||||
command: ["-s -p 5202"]
|
|
||||||
ports:
|
|
||||||
- "5202:5202/tcp"
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.71.130
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
name: rfsim5g-oai-public-net
|
name: rfsim5g-oai-public-net
|
||||||
ipam:
|
ipam:
|
||||||
config:
|
config:
|
||||||
- subnet: 192.168.71.0/24
|
- subnet: 192.168.71.128/26
|
||||||
driver_opts:
|
driver_opts:
|
||||||
com.docker.network.bridge.name: "rfsim5g-public"
|
com.docker.network.bridge.name: "rfsim5g-public"
|
||||||
traffic_net:
|
traffic_net:
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -112,7 +112,7 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -115,7 +115,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ services:
|
|||||||
interface_name: eth1
|
interface_name: eth1
|
||||||
|
|
||||||
oai-cucp:
|
oai-cucp:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cucp
|
container_name: rfsim5g-oai-cucp
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -100,7 +100,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-cuup:
|
oai-cuup:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cuup
|
container_name: rfsim5g-oai-cuup
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -131,7 +131,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-cuup2:
|
oai-cuup2:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cuup2
|
container_name: rfsim5g-oai-cuup2
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -165,7 +165,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-cuup3:
|
oai-cuup3:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cuup3
|
container_name: rfsim5g-oai-cuup3
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -199,7 +199,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-du:
|
oai-du:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-du
|
container_name: rfsim5g-oai-du
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -230,7 +230,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-du2:
|
oai-du2:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-du2
|
container_name: rfsim5g-oai-du2
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -264,7 +264,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-du3:
|
oai-du3:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-du3
|
container_name: rfsim5g-oai-du3
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -298,7 +298,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -328,7 +328,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue2:
|
oai-nr-ue2:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue2
|
container_name: rfsim5g-oai-nr-ue2
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -358,7 +358,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue3:
|
oai-nr-ue3:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue3
|
container_name: rfsim5g-oai-nr-ue3
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -25,7 +25,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
oai-flexric:
|
nearRT-RIC:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/oai-flexric:${FLEXRIC_TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
|
||||||
container_name: oai-flexric
|
container_name: nearRT-RIC
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.70.150
|
ipv4_address: 192.168.70.150
|
||||||
@@ -13,11 +13,11 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
|
|
||||||
xapp-rc-moni:
|
xapp-rc-moni:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/oai-flexric:${FLEXRIC_TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
|
||||||
command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_rc_moni"
|
command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_rc_moni"
|
||||||
container_name: xapp-rc-moni
|
container_name: xapp-rc-moni
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-flexric
|
- nearRT-RIC
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
@@ -30,11 +30,11 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
|
|
||||||
xapp-kpm-moni:
|
xapp-kpm-moni:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/oai-flexric:${FLEXRIC_TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
|
||||||
command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_kpm_moni"
|
command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_kpm_moni"
|
||||||
container_name: xapp-kpm-moni
|
container_name: xapp-kpm-moni
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-flexric
|
- nearRT-RIC
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
@@ -47,11 +47,11 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
|
|
||||||
xapp-kpm-rc:
|
xapp-kpm-rc:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/oai-flexric:${FLEXRIC_TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
|
||||||
command: "stdbuf -o0 /usr/local/flexric/xApp/c/kpm_rc/xapp_kpm_rc"
|
command: "stdbuf -o0 /usr/local/flexric/xApp/c/kpm_rc/xapp_kpm_rc"
|
||||||
container_name: xapp-kpm-rc
|
container_name: xapp-kpm-rc
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-flexric
|
- nearRT-RIC
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
@@ -64,11 +64,11 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
|
|
||||||
xapp-gtp-mac-rlc-pdcp-moni:
|
xapp-gtp-mac-rlc-pdcp-moni:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/oai-flexric:${FLEXRIC_TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
|
||||||
command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_gtp_mac_rlc_pdcp_moni"
|
command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_gtp_mac_rlc_pdcp_moni"
|
||||||
container_name: xapp-gtp-mac-rlc-pdcp-moni
|
container_name: xapp-gtp-mac-rlc-pdcp-moni
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-flexric
|
- nearRT-RIC
|
||||||
- oai-gnb
|
- oai-gnb
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
@@ -80,8 +80,28 @@ services:
|
|||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
|
|
||||||
oai-nr-ue1:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
|
privileged: true
|
||||||
|
container_name: rfsim5g-oai-gnb
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: -E --rfsim --log_config.global_log_options level,nocolor,time
|
||||||
|
ASAN_OPTIONS: detect_leaks=0
|
||||||
|
depends_on:
|
||||||
|
- nearRT-RIC
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.70.151
|
||||||
|
volumes:
|
||||||
|
- ../../conf_files/gnb.sa.band78.106prb.rfsim.flexric.conf:/opt/oai-gnb/etc/gnb.conf
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep nr-softmodem"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
oai-nr-ue:
|
||||||
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
environment:
|
environment:
|
||||||
@@ -100,7 +120,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue2:
|
oai-nr-ue2:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: rfsim5g-oai-nr-ue2
|
container_name: rfsim5g-oai-nr-ue2
|
||||||
environment:
|
environment:
|
||||||
@@ -118,154 +138,7 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue3:
|
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
|
||||||
privileged: true
|
|
||||||
container_name: rfsim5g-oai-nr-ue3
|
|
||||||
environment:
|
|
||||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.70.154
|
name: oai-cn5g-public-net
|
||||||
volumes:
|
external: true
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
oai-nr-ue4:
|
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
|
||||||
privileged: true
|
|
||||||
container_name: rfsim5g-oai-nr-ue4
|
|
||||||
environment:
|
|
||||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.70.155
|
|
||||||
volumes:
|
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
oai-nr-ue5:
|
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
|
||||||
privileged: true
|
|
||||||
container_name: rfsim5g-oai-nr-ue5
|
|
||||||
environment:
|
|
||||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.70.156
|
|
||||||
volumes:
|
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
oai-nr-ue6:
|
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
|
||||||
privileged: true
|
|
||||||
container_name: rfsim5g-oai-nr-ue6
|
|
||||||
environment:
|
|
||||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.70.157
|
|
||||||
volumes:
|
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
oai-nr-ue7:
|
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
|
||||||
privileged: true
|
|
||||||
container_name: rfsim5g-oai-nr-ue7
|
|
||||||
environment:
|
|
||||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.70.158
|
|
||||||
volumes:
|
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
oai-nr-ue8:
|
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
|
||||||
privileged: true
|
|
||||||
container_name: rfsim5g-oai-nr-ue8
|
|
||||||
environment:
|
|
||||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.70.159
|
|
||||||
volumes:
|
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
oai-nr-ue9:
|
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
|
||||||
privileged: true
|
|
||||||
container_name: rfsim5g-oai-nr-ue9
|
|
||||||
environment:
|
|
||||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.70.160
|
|
||||||
volumes:
|
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
oai-nr-ue10:
|
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
|
||||||
privileged: true
|
|
||||||
container_name: rfsim5g-oai-nr-ue10
|
|
||||||
environment:
|
|
||||||
USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
|
|
||||||
depends_on:
|
|
||||||
- oai-gnb
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.70.161
|
|
||||||
volumes:
|
|
||||||
- ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -112,7 +112,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -103,7 +103,7 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-cucp-0:
|
oai-cucp-0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cucp-0
|
container_name: rfsim5g-oai-cucp-0
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -111,7 +111,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-cuup-0:
|
oai-cuup-0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cuup-0
|
container_name: rfsim5g-oai-cuup-0
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -139,7 +139,7 @@ services:
|
|||||||
|
|
||||||
|
|
||||||
oai-du-0:
|
oai-du-0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-du-0
|
container_name: rfsim5g-oai-du-0
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -150,7 +150,6 @@ services:
|
|||||||
--telnetsrv --telnetsrv.listenaddr 192.168.71.171
|
--telnetsrv --telnetsrv.listenaddr 192.168.71.171
|
||||||
--telnetsrv.shrmod ci
|
--telnetsrv.shrmod ci
|
||||||
--rfsimulator.serveraddr 192.168.71.190
|
--rfsimulator.serveraddr 192.168.71.190
|
||||||
--gNBs.[0].servingCellConfigCommon.[0].ra_ResponseWindow 5
|
|
||||||
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-cucp-0
|
- oai-cucp-0
|
||||||
@@ -169,7 +168,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -195,7 +194,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-cucp-1:
|
oai-cucp-1:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cucp-1
|
container_name: rfsim5g-oai-cucp-1
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -227,7 +226,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-cuup-1:
|
oai-cuup-1:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRCUUP_IMG:-oai-nr-cuup}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-cuup-1
|
container_name: rfsim5g-oai-cuup-1
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -254,7 +253,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-du-1:
|
oai-du-1:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-du-1
|
container_name: rfsim5g-oai-du-1
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -115,7 +115,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -110,7 +110,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
services:
|
||||||
|
oai-gnb:
|
||||||
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
|
container_name: rfsim5g-oai-gnb
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN # for interface bringup
|
||||||
|
- NET_RAW # for ping
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim -E
|
||||||
|
--log_config.global_log_options level,nocolor,time
|
||||||
|
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.71.140
|
||||||
|
devices:
|
||||||
|
- /dev/net/tun:/dev/net/tun
|
||||||
|
volumes:
|
||||||
|
- ../../conf_files/gnb.sa.band78.106prb.rfsim.prs.conf:/opt/oai-gnb/etc/gnb.conf
|
||||||
|
- rrc.config:/opt/oai-gnb/
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep nr-softmodem"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
oai-nr-ue:
|
||||||
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
|
container_name: rfsim5g-oai-nr-ue
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN # for interface bringup
|
||||||
|
- NET_RAW # for ping
|
||||||
|
environment:
|
||||||
|
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim -E
|
||||||
|
--reconfig-file etc/rrc/reconfig.raw --rbconfig-file etc/rrc/rbconfig.raw
|
||||||
|
--rfsimulator.serveraddr 192.168.71.140
|
||||||
|
--log_config.global_log_options level,nocolor,time
|
||||||
|
--telnetsrv --telnetsrv.listenaddr 192.168.71.150 --telnetsrv.listenport 8091
|
||||||
|
--telnetsrv.shrmod ciUE
|
||||||
|
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||||
|
devices:
|
||||||
|
- /dev/net/tun:/dev/net/tun
|
||||||
|
volumes:
|
||||||
|
- ../../conf_files/nrue.band78.106prb.prs.conf:/opt/oai-nr-ue/etc/nr-ue.conf
|
||||||
|
- rrc.config:/opt/oai-nr-ue/etc/rrc/
|
||||||
|
depends_on:
|
||||||
|
- oai-gnb
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.71.150
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep nr-uesoftmodem"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
rrc.config:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
driver: bridge
|
||||||
|
name: rfsim5g-oai-public-net
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.71.128/26
|
||||||
|
driver_opts:
|
||||||
|
com.docker.network.bridge.name: "rfsim5g-public"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
oai-nr-ue-1:
|
oai-nr-ue-1:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue-1
|
container_name: rfsim5g-oai-nr-ue-1
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -25,7 +25,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue-2:
|
oai-nr-ue-2:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue-2
|
container_name: rfsim5g-oai-nr-ue-2
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-gnb
|
container_name: rfsim5g-oai-gnb
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -25,7 +25,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -91,14 +91,15 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-vnf:
|
oai-vnf:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-vnf
|
container_name: rfsim5g-oai-vnf
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
environment:
|
environment:
|
||||||
USE_ADDITIONAL_OPTIONS: --nfapi VNF --log_config.global_log_options level,nocolor,time
|
USE_ADDITIONAL_OPTIONS: --nfapi VNF --log_config.global_log_options level,nocolor,time
|
||||||
|
--telnetsrv --telnetsrv.listenaddr 192.168.71.140 --telnetsrv.shrmod ci
|
||||||
NFAPI_TRACE_LEVEL: info
|
NFAPI_TRACE_LEVEL: info
|
||||||
ASAN_OPTIONS: detect_leaks=0
|
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-ext-dn
|
- oai-ext-dn
|
||||||
networks:
|
networks:
|
||||||
@@ -115,14 +116,14 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-pnf:
|
oai-pnf:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-pnf
|
container_name: rfsim5g-oai-pnf
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
environment:
|
environment:
|
||||||
USE_ADDITIONAL_OPTIONS: --nfapi PNF --rfsim --log_config.global_log_options level,nocolor,time
|
USE_ADDITIONAL_OPTIONS: --nfapi PNF --rfsim --log_config.global_log_options level,nocolor,time
|
||||||
NFAPI_TRACE_LEVEL: info
|
NFAPI_TRACE_LEVEL: info
|
||||||
ASAN_OPTIONS: detect_leaks=0
|
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-vnf
|
- oai-vnf
|
||||||
networks:
|
networks:
|
||||||
@@ -139,7 +140,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-nr-ue:
|
oai-nr-ue:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
|
||||||
container_name: rfsim5g-oai-nr-ue
|
container_name: rfsim5g-oai-nr-ue
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -147,7 +148,10 @@ services:
|
|||||||
- NET_ADMIN # for interface bringup
|
- NET_ADMIN # for interface bringup
|
||||||
- NET_RAW # for ping
|
- NET_RAW # for ping
|
||||||
environment:
|
environment:
|
||||||
USE_ADDITIONAL_OPTIONS: --rfsim -r 25 --numerology 0 --uicc0.imsi 208990100001100 --band 66 -C 2152680000 --CO -400000000 --ssb 48 --rfsimulator.serveraddr 192.168.71.141 --extra-pdu-id 2 --log_config.global_log_options level,nocolor,time
|
USE_ADDITIONAL_OPTIONS: --rfsim -r 25 --numerology 0 --uicc0.imsi 208990100001100 --band 66 -C 2152680000 --CO -400000000 --ssb 48
|
||||||
|
--rfsimulator.serveraddr 192.168.71.141 --extra-pdu-id 2 --log_config.global_log_options level,nocolor,time
|
||||||
|
--telnetsrv --telnetsrv.shrmod ciUE --telnetsrv.listenaddr 192.168.71.150 --telnetsrv.listenport 8091
|
||||||
|
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||||
depends_on:
|
depends_on:
|
||||||
- oai-pnf
|
- oai-pnf
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
oai-cu:
|
oai-cu:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: oai-cu
|
container_name: oai-cu
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -26,7 +26,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-du0:
|
oai-du0:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: oai-du0
|
container_name: oai-du0
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
@@ -58,7 +58,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
oai-du1:
|
oai-du1:
|
||||||
image: ${REGISTRY:-oaisoftwarealliance}/${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
container_name: oai-du1
|
container_name: oai-du1
|
||||||
cap_drop:
|
cap_drop:
|
||||||
- ALL
|
- ALL
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
services:
|
||||||
|
oai-gnb-pci0:
|
||||||
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
|
container_name: oai-gnb-pci0
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
cap_add:
|
||||||
|
- SYS_NICE
|
||||||
|
- IPC_LOCK
|
||||||
|
ulimits:
|
||||||
|
core: -1 # for core dumps
|
||||||
|
environment:
|
||||||
|
USE_B2XX: 'yes'
|
||||||
|
USE_ADDITIONAL_OPTIONS: --RUs.[0].sdr_addrs serial=30AD30F
|
||||||
|
--telnetsrv --telnetsrv.shrmod ci
|
||||||
|
--log_config.global_log_options level,nocolor,utc_time,line_num,function
|
||||||
|
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
|
||||||
|
devices:
|
||||||
|
- /dev/bus/usb/:/dev/bus/usb/
|
||||||
|
volumes:
|
||||||
|
- ../../conf_files/neighbour-config-ho.conf:/opt/oai-gnb/etc/neighbour-config-ho.conf
|
||||||
|
- ../../conf_files/gnb.sa.band77.51prb.usrpb200.n2-ho.conf:/opt/oai-gnb/etc/gnb.conf
|
||||||
|
network_mode: "host"
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "ps aux | grep -v grep | grep -c softmodem"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
oai-gnb-pci1:
|
||||||
|
image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
|
||||||
|
container_name: oai-gnb-pci1
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
cap_add:
|
||||||
|
- SYS_NICE
|
||||||
|
- IPC_LOCK
|
||||||
|
ulimits:
|
||||||
|
core: -1 # for core dumps
|
||||||
|
environment:
|
||||||
|
USE_B2XX: 'yes'
|
||||||
|
USE_ADDITIONAL_OPTIONS: --RUs.[0].sdr_addrs serial=31F8010
|
||||||
|
--gNBs.[0].nr_cellid 11111111
|
||||||
|
--gNBs.[0].gNB_ID 0xe01
|
||||||
|
--gNBs.[0].servingCellConfigCommon.[0].physCellId 1
|
||||||
|
--gNBs.[0].servingCellConfigCommon.[0].ssb_PositionsInBurst_Bitmap 2
|
||||||
|
--gNBs.[0].NETWORK_INTERFACES.GNB_IPV4_ADDRESS_FOR_NG_AMF 172.21.19.99
|
||||||
|
--gNBs.[0].NETWORK_INTERFACES.GNB_IPV4_ADDRESS_FOR_NGU 172.21.19.99
|
||||||
|
--telnetsrv --telnetsrv.shrmod ci
|
||||||
|
--log_config.global_log_options level,nocolor,utc_time,line_num,function
|
||||||
|
devices:
|
||||||
|
- /dev/bus/usb/:/dev/bus/usb/
|
||||||
|
volumes:
|
||||||
|
- ../../conf_files/neighbour-config-ho.conf:/opt/oai-gnb/etc/neighbour-config-ho.conf
|
||||||
|
- ../../conf_files/gnb.sa.band77.51prb.usrpb200.n2-ho.conf:/opt/oai-gnb/etc/gnb.conf
|
||||||
|
network_mode: "host"
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "ps aux | grep -v grep | grep -c softmodem"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user