diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py index f0503c0160..db34e38feb 100644 --- a/ci-scripts/cls_containerize.py +++ b/ci-scripts/cls_containerize.py @@ -412,10 +412,10 @@ class Containerize(): elif image != 'ran-build': cmd.run(f'sed -i -e "s#ran-build:latest#ran-build:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}') if image == 'oai-gnb-aerial': - cmd.run('cp -f /opt/nvidia-ipc/nvipc_src.2023.11.28.tar.gz .') + cmd.run('cp -f /opt/nvidia-ipc/nvipc_src.2024.05.23.tar.gz .') ret = cmd.run(f'{self.cli} build {self.cliBuildOptions} --target {image} --tag {name}:{imageTag} --file docker/Dockerfile.{pattern}{self.dockerfileprefix} {option} . > cmake_targets/log/{name}.log 2>&1', timeout=1200) if image == 'oai-gnb-aerial': - cmd.run('rm -f nvipc_src.2023.11.28.tar.gz') + cmd.run('rm -f nvipc_src.2024.05.23.tar.gz') if image == 'ran-build' and ret.returncode == 0: cmd.run(f"docker run --name test-log -d {name}:{imageTag} /bin/true") cmd.run(f"docker cp test-log:/oai-ran/cmake_targets/log/ cmake_targets/log/{name}/") diff --git a/ci-scripts/conf_files/gnb-vnf.sa.band78.273prb.aerial.conf b/ci-scripts/conf_files/gnb-vnf.sa.band78.273prb.aerial.conf index dd8d3d80d1..6e8e8f574c 100644 --- a/ci-scripts/conf_files/gnb-vnf.sa.band78.273prb.aerial.conf +++ b/ci-scripts/conf_files/gnb-vnf.sa.band78.273prb.aerial.conf @@ -195,8 +195,8 @@ gNBs = NETWORK_INTERFACES : { - GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.131"; - GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.131"; + GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.130"; + GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.130"; GNB_PORT_FOR_S1U = 2152; # Spec 2152 }; diff --git a/ci-scripts/yaml_files/sa_gnb_aerial/aerial_l1_entrypoint.sh b/ci-scripts/yaml_files/sa_gnb_aerial/aerial_l1_entrypoint.sh index 25ba483694..f7d0cee7cd 100755 --- a/ci-scripts/yaml_files/sa_gnb_aerial/aerial_l1_entrypoint.sh +++ b/ci-scripts/yaml_files/sa_gnb_aerial/aerial_l1_entrypoint.sh @@ -3,13 +3,10 @@ # Check if cuBB_SDK is defined, if not, use default path cuBB_Path="${cuBB_SDK:-/opt/nvidia/cuBB}" -# Run gdrcopy insmod -cd "$cuBB_Path"/cuPHY-CP/external/gdrcopy/ || exit 1 - -./insmod.sh cd "$cuBB_Path" || exit 1 # Add gdrcopy to LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/opt/mellanox/dpdk/lib/x86_64-linux-gnu:/opt/mellanox/doca/lib/x86_64-linux-gnu:/opt/nvidia/cuBB/cuPHY-CP/external/gdrcopy/build/x86_64/ +export LD_LIBRARY_PATH=$LD_LIBRART_PATH:"$cuBB_Path/gpu-dpdk/build/install/lib/x86_64-linux-gnu:$cuBB_Path/build/cuPHY-CP/cuphydriver/src" # Restart MPS # Export variables @@ -21,17 +18,18 @@ export CUDA_MPS_LOG_DIRECTORY=/var echo quit | nvidia-cuda-mps-control # Start MPS -nvidia-cuda-mps-control -d -echo start_server -uid 0 | nvidia-cuda-mps-control +sudo -E nvidia-cuda-mps-control -d +sudo -E echo start_server -uid 0 | sudo -E nvidia-cuda-mps-control # Start cuphycontroller_scf # Check if an argument is provided if [ $# -eq 0 ]; then # No argument provided, use default value - argument="P5G_SCF_FXN" + argument="P5G_FXN" else # Argument provided, use it argument="$1" fi -"$cuBB_Path"/build/cuPHY-CP/cuphycontroller/examples/cuphycontroller_scf "$argument" \ No newline at end of file +sudo -E "$cuBB_Path"/build/cuPHY-CP/cuphycontroller/examples/cuphycontroller_scf "$argument" +sudo -E ./build/cuPHY-CP/gt_common_libs/nvIPC/tests/pcap/pcap_collect diff --git a/ci-scripts/yaml_files/sa_gnb_aerial/docker-compose.yaml b/ci-scripts/yaml_files/sa_gnb_aerial/docker-compose.yaml index 0391b39142..d8f98ebc55 100644 --- a/ci-scripts/yaml_files/sa_gnb_aerial/docker-compose.yaml +++ b/ci-scripts/yaml_files/sa_gnb_aerial/docker-compose.yaml @@ -23,10 +23,10 @@ services: - ../../../cmake_targets/share:/opt/cuBB/share userns_mode: host ipc: "shareable" - image: cubb-build:23-2 + image: cubb-build:24-1 environment: - cuBB_SDK=/opt/nvidia/cuBB - command: bash -c " rm -rf /tmp/phy.log && chmod +x /opt/nvidia/cuBB/aerial_l1_entrypoint.sh && /opt/nvidia/cuBB/aerial_l1_entrypoint.sh" + command: bash -c "sudo rm -rf /tmp/phy.log && sudo chmod +x /opt/nvidia/cuBB/aerial_l1_entrypoint.sh && /opt/nvidia/cuBB/aerial_l1_entrypoint.sh" healthcheck: test: ["CMD-SHELL",'grep -q "L1 is ready!" /tmp/phy.log && echo 0 || echo 1'] interval: 20s diff --git a/doc/TESTBenches.md b/doc/TESTBenches.md index 028736d195..c9453b10e0 100644 --- a/doc/TESTBenches.md +++ b/doc/TESTBenches.md @@ -22,7 +22,7 @@ | nokiabox | 172.21.19.39 | _None_ | gNB (Nokia), 5GC | _Nokia RF integrated_ | | avra | 172.21.16.124 | CI-Avra-Usage | gNB (n78) | AW2S Jaguar (192.168.80.239) | | orion | 172.21.16.134 | CI-Orion-Build-Sanity-Check-Deploy-Test, CI-Orion-DsTester-Deploy-Test | Build | | -| aerial2 | 172.21.16.131 | CI-Aerial2-Usage | gNB (PNF/Nvidia CUBB + VNF) | Foxconn RU, _Nvidia Aerial SDK integrated_ | +| aerial1 | 172.21.16.130 | CI-Aerial2-Usage | gNB (PNF/Nvidia CUBB + VNF) | Foxconn RU, _Nvidia Aerial SDK integrated_ | | sphex | 172.21.17.54 | CI-Sphex-Usage | COTS UE | Quectel RM500Q | | matix | 172.21.19.58 | CI-Matix-Usage | gNB (n77) | N310 | @@ -193,7 +193,7 @@ information on how the images are built. - OpenShift cluster for CN deployment and container images for gNB and UE deployment - [RAN-SA-AERIAL-CN5G](https://jenkins-oai.eurecom.fr/job/RAN-SA-AERIAL-CN5G/) ~5G-NR - - 5G-NR SA test setup: OAI VNF + PNF/NVIDIA CUBB on Aerial2 (U22) + Foxconn RU, sphex + COTS UE (Quectel RM500Q), OAI CN5G + - 5G-NR SA test setup: OAI VNF + PNF/NVIDIA CUBB on Aerial1 (U22) + Foxconn RU, sphex + COTS UE (Quectel RM500Q), OAI CN5G - container images for gNB deployment - [RAN-SA-2x2-Module-CN5G](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-2x2-Module-CN5G/) ~5G-NR diff --git a/docker/Dockerfile.gNB.aerial.ubuntu20 b/docker/Dockerfile.gNB.aerial.ubuntu20 index 1fa9909b90..3984e236cb 100644 --- a/docker/Dockerfile.gNB.aerial.ubuntu20 +++ b/docker/Dockerfile.gNB.aerial.ubuntu20 @@ -47,8 +47,6 @@ COPY . . RUN /bin/sh oaienv && \ tar -xvzf nvipc_src.*.tar.gz && \ cd nvipc_src.* && \ - git init && \ - git apply ../cmake_targets/tools/install_libraries_to_system.patch --verbose && \ rm -rf build && mkdir build && cd build && \ cmake .. -DNVIPC_DPDK_ENABLE=OFF -DNVIPC_DOCA_ENABLE=OFF -DNVIPC_CUDA_ENABLE=OFF -DENABLE_SLT_RSP=ON && \ make -j && make install @@ -79,6 +77,7 @@ RUN apt-get update && \ iproute2 \ iputils-ping \ gdb \ + moreutils \ libusb-1.0-0 && \ rm -rf /var/lib/apt/lists/* diff --git a/docker/Dockerfile.gNB.aerial.ubuntu20.sanitize-address b/docker/Dockerfile.gNB.aerial.ubuntu20.sanitize-address index 60565a5429..147d7231a4 100644 --- a/docker/Dockerfile.gNB.aerial.ubuntu20.sanitize-address +++ b/docker/Dockerfile.gNB.aerial.ubuntu20.sanitize-address @@ -47,8 +47,6 @@ COPY . . RUN /bin/sh oaienv && \ tar -xvzf nvipc_src.*.tar.gz && \ cd nvipc_src.* && \ - git init && \ - git apply ../cmake_targets/tools/install_libraries_to_system.patch --verbose && \ rm -rf build && mkdir build && cd build && \ cmake .. -DNVIPC_DPDK_ENABLE=OFF -DNVIPC_DOCA_ENABLE=OFF -DNVIPC_CUDA_ENABLE=OFF -DENABLE_SLT_RSP=ON && \ make -j && make install diff --git a/nfapi/oai_integration/aerial/fapi_vnf_p5.c b/nfapi/oai_integration/aerial/fapi_vnf_p5.c index 472487ae2f..90e584d33d 100644 --- a/nfapi/oai_integration/aerial/fapi_vnf_p5.c +++ b/nfapi/oai_integration/aerial/fapi_vnf_p5.c @@ -57,10 +57,10 @@ void *aerial_vnf_nr_p7_thread_start(void *ptr) int s; cpu_set_t cpuset; - CPU_SET(8, &cpuset); - s = pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); - if (s != 0) - printf("failed to set afinity\n"); +// CPU_SET(8, &cpuset); +// s = pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); +// if (s != 0) +// printf("failed to set afinity\n"); pthread_attr_t ptAttr; if (pthread_attr_setschedpolicy(&ptAttr, SCHED_RR) != 0) { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-vnf.sa.band78.273prb.aerial.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-vnf.sa.band78.273prb.aerial.conf index b3d7171784..989cf66829 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-vnf.sa.band78.273prb.aerial.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-vnf.sa.band78.273prb.aerial.conf @@ -4,6 +4,7 @@ Asn1_verbosity = "none"; sa = 1; nfapi = "AERIAL"; +pdcp-drop = 1; gNBs = ( @@ -25,15 +26,16 @@ gNBs = ); }); - nr_cellid = 12345678L; + nr_cellid = 51L; ////////// Physical parameters: pdsch_AntennaPorts_XP = 2; + #pdsch_AntennaPorts_N1 = 2; #Uncomment for 4 layers pusch_AntennaPorts = 2; do_CSIRS = 1; do_SRS = 0; - min_rxtxtime = 2; + min_rxtxtime = 3; pdcch_ConfigSIB1 = ( { @@ -46,7 +48,7 @@ gNBs = { #spCellConfigCommon - physCellId = 0; + physCellId = 51; # downlinkConfigCommon #frequencyInfoDL @@ -168,13 +170,13 @@ gNBs = # pattern1 # dl_UL_TransmissionPeriodicity # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10 - dl_UL_TransmissionPeriodicity = 5; #6; - nrofDownlinkSlots = 3; #7; - nrofDownlinkSymbols = 6; - nrofUplinkSlots = 1; #2; + dl_UL_TransmissionPeriodicity = 6; + nrofDownlinkSlots = 6; + nrofDownlinkSymbols = 10; + nrofUplinkSlots = 3; nrofUplinkSymbols = 0; - ssPBCH_BlockPower = -25; + ssPBCH_BlockPower = -34; } ); @@ -190,13 +192,12 @@ gNBs = ////////// AMF parameters: - amf_ip_address = ({ ipv4 = "192.168.70.132"; }); - + amf_ip_address = ({ ipv4 = "192.168.70.132"; }); NETWORK_INTERFACES : { - GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.129"; - GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.129"; + GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.129/24"; + GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.129/24"; GNB_PORT_FOR_S1U = 2152; # Spec 2152 }; @@ -206,6 +207,7 @@ gNBs = MACRLCs = ( { num_cc = 1; + local_s_if_name = "lo:"; remote_s_address = "127.0.0.1"; // pnf addr [!] local_s_address = "127.0.0.2"; // vnf addr local_s_portc = 50001; // vnf p5 port @@ -214,11 +216,12 @@ MACRLCs = ( remote_s_portd = 50010; // pnf p7 port [!] tr_s_preference = "aerial"; tr_n_preference = "local_RRC"; - pusch_TargetSNRx10 = 200; #150; - pucch_TargetSNRx10 = 200; #200; + pusch_FailureThres = 10; + pusch_TargetSNRx10 = 280; # 150; + pucch_TargetSNRx10 = 100; #200; ulsch_max_frame_inactivity = 10; - dl_max_mcs = 28; - ul_max_mcs = 28; + dl_max_mcs = 25; + ul_max_mcs = 25; } );