Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-SMF
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
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-SMF
Commits
32ea7162
Commit
32ea7162
authored
Mar 12, 2021
by
yangjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add docker
parent
cfc590a5
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
290 additions
and
0 deletions
+290
-0
build/scripts/build_docker.sh
build/scripts/build_docker.sh
+68
-0
build/scripts/build_install_package.sh
build/scripts/build_install_package.sh
+73
-0
docker/Dockerfile
docker/Dockerfile
+7
-0
etc/smf_docker.conf
etc/smf_docker.conf
+142
-0
No files found.
build/scripts/build_docker.sh
0 → 100755
View file @
32ea7162
#!/bin/bash
THIS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
$0
))
echo
"
$THIS_SCRIPT_PATH
"
source
${
THIS_SCRIPT_PATH
}
/build_install_package.sh
function
build_docker
()
{
docker build
-t
smf:v1.0
-f
${
THIS_SCRIPT_PATH
}
/../../docker/Dockerfile
$1
/
if
[[
$?
-eq
0
]]
;
then
return
0
else
return
1
fi
}
function
main
()
{
local
-i
apk
=
0
local
-i
docker
=
0
until
[
-z
"
$1
"
]
do
case
"
$1
"
in
-g
|
--generate-type
)
if
[
"
$2
"
==
"Apk"
]
;
then
apk
=
1
elif
[
"
$2
"
==
"Docker"
]
;
then
apk
=
1
docker
=
1
else
echo
"Unknown option
\"
Apk
\"
Or
\"
Docker
\"
"
return
1
fi
shift
2
;
;;
*
)
echo
"Unknown option
$1
"
return
1
;;
esac
done
if
[
$apk
-ne
0
]
;
then
echo
"Generating a green installation package"
generate_install_package
${
THIS_SCRIPT_PATH
}
/../smf/build/smf
${
THIS_SCRIPT_PATH
}
/../../etc/smf_docker.conf
${
THIS_SCRIPT_PATH
}
/../smf-install-packer
if
[[
$?
-eq
0
]]
;
then
echo
"Green installation package was generated successfully"
else
echo
"Green installation package generation failed"
return
0
fi
fi
if
[
$docker
-ne
0
]
;
then
echo
"Creating a Docker image"
build_docker
${
THIS_SCRIPT_PATH
}
/../smf-install-packer
if
[[
$?
-eq
0
]]
;
then
echo
"Docker image created successfully"
else
echo
"Docker image creation failed"
return
0
fi
fi
}
main
"
$@
"
build/scripts/build_install_package.sh
0 → 100755
View file @
32ea7162
#!/bin/bash
function
generate_install_package
()
{
local
lib_dir
=
""
local
libs_dir
=
""
local
res
=
""
local
res_new
=
""
local
result
=
false
echo
"[Executable File]
$1
"
echo
"[Config File]
$2
"
echo
"[Generate Dir]
$3
"
if
[
-n
"
$1
"
]
&&
[
-n
"
$2
"
]
&&
[
-n
"
$3
"
]
;
then
if
[
-f
"
$1
"
]
&&
[
-f
"
$2
"
]
;
then
res
=
"
$(
ldd
$1
)
"
for
((
i
=
1
;
i<
=
100
;
i++
))
do
res_new
=
"
${
res
#*/
}
"
if
[
"
$res_new
"
==
"
$res
"
]
;
then
result
=
true
break
fi
lib_dir
=
"/
${
res_new
%%(*
}
"
libs_dir+
=
"
$lib_dir
"
res
=
"
${
res_new
#*
}
"
done
else
echo
"
\"
$1
\"
Or
\"
$2
\"
does not exist!"
fi
if
[
$result
==
true
]
;
then
if
[
-d
"
$3
"
]
;
then
rm
-r
$3
fi
mkdir
$3
$3
/libs
cp
$libs_dir
$3
/libs/
cp
$1
$3
cp
$2
$3
/default.conf
cd
$3
cat
>
start.sh
<<
EOF
#!/bin/bash
cd
\`
dirname
\$
0
\`
ROOT_DIR=
\$
(pwd)
if [ -f "
\$
ROOT_DIR/external.conf" ]; then
echo -e "
\E
[33mUsing external configuration
\E
[00m"
\$
ROOT_DIR/libs/ld-linux-x86-64.so.2 --library-path
\$
ROOT_DIR/libs/
\$
ROOT_DIR/
$(
basename
$1
)
-c
\$
ROOT_DIR/external.conf -o
else
echo -e "
\E
[33mUsing default configuration
\E
[00m"
\$
ROOT_DIR/libs/ld-linux-x86-64.so.2 --library-path
\$
ROOT_DIR/libs/
\$
ROOT_DIR/
$(
basename
$1
)
-c
\$
ROOT_DIR/default.conf -o
fi
EOF
chmod
777 start.sh
return
0
else
echo
"Extract library failed!"
return
1
fi
else
echo
"
$0
[Executable File] [Config File] [Generate Dir]"
fi
}
#generate_install_package "$@"
docker/Dockerfile
0 → 100644
View file @
32ea7162
FROM
ubuntu:18.04
ADD
. /opt/5gc/smf
RUN
apt-get update
-y
&&
\
apt-get
install
--no-install-recommends
-y
net-tools vim inetutils-ping
&&
\
mkdir
/opt/5gc/log
EXPOSE
8805/udp 8889/tcp
CMD
["/opt/5gc/smf/start.sh"]
etc/smf_docker.conf
0 → 100755
View file @
32ea7162
################################################################################
# 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
################################################################################
SMF
=
{
INSTANCE
=
10
;
# 0 is the default
PID_DIRECTORY
=
"/var/run"
;
# /var/run is the default
#ITTI_TASKS :
#{
#ITTI_TIMER_SCHED_PARAMS :
#{
#CPU_ID = 1;
#SCHED_POLICY = "SCHED_FIFO"; # Values in { SCHED_OTHER, SCHED_IDLE, SCHED_BATCH, SCHED_FIFO, SCHED_RR }
#SCHED_PRIORITY = 85;
#};
#SMF_APP_SCHED_PARAMS :
#{
#CPU_ID = 1;
#SCHED_POLICY = "SCHED_FIFO"; # Values in { SCHED_OTHER, SCHED_IDLE, SCHED_BATCH, SCHED_FIFO, SCHED_RR }
#SCHED_PRIORITY = 84;
#};
#ASYNC_CMD_SCHED_PARAMS :
#{
#CPU_ID = 1;
#SCHED_POLICY = "SCHED_FIFO"; # Values in { SCHED_OTHER, SCHED_IDLE, SCHED_BATCH, SCHED_FIFO, SCHED_RR }
#SCHED_PRIORITY = 84;
#};
#};
INTERFACES
:
{
N4
:
{
# SMF binded interface for N4 communication (UPF)
INTERFACE_NAME
=
"eth0"
;
# STRING, interface name
IPV4_ADDRESS
=
"read"
;
# STRING, CIDR or "read" to let app read interface configured IP address
};
SBI
:
{
# SMF binded interface for N11 communication (AMF)
INTERFACE_NAME
=
"eth0"
;
# STRING, interface name
IPV4_ADDRESS
=
"read"
;
PORT
=
8889
;
};
TEST_UPF
:
{
# P-GW binded interface for SX communication
IS_TEST
=
"1"
;
# 0: no test,1:test
GNB_IPV4_ADDRESS
=
"192.168.10.10"
;
# STRING,gnb_ip
};
};
# Pool of UE assigned IP addresses
# Do not make IP pools overlap
# first IPv4 address X.Y.Z.1 is reserved for GTP network device on SPGW
# Normally no more than 96 pools allowed, but for non OVS GTP solution, only one pool allowed (TODO).
IP_ADDRESS_POOL
:
{
IPV4_LIST
= (
{
RANGE
=
"12.1.1.2 - 12.1.1.128"
;},
# STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
{
RANGE
=
"12.1.1.129 - 12.1.1.224"
;},
# STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
{
RANGE
=
"192.169.0.3 - 192.169.255.253"
;},
# STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
{
RANGE
=
"192.170.0.2 - 192.170.255.253"
;},
# STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
{
RANGE
=
"192.171.0.2 - 192.171.255.253"
;}
# STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
);
IPV6_LIST
= (
{
PREFIX
=
"2001:1:2::/64"
;},
# STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
{
PREFIX
=
"3001:1:2::/64"
;},
# STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
{
PREFIX
=
"4001:1:2::/64"
;}
# STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
);
};
APN_LIST
= (
# IPV4_POOL, IPV6_POOL are index in IPV4_LIST, IPV6_LIST, PDN_TYPE choice in {IPv4, IPv6, IPv4v6}
{
APN_NI
=
"default"
;
PDN_TYPE
=
"IPv4"
;
IPV4_POOL
=
0
;
IPV6_POOL
= -
1
},
#{APN_NI = "apn1"; PDN_TYPE = "IPv4"; IPV4_POOL = 1; IPV6_POOL = -1},
{
APN_NI
=
"carrier.com"
;
PDN_TYPE
=
"IPv4"
;
IPV4_POOL
=
1
;
IPV6_POOL
= -
1
},
{
APN_NI
=
"internet"
;
PDN_TYPE
=
"IPv4"
;
IPV4_POOL
=
2
;
IPV6_POOL
= -
1
},
{
APN_NI
=
"apn3"
;
PDN_TYPE
=
"IPv4"
;
IPV4_POOL
=
3
;
IPV6_POOL
= -
1
},
{
APN_NI
=
"apn4"
;
PDN_TYPE
=
"IPv4"
;
IPV4_POOL
=
4
;
IPV6_POOL
= -
1
}
);
# DNS address communicated to UEs
DEFAULT_DNS_IPV4_ADDRESS
=
"114.114.114.114"
;
# YOUR NETWORK CONFIG HERE
DEFAULT_DNS_SEC_IPV4_ADDRESS
=
"114.114.114.114"
;
# YOUR NETWORK CONFIG HERE
DEFAULT_DNS_IPV6_ADDRESS
=
"2001:4860:4860::8888"
;
# FFU
DEFAULT_DNS_SEC_IPV6_ADDRESS
=
"2001:4860:4860::8844"
;
# FFU
# Non standard feature, normally should be set to "no", but you may need to set to yes for UE that do not explicitly request a PDN address through NAS signalling
FORCE_PUSH_PROTOCOL_CONFIGURATION_OPTIONS
=
"no"
;
# STRING, {"yes", "no"}.
PCEF
:
{
# Waiting for HSS APN-AMBR IE ...
APN_AMBR_UL
=
500000
;
# Maximum UL bandwidth that can be used by non guaranteed bit rate traffic in Kbits/seconds.
APN_AMBR_DL
=
500000
;
# Maximum DL bandwidth that can be used by non guaranteed bit rate traffic in Kbits/seconds.
};
AMF
:
{
# IPV4_ADDRESS="192.168.2.101";
IPV4_ADDRESS
=
"172.16.200.14"
;
PORT
=
8282
;
};
UDM
:
{
# IPV4_ADDRESS="192.168.2.20";
IPV4_ADDRESS
=
"172.16.200.12"
;
PORT
=
8181
;
};
# UPF_LIST = (
# {IPV4_ADDRESS="192.168.2.59" ;}
# );
UPF_LIST
= (
{
IPV4_ADDRESS
=
"192.168.10.2"
;}
);
};
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