diff --git a/ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.yaml b/ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..acd9f271d32c41d2a6690b0d48f7c3d89a50ea1b
--- /dev/null
+++ b/ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.yaml
@@ -0,0 +1,208 @@
+Active_gNBs:
+ - gnb-rfsim
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity: none
+gNBs:
+    ##### Identification parameters:
+  - gNB_ID: 0xe00
+    gNB_name: gnb-rfsim
+    tracking_area_code: 1
+    plmn_list:
+      - mcc: 208
+        mnc: 99
+        mnc_length: 2
+        snssaiList:
+          - sst: 1
+            sd: 0xffffff
+    nr_cellid: 12345678
+    ##### Physical parameters:
+    min_rxtxtime: 6
+    servingCellConfigCommon:
+      #spCellConfigCommon
+      - physCellId: 0
+      #  downlinkConfigCommon
+      #frequencyInfoDL
+      # this is 3300.60 MHz + 53*12*30e-3 MHz = 3319.68
+        absoluteFrequencySSB: 621312
+        # this is 3300.60 MHz
+        dl_absoluteFrequencyPointA: 620040
+        #scs-SpecificCarrierList
+        dl_offstToCarrier: 0
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        dl_subcarrierSpacing: 1
+        dl_carrierBandwidth: 106
+        #initialDownlinkBWP
+        #genericParameters
+        # this is RBstart=0,L=106 (275*(L-1))+RBstart
+        initialDLBWPlocationAndBandwidth: 28875
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialDLBWPsubcarrierSpacing: 1
+        #pdcch-ConfigCommon
+        initialDLBWPcontrolResourceSetZero: 11
+        initialDLBWPsearchSpaceZero: 0
+        #uplinkConfigCommon
+        #frequencyInfoUL
+        ul_frequencyBand: 78
+        #scs-SpecificCarrierList
+        ul_offstToCarrier: 0
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        ul_subcarrierSpacing: 1
+        ul_carrierBandwidth: 106
+        pMax: 20
+        #initialUplinkBWP
+        #genericParameters
+        initialULBWPlocationAndBandwidth: 28875
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        initialULBWPsubcarrierSpacing: 1
+        #rach-ConfigCommon
+        #rach-ConfigGeneric
+        prach_ConfigurationIndex: 98
+        #prach_msg1_FDM
+        #0 = one, 1=two, 2=four, 3=eight
+        prach_msg1_FDM: 0
+        prach_msg1_FrequencyStart: 0
+        zeroCorrelationZoneConfig: 12
+        preambleReceivedTargetPower: -104
+        #preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
+        preambleTransMax: 6
+        #powerRampingStep
+        # 0=dB0,1=dB2,2=dB4,3=dB6
+        powerRampingStep: 1
+        #ra_ReponseWindow
+        #1,2,4,8,10,20,40,80
+        ra_ResponseWindow: 5
+        #ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
+        #1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR: 3
+        #oneHalf (0..15) 4,8,12,16,...60,64
+        ssb_perRACH_OccasionAndCB_PreamblesPerSSB: 15
+        #ra_ContentionResolutionTimer
+        #(0..7) 8,16,24,32,40,48,56,64
+        ra_ContentionResolutionTimer: 7
+        rsrp_ThresholdSSB: 19
+        #prach-RootSequenceIndex_PR
+        #1 = 839, 2 = 139
+        prach_RootSequenceIndex_PR: 2
+        prach_RootSequenceIndex: 1
+        # SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
+        msg1_SubcarrierSpacing: 1
+        # restrictedSetConfig
+        # 0=unrestricted, 1=restricted type A, 2=restricted type B
+        restrictedSetConfig: 0
+        msg3_DeltaPreamble: 1
+        p0_NominalWithGrant: -90
+
+        # pucch-ConfigCommon setup :
+        # pucchGroupHopping
+        # 0 = neither, 1= group hopping, 2=sequence hopping
+        pucchGroupHopping: 0
+        hoppingId: 40
+        p0_nominal: -90
+        ssb_PositionsInBurst_Bitmap: 1
+        # ssb_periodicityServingCell
+        # 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
+        ssb_periodicityServingCell: 2
+        
+        # dmrs_TypeA_position
+        # 0 = pos2, 1 = pos3
+        dmrs_TypeA_Position: 0
+        
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        subcarrierSpacing: 1
+        
+        #tdd-UL-DL-ConfigurationCommon
+        # subcarrierSpacing
+        # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+        referenceSubcarrierSpacing: 1
+        
+        # pattern1
+        # dl_UL_TransmissionPeriodicity
+        # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
+        dl_UL_TransmissionPeriodicity: 6
+        nrofDownlinkSlots: 7
+        nrofDownlinkSymbols: 6
+        nrofUplinkSlots: 2
+        nrofUplinkSymbols: 4
+        ssPBCH_BlockPower: -25
+    SCTP:
+      SCTP_INSTREAMS: 2
+      SCTP_OUTSTREAMS: 2
+
+    ##### AMF parameters:
+    amf_ip_address:
+      - ipv4: 192.168.71.132
+
+    NETWORK_INTERFACES:
+      GNB_IPV4_ADDRESS_FOR_NG_AMF: 192.168.71.140
+      GNB_IPV4_ADDRESS_FOR_NGU: 192.168.71.140
+      GNB_PORT_FOR_S1U: 2152 # Spec 2152
+
+
+MACRLCs:
+  - num_cc: 1
+    tr_s_preference: local_L1
+    tr_n_preference: local_RRC
+    pusch_TargetSNRx10: 200
+    pucch_TargetSNRx10: 200
+
+L1s:
+  - num_cc: 1
+    tr_n_preference:  local_mac
+    prach_dtx_threshold: 200
+    # pucch0_dtx_threshold = 150;
+
+RUs:
+  - local_rf: yes
+    nb_tx: 1
+    nb_rx: 1
+    att_tx: 0
+    att_rx: 0
+    bands: [78]
+    max_pdschReferenceSignalPower: -27
+    max_rxgain: 75
+    eNB_instances: [0]
+    ##beamforming 1x2 matrix: 1 layer x 2 antennas
+    bf_weights: [0x00007fff, 0x0000]
+    ##beamforming 1x4 matrix: 1 layer x 4 antennas
+    #bf_weights = [0x00007fff, 0x0000,0x0000, 0x0000];
+    ## beamforming 2x2 matrix:
+    # bf_weights = [0x00007fff, 0x00000000, 0x00000000, 0x00007fff];
+    ## beamforming 4x4 matrix:
+    #bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
+    sf_extension: 0
+    sdr_addrs: serial=XXXXXXX
+
+rfsimulator:
+  serveraddr: server
+
+security:
+  # preferred ciphering algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nea0, nea1, nea2, nea3
+  ciphering_algorithms: [nea0]
+
+  # preferred integrity algorithms
+  # the first one of the list that an UE supports in chosen
+  # valid values: nia0, nia1, nia2, nia3
+  integrity_algorithms: [nia2, nia0]
+
+  # setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
+  # what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
+  drb_ciphering: yes
+  drb_integrity: no
+
+log_config:
+  global_log_level: info
+  hw_log_level: info
+  phy_log_level: info
+  mac_log_level: info
+  rlc_log_level: info
+  pdcp_log_level: info
+  rrc_log_level: info
+  ngap_log_level: debug
+  f1ap_log_level: debug
diff --git a/ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
index 4e7001638fdaf62001538ff311a11956c2fb2911..448bf45dc474d3e482c0123c57e8614ac17c83ee 100644
--- a/ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
+++ b/ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
@@ -94,7 +94,7 @@ services:
             public_net:
                 ipv4_address: 192.168.71.140
         volumes:
