Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
9cda1172
Commit
9cda1172
authored
Dec 19, 2021
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/ci_build_common_container_images' into integration_2021_wk51_a
parents
ee3a256b
28da113c
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
384 additions
and
542 deletions
+384
-542
ci-scripts/cls_containerize.py
ci-scripts/cls_containerize.py
+36
-35
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+55
-131
cmake_targets/build_oai
cmake_targets/build_oai
+9
-28
docker/Dockerfile.base.rhel8.2
docker/Dockerfile.base.rhel8.2
+1
-1
docker/Dockerfile.base.ubuntu18
docker/Dockerfile.base.ubuntu18
+1
-1
docker/Dockerfile.build.rhel8.2
docker/Dockerfile.build.rhel8.2
+38
-0
docker/Dockerfile.build.ubuntu18
docker/Dockerfile.build.ubuntu18
+38
-0
docker/Dockerfile.eNB.rhel8.2
docker/Dockerfile.eNB.rhel8.2
+16
-27
docker/Dockerfile.eNB.ubuntu18
docker/Dockerfile.eNB.ubuntu18
+18
-28
docker/Dockerfile.gNB.rhel8.2
docker/Dockerfile.gNB.rhel8.2
+16
-27
docker/Dockerfile.gNB.ubuntu18
docker/Dockerfile.gNB.ubuntu18
+18
-28
docker/Dockerfile.lteRU.rhel8.2
docker/Dockerfile.lteRU.rhel8.2
+14
-25
docker/Dockerfile.lteRU.ubuntu18
docker/Dockerfile.lteRU.ubuntu18
+14
-26
docker/Dockerfile.lteUE.rhel8.2
docker/Dockerfile.lteUE.rhel8.2
+16
-27
docker/Dockerfile.lteUE.ubuntu18
docker/Dockerfile.lteUE.ubuntu18
+18
-28
docker/Dockerfile.nrUE.rhel8.2
docker/Dockerfile.nrUE.rhel8.2
+17
-27
docker/Dockerfile.nrUE.ubuntu18
docker/Dockerfile.nrUE.ubuntu18
+19
-28
docker/Dockerfile.phySim.rhel8.2
docker/Dockerfile.phySim.rhel8.2
+2
-7
docker/Dockerfile.ran.rhel7.oc4-4
docker/Dockerfile.ran.rhel7.oc4-4
+1
-1
docker/Dockerfile.ran.rhel8.2.oc4-4
docker/Dockerfile.ran.rhel8.2.oc4-4
+1
-1
docker/README.md
docker/README.md
+24
-10
openair1/PHY/TOOLS/time_meas.c
openair1/PHY/TOOLS/time_meas.c
+3
-8
openair1/PHY/TOOLS/time_meas.h
openair1/PHY/TOOLS/time_meas.h
+1
-7
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+8
-41
No files found.
ci-scripts/cls_containerize.py
View file @
9cda1172
...
...
@@ -177,7 +177,8 @@ class Containerize():
self
.
dockerfileprefix
=
'.rhel8.2'
self
.
cliBuildOptions
=
'--no-cache --disable-compression'
imageNames
=
[]
# we always build the ran-build image with all targets
imageNames
=
[(
'ran-build'
,
'build'
)]
result
=
re
.
search
(
'eNB'
,
self
.
imageKind
)
# Creating a tupple with the imageName and the DockerFile prefix pattern on obelix
if
result
is
not
None
:
...
...
@@ -197,8 +198,6 @@ class Containerize():
imageNames
.
append
((
'oai-physim'
,
'phySim'
))
if
self
.
host
==
'Ubuntu'
:
imageNames
.
append
((
'oai-lte-ru'
,
'lteRU'
))
if
len
(
imageNames
)
==
0
:
imageNames
.
append
((
'oai-enb'
,
'eNB'
))
# Workaround for some servers, we need to erase completely the workspace
if
self
.
forcedWorkspaceCleanup
:
...
...
@@ -215,37 +214,37 @@ class Containerize():
mySSH
.
command
(
'sudo cp /etc/rhsm/ca/redhat-uep.pem tmp/ca/'
,
'\$'
,
5
)
mySSH
.
command
(
'sudo cp /etc/pki/entitlement/*.pem tmp/entitlement/'
,
'\$'
,
5
)
sharedimage
=
'ran-build
'
shared
Tag
=
'develop'
force
Shared
ImageBuild
=
False
baseImage
=
'ran-base
'
base
Tag
=
'develop'
force
Base
ImageBuild
=
False
imageTag
=
'develop'
if
(
self
.
ranAllowMerge
):
imageTag
=
'ci-temp'
if
self
.
ranTargetBranch
==
'develop'
:
mySSH
.
command
(
'git diff HEAD..origin/develop -- docker/Dockerfile.
ran
'
+
self
.
dockerfileprefix
+
' | grep --colour=never -i INDEX'
,
'\$'
,
5
)
mySSH
.
command
(
'git diff HEAD..origin/develop -- docker/Dockerfile.
base
'
+
self
.
dockerfileprefix
+
' | grep --colour=never -i INDEX'
,
'\$'
,
5
)
result
=
re
.
search
(
'index'
,
mySSH
.
getBefore
())
if
result
is
not
None
:
force
Shared
ImageBuild
=
True
shared
Tag
=
'ci-temp'
force
Base
ImageBuild
=
True
base
Tag
=
'ci-temp'
else
:
force
Shared
ImageBuild
=
True
force
Base
ImageBuild
=
True
# Let's remove any previous run artifacts if still there
mySSH
.
command
(
self
.
cli
+
' image prune --force'
,
'\$'
,
30
)
if
force
Shared
ImageBuild
:
mySSH
.
command
(
self
.
cli
+
' image rm '
+
sharedimage
+
':'
+
shared
Tag
+
' || true'
,
'\$'
,
30
)
if
force
Base
ImageBuild
:
mySSH
.
command
(
self
.
cli
+
' image rm '
+
baseImage
+
':'
+
base
Tag
+
' || true'
,
'\$'
,
30
)
for
image
,
pattern
in
imageNames
:
mySSH
.
command
(
self
.
cli
+
' image rm '
+
image
+
':'
+
imageTag
+
' || true'
,
'\$'
,
30
)
# Build the
shared
image only on Push Events (not on Merge Requests)
# On when the
shared
image docker file is being modified.
if
force
Shared
ImageBuild
:
mySSH
.
command
(
self
.
cli
+
' build '
+
self
.
cliBuildOptions
+
' --target '
+
sharedimage
+
' --tag '
+
sharedimage
+
':'
+
sharedTag
+
' --file docker/Dockerfile.ran'
+
self
.
dockerfileprefix
+
' --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" . > cmake_targets/log/ran-build
.log 2>&1'
,
'\$'
,
1600
)
# First verify if the
shared
image was properly created.
# Build the
base
image only on Push Events (not on Merge Requests)
# On when the
base
image docker file is being modified.
if
force
Base
ImageBuild
:
mySSH
.
command
(
self
.
cli
+
' build '
+
self
.
cliBuildOptions
+
' --target '
+
baseImage
+
' --tag '
+
baseImage
+
':'
+
baseTag
+
' --file docker/Dockerfile.base'
+
self
.
dockerfileprefix
+
' --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" . > cmake_targets/log/ran-base
.log 2>&1'
,
'\$'
,
1600
)
# First verify if the
base
image was properly created.
status
=
True
mySSH
.
command
(
self
.
cli
+
' image inspect --format=
\'
Size = {{.Size}} bytes
\'
'
+
sharedimage
+
':'
+
shared
Tag
,
'\$'
,
5
)
mySSH
.
command
(
self
.
cli
+
' image inspect --format=
\'
Size = {{.Size}} bytes
\'
'
+
baseImage
+
':'
+
base
Tag
,
'\$'
,
5
)
if
mySSH
.
getBefore
().
count
(
'o such image'
)
!=
0
:
logging
.
error
(
'
\u001B
[1m Could not build properly ran-b
uild
\u001B
[0m'
)
logging
.
error
(
'
\u001B
[1m Could not build properly ran-b
ase
\u001B
[0m'
)
status
=
False
else
:
result
=
re
.
search
(
'Size *= *(?P<size>[0-9\-]+) *bytes'
,
mySSH
.
getBefore
())
...
...
@@ -253,20 +252,20 @@ class Containerize():
imageSize
=
float
(
result
.
group
(
'size'
))
imageSize
=
imageSize
/
1000
if
imageSize
<
1000
:
logging
.
debug
(
'
\u001B
[1m ran-b
uild
size is '
+
(
'%.0f'
%
imageSize
)
+
' kbytes
\u001B
[0m'
)
self
.
allImagesSize
[
'ran-b
uild
'
]
=
str
(
round
(
imageSize
,
1
))
+
' kbytes'
logging
.
debug
(
'
\u001B
[1m ran-b
ase
size is '
+
(
'%.0f'
%
imageSize
)
+
' kbytes
\u001B
[0m'
)
self
.
allImagesSize
[
'ran-b
ase
'
]
=
str
(
round
(
imageSize
,
1
))
+
' kbytes'
else
:
imageSize
=
imageSize
/
1000
if
imageSize
<
1000
:
logging
.
debug
(
'
\u001B
[1m ran-b
uild
size is '
+
(
'%.0f'
%
imageSize
)
+
' Mbytes
\u001B
[0m'
)
self
.
allImagesSize
[
'ran-b
uild
'
]
=
str
(
round
(
imageSize
,
1
))
+
' Mbytes'
logging
.
debug
(
'
\u001B
[1m ran-b
ase
size is '
+
(
'%.0f'
%
imageSize
)
+
' Mbytes
\u001B
[0m'
)
self
.
allImagesSize
[
'ran-b
ase
'
]
=
str
(
round
(
imageSize
,
1
))
+
' Mbytes'
else
:
imageSize
=
imageSize
/
1000
logging
.
debug
(
'
\u001B
[1m ran-b
uild
size is '
+
(
'%.3f'
%
imageSize
)
+
' Gbytes
\u001B
[0m'
)
self
.
allImagesSize
[
'ran-b
uild
'
]
=
str
(
round
(
imageSize
,
1
))
+
' Gbytes'
logging
.
debug
(
'
\u001B
[1m ran-b
ase
size is '
+
(
'%.3f'
%
imageSize
)
+
' Gbytes
\u001B
[0m'
)
self
.
allImagesSize
[
'ran-b
ase
'
]
=
str
(
round
(
imageSize
,
1
))
+
' Gbytes'
else
:
logging
.
debug
(
'ran-b
uild
size is unknown'
)
# If the
shared
image failed, no need to continue
logging
.
debug
(
'ran-b
ase
size is unknown'
)
# If the
base
image failed, no need to continue
if
not
status
:
# Recover the name of the failed container?
mySSH
.
command
(
self
.
cli
+
' ps --quiet --filter "status=exited" -n1 | xargs '
+
self
.
cli
+
' rm -f'
,
'\$'
,
5
)
...
...
@@ -278,16 +277,18 @@ class Containerize():
sys
.
exit
(
1
)
else
:
# Recover build logs, for the moment only possible when build is successful
mySSH
.
command
(
self
.
cli
+
' create --name test '
+
sharedimage
+
':'
+
shared
Tag
,
'\$'
,
5
)
mySSH
.
command
(
'mkdir -p cmake_targets/log/ran-b
uild
'
,
'\$'
,
5
)
mySSH
.
command
(
self
.
cli
+
' cp test:/oai-ran/cmake_targets/log/. cmake_targets/log/ran-b
uild
'
,
'\$'
,
5
)
mySSH
.
command
(
self
.
cli
+
' create --name test '
+
baseImage
+
':'
+
base
Tag
,
'\$'
,
5
)
mySSH
.
command
(
'mkdir -p cmake_targets/log/ran-b
ase
'
,
'\$'
,
5
)
mySSH
.
command
(
self
.
cli
+
' cp test:/oai-ran/cmake_targets/log/. cmake_targets/log/ran-b
ase
'
,
'\$'
,
5
)
mySSH
.
command
(
self
.
cli
+
' rm -f test'
,
'\$'
,
5
)
# Build the target image(s)
for
image
,
pattern
in
imageNames
:
# the archived Dockerfiles have "ran-b
uild
:latest" as base image
# the archived Dockerfiles have "ran-b
ase
:latest" as base image
# we need to update them with proper tag
mySSH
.
command
(
'sed -i -e "s#'
+
sharedimage
+
':latest#'
+
sharedimage
+
':'
+
sharedTag
+
'#" docker/Dockerfile.'
+
pattern
+
self
.
dockerfileprefix
,
'\$'
,
5
)
mySSH
.
command
(
'sed -i -e "s#'
+
baseImage
+
':latest#'
+
baseImage
+
':'
+
baseTag
+
'#" docker/Dockerfile.'
+
pattern
+
self
.
dockerfileprefix
,
'\$'
,
5
)
if
image
!=
'ran-build'
:
mySSH
.
command
(
'sed -i -e "s#'
+
"ran-build"
+
':latest#'
+
"ran-build"
+
':'
+
baseTag
+
'#" docker/Dockerfile.'
+
pattern
+
self
.
dockerfileprefix
,
'\$'
,
5
)
mySSH
.
command
(
self
.
cli
+
' build '
+
self
.
cliBuildOptions
+
' --target '
+
image
+
' --tag '
+
image
+
':'
+
imageTag
+
' --file docker/Dockerfile.'
+
pattern
+
self
.
dockerfileprefix
+
' . > cmake_targets/log/'
+
image
+
'.log 2>&1'
,
'\$'
,
1200
)
# split the log
mySSH
.
command
(
'mkdir -p cmake_targets/log/'
+
image
,
'\$'
,
5
)
...
...
@@ -318,7 +319,7 @@ class Containerize():
logging
.
debug
(
'
\u001B
[1m '
+
image
+
' size is '
+
(
'%.3f'
%
imageSize
)
+
' Gbytes
\u001B
[0m'
)
self
.
allImagesSize
[
image
]
=
str
(
round
(
imageSize
,
1
))
+
' Gbytes'
else
:
logging
.
debug
(
'ran-b
uild
size is unknown'
)
logging
.
debug
(
'ran-b
ase
size is unknown'
)
self
.
allImagesSize
[
image
]
=
'unknown'
# Now pruning dangling images in between target builds
mySSH
.
command
(
self
.
cli
+
' image prune --force'
,
'\$'
,
30
)
...
...
@@ -342,8 +343,8 @@ class Containerize():
#Trying to identify the errors and warnings for each built images
imageNames1
=
imageNames
shared
=
(
'ran-build
'
,
'ran'
)
imageNames1
.
insert
(
0
,
shared
)
base
=
(
'ran-base
'
,
'ran'
)
imageNames1
.
insert
(
0
,
base
)
for
image
,
pattern
in
imageNames1
:
files
=
{}
file_list
=
[
f
for
f
in
os
.
listdir
(
'build_log_'
+
self
.
testCase_id
+
'/'
+
image
)
if
os
.
path
.
isfile
(
os
.
path
.
join
(
'build_log_'
+
self
.
testCase_id
+
'/'
+
image
,
f
))
and
f
.
endswith
(
'.txt'
)]
...
...
cmake_targets/CMakeLists.txt
View file @
9cda1172
This diff is collapsed.
Click to expand it.
cmake_targets/build_oai
View file @
9cda1172
...
...
@@ -27,9 +27,8 @@
set
-e
# Include helper functions
ORIGIN_PATH
=
$PWD
THIS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
$0
))
source
$THIS_SCRIPT_PATH
/tools/build_helper
THIS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
"
$0
"
))
source
"
$THIS_SCRIPT_PATH
"
/tools/build_helper
# Set environment variables (OPENAIR_HOME, ...)
set_openair_env
...
...
@@ -38,7 +37,6 @@ set_openair_env
gen_nvram_path
=
$OPENAIR_DIR
/targets/bin
conf_nvram_path
=
$OPENAIR_DIR
/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
MSC_GEN
=
0
XFORMS
=
"True"
SKIP_SHARED_LIB_FLAG
=
"False"
UE_EXPANSION
=
"False"
...
...
@@ -106,7 +104,7 @@ Options
--nrUE
Makes the NR UE softmodem
--RU
Makes the OAI RRU
(without full stack)
Makes the OAI RRU
--UE
Makes the UE specific parts (ue_ip, usim, nvram) from the given configuration file
--UE-conf-nvram [configuration file]
...
...
@@ -208,28 +206,24 @@ function main() {
-g
|
--run-with-gdb
)
case
"
$2
"
in
"Release"
)
GDB
=
0
CMAKE_BUILD_TYPE
=
"Release"
echo_info
"Will Compile without gdb symbols and with compiler optimization"
CMAKE_CMD
=
"
$CMAKE_CMD
-DCMAKE_BUILD_TYPE=Release"
shift
;;
"RelWithDebInfo"
)
GDB
=
0
CMAKE_BUILD_TYPE
=
"RelWithDebInfo"
echo_info
"Will Compile with gdb symbols"
CMAKE_CMD
=
"
$CMAKE_CMD
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=1"
shift
;;
"MinSizeRel"
)
GDB
=
0
CMAKE_BUILD_TYPE
=
"MinSizeRel"
echo_info
"Will Compile for minimal exec size"
CMAKE_CMD
=
"
$CMAKE_CMD
-DCMAKE_BUILD_TYPE=MinSizeRel"
shift
;;
"Debug"
|
*
)
GDB
=
1
CMAKE_BUILD_TYPE
=
"Debug"
echo_info
"Will Compile with gdb symbols and disable compiler optimization"
CMAKE_CMD
=
"
$CMAKE_CMD
-DCMAKE_BUILD_TYPE=Debug"
...
...
@@ -244,37 +238,30 @@ function main() {
shift
;;
--eNB
)
eNB
=
1
RU
=
0
echo_info
"Will compile eNB"
shift
;;
--eNBocp
)
eNBocp
=
1
RU
=
0
echo_info
"Will compile OCP eNB"
shift
;;
--gNB
)
gNB
=
1
RU
=
0
NR
=
"True"
echo_info
"Will compile gNB"
shift
;;
--RU
)
RU
=
1
RU
=
1
echo_info
"Will compile RRU"
shift
;;
-a
|
--agent
)
echo_info
"FlexRAN support is always compiled into the eNB"
shift
;;
--UE
)
RU
=
0
UE
=
1
echo_info
"Will compile UE"
shift
;;
--nrUE
)
RU
=
0
nrUE
=
1
rfsimNas
=
1
NR
=
"True"
echo_info
"Will compile NR UE"
shift
;;
--mu
)
...
...
@@ -282,10 +269,10 @@ function main() {
echo_info
"Will compile with UE_EXPANSION"
shift
;;
--UE-conf-nvram
)
conf_nvram_path
=
$(
readlink
-f
$2
)
conf_nvram_path
=
$(
readlink
-f
"
$2
"
)
shift
2
;;
--UE-gen-nvram
)
gen_nvram_path
=
$(
readlink
-f
$2
)
gen_nvram_path
=
$(
readlink
-f
"
$2
"
)
shift
2
;;
-w
|
--hardware
)
# Use OAI_USRP as the key word USRP is used inside UHD driver
...
...
@@ -309,7 +296,6 @@ function main() {
shift
2
;;
-P
|
--phy_simulators
)
SIMUS_PHY
=
1
RU
=
0
echo_info
"Will compile dlsim, ulsim, ..."
shift
;;
-S
|
--core_simulators
)
...
...
@@ -344,11 +330,11 @@ function main() {
echo_info
"Will compile hw latency test program"
shift
;;
--verbose-ci
)
VERBOSE_CI
=
1
VERBOSE_CI
=
1
echo_info
"Will compile with verbose instructions in CI Docker env"
shift
;;
--verbose-compile
)
VERBOSE_COMPILE
=
1
VERBOSE_COMPILE
=
1
echo_info
"Will compile with verbose instructions"
shift
;;
--cflags_processor
)
...
...
@@ -478,7 +464,7 @@ function main() {
########################################################
# to be discussed
if
[
"
$eNB
"
=
"1"
-o
"
$eNBocp
"
=
"1"
-o
"
$gNB
"
=
"1"
-o
"
$RU
"
=
"1"
]
;
then
if
[
"
$eNB
"
=
"1"
-o
"
$eNBocp
"
=
"1"
-o
"
$gNB
"
=
"1"
]
;
then
if
[
"
$HW
"
=
"None"
-a
"
$TP
"
=
"None"
]
;
then
echo_info
"No local radio head and no transport protocol selected"
fi
...
...
@@ -629,7 +615,6 @@ function main() {
echo
"set ( UE_TIMING_TRACE
$UE_TIMING_TRACE
)"
>>
$cmake_file
echo
"set ( USRP_REC_PLAY
$USRP_REC_PLAY
)"
>>
$cmake_file
echo
"set ( SKIP_SHARED_LIB_FLAG
$SKIP_SHARED_LIB_FLAG
)"
>>
$cmake_file
echo
"set ( RU
$RU
)"
>>
$cmake_file
echo
"set ( ITTI_SIM
$ITTI_SIM
)"
>>
$cmake_file
echo
"set ( SANITIZE_ADDRESS
$SANITIZE_ADDRESS
)"
>>
$cmake_file
echo
'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)'
>>
$cmake_file
...
...
@@ -677,14 +662,10 @@ function main() {
$build_dir
$config_libconfig_shlib
\
lib
$config_libconfig_shlib
.so
$dbin
/lib
$config_libconfig_shlib
.so
if
[
"
$RU
"
=
"0"
]
;
then
compilations
\
$build_dir
coding
\
libcoding.so
$dbin
/libcoding.so
fi
fi
fi
...
...
docker/Dockerfile.
ran
.rhel8.2
→
docker/Dockerfile.
base
.rhel8.2
View file @
9cda1172
...
...
@@ -26,7 +26,7 @@
#---------------------------------------------------------------------
FROM registry.access.redhat.com/ubi8/ubi:latest AS ran-b
uild
FROM registry.access.redhat.com/ubi8/ubi:latest AS ran-b
ase
ARG NEEDED_GIT_PROXY
ENV TZ=Europe/Paris
ENV BUILD_UHD_FROM_SOURCE=True
...
...
docker/Dockerfile.
ran
.ubuntu18
→
docker/Dockerfile.
base
.ubuntu18
View file @
9cda1172
...
...
@@ -26,7 +26,7 @@
#---------------------------------------------------------------------
FROM ubuntu:bionic AS ran-b
uild
FROM ubuntu:bionic AS ran-b
ase
ARG NEEDED_GIT_PROXY
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
...
...
docker/Dockerfile.build.rhel8.2
0 → 100644
View file @
9cda1172
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 18.04
#
#---------------------------------------------------------------------
FROM ran-base:latest as ran-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --eNB --gNB --RU --UE --nrUE --ninja -w USRP --verbose-ci
docker/Dockerfile.build.ubuntu18
0 → 100644
View file @
9cda1172
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
# * http://www.openairinterface.org/?page_id=698
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface BUILD service
# Valid for Ubuntu 18.04
#
#---------------------------------------------------------------------
FROM ran-base:latest as ran-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
# build all targets so final targets can be created afterwards
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --eNB --gNB --RU --UE --nrUE --ninja -w USRP --verbose-ci
docker/Dockerfile.eNB.rhel8.2
View file @
9cda1172
...
...
@@ -25,17 +25,9 @@
#
#---------------------------------------------------------------------
FROM ran-build:latest AS enb-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest AS enb-base
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --eNB --ninja -w USRP --verbose-ci
FROM ran-build:latest AS enb-build
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
...
...
@@ -68,20 +60,18 @@ COPY --from=enb-build \
/oai-ran/docker/scripts/entrypoint.sh \
./
WORKDIR /usr/local/lib/
COPY --from=enb-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libcoding.so \
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libcoding.so \
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so \
/usr/local/lib/libprotobuf-c.so.1 \
./
/usr/local/lib/
COPY --from=enb-b
uild
\
COPY --from=enb-b
ase
\
/lib64/libconfig.so.9 \
/lib64/libblas.so.3 \
/lib64/liblapack.so.3 \
...
...
@@ -100,16 +90,15 @@ COPY --from=enb-build \
/lib64/
# 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/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-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=enb-base /usr/local/lib/libprotobuf-c.so.1 /usr/local/lib
COPY --from=enb-base /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
COPY --from=enb-base /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-enb/bin
WORKDIR /usr/local/share/uhd/rfnoc
COPY --from=enb-b
uild
/usr/local/share/uhd/rfnoc/ .
COPY --from=enb-b
ase
/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" && \
/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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for eNB
...
...
docker/Dockerfile.eNB.ubuntu18
View file @
9cda1172
...
...
@@ -25,17 +25,9 @@
#
#---------------------------------------------------------------------
FROM ran-build:latest AS enb-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest as enb-base
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --eNB --ninja -w USRP --verbose-ci
FROM ran-build:latest AS enb-build
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
...
...
@@ -75,25 +67,25 @@ COPY --from=enb-build \
/oai-ran/docker/scripts/entrypoint.sh \
./
WORKDIR /usr/local/lib/
COPY --from=enb-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libcoding.so \
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libcoding.so \
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/oai-ran/cmake_targets/ran_build/build/liboai_iqplayer.so \
/usr/local/lib/libprotobuf-c.so.1 \
./
/usr/local/lib/
# 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/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
WORKDIR /usr/lib/x86_64-linux-gnu
COPY --from=enb-build \
COPY --from=enb-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=enb-base \
/usr/local/lib/libuhd.so.3.15.0 \
/usr/local/lib/libprotobuf-c.so.1 \
/usr/local/lib/
COPY --from=enb-base /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-enb/bin
COPY --from=enb-base \
/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 \
...
...
@@ -101,11 +93,9 @@ COPY --from=enb-build \
/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 \
.
/
/usr/lib/x86_64-linux-gnu
/
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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for eNB
...
...
docker/Dockerfile.gNB.rhel8.2
View file @
9cda1172
...
...
@@ -25,17 +25,9 @@
#
#---------------------------------------------------------------------
FROM ran-build:latest AS gnb-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest AS gnb-base
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --gNB --ninja -w USRP --verbose-ci
FROM ran-build:latest AS gnb-build
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
...
...
@@ -70,23 +62,21 @@ COPY --from=gnb-build \
/oai-ran/docker/scripts/entrypoint.sh \
./
WORKDIR /usr/local/lib/
COPY --from=gnb-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libcoding.so \
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libcoding.so \
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.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 \
./
/usr/local/lib/
COPY --from=gnb-b
uild
\
COPY --from=gnb-b
ase
\
/lib64/libconfig.so.9 \
/lib64/libforms.so.2 \
/lib64/libblas.so.3 \
...
...
@@ -106,16 +96,15 @@ COPY --from=gnb-build \
/lib64/
# 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/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-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=gnb-base /usr/local/lib/libprotobuf-c.so.1 /usr/local/lib
COPY --from=gnb-base /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
COPY --from=gnb-base /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin
WORKDIR /usr/local/share/uhd/rfnoc
COPY --from=gnb-b
uild
/usr/local/share/uhd/rfnoc/ .
COPY --from=gnb-b
ase
/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" && \
/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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for gNB
...
...
docker/Dockerfile.gNB.ubuntu18
View file @
9cda1172
...
...
@@ -25,17 +25,9 @@
#
#---------------------------------------------------------------------
FROM ran-build:latest AS gnb-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest as gnb-base
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --gNB --ninja -w USRP --verbose-ci
FROM ran-build:latest AS gnb-build
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
...
...
@@ -74,28 +66,28 @@ COPY --from=gnb-build \
/oai-ran/docker/scripts/entrypoint.sh \
./
WORKDIR /usr/local/lib/
COPY --from=gnb-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libcoding.so \
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libcoding.so \
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.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 \
./
/usr/local/lib/
# 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/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
WORKDIR /usr/lib/x86_64-linux-gnu
COPY --from=gnb-build \
COPY --from=gnb-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=gnb-base \
/usr/local/lib/libuhd.so.3.15.0 \
/usr/local/lib/libprotobuf-c.so.1 \
/usr/local/lib/
COPY --from=gnb-base /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-gnb/bin
COPY --from=gnb-base \
/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 \
...
...
@@ -103,11 +95,9 @@ COPY --from=gnb-build \
/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 \
.
/
/usr/lib/x86_64-linux-gnu
/
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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for gNB
...
...
docker/Dockerfile.lteRU.rhel8.2
View file @
9cda1172
...
...
@@ -25,17 +25,9 @@
#
#---------------------------------------------------------------------
FROM ran-build:latest AS ru-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest AS ru-base
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --RU --ninja -w USRP --verbose-ci
FROM ran-build:latest AS ru-build
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
...
...
@@ -65,17 +57,16 @@ COPY --from=ru-build \
/oai-ran/docker/scripts/entrypoint.sh \
.
WORKDIR /usr/local/lib/
COPY --from=ru-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
.
/
/usr/local/lib
/
COPY --from=ru-b
uild
\
COPY --from=ru-b
ase
\
/lib64/libconfig.so.9 \
/lib64/libblas.so.3 \
/lib64/liblapack.so.3 \
...
...
@@ -94,16 +85,14 @@ COPY --from=ru-build \
/lib64/
# Copying from the ran-build image the USRP needed packages
COPY --from=ru-b
uild
/usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=ru-b
uild
/usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
COPY --from=ru-b
uild
/usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
COPY --from=ru-b
ase
/usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=ru-b
ase
/usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
COPY --from=ru-b
ase
/usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
WORKDIR /usr/local/share/uhd/rfnoc
COPY --from=ru-b
uild
/usr/local/share/uhd/rfnoc/ .
COPY --from=ru-b
ase
/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" && \
/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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for RRU
...
...
docker/Dockerfile.lteRU.ubuntu18
View file @
9cda1172
...
...
@@ -25,17 +25,9 @@
#
#---------------------------------------------------------------------
FROM ran-build:latest AS ru-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest as ru-base
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --RU --ninja -w USRP --verbose-ci
FROM ran-build:latest AS ru-build
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
...
...
@@ -70,34 +62,30 @@ COPY --from=ru-build \
/oai-ran/docker/scripts/entrypoint.sh \
./
WORKDIR /usr/local/lib/
COPY --from=ru-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
.
/
/usr/local/lib
/
# Now we are copying from builder-image the UHD files.
COPY --from=ru-b
uild
/usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=ru-b
uild
/usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
COPY --from=ru-b
uild
/usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
COPY --from=ru-b
ase
/usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=ru-b
ase
/usr/local/lib/libuhd.so.3.15.0 /usr/local/lib
COPY --from=ru-b
ase
/usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ru/bin
WORKDIR /usr/lib/x86_64-linux-gnu
COPY --from=ru-build \
COPY --from=ru-base \
/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
/
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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for RRU
...
...
docker/Dockerfile.lteUE.rhel8.2
View file @
9cda1172
...
...
@@ -25,17 +25,9 @@
#
#---------------------------------------------------------------------
FROM ran-build:latest AS lte-ue-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest AS lte-ue-base
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --UE --ninja -w USRP --verbose-ci
FROM ran-build:latest AS lte-ue-build
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_parameters.yaml && \
python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml && \
...
...
@@ -72,20 +64,18 @@ COPY --from=lte-ue-build \
/oai-ran/targets/bin/usim \
./
WORKDIR /usr/local/lib/
COPY --from=lte-ue-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libcoding.so \
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libcoding.so \
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libSIMU.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/usr/local/lib/libprotobuf-c.so.1 \
./
/usr/local/lib/
COPY --from=lte-ue-b
uild
\
COPY --from=lte-ue-b
ase
\
/lib64/libconfig.so.9 \
/lib64/libblas.so.3 \
/lib64/liblapack.so.3 \
...
...
@@ -104,16 +94,15 @@ COPY --from=lte-ue-build \
/lib64/
# 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/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-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=lte-ue-base /usr/local/lib/libprotobuf-c.so.1 /usr/local/lib
COPY --from=lte-ue-base /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
COPY --from=lte-ue-base /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-lte-ue/bin
WORKDIR /usr/local/share/uhd/rfnoc
COPY --from=lte-ue-b
uild
/usr/local/share/uhd/rfnoc/ .
COPY --from=lte-ue-b
ase
/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" && \
/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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for UE
...
...
docker/Dockerfile.lteUE.ubuntu18
View file @
9cda1172
...
...
@@ -25,17 +25,9 @@
#
#---------------------------------------------------------------------
FROM ran-build:latest AS lte-ue-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest AS lte-ue-base
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --UE --ninja -w USRP --verbose-ci
FROM ran-build:latest AS lte-ue-build
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_parameters.yaml && \
python3 ./docker/scripts/generateTemplate.py ./docker/scripts/lte_ue_sim_parameters.yaml && \
...
...
@@ -79,26 +71,26 @@ COPY --from=lte-ue-build \
/oai-ran/targets/bin/usim \
./
WORKDIR /usr/local/lib/
COPY --from=lte-ue-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libcoding.so \
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libcoding.so \
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libSIMU.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/usr/local/lib/libprotobuf-c.so.1 \
./
/usr/local/lib/
# 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/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-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=lte-ue-base \
/usr/local/lib/libuhd.so.3.15.0 \
/usr/local/lib/libprotobuf-c.so.1 \
/usr/local/lib/
COPY --from=lte-ue-base /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 \
COPY --from=lte-ue-base \
/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 \
...
...
@@ -106,11 +98,9 @@ COPY --from=lte-ue-build \
/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 \
.
/
/usr/lib/x86_64-linux-gnu
/
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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for UE
...
...
docker/Dockerfile.nrUE.rhel8.2
View file @
9cda1172
...
...
@@ -25,18 +25,11 @@
#
#---------------------------------------------------------------------
FROM ran-b
uild:latest AS nr-ue-build
FROM ran-b
ase:latest AS nr-ue-base
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-build:latest AS nr-ue-build
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --nrUE --ninja -w USRP --verbose-ci && \
cp /oai-ran/docker/scripts/nr_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
RUN cp /oai-ran/docker/scripts/nr_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
#start from scratch for target executable
FROM registry.access.redhat.com/ubi8/ubi:latest as oai-nr-ue
...
...
@@ -71,23 +64,21 @@ COPY --from=nr-ue-build \
WORKDIR /opt/oai-nr-ue/etc
COPY --from=nr-ue-build /oai-ran/ci-scripts/conf_files/nr-ue-sim.conf .
WORKDIR /usr/local/lib/
COPY --from=nr-ue-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libcoding.so \
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libcoding.so \
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.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 \
./
/usr/local/lib/
COPY --from=nr-ue-b
uild
\
COPY --from=nr-ue-b
ase
\
/lib64/libconfig.so.9 \
/lib64/libblas.so.3 \
/lib64/liblapack.so.3 \
...
...
@@ -107,16 +98,15 @@ COPY --from=nr-ue-build \
/lib64/
# 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/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-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=nr-ue-base /usr/local/lib/libprotobuf-c.so.1 /usr/local/lib
COPY --from=nr-ue-base /usr/local/lib64/libuhd.so.3.15.0 /usr/local/lib64
COPY --from=nr-ue-base /usr/local/lib64/uhd/utils/uhd_images_downloader.py /opt/oai-nr-ue/bin
WORKDIR /usr/local/share/uhd/rfnoc
COPY --from=nr-ue-b
uild
/usr/local/share/uhd/rfnoc/ .
COPY --from=nr-ue-b
ase
/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" && \
/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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
# Copy the relevant configuration files for eNB
...
...
docker/Dockerfile.nrUE.ubuntu18
View file @
9cda1172
...
...
@@ -25,18 +25,11 @@
#
#---------------------------------------------------------------------
FROM ran-b
uild:latest AS nr-ue-build
FROM ran-b
ase:latest AS nr-ue-base
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-build:latest AS nr-ue-build
#run build_oai to build the target image
RUN /bin/sh oaienv && \
cd cmake_targets && \
mkdir -p log && \
./build_oai --nrUE --ninja -w USRP --verbose-ci && \
cp /oai-ran/docker/scripts/nr_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
RUN cp /oai-ran/docker/scripts/nr_ue_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
#start from scratch for target executable
FROM ubuntu:bionic as oai-nr-ue
...
...
@@ -76,29 +69,29 @@ COPY --from=nr-ue-build \
WORKDIR /opt/oai-nr-ue/etc
COPY --from=nr-ue-build /oai-ran/ci-scripts/conf_files/nr-ue-sim.conf .
WORKDIR /usr/local/lib/
COPY --from=nr-ue-build \
/oai-ran/
targets/bin/liboai_eth_transpro.so.Rel15
\
/oai-ran/
targets/bin/libtcp_bridge_oai.so.Rel15
\
/oai-ran/
targets/bin/librfsimulator.so.Rel15
\
/oai-ran/
targets/bin/liboai_usrpdevif.so.Rel15
\
/oai-ran/
targets/bin
/libcoding.so \
/oai-ran/
targets/bin
/libparams_libconfig.so \
/oai-ran/
cmake_targets/ran_build/build/liboai_eth_transpro.so
\
/oai-ran/
cmake_targets/ran_build/build/libtcp_bridge_oai.so
\
/oai-ran/
cmake_targets/ran_build/build/librfsimulator.so
\
/oai-ran/
cmake_targets/ran_build/build/liboai_usrpdevif.so
\
/oai-ran/
cmake_targets/ran_build/build
/libcoding.so \
/oai-ran/
cmake_targets/ran_build/build
/libparams_libconfig.so \
/oai-ran/cmake_targets/ran_build/build/libdfts.so \
/oai-ran/cmake_targets/ran_build/build/libldpc.so \
/oai-ran/cmake_targets/ran_build/build/libldpc_optim.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 \
./
/usr/local/lib/
# 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/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-base /usr/local/bin/uhd_find_devices /usr/local/bin
COPY --from=nr-ue-base \
/usr/local/lib/libuhd.so.3.15.0 \
/usr/local/lib/libprotobuf-c.so.1 \
/usr/local/lib/
COPY --from=nr-ue-base /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 \
COPY --from=nr-ue-base \
/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 \
...
...
@@ -106,11 +99,9 @@ COPY --from=nr-ue-build \
/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 \
.
/
/usr/lib/x86_64-linux-gnu
/
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" && \
RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \
ldconfig
WORKDIR /opt/oai-nr-ue
...
...
docker/Dockerfile.phySim.rhel8.2
View file @
9cda1172
...
...
@@ -25,11 +25,7 @@
#
#---------------------------------------------------------------------
FROM ran-build:develop AS phy-sim-build
RUN rm -Rf /oai-ran
WORKDIR /oai-ran
COPY . .
FROM ran-base:latest AS phy-sim-build
#run build_oai to build the target image
RUN /bin/sh oaienv && \
...
...
@@ -73,7 +69,6 @@ COPY --from=phy-sim-build \
/oai-ran/targets/bin/smallblocktest.Rel15 \
./
WORKDIR /usr/local/lib/
COPY --from=phy-sim-build \
/oai-ran/targets/bin/libcoding.so \
/lib64/liblapacke.so.3 \
...
...
@@ -90,7 +85,7 @@ COPY --from=phy-sim-build \
/oai-ran/cmake_targets/phy_simulators/build/libSIMU.so \
/oai-ran/cmake_targets/phy_simulators/build/libldpc.so \
/oai-ran/cmake_targets/phy_simulators/build/libldpc_orig.so \
.
/
/usr/local/lib
/
RUN ldconfig
...
...
docker/Dockerfile.ran.rhel7.oc4-4
View file @
9cda1172
...
...
@@ -26,7 +26,7 @@
#---------------------------------------------------------------------
FROM registry.access.redhat.com/ubi7/ubi:latest AS ran-b
uild
FROM registry.access.redhat.com/ubi7/ubi:latest AS ran-b
ase
# Entitlements and RHSM configurations are Open-Shift Secret and ConfigMaps
# It is pre-requisite
...
...
docker/Dockerfile.ran.rhel8.2.oc4-4
View file @
9cda1172
...
...
@@ -26,7 +26,7 @@
#---------------------------------------------------------------------
FROM registry.access.redhat.com/ubi8/ubi:latest AS ran-b
uild
FROM registry.access.redhat.com/ubi8/ubi:latest AS ran-b
ase
# Entitlements and RHSM configurations are Open-Shift Secret and ConfigMaps
# It is pre-requisite
...
...
docker/README.md
View file @
9cda1172
...
...
@@ -29,12 +29,18 @@
For all platforms, the strategy for building docker/podman images is the same:
*
First we create a common shared image that contains:
*
First we create a common shared image
`ran-base`
that contains:
-
the latest source files (by using the
`COPY`
function)
-
all the means to build an OAI RAN executable
*
all packages, compilers, ...
*
especially UHD is installed
*
Then from this shared image (
`ran-build`
) we can build target images for:
*
Then, from the
`ran-base`
shared image, we create a shared image
`ran-build`
in which all targets are compiled:
-
eNB
-
gNB
-
lte-UE
-
nr-UE
*
Then from the
`ran-build`
shared image we can build target images for:
-
eNB
-
gNB
-
lte-UE
...
...
@@ -58,7 +64,8 @@ Dockerfiles are named with the following naming convention: `Dockerfile.${target
Targets can be:
-
`ran`
for an image named
`ran-build`
(the shared image)
-
`base`
for an image named
`ran-base`
(shared image)
-
`ran`
for an image named
`ran-build`
(shared image)
-
`eNB`
for an image named
`oai-enb`
-
`gNB`
for an image named
`oai-gnb`
-
`lteUE`
for an image named
`oai-lte-ue`
...
...
@@ -85,9 +92,11 @@ For more details in build within a Openshift Cluster, see [OpenShift README](../
*
`docker-ce`
installed
*
Pulling
`ubuntu:bionic`
from DockerHub
## 3.2. Building the shared image ##
## 3.2. Building the shared image
s
##
This can be done starting
`2020.w41`
tag on the
`develop`
branch, or any branch that includes that tag.
Note: This can be done starting
`2020.XX`
tag on the
`develop`
branch, or any branch that includes that tag.
There are two shared images: one that has all dependencies, and a second that compiles all targets (eNB, gNB, [nr]UE).
```
bash
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
...
...
@@ -98,21 +107,25 @@ git checkout develop
In our Eurecom/OSA environment we need to pass a GIT proxy.
```
bash
docker build
--target
ran-build
--tag
ran-build:latest
--file
docker/Dockerfile.ran.ubuntu18
--build-arg
NEEDED_GIT_PROXY
=
"http://proxy.eurecom.fr:8080"
.
docker build
--target
ran-base
--tag
ran-base:latest
--file
docker/Dockerfile.base.ubuntu18
--build-arg
NEEDED_GIT_PROXY
=
"http://proxy.eurecom.fr:8080"
.
docker build
--target
ran-build
--tag
ran-build:latest
--file
docker/Dockerfile.build.ubuntu18
--build-arg
NEEDED_GIT_PROXY
=
"http://proxy.eurecom.fr:8080"
.
```
if you don't need it, do NOT pass any value:
```
bash
docker build
--target
ran-build
--tag
ran-build:latest
--file
docker/Dockerfile.ran.ubuntu18 .
docker build
--target
ran-base
--tag
ran-base:latest
--file
docker/Dockerfile.base.ubuntu18
.
docker build
--target
ran-build
--tag
ran-build:latest
--file
docker/Dockerfile.build.ubuntu18 .
```
After
a while
:
After
building both
:
```
bash
docker image
ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ran-build latest ccb721bc0b57 1 minute ago 4.06GB
ran-build latest f2633a7f5102 1 minute ago 6.81GB
ran-base latest 5c9c02a5b4a8 1 minute ago 2.4GB
...
```
...
...
@@ -131,7 +144,8 @@ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
oai-enb latest 25ddbd8b7187 1 minute ago 516MB
<none> <none> 875ea3b05b60 8 minutes ago 8.18GB
ran-build latest ccb721bc0b57 1 hour ago 4.06GB
ran-build latest f2633a7f5102 1 hour ago 6.81GB
ran-base latest 5c9c02a5b4a8 1 hour ago 2.4GB
```
Do not forget to remove the temporary image:
...
...
openair1/PHY/TOOLS/time_meas.c
View file @
9cda1172
...
...
@@ -25,20 +25,17 @@
#include <unistd.h>
#include <string.h>
#include "assertions.h"
#ifndef PHYSIM
#include <pthread.h>
#include "common/config/config_userapi.h"
#endif
#include <pthread.h>
#include "common/config/config_userapi.h"
#include <common/utils/threadPool/thread-pool.h>
// global var for openair performance profiler
int
opp_enabled
=
0
;
double
cpu_freq_GHz
__attribute__
((
aligned
(
32
)));
double
cpu_freq_GHz
__attribute__
((
aligned
(
32
)))
=
0
.
0
;
#ifndef PHYSIM
static
uint32_t
max_cpumeasur
;
static
time_stats_t
**
measur_table
;
notifiedFIFO_t
measur_fifo
;
#endif
double
get_cpu_freq_GHz
(
void
)
{
if
(
cpu_freq_GHz
<
1
)
{
...
...
@@ -187,7 +184,6 @@ double get_time_meas_us(time_stats_t *ts)
return
0
;
}
#ifndef PHYSIM
/* function for the asynchronous measurment module: cpu stat are sent to a dedicated thread
* which is in charge of computing the cpu time spent in a given function/algorithm...
*/
...
...
@@ -294,4 +290,3 @@ void end_meas(void) {
msg
->
msgid
=
TIMESTAT_MSGID_END
;
pushNotifiedFIFO
(
&
measur_fifo
,
nfe
);
}
#endif
openair1/PHY/TOOLS/time_meas.h
View file @
9cda1172
...
...
@@ -31,9 +31,7 @@
#include <pthread.h>
#include <linux/kernel.h>
#include <linux/types.h>
#ifndef PHYSIM
#include "common/utils/threadPool/thread-pool.h"
#endif
#include "common/utils/threadPool/thread-pool.h"
// global var to enable openair performance profiler
extern
int
opp_enabled
;
extern
double
cpu_freq_GHz
__attribute__
((
aligned
(
32
)));;
...
...
@@ -72,10 +70,8 @@ typedef struct {
char
*
meas_name
;
/*!< \brief name to use when printing the measure (not used for PHY simulators)*/
int
meas_index
;
/*!< \brief index of this measure in the measure array (not used for PHY simulators)*/
int
meas_enabled
;
/*!< \brief per measure enablement flag. send_meas tests this flag, unused today in start_meas and stop_meas*/
#ifndef PHYSIM
notifiedFIFO_elt_t
*
tpoolmsg
;
/*!< \brief message pushed to the cpu measurment queue to report a measure START or STOP */
time_stats_msg_t
*
tstatptr
;
/*!< \brief pointer to the time_stats_msg_t data in the tpoolmsg, stored here for perf considerations*/
#endif
}
time_stats_t
;
#define MEASURE_ENABLED(X) (X->meas_enabled)
...
...
@@ -165,7 +161,6 @@ static inline void copy_meas(time_stats_t *dst_ts,time_stats_t *src_ts) {
}
}
#ifndef PHYSIM
extern
notifiedFIFO_t
measur_fifo
;
#define CPUMEASUR_SECTION "cpumeasur"
...
...
@@ -187,5 +182,4 @@ extern notifiedFIFO_t measur_fifo;
}
void
end_meas
(
void
);
#endif //ifndef PHYSIM
#endif
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
9cda1172
...
...
@@ -844,11 +844,7 @@ int nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int gNB_
}
else
AssertFatal
(
1
==
0
,
"Not RA_PDSCH, SI_PDSCH or PDSCH
\n
"
);
stop_meas
(
&
ue
->
dlsch_llr_stats_parallelization
[
proc
->
thread_id
][
slot
]);
#if PHYSIM
printf
(
"[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f
\n
"
,
frame_rx
,
nr_slot_rx
,
m
,
ue
->
dlsch_llr_stats_parallelization
[
proc
->
thread_id
][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_D
(
PHY
,
"[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f
\n
"
,
frame_rx
,
nr_slot_rx
,
m
,
ue
->
dlsch_llr_stats_parallelization
[
proc
->
thread_id
][
slot
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
if
(
first_symbol_flag
)
{
proc
->
first_symbol_available
=
1
;
...
...
@@ -1028,17 +1024,11 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
stop_meas
(
&
ue
->
dlsch_decoding_stats
[
proc
->
thread_id
]);
#if PHYSIM
printf
(
" --> Unscrambling for CW0 %5.3f
\n
"
,
(
ue
->
dlsch_unscrambling_stats
.
p_time
)
/
(
cpuf
*
1000
.
0
));
printf
(
"AbsSubframe %d.%d --> LDPC Decoding for CW0 %5.3f
\n
"
,
frame_rx
%
1024
,
nr_slot_rx
,(
ue
->
dlsch_decoding_stats
[
proc
->
thread_id
].
p_time
)
/
(
cpuf
*
1000
.
0
));
#else
LOG_I
(
PHY
,
" --> Unscrambling for CW0 %5.3f
\n
"
,
(
ue
->
dlsch_unscrambling_stats
.
p_time
)
/
(
cpuf
*
1000
.
0
));
LOG_I
(
PHY
,
"AbsSubframe %d.%d --> LDPC Decoding for CW0 %5.3f
\n
"
,
frame_rx
%
1024
,
nr_slot_rx
,(
ue
->
dlsch_decoding_stats
[
proc
->
thread_id
].
p_time
)
/
(
cpuf
*
1000
.
0
));
#endif
if
(
is_cw1_active
)
{
// start ldpc decode for CW 1
...
...
@@ -1091,19 +1081,12 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
}
stop_meas
(
&
ue
->
dlsch_decoding_stats
[
proc
->
thread_id
]);
#if PHYSIM
printf
(
" --> Unscrambling for CW1 %5.3f
\n
"
,
(
ue
->
dlsch_unscrambling_stats
.
p_time
)
/
(
cpuf
*
1000
.
0
));
printf
(
"AbsSubframe %d.%d --> ldpc Decoding for CW1 %5.3f
\n
"
,
frame_rx
%
1024
,
nr_slot_rx
,(
ue
->
dlsch_decoding_stats
[
proc
->
thread_id
].
p_time
)
/
(
cpuf
*
1000
.
0
));
#else
stop_meas
(
&
ue
->
dlsch_decoding_stats
[
proc
->
thread_id
]);
LOG_D
(
PHY
,
" --> Unscrambling for CW1 %5.3f
\n
"
,
(
ue
->
dlsch_unscrambling_stats
.
p_time
)
/
(
cpuf
*
1000
.
0
));
LOG_D
(
PHY
,
"AbsSubframe %d.%d --> ldpc Decoding for CW1 %5.3f
\n
"
,
frame_rx
%
1024
,
nr_slot_rx
,(
ue
->
dlsch_decoding_stats
[
proc
->
thread_id
].
p_time
)
/
(
cpuf
*
1000
.
0
));
#endif
LOG_D
(
PHY
,
"AbsSubframe %d.%d --> ldpc Decoding for CW1 %5.3f
\n
"
,
frame_rx
%
1024
,
nr_slot_rx
,(
ue
->
dlsch_decoding_stats
[
proc
->
thread_id
].
p_time
)
/
(
cpuf
*
1000
.
0
));
...
...
@@ -1413,11 +1396,8 @@ void *UE_thread_slot1_dl_processing(void *arg) {
stop_meas
(
&
ue
->
ue_front_end_per_slot_stat
[
proc
->
thread_id
][
1
]);
#if PHYSIM
printf
(
"[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f
\n
"
,
frame_rx
,
nr_slot_rx
,
ue
->
ue_front_end_per_slot_stat
[
proc
->
thread_id
][
1
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_D
(
PHY
,
"[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f
\n
"
,
frame_rx
,
nr_slot_rx
,
ue
->
ue_front_end_per_slot_stat
[
proc
->
thread_id
][
1
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
//wait until pdcch is decoded
...
...
@@ -1507,11 +1487,8 @@ void *UE_thread_slot1_dl_processing(void *arg) {
//printf("Set available LLR slot1 to 1 AbsSubframe %d.%d \n",frame_rx,nr_slot_rx);
stop_meas
(
&
ue
->
pdsch_procedures_per_slot_stat
[
proc
->
thread_id
][
1
]);
#if PHYSIM
printf
(
"[AbsSFN %d.%d] Slot1: LLR Computation %5.2f
\n
"
,
frame_rx
,
nr_slot_rx
,
ue
->
pdsch_procedures_per_slot_stat
[
proc
->
thread_id
][
1
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_D
(
PHY
,
"[AbsSFN %d.%d] Slot1: LLR Computation %5.2f
\n
"
,
frame_rx
,
nr_slot_rx
,
ue
->
pdsch_procedures_per_slot_stat
[
proc
->
thread_id
][
1
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
if
(
pthread_mutex_lock
(
&
proc
->
mutex_slot1_dl_processing
)
!=
0
)
{
LOG_E
(
PHY
,
"[SCHED][UE] error locking mutex for UE RXTX
\n
"
);
...
...
@@ -1880,14 +1857,9 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
dlsch_parallel
);
stop_meas
(
&
ue
->
dlsch_procedures_stat
[
proc
->
thread_id
]);
#if PHYSIM
printf
(
"[SFN %d] Slot1: Pdsch Proc %5.2f
\n
"
,
nr_slot_rx
,
ue
->
pdsch_procedures_stat
[
proc
->
thread_id
].
p_time
/
(
cpuf
*
1000
.
0
));
printf
(
"[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f
\n
"
,
nr_slot_rx
,
ue
->
dlsch_procedures_stat
[
proc
->
thread_id
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_D
(
PHY
,
"[SFN %d] Slot1: Pdsch Proc %5.2f
\n
"
,
nr_slot_rx
,
ue
->
pdsch_procedures_stat
[
proc
->
thread_id
].
p_time
/
(
cpuf
*
1000
.
0
));
LOG_D
(
PHY
,
"[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f
\n
"
,
nr_slot_rx
,
ue
->
dlsch_procedures_stat
[
proc
->
thread_id
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
// deactivate dlsch once dlsch proc is done
...
...
@@ -1963,9 +1935,7 @@ if (nr_slot_rx==9) {
}
stop_meas
(
&
ue
->
generic_stat
);
#if PHYSIM
printf
(
"after tubo until end of Rx %5.2f
\n
"
,
ue
->
generic_stat
.
p_time
/
(
cpuf
*
1000
.
0
));
#endif
LOG_D
(
PHY
,
"after tubo until end of Rx %5.2f
\n
"
,
ue
->
generic_stat
.
p_time
/
(
cpuf
*
1000
.
0
));
#ifdef EMOS
phy_procedures_emos_UE_RX
(
ue
,
slot
,
gNB_id
);
...
...
@@ -1975,11 +1945,8 @@ phy_procedures_emos_UE_RX(ue,slot,gNB_id);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX
,
VCD_FUNCTION_OUT
);
stop_meas
(
&
ue
->
phy_proc_rx
[
proc
->
thread_id
]);
#if PHYSIM
printf
(
"------FULL RX PROC [SFN %d]: %5.2f ------
\n
"
,
nr_slot_rx
,
ue
->
phy_proc_rx
[
proc
->
thread_id
].
p_time
/
(
cpuf
*
1000
.
0
));
#else
LOG_D
(
PHY
,
"------FULL RX PROC [SFN %d]: %5.2f ------
\n
"
,
nr_slot_rx
,
ue
->
phy_proc_rx
[
proc
->
thread_id
].
p_time
/
(
cpuf
*
1000
.
0
));
#endif
//#endif //pdsch
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment