From ad741065481bb096a5af35b9ca33288fa43e4136 Mon Sep 17 00:00:00 2001 From: arora Date: Tue, 20 Aug 2024 16:47:45 +0200 Subject: [PATCH] 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 \