diff --git a/ci-scripts/Jenkinsfile-GitLab-Container b/ci-scripts/Jenkinsfile-GitLab-Container
index 5a4e27ed19..cd8a50ed91 100644
--- a/ci-scripts/Jenkinsfile-GitLab-Container
+++ b/ci-scripts/Jenkinsfile-GitLab-Container
@@ -285,6 +285,29 @@ pipeline {
}
}
}
+ stage ("OAI-FLEXRIC-RAN-Integration-Test") {
+ when { expression {do5Gtest} }
+ steps {
+ script {
+ triggerSlaveJob ('OAI-FLEXRIC-RAN-Integration-Test', 'OAI-FLEXRIC-RAN-Integration-Test')
+ }
+ }
+ post {
+ always {
+ script {
+ // Using a unique variable name for each test stage to avoid overwriting on a global variable
+ // due to parallel-time concurrency
+ flexricRAN5GStatus = finalizeSlaveJob('OAI-FLEXRIC-RAN-Integration-Test')
+ }
+ }
+ failure {
+ script {
+ currentBuild.result = 'FAILURE'
+ failingStages += flexricRAN5GStatus
+ }
+ }
+ }
+ }
stage ("L2-Sim-Test-4G") {
when { expression {do4Gtest} }
steps {
diff --git a/ci-scripts/Jenkinsfile-tmp-ran b/ci-scripts/Jenkinsfile-tmp-ran
index e1593d52a4..bc8c742bb5 100644
--- a/ci-scripts/Jenkinsfile-tmp-ran
+++ b/ci-scripts/Jenkinsfile-tmp-ran
@@ -58,6 +58,8 @@ def eNB_CommitID
def eNB_AllowMergeRequestProcess = false
def eNB_TargetBranch
+def flexricOption = ""
+
pipeline {
agent {
label pythonExecutor
@@ -148,18 +150,24 @@ pipeline {
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}"
+ }
+
if (allParametersPresent) {
echo "All parameters are present"
if (eNB_AllowMergeRequestProcess) {
sh "git fetch"
sh "./ci-scripts/doGitLabMerge.sh --src-branch ${eNB_Branch} --src-commit ${eNB_CommitID} --target-branch ${eNB_TargetBranch} --target-commit latest"
- } else {
+ } else if (eNB_CommitID != 'develop') {
sh "git fetch"
sh "git checkout -f ${eNB_CommitID}"
}
} else {
- echo "Some parameters are missing"
- sh "./ci-scripts/fail.sh"
+ error "Some parameters are missing"
}
}
}
@@ -190,13 +198,13 @@ pipeline {
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'],
]) {
- sh "python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} ${mainPythonAllXmlFiles}"
+ sh "python3 main.py --mode=InitiateHtml --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} ${flexricOption} ${mainPythonAllXmlFiles}"
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
for (xmlFile in myXmlTestSuite) {
if (fileExists(xmlFile)) {
try {
timeout (time: 60, unit: 'MINUTES') {
- sh "python3 main.py --mode=TesteNB --eNBIPAddress=${params.eNB_IPAddress} --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --XMLTestFile=${xmlFile}"
+ sh "python3 main.py --mode=TesteNB --ranRepository=${eNB_Repository} --ranBranch=${eNB_Branch} --ranCommitID=${eNB_CommitID} --ranAllowMerge=${eNB_AllowMergeRequestProcess} --ranTargetBranch=${eNB_TargetBranch} ${flexricOption} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --XMLTestFile=${xmlFile}"
}
} catch (Exception e) {
currentBuild.result = 'FAILURE'
diff --git a/ci-scripts/args_parse.py b/ci-scripts/args_parse.py
index 7d753d21c7..c1a13eb9bf 100644
--- a/ci-scripts/args_parse.py
+++ b/ci-scripts/args_parse.py
@@ -264,6 +264,9 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,CONTAINERS,HELP,SCA,PHYSIM,CLUSTER):
elif re.match('^\-\-BuildId=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-BuildId=(.+)$', myArgv, re.IGNORECASE)
RAN.BuildId = matchReg.group(1)
+ elif re.match('^\-\-FlexRicTag=(.+)$', myArgv, re.IGNORECASE):
+ matchReg = re.match('^\-\-FlexRicTag=(.+)$', myArgv, re.IGNORECASE)
+ CONTAINERS.flexricTag = matchReg.group(1)
else:
HELP.GenericHelp(CONST.Version)
sys.exit('Invalid Parameter: ' + myArgv)
diff --git a/ci-scripts/cls_cluster.py b/ci-scripts/cls_cluster.py
index 503529d256..570ea52dfc 100644
--- a/ci-scripts/cls_cluster.py
+++ b/ci-scripts/cls_cluster.py
@@ -126,8 +126,6 @@ class Cluster:
self.ranAllowMerge = False
self.ranTargetBranch = ""
self.cmd = None
- self.imageToPull = ''
- self.testSvrId = None
def _recreate_entitlements(self):
# recreating entitlements, don't care if deletion fails
@@ -240,44 +238,30 @@ class Cluster:
def _undeploy_pod(self, filename):
self.cmd.run(f'oc delete -f {filename}')
- def PullClusterImage(self, HTML, RAN):
- if self.testSvrId == None: self.testSvrId = self.eNBIPAddress
- if self.imageToPull == '':
- HELP.GenericHelp(CONST.Version)
- raise ValueError('Insufficient Parameter')
- logging.debug(f'Pull OC image {self.imageToPull} to server {self.testSvrId}')
+ def PullClusterImage(self, HTML, node, images):
+ logging.debug(f'Pull OC image {images} to server {node}')
self.testCase_id = HTML.testCase_id
- cmd = cls_cmd.getConnection(self.testSvrId)
- logging.info(cmd.run('docker --version'))
- succeeded = OC_login(cmd, self.OCUserName, self.OCPassword, CI_OC_RAN_NAMESPACE)
- if not succeeded:
- logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m')
- HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
- return False
- ret = cmd.run(f'oc whoami -t | docker login -u oaicicd --password-stdin {self.OCRegistry}')
- if ret.returncode != 0:
- logging.error(f'\u001B[1m Unable to access OC project {CI_OC_RAN_NAMESPACE}\u001B[0m')
- OC_logout(cmd)
- cmd.close()
- HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
- return False
- for image in self.imageToPull:
- imagePrefix = f'{self.OCRegistry}/{CI_OC_RAN_NAMESPACE}'
- tag = cls_containerize.CreateTag(self.ranCommitID, self.ranBranch, self.ranAllowMerge)
- imageTag = f"{image}:{tag}"
- ret = cmd.run(f'docker pull {imagePrefix}/{imageTag}')
- if ret.returncode != 0:
- logging.error(f'Could not pull {image} from local registry : {self.OCRegistry}')
- OC_logout(cmd)
- cmd.close()
- HTML.CreateHtmlTestRow('msg', 'KO', CONST.ALL_PROCESSES_OK)
+ with cls_cmd.getConnection(node) as cmd:
+ succeeded = OC_login(cmd, self.OCUserName, self.OCPassword, CI_OC_RAN_NAMESPACE)
+ if not succeeded:
+ HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
return False
- cmd.run(f'docker tag {imagePrefix}/{imageTag} oai-ci/{imageTag}')
- cmd.run(f'docker rmi {imagePrefix}/{imageTag}')
- OC_logout(cmd)
- cmd.close()
- HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
- return True
+ ret = cmd.run(f'oc whoami -t | docker login -u oaicicd --password-stdin {self.OCRegistry}')
+ if ret.returncode != 0:
+ logging.error(f'cannot authenticate at registry')
+ OC_logout(cmd)
+ HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
+ return False
+ tag = cls_containerize.CreateTag(self.ranCommitID, self.ranBranch, self.ranAllowMerge)
+ registry = f'{self.OCRegistry}/{CI_OC_RAN_NAMESPACE}'
+ success, msg = cls_containerize.Containerize.Pull_Image(cmd, images, tag, registry, None, None)
+ OC_logout(cmd)
+ param = f"on node {node}"
+ if success:
+ HTML.CreateHtmlTestRowQueue(param, 'OK', [msg])
+ else:
+ HTML.CreateHtmlTestRowQueue(param, 'KO', [msg])
+ return success
def BuildClusterImage(self, HTML):
if self.ranRepository == '' or self.ranBranch == '' or self.ranCommitID == '':
diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py
index 28f1abbfac..a9c4b5be08 100644
--- a/ci-scripts/cls_containerize.py
+++ b/ci-scripts/cls_containerize.py
@@ -70,6 +70,8 @@ def CreateWorkspace(host, sourcePath, ranRepository, ranCommitID, ranTargetBranc
return ret.returncode == 0
def CreateTag(ranCommitID, ranBranch, ranAllowMerge):
+ if ranCommitID == 'develop':
+ return 'develop'
shortCommit = ranCommitID[0:8]
if ranAllowMerge:
# Allowing contributor to have a name/branchName format
@@ -159,26 +161,25 @@ def GetContainerHealth(ssh, containerName):
return False
if 'db_init' in containerName or 'db-init' in containerName: # exits with 0, there cannot be healthy
return True
- time.sleep(5)
- for _ in range(3):
+ for _ in range(8):
result = ssh.run(f'docker inspect --format="{{{{.State.Health.Status}}}}" {containerName}', silent=True)
if result.stdout == 'healthy':
return True
- time.sleep(10)
+ time.sleep(5)
return False
def ExistEnvFilePrint(ssh, wd, prompt='env vars in existing'):
- ret = ssh.run(f'cat {wd}/.env', silent=True)
+ ret = ssh.run(f'cat {wd}/.env', silent=True, reportNonZero=False)
if ret.returncode != 0:
return False
env_vars = ret.stdout.strip().splitlines()
logging.info(f'{prompt} {wd}/.env: {env_vars}')
return True
-def WriteEnvFile(ssh, services, wd, tag):
- ret = ssh.run(f'cat {wd}/.env', silent=True)
+def WriteEnvFile(ssh, services, wd, tag, flexric_tag):
+ ret = ssh.run(f'cat {wd}/.env', silent=True, reportNonZero=False)
registry = "oai-ci" # pull_images() gives us this registry path
- envs = {"REGISTRY":registry, "TAG": tag}
+ envs = {"REGISTRY":registry, "TAG": tag, "FLEXRIC_TAG": flexric_tag}
if ret.returncode == 0: # it exists, we have to update
# transforms env file to dictionary
old_envs = {}
@@ -221,7 +222,6 @@ def CopyinContainerLog(ssh, lSourcePath, yaml, containerName, filename):
remote_filename = f"{lSourcePath}/cmake_targets/log/{filename}"
ssh.run(f'docker logs {containerName} &> {remote_filename}')
local_dir = f"{os.getcwd()}/../cmake_targets/log/{yaml}"
- os.system(f'mkdir -p {local_dir}')
local_filename = f"{local_dir}/{filename}"
return ssh.copyin(remote_filename, local_filename)
@@ -334,12 +334,11 @@ class Containerize():
self.cliOptions = ''
self.imageToCopy = ''
- self.registrySvrId = ''
- self.testSvrId = ''
- self.imageToPull = []
#checkers from xml
self.ran_checkers={}
+ self.flexricTag = ''
+
#-----------------------------------------------------------
# Container management functions
#-----------------------------------------------------------
@@ -723,8 +722,8 @@ class Containerize():
HTML.CreateHtmlTabFooter(False)
return False
- def Push_Image_to_Local_Registry(self, HTML):
- lIpAddr, lSourcePath = self.GetCredentials(self.registrySvrId)
+ def Push_Image_to_Local_Registry(self, HTML, svr_id):
+ lIpAddr, lSourcePath = self.GetCredentials(svr_id)
logging.debug('Pushing images from server: ' + lIpAddr)
ssh = cls_cmd.getConnection(lIpAddr)
imagePrefix = 'porcepix.sboai.cs.eurecom.fr'
@@ -771,64 +770,66 @@ class Containerize():
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
return True
- def Pull_Image_from_Local_Registry(self, HTML):
- lIpAddr, lSourcePath = self.GetCredentials(self.testSvrId)
- logging.debug('\u001B[1m Pulling image(s) on server: ' + lIpAddr + '\u001B[0m')
- myCmd = cls_cmd.getConnection(lIpAddr)
- imagePrefix = 'porcepix.sboai.cs.eurecom.fr'
- response = myCmd.run(f'docker login -u oaicicd -p oaicicd {imagePrefix}')
- if response.returncode != 0:
- msg = 'Could not log into local registry'
- logging.error(msg)
- myCmd.close()
- HTML.CreateHtmlTestRow(msg, 'KO', CONST.ALL_PROCESSES_OK)
- return False
- pulled_images = []
- for image in self.imageToPull:
- tagToUse = CreateTag(self.ranCommitID, self.ranBranch, self.ranAllowMerge)
- imageTag = f"{image}:{tagToUse}"
- cmd = f'docker pull {imagePrefix}/{imageTag}'
- response = myCmd.run(cmd, timeout=120)
+ def Pull_Image(cmd, images, tag, registry, username, password):
+ if username is not None and password is not None:
+ logging.info(f"logging into registry {username}@{registry}")
+ response = cmd.run(f'docker login -u {username} -p {password} {registry}', silent=True, reportNonZero=False)
if response.returncode != 0:
- logging.debug(response)
- msg = f'Could not pull {image} from local registry : {imageTag}'
+ msg = f'Could not log into registry {username}@{registry}'
logging.error(msg)
- myCmd.close()
- HTML.CreateHtmlTestRow('msg', 'KO', CONST.ALL_PROCESSES_OK)
- return False
- myCmd.run(f'docker tag {imagePrefix}/{imageTag} oai-ci/{imageTag}')
- myCmd.run(f'docker rmi {imagePrefix}/{imageTag}')
- pulled_images += [f"oai-ci/{imageTag}"]
- response = myCmd.run(f'docker logout {imagePrefix}')
- if response.returncode != 0:
- msg = 'Could not log off from local registry'
- logging.error(msg)
- myCmd.close()
- HTML.CreateHtmlTestRow(msg, 'KO', CONST.ALL_PROCESSES_OK)
- return False
- myCmd.close()
- msg = "Pulled Images:\n" + '\n'.join(pulled_images)
- HTML.CreateHtmlTestRowQueue('N/A', 'OK', [msg])
- return True
-
- def Clean_Test_Server_Images(self, HTML):
- lIpAddr, lSourcePath = self.GetCredentials(self.testSvrId)
- if lIpAddr != 'none':
- logging.debug('Removing test images from server: ' + lIpAddr)
- myCmd = cls_cmd.RemoteCmd(lIpAddr)
- else:
- logging.debug('Removing test images locally')
- myCmd = cls_cmd.LocalCmd()
-
- for image in IMAGES:
- tag = CreateTag(self.ranCommitID, self.ranBranch, self.ranAllowMerge)
+ return False, msg
+ pulled_images = []
+ for image in images:
imageTag = f"{image}:{tag}"
- cmd = f'docker rmi oai-ci/{imageTag}'
- myCmd.run(cmd, reportNonZero=False)
+ response = cmd.run(f'docker pull {registry}/{imageTag}')
+ if response.returncode != 0:
+ msg = f'Could not pull {image} from local registry: {imageTag}'
+ logging.error(msg)
+ return False, msg
+ cmd.run(f'docker tag {registry}/{imageTag} oai-ci/{imageTag}')
+ cmd.run(f'docker rmi {registry}/{imageTag}')
+ pulled_images += [f"oai-ci/{imageTag}"]
+ if username is not None and password is not None:
+ response = cmd.run(f'docker logout {registry}')
+ # we have the images, if logout fails it's no problem
+ msg = "Pulled Images:\n" + '\n'.join(pulled_images)
+ return True, msg
- myCmd.close()
- HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
- return True
+ def Pull_Image_from_Registry(self, HTML, svr_id, images, tag=None, registry="porcepix.sboai.cs.eurecom.fr", username="oaicicd", password="oaicicd"):
+ lIpAddr, lSourcePath = self.GetCredentials(svr_id)
+ logging.debug('\u001B[1m Pulling image(s) on server: ' + lIpAddr + '\u001B[0m')
+ if not tag:
+ tag = CreateTag(self.ranCommitID, self.ranBranch, self.ranAllowMerge)
+ with cls_cmd.getConnection(lIpAddr) as cmd:
+ success, msg = Containerize.Pull_Image(cmd, images, tag, registry, username, password)
+ param = f"on node {lIpAddr}"
+ if success:
+ HTML.CreateHtmlTestRowQueue(param, 'OK', [msg])
+ else:
+ HTML.CreateHtmlTestRowQueue(param, 'KO', [msg])
+ return success
+
+ def Clean_Test_Server_Images(self, HTML, svr_id, images, tag=None):
+ lIpAddr, lSourcePath = self.GetCredentials(svr_id)
+ logging.debug(f'\u001B[1m Cleaning image(s) from server: {lIpAddr}\u001B[0m')
+ if not tag:
+ tag = CreateTag(self.ranCommitID, self.ranBranch, self.ranAllowMerge)
+
+ status = True
+ with cls_cmd.getConnection(lIpAddr) as myCmd:
+ removed_images = []
+ for image in images:
+ fullImage = f"oai-ci/{image}:{tag}"
+ cmd = f'docker rmi {fullImage}'
+ if myCmd.run(cmd).returncode != 0:
+ status = False
+ removed_images += [fullImage]
+
+ msg = "Removed Images:\n" + '\n'.join(removed_images)
+ s = 'OK' if status else 'KO'
+ param = f"on node {lIpAddr}"
+ HTML.CreateHtmlTestRowQueue(param, s, [msg])
+ return status
def Create_Workspace(self,HTML):
svr = self.eNB_serverId[self.eNB_instance]
@@ -845,6 +846,9 @@ class Containerize():
lIpAddr, lSourcePath = self.GetCredentials(svr)
logging.debug('\u001B[1m Deploying OAI Object on server: ' + lIpAddr + '\u001B[0m')
yaml = self.yamlPath[self.eNB_instance].strip('/')
+ # creating the log folder by default
+ local_dir = f"{os.getcwd()}/../cmake_targets/log/{yaml.split('/')[-1]}"
+ os.system(f'mkdir -p {local_dir}')
wd = f'{lSourcePath}/{yaml}'
with cls_cmd.getConnection(lIpAddr) as ssh:
@@ -856,7 +860,7 @@ class Containerize():
return False
ExistEnvFilePrint(ssh, wd)
- WriteEnvFile(ssh, services, wd, self.deploymentTag)
+ WriteEnvFile(ssh, services, wd, self.deploymentTag, self.flexricTag)
logging.info(f"will start services {services}")
status = ssh.run(f'docker compose -f {wd}/docker-compose.y*ml up -d -- {services}')
diff --git a/ci-scripts/cls_oai_html.py b/ci-scripts/cls_oai_html.py
index b2efcc66b7..8e99b20de7 100644
--- a/ci-scripts/cls_oai_html.py
+++ b/ci-scripts/cls_oai_html.py
@@ -147,7 +147,7 @@ class HTMLManagement():
self.htmlFile.write('
Commit ID | \n')
self.htmlFile.write(' ' + self.ranCommitID + ' | \n')
self.htmlFile.write(' \n')
- if self.ranAllowMerge != '':
+ if self.ranAllowMerge != '' and self.ranCommitID != 'develop':
commit_message = subprocess.check_output("git log -n1 --pretty=format:\"%s\" " + self.ranCommitID, shell=True, universal_newlines=True)
commit_message = commit_message.strip()
self.htmlFile.write(' \n')
diff --git a/ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.flexric.conf b/ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.flexric.conf
new file mode 100644
index 0000000000..8e7f52a931
--- /dev/null
+++ b/ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.flexric.conf
@@ -0,0 +1,239 @@
+Active_gNBs = ( "gnb-rfsim");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+gNBs =
+(
+ {
+ ////////// Identification parameters:
+ gNB_ID = 0xe00;
+
+ gNB_name = "gnb-rfsim";
+
+ // Tracking area code, 0x0000 and 0xfffe are reserved values
+ tracking_area_code = 1;
+
+ plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; }) });
+
+ nr_cellid = 12345678L
+
+ ////////// 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;
+ #ra_ReponseWindow
+ #1,2,4,8,10,20,40,80
+ ra_ResponseWindow = 4;
+ #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 = 3;
+ #oneHalf (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=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 = "192.168.70.132"; });
+
+ NETWORK_INTERFACES :
+ {
+ GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.151";
+ GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.151";
+ 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;
+ }
+);
+
+L1s = (
+{
+ num_cc = 1;
+ tr_n_preference = "local_mac";
+ prach_dtx_threshold = 200;
+# pucch0_dtx_threshold = 150;
+}
+);
+
+RUs = (
+ {
+ local_rf = "yes";
+ nb_tx = 1;
+ nb_rx = 1;
+ att_tx = 0;
+ att_rx = 0;
+ bands = [78];
+ max_pdschReferenceSignalPower = -27;
+ max_rxgain = 75;
+ eNB_instances = [0];
+ sf_extension = 0;
+ sdr_addrs = "serial=XXXXXXX";
+ }
+);
+
+rfsimulator: {
+ serveraddr = "server";
+};
+
+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 ="info";
+};
+
+e2_agent = {
+ near_ric_ip_addr = "192.168.70.150";
+ #sm_dir = "/path/where/the/SMs/are/located/"
+ sm_dir = "/usr/local/lib/flexric/"
+};
diff --git a/ci-scripts/main.py b/ci-scripts/main.py
index 2e595aa834..9bf196338c 100644
--- a/ci-scripts/main.py
+++ b/ci-scripts/main.py
@@ -370,26 +370,20 @@ def ExecuteActionWithParam(action):
success = SCA.CppCheckAnalysis(HTML)
elif action == 'Push_Local_Registry':
- string_field = test.findtext('registry_svr_id')
- if (string_field is not None):
- CONTAINERS.registrySvrId = string_field
- success = CONTAINERS.Push_Image_to_Local_Registry(HTML)
+ svr_id = test.findtext('svr_id')
+ success = CONTAINERS.Push_Image_to_Local_Registry(HTML, svr_id)
- elif action == 'Pull_Local_Registry':
- string_field = test.findtext('test_svr_id')
- if (string_field is not None):
- CONTAINERS.testSvrId = string_field
- CONTAINERS.imageToPull.clear()
- string_field = test.findtext('images_to_pull')
- if (string_field is not None):
- CONTAINERS.imageToPull = string_field.split()
- success = CONTAINERS.Pull_Image_from_Local_Registry(HTML)
-
- elif action == 'Clean_Test_Server_Images':
- string_field = test.findtext('test_svr_id')
- if (string_field is not None):
- CONTAINERS.testSvrId = string_field
- success = CONTAINERS.Clean_Test_Server_Images(HTML)
+ elif action == 'Pull_Local_Registry' or action == 'Clean_Test_Server_Images':
+ svr_id = test.findtext('svr_id')
+ images = test.findtext('images').split()
+ # hack: for FlexRIC, we need to overwrite the tag to use
+ tag = None
+ if len(images) == 1 and images[0] == "oai-flexric":
+ tag = CONTAINERS.flexricTag
+ if action == "Pull_Local_Registry":
+ success = CONTAINERS.Pull_Image_from_Registry(HTML, svr_id, images, tag=tag)
+ if action == "Clean_Test_Server_Images":
+ success = CONTAINERS.Clean_Test_Server_Images(HTML, svr_id, images, tag=tag)
elif action == 'Custom_Command':
node = test.findtext('node')
@@ -404,13 +398,9 @@ def ExecuteActionWithParam(action):
success = cls_oaicitest.Custom_Script(HTML, node, script, command_fail)
elif action == 'Pull_Cluster_Image':
- string_field = test.findtext('images_to_pull')
- if (string_field is not None):
- CLUSTER.imageToPull = string_field.split()
- string_field = test.findtext('test_svr_id')
- if (string_field is not None):
- CLUSTER.testSvrId = string_field
- success = CLUSTER.PullClusterImage(HTML, RAN)
+ images = test.findtext('images').split()
+ node = test.findtext('node')
+ success = CLUSTER.PullClusterImage(HTML, node, images)
else:
logging.warning(f"unknown action {action}, skip step")
@@ -634,7 +624,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
#(6 digits or less than 6 digits followed by +)
for test in exclusion_tests:
if (not re.match('^[0-9]{6}$', test) and
- not re.match('^[0-9]{1,5}\+$', test)):
+ not re.match('^[0-9]{1,5}\\+$', test)):
logging.error('exclusion test is invalidly formatted: ' + test)
sys.exit(1)
else:
@@ -645,7 +635,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
#be verbose
for test in requested_tests:
if (re.match('^[0-9]{6}$', test) or
- re.match('^[0-9]{1,5}\+$', test)):
+ re.match('^[0-9]{1,5}\\+$', test)):
logging.info('test group/case requested: ' + test)
else:
logging.error('requested test is invalidly formatted: ' + test)
diff --git a/ci-scripts/tests/pull-clean-int-registry.py b/ci-scripts/tests/pull-clean-int-registry.py
new file mode 100644
index 0000000000..d4d5b4fc0a
--- /dev/null
+++ b/ci-scripts/tests/pull-clean-int-registry.py
@@ -0,0 +1,53 @@
+import sys
+import logging
+logging.basicConfig(
+ level=logging.DEBUG,
+ stream=sys.stdout,
+ format="[%(asctime)s] %(levelname)8s: %(message)s"
+)
+import os
+os.system(f'rm -rf cmake_targets')
+os.system(f'mkdir -p cmake_targets/log')
+import unittest
+
+sys.path.append('./') # to find OAI imports below
+import cls_oai_html
+import cls_cmd
+import cls_containerize
+
+class TestDeploymentMethods(unittest.TestCase):
+ def setUp(self):
+ self.html = cls_oai_html.HTMLManagement()
+ self.html.testCaseId = "000000"
+ self.cont = cls_containerize.Containerize()
+ self.cont.eNBIPAddress = 'localhost'
+ self.cont.eNBSourceCodePath = os.getcwd()
+
+ def test_pull_clean_local_reg(self):
+ # the pull function has the authentication at the internal cluster hardcoded
+ # this is a refactoring opportunity: we should do it in a separate step
+ # and allow to have pull work with any registry
+ registry = "porcepix.sboai.cs.eurecom.fr"
+ with cls_cmd.getConnection("localhost") as cmd:
+ ret = cmd.run(f"ping -c1 -w1 {registry}")
+ if ret.returncode != 0: # could not ping once -> skip test
+ self.skipTest(f"test_pull_clean_local_reg: could not reach {registry} (run inside sboai)")
+ svr_id = '0'
+ images = ["oai-gnb"]
+ tag = "develop"
+ pull = self.cont.Pull_Image_from_Registry(self.html, svr_id, images, tag=tag)
+ clean = self.cont.Clean_Test_Server_Images(self.html, svr_id, images, tag=tag)
+ self.assertTrue(pull)
+ self.assertTrue(clean)
+
+ def test_pull_clean_docker_hub(self):
+ svr_id = '0'
+ r = "docker.io"
+ images = ["hello-world"]
+ tag = "latest"
+ pull = self.cont.Pull_Image_from_Registry(self.html, svr_id, images, tag=tag, registry=r, username=None, password=None)
+ clean = self.cont.Clean_Test_Server_Images(self.html, svr_id, images, tag=tag)
+ self.assertTrue(pull)
+ self.assertTrue(clean)
+
+if __name__ == '__main__':unittest.main()
diff --git a/ci-scripts/xml_files/container_4g_l2sim_tdd.xml b/ci-scripts/xml_files/container_4g_l2sim_tdd.xml
index 97a0610efa..6a0e5ae00f 100644
--- a/ci-scripts/xml_files/container_4g_l2sim_tdd.xml
+++ b/ci-scripts/xml_files/container_4g_l2sim_tdd.xml
@@ -44,8 +44,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb oai-lte-ue
+ 0
+ oai-enb oai-lte-ue
Create_Workspace
@@ -149,7 +149,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb oai-lte-ue
diff --git a/ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz.xml b/ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz.xml
index 9e8bb1e704..12f8f13a5b 100644
--- a/ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz.xml
+++ b/ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz.xml
@@ -52,8 +52,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb-asan oai-lte-ue-asan
+ 0
+ oai-enb-asan oai-lte-ue-asan
@@ -166,7 +166,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb-asan oai-lte-ue-asan
diff --git a/ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1.xml b/ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1.xml
index 0081f8eab9..031a308a5c 100644
--- a/ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1.xml
+++ b/ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1.xml
@@ -43,8 +43,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb-asan oai-lte-ue-asan
+ 0
+ oai-enb-asan oai-lte-ue-asan
Create_Workspace
@@ -137,7 +137,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb-asan oai-lte-ue-asan
diff --git a/ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz.xml b/ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz.xml
index 310f886497..d56aeb231e 100644
--- a/ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz.xml
+++ b/ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz.xml
@@ -47,8 +47,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb-asan oai-lte-ue-asan
+ 0
+ oai-enb-asan oai-lte-ue-asan
Create_Workspace
@@ -166,7 +166,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb-asan oai-lte-ue-asan
diff --git a/ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz.xml b/ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz.xml
index 357db604a6..e957417f1c 100644
--- a/ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz.xml
+++ b/ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz.xml
@@ -47,8 +47,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb-asan oai-lte-ue-asan
+ 0
+ oai-enb-asan oai-lte-ue-asan
Create_Workspace
@@ -166,7 +166,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb-asan oai-lte-ue-asan
diff --git a/ci-scripts/xml_files/container_4g_rfsim_fembms.xml b/ci-scripts/xml_files/container_4g_rfsim_fembms.xml
index e1484004e2..c030fbb4a4 100644
--- a/ci-scripts/xml_files/container_4g_rfsim_fembms.xml
+++ b/ci-scripts/xml_files/container_4g_rfsim_fembms.xml
@@ -40,8 +40,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb-asan oai-lte-ue-asan
+ 0
+ oai-enb-asan oai-lte-ue-asan
Create_Workspace
@@ -104,7 +104,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb-asan oai-lte-ue-asan
diff --git a/ci-scripts/xml_files/container_4g_rfsim_mbms.xml b/ci-scripts/xml_files/container_4g_rfsim_mbms.xml
index cf154b4476..34c2fc6c89 100644
--- a/ci-scripts/xml_files/container_4g_rfsim_mbms.xml
+++ b/ci-scripts/xml_files/container_4g_rfsim_mbms.xml
@@ -40,8 +40,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb-asan oai-lte-ue-asan
+ 0
+ oai-enb-asan oai-lte-ue-asan
Create_Workspace
@@ -104,7 +104,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb-asan oai-lte-ue-asan
diff --git a/ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz.xml b/ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz.xml
index 77d9f19ee9..e292958576 100644
--- a/ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz.xml
+++ b/ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz.xml
@@ -47,8 +47,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb oai-lte-ue
+ 0
+ oai-enb oai-lte-ue
Create_Workspace
@@ -159,7 +159,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb oai-lte-ue
diff --git a/ci-scripts/xml_files/container_5g_e1_rfsim.xml b/ci-scripts/xml_files/container_5g_e1_rfsim.xml
index bf4cf6ec04..8128fca08c 100644
--- a/ci-scripts/xml_files/container_5g_e1_rfsim.xml
+++ b/ci-scripts/xml_files/container_5g_e1_rfsim.xml
@@ -40,8 +40,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb oai-nr-cuup oai-nr-ue
+ 0
+ oai-gnb oai-nr-cuup oai-nr-ue
Create_Workspace
@@ -107,7 +107,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb oai-nr-cuup oai-nr-ue
diff --git a/ci-scripts/xml_files/container_5g_f1_rfsim.xml b/ci-scripts/xml_files/container_5g_f1_rfsim.xml
index 8c925cbc5f..54d2b221b2 100644
--- a/ci-scripts/xml_files/container_5g_f1_rfsim.xml
+++ b/ci-scripts/xml_files/container_5g_f1_rfsim.xml
@@ -47,8 +47,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-cuup-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-cuup-asan oai-nr-ue-asan
Create_Workspace
@@ -194,7 +194,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-cuup-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_fdd_rfsim.xml b/ci-scripts/xml_files/container_5g_fdd_rfsim.xml
index d3640da596..276bb5b9a3 100644
--- a/ci-scripts/xml_files/container_5g_fdd_rfsim.xml
+++ b/ci-scripts/xml_files/container_5g_fdd_rfsim.xml
@@ -42,8 +42,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-ue-asan
Create_Workspace
@@ -133,7 +133,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_flexric_rfsim.xml b/ci-scripts/xml_files/container_5g_flexric_rfsim.xml
new file mode 100644
index 0000000000..cc791980f0
--- /dev/null
+++ b/ci-scripts/xml_files/container_5g_flexric_rfsim.xml
@@ -0,0 +1,213 @@
+
+
+ rfsim-5gnr-flexric
+ Monolithic SA TDD gNB and FlexRic Integration
+ wrench
+ 1
+
+ 111110
+ 111111
+ 111112
+ 000001
+ 000002
+ 000003
+ 002001
+ 010000
+ 000004
+ 333333
+ 010001
+ 010002
+ 010003
+ 020005
+ 010013
+ 002006
+ 444444
+ 100002
+ 100001
+ 222221
+ 222222
+
+
+
+
+ IdleSleep
+ Sleep
+ 10
+
+
+
+ Pull_Local_Registry
+ Pull Images from Local Registry
+ 0
+ oai-gnb oai-nr-ue
+
+
+
+ Pull_Local_Registry
+ Pull Images from Local Registry
+ 0
+ oai-flexric
+
+
+
+ Clean_Test_Server_Images
+ Clean Test Images on Test Server
+ 0
+ oai-gnb oai-nr-ue
+ true
+
+
+
+ Clean_Test_Server_Images
+ Clean Test Images on Test Server
+ 0
+ oai-flexric
+ true
+
+
+
+ Custom_Command
+ Updating CN5G images
+ localhost
+ docker compose -f ../doc/tutorial_resources/oai-cn5g/docker-compose.yaml pull
+
+
+
+ Deploy_Object
+ Deploy OAI 5G CoreNetwork
+ doc/tutorial_resources/oai-cn5g
+ mysql oai-nrf oai-udr oai-udm oai-ausf oai-amf oai-smf oai-upf oai-ext-dn
+ 0
+ 0
+
+
+
+ Deploy_Object
+ Deploy OAI FlexRIC
+ ci-scripts/yaml_files/5g_rfsimulator_flexric
+ oai-flexric
+ 0
+ 0
+
+
+
+ Deploy_Object
+ Deploy OAI 5G gNB in RF sim SA
+ ci-scripts/yaml_files/5g_rfsimulator_flexric
+ oai-gnb
+ 0
+ 0
+
+
+
+ Deploy_Object
+ Deploy 2 OAI 5G NR-UEs in RF sim SA
+ ci-scripts/yaml_files/5g_rfsimulator_flexric
+ oai-nr-ue oai-nr-ue2
+ 0
+ 0
+
+
+
+ Ping
+ Ping ext-dn from both UEs
+ rfsim5g_ue rfsim5g_ue2
+ selfix selfix
+ -c 20 192.168.70.135
+ 5
+
+
+
+ Attach_UE
+ Attach OAI UE 1 and 2
+ rfsim5g_ue rfsim5g_ue2
+ selfix selfix
+
+
+
+ Detach_UE
+ Detach OAI UE 1 and 2
+ rfsim5g_ue rfsim5g_ue2
+ selfix selfix
+
+
+
+ Undeploy_Object
+ Undeploy Core Network
+ doc/tutorial_resources/oai-cn5g
+ 0
+ 0
+ true
+
+
+
+ Undeploy_Object
+ Undeploy RAN and Flexric
+ ci-scripts/yaml_files/5g_rfsimulator_flexric
+ 0
+ 0
+ true
+
+
+
+ Custom_Command
+ RC monitoring
+ localhost
+ yes
+ docker exec oai-flexric bash -c "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_rc_moni" > ../cmake_targets/log/5g_rfsimulator_flexric/rc-moni-010000.log
+
+
+
+ Custom_Command
+ KPM monitoring
+ localhost
+ yes
+ docker exec oai-flexric bash -c "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_kpm_moni" > ../cmake_targets/log/5g_rfsimulator_flexric/kpm-moni-010001.log
+
+
+
+ Custom_Command
+ KPM monitoring and RC control
+ localhost
+ yes
+ docker exec oai-flexric bash -c "stdbuf -o0 /usr/local/flexric/xApp/c/kpm_rc/xapp_kpm_rc" > ../cmake_targets/log/5g_rfsimulator_flexric/kpm_rc-010002.log
+
+
+
+ Custom_Command
+ Custom SMs monitoring
+ localhost
+ yes
+ docker exec oai-flexric bash -c "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_gtp_mac_rlc_pdcp_moni" > ../cmake_targets/log/5g_rfsimulator_flexric/sms-moni-010003.log
+
+
+
+ Custom_Command
+ Custom SMs monitoring
+ localhost
+ yes
+ docker exec oai-flexric bash -c "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_gtp_mac_rlc_pdcp_moni" > ../cmake_targets/log/5g_rfsimulator_flexric/sms-moni-010013.log
+
+
+
diff --git a/ci-scripts/xml_files/container_5g_rfsim.xml b/ci-scripts/xml_files/container_5g_rfsim.xml
index 16eacb02c5..6388a3fe3e 100644
--- a/ci-scripts/xml_files/container_5g_rfsim.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim.xml
@@ -57,8 +57,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue
+ 0
+ oai-gnb-asan oai-nr-ue
Create_Workspace
@@ -259,7 +259,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue
diff --git a/ci-scripts/xml_files/container_5g_rfsim_24prb.xml b/ci-scripts/xml_files/container_5g_rfsim_24prb.xml
index 2e3bbf1d3a..5c2a069122 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_24prb.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_24prb.xml
@@ -42,8 +42,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-ue-asan
Create_Workspace
@@ -133,7 +133,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_rfsim_2x2.xml b/ci-scripts/xml_files/container_5g_rfsim_2x2.xml
index a18928cc80..3b7a1d738e 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_2x2.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_2x2.xml
@@ -42,8 +42,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-ue-asan
Create_Workspace
@@ -133,7 +133,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml b/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml
index 10081b9606..100465614d 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml
@@ -42,8 +42,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-ue-asan
@@ -133,7 +133,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb.xml b/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb.xml
index b29be08d21..d700862689 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_fr2_32prb.xml
@@ -39,8 +39,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-ue-asan
@@ -101,7 +101,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_rfsim_ntn_geo.xml b/ci-scripts/xml_files/container_5g_rfsim_ntn_geo.xml
index 04bf430f03..5e3c4bedb5 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_ntn_geo.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_ntn_geo.xml
@@ -41,8 +41,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-ue-asan
@@ -107,7 +107,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_rfsim_sidelink.xml b/ci-scripts/xml_files/container_5g_rfsim_sidelink.xml
index d42f8851bb..133d960c3a 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_sidelink.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_sidelink.xml
@@ -39,8 +39,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-nr-ue-asan
+ 0
+ oai-nr-ue-asan
@@ -97,7 +97,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_rfsim_tdd_dora.xml b/ci-scripts/xml_files/container_5g_rfsim_tdd_dora.xml
index 35834493cc..861158c08f 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_tdd_dora.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_tdd_dora.xml
@@ -41,8 +41,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-ue-asan
@@ -116,7 +116,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml b/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml
index 38d88b7e5e..7014c54a2a 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml
@@ -42,8 +42,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-asan oai-nr-ue-asan
+ 0
+ oai-gnb-asan oai-nr-ue-asan
Create_Workspace
@@ -133,7 +133,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-asan oai-nr-ue-asan
diff --git a/ci-scripts/xml_files/container_image_build.xml b/ci-scripts/xml_files/container_image_build.xml
index 58b3c00d5e..7db63e4281 100644
--- a/ci-scripts/xml_files/container_image_build.xml
+++ b/ci-scripts/xml_files/container_image_build.xml
@@ -49,7 +49,7 @@
Push_Local_Registry
Push Images to Local Registry
- 0
+ 0
diff --git a/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1.xml b/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1.xml
index 00516269a6..01e1cfc4ed 100644
--- a/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1.xml
+++ b/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1.xml
@@ -43,8 +43,8 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
@@ -211,7 +211,8 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1.xml
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1_if4_5.xml b/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1_if4_5.xml
index 4ede8e072b..c13952094f 100644
--- a/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1_if4_5.xml
+++ b/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1_if4_5.xml
@@ -42,8 +42,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
@@ -194,7 +194,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1_no_rrc_activity.xml b/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1_no_rrc_activity.xml
index b9bc7f7a42..4bfcb02258 100644
--- a/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1_no_rrc_activity.xml
+++ b/ci-scripts/xml_files/container_lte_b200_fdd_05Mhz_tm1_no_rrc_activity.xml
@@ -42,8 +42,8 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1_rrc_inactivity_no_flexran.xm
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Custom_Command
@@ -176,7 +176,8 @@ Replaces xml_files/enb_usrp210_band7_test_05mhz_tm1_rrc_inactivity_no_flexran.xm
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1.xml b/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1.xml
index 958e0a895a..6b1afaf079 100644
--- a/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1.xml
+++ b/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1.xml
@@ -44,8 +44,8 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Custom_Command
@@ -206,7 +206,8 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1_cdrx.xml b/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1_cdrx.xml
index 60a9bd0c16..1469918617 100644
--- a/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1_cdrx.xml
+++ b/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1_cdrx.xml
@@ -43,8 +43,8 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Custom_Command
@@ -138,7 +138,8 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1_oaiue.xml b/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1_oaiue.xml
index 10cd2e89c1..f978d14cf9 100644
--- a/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1_oaiue.xml
+++ b/ci-scripts/xml_files/container_lte_b200_fdd_10Mhz_tm1_oaiue.xml
@@ -49,14 +49,14 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Pull_Local_Registry
Pull Images from Local Registry
- 1
- oai-lte-ue
+ 1
+ oai-lte-ue
Custom_Command
@@ -190,14 +190,16 @@
Clean_Test_Server_Images
true
Clean Test Images on eNB Test Server
- 0
+ 0
+ oai-enb
Clean_Test_Server_Images
true
Clean Test Images on LTE-UE Test Server
- 1
+ 1
+ oai-lte-ue
diff --git a/ci-scripts/xml_files/container_lte_b200_fdd_20Mhz_tm1.xml b/ci-scripts/xml_files/container_lte_b200_fdd_20Mhz_tm1.xml
index 510d0d3f2e..a830803f9f 100644
--- a/ci-scripts/xml_files/container_lte_b200_fdd_20Mhz_tm1.xml
+++ b/ci-scripts/xml_files/container_lte_b200_fdd_20Mhz_tm1.xml
@@ -43,8 +43,8 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Custom_Command
@@ -206,7 +206,8 @@ Replaces xml_files/enb_usrp210_band7_test_10mhz_tm1.xml
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm1.xml b/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm1.xml
index c8bcde980f..dc85ee5813 100644
--- a/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm1.xml
+++ b/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm1.xml
@@ -43,8 +43,8 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm1.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
@@ -223,7 +223,8 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm1.xml
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm1_if4_5.xml b/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm1_if4_5.xml
index 22a86d1f57..f5467c2623 100644
--- a/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm1_if4_5.xml
+++ b/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm1_if4_5.xml
@@ -41,8 +41,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
@@ -209,7 +209,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm2.xml b/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm2.xml
index 068d4521b2..1a3bfa6692 100644
--- a/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm2.xml
+++ b/ci-scripts/xml_files/container_lte_b200_tdd_05Mhz_tm2.xml
@@ -41,8 +41,8 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm2.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Custom_Command
diff --git a/ci-scripts/xml_files/container_lte_b200_tdd_10Mhz_tm1.xml b/ci-scripts/xml_files/container_lte_b200_tdd_10Mhz_tm1.xml
index 570fffef71..4d34ff1434 100644
--- a/ci-scripts/xml_files/container_lte_b200_tdd_10Mhz_tm1.xml
+++ b/ci-scripts/xml_files/container_lte_b200_tdd_10Mhz_tm1.xml
@@ -42,8 +42,8 @@ Replaces xml_files/enb_usrp210_band40_test_10mhz_tm1.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Custom_Command
@@ -214,7 +214,8 @@ Replaces xml_files/enb_usrp210_band40_test_10mhz_tm1.xml
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_tdd_20Mhz_tm1.xml b/ci-scripts/xml_files/container_lte_b200_tdd_20Mhz_tm1.xml
index 49826d782c..2620296bde 100644
--- a/ci-scripts/xml_files/container_lte_b200_tdd_20Mhz_tm1.xml
+++ b/ci-scripts/xml_files/container_lte_b200_tdd_20Mhz_tm1.xml
@@ -42,8 +42,8 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Custom_Command
@@ -212,7 +212,8 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1.xml
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_b200_tdd_20Mhz_tm1_default_scheduler.xml b/ci-scripts/xml_files/container_lte_b200_tdd_20Mhz_tm1_default_scheduler.xml
index 8e47a61a48..5dc0ab9585 100644
--- a/ci-scripts/xml_files/container_lte_b200_tdd_20Mhz_tm1_default_scheduler.xml
+++ b/ci-scripts/xml_files/container_lte_b200_tdd_20Mhz_tm1_default_scheduler.xml
@@ -42,8 +42,8 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1_default_scheduler.xml
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
@@ -217,7 +217,8 @@ Replaces xml_files/enb_usrp210_band40_test_20mhz_tm1_default_scheduler.xml
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_n3xx_tdd_2x2_tm1.xml b/ci-scripts/xml_files/container_lte_n3xx_tdd_2x2_tm1.xml
index d144448301..5234e2d35c 100644
--- a/ci-scripts/xml_files/container_lte_n3xx_tdd_2x2_tm1.xml
+++ b/ci-scripts/xml_files/container_lte_n3xx_tdd_2x2_tm1.xml
@@ -48,8 +48,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
@@ -153,7 +153,8 @@
Clean_Test_Server_Images
true
Clean Test Images
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_lte_n3xx_tdd_2x2_tm2.xml b/ci-scripts/xml_files/container_lte_n3xx_tdd_2x2_tm2.xml
index 50494d7778..a02d0c48ef 100644
--- a/ci-scripts/xml_files/container_lte_n3xx_tdd_2x2_tm2.xml
+++ b/ci-scripts/xml_files/container_lte_n3xx_tdd_2x2_tm2.xml
@@ -48,8 +48,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
@@ -153,7 +153,8 @@
Clean_Test_Server_Images
true
Clean Test Images
- 0
+ 0
+ oai-enb
diff --git a/ci-scripts/xml_files/container_nsa_b200_quectel.xml b/ci-scripts/xml_files/container_nsa_b200_quectel.xml
index c745cb90aa..7b43dc609b 100644
--- a/ci-scripts/xml_files/container_nsa_b200_quectel.xml
+++ b/ci-scripts/xml_files/container_nsa_b200_quectel.xml
@@ -57,15 +57,15 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-enb
+ 0
+ oai-enb
Pull_Local_Registry
Pull Images from Local Registry
- 1
- oai-gnb
+ 1
+ oai-gnb
@@ -252,14 +252,16 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-enb
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 1
+ 1
+ oai-gnb
diff --git a/ci-scripts/xml_files/container_sa_aerial_quectel.xml b/ci-scripts/xml_files/container_sa_aerial_quectel.xml
index 63f22af51d..643009641d 100644
--- a/ci-scripts/xml_files/container_sa_aerial_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_aerial_quectel.xml
@@ -43,8 +43,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb-aerial
+ 0
+ oai-gnb-aerial
@@ -128,7 +128,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-aerial
diff --git a/ci-scripts/xml_files/container_sa_aw2s_asue.xml b/ci-scripts/xml_files/container_sa_aw2s_asue.xml
index f023da8402..701d4c23d5 100644
--- a/ci-scripts/xml_files/container_sa_aw2s_asue.xml
+++ b/ci-scripts/xml_files/container_sa_aw2s_asue.xml
@@ -65,7 +65,8 @@
Pull_Cluster_Image
Pull Images from Cluster
oaicicd-ran
- oai-gnb-aw2s
+ oai-gnb-aw2s
+ avra
@@ -277,7 +278,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-aw2s
diff --git a/ci-scripts/xml_files/container_sa_aw2s_asue_2x2.xml b/ci-scripts/xml_files/container_sa_aw2s_asue_2x2.xml
index 514672df66..9f6a373eca 100644
--- a/ci-scripts/xml_files/container_sa_aw2s_asue_2x2.xml
+++ b/ci-scripts/xml_files/container_sa_aw2s_asue_2x2.xml
@@ -64,7 +64,8 @@
Pull_Cluster_Image
Pull Images from Cluster
oaicicd-ran
- oai-gnb-aw2s
+ oai-gnb-aw2s
+ avra
Create_Workspace
@@ -274,7 +275,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-aw2s
diff --git a/ci-scripts/xml_files/container_sa_b200_quectel.xml b/ci-scripts/xml_files/container_sa_b200_quectel.xml
index 4a4c8309a5..51d9c314b4 100644
--- a/ci-scripts/xml_files/container_sa_b200_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_b200_quectel.xml
@@ -59,8 +59,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb
+ 0
+ oai-gnb
@@ -220,7 +220,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb
diff --git a/ci-scripts/xml_files/container_sa_e1_b200_quectel.xml b/ci-scripts/xml_files/container_sa_e1_b200_quectel.xml
index 563167a2dd..f93da0e890 100644
--- a/ci-scripts/xml_files/container_sa_e1_b200_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_e1_b200_quectel.xml
@@ -56,8 +56,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb oai-nr-cuup
+ 0
+ oai-gnb oai-nr-cuup
@@ -218,7 +218,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb oai-nr-cuup
diff --git a/ci-scripts/xml_files/container_sa_f1_b200_quectel.xml b/ci-scripts/xml_files/container_sa_f1_b200_quectel.xml
index e03180e236..82f3cc84e5 100644
--- a/ci-scripts/xml_files/container_sa_f1_b200_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_f1_b200_quectel.xml
@@ -64,8 +64,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb
+ 0
+ oai-gnb
@@ -251,7 +251,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb
diff --git a/ci-scripts/xml_files/container_sa_fhi72_vvdn_up2.xml b/ci-scripts/xml_files/container_sa_fhi72_vvdn_up2.xml
index 215fe3ea26..927fe1a3e7 100644
--- a/ci-scripts/xml_files/container_sa_fhi72_vvdn_up2.xml
+++ b/ci-scripts/xml_files/container_sa_fhi72_vvdn_up2.xml
@@ -56,7 +56,8 @@
Pull_Cluster_Image
Pull Images from Cluster
oaicicd-ran
- oai-gnb-fhi72
+ oai-gnb-fhi72
+ cacofonix
Create_Workspace
@@ -153,7 +154,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb-fhi72
diff --git a/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_quectel.xml b/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_quectel.xml
index 214991e117..3fd9c83522 100644
--- a/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_quectel.xml
@@ -46,8 +46,8 @@
Pull_Cluster_Image
Pull Images from Cluster
- oai-gnb
- matix
+ oai-gnb
+ matix
@@ -156,7 +156,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb
diff --git a/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_quectel.xml b/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_quectel.xml
index c94c30a7b2..d4d7568ec4 100644
--- a/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_quectel.xml
@@ -46,8 +46,8 @@
Pull_Cluster_Image
Pull Images from Cluster
- oai-gnb
- matix
+ oai-gnb
+ matix
@@ -156,7 +156,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb
diff --git a/ci-scripts/xml_files/container_sa_n310_4X4_60MHz_quectel.xml b/ci-scripts/xml_files/container_sa_n310_4X4_60MHz_quectel.xml
index 0ffe3044b6..b89891f496 100644
--- a/ci-scripts/xml_files/container_sa_n310_4X4_60MHz_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_n310_4X4_60MHz_quectel.xml
@@ -46,8 +46,8 @@
Pull_Cluster_Image
Pull Images from Cluster
- oai-gnb
- matix
+ oai-gnb
+ matix
@@ -156,7 +156,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb
diff --git a/ci-scripts/xml_files/container_sa_n310_nrue.xml b/ci-scripts/xml_files/container_sa_n310_nrue.xml
index a358bbf5f8..e1e79ccec9 100644
--- a/ci-scripts/xml_files/container_sa_n310_nrue.xml
+++ b/ci-scripts/xml_files/container_sa_n310_nrue.xml
@@ -44,15 +44,15 @@
Pull_Cluster_Image
Pull Images from Cluster
- oai-gnb
- avra
+ oai-gnb
+ avra
Pull_Cluster_Image
Pull Images from Cluster
- oai-nr-ue
- caracal
+ oai-nr-ue
+ caracal
@@ -163,14 +163,16 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 1
+ 1
+ oai-nr-ue
diff --git a/ci-scripts/xml_files/container_sa_sc_b200_quectel.xml b/ci-scripts/xml_files/container_sa_sc_b200_quectel.xml
index d2bfaa02d4..a8515f3ec0 100644
--- a/ci-scripts/xml_files/container_sa_sc_b200_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_sc_b200_quectel.xml
@@ -53,8 +53,8 @@
Pull_Local_Registry
Pull Images from Local Registry
- 0
- oai-gnb
+ 0
+ oai-gnb
@@ -214,7 +214,8 @@
Clean_Test_Server_Images
true
Clean Test Images on Test Server
- 0
+ 0
+ oai-gnb
diff --git a/ci-scripts/yaml_files/5g_rfsimulator_flexric/conf/flexric.conf b/ci-scripts/yaml_files/5g_rfsimulator_flexric/conf/flexric.conf
new file mode 100644
index 0000000000..5ffbf3d47f
--- /dev/null
+++ b/ci-scripts/yaml_files/5g_rfsimulator_flexric/conf/flexric.conf
@@ -0,0 +1,5 @@
+[NEAR-RIC]
+NEAR_RIC_IP = 192.168.70.150
+[XAPP]
+DB_PATH = /flexric/db/
+DB_NAME = xapp_rnis_db
diff --git a/ci-scripts/yaml_files/5g_rfsimulator_flexric/docker-compose.yml b/ci-scripts/yaml_files/5g_rfsimulator_flexric/docker-compose.yml
new file mode 100644
index 0000000000..9afdd02b60
--- /dev/null
+++ b/ci-scripts/yaml_files/5g_rfsimulator_flexric/docker-compose.yml
@@ -0,0 +1,81 @@
+services:
+ oai-flexric:
+ image: ${REGISTRY:-oaisoftwarealliance}/oai-flexric:${FLEXRIC_TAG:-develop}
+ container_name: oai-flexric
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.150
+ volumes:
+ - ./conf/flexric.conf:/usr/local/etc/flexric/flexric.conf
+ - sharedXappLibs:/usr/local/lib/flexric/
+ healthcheck:
+ test: /bin/bash -c "pgrep nearRT-RIC"
+ interval: 10s
+ timeout: 5s
+
+ oai-gnb:
+ 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:
+ - oai-flexric
+ 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
+ - sharedXappLibs:/usr/local/lib/flexric/
+ 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
+ container_name: rfsim5g-oai-nr-ue
+ environment:
+ USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000003 --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.152
+ 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-ue2:
+ image: ${REGISTRY:-oaisoftwarealliance}/${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
+ privileged: true
+ container_name: rfsim5g-oai-nr-ue2
+ 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.153
+ 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
+
+volumes:
+ sharedXappLibs:
+
+networks:
+ public_net:
+ name: oai-cn5g-public-net
+ external: true
diff --git a/doc/TESTBenches.md b/doc/TESTBenches.md
index c41657538f..57606548e7 100644
--- a/doc/TESTBenches.md
+++ b/doc/TESTBenches.md
@@ -128,6 +128,9 @@ information on how the images are built.
- [OAI-CN5G-COTS-UE-Test](https://jenkins-oai.eurecom.fr/job/OAI-CN5G-COTS-UE-Test/)
~5G-NR
- using 5GC bench (resources `CI-Cetautomatix-OC-oaicicd-session`, `CI-Dogmatix-CN5G-gNB`): Attach/Detach of UE with multiple PDU sessions
+- [OAI-FLEXRIC-RAN-Integration-Test](https://jenkins-oai.eurecom.fr/job/OAI-FLEXRIC-RAN-Integration-Test/) ~5G-NR
+ - selfix (gNB, nrUE, OAI 5GC, FlexRIC)
+ - uses RFsimulator, tests FlexRIC/E2 interface and xApps
- [RAN-gNB-N300-Timing-Phytest-LDPC](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-gNB-N300-Timing-Phytest-LDPC/)
~5G-NR
- caracal + N310