diff --git a/ci-scripts/ci_ueinfra.yaml b/ci-scripts/ci_ueinfra.yaml index 52049f58c1..cb6f500628 100644 --- a/ci-scripts/ci_ueinfra.yaml +++ b/ci-scripts/ci_ueinfra.yaml @@ -49,7 +49,7 @@ adb_ue_2: amarisoft_ue: Host: amariue - InitScript: /root/NV18-06-2022/lteue-linux-2023-03-17/lteue /root/oaicicd/ran_sa_aw2s_asue/aw2s-multi-20897.cfg & + InitScript: /root/NV18-06-2022/lteue-linux-2023-03-17/lteue /root/oaicicd/ran_sa_aw2s_asue/aw2s-multi-20897-2x2.cfg & TermScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"quit"}' amarisoft_ue_1: Host: amariue diff --git a/ci-scripts/cls_cluster.py b/ci-scripts/cls_cluster.py index 648d132b9e..b075ea3a1c 100644 --- a/ci-scripts/cls_cluster.py +++ b/ci-scripts/cls_cluster.py @@ -42,7 +42,8 @@ IMAGE_REGISTRY_SERVICE_NAME = "image-registry.openshift-image-registry.svc" NAMESPACE = "oaicicd-ran" OCUrl = "https://api.oai.cs.eurecom.fr:6443" OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/" - +CI_OC_RAN_NAMESPACE = "oaicicd-ran" +CI_OC_CORE_NAMESPACE = "oaicicd-core-for-ci-ran" def OC_login(cmd, ocUserName, ocPassword, ocProjectName): if ocUserName == '' or ocPassword == '' or ocProjectName == '': @@ -198,23 +199,22 @@ class Cluster: HELP.GenericHelp(CONST.Version) HELP.EPCSrvHelp(self.imageToPull) sys.exit('Insufficient eNB Parameters') - lIpAddr = self.eNBIPAddress self.testCase_id = HTML.testCase_id - cmd = cls_cmd.getConnection(lIpAddr) - succeeded = OC_login(cmd, self.OCUserName, self.OCPassword, self.OCProjectName) + cmd = cls_cmd.getConnection(self.eNBIPAddress) + 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 {ocProjectName}\u001B[0m') + 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}{self.OCProjectName}' + imagePrefix = f'{self.OCRegistry}{CI_OC_RAN_NAMESPACE}' imageTag = cls_containerize.ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge) ret = cmd.run(f'docker pull {imagePrefix}/{imageTag}') if ret.returncode != 0: diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py index 8c684a62d8..6b5e4e50af 100644 --- a/ci-scripts/cls_containerize.py +++ b/ci-scripts/cls_containerize.py @@ -800,7 +800,7 @@ class Containerize(): logging.debug('Removing test images locally') myCmd = cls_cmd.LocalCmd() - imageNames = ['oai-enb', 'oai-gnb', 'oai-lte-ue', 'oai-nr-ue', 'oai-lte-ru', 'oai-nr-cuup'] + imageNames = ['oai-enb', 'oai-gnb', 'oai-lte-ue', 'oai-nr-ue', 'oai-lte-ru', 'oai-nr-cuup', 'oai-gnb-aw2s'] for image in imageNames: imageTag = ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge) cmd = f'docker rmi oai-ci/{imageTag}' diff --git a/ci-scripts/cls_oaicitest.py b/ci-scripts/cls_oaicitest.py index 623fc928c0..8166c50697 100644 --- a/ci-scripts/cls_oaicitest.py +++ b/ci-scripts/cls_oaicitest.py @@ -49,6 +49,7 @@ import concurrent.futures #import our libs import helpreadme as HELP import constants as CONST +import cls_cluster as OC import sshconnection import cls_module_ue @@ -231,7 +232,6 @@ class OaiCiTest(): [f.result() for f in futures] HTML.CreateHtmlTestRowQueue('N/A', 'OK', messages) - def InitializeOAIUE(self,HTML,RAN,EPC,CONTAINERS): if self.UEIPAddress == '' or self.UEUserName == '' or self.UEPassword == '' or self.UESourceCodePath == '': HELP.GenericHelp(CONST.Version) @@ -995,7 +995,9 @@ class OaiCiTest(): cn_target_ip = result.group('trf_ip_addr') SSH.close() cn_iperf_prefix = "docker exec prod-trf-gen" # -w /iperf-2.0.13 necessary? - else: # ltebox, sabox + if (re.match('OC-OAI-CN5G', EPC.Type, re.IGNORECASE)): + cn_target_ip = "172.21.6.102" + else: # lteboix, sabox cn_target_ip = "192.172.0.1" cn_iperf_prefix = "" @@ -1077,6 +1079,20 @@ class OaiCiTest(): self.Iperf_analyzeV2BIDIR(lock, ue.getHost(), ue.getName(), statusQueue, server_filename, client_filename) + elif self.iperf_direction == "IPERF3": + cmd = cls_cmd.getConnection(ue.getHost()) + cmd.run(f'rm /tmp/{server_filename}', reportNonZero=False) + port = f'{5002+idx}' + cmd.run(f'{ue.getCmdPrefix()} iperf3 -c {cn_target_ip} -p {port} {iperf_opt} --get-server-output &> /tmp/{server_filename}', timeout=iperf_time*1.5) + cmd.copyin(f'/tmp/{server_filename}', server_filename) + cmd.close() + if udpIperf: + self.Iperf_analyzeV2Server(lock, ue.getIP(), ue.getName(), statusQueue, iperf_opt, server_filename, 1) + else: + cmd = cls_cmd.getConnection(EPC.IPAddress) + self.Iperf_analyzeV2TCPOutput(lock, ue.getIP(), ue.getName(), statusQueue, iperf_opt, EPC, cmd, f'/tmp/{server_filename}') + cmd.close() + else : raise Exception("Incorrect or missing IPERF direction in XML") @@ -1216,7 +1232,6 @@ class OaiCiTest(): #result = re.search('iperf version 2.0.10', str(iperfStdout.strip())) #if result is not None: # dummyIperfVersion = '2.0.10' - multi_jobs = [] ue_num = len(ues) i = 0 diff --git a/ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf b/ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf index 73ea955f63..5c37a2a413 100644 --- a/ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf +++ b/ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf @@ -200,7 +200,7 @@ MACRLCs = ( pusch_TargetSNRx10 = 200; pucch_TargetSNRx10 = 200; ulsch_max_frame_inactivity = 10; - ul_max_mcs = 15; + ul_max_mcs = 28; } ); diff --git a/ci-scripts/epc.py b/ci-scripts/epc.py index f3f23f198c..30a9fc87a4 100644 --- a/ci-scripts/epc.py +++ b/ci-scripts/epc.py @@ -75,7 +75,6 @@ class EPCManagement(): self.OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/" self.OCUserName = '' self.OCPassword = '' - self.OCProjectName = '' self.imageToPull = '' self.eNBSourceCodePath = '' @@ -240,9 +239,9 @@ class EPCManagement(): HTML.CreateHtmlTestRow(self.Type, 'OK', CONST.ALL_PROCESSES_OK) def Initialize5GCN(self, HTML): - if self.IPAddress == '' or self.UserName == '' or self.Password == '' or self.SourceCodePath == '' or self.Type == '': + if self.IPAddress == '' or self.UserName == '' or self.Password == '' or self.Type == '': HELP.GenericHelp(CONST.Version) - HELP.EPCSrvHelp(self.IPAddress, self.UserName, self.Password, self.SourceCodePath, self.Type) + HELP.EPCSrvHelp(self.IPAddress, self.UserName, self.Password, self.Type) sys.exit('Insufficient EPC Parameters') mySSH = cls_cmd.getConnection(self.IPAddress) html_cell = '' @@ -299,8 +298,8 @@ class EPCManagement(): imageNames = ["oai-nrf", "oai-amf", "oai-smf", "oai-spgwu-tiny", "oai-ausf", "oai-udm", "oai-udr", "mysql","oai-traffic-server"] logging.debug('Deploying OAI CN5G on Openshift Cluster') lIpAddr = self.IPAddress - lSourcePath = self.SourceCodePath - succeeded = OC.OC_login(mySSH, self.OCUserName, self.OCPassword, self.OCProjectName) + lSourcePath = "/opt/oai-cn5g-fed-develop-2023-04-28-20897" + succeeded = OC.OC_login(mySSH, self.OCUserName, self.OCPassword, OC.CI_OC_CORE_NAMESPACE) if not succeeded: logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m') HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL) @@ -599,7 +598,7 @@ class EPCManagement(): mySSH.run(f'rm -Rf {lSourcePath}/logs') mySSH.run(f'mkdir -p {lSourcePath}/logs') logging.debug('OC OAI CN5G - Collecting Log files to workspace') - succeeded = OC.OC_login(mySSH, self.OCUserName, self.OCPassword, self.OCProjectName) + succeeded = OC.OC_login(mySSH, self.OCUserName, self.OCPassword, OC.CI_OC_CORE_NAMESPACE) if not succeeded: logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m') HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL) @@ -618,7 +617,7 @@ class EPCManagement(): mySSH.run(f'cd {lSourcePath}/logs && zip -r -qq test_logs_CN.zip *.log') mySSH.copyin(f'{lSourcePath}/logs/test_logs_CN.zip','test_logs_CN.zip') ret = mySSH.run(f'oc get pods', silent=True) - res = re.search('No resources found in oaicicd-ran namespace.', ret.stdout) + res = re.search(f'No resources found in {OC.CI_OC_CORE_NAMESPACE} namespace.', ret.stdout) if res is not None: logging.debug('OC OAI CN5G components uninstalled') message = 'OC OAI CN5G components uninstalled' diff --git a/ci-scripts/xml_files/container_sa_aw2s_asue.xml b/ci-scripts/xml_files/container_sa_aw2s_asue.xml index 7d1709d53f..7959718eb0 100644 --- a/ci-scripts/xml_files/container_sa_aw2s_asue.xml +++ b/ci-scripts/xml_files/container_sa_aw2s_asue.xml @@ -30,8 +30,14 @@ 001000 020000 002000 + 002001 002002 + 002003 + 002004 + 002005 000100 + 000010 + 000020 000200 003000 004000 @@ -43,6 +49,7 @@ Pull_Cluster_Image Pull Images from Cluster + oaicicd-ran oai-gnb-aw2s @@ -60,7 +67,7 @@ amarisoft_ue - + Attach_UE Attach UE amarisoft_ue_1 @@ -72,28 +79,68 @@ amarisoft_ue_2 + + Attach_UE + Attach UE + amarisoft_ue_3 + + + + Attach_UE + Attach UE + amarisoft_ue_4 + + + + Attach_UE + Attach UE + amarisoft_ue_5 + + + + Iperf + iperf (DL/20Mbps/UDP)(30 sec)(multi-ue profile) + -u -b 60M -t 30 -i 1 -R + IPERF3 + amarisoft_ue_1 amarisoft_ue_2 amarisoft_ue_3 + 25 + 80 + balanced + + + + Iperf + iperf (UL/5Mbps/UDP)(30 sec)(multi-ue profile) + -u -b 15M -t 30 -i 1 + IPERF3 + amarisoft_ue_1 amarisoft_ue_2 amarisoft_ue_3 + 25 + 80 + balanced + + Ping - Ping: 20pings in 20sec - amarisoft_ue_1 amarisoft_ue_2 + Ping: 20pings in 20sec, multi-ue + amarisoft_ue_1 amarisoft_ue_2 amarisoft_ue_3 amarisoft_ue_4 amarisoft_ue_5 -c 20 1 - 15 + 25 Ping - Ping: 100pings in 20sec - amarisoft_ue_1 amarisoft_ue_2 + Ping: 100pings in 20sec, multi-ue + amarisoft_ue_1 amarisoft_ue_2 amarisoft_ue_3 amarisoft_ue_4 amarisoft_ue_5 -c 100 -i 0.2 1 - 15 + 30 Detach_UE Detach UE - amarisoft_ue_1 amarisoft_ue_2 + amarisoft_ue_1 amarisoft_ue_2 amarisoft_ue_3 amarisoft_ue_4 amarisoft_ue_5 @@ -119,4 +166,3 @@ - diff --git a/ci-scripts/xml_files/container_sa_aw2s_asue_cleanup.xml b/ci-scripts/xml_files/container_sa_aw2s_asue_cleanup.xml new file mode 100644 index 0000000000..8c8daf9e04 --- /dev/null +++ b/ci-scripts/xml_files/container_sa_aw2s_asue_cleanup.xml @@ -0,0 +1,46 @@ + + + test-aw2s-cleanup + CleanUp AW2S ASUE + trash + + 111111 + 222222 + + + + + Clean_Test_Server_Images + Clean Test Images on Test Server + 0 + + + + Terminate_UE + Terminate UE + amarisoft_ue + + + +