Commit Graph

289 Commits

Author SHA1 Message Date
Laurent THOMAS
da7897be04 remove cblas and lapack dependency, as the calling code can't be called in present master branch (likely never worked/fished code 2026-02-16 20:05:04 +01:00
Robert Schmidt
a159f1b78a Revert "Compile everything in Ubuntu builder"
This reverts commit 16c333b1a3.

I tried to build everything in Ubuntu images, but

- this introduced a regression (ignores $BUILD_OPTION)
- made that we don't use -Werror (when we should)

I tried to fix the use of the first, but it would involve more changes
than I prefer. On the second, we cannot enable -Werror, as FlexRIC does
not build warning-free (in Release mode). We thus have to build only the
targets that we require, and therefore we can keep using build_oai,
which is the simplest option (cf. the first point).
2026-02-16 11:04:11 +01:00
Robert Schmidt
9c1603cfbb Remove BUILD_ARG: Will never build sanitize
xran does not work with Address Sanitizer. Thus, there is no reason to
keep these build arguments.
2026-02-16 11:01:37 +01:00
Robert Schmidt
054d0f55cd base&build: install with BladeRF 2026-02-11 18:37:45 +01:00
Robert Schmidt
16c333b1a3 Compile everything in Ubuntu builder
Compile all targets in Ubuntu build to avoid breakage of software.
Remove ldd in build dockerfile, as we don't need that (can also be
inspected manually).
2026-02-11 18:37:45 +01:00
Jaroslava Fiedlerova
2c1687e44f Merge remote-tracking branch 'origin/rhel-fix' into integration_2026_w06 (!3887)
Update RHEL UBI image source to registry.redhat.io

This merge request updates the RHEL UBI base image source to registry.redhat.io,
aligning with Red Hat’s supported container registry and avoiding potential
access or availability issues with registry.access.redhat.com.
2026-02-03 08:12:06 +01:00
Shubhika Garg
f393300da1 RHEL: switch registry to registry.redhat.io
- Switched base image source from registry.access.redhat.com to registry.redhat.io for all RHEL9 variants.
2026-01-30 10:11:21 +01:00
Robert Schmidt
0eb33e69c7 Merge remote-tracking branch 'origin/add-support-eth-pdu-sess' into integration_2026_w05 (!3769)
Add Ethernet PDU session support and make PDU session request configurable

This MR adds support for Ethernet PDU sessions, and makes PDU sessions
configurable: per-PDU session ID, type (IPv4/IPv4v6/IPv6/Ethernet [1]),
DNN, NSSAI.

Concretely, it adds a new configuration file section pdu_sessions below
uicc0 that looks like this if everything is specified (default values
are shown):

    uicc0:
      [...]
      pdu_sessions:
        - id: 1
          type: "IPv4"
          nssai_sst: 1
          nssai_sd: 0xffffff
          dnn: "oai"

It is possible to list multiple PDU sessions (add new line   - id: 2 to
request a second PDU session). It is backwards-compatible to the current
PDU session configuration (uicc0.dnn/nssai_sst/etc), the idea being that
either legacy or new configuration could be used, but (1) if
pdu_sessions exist, it will overwrite the legacy configuration, and (2)
multiple PDU sessions, and type, can only be configured using the new
config. The old parameters --extra-pdu-id and --default-pdu-id are not
accepted anymore. Documentation has been added to the UE tutorial.

It is possible to test an Ethernet PDU session [1]. It is possible to
test the PDU session inside the UE by verifying it has an TAP interface
oaitap_ue1, and ARPing the data network (arping has been added to
oai-nr-ue container for that purpose):

    ip addr add 192.168.72.140/26 dev oaitap_ue1  # same subnet as data network!
    ip link set dev oaitap_ue1 up
    arping -c 20 -I oaitap_ue1 192.168.72.135     # will send ARP request in Ethernet frame to get IP address of data network