-            - ../../conf_files/gnb.sa.band78.106prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf
+            - ../../conf_files/gnb.sa.band78.106prb.rfsim.yaml:/opt/oai-gnb/etc/gnb.yaml
         healthcheck:
             test: /bin/bash -c "pgrep nr-softmodem"
             interval: 10s
diff --git a/docker/Dockerfile.gNB.aerial.ubuntu22 b/docker/Dockerfile.gNB.aerial.ubuntu22
index dcfe005caa6e7427c3dfe678adf8ad7128e366a4..7440dfc9e83c3fb2379553df42460305d03f1418 100644
--- a/docker/Dockerfile.gNB.aerial.ubuntu22
+++ b/docker/Dockerfile.gNB.aerial.ubuntu22
@@ -78,7 +78,8 @@ RUN apt-get update && \
         iputils-ping \
         gdb \
         moreutils \
-        libusb-1.0-0 && \
+        libusb-1.0-0 \
+        libyaml-cpp-dev && \
     rm -rf /var/lib/apt/lists/*
 
 WORKDIR /opt/oai-gnb/bin
@@ -86,7 +87,10 @@ COPY --from=ran-build \
     /oai-ran/cmake_targets/ran_build/build/nr-softmodem ./
 COPY ./docker/scripts/gnb_entrypoint.sh ./entrypoint.sh
 
-COPY --from=ran-build /oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so /usr/local/lib/
+COPY --from=ran-build \
+  /oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so \
+  /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
+  /usr/local/lib/
 
 #copy files from nvIPC
 COPY --from=ran-build \
@@ -107,4 +111,4 @@ RUN ldconfig && \
 WORKDIR /opt/oai-gnb
 COPY --from=ran-build /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
+CMD ["/opt/oai-gnb/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.aerial.ubuntu22.sanitize-address b/docker/Dockerfile.gNB.aerial.ubuntu22.sanitize-address
index 62c7de33d6c1572d214eb3df28e6f8a103fa3c1f..4d613718b4bfe626179dcd73897e84b12987c006 100644
--- a/docker/Dockerfile.gNB.aerial.ubuntu22.sanitize-address
+++ b/docker/Dockerfile.gNB.aerial.ubuntu22.sanitize-address
@@ -78,7 +78,8 @@ RUN apt-get update && \
         iputils-ping \
         gdb \
         moreutils \
-        libusb-1.0-0 && \
+        libusb-1.0-0 \
+        libyaml-cpp-dev && \
     rm -rf /var/lib/apt/lists/*
 
 WORKDIR /opt/oai-gnb/bin
@@ -92,6 +93,7 @@ COPY --from=ran-build \
     /oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so \
     /oai-ran/cmake_targets/ran_build/build/libdfts.so \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 #copy files from nvIPC
@@ -113,4 +115,4 @@ RUN ldconfig && \
 WORKDIR /opt/oai-gnb
 COPY --from=ran-build /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
+CMD ["/opt/oai-gnb/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.aw2s.rhel9 b/docker/Dockerfile.gNB.aw2s.rhel9
index 0cb4def5fded6ae212dc8866ed6b9b8ed222d6f3..65eafac37b5e8b4d2a6220e82497e0eb3e36f140 100644
--- a/docker/Dockerfile.gNB.aw2s.rhel9
+++ b/docker/Dockerfile.gNB.aw2s.rhel9
@@ -41,6 +41,9 @@ RUN /bin/sh oaienv && \
 FROM registry.access.redhat.com/ubi9/ubi:latest AS oai-gnb-aw2s
 ENV TZ=Europe/Paris
 
+# Install EPEL for RHEL9
+RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
+
 RUN dnf update -y && \
     dnf install -y \
         procps-ng \
@@ -50,7 +53,8 @@ RUN dnf update -y && \
         lksctp-tools \
         tzdata \
         net-tools \
-        iputils && \
+        iputils \
+        yaml-cpp-devel && \
     echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf && \
     echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
 
@@ -69,6 +73,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libdfts.so \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 COPY --from=gnb-base \
@@ -98,4 +103,4 @@ WORKDIR /opt/oai-gnb-aw2s
 
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb-aw2s/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem", "-O", "/opt/oai-gnb-aw2s/etc/gnb.conf"]
+CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.aw2s.rocky b/docker/Dockerfile.gNB.aw2s.rocky
index bdd1eb4e3892b1d4df45f5e4280fec41e9f018f1..1c0adfccd85b0aeb1e790ed78728c65d4c3082f7 100644
--- a/docker/Dockerfile.gNB.aw2s.rocky
+++ b/docker/Dockerfile.gNB.aw2s.rocky
@@ -70,6 +70,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libdfts.so \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 COPY --from=gnb-base \
@@ -96,4 +97,4 @@ WORKDIR /opt/oai-gnb-aw2s
 
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb-aw2s/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem", "-O", "/opt/oai-gnb-aw2s/etc/gnb.conf"]
+CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.aw2s.ubuntu22 b/docker/Dockerfile.gNB.aw2s.ubuntu22
index 1d81423c26fc40c0d7734284996747d2db6a46c2..11893171db2e8756a804b6960eb53e6099da34f3 100644
--- a/docker/Dockerfile.gNB.aw2s.ubuntu22
+++ b/docker/Dockerfile.gNB.aw2s.ubuntu22
@@ -55,7 +55,8 @@ RUN apt-get update && \
         openssl \
         net-tools \
         iproute2 \
-        iputils-ping  && \
+        iputils-ping \
+        libyaml-cpp-dev && \
     rm -rf /var/lib/apt/lists/*
 
 COPY ./libori.so /usr/local/lib/
@@ -73,6 +74,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libdfts.so \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 
@@ -95,4 +97,4 @@ WORKDIR /opt/oai-gnb-aw2s
 
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb-aw2s/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem", "-O", "/opt/oai-gnb-aw2s/etc/gnb.conf"]
+CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.fhi72.rhel9 b/docker/Dockerfile.gNB.fhi72.rhel9
index 0d629ac8a18c24eae463f45c7bf99a8b5ae32095..5f68599873f021d4983086d200148f49c26b0764 100644
--- a/docker/Dockerfile.gNB.fhi72.rhel9
+++ b/docker/Dockerfile.gNB.fhi72.rhel9
@@ -33,6 +33,9 @@ FROM ran-build-fhi72:latest AS gnb-build
 FROM registry.access.redhat.com/ubi9/ubi:latest AS oai-gnb-fhi72
 ENV TZ=Europe/Paris
 
+# Install EPEL for RHEL9
+RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
+
 # Copy the entitlements
 COPY ./etc-pki-entitlement /etc/pki/entitlement
 
@@ -55,7 +58,8 @@ RUN rm -f /etc/rhsm-host && \
         python3 \
         python3-pip \
         net-tools \
-        iputils && \
+        iputils \
+        yaml-cpp-devel && \
     pip3 install six && \
     pip3 install requests && \
     echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf && \
@@ -78,6 +82,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv_ci.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 ## Libxran library
@@ -122,4 +127,4 @@ RUN ldconfig && \
 WORKDIR /opt/oai-gnb
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
+CMD ["/opt/oai-gnb/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.fhi72.rocky b/docker/Dockerfile.gNB.fhi72.rocky
index a98c0b1948cb97eaac952312f89381a5789b242a..3fdc2f97af5770b22f92809a6aba2dcd7469920a 100644
--- a/docker/Dockerfile.gNB.fhi72.rocky
+++ b/docker/Dockerfile.gNB.fhi72.rocky
@@ -70,6 +70,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv_ci.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 ## Libxran library
@@ -114,4 +115,4 @@ RUN ldconfig && \
 WORKDIR /opt/oai-gnb
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
+CMD ["/opt/oai-gnb/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.fhi72.ubuntu22 b/docker/Dockerfile.gNB.fhi72.ubuntu22
index 31f2392af790f19a0e2fc5750981635b077ae4fb..069055d63bb80b5587649fa3803835d4606aadca 100644
--- a/docker/Dockerfile.gNB.fhi72.ubuntu22
+++ b/docker/Dockerfile.gNB.fhi72.ubuntu22
@@ -58,7 +58,8 @@ RUN apt-get update && \
         libnuma-dev \
         python3 \
         python3-six \
-        python3-requests &&\
+        python3-requests \
+        libyaml-cpp-dev && \
 # if the --sanitize option was used to build, additional packages are required
     /bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
         libasan5 \
@@ -80,6 +81,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv_ci.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 ## Libxran library
@@ -110,4 +112,4 @@ RUN ldconfig && \
 WORKDIR /opt/oai-gnb
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
+CMD ["/opt/oai-gnb/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.rhel9 b/docker/Dockerfile.gNB.rhel9
index 625590efade1d944f1e9fb2a58941e290ed1bf46..894d1f6aa7d71abec4983cbbf4c40f3922e2b5f2 100644
--- a/docker/Dockerfile.gNB.rhel9
+++ b/docker/Dockerfile.gNB.rhel9
@@ -34,6 +34,9 @@ FROM ran-build:latest AS gnb-build
 FROM registry.access.redhat.com/ubi9/ubi:latest AS oai-gnb
 ENV TZ=Europe/Paris
 
+# Install EPEL for RHEL9
+RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
+
 RUN dnf update -y && \
     dnf install -y \
         procps-ng \
@@ -46,7 +49,8 @@ RUN dnf update -y && \
         python3 \
         python3-pip \
         net-tools \
-        iputils && \
+        iputils \
+        yaml-cpp-devel && \
     pip3 install six && \
     pip3 install requests && \
     echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf && \
@@ -67,6 +71,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv_ci.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 COPY --from=gnb-base \
@@ -125,4 +130,4 @@ WORKDIR /opt/oai-gnb
 
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
+CMD ["/opt/oai-gnb/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.rocky b/docker/Dockerfile.gNB.rocky
index c1665e5a86909385f9fda8d4c0f99bb693d628b3..5c17c78e57d5ce78f7978b5274343f40e6c64137 100644
--- a/docker/Dockerfile.gNB.rocky
+++ b/docker/Dockerfile.gNB.rocky
@@ -68,6 +68,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv_ci.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 COPY --from=gnb-base \
@@ -123,4 +124,4 @@ WORKDIR /opt/oai-gnb
 
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
+CMD ["/opt/oai-gnb/bin/nr-softmodem"]
diff --git a/docker/Dockerfile.gNB.ubuntu22 b/docker/Dockerfile.gNB.ubuntu22
index 6213ed0ca3791da23ad52da193c5c9210d01795c..8d154eeb13a871e434a9e4ed82b35e99e9fe7202 100644
--- a/docker/Dockerfile.gNB.ubuntu22
+++ b/docker/Dockerfile.gNB.ubuntu22
@@ -63,7 +63,8 @@ RUN apt-get update && \
         python3 \
         python3-six \
         python3-requests \
-        libusb-1.0-0 && \
+        libusb-1.0-0 \
+        libyaml-cpp-dev && \
 # if the --sanitize option was used to build, additional packages are required
     /bin/bash -c 'if [[ "$BUILD_OPTION" = "--sanitize" ]]; then DEBIAN_FRONTEND=noninteractive apt-get install --yes \
         #libasan5 \ # see below
@@ -93,6 +94,7 @@ COPY --from=gnb-build \
     /oai-ran/cmake_targets/ran_build/build/libldpc*.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
     /oai-ran/cmake_targets/ran_build/build/libtelnetsrv_ci.so \
+    /oai-ran/cmake_targets/ran_build/build/libparams_yaml.so \
     /usr/local/lib/
 
 # Now we are copying from builder-image the UHD files.
@@ -128,4 +130,4 @@ WORKDIR /opt/oai-gnb
 
 COPY --from=gnb-base /tini /tini
 ENTRYPOINT ["/tini", "-v", "--", "/opt/oai-gnb/bin/entrypoint.sh"]
-CMD ["/opt/oai-gnb/bin/nr-softmodem", "-O", "/opt/oai-gnb/etc/gnb.conf"]
+CMD ["/opt/oai-gnb/bin/nr-softmodem"]
diff --git a/docker/scripts/gnb-aw2s_entrypoint.sh b/docker/scripts/gnb-aw2s_entrypoint.sh
index 7085800d1312ff11bf36cb336870c171fd51b7f3..7df325d78b5c535a4d45d0c99fa4d5a565cb5808 100755
--- a/docker/scripts/gnb-aw2s_entrypoint.sh
+++ b/docker/scripts/gnb-aw2s_entrypoint.sh
@@ -9,14 +9,29 @@ echo "=================================="
 echo "/proc/sys/kernel/core_pattern=$(cat /proc/sys/kernel/core_pattern)"
 
 if [ ! -f $CONFIGFILE ]; then
-  echo "No configuration file found: please mount at $CONFIGFILE"
-  exit 255
+  echo "No configuration file $CONFIGFILE found: attempting to find YAML config"
+  YAML_CONFIGFILE=$PREFIX/etc/gnb.yaml
+  if [ ! -f $YAML_CONFIGFILE ]; then
+    echo "No configuration file $YAML_CONFIGFILE found. Please mount either at $CONFIGFILE or $YAML_CONFIGFILE"
+    exit 255
+  fi
+  CONFIGFILE=$YAML_CONFIGFILE
 fi
 
 echo "=================================="
 echo "== Configuration file:"
 cat $CONFIGFILE
 
+new_args=()
+
+while [[ $# -gt 0 ]]; do
+  new_args+=("$1")
+  shift
+done
+
+new_args+=("-O")
+new_args+=("$CONFIGFILE")
+
 # enable printing of stack traces on assert
 export OAI_GDBSTACKS=1
 
@@ -24,7 +39,6 @@ echo "=================================="
 echo "== Starting gNB soft modem with AW2S"
 if [[ -v USE_ADDITIONAL_OPTIONS ]]; then
     echo "Additional option(s): ${USE_ADDITIONAL_OPTIONS}"
-    new_args=()
     while [[ $# -gt 0 ]]; do
         new_args+=("$1")
         shift
@@ -35,6 +49,6 @@ if [[ -v USE_ADDITIONAL_OPTIONS ]]; then
     echo "${new_args[@]}"
     exec "${new_args[@]}"
 else
-    echo "$@"
-    exec "$@"
+    echo "${new_args[@]}"
+    exec "${new_args[@]}"
 fi
diff --git a/docker/scripts/gnb_entrypoint.sh b/docker/scripts/gnb_entrypoint.sh
index 9253d4a3e1a6ed1cbeccf1c2fe66ea7b5ff74e28..7139bff0ecd411e4a3b787f7341b83eac8fcb946 100755
--- a/docker/scripts/gnb_entrypoint.sh
+++ b/docker/scripts/gnb_entrypoint.sh
@@ -9,14 +9,29 @@ echo "=================================="
 echo "/proc/sys/kernel/core_pattern=$(cat /proc/sys/kernel/core_pattern)"
 
 if [ ! -f $CONFIGFILE ]; then
-  echo "No configuration file found: please mount at $CONFIGFILE"
-  exit 255
+  echo "No configuration file $CONFIGFILE found: attempting to find YAML config"
+  YAML_CONFIGFILE=$PREFIX/etc/gnb.yaml
+  if [ ! -f $YAML_CONFIGFILE ]; then
+    echo "No configuration file $YAML_CONFIGFILE found. Please mount either at $CONFIGFILE or $YAML_CONFIGFILE"
+    exit 255
+  fi
+  CONFIGFILE=$YAML_CONFIGFILE
 fi
 
 echo "=================================="
 echo "== Configuration file:"
 cat $CONFIGFILE
 
+new_args=()
+
+while [[ $# -gt 0 ]]; do
+  new_args+=("$1")
+  shift
+done
+
+new_args+=("-O")
+new_args+=("$CONFIGFILE")
+
 # Load the USRP binaries
 echo "=================================="
 echo "== Load USRP binaries"
@@ -35,7 +50,6 @@ echo "=================================="
 echo "== Starting gNB soft modem"
 if [[ -v USE_ADDITIONAL_OPTIONS ]]; then
     echo "Additional option(s): ${USE_ADDITIONAL_OPTIONS}"
-    new_args=()
     while [[ $# -gt 0 ]]; do
         new_args+=("$1")
         shift
@@ -46,6 +60,6 @@ if [[ -v USE_ADDITIONAL_OPTIONS ]]; then
     echo "${new_args[@]}"
     exec "${new_args[@]}"
 else
-    echo "$@"
-    exec "$@"
+    echo "${new_args[@]}"
+    exec "${new_args[@]}"
 fi