Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-AMF
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-AMF
Commits
4b4ed7f5
Commit
4b4ed7f5
authored
Mar 12, 2021
by
yangjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add docker
parent
abbadb7b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
268 additions
and
2 deletions
+268
-2
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/amf_docker.conf
etc/amf_docker.conf
+118
-0
src/amf-app/amf_n1.cpp
src/amf-app/amf_n1.cpp
+2
-2
No files found.
build/scripts/build_docker.sh
0 → 100755
View file @
4b4ed7f5
#!/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
amf: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
}
/../amf/build/amf
${
THIS_SCRIPT_PATH
}
/../../etc/amf_docker.conf
${
THIS_SCRIPT_PATH
}
/../amf-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
}
/../amf-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 @
4b4ed7f5
#!/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 @
4b4ed7f5
FROM
ubuntu:18.04
ADD
. /opt/5gc/amf
RUN
apt-get update
-y
&&
\
apt-get
install
--no-install-recommends
-y
net-tools vim inetutils-ping
&&
\
mkdir
/opt/5gc/log
EXPOSE
8282 38412/sctp
CMD
["/opt/5gc/amf/start.sh"]
etc/amf_docker.conf
0 → 100755
View file @
4b4ed7f5
################################################################################
# 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
################################################################################
AMF
=
{
INSTANCE_ID
=
10
;
# 0 is the default
PID_DIRECTORY
=
"/var/run"
;
# /var/run is the default
AMF_NAME
=
"OAI-AMF"
;
RELATIVE_CAPACITY
=
50
;
# Display statistics about whole system (in seconds)
STATISTICS_TIMER_INTERVAL
=
20
;
# YOUR CONFIG HERE
CORE_CONFIGURATION
:
{
EMERGENCY_SUPPORT
=
"false"
;
};
GUAMI
:
{
MCC
=
"220"
;
MNC
=
"11"
;
RegionID
=
"128"
;
AMFSetID
=
"4"
;
AMFPointer
=
"1"
# YOUR GUAMI CONFIG HERE
}
SERVED_GUAMI_LIST
= (
#{MCC = "220"; MNC = "11"; RegionID = "10"; AMFSetID = "1"; AMFPointer = "0"} #48bits <MCC><MNC><RegionID><AMFSetID><AMFPointer>
{
MCC
=
"220"
;
MNC
=
"11"
;
RegionID
=
"128"
;
AMFSetID
=
"4"
;
AMFPointer
=
"1"
}
#48bits <MCC><MNC><RegionID><AMFSetID><AMFPointer>
);
PLMN_SUPPORT_LIST
= (
{
MCC
=
"220"
;
MNC
=
"11"
;
TAC
=
100
;
# YOUR PLMN CONFIG HERE
SLICE_SUPPORT_LIST
= (
{
SST
=
"1"
;
SD
=
"none"
},
# YOUR NSSAI CONFIG HERE
{
SST
=
"1"
;
SD
=
"12"
}
# YOUR NSSAI CONFIG HERE
)
}
);
INTERFACES
:
{
# AMF binded interface for N1/N2 interface (NGAP)
NGAP_AMF
:
{
INTERFACE_NAME
=
"eth0"
;
# YOUR NETWORK CONFIG HERE
IPV4_ADDRESS
=
"read"
;
PORT
=
38412
;
# YOUR NETWORK CONFIG HERE
PPID
=
60
;
# YOUR NETWORK CONFIG HERE
};
# AMF binded interface for Nausf interface
NAUSF
:
{
INTERFACE_NAME
=
"eth0"
;
# YOUR NETWORK CONFIG HERE
IPV4_ADDRESS
=
"172.16.200.13/24"
;
PORT
=
8383
;
# YOUR NETWORK CONFIG HERE
};
# AMF binded interface for N11
N11
:
{
INTERFACE_NAME
=
"eth0"
;
# YOUR NETWORK CONFIG HERE
IPV4_ADDRESS
=
"read"
;
PORT
=
8282
;
# YOUR NETWORK CONFIG HERE
SMF_INSTANCES_POOL
= (
{
SMF_INSTANCE_ID
=
1
;
IPV4_ADDRESS
=
"172.16.200.15"
;
PORT
=
"8889"
;
VERSION
=
"v1"
;
SELECTED
=
"true"
},
# YOUR SMF CONFIG HERE
{
SMF_INSTANCE_ID
=
2
;
IPV4_ADDRESS
=
"10.103.238.21"
;
PORT
=
"8181"
;
VERSION
=
"v1"
;
SELECTED
=
"false"
}
# YOUR SMF CONFIG HERE
);
};
};
AUTHENTICATION
:
{
## MySQL mandatory options
MYSQL_server
=
"172.16.200.10"
;
# MySQL Server address
MYSQL_user
=
"yunshou"
;
# Database server login
MYSQL_pass
=
"123456"
;
# Database server password
MYSQL_db
=
"OAI_DB"
;
# Your database name
## OP
OPERATOR_key
=
"1006020f0a478bf6b699f15c062e42b3"
;
# OP key matching your database
RANDOM
=
"true"
;
};
NAS
:
{
ORDERED_SUPPORTED_INTEGRITY_ALGORITHM_LIST
= [
"NIA1"
,
"NIA1"
,
"NIA1"
];
ORDERED_SUPPORTED_CIPHERING_ALGORITHM_LIST
= [
"NEA0"
,
"NEA1"
,
"NEA2"
];
};
};
MODULES
=
{
NGAP_MESSAGE
= (
{
MSG_NAME
=
"NGSetupRequest"
;
ProcedureCode
=
21
;
TypeOfMessage
=
"initialMessage"
}
);
};
src/amf-app/amf_n1.cpp
View file @
4b4ed7f5
...
...
@@ -1389,8 +1389,8 @@ bool amf_n1::_5g_aka_confirmation_from_ausf(
msgBody
=
confirmationdata_j
.
dump
();
curl_http_client
(
remoteUri
,
"PUT"
,
msgBody
,
Response
);
// free(resStar_string
.c_str());
Logger
::
amf_n1
().
info
(
"Get Json content from AUSF response: %s"
,
Response
.
c_str
());
try
{
ConfirmationDataResponse
confirmationdataresponse
;
nlohmann
::
json
::
parse
(
Response
.
c_str
()).
get_to
(
confirmationdataresponse
);
...
...
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