[1] See description MR !3769 for more information. On the UE side, only
the type has to be changed to "Ethernet".
2026-01-29 07:52:48 +01:00
Jaroslava Fiedlerova
c2d3a3d0c2 Merge remote-tracking branch 'origin/oru-rebased' into integration_2026_w05 (!3848)
Initial implementation of O-RU for 7.2 emulator

Added new executable nr-oru which acts as a 7.2 O-RU.
2026-01-27 20:30:12 +01:00
Robert Schmidt
eea52e4384 Dockerfile nrUE ubuntu: install arping
The CN team would like to test the ethernet PDU session capabilities of
the UPF. Install arping in the UE by default for ubuntu to help them
test the PDU session by pinging over ARP.
2026-01-27 11:47:40 +01:00
Bartosz Podrygajlo
9ac9e3ba91 Add support for taps client to ubuntu gNB & nrUE images 2026-01-21 12:58:09 +01:00
Bartosz Podrygajlo
ee2af75bff O-RU: Add Dockerfile and image build step 2026-01-16 11:56:33 +01:00
Bartosz Podrygajlo
27a21cc8aa O-RU: update build_oai to build nr-oru 2026-01-16 11:56:33 +01:00
Sagar Arora
662c6e1aec Install yaml-cpp-dev for CU-UP and rocky
Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
Signed-off-by: Sagar Arora <sagar.arora@openairinterface.org>
2025-11-28 16:48:08 +01:00
Sagar Arora
389ca60d5e add yq in 5G NF Dockerfiles
Signed-off-by: Sagar Arora <sagar.arora@openairinterface.org>
2025-11-16 06:14:14 +01:00
Robert Schmidt
dd868fd25e Merge remote-tracking branch 'origin/ci-update-physim-threshold' into integration_2025_w41 (!3679)
CI: Enable Physim threshold check for tests on Caracal and GH

This MR adds support for configurable timing threshold files in PhySim
tests.

- Introduces a new CMake cache variable PHYSIM_CHECK_FILES to specify
  one or more timing threshold files (semicolon-separated).
- Enables optional enforcement of timing thresholds check in PhySim
  tests without changing existing test definitions.
- Defines timing thresholds for LDPC encoding/decoding in nr_ulsim,
  nr_dlsim and ldpctest on Caracal and GH machines.
2025-10-09 08:46:46 +02:00
Jaroslava Fiedlerova
78d91db964 Include timing analysis file in physim.rhel9 image
Add missing timinig analysis scripts to RHEL9 physim docker image. These files
are now copied from the build stage to /oai-ran/openair1/SIMULATION/tests/,
where they are expected by ctest.

Resolves following issue when running ctest in docker container:
CMake Error: Error processing file: /oai-ran/openair1/SIMULATION/tests/RunTimedTest.cmake
2025-10-08 10:57:50 +02:00
Robert Schmidt
60ab0a89a2 Build all targets in Cluster PhySim build 2025-09-29 09:04:02 +02:00
Robert Schmidt
1cfca6ce47 Move PhySim definition to openair1/SIMULATION/tests
Most (but not all) physical simulators are defined under
openair1/SIMULATION/. Defining physical simulators below there seems to
be the more "obvious" directory anyway, as the physical simulators are

    openair1/SIMULATION/tests
    Phy(L1)  Sim        tests => PhySim (tests)
2025-09-12 14:53:09 +02:00
Jaroslava Fiedlerova
8e32225711 Merge remote-tracking branch 'origin/aerial_25-2' into integration_2025_w36 (!3626)
Upgrade CI to Aerial 25-2

The goal of this MR is to upgrade the Aerial setup to use release 25-2.
2025-09-03 17:00:43 +02:00
Reem Bahsoun
206e44ae54 Replace old nvIPC library with the new one 2025-09-03 13:30:49 +02:00
Robert Schmidt
741e9ffae9 Simplify cross-compilation Dockerfile
Redirect to files and manual analysis as done in this Dockerfile is not
necessary since we just output all relevant build files to stdout.
Simplify to do the same here.

