# SPDX-License-Identifier: LicenseRef-CSSL-1.0 #--------------------------------------------------------------------- # # Dockerfile for the Open-Air-Interface RAN Build for FHI 7.2 # Valid for UBUNTU 24.04 # #--------------------------------------------------------------------- FROM ran-base:latest AS ran-base ARG xran_VERSION=11.1.3 ARG E2AP_VERSION=E2AP_V3 ARG KPM_VERSION=KPM_V3_00 ENV DEBIAN_FRONTEND=noninteractive ENV TZ=Europe RUN apt-get update && \ apt-get upgrade --yes && \ apt-get install --yes \ meson \ wget \ xz-utils \ pkg-config \ libnuma-dev \ python3-pyelftools && \ rm -rf /var/lib/apt/lists/* RUN rm -Rf /oai-ran WORKDIR /oai-ran ## Download and build DPDK RUN wget --no-verbose http://fast.dpdk.org/rel/dpdk-24.11.4.tar.xz && \ tar -xf dpdk-24.11.4.tar.xz && \ cd dpdk-stable-24.11.4 && \ meson build && \ ninja -C build && \ ninja install -C build ## Build Fronthaul library RUN git clone https://github.com/openairinterface/o-du-phy.git /opt/phy && \ cd /opt/phy && \ git checkout $xran_VERSION &&\ cd /opt/phy/fhi_lib/lib && \ WIRELESS_SDK_TOOLCHAIN=gcc RTE_SDK=/oai-ran/dpdk-stable-24.11.4/ XRAN_DIR=/opt/phy/fhi_lib make XRAN_LIB_SO=1 ## Build Arm RAN Acceleration Library RUN git clone https://git.gitlab.arm.com/networking/ral.git /opt/ral && \ cd /opt/ral && \ git checkout armral-25.01 &&\ mkdir build && \ cd build && \ cmake -GNinja -DBUILD_SHARED_LIBS=On /opt/ral/ && \ ninja && \ ninja install COPY . . FROM ran-base AS ran-build-fhi72 ## Build and install OAI #run build_oai to build the target image RUN /bin/sh oaienv && \ cd cmake_targets && \ mkdir -p log && \ ./build_oai \ --ninja --gNB \ --build-lib "telnetsrv enbscope uescope nrscope" \ -t oran_fhlib_5g --cmake-opt -Dxran_LOCATION=/opt/phy/fhi_lib/lib \ --build-e2 --cmake-opt -DXAPP_MULTILANGUAGE=OFF --cmake-opt -DKPM_VERSION=$KPM_VERSION --cmake-opt -DE2AP_VERSION=$E2AP_VERSION && \ # Mainly to see if the sanitize option was perfectly executed ldd ran_build/build/nr-softmodem && \ ldd ran_build/build/liboran_fhlib_5g.so && \ ldd /opt/phy/fhi_lib/lib/build/libxran.so ## Build FlexRIC for SM Models RUN mkdir -p openair2/E2AP/flexric/build && \ cd openair2/E2AP/flexric/build && \ cmake -GNinja -DCMAKE_BUILD_TYPE=Release \ -DXAPP_MULTILANGUAGE=OFF \ -DKPM_VERSION=$KPM_VERSION \ -DE2AP_VERSION=$E2AP_VERSION .. && \ ninja && \ ninja install