Merge remote-tracking branch 'origin/develop' into NR_pdcch_improvements
This commit is contained in:
@@ -606,6 +606,9 @@ class Containerize():
|
|||||||
HTML.CreateHtmlTestRow(RAN.runtime_stats, 'KO', logStatus)
|
HTML.CreateHtmlTestRow(RAN.runtime_stats, 'KO', logStatus)
|
||||||
else:
|
else:
|
||||||
HTML.CreateHtmlTestRow(RAN.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
|
HTML.CreateHtmlTestRow(RAN.runtime_stats, 'OK', CONST.ALL_PROCESSES_OK)
|
||||||
|
# all the xNB run logs shall be on the server 0 for logCollecting
|
||||||
|
if self.eNB_serverId[self.eNB_instance] != '0':
|
||||||
|
mySSH.copyout(self.eNBIPAddress, self.eNBUserName, self.eNBPassword, './' + self.eNB_logFile[self.eNB_instance], self.eNBSourceCodePath + '/cmake_targets/')
|
||||||
logging.info('\u001B[1m Undeploying OAI Object Pass\u001B[0m')
|
logging.info('\u001B[1m Undeploying OAI Object Pass\u001B[0m')
|
||||||
|
|
||||||
def DeployGenObject(self, HTML):
|
def DeployGenObject(self, HTML):
|
||||||
@@ -638,7 +641,7 @@ class Containerize():
|
|||||||
cmd = 'cd ' + self.yamlPath[0] + ' && docker-compose -f docker-compose-ci.yml up -d ' + self.services[0]
|
cmd = 'cd ' + self.yamlPath[0] + ' && docker-compose -f docker-compose-ci.yml up -d ' + self.services[0]
|
||||||
logging.debug(cmd)
|
logging.debug(cmd)
|
||||||
try:
|
try:
|
||||||
deployStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=30)
|
deployStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=100)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.exitStatus = 1
|
self.exitStatus = 1
|
||||||
logging.error('Could not deploy')
|
logging.error('Could not deploy')
|
||||||
@@ -651,7 +654,7 @@ class Containerize():
|
|||||||
healthy = 0
|
healthy = 0
|
||||||
while (count < 10):
|
while (count < 10):
|
||||||
count += 1
|
count += 1
|
||||||
deployStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=10)
|
deployStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=30)
|
||||||
healthy = 0
|
healthy = 0
|
||||||
for state in deployStatus.split('\n'):
|
for state in deployStatus.split('\n'):
|
||||||
res = re.search('Up \(healthy\)', state)
|
res = re.search('Up \(healthy\)', state)
|
||||||
@@ -683,7 +686,7 @@ class Containerize():
|
|||||||
# if the containers are running, recover the logs!
|
# if the containers are running, recover the logs!
|
||||||
cmd = 'cd ' + self.yamlPath[0] + ' && docker-compose -f docker-compose-ci.yml ps --all'
|
cmd = 'cd ' + self.yamlPath[0] + ' && docker-compose -f docker-compose-ci.yml ps --all'
|
||||||
logging.debug(cmd)
|
logging.debug(cmd)
|
||||||
deployStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=10)
|
deployStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=30)
|
||||||
anyLogs = False
|
anyLogs = False
|
||||||
for state in deployStatus.split('\n'):
|
for state in deployStatus.split('\n'):
|
||||||
res = re.search('Name|----------', state)
|
res = re.search('Name|----------', state)
|
||||||
@@ -697,7 +700,7 @@ class Containerize():
|
|||||||
cName = res.group('container_name')
|
cName = res.group('container_name')
|
||||||
cmd = 'cd ' + self.yamlPath[0] + ' && docker logs ' + cName + ' > ' + cName + '.log 2>&1'
|
cmd = 'cd ' + self.yamlPath[0] + ' && docker logs ' + cName + ' > ' + cName + '.log 2>&1'
|
||||||
logging.debug(cmd)
|
logging.debug(cmd)
|
||||||
deployStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=10)
|
deployStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=30)
|
||||||
if anyLogs:
|
if anyLogs:
|
||||||
cmd = 'mkdir -p ../cmake_targets/log && mv ' + self.yamlPath[0] + '/*.log ../cmake_targets/log'
|
cmd = 'mkdir -p ../cmake_targets/log && mv ' + self.yamlPath[0] + '/*.log ../cmake_targets/log'
|
||||||
logging.debug(cmd)
|
logging.debug(cmd)
|
||||||
@@ -805,7 +808,7 @@ class Containerize():
|
|||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
cmd = 'docker cp ' + self.svrContName + ':/tmp/iperf_server.log ../cmake_targets/log/iperf_server_' + HTML.testCase_id + '.log'
|
cmd = 'docker cp ' + self.svrContName + ':/tmp/iperf_server.log ../cmake_targets/log/iperf_server_' + HTML.testCase_id + '.log'
|
||||||
logging.debug(cmd)
|
logging.debug(cmd)
|
||||||
serverStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=10)
|
serverStatus = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, universal_newlines=True, timeout=30)
|
||||||
|
|
||||||
# Analyze client output
|
# Analyze client output
|
||||||
result = re.search('Server Report:', clientStatus)
|
result = re.search('Server Report:', clientStatus)
|
||||||
|
|||||||
@@ -51,7 +51,6 @@
|
|||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#include <form.h>
|
|
||||||
#include "common/utils/load_module_shlib.h"
|
#include "common/utils/load_module_shlib.h"
|
||||||
#include "common/config/config_userapi.h"
|
#include "common/config/config_userapi.h"
|
||||||
#include "common/utils/threadPool/thread-pool.h"
|
#include "common/utils/threadPool/thread-pool.h"
|
||||||
|
|||||||
+4
-2
@@ -307,8 +307,10 @@ The following features are valid for the gNB and the 5G-NR UE.
|
|||||||
- MAC <-> PHY data interface using FAPI P7 interface for BCH PDU, DCI PDU, PDSCH PDU
|
- MAC <-> PHY data interface using FAPI P7 interface for BCH PDU, DCI PDU, PDSCH PDU
|
||||||
- Scheduler procedures for SIB1
|
- Scheduler procedures for SIB1
|
||||||
- Scheduler procedures for RA
|
- Scheduler procedures for RA
|
||||||
- Contention free RA procedure
|
- Contention Free RA procedure
|
||||||
- Contention based RA procedure
|
- Contention Based RA procedure
|
||||||
|
- Msg3 can transfer uplink CCCH, DTCH or DCCH messages
|
||||||
|
- CBRA can be performed using MAC CE or C-RNTI
|
||||||
- Scheduler procedures for CSI-RS
|
- Scheduler procedures for CSI-RS
|
||||||
- MAC downlink scheduler
|
- MAC downlink scheduler
|
||||||
- phy-test scheduler (fixed allocation and usable also without UE)
|
- phy-test scheduler (fixed allocation and usable also without UE)
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
|
|||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --eNB --ninja -w USRP --verbose-ci
|
./build_oai --eNB --ninja -w USRP --verbose-ci
|
||||||
|
|
||||||
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
|
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml && \
|
||||||
|
cp /oai-ran/docker/scripts/enb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-enb
|
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-enb
|
||||||
@@ -62,42 +63,43 @@ RUN yum update -y && \
|
|||||||
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
||||||
|
|
||||||
WORKDIR /opt/oai-enb/bin
|
WORKDIR /opt/oai-enb/bin
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/lte-softmodem.Rel15 .
|
COPY --from=enb-build \
|
||||||
COPY --from=enb-build /oai-ran/docker/scripts/enb_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/lte-softmodem.Rel15 \
|
||||||
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=enb-build \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/libcoding.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=enb-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
COPY --from=enb-build /oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so .
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
|
/oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
|
/usr/local/lib/libprotobuf-c.so.1 \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
|
./
|
||||||
|
|
||||||
COPY --from=enb-build /usr/local/lib/libprotobuf-c.so.1 .
|
COPY --from=enb-build \
|
||||||
|
/lib64/libconfig.so.9 \
|
||||||
COPY --from=enb-build /lib64/libconfig.so.9 /lib64
|
/lib64/libblas.so.3 \
|
||||||
COPY --from=enb-build /lib64/libblas.so.3 /lib64
|
/lib64/liblapack.so.3 \
|
||||||
COPY --from=enb-build /lib64/liblapack.so.3 /lib64
|
/lib64/liblapacke.so.3 \
|
||||||
COPY --from=enb-build /lib64/liblapacke.so.3 /lib64
|
/lib64/libboost_chrono.so.1.66.0 \
|
||||||
|
/lib64/libboost_date_time.so.1.66.0 \
|
||||||
|
/lib64/libboost_filesystem.so.1.66.0 \
|
||||||
|
/lib64/libboost_program_options.so.1.66.0 \
|
||||||
|
/lib64/libboost_serialization.so.1.66.0 \
|
||||||
|
/lib64/libboost_thread.so.1.66.0 \
|
||||||
|
/lib64/libboost_system.so.1.66.0 \
|
||||||
|
/lib64/libboost_unit_test_framework.so.1.66.0 \
|
||||||
|
/lib64/libboost_atomic.so.1.66.0 \
|
||||||
|
/lib64/libboost_timer.so.1.66.0 \
|
||||||
|
/lib64/libboost_regex.so.1.66.0 \
|
||||||
|
/lib64/
|
||||||
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=enb-build /lib64/libboost_chrono.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_date_time.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_filesystem.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_program_options.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_serialization.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_thread.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_system.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_atomic.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_timer.so.1.66.0 /lib64
|
|
||||||
COPY --from=enb-build /lib64/libboost_regex.so.1.66.0 /lib64
|
|
||||||
|
|
||||||
COPY --from=enb-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=enb-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=enb-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
COPY --from=enb-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
||||||
COPY --from=enb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-enb/bin
|
COPY --from=enb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-enb/bin
|
||||||
@@ -105,7 +107,10 @@ COPY --from=enb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/o
|
|||||||
WORKDIR /usr/local/share/uhd/rfnoc
|
WORKDIR /usr/local/share/uhd/rfnoc
|
||||||
COPY --from=enb-build /usr/local/share/uhd/rfnoc/ .
|
COPY --from=enb-build /usr/local/share/uhd/rfnoc/ .
|
||||||
|
|
||||||
RUN ldconfig
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
# Copy the relevant configuration files for eNB
|
# Copy the relevant configuration files for eNB
|
||||||
WORKDIR /opt/oai-enb/etc
|
WORKDIR /opt/oai-enb/etc
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
|
|||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --eNB --ninja -w USRP --verbose-ci
|
./build_oai --eNB --ninja -w USRP --verbose-ci
|
||||||
|
|
||||||
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
|
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml && \
|
||||||
|
cp /oai-ran/docker/scripts/enb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM ubuntu:bionic as oai-enb
|
FROM ubuntu:bionic as oai-enb
|
||||||
@@ -48,6 +49,7 @@ RUN apt-get update && \
|
|||||||
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
|
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
|
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
|
||||||
software-properties-common \
|
software-properties-common \
|
||||||
|
tzdata \
|
||||||
procps \
|
procps \
|
||||||
libsctp1 \
|
libsctp1 \
|
||||||
libnettle6 \
|
libnettle6 \
|
||||||
@@ -68,37 +70,43 @@ RUN apt-get update && \
|
|||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /opt/oai-enb/bin
|
WORKDIR /opt/oai-enb/bin
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/lte-softmodem.Rel15 .
|
COPY --from=enb-build \
|
||||||
COPY --from=enb-build /oai-ran/docker/scripts/enb_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/lte-softmodem.Rel15 \
|
||||||
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=enb-build \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/libcoding.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=enb-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=enb-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
COPY --from=enb-build /oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so .
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
|
/oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
|
/usr/local/lib/libprotobuf-c.so.1 \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
|
./
|
||||||
|
|
||||||
COPY --from=enb-build /usr/local/lib/libprotobuf-c.so.1 .
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=enb-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=enb-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=enb-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
COPY --from=enb-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
||||||
COPY --from=enb-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-enb/bin
|
COPY --from=enb-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-enb/bin
|
||||||
WORKDIR /usr/lib/x86_64-linux-gnu
|
WORKDIR /usr/lib/x86_64-linux-gnu
|
||||||
COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
|
COPY --from=enb-build \
|
||||||
COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
|
||||||
COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
|
||||||
COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
|
||||||
COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
|
||||||
COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
|
||||||
COPY --from=enb-build /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 \
|
||||||
|
./
|
||||||
|
|
||||||
RUN ldconfig
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
# Copy the relevant configuration files for eNB
|
# Copy the relevant configuration files for eNB
|
||||||
WORKDIR /opt/oai-enb/etc
|
WORKDIR /opt/oai-enb/etc
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
|
|||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --gNB --ninja -w USRP --verbose-ci
|
./build_oai --gNB --ninja -w USRP --verbose-ci
|
||||||
|
|
||||||
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml
|
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml && \
|
||||||
|
cp /oai-ran/docker/scripts/gnb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-gnb
|
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-gnb
|
||||||
@@ -64,46 +65,47 @@ RUN yum repolist --disablerepo=* && \
|
|||||||
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
||||||
|
|
||||||
WORKDIR /opt/oai-gnb/bin
|
WORKDIR /opt/oai-gnb/bin
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/nr-softmodem.Rel15 .
|
COPY --from=gnb-build \
|
||||||
COPY --from=gnb-build /oai-ran/docker/scripts/gnb_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/nr-softmodem.Rel15 \
|
||||||
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=gnb-build \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/libcoding.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc.so .
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
|
||||||
|
/usr/local/lib/libprotobuf-c.so.1 \
|
||||||
|
./
|
||||||
|
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
|
COPY --from=gnb-build \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
|
/lib64/libconfig.so.9 \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
|
/lib64/libforms.so.2 \
|
||||||
COPY --from=gnb-build /usr/local/lib/libprotobuf-c.so.1 .
|
/lib64/libblas.so.3 \
|
||||||
|
/lib64/liblapack.so.3 \
|
||||||
COPY --from=gnb-build /lib64/libconfig.so.9 /lib64
|
/lib64/liblapacke.so.3 \
|
||||||
COPY --from=gnb-build /lib64/libforms.so.2 /lib64
|
/lib64/libboost_chrono.so.1.66.0 \
|
||||||
COPY --from=gnb-build /lib64/libblas.so.3 /lib64
|
/lib64/libboost_date_time.so.1.66.0 \
|
||||||
COPY --from=gnb-build /lib64/liblapack.so.3 /lib64
|
/lib64/libboost_filesystem.so.1.66.0 \
|
||||||
COPY --from=gnb-build /lib64/liblapacke.so.3 /lib64
|
/lib64/libboost_program_options.so.1.66.0 \
|
||||||
|
/lib64/libboost_serialization.so.1.66.0 \
|
||||||
|
/lib64/libboost_thread.so.1.66.0 \
|
||||||
|
/lib64/libboost_system.so.1.66.0 \
|
||||||
|
/lib64/libboost_unit_test_framework.so.1.66.0 \
|
||||||
|
/lib64/libboost_atomic.so.1.66.0 \
|
||||||
|
/lib64/libboost_timer.so.1.66.0 \
|
||||||
|
/lib64/libboost_regex.so.1.66.0 \
|
||||||
|
/lib64/
|
||||||
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=gnb-build /lib64/libboost_chrono.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_date_time.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_filesystem.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_program_options.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_serialization.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_thread.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_system.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_atomic.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_timer.so.1.66.0 /lib64
|
|
||||||
COPY --from=gnb-build /lib64/libboost_regex.so.1.66.0 /lib64
|
|
||||||
|
|
||||||
COPY --from=gnb-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=gnb-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=gnb-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
COPY --from=gnb-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
||||||
COPY --from=gnb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin
|
COPY --from=gnb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin
|
||||||
@@ -111,7 +113,10 @@ COPY --from=gnb-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/o
|
|||||||
WORKDIR /usr/local/share/uhd/rfnoc
|
WORKDIR /usr/local/share/uhd/rfnoc
|
||||||
COPY --from=gnb-build /usr/local/share/uhd/rfnoc/ .
|
COPY --from=gnb-build /usr/local/share/uhd/rfnoc/ .
|
||||||
|
|
||||||
RUN ldconfig
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
# Copy the relevant configuration files for gNB
|
# Copy the relevant configuration files for gNB
|
||||||
WORKDIR /opt/oai-gnb/etc
|
WORKDIR /opt/oai-gnb/etc
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
|
|||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --gNB --ninja -w USRP --verbose-ci
|
./build_oai --gNB --ninja -w USRP --verbose-ci
|
||||||
|
|
||||||
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml
|
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml && \
|
||||||
|
cp /oai-ran/docker/scripts/gnb_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM ubuntu:bionic as oai-gnb
|
FROM ubuntu:bionic as oai-gnb
|
||||||
@@ -68,41 +69,46 @@ RUN apt-get update && \
|
|||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /opt/oai-gnb/bin
|
WORKDIR /opt/oai-gnb/bin
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/nr-softmodem.Rel15 .
|
COPY --from=gnb-build \
|
||||||
COPY --from=gnb-build /oai-ran/docker/scripts/gnb_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/nr-softmodem.Rel15 \
|
||||||
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=gnb-build \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/libcoding.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=gnb-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc.so .
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
|
||||||
COPY --from=gnb-build /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
|
/usr/local/lib/libprotobuf-c.so.1 \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
|
./
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
|
|
||||||
COPY --from=gnb-build /usr/local/lib/libprotobuf-c.so.1 .
|
|
||||||
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=gnb-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=gnb-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=gnb-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
COPY --from=gnb-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
||||||
COPY --from=gnb-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin
|
COPY --from=gnb-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin
|
||||||
WORKDIR /usr/lib/x86_64-linux-gnu
|
WORKDIR /usr/lib/x86_64-linux-gnu
|
||||||
COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
|
COPY --from=gnb-build \
|
||||||
COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
|
||||||
COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
|
||||||
COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
|
||||||
COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
|
||||||
COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
|
||||||
COPY --from=gnb-build /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 \
|
||||||
|
./
|
||||||
|
|
||||||
RUN ldconfig
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
# Copy the relevant configuration files for gNB
|
# Copy the relevant configuration files for gNB
|
||||||
WORKDIR /opt/oai-gnb/etc
|
WORKDIR /opt/oai-gnb/etc
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
|
|||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --RU --ninja -w USRP --verbose-ci
|
./build_oai --RU --ninja -w USRP --verbose-ci
|
||||||
|
|
||||||
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
|
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml && \
|
||||||
|
cp /oai-ran/docker/scripts/lte_ru_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-lte-ru
|
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-lte-ru
|
||||||
@@ -59,35 +60,40 @@ RUN yum update -y && \
|
|||||||
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
||||||
|
|
||||||
WORKDIR /opt/oai-lte-ru/bin
|
WORKDIR /opt/oai-lte-ru/bin
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/oairu.Rel15 .
|
COPY --from=ru-build \
|
||||||
COPY --from=ru-build /oai-ran/docker/scripts/lte_ru_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/oairu.Rel15 \
|
||||||
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
|
.
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=ru-build \
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=ru-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
|
./
|
||||||
|
|
||||||
COPY --from=ru-build /lib64/libconfig.so.9 /lib64
|
COPY --from=ru-build \
|
||||||
COPY --from=ru-build /lib64/libblas.so.3 /lib64
|
/lib64/libconfig.so.9 \
|
||||||
COPY --from=ru-build /lib64/liblapack.so.3 /lib64
|
/lib64/libblas.so.3 \
|
||||||
COPY --from=ru-build /lib64/liblapacke.so.3 /lib64
|
/lib64/liblapack.so.3 \
|
||||||
|
/lib64/liblapacke.so.3 \
|
||||||
|
/lib64/libboost_chrono.so.1.66.0 \
|
||||||
|
/lib64/libboost_date_time.so.1.66.0 \
|
||||||
|
/lib64/libboost_filesystem.so.1.66.0 \
|
||||||
|
/lib64/libboost_program_options.so.1.66.0 \
|
||||||
|
/lib64/libboost_serialization.so.1.66.0 \
|
||||||
|
/lib64/libboost_thread.so.1.66.0 \
|
||||||
|
/lib64/libboost_system.so.1.66.0 \
|
||||||
|
/lib64/libboost_unit_test_framework.so.1.66.0 \
|
||||||
|
/lib64/libboost_atomic.so.1.66.0 \
|
||||||
|
/lib64/libboost_timer.so.1.66.0 \
|
||||||
|
/lib64/libboost_regex.so.1.66.0 \
|
||||||
|
/lib64/
|
||||||
|
|
||||||
# Copying from the ran-build image the USRP needed packages
|
# Copying from the ran-build image the USRP needed packages
|
||||||
COPY --from=ru-build /lib64/libboost_chrono.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_date_time.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_filesystem.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_program_options.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_serialization.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_thread.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_system.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_atomic.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_timer.so.1.66.0 /lib64
|
|
||||||
COPY --from=ru-build /lib64/libboost_regex.so.1.66.0 /lib64
|
|
||||||
|
|
||||||
COPY --from=ru-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=ru-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=ru-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
COPY --from=ru-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
||||||
COPY --from=ru-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
|
COPY --from=ru-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ RUN /bin/sh oaienv && \
|
|||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --RU --ninja -w USRP --verbose-ci
|
./build_oai --RU --ninja -w USRP --verbose-ci
|
||||||
|
|
||||||
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml
|
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/enb_parameters.yaml && \
|
||||||
|
cp /oai-ran/docker/scripts/lte_ru_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM ubuntu:bionic as oai-lte-ru
|
FROM ubuntu:bionic as oai-lte-ru
|
||||||
@@ -64,28 +65,35 @@ RUN apt-get update && \
|
|||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /opt/oai-lte-ru/bin
|
WORKDIR /opt/oai-lte-ru/bin
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/oairu.Rel15 .
|
COPY --from=ru-build \
|
||||||
COPY --from=ru-build /oai-ran/docker/scripts/lte_ru_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/oairu.Rel15 \
|
||||||
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=ru-build \
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=ru-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=ru-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
|
./
|
||||||
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=ru-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=ru-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=ru-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
COPY --from=ru-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
||||||
COPY --from=ru-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
|
COPY --from=ru-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
|
||||||
|
|
||||||
WORKDIR /usr/lib/x86_64-linux-gnu
|
WORKDIR /usr/lib/x86_64-linux-gnu
|
||||||
COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
|
COPY --from=ru-build \
|
||||||
COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
|
||||||
COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
|
||||||
COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
|
||||||
COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
|
||||||
COPY --from=ru-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
|
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
|
||||||
|
./
|
||||||
|
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ RUN /bin/sh oaienv && \
|
|||||||
./build_oai --UE --ninja -w USRP --verbose-ci
|
./build_oai --UE --ninja -w USRP --verbose-ci
|
||||||
|
|
||||||
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_parameters.yaml && \
|
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_parameters.yaml && \
|
||||||
python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml
|
python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml && \
|
||||||
|
cp /oai-ran/docker/scripts/lte_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-lte-ue
|
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-lte-ue
|
||||||
@@ -63,45 +64,46 @@ RUN yum update -y && \
|
|||||||
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
||||||
|
|
||||||
WORKDIR /opt/oai-lte-ue/bin
|
WORKDIR /opt/oai-lte-ue/bin
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/lte-uesoftmodem.Rel15 .
|
COPY --from=lte-ue-build \
|
||||||
COPY --from=lte-ue-build /oai-ran/docker/scripts/lte_ue_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/lte-uesoftmodem.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/conf2uedata .
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/nvram .
|
/oai-ran/targets/bin/conf2uedata \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/usim .
|
/oai-ran/targets/bin/nvram \
|
||||||
|
/oai-ran/targets/bin/usim \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=lte-ue-build \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/libcoding.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=lte-ue-build /oai-ran/cmake_targets/ran_build/build/libSIMU.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
COPY --from=lte-ue-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/cmake_targets/ran_build/build/libSIMU.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
|
/usr/local/lib/libprotobuf-c.so.1 \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
|
./
|
||||||
|
|
||||||
COPY --from=lte-ue-build /usr/local/lib/libprotobuf-c.so.1 .
|
COPY --from=lte-ue-build \
|
||||||
|
/lib64/libconfig.so.9 \
|
||||||
COPY --from=lte-ue-build /lib64/libconfig.so.9 /lib64
|
/lib64/libblas.so.3 \
|
||||||
COPY --from=lte-ue-build /lib64/libblas.so.3 /lib64
|
/lib64/liblapack.so.3 \
|
||||||
COPY --from=lte-ue-build /lib64/liblapack.so.3 /lib64
|
/lib64/liblapacke.so.3 \
|
||||||
COPY --from=lte-ue-build /lib64/liblapacke.so.3 /lib64
|
/lib64/libboost_chrono.so.1.66.0 \
|
||||||
|
/lib64/libboost_date_time.so.1.66.0 \
|
||||||
|
/lib64/libboost_filesystem.so.1.66.0 \
|
||||||
|
/lib64/libboost_program_options.so.1.66.0 \
|
||||||
|
/lib64/libboost_serialization.so.1.66.0 \
|
||||||
|
/lib64/libboost_thread.so.1.66.0 \
|
||||||
|
/lib64/libboost_system.so.1.66.0 \
|
||||||
|
/lib64/libboost_unit_test_framework.so.1.66.0 \
|
||||||
|
/lib64/libboost_atomic.so.1.66.0 \
|
||||||
|
/lib64/libboost_timer.so.1.66.0 \
|
||||||
|
/lib64/libboost_regex.so.1.66.0 \
|
||||||
|
/lib64/
|
||||||
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=lte-ue-build /lib64/libboost_chrono.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_date_time.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_filesystem.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_program_options.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_serialization.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_thread.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_system.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_atomic.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_timer.so.1.66.0 /lib64
|
|
||||||
COPY --from=lte-ue-build /lib64/libboost_regex.so.1.66.0 /lib64
|
|
||||||
|
|
||||||
COPY --from=lte-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=lte-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=lte-ue-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
COPY --from=lte-ue-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
||||||
COPY --from=lte-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ue/bin
|
COPY --from=lte-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ue/bin
|
||||||
@@ -109,7 +111,10 @@ COPY --from=lte-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /op
|
|||||||
WORKDIR /usr/local/share/uhd/rfnoc
|
WORKDIR /usr/local/share/uhd/rfnoc
|
||||||
COPY --from=lte-ue-build /usr/local/share/uhd/rfnoc/ .
|
COPY --from=lte-ue-build /usr/local/share/uhd/rfnoc/ .
|
||||||
|
|
||||||
RUN ldconfig
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
# Copy the relevant configuration files for UE
|
# Copy the relevant configuration files for UE
|
||||||
WORKDIR /opt/oai-lte-ue/etc
|
WORKDIR /opt/oai-lte-ue/etc
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ RUN /bin/sh oaienv && \
|
|||||||
./build_oai --UE --ninja -w USRP --verbose-ci
|
./build_oai --UE --ninja -w USRP --verbose-ci
|
||||||
|
|
||||||
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_parameters.yaml && \
|
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_parameters.yaml && \
|
||||||
python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml
|
python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml && \
|
||||||
|
cp /oai-ran/docker/scripts/lte_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM ubuntu:bionic as oai-lte-ue
|
FROM ubuntu:bionic as oai-lte-ue
|
||||||
@@ -49,6 +50,7 @@ RUN apt-get update && \
|
|||||||
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
|
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
|
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
|
||||||
software-properties-common \
|
software-properties-common \
|
||||||
|
tzdata \
|
||||||
procps \
|
procps \
|
||||||
libsctp1 \
|
libsctp1 \
|
||||||
libnettle6 \
|
libnettle6 \
|
||||||
@@ -69,41 +71,47 @@ RUN apt-get update && \
|
|||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /opt/oai-lte-ue/bin
|
WORKDIR /opt/oai-lte-ue/bin
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/lte-uesoftmodem.Rel15 .
|
COPY --from=lte-ue-build \
|
||||||
COPY --from=lte-ue-build /oai-ran/docker/scripts/lte_ue_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/lte-uesoftmodem.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/conf2uedata .
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/nvram .
|
/oai-ran/targets/bin/conf2uedata \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/usim .
|
/oai-ran/targets/bin/nvram \
|
||||||
|
/oai-ran/targets/bin/usim \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=lte-ue-build \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/libcoding.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=lte-ue-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=lte-ue-build /oai-ran/cmake_targets/ran_build/build/libSIMU.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
COPY --from=lte-ue-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/cmake_targets/ran_build/build/libSIMU.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
|
/usr/local/lib/libprotobuf-c.so.1 \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
|
./
|
||||||
|
|
||||||
COPY --from=lte-ue-build /usr/local/lib/libprotobuf-c.so.1 .
|
|
||||||
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=lte-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=lte-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=lte-ue-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
COPY --from=lte-ue-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
||||||
COPY --from=lte-ue-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ue/bin
|
COPY --from=lte-ue-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ue/bin
|
||||||
WORKDIR /usr/lib/x86_64-linux-gnu
|
|
||||||
COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
|
|
||||||
COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
|
|
||||||
COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
|
|
||||||
COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
|
|
||||||
COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
|
|
||||||
COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
|
|
||||||
COPY --from=lte-ue-build /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 .
|
|
||||||
|
|
||||||
RUN ldconfig
|
WORKDIR /usr/lib/x86_64-linux-gnu
|
||||||
|
COPY --from=lte-ue-build \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 \
|
||||||
|
./
|
||||||
|
|
||||||
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
# Copy the relevant configuration files for UE
|
# Copy the relevant configuration files for UE
|
||||||
WORKDIR /opt/oai-lte-ue/etc
|
WORKDIR /opt/oai-lte-ue/etc
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ COPY . .
|
|||||||
RUN /bin/sh oaienv && \
|
RUN /bin/sh oaienv && \
|
||||||
cd cmake_targets && \
|
cd cmake_targets && \
|
||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --nrUE --ninja -w USRP --verbose-ci
|
./build_oai --nrUE --ninja -w USRP --verbose-ci && \
|
||||||
|
cp /oai-ran/docker/scripts/nr_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-nr-ue
|
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-nr-ue
|
||||||
@@ -62,49 +63,50 @@ RUN yum update -y && \
|
|||||||
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
||||||
|
|
||||||
WORKDIR /opt/oai-nr-ue/bin
|
WORKDIR /opt/oai-nr-ue/bin
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/nr-uesoftmodem.Rel15 .
|
COPY --from=nr-ue-build \
|
||||||
COPY --from=nr-ue-build /oai-ran/docker/scripts/nr_ue_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/nr-uesoftmodem.Rel15 \
|
||||||
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /opt/oai-nr-ue/etc
|
WORKDIR /opt/oai-nr-ue/etc
|
||||||
COPY --from=nr-ue-build /oai-ran/ci-scripts/conf_files/nr-ue-sim.conf .
|
COPY --from=nr-ue-build /oai-ran/ci-scripts/conf_files/nr-ue-sim.conf .
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=nr-ue-build \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/libcoding.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc.so .
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
|
/oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
|
/usr/local/lib/libprotobuf-c.so.1 \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
|
./
|
||||||
|
|
||||||
COPY --from=nr-ue-build /usr/local/lib/libprotobuf-c.so.1 .
|
COPY --from=nr-ue-build \
|
||||||
|
/lib64/libconfig.so.9 \
|
||||||
COPY --from=nr-ue-build /lib64/libconfig.so.9 /lib64
|
/lib64/libblas.so.3 \
|
||||||
COPY --from=nr-ue-build /lib64/libblas.so.3 /lib64
|
/lib64/liblapack.so.3 \
|
||||||
COPY --from=nr-ue-build /lib64/liblapack.so.3 /lib64
|
/lib64/liblapacke.so.3 \
|
||||||
COPY --from=nr-ue-build /lib64/liblapacke.so.3 /lib64
|
/lib64/libforms.so.2 \
|
||||||
COPY --from=nr-ue-build /lib64/libforms.so.2 /lib64
|
/lib64/libboost_chrono.so.1.66.0 \
|
||||||
|
/lib64/libboost_date_time.so.1.66.0 \
|
||||||
|
/lib64/libboost_filesystem.so.1.66.0 \
|
||||||
|
/lib64/libboost_program_options.so.1.66.0 \
|
||||||
|
/lib64/libboost_serialization.so.1.66.0 \
|
||||||
|
/lib64/libboost_thread.so.1.66.0 \
|
||||||
|
/lib64/libboost_system.so.1.66.0 \
|
||||||
|
/lib64/libboost_unit_test_framework.so.1.66.0 \
|
||||||
|
/lib64/libboost_atomic.so.1.66.0 \
|
||||||
|
/lib64/libboost_timer.so.1.66.0 \
|
||||||
|
/lib64/libboost_regex.so.1.66.0 \
|
||||||
|
/lib64/
|
||||||
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=nr-ue-build /lib64/libboost_chrono.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_date_time.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_filesystem.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_program_options.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_serialization.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_thread.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_system.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_unit_test_framework.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_atomic.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_timer.so.1.66.0 /lib64
|
|
||||||
COPY --from=nr-ue-build /lib64/libboost_regex.so.1.66.0 /lib64
|
|
||||||
|
|
||||||
COPY --from=nr-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=nr-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=nr-ue-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
COPY --from=nr-ue-build /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
|
||||||
COPY --from=nr-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-nr-ue/bin
|
COPY --from=nr-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-nr-ue/bin
|
||||||
@@ -112,8 +114,10 @@ COPY --from=nr-ue-build /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt
|
|||||||
WORKDIR /usr/local/share/uhd/rfnoc
|
WORKDIR /usr/local/share/uhd/rfnoc
|
||||||
COPY --from=nr-ue-build /usr/local/share/uhd/rfnoc/ .
|
COPY --from=nr-ue-build /usr/local/share/uhd/rfnoc/ .
|
||||||
|
|
||||||
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
RUN ldconfig
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
# Copy the relevant configuration files for eNB
|
# Copy the relevant configuration files for eNB
|
||||||
WORKDIR /opt/oai-nr-ue/etc
|
WORKDIR /opt/oai-nr-ue/etc
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ COPY . .
|
|||||||
RUN /bin/sh oaienv && \
|
RUN /bin/sh oaienv && \
|
||||||
cd cmake_targets && \
|
cd cmake_targets && \
|
||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --nrUE --ninja -w USRP --verbose-ci
|
./build_oai --nrUE --ninja -w USRP --verbose-ci && \
|
||||||
|
cp /oai-ran/docker/scripts/nr_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM ubuntu:bionic as oai-nr-ue
|
FROM ubuntu:bionic as oai-nr-ue
|
||||||
@@ -67,44 +68,50 @@ RUN apt-get update && \
|
|||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /opt/oai-nr-ue/bin
|
WORKDIR /opt/oai-nr-ue/bin
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/nr-uesoftmodem.Rel15 .
|
COPY --from=nr-ue-build \
|
||||||
COPY --from=nr-ue-build /oai-ran/docker/scripts/nr_ue_entrypoint.sh entrypoint.sh
|
/oai-ran/targets/bin/nr-uesoftmodem.Rel15 \
|
||||||
|
/oai-ran/docker/scripts/entrypoint.sh \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /opt/oai-nr-ue/etc
|
WORKDIR /opt/oai-nr-ue/etc
|
||||||
COPY --from=nr-ue-build /oai-ran/ci-scripts/conf_files/nr-ue-sim.conf .
|
COPY --from=nr-ue-build /oai-ran/ci-scripts/conf_files/nr-ue-sim.conf .
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 .
|
COPY --from=nr-ue-build \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 .
|
/oai-ran/targets/bin/liboai_eth_transpro.so.Rel15 \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/librfsimulator.so.Rel15 .
|
/oai-ran/targets/bin/libtcp_bridge_oai.so.Rel15 \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 .
|
/oai-ran/targets/bin/librfsimulator.so.Rel15 \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/libcoding.so .
|
/oai-ran/targets/bin/liboai_usrpdevif.so.Rel15 \
|
||||||
COPY --from=nr-ue-build /oai-ran/targets/bin/libparams_libconfig.so .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libdfts.so .
|
/oai-ran/targets/bin/libparams_libconfig.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc.so .
|
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.so \
|
||||||
COPY --from=nr-ue-build /oai-ran/cmake_targets/ran_build/build/libldpc_orig.so .
|
/oai-ran/cmake_targets/ran_build/build/libldpc_optim8seg.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so"
|
/oai-ran/cmake_targets/ran_build/build/libldpc_orig.so \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so"
|
/usr/local/lib/libprotobuf-c.so.1 \
|
||||||
RUN /bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so"
|
./
|
||||||
|
|
||||||
COPY --from=nr-ue-build /usr/local/lib/libprotobuf-c.so.1 .
|
|
||||||
|
|
||||||
# Now we are copying from builder-image the UHD files.
|
# Now we are copying from builder-image the UHD files.
|
||||||
COPY --from=nr-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
COPY --from=nr-ue-build /usr/local/bin/uhd_find_devices /usr/local/bin
|
||||||
COPY --from=nr-ue-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
COPY --from=nr-ue-build /usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
|
||||||
COPY --from=nr-ue-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-nr-ue/bin
|
COPY --from=nr-ue-build /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-nr-ue/bin
|
||||||
WORKDIR /usr/lib/x86_64-linux-gnu
|
|
||||||
COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 .
|
|
||||||
COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 .
|
|
||||||
COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 .
|
|
||||||
COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 .
|
|
||||||
COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 .
|
|
||||||
COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
|
|
||||||
COPY --from=nr-ue-build /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 .
|
|
||||||
|
|
||||||
RUN ldconfig
|
WORKDIR /usr/lib/x86_64-linux-gnu
|
||||||
|
COPY --from=nr-ue-build \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_regex.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_serialization.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
|
||||||
|
/usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1 \
|
||||||
|
./
|
||||||
|
|
||||||
|
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so.Rel15 /usr/local/lib/liboai_transpro.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so.Rel15 /usr/local/lib/liboai_device.so" && \
|
||||||
|
/bin/bash -c "ln -s /usr/local/lib/librfsimulator.so.Rel15 /usr/local/lib/librfsimulator.so" && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
WORKDIR /opt/oai-nr-ue
|
WORKDIR /opt/oai-nr-ue
|
||||||
CMD ["/opt/oai-nr-ue/bin/nr-uesoftmodem.Rel15", "-O", "/opt/oai-nr-ue/etc/nr-ue-sim.conf"]
|
CMD ["/opt/oai-nr-ue/bin/nr-uesoftmodem.Rel15", "-O", "/opt/oai-nr-ue/etc/nr-ue-sim.conf"]
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ RUN /bin/sh oaienv && \
|
|||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai --phy_simulators --ninja --verbose-ci
|
./build_oai --phy_simulators --ninja --verbose-ci
|
||||||
|
|
||||||
|
|
||||||
#start from scratch for target executable
|
#start from scratch for target executable
|
||||||
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-physim
|
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-physim
|
||||||
|
|
||||||
@@ -45,6 +44,7 @@ RUN yum update -y && \
|
|||||||
yum install -y --enablerepo="ubi-8-codeready-builder" \
|
yum install -y --enablerepo="ubi-8-codeready-builder" \
|
||||||
lksctp-tools \
|
lksctp-tools \
|
||||||
nettle \
|
nettle \
|
||||||
|
tzdata \
|
||||||
atlas \
|
atlas \
|
||||||
hostname \
|
hostname \
|
||||||
sudo \
|
sudo \
|
||||||
@@ -58,66 +58,62 @@ RUN yum update -y && \
|
|||||||
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
|
||||||
|
|
||||||
WORKDIR /opt/oai-physim/targets/bin
|
WORKDIR /opt/oai-physim/targets/bin
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/dlsim.Rel15 .
|
COPY --from=phy-sim-build \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_dlsim.Rel15 .
|
/oai-ran/targets/bin/dlsim.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_prachsim.Rel15 .
|
/oai-ran/targets/bin/nr_dlsim.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_ulschsim.Rel15 .
|
/oai-ran/targets/bin/nr_prachsim.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/polartest.Rel15 .
|
/oai-ran/targets/bin/nr_ulschsim.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/ulsim.Rel15 .
|
/oai-ran/targets/bin/polartest.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/ldpctest.Rel15 .
|
/oai-ran/targets/bin/ulsim.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_dlschsim.Rel15 .
|
/oai-ran/targets/bin/ldpctest.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_pbchsim.Rel15 .
|
/oai-ran/targets/bin/nr_dlschsim.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_pucchsim.Rel15 .
|
/oai-ran/targets/bin/nr_pbchsim.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/nr_ulsim.Rel15 .
|
/oai-ran/targets/bin/nr_pucchsim.Rel15 \
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/smallblocktest.Rel15 .
|
/oai-ran/targets/bin/nr_ulsim.Rel15 \
|
||||||
|
/oai-ran/targets/bin/smallblocktest.Rel15 \
|
||||||
|
./
|
||||||
|
|
||||||
WORKDIR /usr/local/lib/
|
WORKDIR /usr/local/lib/
|
||||||
COPY --from=phy-sim-build /oai-ran/targets/bin/libcoding.so .
|
COPY --from=phy-sim-build \
|
||||||
COPY --from=phy-sim-build /lib64/liblapacke.so.3 .
|
/oai-ran/targets/bin/libcoding.so \
|
||||||
COPY --from=phy-sim-build /lib64/libX11.so.6 .
|
/lib64/liblapacke.so.3 \
|
||||||
COPY --from=phy-sim-build /lib64/libXpm.so.4 .
|
/lib64/libX11.so.6 \
|
||||||
COPY --from=phy-sim-build /lib64/libxcb.so.1 .
|
/lib64/libXpm.so.4 \
|
||||||
COPY --from=phy-sim-build /lib64/libXau.so.6 .
|
/lib64/libxcb.so.1 \
|
||||||
COPY --from=phy-sim-build /lib64/libforms.so.2 .
|
/lib64/libXau.so.6 \
|
||||||
COPY --from=phy-sim-build /lib64/libblas.so.3 .
|
/lib64/libforms.so.2 \
|
||||||
COPY --from=phy-sim-build /lib64/liblapack.so.3 .
|
/lib64/libblas.so.3 \
|
||||||
COPY --from=phy-sim-build /lib64/libexslt.so.0 .
|
/lib64/liblapack.so.3 \
|
||||||
COPY --from=phy-sim-build /lib64/libxslt.so.1 .
|
/lib64/libexslt.so.0 \
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libdfts.so .
|
/lib64/libxslt.so.1 \
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libSIMU.so .
|
/oai-ran/cmake_targets/phy_simulators/build/libdfts.so \
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libldpc.so .
|
/oai-ran/cmake_targets/phy_simulators/build/libSIMU.so \
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/phy_simulators/build/libldpc_orig.so .
|
/oai-ran/cmake_targets/phy_simulators/build/libldpc.so \
|
||||||
|
/oai-ran/cmake_targets/phy_simulators/build/libldpc_orig.so \
|
||||||
|
./
|
||||||
|
|
||||||
RUN ldconfig
|
RUN ldconfig
|
||||||
|
|
||||||
#debug
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/dlsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/nr_dlsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/nr_prachsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/nr_ulschsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/polartest.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/ulsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/ldpctest.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/nr_dlschsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/nr_pbchsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/nr_pucchsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/nr_ulsim.Rel15
|
|
||||||
#RUN ldd /opt/oai-physim/targets/bin/smallblocktest.Rel15
|
|
||||||
|
|
||||||
# Copy some executables
|
# Copy some executables
|
||||||
WORKDIR /usr/bin/
|
WORKDIR /usr/bin/
|
||||||
|
|
||||||
COPY --from=phy-sim-build /usr/bin/killall .
|
COPY --from=phy-sim-build \
|
||||||
COPY --from=phy-sim-build /usr/bin/xmlstarlet .
|
/usr/bin/killall \
|
||||||
COPY --from=phy-sim-build /usr/bin/svn .
|
/usr/bin/xmlstarlet \
|
||||||
|
/usr/bin/svn \
|
||||||
|
./
|
||||||
|
|
||||||
# Copy the relevant configuration files for phySim
|
# Copy the relevant configuration files for phySim
|
||||||
WORKDIR /opt/oai-physim/
|
WORKDIR /opt/oai-physim/
|
||||||
|
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/run_exec_autotests.bash /opt/oai-physim/cmake_targets/autotests/
|
COPY --from=phy-sim-build \
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/test_case_list.xml /opt/oai-physim/cmake_targets/autotests/
|
/oai-ran/cmake_targets/autotests/run_exec_autotests.bash \
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/autotests/tools/free_mem.bash /opt/oai-physim/cmake_targets/autotests/tools/
|
/oai-ran/cmake_targets/autotests/test_case_list.xml \
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/tools/build_helper /opt/oai-physim/cmake_targets/tools/
|
/opt/oai-physim/cmake_targets/autotests/
|
||||||
COPY --from=phy-sim-build /oai-ran/cmake_targets/tools/test_helper /opt/oai-physim/cmake_targets/tools/
|
COPY --from=phy-sim-build \
|
||||||
|
/oai-ran/cmake_targets/autotests/tools/free_mem.bash \
|
||||||
|
/oai-ran/cmake_targets/tools/build_helper \
|
||||||
|
/oai-ran/cmake_targets/tools/test_helper \
|
||||||
|
/opt/oai-physim/cmake_targets/tools/
|
||||||
|
|
||||||
#CMD ["sleep", "infinity"]
|
#CMD ["sleep", "infinity"]
|
||||||
|
|||||||
@@ -66,6 +66,5 @@ COPY . .
|
|||||||
RUN /bin/sh oaienv && \
|
RUN /bin/sh oaienv && \
|
||||||
cd cmake_targets && \
|
cd cmake_targets && \
|
||||||
mkdir -p log && \
|
mkdir -p log && \
|
||||||
./build_oai -I -w USRP
|
./build_oai -I -w USRP && \
|
||||||
|
rm /etc/pki/entitlement/*pem
|
||||||
RUN rm /etc/pki/entitlement/*pem
|
|
||||||
|
|||||||
@@ -18,11 +18,19 @@ if [[ -v USE_FDD_IF4P5_RCC ]]; then cp $PREFIX/etc/rcc.if4p5.fdd.conf $PREFIX/et
|
|||||||
if [[ -v USE_TDD_IF4P5_RCC ]]; then cp $PREFIX/etc/rcc.if4p5.tdd.conf $PREFIX/etc/enb.conf; fi
|
if [[ -v USE_TDD_IF4P5_RCC ]]; then cp $PREFIX/etc/rcc.if4p5.tdd.conf $PREFIX/etc/enb.conf; fi
|
||||||
if [[ -v USE_FDD_RRU ]]; then cp $PREFIX/etc/rru.fdd.conf $PREFIX/etc/enb.conf; fi
|
if [[ -v USE_FDD_RRU ]]; then cp $PREFIX/etc/rru.fdd.conf $PREFIX/etc/enb.conf; fi
|
||||||
if [[ -v USE_TDD_RRU ]]; then cp $PREFIX/etc/rru.tdd.conf $PREFIX/etc/enb.conf; fi
|
if [[ -v USE_TDD_RRU ]]; then cp $PREFIX/etc/rru.tdd.conf $PREFIX/etc/enb.conf; fi
|
||||||
|
# Sometimes, the templates are not enough. We mount a conf file on $PREFIX/etc. It can be a template itself.
|
||||||
|
if [[ -v USE_VOLUMED_CONF ]]; then cp $PREFIX/etc/mounted.conf $PREFIX/etc/enb.conf; fi
|
||||||
|
|
||||||
# Only this template will be manipulated
|
# Only this template will be manipulated
|
||||||
CONFIG_FILES=`ls $PREFIX/etc/enb.conf || true`
|
CONFIG_FILES=`ls $PREFIX/etc/enb.conf || true`
|
||||||
|
|
||||||
for c in ${CONFIG_FILES}; do
|
for c in ${CONFIG_FILES}; do
|
||||||
|
# Sometimes templates have no pattern to be replaced.
|
||||||
|
if ! grep -oP '@[a-zA-Z0-9_]+@' ${c}; then
|
||||||
|
echo "Configuration is already set"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
# grep variable names (format: ${VAR}) from template to be rendered
|
# grep variable names (format: ${VAR}) from template to be rendered
|
||||||
VARS=$(grep -oP '@[a-zA-Z0-9_]+@' ${c} | sort | uniq | xargs)
|
VARS=$(grep -oP '@[a-zA-Z0-9_]+@' ${c} | sort | uniq | xargs)
|
||||||
|
|
||||||
|
|||||||
@@ -9,11 +9,19 @@ THREAD_PARALLEL_CONFIG=${THREAD_PARALLEL_CONFIG:-PARALLEL_SINGLE_THREAD}
|
|||||||
# Based another env var, pick one template to use
|
# Based another env var, pick one template to use
|
||||||
if [[ -v USE_NSA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.nsa.tdd.conf $PREFIX/etc/gnb.conf; fi
|
if [[ -v USE_NSA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.nsa.tdd.conf $PREFIX/etc/gnb.conf; fi
|
||||||
if [[ -v USE_SA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.sa.tdd.conf $PREFIX/etc/gnb.conf; fi
|
if [[ -v USE_SA_TDD_MONO ]]; then cp $PREFIX/etc/gnb.sa.tdd.conf $PREFIX/etc/gnb.conf; fi
|
||||||
|
# Sometimes, the templates are not enough. We mount a conf file on $PREFIX/etc. It can be a template itself.
|
||||||
|
if [[ -v USE_VOLUMED_CONF ]]; then cp $PREFIX/etc/mounted.conf $PREFIX/etc/gnb.conf; fi
|
||||||
|
|
||||||
# Only this template will be manipulated
|
# Only this template will be manipulated
|
||||||
CONFIG_FILES=`ls $PREFIX/etc/gnb.conf || true`
|
CONFIG_FILES=`ls $PREFIX/etc/gnb.conf || true`
|
||||||
|
|
||||||
for c in ${CONFIG_FILES}; do
|
for c in ${CONFIG_FILES}; do
|
||||||
|
# Sometimes templates have no pattern to be replaced.
|
||||||
|
if ! grep -oP '@[a-zA-Z0-9_]+@' ${c}; then
|
||||||
|
echo "Configuration is already set"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
# grep variable names (format: ${VAR}) from template to be rendered
|
# grep variable names (format: ${VAR}) from template to be rendered
|
||||||
VARS=$(grep -oP '@[a-zA-Z0-9_]+@' ${c} | sort | uniq | xargs)
|
VARS=$(grep -oP '@[a-zA-Z0-9_]+@' ${c} | sort | uniq | xargs)
|
||||||
|
|
||||||
|
|||||||
@@ -449,6 +449,7 @@ static OAI_phy_scope_t *create_phy_scope_gnb(void) {
|
|||||||
OAI_phy_scope_t *fdui = calloc(( sizeof *fdui ),1);
|
OAI_phy_scope_t *fdui = calloc(( sizeof *fdui ),1);
|
||||||
// Define form
|
// Define form
|
||||||
fdui->phy_scope = fl_bgn_form( FL_NO_BOX, 800, 800 );
|
fdui->phy_scope = fl_bgn_form( FL_NO_BOX, 800, 800 );
|
||||||
|
fl_set_form_dblbuffer(fdui->phy_scope, 1);
|
||||||
// This the whole UI box
|
// This the whole UI box
|
||||||
obj = fl_add_box( FL_BORDER_BOX, 0, 0, 800, 800, "" );
|
obj = fl_add_box( FL_BORDER_BOX, 0, 0, 800, 800, "" );
|
||||||
fl_set_object_color( obj, FL_BLACK, FL_WHITE );
|
fl_set_object_color( obj, FL_BLACK, FL_WHITE );
|
||||||
@@ -530,7 +531,10 @@ static void *scope_thread_gNB(void *arg) {
|
|||||||
OAI_phy_scope_t *form_gnb = create_phy_scope_gnb();
|
OAI_phy_scope_t *form_gnb = create_phy_scope_gnb();
|
||||||
|
|
||||||
while (!oai_exit) {
|
while (!oai_exit) {
|
||||||
|
fl_freeze_form(form_gnb->phy_scope);
|
||||||
phy_scope_gNB(form_gnb, p, nb_ue);
|
phy_scope_gNB(form_gnb, p, nb_ue);
|
||||||
|
fl_unfreeze_form(form_gnb->phy_scope);
|
||||||
|
fl_redraw_form(form_gnb->phy_scope);
|
||||||
usleep(99*1000);
|
usleep(99*1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -801,6 +805,7 @@ static OAI_phy_scope_t *create_phy_scope_nrue( int ID ) {
|
|||||||
OAI_phy_scope_t *fdui = calloc(( sizeof *fdui ),1);
|
OAI_phy_scope_t *fdui = calloc(( sizeof *fdui ),1);
|
||||||
// Define form
|
// Define form
|
||||||
fdui->phy_scope = fl_bgn_form( FL_NO_BOX, 800, 900 );
|
fdui->phy_scope = fl_bgn_form( FL_NO_BOX, 800, 900 );
|
||||||
|
fl_set_form_dblbuffer(fdui->phy_scope, 1);
|
||||||
// This the whole UI box
|
// This the whole UI box
|
||||||
obj = fl_add_box( FL_BORDER_BOX, 0, 0, 800, 900, "" );
|
obj = fl_add_box( FL_BORDER_BOX, 0, 0, 800, 900, "" );
|
||||||
fl_set_object_color( obj, FL_BLACK, FL_BLACK );
|
fl_set_object_color( obj, FL_BLACK, FL_BLACK );
|
||||||
|
|||||||
@@ -192,8 +192,13 @@ uint8_t get_transformPrecoding(const NR_BWP_UplinkCommon_t *initialUplinkBWP,
|
|||||||
uint8_t configuredGrant);
|
uint8_t configuredGrant);
|
||||||
|
|
||||||
void nr_mac_gNB_rrc_ul_failure(const module_id_t Mod_instP,
|
void nr_mac_gNB_rrc_ul_failure(const module_id_t Mod_instP,
|
||||||
const int CC_idP,
|
const int CC_idP,
|
||||||
const frame_t frameP,
|
const frame_t frameP,
|
||||||
const sub_frame_t subframeP,
|
const sub_frame_t subframeP,
|
||||||
const rnti_t rntiP) ;
|
const rnti_t rntiP);
|
||||||
|
|
||||||
|
void nr_mac_gNB_rrc_ul_failure_reset(const module_id_t Mod_instP,
|
||||||
|
const frame_t frameP,
|
||||||
|
const sub_frame_t subframeP,
|
||||||
|
const rnti_t rntiP);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -822,6 +822,24 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
|
|||||||
ra->state = Msg4;
|
ra->state = Msg4;
|
||||||
ra->Msg4_frame = (frameP + 2) % 1024;
|
ra->Msg4_frame = (frameP + 2) % 1024;
|
||||||
ra->Msg4_slot = 1;
|
ra->Msg4_slot = 1;
|
||||||
|
|
||||||
|
if (ra->msg3_dcch_dtch) {
|
||||||
|
// Check if the UE identified by C-RNTI still exists at the gNB
|
||||||
|
int UE_id_C = find_nr_UE_id(gnb_mod_idP, ra->crnti);
|
||||||
|
if (UE_id_C < 0) {
|
||||||
|
// The UE identified by C-RNTI no longer exists at the gNB
|
||||||
|
// Let's abort the current RA, so the UE will trigger a new RA later but using RRCSetupRequest instead. A better solution may be implemented
|
||||||
|
mac_remove_nr_ue(gnb_mod_idP, ra->rnti);
|
||||||
|
nr_clear_ra_proc(gnb_mod_idP, CC_idP, frameP, ra);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
// The UE identified by C-RNTI still exists at the gNB
|
||||||
|
// Reset uplink failure flags/counters/timers at MAC and at RRC so gNB will resume again scheduling resources for this UE
|
||||||
|
UE_info->UE_sched_ctrl[UE_id_C].pusch_consecutive_dtx_cnt = 0;
|
||||||
|
UE_info->UE_sched_ctrl[UE_id_C].ul_failure = 0;
|
||||||
|
nr_mac_gNB_rrc_ul_failure_reset(gnb_mod_idP, frameP, slotP, ra->crnti);
|
||||||
|
}
|
||||||
|
}
|
||||||
LOG_I(NR_MAC, "Scheduling RA-Msg4 for TC_RNTI 0x%04x (state %d, frame %d, slot %d)\n",
|
LOG_I(NR_MAC, "Scheduling RA-Msg4 for TC_RNTI 0x%04x (state %d, frame %d, slot %d)\n",
|
||||||
(ra->msg3_dcch_dtch?ra->crnti:ra->rnti), ra->state, ra->Msg4_frame, ra->Msg4_slot);
|
(ra->msg3_dcch_dtch?ra->crnti:ra->rnti), ra->state, ra->Msg4_frame, ra->Msg4_slot);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -215,6 +215,182 @@ void du_rlc_data_req(const protocol_ctxt_t *const ctxt_pP,
|
|||||||
/* rlc_data_req queue - end */
|
/* rlc_data_req queue - end */
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
/* pdcp_data_ind thread - begin */
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
protocol_ctxt_t ctxt_pP;
|
||||||
|
srb_flag_t srb_flagP;
|
||||||
|
MBMS_flag_t MBMS_flagP;
|
||||||
|
rb_id_t rb_id;
|
||||||
|
sdu_size_t sdu_buffer_size;
|
||||||
|
mem_block_t *sdu_buffer;
|
||||||
|
} pdcp_data_ind_queue_item;
|
||||||
|
|
||||||
|
#define PDCP_DATA_IND_QUEUE_SIZE 10000
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
pdcp_data_ind_queue_item q[PDCP_DATA_IND_QUEUE_SIZE];
|
||||||
|
volatile int start;
|
||||||
|
volatile int length;
|
||||||
|
pthread_mutex_t m;
|
||||||
|
pthread_cond_t c;
|
||||||
|
} pdcp_data_ind_queue;
|
||||||
|
|
||||||
|
static pdcp_data_ind_queue pq;
|
||||||
|
|
||||||
|
static void do_pdcp_data_ind(
|
||||||
|
const protocol_ctxt_t *const ctxt_pP,
|
||||||
|
const srb_flag_t srb_flagP,
|
||||||
|
const MBMS_flag_t MBMS_flagP,
|
||||||
|
const rb_id_t rb_id,
|
||||||
|
const sdu_size_t sdu_buffer_size,
|
||||||
|
mem_block_t *const sdu_buffer)
|
||||||
|
{
|
||||||
|
nr_pdcp_ue_t *ue;
|
||||||
|
nr_pdcp_entity_t *rb;
|
||||||
|
int rnti = ctxt_pP->rnti;
|
||||||
|
|
||||||
|
if (ctxt_pP->module_id != 0 ||
|
||||||
|
//ctxt_pP->enb_flag != 1 ||
|
||||||
|
ctxt_pP->instance != 0 ||
|
||||||
|
ctxt_pP->eNB_index != 0 ||
|
||||||
|
ctxt_pP->configured != 1 ||
|
||||||
|
ctxt_pP->brOption != 0) {
|
||||||
|
LOG_E(PDCP, "%s:%d:%s: fatal\n", __FILE__, __LINE__, __FUNCTION__);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctxt_pP->enb_flag)
|
||||||
|
T(T_ENB_PDCP_UL, T_INT(ctxt_pP->module_id), T_INT(rnti),
|
||||||
|
T_INT(rb_id), T_INT(sdu_buffer_size));
|
||||||
|
|
||||||
|
nr_pdcp_manager_lock(nr_pdcp_ue_manager);
|
||||||
|
ue = nr_pdcp_manager_get_ue(nr_pdcp_ue_manager, rnti);
|
||||||
|
|
||||||
|
if (srb_flagP == 1) {
|
||||||
|
if (rb_id < 1 || rb_id > 2)
|
||||||
|
rb = NULL;
|
||||||
|
else
|
||||||
|
rb = ue->srb[rb_id - 1];
|
||||||
|
} else {
|
||||||
|
if (rb_id < 1 || rb_id > 5)
|
||||||
|
rb = NULL;
|
||||||
|
else
|
||||||
|
rb = ue->drb[rb_id - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rb != NULL) {
|
||||||
|
rb->recv_pdu(rb, (char *)sdu_buffer->data, sdu_buffer_size);
|
||||||
|
} else {
|
||||||
|
LOG_E(PDCP, "%s:%d:%s: fatal: no RB found (rb_id %ld, srb_flag %d)\n",
|
||||||
|
__FILE__, __LINE__, __FUNCTION__, rb_id, srb_flagP);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
nr_pdcp_manager_unlock(nr_pdcp_ue_manager);
|
||||||
|
|
||||||
|
free_mem_block(sdu_buffer, __FUNCTION__);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *pdcp_data_ind_thread(void *_)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
pthread_setname_np(pthread_self(), "PDCP data ind");
|
||||||
|
while (1) {
|
||||||
|
if (pthread_mutex_lock(&pq.m) != 0) abort();
|
||||||
|
while (pq.length == 0)
|
||||||
|
if (pthread_cond_wait(&pq.c, &pq.m) != 0) abort();
|
||||||
|
i = pq.start;
|
||||||
|
if (pthread_mutex_unlock(&pq.m) != 0) abort();
|
||||||
|
|
||||||
|
do_pdcp_data_ind(&pq.q[i].ctxt_pP,
|
||||||
|
pq.q[i].srb_flagP,
|
||||||
|
pq.q[i].MBMS_flagP,
|
||||||
|
pq.q[i].rb_id,
|
||||||
|
pq.q[i].sdu_buffer_size,
|
||||||
|
pq.q[i].sdu_buffer);
|
||||||
|
|
||||||
|
if (pthread_mutex_lock(&pq.m) != 0) abort();
|
||||||
|
|
||||||
|
pq.length--;
|
||||||
|
pq.start = (pq.start + 1) % PDCP_DATA_IND_QUEUE_SIZE;
|
||||||
|
|
||||||
|
if (pthread_cond_signal(&pq.c) != 0) abort();
|
||||||
|
if (pthread_mutex_unlock(&pq.m) != 0) abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void init_nr_pdcp_data_ind_queue(void)
|
||||||
|
{
|
||||||
|
pthread_t t;
|
||||||
|
|
||||||
|
pthread_mutex_init(&pq.m, NULL);
|
||||||
|
pthread_cond_init(&pq.c, NULL);
|
||||||
|
|
||||||
|
if (pthread_create(&t, NULL, pdcp_data_ind_thread, NULL) != 0) {
|
||||||
|
LOG_E(PDCP, "%s:%d:%s: fatal\n", __FILE__, __LINE__, __FUNCTION__);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void enqueue_pdcp_data_ind(
|
||||||
|
const protocol_ctxt_t *const ctxt_pP,
|
||||||
|
const srb_flag_t srb_flagP,
|
||||||
|
const MBMS_flag_t MBMS_flagP,
|
||||||
|
const rb_id_t rb_id,
|
||||||
|
const sdu_size_t sdu_buffer_size,
|
||||||
|
mem_block_t *const sdu_buffer)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int logged = 0;
|
||||||
|
|
||||||
|
if (pthread_mutex_lock(&pq.m) != 0) abort();
|
||||||
|
while (pq.length == PDCP_DATA_IND_QUEUE_SIZE) {
|
||||||
|
if (!logged) {
|
||||||
|
logged = 1;
|
||||||
|
LOG_W(PDCP, "%s: pdcp_data_ind queue is full\n", __FUNCTION__);
|
||||||
|
}
|
||||||
|
if (pthread_cond_wait(&pq.c, &pq.m) != 0) abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
i = (pq.start + pq.length) % PDCP_DATA_IND_QUEUE_SIZE;
|
||||||
|
pq.length++;
|
||||||
|
|
||||||
|
pq.q[i].ctxt_pP = *ctxt_pP;
|
||||||
|
pq.q[i].srb_flagP = srb_flagP;
|
||||||
|
pq.q[i].MBMS_flagP = MBMS_flagP;
|
||||||
|
pq.q[i].rb_id = rb_id;
|
||||||
|
pq.q[i].sdu_buffer_size = sdu_buffer_size;
|
||||||
|
pq.q[i].sdu_buffer = sdu_buffer;
|
||||||
|
|
||||||
|
if (pthread_cond_signal(&pq.c) != 0) abort();
|
||||||
|
if (pthread_mutex_unlock(&pq.m) != 0) abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean_t pdcp_data_ind(
|
||||||
|
const protocol_ctxt_t *const ctxt_pP,
|
||||||
|
const srb_flag_t srb_flagP,
|
||||||
|
const MBMS_flag_t MBMS_flagP,
|
||||||
|
const rb_id_t rb_id,
|
||||||
|
const sdu_size_t sdu_buffer_size,
|
||||||
|
mem_block_t *const sdu_buffer)
|
||||||
|
{
|
||||||
|
enqueue_pdcp_data_ind(ctxt_pP,
|
||||||
|
srb_flagP,
|
||||||
|
MBMS_flagP,
|
||||||
|
rb_id,
|
||||||
|
sdu_buffer_size,
|
||||||
|
sdu_buffer);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
/* pdcp_data_ind thread - end */
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
/* hacks to be cleaned up at some point - begin */
|
/* hacks to be cleaned up at some point - begin */
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
@@ -375,6 +551,7 @@ void pdcp_layer_init(void)
|
|||||||
init_nr_rlc_data_req_queue();
|
init_nr_rlc_data_req_queue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init_nr_pdcp_data_ind_queue();
|
||||||
nr_pdcp_init_timer_thread(nr_pdcp_ue_manager);
|
nr_pdcp_init_timer_thread(nr_pdcp_ue_manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -639,62 +816,6 @@ srb_found:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean_t pdcp_data_ind(
|
|
||||||
const protocol_ctxt_t *const ctxt_pP,
|
|
||||||
const srb_flag_t srb_flagP,
|
|
||||||
const MBMS_flag_t MBMS_flagP,
|
|
||||||
const rb_id_t rb_id,
|
|
||||||
const sdu_size_t sdu_buffer_size,
|
|
||||||
mem_block_t *const sdu_buffer)
|
|
||||||
{
|
|
||||||
nr_pdcp_ue_t *ue;
|
|
||||||
nr_pdcp_entity_t *rb;
|
|
||||||
int rnti = ctxt_pP->rnti;
|
|
||||||
|
|
||||||
if (ctxt_pP->module_id != 0 ||
|
|
||||||
//ctxt_pP->enb_flag != 1 ||
|
|
||||||
ctxt_pP->instance != 0 ||
|
|
||||||
ctxt_pP->eNB_index != 0 ||
|
|
||||||
ctxt_pP->configured != 1 ||
|
|
||||||
ctxt_pP->brOption != 0) {
|
|
||||||
LOG_E(PDCP, "%s:%d:%s: fatal\n", __FILE__, __LINE__, __FUNCTION__);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ctxt_pP->enb_flag)
|
|
||||||
T(T_ENB_PDCP_UL, T_INT(ctxt_pP->module_id), T_INT(rnti),
|
|
||||||
T_INT(rb_id), T_INT(sdu_buffer_size));
|
|
||||||
|
|
||||||
nr_pdcp_manager_lock(nr_pdcp_ue_manager);
|
|
||||||
ue = nr_pdcp_manager_get_ue(nr_pdcp_ue_manager, rnti);
|
|
||||||
|
|
||||||
if (srb_flagP == 1) {
|
|
||||||
if (rb_id < 1 || rb_id > 2)
|
|
||||||
rb = NULL;
|
|
||||||
else
|
|
||||||
rb = ue->srb[rb_id - 1];
|
|
||||||
} else {
|
|
||||||
if (rb_id < 1 || rb_id > 5)
|
|
||||||
rb = NULL;
|
|
||||||
else
|
|
||||||
rb = ue->drb[rb_id - 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rb != NULL) {
|
|
||||||
rb->recv_pdu(rb, (char *)sdu_buffer->data, sdu_buffer_size);
|
|
||||||
} else {
|
|
||||||
LOG_E(PDCP, "%s:%d:%s: fatal: no RB found (rb_id %ld, srb_flag %d)\n",
|
|
||||||
__FILE__, __LINE__, __FUNCTION__, rb_id, srb_flagP);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
nr_pdcp_manager_unlock(nr_pdcp_ue_manager);
|
|
||||||
|
|
||||||
free_mem_block(sdu_buffer, __FUNCTION__);
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void pdcp_run(const protocol_ctxt_t *const ctxt_pP)
|
void pdcp_run(const protocol_ctxt_t *const ctxt_pP)
|
||||||
{
|
{
|
||||||
MessageDef *msg_p;
|
MessageDef *msg_p;
|
||||||
|
|||||||
@@ -1596,9 +1596,18 @@ void nr_rlc_entity_am_recv_sdu(nr_rlc_entity_t *_entity,
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* log SDUs rejected, at most once per second */
|
||||||
|
if (entity->sdu_rejected != 0
|
||||||
|
&& entity->t_current > entity->t_log_buffer_full + 1000) {
|
||||||
|
LOG_E(RLC, "%s:%d:%s: warning: %d SDU rejected, SDU buffer full\n",
|
||||||
|
__FILE__, __LINE__, __FUNCTION__,
|
||||||
|
entity->sdu_rejected);
|
||||||
|
entity->sdu_rejected = 0;
|
||||||
|
entity->t_log_buffer_full = entity->t_current;
|
||||||
|
}
|
||||||
|
|
||||||
if (entity->tx_size + size > entity->tx_maxsize) {
|
if (entity->tx_size + size > entity->tx_maxsize) {
|
||||||
LOG_E(RLC, "%s:%d:%s: warning: SDU rejected, SDU buffer full\n",
|
entity->sdu_rejected++;
|
||||||
__FILE__, __LINE__, __FUNCTION__);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1742,6 +1751,9 @@ static void check_t_reassembly(nr_rlc_entity_am_t *entity)
|
|||||||
sn = (sn + 1) % entity->sn_modulus;
|
sn = (sn + 1) % entity->sn_modulus;
|
||||||
entity->rx_highest_status = sn;
|
entity->rx_highest_status = sn;
|
||||||
|
|
||||||
|
/* trigger status report */
|
||||||
|
entity->status_triggered = 1;
|
||||||
|
|
||||||
if (sn_compare_rx(entity, entity->rx_next_highest,
|
if (sn_compare_rx(entity, entity->rx_next_highest,
|
||||||
(entity->rx_highest_status+1) % entity->sn_modulus) > 0 ||
|
(entity->rx_highest_status+1) % entity->sn_modulus) > 0 ||
|
||||||
(entity->rx_next_highest ==
|
(entity->rx_next_highest ==
|
||||||
@@ -1827,6 +1839,9 @@ static void clear_entity(nr_rlc_entity_am_t *entity)
|
|||||||
|
|
||||||
entity->t_current = 0;
|
entity->t_current = 0;
|
||||||
|
|
||||||
|
entity->t_log_buffer_full = 0;
|
||||||
|
entity->sdu_rejected = 0;
|
||||||
|
|
||||||
entity->t_poll_retransmit_start = 0;
|
entity->t_poll_retransmit_start = 0;
|
||||||
entity->t_reassembly_start = 0;
|
entity->t_reassembly_start = 0;
|
||||||
entity->t_status_prohibit_start = 0;
|
entity->t_status_prohibit_start = 0;
|
||||||
|
|||||||
@@ -60,6 +60,10 @@ typedef struct {
|
|||||||
/* set to the latest know time by the user of the module. Unit: ms */
|
/* set to the latest know time by the user of the module. Unit: ms */
|
||||||
uint64_t t_current;
|
uint64_t t_current;
|
||||||
|
|
||||||
|
/* deal with logging of buffer full */
|
||||||
|
uint64_t t_log_buffer_full;
|
||||||
|
int sdu_rejected;
|
||||||
|
|
||||||
/* timers (stores the TTI of activation, 0 means not active) */
|
/* timers (stores the TTI of activation, 0 means not active) */
|
||||||
uint64_t t_poll_retransmit_start;
|
uint64_t t_poll_retransmit_start;
|
||||||
uint64_t t_reassembly_start;
|
uint64_t t_reassembly_start;
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -383,3 +383,17 @@ void nr_mac_gNB_rrc_ul_failure(const module_id_t Mod_instP,
|
|||||||
LOG_D(RRC,"Frame %d, Subframe %d: UL failure: UE %x unknown \n",frameP,subframeP,rntiP);
|
LOG_D(RRC,"Frame %d, Subframe %d: UL failure: UE %x unknown \n",frameP,subframeP,rntiP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void nr_mac_gNB_rrc_ul_failure_reset(const module_id_t Mod_instP,
|
||||||
|
const frame_t frameP,
|
||||||
|
const sub_frame_t subframeP,
|
||||||
|
const rnti_t rntiP) {
|
||||||
|
struct rrc_gNB_ue_context_s *ue_context_p = NULL;
|
||||||
|
ue_context_p = rrc_gNB_get_ue_context(RC.nrrrc[Mod_instP], rntiP);
|
||||||
|
if (ue_context_p != NULL) {
|
||||||
|
LOG_W(RRC,"Frame %d, Subframe %d: UE %x UL failure reset, deactivating timer\n",frameP,subframeP,rntiP);
|
||||||
|
ue_context_p->ue_context.ul_failure_timer=0;
|
||||||
|
} else {
|
||||||
|
LOG_W(RRC,"Frame %d, Subframe %d: UL failure reset: UE %x unknown \n",frameP,subframeP,rntiP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user