Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
openairinterface5G
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Mingxuan Li
openairinterface5G
Commits
22ad41e6
Commit
22ad41e6
authored
2 years ago
by
turletti
Committed by
Robert Schmidt
2 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Dockerfile for aw2s RRUs on u18.04
parent
2de56bf3
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
docker/Dockerfile.gNB.aw2s.ubuntu18
+110
-0
110 additions, 0 deletions
docker/Dockerfile.gNB.aw2s.ubuntu18
docker/scripts/gnb-aw2s_entrypoint.sh
+83
-0
83 additions, 0 deletions
docker/scripts/gnb-aw2s_entrypoint.sh
with
193 additions
and
0 deletions
docker/Dockerfile.gNB.aw2s.ubuntu18
0 → 100644
+
110
−
0
View file @
22ad41e6
#/*
# * 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 Ubuntu18.04
#
#---------------------------------------------------------------------
FROM ran-base:latest AS gnb-base
FROM ran-build:latest AS gnb-build
COPY ./libori.so /usr/local/lib/
# build AW2S fronthaul lib
WORKDIR /oai-ran
RUN /bin/sh oaienv && \
cd cmake_targets/ran_build/build && \
ninja aw2sori_transpro
RUN python3 ./docker/scripts/generateTemplate.py ./docker/scripts/gnb_parameters.yaml && \
cp /oai-ran/docker/scripts/gnb-aw2s_entrypoint.sh /oai-ran/docker/scripts/entrypoint.sh
#start from scratch for target executable
FROM ubuntu:bionic as oai-gnb-aw2s
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
software-properties-common \
procps \
libsctp1 \
tzdata \
libnettle6 \
libblas3 \
libatlas3-base \
libconfig9 \
openssl \
net-tools \
iproute2 \
iputils-ping \
python \
python3 \
python3-six \
python3-requests \
libusb-1.0-0 && \
rm -rf /var/lib/apt/lists/*
COPY ./libori.so /usr/local/lib/
WORKDIR /opt/oai-gnb-aw2s/bin
COPY --from=gnb-build \
/oai-ran/cmake_targets/ran_build/build/nr-softmodem \
./
COPY ./docker/scripts/gnb-aw2s_entrypoint.sh /opt/oai-gnb-aw2s/bin/entrypoint.sh
COPY --from=gnb-build \
/oai-ran/cmake_targets/ran_build/build/liboai_eth_transpro.so \
/oai-ran/cmake_targets/ran_build/build/librfsimulator.so \
/oai-ran/cmake_targets/ran_build/build/libaw2sori_transpro.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 \
/oai-ran/cmake_targets/ran_build/build/libtelnetsrv.so \
/usr/local/lib/
RUN /bin/bash -c "ln -s /usr/local/lib/libaw2sori_transpro.so /usr/local/lib/libthirdparty_transpro.so" && \
/bin/bash -c "ln -s /usr/local/lib/liboai_eth_transpro.so /usr/local/lib/liboai_transpro.so" && \
ldconfig
# Copy the relevant configuration files for gNB
WORKDIR /opt/oai-gnb-aw2s/etc
COPY --from=gnb-build /oai-ran/docker/etc .
WORKDIR /opt/oai-gnb-aw2s
#EXPOSE 2152/udp # S1U, GTP/UDP
#EXPOSE 22100/tcp # ?
#EXPOSE 36412/udp # S1C, SCTP/UDP
#EXPOSE 36422/udp # X2C, SCTP/UDP
#EXPOSE 50000/udp # IF5 / ORI (control)
#EXPOSE 50001/udp # IF5 / ECPRI (data)
ENTRYPOINT ["/opt/oai-gnb-aw2s/bin/entrypoint.sh"]
CMD ["/opt/oai-gnb-aw2s/bin/nr-softmodem", "-O", "/opt/oai-gnb-aw2s/etc/gnb.conf"]
This diff is collapsed.
Click to expand it.
docker/scripts/gnb-aw2s_entrypoint.sh
0 → 100755
+
83
−
0
View file @
22ad41e6
#!/bin/bash
set
-uo
pipefail
PREFIX
=
/opt/oai-gnb-aw2s
ENABLE_X2
=
${
ENABLE_X2
:-
yes
}
THREAD_PARALLEL_CONFIG
=
${
THREAD_PARALLEL_CONFIG
:-
PARALLEL_SINGLE_THREAD
}
# 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_SA_TDD_MONO
]]
;
then
cp
$PREFIX
/etc/gnb.sa.tdd.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_TDD_MONO_B2XX
]]
;
then
cp
$PREFIX
/etc/gnb.sa.tdd.b2xx.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_FDD_MONO
]]
;
then
cp
$PREFIX
/etc/gnb.sa.fdd.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_CU
]]
;
then
cp
$PREFIX
/etc/gnb.sa.cu.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_TDD_DU
]]
;
then
cp
$PREFIX
/etc/gnb.sa.du.tdd.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_NFAPI_VNF
]]
;
then
cp
$PREFIX
/etc/gnb.sa.nfapi.vnf.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
# Default Parameters
GNB_ID
=
${
GNB_ID
:-
e00
}
NSSAI_SD
=
${
NSSAI_SD
:-
ffffff
}
# AMF_IP_ADDRESS can be amf ip address of amf fqdn
if
[[
-v
AMF_IP_ADDRESS
]]
&&
[[
"
${
AMF_IP_ADDRESS
}
"
=
~
[
a-zA-Z]
]]
&&
[[
-z
`
getent hosts
$AMF_IP_ADDRESS
|
awk
'{print $1}'
`
]]
;
then
echo
"not able to resolve AMF FQDN"
&&
exit
1
;
fi
[[
-v
AMF_IP_ADDRESS
]]
&&
[[
"
${
AMF_IP_ADDRESS
}
"
=
~
[
a-zA-Z]
]]
&&
AMF_IP_ADDRESS
=
$(
getent hosts
$AMF_IP_ADDRESS
|
awk
'{print $1}'
)
# Only this template will be manipulated
CONFIG_FILES
=
`
ls
$PREFIX
/etc/gnb.conf
||
true
`
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
VARS
=
$(
grep
-oP
'@[a-zA-Z0-9_]+@'
${
c
}
|
sort
|
uniq
| xargs
)
# create sed expressions for substituting each occurrence of ${VAR}
# with the value of the environment variable "VAR"
EXPRESSIONS
=
""
for
v
in
${
VARS
}
;
do
NEW_VAR
=
`
echo
$v
|
sed
-e
"s#@##g"
`
if
[[
"
${
!NEW_VAR
}
x"
==
"x"
]]
;
then
echo
"Error: Environment variable '
${
NEW_VAR
}
' is not set."
\
"Config file '
$(
basename
$c
)
' requires all of
$VARS
."
exit
1
fi
EXPRESSIONS
=
"
${
EXPRESSIONS
}
;s|
${
v
}
|
${
!NEW_VAR
}
|g"
done
EXPRESSIONS
=
"
${
EXPRESSIONS
#
';'
}
"
# render template and inline replace config file
sed
-i
"
${
EXPRESSIONS
}
"
${
c
}
echo
"=================================="
echo
"== Configuration file:
${
c
}
"
cat
${
c
}
done
# enable printing of stack traces on assert
export
gdbStacks
=
1
echo
"=================================="
echo
"== Starting gNB soft modem with AW2S"
if
[[
-v
USE_ADDITIONAL_OPTIONS
]]
;
then
echo
"Additional option(s):
${
USE_ADDITIONAL_OPTIONS
}
"
new_args
=()
while
[[
$#
-gt
0
]]
;
do
new_args+
=(
"
$1
"
)
shift
done
for
word
in
${
USE_ADDITIONAL_OPTIONS
}
;
do
new_args+
=(
"
$word
"
)
done
echo
"
${
new_args
[@]
}
"
exec
"
${
new_args
[@]
}
"
else
echo
"
$@
"
exec
"
$@
"
fi
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment