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_oaicitest.py b/ci-scripts/cls_oaicitest.py index 623fc928c0..e97a1dd18e 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 @@ -58,6 +59,7 @@ logging.getLogger("matplotlib").setLevel(logging.WARNING) import matplotlib.pyplot as plt import numpy as np +OC_CN_PROJECT = "oaicicd-core-for-ci-ran" #----------------------------------------------------------- # OaiCiTest Class Definition #----------------------------------------------------------- @@ -231,7 +233,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 +996,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 = EPC.IperfSrvIPAddress + else: # lteboix, sabox cn_target_ip = "192.172.0.1" cn_iperf_prefix = "" @@ -1077,6 +1080,26 @@ class OaiCiTest(): self.Iperf_analyzeV2BIDIR(lock, ue.getHost(), ue.getName(), statusQueue, server_filename, client_filename) + elif self.iperf_direction == "IPERF3": + logging.debug("Iperf3 requested") + + cmd = cls_cmd.getConnection(ue.getHost()) + cmd.run(f'rm /tmp/{server_filename}', reportNonZero=False) + port = f'-p {5002+idx}' + cmd.run(f'{ue.getCmdPrefix()} iperf3 -c {cn_target_ip} {port} {iperf_opt} &> /tmp/{server_filename}', timeout=iperf_time*1.5) + cmd.close() + time.sleep(1) + cmd = cls_cmd.getConnection(ue.getHost()) + 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,6 +1239,25 @@ class OaiCiTest(): #result = re.search('iperf version 2.0.10', str(iperfStdout.strip())) #if result is not None: # dummyIperfVersion = '2.0.10' + if (re.match('OC-OAI-CN5G', EPC.Type, re.IGNORECASE)): + lOcProject = OC_CN_PROJECT + mySSH = cls_cmd.getConnection(EPC.IPAddress) + succeeded = OC.OC_login(mySSH, EPC.OCUserName, EPC.OCPassword, lOcProject) + if not succeeded: + logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m') + HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL) + HTML.CreateHtmlTabFooter(False) + return False + ret = mySSH.run('oc describe pod oai-traffic-server | grep -w "ips" -A 1 | tail -n 1 | awk \'{{print $1}}\' | sed \'s/"//g\'') + EPC.IperfSrvIPAddress = ret.stdout + if not EPC.IperfSrvIPAddress: + logging.debug('IP address of oai-traffic-server not found!') + OC.OC_logout(mySSH) + HTML.CreateHtmlTestRow(self.Type, 'KO', CONST.INVALID_PARAMETER) + HTML.CreateHtmlTabFooter(False) + raise Exception("could not obtain oai-traffic-server IP address") + return Fals + OC.OC_logout(mySSH) multi_jobs = [] ue_num = len(ues) diff --git a/ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf b/ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.dddsu.conf similarity index 99% rename from ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf rename to ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.dddsu.conf index 73ea955f63..c8c2643e50 100644 --- a/ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf +++ b/ci-scripts/conf_files/gnb.sa.band78.51prb.aw2s.dddsu.conf @@ -24,7 +24,7 @@ gNBs = pdsch_AntennaPorts_XP = 2; pusch_AntennaPorts = 2; do_CSIRS = 1; - do_SRS = 0; + do_SRS = 1; pdcch_ConfigSIB1 = ( { @@ -152,9 +152,9 @@ gNBs = # dl_UL_TransmissionPeriodicity # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10 dl_UL_TransmissionPeriodicity = 5; - nrofDownlinkSlots = 2; + nrofDownlinkSlots = 3; nrofDownlinkSymbols = 6; - nrofUplinkSlots = 2; + nrofUplinkSlots = 1; nrofUplinkSymbols = 4; ssPBCH_BlockPower = -10; @@ -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/xml_files/container_sa_aw2s_asue.xml b/ci-scripts/xml_files/container_sa_aw2s_asue.xml index 7d1709d53f..f4cc56933e 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/30Mbps/UDP)(30 sec)(multi-ue profile) + -u -b 90M -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 + + + + diff --git a/ci-scripts/yaml_files/sa_aw2s_gnb/docker-compose.yml b/ci-scripts/yaml_files/sa_aw2s_gnb/docker-compose.yml index 7468df5e62..f2747098c2 100644 --- a/ci-scripts/yaml_files/sa_aw2s_gnb/docker-compose.yml +++ b/ci-scripts/yaml_files/sa_aw2s_gnb/docker-compose.yml @@ -10,7 +10,7 @@ services: USE_VOLUMED_CONF: 'yes' USE_ADDITIONAL_OPTIONS: --sa volumes: - - ../../conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf:/opt/oai-gnb-aw2s/etc/mounted.conf + - ../../conf_files/gnb.sa.band78.51prb.aw2s.dddsu.conf:/opt/oai-gnb-aw2s/etc/mounted.conf healthcheck: test: /bin/bash -c "pgrep nr-softmodem" interval: 10s