From ad741065481bb096a5af35b9ca33288fa43e4136 Mon Sep 17 00:00:00 2001 From: arora Date: Tue, 20 Aug 2024 16:47:45 +0200 Subject: [PATCH 1/3] Add E2 SM in the target dockerfiles to use e2 agent in container deployment - Update builder dockerfiles to build Flexric for E2 SM - Update target dockerfiles to copy E2 SM --- docker/Dockerfile.build.rhel9 | 23 ++++++++++++++++++++--- docker/Dockerfile.build.ubuntu22 | 17 ++++++++++++++++- docker/Dockerfile.gNB.aw2s.rhel9 | 3 +++ docker/Dockerfile.gNB.rhel9 | 3 +++ docker/Dockerfile.gNB.ubuntu22 | 2 ++ docker/Dockerfile.nr-cuup.rhel9 | 3 +++ docker/Dockerfile.nr-cuup.ubuntu22 | 2 ++ 7 files changed, 49 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile.build.rhel9 b/docker/Dockerfile.build.rhel9 index 464c6caf5a..8635928d52 100644 --- a/docker/Dockerfile.build.rhel9 +++ b/docker/Dockerfile.build.rhel9 @@ -27,6 +27,9 @@ FROM ran-base:latest AS ran-build +ARG E2AP_VERSION=E2AP_V3 +ARG KPM_VERSION=KPM_V3_00 + RUN rm -Rf /oai-ran WORKDIR /oai-ran COPY . . @@ -35,12 +38,26 @@ COPY . . RUN /bin/sh oaienv && \ cd cmake_targets && \ mkdir -p log && \ - CXXFLAGS="-Werror -fstack-protector-strong" CFLAGS="-Werror -fstack-protector-strong" ./build_oai -c --ninja \ + scl enable gcc-toolset-12 "\ + CXXFLAGS='-Werror -fstack-protector-strong' CFLAGS='-Werror -fstack-protector-strong' ./build_oai -c --ninja \ --eNB --gNB --RU --UE --nrUE \ - --build-lib "telnetsrv enbscope uescope nrscope" \ + --build-e2 --cmake-opt -DXAPP_MULTILANGUAGE=OFF --cmake-opt \ + -DKPM_VERSION=$KPM_VERSION --cmake-opt -DE2AP_VERSION=$E2AP_VERSION \ + --build-lib 'telnetsrv enbscope uescope nrscope' \ -w USRP -t Ethernet \ - --noavx512 && \ + --noavx512" && \ echo "---- ldd on executables ----" && \ ldd ran_build/build/*softmodem* ran_build/build/nr-cuup ran_build/build/oairu && \ echo "---- ldd on shared libraries ----" && \ ldd ran_build/build/*.so + +## Build FlexRIC for SM Models +RUN mkdir -p openair2/E2AP/flexric/build && \ + cd openair2/E2AP/flexric/build && \ + scl enable gcc-toolset-12 "\ + cmake -GNinja -DCMAKE_BUILD_TYPE=Release \ + -DXAPP_MULTILANGUAGE=OFF \ + -DKPM_VERSION=$KPM_VERSION \ + -DE2AP_VERSION=$E2AP_VERSION .. &&\ + ninja && \ + ninja install" diff --git a/docker/Dockerfile.build.ubuntu22 b/docker/Dockerfile.build.ubuntu22 index e4cc71fdcf..9ee0b20158 100644 --- a/docker/Dockerfile.build.ubuntu22 +++ b/docker/Dockerfile.build.ubuntu22 @@ -28,6 +28,9 @@ FROM ran-base:latest AS ran-build ARG BUILD_OPTION +ARG E2AP_VERSION=E2AP_V3 +ARG KPM_VERSION=KPM_V3_00 + RUN rm -Rf /oai-ran WORKDIR /oai-ran COPY . . @@ -40,7 +43,7 @@ RUN /bin/sh oaienv && \ --eNB --gNB --RU --UE --nrUE \ --build-lib "telnetsrv enbscope uescope nrscope" \ -w USRP -t Ethernet \ - --build-e2 --cmake-opt -DXAPP_MULTILANGUAGE=OFF \ + --build-e2 --cmake-opt -DXAPP_MULTILANGUAGE=OFF --cmake-opt -DKPM_VERSION=$KPM_VERSION --cmake-opt -DE2AP_VERSION=$E2AP_VERSION \ --noavx512 \ --cmake-opt -DCMAKE_C_FLAGS="-Werror" --cmake-opt -DCMAKE_CXX_FLAGS="-Werror" $BUILD_OPTION && \ # Mainly to see if the sanitize option was perfectly executed @@ -48,3 +51,15 @@ RUN /bin/sh oaienv && \ ldd ran_build/build/*softmodem* ran_build/build/nr-cuup ran_build/build/oairu && \ echo "---- ldd on shared libraries ----" && \ ldd ran_build/build/*.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 \ + -DCMAKE_C_COMPILER=gcc-12 \ + -DCMAKE_CXX_COMPILER=g++-12 .. && \ + ninja && \ + ninja install diff --git a/docker/Dockerfile.gNB.aw2s.rhel9 b/docker/Dockerfile.gNB.aw2s.rhel9 index db4b0f60c6..0cb4def5fd 100644 --- a/docker/Dockerfile.gNB.aw2s.rhel9 +++ b/docker/Dockerfile.gNB.aw2s.rhel9 @@ -76,6 +76,9 @@ COPY --from=gnb-base \ /lib64/libforms.so.2 \ /lib64/ +## Copy E2 SM models +COPY --from=gnb-build /usr/local/lib64/flexric /usr/local/lib64/flexric + RUN ln -s /usr/local/lib/libaw2sori_transpro.so /usr/local/lib/libthirdparty_transpro.so && \ ln -s /usr/local/lib/liboai_eth_transpro.so /usr/local/lib/liboai_transpro.so && \ ldconfig && \ diff --git a/docker/Dockerfile.gNB.rhel9 b/docker/Dockerfile.gNB.rhel9 index e8fd8a9433..625590efad 100644 --- a/docker/Dockerfile.gNB.rhel9 +++ b/docker/Dockerfile.gNB.rhel9 @@ -93,6 +93,9 @@ COPY --from=gnb-base /usr/local/bin/uhd_find_devices /usr/local/bin COPY --from=gnb-base /usr/local/lib64/libuhd.so.4.4.0 /usr/local/lib64 COPY --from=gnb-base /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin +## Copy E2 SM models +COPY --from=gnb-build /usr/local/lib64/flexric /usr/local/lib64/flexric + WORKDIR /usr/local/share/uhd/rfnoc COPY --from=gnb-base /usr/local/share/uhd/rfnoc/ . diff --git a/docker/Dockerfile.gNB.ubuntu22 b/docker/Dockerfile.gNB.ubuntu22 index 77a7ac0207..6213ed0ca3 100644 --- a/docker/Dockerfile.gNB.ubuntu22 +++ b/docker/Dockerfile.gNB.ubuntu22 @@ -99,6 +99,8 @@ COPY --from=gnb-build \ COPY --from=gnb-base /usr/local/bin/uhd_find_devices /usr/local/bin COPY --from=gnb-base /usr/local/lib/libuhd.so.4.4.0 /usr/local/lib COPY --from=gnb-base /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin +## Copy E2 SM models +COPY --from=gnb-build /usr/local/lib/flexric /usr/local/lib/flexric RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \ ldconfig && \ diff --git a/docker/Dockerfile.nr-cuup.rhel9 b/docker/Dockerfile.nr-cuup.rhel9 index 08ee72fa30..b1b083e57c 100644 --- a/docker/Dockerfile.nr-cuup.rhel9 +++ b/docker/Dockerfile.nr-cuup.rhel9 @@ -61,6 +61,9 @@ COPY --from=gnb-base \ /lib64/libconfig.so.11 \ /lib64/ +## Copy E2 SM models +COPY --from=gnb-build /usr/local/lib64/flexric /usr/local/lib64/flexric + RUN ldconfig && \ echo "ldd on nr-cuup" && ldd /opt/oai-gnb/bin/nr-cuup && \ echo "ldd on libparams_libconfig" && ldd /usr/local/lib/libparams_libconfig.so && \ diff --git a/docker/Dockerfile.nr-cuup.ubuntu22 b/docker/Dockerfile.nr-cuup.ubuntu22 index af95cb5a9c..242fac61b8 100644 --- a/docker/Dockerfile.nr-cuup.ubuntu22 +++ b/docker/Dockerfile.nr-cuup.ubuntu22 @@ -55,6 +55,8 @@ RUN apt-get update && \ # copy the right version from ran-build. When upgrading to Ubuntu24, install # the correct one above! COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libasan.so.8.0.0 /usr/lib/x86_64-linux-gnu/ +## Copy E2 SM models +COPY --from=gnb-build /usr/local/lib/flexric /usr/local/lib/flexric WORKDIR /opt/oai-gnb/bin COPY --from=gnb-build \ From c1641b66af47c98b58d1e7c0caa6e78e94855532 Mon Sep 17 00:00:00 2001 From: arora Date: Thu, 22 Aug 2024 15:10:34 +0200 Subject: [PATCH 2/3] Bump rhel to gcc13, to avoid gcc12 warnings in openair1 --- docker/Dockerfile.base.rhel9 | 7 ++++--- docker/Dockerfile.base.ubuntu22 | 2 +- docker/Dockerfile.build.fhi72.rhel9 | 4 ++-- docker/Dockerfile.build.rhel9 | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile.base.rhel9 b/docker/Dockerfile.base.rhel9 index dee50127ac..949da7e4a1 100644 --- a/docker/Dockerfile.base.rhel9 +++ b/docker/Dockerfile.base.rhel9 @@ -57,8 +57,9 @@ RUN rm -f /etc/rhsm-host && \ python3-devel \ numactl-libs \ numactl-devel \ - gcc-toolset-12-gcc \ - gcc-toolset-12-gcc-c++ \ + #use gcc-13 to avoid problems of default gcc-11 in FlexRIC + gcc-toolset-13-gcc \ + gcc-toolset-13-gcc-c++ \ # python3-pip and pyyaml are used for conf template generation python3-pip && \ pip3 install --ignore-installed pyyaml && \ @@ -90,6 +91,6 @@ COPY oaienv . RUN /bin/sh oaienv && \ cd cmake_targets && \ mkdir -p log && \ - scl enable gcc-toolset-12 "\ + scl enable gcc-toolset-13 "\ ./build_oai -I --install-optional-packages -w USRP" && \ rm /etc/pki/entitlement/*pem diff --git a/docker/Dockerfile.base.ubuntu22 b/docker/Dockerfile.base.ubuntu22 index f23cf01ac0..5aa16697e2 100644 --- a/docker/Dockerfile.base.ubuntu22 +++ b/docker/Dockerfile.base.ubuntu22 @@ -34,7 +34,6 @@ ENV BUILD_UHD_FROM_SOURCE=True ENV UHD_VERSION=4.4.0.0 #install developers pkg/repo -#use gcc-12 to avoid problems of default gcc-11 in FlexRIC RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \ DEBIAN_FRONTEND=noninteractive apt-get install --yes \ @@ -42,6 +41,7 @@ RUN apt-get update && \ build-essential \ psmisc \ git \ + #use gcc-12 to avoid problems of default gcc-11 in FlexRIC gcc-12 \ g++-12 \ xxd \ diff --git a/docker/Dockerfile.build.fhi72.rhel9 b/docker/Dockerfile.build.fhi72.rhel9 index 6a70b89a51..e8a1f2d76b 100644 --- a/docker/Dockerfile.build.fhi72.rhel9 +++ b/docker/Dockerfile.build.fhi72.rhel9 @@ -56,7 +56,7 @@ ARG KPM_VERSION=KPM_V3_00 RUN /bin/sh oaienv && \ cd cmake_targets && \ mkdir -p log && \ - scl enable gcc-toolset-12 "\ + scl enable gcc-toolset-13 "\ ./build_oai \ --gNB \ --build-lib 'telnetsrv enbscope uescope nrscope' \ @@ -70,7 +70,7 @@ RUN /bin/sh oaienv && \ ## Build FlexRIC for SM Models RUN mkdir -p openair2/E2AP/flexric/build && \ cd openair2/E2AP/flexric/build && \ - scl enable gcc-toolset-12 "\ + scl enable gcc-toolset-13 "\ cmake -GNinja -DCMAKE_BUILD_TYPE=Release \ -DXAPP_MULTILANGUAGE=OFF \ -DKPM_VERSION=$KPM_VERSION \ diff --git a/docker/Dockerfile.build.rhel9 b/docker/Dockerfile.build.rhel9 index 8635928d52..ba10b3a4cd 100644 --- a/docker/Dockerfile.build.rhel9 +++ b/docker/Dockerfile.build.rhel9 @@ -38,7 +38,7 @@ COPY . . RUN /bin/sh oaienv && \ cd cmake_targets && \ mkdir -p log && \ - scl enable gcc-toolset-12 "\ + scl enable gcc-toolset-13 "\ CXXFLAGS='-Werror -fstack-protector-strong' CFLAGS='-Werror -fstack-protector-strong' ./build_oai -c --ninja \ --eNB --gNB --RU --UE --nrUE \ --build-e2 --cmake-opt -DXAPP_MULTILANGUAGE=OFF --cmake-opt \ @@ -54,7 +54,7 @@ RUN /bin/sh oaienv && \ ## Build FlexRIC for SM Models RUN mkdir -p openair2/E2AP/flexric/build && \ cd openair2/E2AP/flexric/build && \ - scl enable gcc-toolset-12 "\ + scl enable gcc-toolset-13 "\ cmake -GNinja -DCMAKE_BUILD_TYPE=Release \ -DXAPP_MULTILANGUAGE=OFF \ -DKPM_VERSION=$KPM_VERSION \ From 8f5327527eeb947483e9e93761b3d9595a71a792 Mon Sep 17 00:00:00 2001 From: arora Date: Thu, 26 Sep 2024 10:19:20 +0200 Subject: [PATCH 3/3] Disable UHD unit tests to avoid gcc13 warnings --- cmake_targets/tools/build_helper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index d1dadf9535..9c11fced56 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -286,7 +286,7 @@ install_usrp_uhd_driver_from_source(){ git diff mkdir -p host/build cd host/build || true - $CMAKE ../ -GNinja + $CMAKE ../ -GNinja -DENABLE_TESTS=OFF -DENABLE_EXAMPLES=OFF echo "Compiling UHD" ninja $SUDO ninja install