Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-UPF
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-UPF
Commits
6275f772
Unverified
Commit
6275f772
authored
Mar 30, 2021
by
Rohan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
entrypoint clean up
parent
32d0067b
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
67 additions
and
83 deletions
+67
-83
docker/Dockerfile.ubuntu.18.04
docker/Dockerfile.ubuntu.18.04
+9
-7
scripts/add_route.sh
scripts/add_route.sh
+0
-20
scripts/apply_vpp_patches.sh
scripts/apply_vpp_patches.sh
+2
-0
scripts/entrypoint.sh
scripts/entrypoint.sh
+19
-38
scripts/tests/docker-compose.yml
scripts/tests/docker-compose.yml
+34
-15
scripts/upf_conf/init.conf
scripts/upf_conf/init.conf
+1
-1
scripts/upf_conf/startup_debug.conf
scripts/upf_conf/startup_debug.conf
+2
-2
No files found.
docker/Dockerfile.ubuntu.18.04
View file @
6275f772
...
...
@@ -9,7 +9,7 @@
# */
#---------------------------------------------------------------------
#
# Dockerfile for the
Open-Air-Interface
UPF service
# Dockerfile for the
VPP-
UPF service
# Valid for Ubuntu-18.04 (bionic)
#
#---------------------------------------------------------------------
...
...
@@ -38,7 +38,7 @@ RUN git clone https://github.com/travelping/upg-vpp.git
RUN mv upg-vpp/upf/ vpp/src/plugins/
RUN mv upg-vpp/vpp-patches/* scripts/patches/
RUN mv upg-vpp/vpp.spec /
RUN ./scripts/apply_vpp_patches
RUN ./scripts/apply_vpp_patches
.sh
RUN touch /etc/apt/apt.conf.d/90forceyes
RUN echo "APT::Get::Assume-Yes "true";" >> /etc/apt/apt.conf.d/90forceyes
RUN echo "APT::Get::force-yes "true";" >> /etc/apt/apt.conf.d/90forceyes
...
...
@@ -61,28 +61,30 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && DE
openssl \
libhyperscan-dev \
iproute2 \
vim \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /openair-upf/bin/
COPY --from=vpp-upf-builder /vpp-upf/scripts/entrypoint.sh /openair-upf/bin/entrypoint.sh
COPY --from=vpp-upf-builder /vpp-upf/scripts/run.sh /openair-upf/run.sh
COPY --from=vpp-upf-builder /vpp-upf/vpp/build-root/install-vpp-native/vpp/bin/vpp vpp
COPY --from=vpp-upf-builder /vpp-upf/vpp/build-root/install-vpp-native/vpp/bin/vppctl vppctl
WORKDIR /openair-upf/etc
COPY --from=vpp-upf-builder /vpp-upf/scripts/upf_conf/init.conf /openair-upf/etc/init.conf
COPY --from=vpp-upf-builder /vpp-upf/scripts/upf_conf/startup_debug.conf /openair-upf/etc/startup_debug.conf
COPY --from=vpp-upf-builder /vpp-upf/scripts/add_route.sh /openair-upf/etc/add_route.sh
WORKDIR /usr/lib/x86_64-linux-gnu/
COPY --from=vpp-upf-builder /vpp-upf/vpp/build-root/install-vpp-native/vpp/lib/ .
RUN ldconfig
RUN groupadd vpp
#expose
#EXPOSE <write the port numbers>
WORKDIR /openair-upf/
COPY --from=vpp-upf-builder /vpp-upf/scripts/run.sh /openair-upf/run.sh
#expose
#EXPOSE 8085/udp 2152/udp
ENTRYPOINT ["/openair-upf/bin/entrypoint.sh"]
CMD ["/openair-upf/run.sh"]
scripts/add_route.sh
deleted
100755 → 0
View file @
32d0067b
#!/usr/bin/env bash
ip
link set
eth0 down
ip
link set
eth0 name access
ip
link set
access up
ip
link set
eth1 down
ip
link set
eth1 name core
ip
link set
core up
ip
link set
eth2 down
ip
link set
eth2 name sgi
ip
link set
sgi up
ip route add @NETWORK_UE_IP@ via @UE_DL_Gw@ dev sgi
ip route add @SUBNET_ACCESS@ dev access
ip route add @SUBNET_CORE@ dev core
ip route add @SUBNET_SGI@ dev sgi
scripts/apply_vpp_patches
→
scripts/apply_vpp_patches
.sh
View file @
6275f772
#!/usr/bin/env bash
cd
scripts/patches/
find
.
-iname
'*.patch'
-execdir
sh
-c
'patch -p1 -N -d ../../vpp < $0'
{}
\;
scripts/entrypoint.sh
View file @
6275f772
#!/usr/bin/env bash
#
@Raphael -> first 3
files are common to docker and native installation
# files are common to docker and native installation
#____________
# init.conf => upf config
# startup_debug.conf => vpp config (To Do -> sed location of init.conf file)
# run_sh => run vpp
# add_route.sh => container routes
#____________
set
-euo
pipefail
CONFIG_DIR
=
"/openair-upf/etc"
###############################
...
...
@@ -17,7 +18,6 @@ CONFIG_DIR="/openair-upf/etc"
for
c
in
${
CONFIG_DIR
}
/
*
.conf
;
do
# 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
=
""
...
...
@@ -31,57 +31,38 @@ for c in ${CONFIG_DIR}/*.conf; do
EXPRESSIONS
=
"
${
EXPRESSIONS
}
;s|
${
v
}
|
${
!NEW_VAR
}
|g"
done
EXPRESSIONS
=
"
${
EXPRESSIONS
#
';'
}
"
# render template and inline replace config file
sed
-i
"
${
EXPRESSIONS
}
"
${
c
}
done
###############################
# VPP Routes
###############################
# @Raphael
# Assumption ->
# Assumption ->
# UPF has only three interfaces viz. n3 (access) eth0, n4 (core) eth1, n6 (sgi) eth2
# Near future we will have multiple interfaces (e.g. two n6 interface for edge computing case)
# We define in this order in docker-compose -> it is alphabetical order
#
ACCESS_IPV4
=
$(
ifconfig eth0 |
grep
"inet "
|
awk
'{print $2}'
)
CORE_IPV4
=
$(
ifconfig eth1 |
grep
"inet "
|
awk
'{print $2}'
)
SGI_IPV4
=
$(
ifconfig eth2 |
grep
"inet "
|
awk
'{print $2}'
)
# Dirty extraction -> we assume /24 subnet
export
UE_DL_Gw
=
$SGI_IPV4
export
SUBNET_ACCESS
=
`
echo
$ACCESS_IPV4
|
sed
-e
's/\.[^.]*\$//'
`
'.0/24'
;
export
SUBNET_CORE
=
`
echo
$CORE_IPV4
|
sed
-e
's/\.[^.]*\$//'
`
'.0/24'
;
export
SUBNET_SGI
=
`
echo
$SGI_IPV4
|
sed
-e
's/\.[^.]*\$//'
`
'.0/24'
;
for
c
in
${
CONFIG_DIR
}
/add_route.sh
;
do
# grep variable names (format: ${VAR}) from template to be rendered
VARS
=
$(
grep
-oP
'@[a-zA-Z0-9_]+@'
${
c
}
|
sort
|
uniq
| xargs
)
UE_DL_Gw
=
$SGI_IPV4
# 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
#
';'
}
"
ip
link set
eth0 down
ip
link set
eth0 name access
ip
link set
access up
# render template and inline replace config file
sed
-i
"
${
EXPRESSIONS
}
"
${
c
}
done
ip
link set
eth1 down
ip
link set
eth1 name core
ip
link set
core up
exec
"
$@
"
ip
link set
eth2 down
ip
link set
eth2 name sgi
ip
link set
sgi up
sleep
1
ip route add
$NETWORK_UE_IP
via
$UE_DL_Gw
dev sgi
e
xec
/openair-upf/etc/add_route.sh
e
cho
"Done setting the configuration"
#____________________________________________________________________________
exec
"
$@
"
scripts/tests/docker-compose.yml
View file @
6275f772
...
...
@@ -36,16 +36,20 @@ services:
UDM_IPV4_ADDRESS
:
192.168.61.194
UDM_PORT
:
80
UDM_API_VERSION
:
v1
UPF_IPV4_ADDRESS
:
192.168.61.201
entrypoint
:
/bin/bash -c \
"./bin/entrypoint.sh; ./bin/oai_smf -o -c etc/smf.conf; sleep infinity"
UPF_IPV4_ADDRESS
:
192.168.61.202
USE_NETWORK_INSTANCE
:
'
yes'
DISCOVER_UPF
:
'
no'
NRF_API_VERSION
:
'
v1'
NRF_IPV4_ADDRESS
:
'
127.0.0.1'
NRF_PORT
:
'
8080'
REGISTER_NRF
:
'
no'
healthcheck
:
test
:
/bin/bash -c "pgrep oai_smf"
interval
:
10s
timeout
:
5s
retries
:
5
extra_hosts
:
-
"
gw1.vppupf.node.epc.mnc95.mcc208.3gppnetwork.org:192.168.61.201
"
-
"
gw1.vppupf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.61.202
"
oai-amf
:
image
:
oai-amf:develop
...
...
@@ -76,6 +80,7 @@ services:
SST_1
:
'
1'
SD_0
:
'
123'
SD_1
:
'
12'
SMF_SELECTION
:
'
no'
SMF_INSTANCE_ID_0
:
1
SMF_INSTANCE_ID_1
:
2
SMF_IPV4_ADDR_0
:
192.168.61.196
...
...
@@ -95,10 +100,7 @@ services:
MYSQL_PASS
:
'
linux'
MYSQL_DB
:
'
oai_db'
OPERATOR_KEY
:
'
63bfa50ee6523365ff14c1f45f88737d'
entrypoint
:
/bin/bash -c \
"./bin/entrypoint.sh; ./bin/oai_amf -o -c etc/amf.conf; sleep infinity"
volumes
:
-
./entrypoint.sh:/openair-amf/bin/entrypoint.sh
NF_REGISTRATION
:
'
no'
healthcheck
:
test
:
/bin/bash -c "pgrep oai_smf"
interval
:
10s
...
...
@@ -127,14 +129,16 @@ services:
REALM
:
"
3gppnetwork.org"
NETWORK_UE_IP
:
"
12.1.1.0/24"
N3_IPV4_ADDRESS_REMOTE
:
"
192.168.62.198"
N3_IPV4_ADDRESS_LOCAL
:
"
192.168.62.20
1
"
N3_IPV4_ADDRESS_LOCAL
:
"
192.168.62.20
2
"
N4_IPV4_ADDRESS_REMOTE
:
"
192.168.61.196"
N4_IPV4_ADDRESS_LOCAL
:
"
192.168.61.20
1
"
N4_IPV4_ADDRESS_LOCAL
:
"
192.168.61.20
2
"
N6_IPV4_ADDRESS_REMOTE
:
"
192.168.63.205"
N6_IPV4_ADDRESS_LOCAL
:
"
192.168.63.20
1
"
N6_IPV4_ADDRESS_LOCAL
:
"
192.168.63.20
2
"
VPP_MAIN_CORE
:
0
VPP_CORE_WORKER
:
1
# entrypoint: /bin/bash -c "/openair-upf/bin/entrypoint.sh;./run.sh; sleep infinity"
# volumes:
# - ../entrypoint.sh:/openair-upf/bin/entrypoint.sh
# entrypoint: /bin/bash -c "./bin/entrypoint.sh; ./run.sh"
oai-spgwu
:
image
:
oai-spgwu-tiny:gtp_ext_header
...
...
@@ -182,21 +186,36 @@ services:
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 10.1.1.0/24 via 192.168.61.199 dev eth0;"\
"ip route add 12.1.1.0/24 via 192.168.63.201 dev eth1; sleep infinity"
gnbsim
:
image
:
gnbsim:latest
privileged
:
true
container_name
:
gnbsim
environment
:
AMF_NGAP_IPV4_ADDRESS
:
192.168.61.195
networks
:
public_net
:
ipv4_address
:
192.168.61.198
public_net_access
:
ipv4_address
:
192.168.62.198
volumes
:
-
./lib/modules/5.8.0-43-generic/kernel/drivers/net/gtp.ko:/lib/modules/5.8.0-43-generic/kernel/drivers/net/gtp.ko
entrypoint
:
/bin/bash -c "sleep infinity"
networks
:
public_net
:
name
:
oai-public-net
ipam
:
config
:
-
subnet
:
192.168.61.
192
/24
-
subnet
:
192.168.61.
0
/24
public_net_access
:
name
:
oai-public-access
ipam
:
config
:
-
subnet
:
192.168.62.
192
/24
-
subnet
:
192.168.62.
0
/24
public_net_sgi_lan
:
name
:
oai-public-sgi-lan
ipam
:
config
:
-
subnet
:
192.168.63.
192
/24
-
subnet
:
192.168.63.
0
/24
scripts/upf_conf/init.conf
View file @
6275f772
...
...
@@ -24,7 +24,7 @@ ip route add 0.0.0.0/0 table 0 via @N4_IPV4_ADDRESS_REMOTE@ host-core
ip
route
add
0
.
0
.
0
.
0
/
0
table
1
via
@
N6_IPV4_ADDRESS_REMOTE
@
host
-
sgi
upf
pfcp
endpoint
ip
@
N4_IPV4_ADDRESS_LOCAL
@
vrf
0
upf
node
-
id
fqdn
gw
@
GW_ID
@.
vppupf
.
node
.
epc
.
mnc
@
MNC03
@.
mcc
@
MCC
@.@
REALM
@
upf
node
-
id
fqdn
gw
@
GW_ID
@.
vppupf
.
node
.
5
gcn
.
mnc
@
MNC03
@.
mcc
@
MCC
@.@
REALM
@
upf
nwi
name
@
NWI_CORE
@
vrf
0
upf
nwi
name
@
NWI_ACCESS
@
vrf
2
...
...
scripts/upf_conf/startup_debug.conf
View file @
6275f772
...
...
@@ -13,8 +13,8 @@ api-trace {
}
#cpu {
# main-core
0
# corelist-workers
1
# main-core
@VPP_MAIN_CORE@
# corelist-workers
@VPP_CORE_WORKER@
#}
api
-
segment
{
...
...
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