See: 35361db76b ("build_oai: don't redirect compilations to a file")
2025-09-02 08:19:40 +02:00
Robert Schmidt
2c351c94d0 Merge remote-tracking branch 'origin/doc-updates' into integration_2025_w33 (!3590)
Improve MAC docs for MCS and docker for BuildKit usage

See commits for details. The first one is for fixing an omission in
!3281, the second to clarify docker build usage.

Closes: #973
2025-08-14 16:46:44 +02:00
Robert Schmidt
3ee41c3fec Explain steps to build Dockerfiles without BuildKit
The Dockerfiles are reused for building on different architectures
(amd64/arm64). They differ, though, on some steps for downloading or
installing platform-specific utilities.

This is handled automatically when using BuildKit, which is the default
in docker versions v23.0+. Older docker versions require some special
settings. Explain this in the README.

Closes: #973
2025-08-14 09:49:43 +02:00
Jaroslava Fiedlerova
8f79abed2e CI: Update UHD version to 4.8 2025-08-12 22:27:29 +02:00
calvin_peyron
12cf015525 "as" should be in capital letters 2025-08-11 17:11:21 +02:00
Calvin Peyron
3a1be4895f Rename ubuntuXX to ubuntu 2025-08-11 17:11:21 +02:00
calvin_peyron
bc9ae55723 Remove redundancy
As DEBIAN_FRONTEND has been set as environment variable, there is no need to use DEBIAN_FRONTEND=noninteractive inside RUN lines, it is redundant, hence it has been removed.
2025-08-11 17:11:21 +02:00
calvin_peyron
b3675be33a Upgrade CI images to Ubuntu 24
Libboost went from 1.74.0 to 1.83.0 alongside Ubuntu update.
GCC version is set as default to be more practical.
In Ubuntu22, apt sources were in .list files, in Ubuntu24 they are in .sources files.
Add --break-system-packages for pip installation to use same logic as before, see the pip update 23.0.1 (2023-02-17).
With Ubuntu24 liboai_device requires libpython3.12
2025-08-11 17:11:21 +02:00
Robert Schmidt
43e2fd57d4 Use Ninja for FHI72 builds 2025-08-07 15:39:59 +02:00
Laurent THOMAS
b65b5dd40e Remove specific directory for LTE SIM management tools
Move into openair3/NAS/TOOLS/CMakeLists.txt, and simplify the
CMakeLists.txt.

Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-07-30 17:39:12 +02:00
Robert Schmidt
36da6be4ab Merge remote-tracking branch 'origin/f1-refactor-ue-context' into integration_2025_wk26 (!3488)
Refactor F1 UE context messages, add unit tests

Add encoder+decoder+util functions for F1 UE context messages, and use
them in the stack. The overall goal is to unit test encoder+decoder (to
be sure that what we send is what we receive), and remove any memory
leaks related to F1 handling. Messages that have a unit test:

- F1 UE context setup request/response
- F1 UE context modification request/response
- F1 UE context release request/command/complete

This MR removes almost all remaining memory leaks that are observable in
a "standard" configuration, running SISO in RFsim. In RFsim (without
channel modelling), there are only two memory leaks shown in asan, one
in L1, and one in NGAP.
2025-06-30 18:40:02 +02:00
Robert Schmidt
0e9f9b92d2 Merge remote-tracking branch 'origin/docker-speedup' into integration_2025_wk26 (!3349)
Speed up docker deployment in CI

- Using docker compose up --wait instead of a custom healthcheck script:
  from: https://docs.docker.com/reference/cli/docker/compose/up/

  --wait          Wait for services to be running|healthy. Implies detached mode.
  --wait-timeout  Maximum duration in seconds to wait for the project to be running|healthy

- Speeding up the healthchecks by reducing the interval from 1-10s to
  0.5s during start period

  start_period creates a special period after the start of the container
  where the healthcheck is executed every start_interval . During this
  time the failures do not count towards the retries counter, but
  successes change the status to healthy. This allows container to reach
  healthy status much sooner.

- Using init: true to speed up docker compose down/stop

  `init: true` initializes the docker container with tini or
  alternative: tini is used to collect all the processes and correctly
  pass the termination signal to them. This allows the docker container
  to be stopped without waiting 10 seconds to kill the container

- Smallest example of this is:

    services:
      test-init:
        image: ubuntu:jammy
        command: sleep 10d
2025-06-30 18:38:02 +02:00
Robert Schmidt
5766d7ff51 Debug core images: mount sources to right directory 2025-06-28 12:19:58 +02:00
Jaroslava Fiedlerova
f7b3e04cf9 CI: new healthcheck condition for OTA docker deployments
This modification aims to improve health status detection by using PRACH IO as
an indicator of the gNB's status (container is marked as "healthy" when the
PRACH IO value in gNB nrL1_stats.log exceeds 0.0 dB.). The new condition accounts
for scenarios where the container may not exit or produce error codes (e.g.,
“sleep” logs or "error code overflow" messages).
2025-06-27 20:16:48 +02:00
Jaroslava Fiedlerova
c22e7d22c4 Merge remote-tracking branch 'origin/aerial-25_1' into integration_2025_w26 (!3477)
CI: Upgrade Aerial version to 25-1

- Update the Nvidia L1 (cuBB) from version 24-3 to 25-1
- Decrease the number of cores dedicated to the OAI gNB; testing showed
  it does not need that many
2025-06-25 12:59:54 +02:00
Reem Bahsoun
833edb3b25 Hard code the name of nvIPC file when called in the cls_containerize.py script
- This is to avoid the Docker image builder from being confused in case we have multiple nvIPC files in `/opt/nvidia-ipc`
- This occurs when we have an MR to upgrade the cuBB image
2025-06-18 14:56:28 +02:00
Jaroslava Fiedlerova
9146879207 Merge remote-tracking branch 'origin/fast-u22-build' into integration_2025_w25 (!3083)
Speed up ubuntu22 image build

Speed up softmodems build by means of:
- Avoiding the copying the repo (using bind instead)
- Creating cache directories for:
  - ccache cache
  - CPM cache
  - Same technique applied to FlexRIC build
- Make ubuntu ran-base image docker build cache friendly
2025-06-17 10:31:43 +02:00
Teodora
4f7b44e862 Remove the cmake option XAPP_MULTILANGUAGE from all Dockerfiles
The FlexRIC main CMakeLists.txt sets XAPP_MULTILANGUAGE to OFF by default.
Related commit ID: 637f718c32
2025-06-02 15:22:02 +02:00
Bartosz Podrygajlo
8be33ed66f Make ubuntu22 base image docker cache friendly
Use wget instead of ADD to allow efficient caching of tini install.
2025-05-29 15:10:23 +02:00
Bartosz Podrygajlo
171f1fc015 Add ccache and CPM cache in ubuntu22 image builds 2025-05-29 13:48:01 +02:00
Jaroslava Fiedlerova
f171778b68 Update physim Dockerfile for ctest support
Set the CMAKE_RUNTIME_OUTPUT_DIRECTORY CMake option during the OAI build
to control the location of runtime target files. This ensures that ctest
can locate necessary executables after they are copied to the target
Docker image.
2025-05-16 16:29:55 +02:00
Robert Schmidt
cf22ed79f2 Fix llvm version conflict after upgrade to RHEL9.6
Add --allowerasing, which will downgrades some packets in order to
satisfy LLVM dependencies.

When building the docker image for clang, CI fails with

    Error:
     Problem: llvm-18.1.8-3.el9.i686 from ubi-9-appstream-rpms  does not belong to a distupgrade repository
      - package llvm-toolset-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms requires llvm = 18.1.8, but none of the providers can be installed
      - package llvm-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms requires llvm-libs(x86-64) = 18.1.8-3.el9, but none of the providers can be installed
      - package llvm-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms requires libLLVM.so.18.1()(64bit), but none of the providers can be installed
      - package llvm-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms requires libLLVM.so.18.1(LLVM_18.1)(64bit), but none of the providers can be installed
      - cannot install both llvm-libs-18.1.8-3.el9.x86_64 from ubi-9-appstream-rpms and llvm-libs-19.1.7-2.el9.x86_64 from @System
      - package mesa-dri-drivers-24.2.8-2.el9_6.x86_64 from @System requires libLLVM.so.19.1()(64bit), but none of the providers can be installed
      - package mesa-dri-drivers-24.2.8-2.el9_6.x86_64 from @System requires libLLVM.so.19.1(LLVM_19.1)(64bit), but none of the providers can be installed
      - package mesa-libGL-24.2.8-2.el9_6.x86_64 from @System requires libgallium-24.2.8.so()(64bit), but none of the providers can be installed
      - package mesa-libGL-24.2.8-2.el9_6.x86_64 from @System requires libgallium-24.2.8.so(libgallium-24.2.8.so)(64bit), but none of the providers can be installed
      - package mesa-libGL-devel-24.2.8-2.el9_6.x86_64 from @System requires mesa-libGL(x86-64) = 24.2.8-2.el9_6, but none of the providers can be installed
      - conflicting requests
      - problem with installed package mesa-libGL-devel-24.2.8-2.el9_6.x86_64
    (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

So when trying to install llvm-toolset from docker/Dockerfile.clang.rhel9,
we have a conflict because this installs 18.1 from ubi-9-appstream-rpms,
but various mesa packets have llvm 19.1.

1. I don't understand why we have mesa installed (no graphics system?)
2. --allowerasing downgrades the relevent mesa package(s)

Alternatively, we would need to select 19.1 when installing
llvm-toolset, but I don't know how to do that.
2025-05-13 14:39:24 +02:00
Romain Beurdouche
96a47821de feat(CI): Add FHI 7.2 build on native Arm build pipeline 2025-04-04 13:26:01 +00:00
Bartosz Podrygajlo
347eb5a50d Add vrtsim to build_oai and some oai images 2025-03-26 16:54:25 +01:00
Robert Schmidt
677a904b6c Avoid x86-specific Dockerfiles/enable ARM
Dockerfiles hardcoded one copy operation to x86; generalize to capture
ARM as well. Since the target directory cannot have any globs, we need
to manually check the right directory, then move the file.

Note that this is only necessary since we are forced to switch the
compiler, as Ubuntu's default gcc-11 does not work with FlexRIC. When
upgrading to Ubuntu 24, these lines should disappear and asan be
installed as normal. See commit 94497435e7 ("Upgrade CI images to
Ubuntu 22").
2025-03-24 09:18:44 +01:00
Raphael Defosseux
70933edd19 fix(docker): typo on BUILD_OPTIONS
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2025-01-03 09:40:59 +01:00
sagar arora
59e6a33d2b Add telnet (O1) support modules in gNB image 2024-12-16 16:18:11 +01:00
Robert Schmidt
0b3d098654 Merge remote-tracking branch 'origin/fhi-f-release' into integration_2024_w49 (!3147)
Fronthaul xran library update to F release (2. and final step towards M-plane integration)

- xran library support -> both E and F releases
- RU delay profile removed -> not used in neither of the releases
- DU delay profile updated
- one-way delay measurements support is improved/fixed in the F release.
  However, not implemented here as it depends on the RU capabilities
2024-12-08 21:07:05 +01:00
Teodora
b7c3d593c2 Update FHI build image to support xran F release 2024-12-06 12:33:00 +01:00