Release v2.0.0

This commit is contained in:
Sukchan Lee 2020-08-21 23:33:45 -04:00
parent 00a66cb1da
commit 8e048be082
220 changed files with 19522 additions and 18738 deletions

View File

@ -1,108 +0,0 @@
db_uri: mongodb://localhost/open5gs
logger:
parameter:
# no_nrf: true
# no_amf: true
# no_smf: true
# no_upf: true
# no_ausf: true
# no_udm: true
# no_udr: true
amf:
sbi:
- addr: 127.0.0.2
port: 7777
ngap:
- addr: 127.0.0.2
guami:
- plmn_id:
mcc: 001
mnc: 01
amf_id:
region: 1
set: 1
pointer: 1
tai:
- plmn_id:
mcc: 001
mnc: 01
tac: 81
plmn:
- plmn_id:
mcc: 001
mnc: 01
s_nssai:
- sst: 1
security:
integrity_order : [ NIA2, NIA1, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
smf:
sbi:
- addr: 127.0.0.3
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: ::1
pfcp:
- addr: 127.0.0.3
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
freeDiameter:
identity: pgw.open-ims.test
realm: open-ims.test
listen_on: 127.0.0.3
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.open-ims.test
addr: 127.0.0.5
upf:
pfcp:
- addr: 127.0.0.4
gtpu:
- addr:
- 127.0.0.4
- ::1
pdn:
ausf:
sbi:
- addr: 127.0.0.5
port: 7777
udm:
sbi:
- addr: 127.0.0.6
port: 7777
udr:
sbi:
- addr: 127.0.0.7
port: 7777
nrf:
sbi:
- addr:
- 127.0.0.1
- ::1
port: 7777

View File

@ -3,7 +3,6 @@ db_uri: mongodb://localhost/open5gs
logger:
parameter:
no_ipv6: true
# no_nrf: true
# no_amf: true
# no_smf: true
@ -11,13 +10,11 @@ parameter:
# no_ausf: true
# no_udm: true
# no_udr: true
nrf:
sbi:
addr:
- 127.0.0.1
- ::1
port: 7777
# no_mme: true
# no_sgwc: true
# no_sgwu: true
# no_pcrf: true
# no_hss: true
mme:
freeDiameter:
@ -35,25 +32,25 @@ mme:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.localdomain
addr: 127.0.0.4
addr: 127.0.0.8
s1ap:
addr: 127.0.0.1
addr: 127.0.0.2
gtpc:
addr: 127.0.0.1
gummei:
addr: 127.0.0.2
gummei:
plmn_id:
mcc: 235
mnc: 04
mme_gid: 32769
mcc: 310
mnc: 014
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 235
mnc: 04
mcc: 310
mnc: 014
tac: 1
security:
integrity_order : [ EIA2, EIA1, EIA0 ]
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
network_name:
@ -61,25 +58,19 @@ mme:
sgwc:
gtpc:
addr: 127.0.0.6
addr: 127.0.0.3
pfcp:
addr: 127.0.0.6
sgwu:
gtpu:
addr: 127.0.0.7
pfcp:
addr: 127.0.0.7
addr: 127.0.0.3
smf:
sbi:
- addr: 127.0.0.3
- addr: 127.0.0.4
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: 127.0.0.4
- addr: ::1
pfcp:
- addr: 127.0.0.3
- addr: 127.0.0.4
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
@ -92,7 +83,7 @@ smf:
freeDiameter:
identity: smf.localdomain
realm: localdomain
listen_on: 127.0.0.3
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -104,13 +95,50 @@ smf:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.localdomain
addr: 127.0.0.5
addr: 127.0.0.9
amf:
sbi:
- addr: 127.0.0.5
port: 7777
ngap:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 310
mnc: 014
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 310
mnc: 014
tac: 1
plmn:
- plmn_id:
mcc: 310
mnc: 014
s_nssai:
- sst: 1
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
sgwu:
gtpu:
addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
upf:
pfcp:
- addr: 127.0.0.4
- addr: 127.0.0.7
gtpu:
- addr:
- 127.0.0.4
- 127.0.0.7
- ::1
pdn:
- addr: 10.45.0.1/16
@ -120,7 +148,7 @@ hss:
freeDiameter:
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.4
listen_on: 127.0.0.8
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -133,12 +161,11 @@ hss:
connect:
- identity: mme.localdomain
addr: 127.0.0.2
pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.5
listen_on: 127.0.0.9
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -150,4 +177,26 @@ pcrf:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.localdomain
addr: 127.0.0.3
addr: 127.0.0.4
nrf:
sbi:
addr:
- 127.0.0.10
- ::1
port: 7777
ausf:
sbi:
- addr: 127.0.0.11
port: 7777
udm:
sbi:
- addr: 127.0.0.12
port: 7777
udr:
sbi:
- addr: 127.0.0.13
port: 7777

View File

@ -1,107 +0,0 @@
db_uri: mongodb://localhost/open5gs
logger:
parameter:
# no_nrf: true
# no_amf: true
# no_smf: true
# no_upf: true
# no_ausf: true
# no_udm: true
# no_udr: true
amf:
sbi:
- addr: 127.0.0.2
port: 7777
ngap:
- addr: 127.0.0.2
guami:
- plmn_id:
mcc: 901
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mnc: 70
tac: 1
plmn:
- plmn_id:
mcc: 901
mnc: 70
s_nssai:
- sst: 1
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
smf:
sbi:
- addr: 127.0.0.3
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: ::1
pfcp:
- addr: 127.0.0.3
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
freeDiameter:
identity: pgw.open-ims.test
realm: open-ims.test
listen_on: 127.0.0.3
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.open-ims.test
addr: 127.0.0.5
upf:
pfcp:
- addr: 127.0.0.4
gtpu:
- addr:
- 127.0.0.4
- ::1
pdn:
ausf:
sbi:
- addr: 127.0.0.5
port: 7777
udm:
sbi:
- addr: 127.0.0.6
port: 7777
udr:
sbi:
- addr: 127.0.0.7
port: 7777
nrf:
sbi:
- addr:
- 127.0.0.1
- ::1
port: 7777

View File

@ -1,96 +0,0 @@
db_uri: mongodb://localhost/open5gs
logger:
parameter:
amf:
sbi:
- addr: 127.0.0.2
port: 7777
ngap:
guami:
- plmn_id:
mcc: 901
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mnc: 70
tac: 1
plmn:
- plmn_id:
mcc: 901
mnc: 70
s_nssai:
- sst: 1
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
smf:
sbi:
- addr: 127.0.0.3
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: ::1
pfcp:
- addr: 127.0.0.3
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
freeDiameter:
identity: pgw.open-ims.test
realm: open-ims.test
listen_on: 127.0.0.3
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.open-ims.test
addr: 127.0.0.5
upf:
pfcp:
addr: 127.0.0.4
gtpu:
pdn:
ausf:
sbi:
- addr: 127.0.0.5
port: 7777
udm:
sbi:
- addr: 127.0.0.6
port: 7777
udr:
sbi:
- addr: 127.0.0.7
port: 7777
nrf:
sbi:
- addr:
- 127.0.0.1
- ::1
port: 7777

View File

@ -3,14 +3,18 @@ db_uri: mongodb://localhost/open5gs
logger:
parameter:
no_ipv6: true
nrf:
sbi:
addr:
- 127.0.0.1
- ::1
port: 7777
# no_nrf: true
# no_amf: true
# no_smf: true
# no_upf: true
# no_ausf: true
# no_udm: true
# no_udr: true
# no_mme: true
# no_sgwc: true
# no_sgwu: true
# no_pcrf: true
# no_hss: true
mme:
freeDiameter:
@ -28,12 +32,12 @@ mme:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.localdomain
addr: 127.0.0.4
addr: 127.0.0.8
s1ap:
addr: 127.0.0.1
addr: 127.0.0.2
gtpc:
addr: 127.0.0.1
addr: 127.0.0.2
sgsap:
- addr: 127.0.0.2
map:
@ -58,7 +62,7 @@ mme:
mcc: 724
mnc: 21
lac: 51544
gummei:
gummei:
- plmn_id:
mcc: 901
mnc: 70
@ -88,25 +92,19 @@ mme:
sgwc:
gtpc:
addr: 127.0.0.6
addr: 127.0.0.3
pfcp:
addr: 127.0.0.6
sgwu:
gtpu:
addr: 127.0.0.7
pfcp:
addr: 127.0.0.7
addr: 127.0.0.3
smf:
sbi:
- addr: 127.0.0.3
- addr: 127.0.0.4
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: 127.0.0.4
- addr: ::1
pfcp:
- addr: 127.0.0.3
- addr: 127.0.0.4
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
@ -119,7 +117,7 @@ smf:
freeDiameter:
identity: smf.localdomain
realm: localdomain
listen_on: 127.0.0.3
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -131,13 +129,50 @@ smf:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.localdomain
addr: 127.0.0.5
addr: 127.0.0.9
amf:
sbi:
- addr: 127.0.0.5
port: 7777
ngap:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mnc: 70
tac: 1
plmn:
- plmn_id:
mcc: 901
mnc: 70
s_nssai:
- sst: 1
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
sgwu:
gtpu:
addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
upf:
pfcp:
- addr: 127.0.0.4
- addr: 127.0.0.7
gtpu:
- addr:
- 127.0.0.4
- 127.0.0.7
- ::1
pdn:
- addr: 10.45.0.1/16
@ -147,7 +182,7 @@ hss:
freeDiameter:
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.4
listen_on: 127.0.0.8
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -160,12 +195,11 @@ hss:
connect:
- identity: mme.localdomain
addr: 127.0.0.2
pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.5
listen_on: 127.0.0.9
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -177,4 +211,26 @@ pcrf:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.localdomain
addr: 127.0.0.3
addr: 127.0.0.4
nrf:
sbi:
addr:
- 127.0.0.10
- ::1
port: 7777
ausf:
sbi:
- addr: 127.0.0.11
port: 7777
udm:
sbi:
- addr: 127.0.0.12
port: 7777
udr:
sbi:
- addr: 127.0.0.13
port: 7777

View File

@ -1,158 +0,0 @@
db_uri: mongodb://localhost/open5gs
logger:
parameter:
# no_nrf: true
# no_amf: true
# no_smf: true
# no_upf: true
# no_ausf: true
# no_udm: true
# no_udr: true
nrf:
sbi:
addr:
- 127.0.0.1
- ::1
port: 7777
mme:
freeDiameter:
identity: mme.open-ims.test
realm: open-ims.test
# port: 3868
# sec_port: 5868
listen_on: 127.0.0.2
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.open-ims.test
addr: 127.0.0.4
# port: 3868
s1ap:
addr: 127.0.0.1
gtpc:
addr: 127.0.0.1
gummei:
plmn_id:
mcc: 001
mnc: 01
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 001
mnc: 01
tac: 12345
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
sgwc:
gtpc:
addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
sgwu:
gtpu:
addr: 127.0.0.7
pfcp:
addr: 127.0.0.7
smf:
sbi:
- addr: 127.0.0.3
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: ::1
pfcp:
- addr: 127.0.0.3
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
freeDiameter:
identity: smf.open-ims.test
realm: open-ims.test
# port: 3868
# sec_port: 5868
listen_on: 127.0.0.3
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.open-ims.test
addr: 127.0.0.5
# port: 3868
upf:
pfcp:
- addr: 127.0.0.4
gtpu:
- addr:
- 127.0.0.4
- ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
hss:
freeDiameter:
identity: hss.open-ims.test
realm: open-ims.test
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: mme.open-ims.test
addr: 127.0.0.2
pcrf:
freeDiameter:
identity: pcrf.open-ims.test
realm: open-ims.test
listen_on: 127.0.0.5
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.open-ims.test
addr: 127.0.0.3
- identity: pcscf.open-ims.test
addr: 127.0.0.1

View File

@ -1,121 +0,0 @@
db_uri: mongodb://localhost/open5gs
logger:
parameter:
no_ipv6: true
mme:
freeDiameter:
identity: mme.localdomain
realm: localdomain
listen_on: 127.0.0.2
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.localdomain
addr: 127.0.0.4
s1ap:
gtpc:
addr: 127.0.0.1
gummei:
plmn_id:
mcc: 901
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mnc: 70
tac: 7
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
network_name:
full: Open5GS
hss:
freeDiameter:
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: mme.localdomain
addr: 127.0.0.2
sgw:
gtpc:
addr: 127.0.0.2
gtpu:
pgw:
freeDiameter:
identity: pgw.localdomain
realm: localdomain
listen_on: 127.0.0.3
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.localdomain
addr: 127.0.0.5
gtpc:
addr:
- 127.0.0.3
- ::1
gtpu:
- addr: 127.0.0.3
- addr: ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.5
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pgw.localdomain
addr: 127.0.0.3

View File

@ -1,64 +0,0 @@
db_uri: mongodb://localhost/open5gs
logger:
file: @localstatedir@/log/open5gs/open5gs.log
parameter:
no_ipv6: true
mme:
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
addr: 127.0.0.1
gtpc:
addr: 127.0.0.1
sgsap:
gummei:
plmn_id:
mcc: 901
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mnc: 70
tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
network_name:
full: Open5GS
hss:
freeDiameter: @sysconfdir@/freeDiameter/hss.conf
sgw:
gtpc:
addr: 127.0.0.2
gtpu:
addr: 127.0.0.2
pgw:
freeDiameter: @sysconfdir@/freeDiameter/pgw.conf
gtpc:
addr:
- 127.0.0.3
- ::1
gtpu:
- addr: 127.0.0.3
- addr: ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
pcrf:
freeDiameter: @sysconfdir@/freeDiameter/pcrf.conf

View File

@ -1,146 +0,0 @@
db_uri: mongodb://localhost/open5gs
logger:
parameter:
no_ipv6: true
nrf:
sbi:
addr:
- 127.0.0.1
- ::1
port: 7777
mme:
freeDiameter:
identity: mme.localdomain
realm: localdomain
listen_on: 127.0.0.2
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.localdomain
addr: 127.0.0.4
s1ap:
addr: 127.0.0.1
gtpc:
addr: 127.0.0.1
gummei:
plmn_id:
mcc: 001
mnc: 01
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 001
mnc: 01
tac: 12345
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
network_name:
full: Open5GS
sgwc:
gtpc:
addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
sgwu:
gtpu:
addr: 127.0.0.7
pfcp:
addr: 127.0.0.7
smf:
sbi:
- addr: 127.0.0.3
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: ::1
pfcp:
- addr: 127.0.0.3
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
freeDiameter:
identity: smf.localdomain
realm: localdomain
listen_on: 127.0.0.3
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.localdomain
addr: 127.0.0.5
upf:
pfcp:
- addr: 127.0.0.4
gtpu:
- addr:
- 127.0.0.4
- ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
hss:
freeDiameter:
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: mme.localdomain
addr: 127.0.0.2
pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.5
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.localdomain
addr: 127.0.0.3

View File

@ -1,17 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICrDCCAhWgAwIBAgIUPoUbKXRTWQbrJYUIvyHdacCzw9cwDQYJKoZIhvcNAQEL
MIICrDCCAhWgAwIBAgIUX3u0zTLhQTa3lsR92/GelxTGQacwDQYJKoZIhvcNAQEL
BQAwaDEXMBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYD
VQQIDAVTZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAM
BgNVBAsMBVRlc3RzMB4XDTE5MTAyMDA2NDM1OFoXDTI5MTAxNzA2NDM1OFowaDEX
BgNVBAsMBVRlc3RzMB4XDTIwMDgyMjAwMzkxNloXDTMwMDgyMDAwMzkxNlowaDEX
MBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVT
ZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsM
BVRlc3RzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2sDnWMj9oXpIw+vcm
9k/WidMyhSbImINLe9YgibFfozoxZt51Hvi/aAxlqyq7akGtvpL8yVZD6j7o74z7
6dlnUFDGC4M0WGEkcxqf5NIWe0QplCsXkEOMYHrXLQisAuUk81DNcsXlZr74bmDI
B0dUM0xJ2JrA5mx1LzTFHSesIwIDAQABo1MwUTAdBgNVHQ4EFgQUxTjcug/DKW49
mQeW0IcS/bhIzDcwHwYDVR0jBBgwFoAUxTjcug/DKW49mQeW0IcS/bhIzDcwDwYD
VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQB533IwIPOEE1w2RLBF9EKX
UxaDnUYW05t9eZFLsUtOLFiR84xhCawGEWNtaLvoJE42E17qEjnX4+KGOc6/sa6q
bLskf7BK7496dQrVY5DO9vdSpN1ep3j+1QKae23wYpjqt2UEU3QtIZpsDjUreYri
YLVacMQydGgizNQrY3iCvQ==
BVRlc3RzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuPWKllQ1+hM/wQE08
xjDBiSx9GQOCEF5dkLK126u4joIhNFig6wfn/Ui0nq88ApUlEREUXB3D33ZEsAkt
cbwz1UHX2THOeTYX8XdDbkwkbxNOOH902duiQ2UUbf8ve1hsV7+Dr7ue2Fmz4gsR
lHBv1EsIyPZJQlb4qxET+2++2QIDAQABo1MwUTAdBgNVHQ4EFgQUZPvI16MgF9yo
OqpLK4XNvT5TSwkwHwYDVR0jBBgwFoAUZPvI16MgF9yoOqpLK4XNvT5TSwkwDwYD
VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAwGvKdevLJNDuSXsFpIkTE
ZRsNnKrprNgbZC4/HkrzpvR1aDQgcSqF12DzSUmoTqzESuMtKvkaLv2IqYko9g4p
iKVu2jBDKrJq4q63Cy71fxwbtXLrqGaWgbXkepzqyJYjn4Nf/ya0shK7l2rIIDyL
crvs5/rXN6enLFUQ3n955w==
-----END CERTIFICATE-----

View File

@ -5,22 +5,22 @@ Certificate:
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=ca.localdomain, C=KO, ST=Seoul, L=Nowon, O=Open5GS, OU=Tests
Validity
Not Before: Oct 20 06:43:58 2019 GMT
Not After : Oct 17 06:43:58 2029 GMT
Not Before: Aug 22 00:39:17 2020 GMT
Not After : Aug 20 00:39:17 2030 GMT
Subject: C=KO, ST=Seoul, O=Open5GS, OU=Tests, CN=hss.localdomain
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (1024 bit)
Modulus:
00:d3:e7:ba:6d:14:65:af:df:90:e5:4a:53:56:a1:
f6:89:2e:cb:ee:ce:d6:73:9f:48:b6:96:78:67:a7:
87:18:b8:ab:c3:0b:31:b3:02:92:48:ed:49:ac:40:
c1:13:3b:13:58:50:cc:2e:59:44:e9:7e:31:02:14:
f0:18:82:95:10:e4:37:b2:5d:14:19:1d:4b:8f:e9:
1f:45:75:cf:0a:e0:8f:7b:e1:70:7b:ab:e4:af:2b:
7c:4d:7f:00:d8:eb:cf:f3:96:ab:fc:04:4f:21:ad:
d8:c4:94:05:02:ff:f3:12:48:88:9e:ce:cf:37:29:
e0:28:39:37:62:05:ed:6d:5d
00:e8:b3:82:96:bd:4a:f6:30:2c:03:60:aa:82:65:
b0:15:32:5f:d3:90:0d:c0:1d:06:62:52:51:c7:12:
36:d7:5c:34:21:ac:4a:44:4d:9b:a5:22:9c:3e:86:
a8:ba:df:02:64:b6:74:f5:95:c4:71:e8:e0:28:1d:
2b:ea:06:94:fa:3c:f1:07:d3:23:55:b6:84:d4:00:
f4:28:08:18:be:c7:38:e1:b7:d9:b4:bf:d3:e1:d3:
d8:13:60:72:e1:e4:d3:31:37:b1:cf:b9:e1:c9:8d:
5e:e2:1c:54:a3:90:b1:69:6f:07:90:ff:68:86:69:
7d:ef:50:69:0d:9d:47:18:39
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
@ -28,33 +28,33 @@ Certificate:
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
AB:0F:C4:B8:B7:6B:56:12:F5:D4:A3:29:B7:D9:5E:3C:DD:8B:79:DD
74:20:F9:E9:BD:E1:37:8A:9C:A9:AD:B4:B2:28:7D:44:22:0B:BD:0B
X509v3 Authority Key Identifier:
keyid:C5:38:DC:BA:0F:C3:29:6E:3D:99:07:96:D0:87:12:FD:B8:48:CC:37
keyid:64:FB:C8:D7:A3:20:17:DC:A8:3A:AA:4B:2B:85:CD:BD:3E:53:4B:09
Signature Algorithm: sha256WithRSAEncryption
43:95:ee:57:3f:4d:ad:bf:42:6c:48:ae:f8:2f:db:f6:cf:2e:
53:a2:3d:48:0a:48:a4:2c:2a:7c:fa:ec:b1:bd:06:a1:21:a5:
38:d8:00:05:81:25:91:51:e2:e6:a8:67:a8:c2:f6:5d:2a:f0:
40:fe:20:d3:82:2d:d9:8c:4c:61:b7:43:87:7f:fe:e4:a1:b6:
fd:54:35:13:4f:63:a5:6b:4a:01:aa:25:e9:80:27:eb:2e:a2:
18:e0:36:37:a5:57:09:67:ed:8f:1e:13:fd:b8:b2:d7:4e:cf:
93:d4:bf:75:02:38:4e:d4:4a:9c:35:fb:a8:0b:3a:ba:03:1a:
e6:9e
ac:aa:85:5a:57:61:6d:7d:f3:c4:2a:b7:73:3f:e9:bc:b9:6d:
0a:8f:35:24:13:66:46:14:5e:60:90:3e:32:95:72:5a:21:55:
15:fe:ef:30:44:fb:fe:3e:cb:bf:f3:30:ce:3b:bb:4f:c1:64:
41:ea:db:99:f2:ca:db:78:03:95:81:91:3c:fa:1d:9c:8a:55:
eb:9d:6a:c1:b6:de:44:38:0f:99:b4:66:d5:4e:dd:e7:d5:ba:
ff:f2:4b:f6:9a:94:53:55:36:4e:73:2d:da:d1:bb:0f:8f:fb:
1a:22:43:28:6a:b4:5d:a3:40:2c:cf:7e:0d:3e:fb:60:ef:92:
f3:0e
-----BEGIN CERTIFICATE-----
MIICsjCCAhugAwIBAgIBAjANBgkqhkiG9w0BAQsFADBoMRcwFQYDVQQDDA5jYS5s
b2NhbGRvbWFpbjELMAkGA1UEBhMCS08xDjAMBgNVBAgMBVNlb3VsMQ4wDAYDVQQH
DAVOb3dvbjEQMA4GA1UECgwHT3BlbjVHUzEOMAwGA1UECwwFVGVzdHMwHhcNMTkx
MDIwMDY0MzU4WhcNMjkxMDE3MDY0MzU4WjBZMQswCQYDVQQGEwJLTzEOMAwGA1UE
DAVOb3dvbjEQMA4GA1UECgwHT3BlbjVHUzEOMAwGA1UECwwFVGVzdHMwHhcNMjAw
ODIyMDAzOTE3WhcNMzAwODIwMDAzOTE3WjBZMQswCQYDVQQGEwJLTzEOMAwGA1UE
CAwFU2VvdWwxEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsMBVRlc3RzMRgwFgYD
VQQDDA9oc3MubG9jYWxkb21haW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
ANPnum0UZa/fkOVKU1ah9okuy+7O1nOfSLaWeGenhxi4q8MLMbMCkkjtSaxAwRM7
E1hQzC5ZROl+MQIU8BiClRDkN7JdFBkdS4/pH0V1zwrgj3vhcHur5K8rfE1/ANjr
z/OWq/wETyGt2MSUBQL/8xJIiJ7Ozzcp4Cg5N2IF7W1dAgMBAAGjezB5MAkGA1Ud
AOizgpa9SvYwLANgqoJlsBUyX9OQDcAdBmJSUccSNtdcNCGsSkRNm6UinD6GqLrf
AmS2dPWVxHHo4CgdK+oGlPo88QfTI1W2hNQA9CgIGL7HOOG32bS/0+HT2BNgcuHk
0zE3sc+54cmNXuIcVKOQsWlvB5D/aIZpfe9QaQ2dRxg5AgMBAAGjezB5MAkGA1Ud
EwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
YXRlMB0GA1UdDgQWBBSrD8S4t2tWEvXUoym32V483Yt53TAfBgNVHSMEGDAWgBTF
ONy6D8Mpbj2ZB5bQhxL9uEjMNzANBgkqhkiG9w0BAQsFAAOBgQBDle5XP02tv0Js
SK74L9v2zy5Toj1ICkikLCp8+uyxvQahIaU42AAFgSWRUeLmqGeowvZdKvBA/iDT
gi3ZjExht0OHf/7kobb9VDUTT2Ola0oBqiXpgCfrLqIY4DY3pVcJZ+2PHhP9uLLX
Ts+T1L91AjhO1EqcNfuoCzq6Axrmng==
YXRlMB0GA1UdDgQWBBR0IPnpveE3ipyprbSyKH1EIgu9CzAfBgNVHSMEGDAWgBRk
+8jXoyAX3Kg6qksrhc29PlNLCTANBgkqhkiG9w0BAQsFAAOBgQCsqoVaV2FtffPE
KrdzP+m8uW0KjzUkE2ZGFF5gkD4ylXJaIVUV/u8wRPv+Psu/8zDOO7tPwWRB6tuZ
8srbeAOVgZE8+h2cilXrnWrBtt5EOA+ZtGbVTt3n1br/8kv2mpRTVTZOcy3a0bsP
j/saIkMoarRdo0Asz34NPvtg75LzDg==
-----END CERTIFICATE-----

View File

@ -79,7 +79,7 @@ Realm = "localdomain";
#ListenOn = "202.249.37.5";
#ListenOn = "2001:200:903:2::202:1";
#ListenOn = "fe80::21c:5ff:fe98:7d62%eth0";
ListenOn = "127.0.0.4";
ListenOn = "127.0.0.8";
##############################################################

View File

@ -1,15 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDT57ptFGWv35DlSlNWofaJLsvuztZzn0i2lnhnp4cYuKvDCzGz
ApJI7UmsQMETOxNYUMwuWUTpfjECFPAYgpUQ5DeyXRQZHUuP6R9Fdc8K4I974XB7
q+SvK3xNfwDY68/zlqv8BE8hrdjElAUC//MSSIiezs83KeAoOTdiBe1tXQIDAQAB
AoGBAM7ShI2Ec/9lSInSsmaC7BpW12p87KirFZBIarpYs634SIS0v0xFvTt6hgae
qRO4/BedvLucG3t91B2BDBoQEaZELCjJ9kCUtzphW+u8/SUvPUCfb5xiLLeDQCVR
oU45JuqlF+ro9XM0x7f1REuTza1Xr20O5n5TzaCzQkdTlMdtAkEA+Yk9aS589D2c
TAj7H5nQMFai/z0JKM7kuBmXaqbsPtnYjdNvVYsCRPcjbhyfIjN88o/QGuUuInpb
PyzUZh3x2wJBANlk8d5ZVco+UE1NX0KzpEXHMY+z8kE4f8IMy0KN1V+An0ZbdxJE
X0aUMz9/K0+V6n0rlpY4QdOnTnbIEg2hTycCQDXBUM9lylk7JH5kuORX2Ddxkm91
kJGP8EmQicPZ7a6kczgqQiOlbHm625EO7WEKwnHmdSg2Ergur5VubNsKvF0CQQCc
sbv8rpu9qOisr2ZIZ7+yY/9/Ow8Un6rGrf4cPKtdqRIk3myXCB08fDnsPLd1J/Pa
wP5LzMT10BQoXdFVbb3lAkBpNXUkts8O1YxSG5zTruvygjU2n4Lova31icJ8HFaG
pfKHJpqDGPooupFxeCsPVPBZIRtxW70CZcr77eW/XKXv
MIICXQIBAAKBgQDos4KWvUr2MCwDYKqCZbAVMl/TkA3AHQZiUlHHEjbXXDQhrEpE
TZulIpw+hqi63wJktnT1lcRx6OAoHSvqBpT6PPEH0yNVtoTUAPQoCBi+xzjht9m0
v9Ph09gTYHLh5NMxN7HPueHJjV7iHFSjkLFpbweQ/2iGaX3vUGkNnUcYOQIDAQAB
AoGAdxNkv74dnd0IqLHOjut6L16XqqsMXkJ8AdQeBMBNT+bexlxjpJASFW6ghV5i
+T0k/GRhdUouPBvumJhU4Gx9zpVYUMzAxZDgWQfoknQ11fs6bi1aH8Fn9NhC3UeB
ZaSmkAyeTMpJMzVAiVLND3iN/83OcijqSq2MZ4kkdsQngAECQQD/AOBiwlh6AVtZ
bJMbVSVPLdtQRtGuP29gaC64vROE60qfxUcW7H2rHdMq4AWrlaZ3hXxSLU+TuCDt
Z7khtHexAkEA6ZxSJfw1SO0qqu/uHBcQTOzoTKPi28fRt2ilEIOhIzuHbJPpjFEp
snhGfX+XgD4EtXH1ebdmh+rGZ8yRPcjTCQJBAJ170xfq4m1mzR2q+ibVLNd7gIhR
VEmCj6xAaypYSue50DpfwYmcv/ef0bwW4imXoFkMLT0rEowuGNfFSQZRx+ECQETG
TrD8JTvJBsy4QiNm7teWz3TwsrL9itIyLpZECkZzGhVvHky/AEWYfzgnPhT1LTG1
0Qz6X2cYSTz5zrCf1PECQQCPZIkkOUsgq6kGDK5MTzAoTjPxzIDgLX/YdMelwHUA
pK+nv/gxO9Pjd+wcU4GmaD0KXdLtu+dsKT3bx/7RzGjj
-----END RSA PRIVATE KEY-----

View File

@ -23,6 +23,7 @@ freediameter_conf = '''
mme.conf
hss.conf
pgw.conf
smf.conf
pcrf.conf
'''.split()
@ -43,6 +44,8 @@ freediameter_pem = '''
hss.key.pem
pgw.cert.pem
pgw.key.pem
smf.cert.pem
smf.key.pem
pcrf.cert.pem
pcrf.key.pem
'''.split()

View File

@ -5,22 +5,22 @@ Certificate:
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=ca.localdomain, C=KO, ST=Seoul, L=Nowon, O=Open5GS, OU=Tests
Validity
Not Before: Oct 20 06:43:58 2019 GMT
Not After : Oct 17 06:43:58 2029 GMT
Not Before: Aug 22 00:39:17 2020 GMT
Not After : Aug 20 00:39:17 2030 GMT
Subject: C=KO, ST=Seoul, O=Open5GS, OU=Tests, CN=mme.localdomain
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (1024 bit)
Modulus:
00:b5:3a:31:ed:bf:fe:cd:e7:50:cc:94:ba:3d:fd:
2f:e6:cb:83:25:3d:82:93:26:57:b4:2f:6b:29:d9:
fd:80:c8:c5:82:9c:09:17:14:38:91:57:ac:72:b0:
86:d4:6f:bd:6b:fa:b9:60:51:9b:ab:6b:68:37:15:
c7:de:8b:bd:e8:da:5a:49:75:03:33:09:8e:49:e4:
d9:5b:3c:2f:ca:47:9b:95:d5:6f:16:e4:8d:39:b4:
39:dd:51:1a:55:27:68:b9:a0:24:ad:1c:18:48:bb:
49:54:ae:03:a3:0b:b8:e5:da:b4:c2:7f:09:a4:12:
8e:97:08:58:24:6a:4b:f4:87
00:9c:69:25:fc:ee:7f:11:e0:81:f7:b5:51:8f:01:
b8:9e:01:74:03:3e:a5:25:de:6f:28:66:05:6f:7b:
ab:86:0f:09:fc:94:7b:e8:aa:9f:0b:5f:32:27:46:
f0:ca:e2:12:f3:5d:03:80:e9:9a:1d:f0:20:d6:5c:
1b:4b:65:d4:66:e3:b7:63:19:6e:b1:e8:db:6c:24:
df:24:2c:50:f2:1c:8a:33:c1:f7:27:b8:3c:6e:c6:
90:98:ac:43:67:00:6b:3d:ab:39:49:3d:d5:74:77:
6a:0e:38:4e:41:cd:e4:15:63:27:76:b5:9c:75:f8:
cb:6f:cc:5e:f3:a7:68:ef:a5
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
@ -28,33 +28,33 @@ Certificate:
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
20:74:06:F0:AF:F6:2D:90:D1:CB:8C:5C:AB:73:D7:45:99:31:DD:AA
92:69:1E:3F:9F:E2:40:2F:81:24:05:B4:13:AA:8A:65:5C:7C:71:1D
X509v3 Authority Key Identifier:
keyid:C5:38:DC:BA:0F:C3:29:6E:3D:99:07:96:D0:87:12:FD:B8:48:CC:37
keyid:64:FB:C8:D7:A3:20:17:DC:A8:3A:AA:4B:2B:85:CD:BD:3E:53:4B:09
Signature Algorithm: sha256WithRSAEncryption
0a:f5:fd:1f:19:52:9a:99:ec:34:67:e8:57:dc:61:73:c0:05:
b0:53:e3:8f:66:86:c9:99:af:28:5a:2a:06:a8:53:b1:80:ea:
5c:c9:ad:93:ec:b8:b4:b0:e4:04:8b:85:1b:08:93:f2:71:b1:
21:ab:80:40:e4:27:c6:c5:7a:56:f2:d2:33:6c:f0:1d:f4:99:
85:55:60:9c:eb:d3:b8:e3:4b:e5:be:1e:d2:39:d5:55:6f:4c:
20:07:c8:24:1c:21:70:e4:54:17:0b:a5:66:17:be:8b:5c:73:
ca:5e:42:6e:27:15:18:69:dc:c6:49:97:d7:66:e0:a8:ad:9c:
f1:b7
74:fc:32:ee:e6:2b:a5:f5:a4:71:64:49:ff:eb:6f:01:30:32:
b7:61:62:97:e1:2c:0f:50:62:a8:71:9a:bd:8b:d8:0d:4b:28:
ea:b4:5f:1c:30:3e:4c:23:2f:c5:5b:77:ed:48:c2:bb:b7:0c:
d9:50:4d:7f:7f:a3:b9:1e:2c:19:33:1e:41:94:e1:14:1b:45:
e8:ae:27:aa:5e:78:8e:67:67:19:69:48:e3:e4:c0:c3:a7:85:
fd:fd:d6:62:6e:dd:1f:31:2f:bc:9a:d2:fa:82:eb:4b:3e:35:
e0:90:db:ed:de:1a:68:33:6f:e6:90:9f:08:64:60:46:91:09:
74:15
-----BEGIN CERTIFICATE-----
MIICsjCCAhugAwIBAgIBATANBgkqhkiG9w0BAQsFADBoMRcwFQYDVQQDDA5jYS5s
b2NhbGRvbWFpbjELMAkGA1UEBhMCS08xDjAMBgNVBAgMBVNlb3VsMQ4wDAYDVQQH
DAVOb3dvbjEQMA4GA1UECgwHT3BlbjVHUzEOMAwGA1UECwwFVGVzdHMwHhcNMTkx
MDIwMDY0MzU4WhcNMjkxMDE3MDY0MzU4WjBZMQswCQYDVQQGEwJLTzEOMAwGA1UE
DAVOb3dvbjEQMA4GA1UECgwHT3BlbjVHUzEOMAwGA1UECwwFVGVzdHMwHhcNMjAw
ODIyMDAzOTE3WhcNMzAwODIwMDAzOTE3WjBZMQswCQYDVQQGEwJLTzEOMAwGA1UE
CAwFU2VvdWwxEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsMBVRlc3RzMRgwFgYD
VQQDDA9tbWUubG9jYWxkb21haW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
ALU6Me2//s3nUMyUuj39L+bLgyU9gpMmV7QvaynZ/YDIxYKcCRcUOJFXrHKwhtRv
vWv6uWBRm6traDcVx96LvejaWkl1AzMJjknk2Vs8L8pHm5XVbxbkjTm0Od1RGlUn
aLmgJK0cGEi7SVSuA6MLuOXatMJ/CaQSjpcIWCRqS/SHAgMBAAGjezB5MAkGA1Ud
AJxpJfzufxHggfe1UY8BuJ4BdAM+pSXebyhmBW97q4YPCfyUe+iqnwtfMidG8Mri
EvNdA4Dpmh3wINZcG0tl1Gbjt2MZbrHo22wk3yQsUPIcijPB9ye4PG7GkJisQ2cA
az2rOUk91XR3ag44TkHN5BVjJ3a1nHX4y2/MXvOnaO+lAgMBAAGjezB5MAkGA1Ud
EwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
YXRlMB0GA1UdDgQWBBQgdAbwr/YtkNHLjFyrc9dFmTHdqjAfBgNVHSMEGDAWgBTF
ONy6D8Mpbj2ZB5bQhxL9uEjMNzANBgkqhkiG9w0BAQsFAAOBgQAK9f0fGVKamew0
Z+hX3GFzwAWwU+OPZobJma8oWioGqFOxgOpcya2T7Li0sOQEi4UbCJPycbEhq4BA
5CfGxXpW8tIzbPAd9JmFVWCc69O440vlvh7SOdVVb0wgB8gkHCFw5FQXC6VmF76L
XHPKXkJuJxUYadzGSZfXZuCorZzxtw==
YXRlMB0GA1UdDgQWBBSSaR4/n+JAL4EkBbQTqoplXHxxHTAfBgNVHSMEGDAWgBRk
+8jXoyAX3Kg6qksrhc29PlNLCTANBgkqhkiG9w0BAQsFAAOBgQB0/DLu5iul9aRx
ZEn/628BMDK3YWKX4SwPUGKocZq9i9gNSyjqtF8cMD5MIy/FW3ftSMK7twzZUE1/
f6O5HiwZMx5BlOEUG0XorieqXniOZ2cZaUjj5MDDp4X9/dZibt0fMS+8mtL6gutL
PjXgkNvt3hpoM2/mkJ8IZGBGkQl0FQ==
-----END CERTIFICATE-----

View File

@ -260,7 +260,7 @@ LoadExtension = "@libdir@/freeDiameter/dict_dcca_3gpp.fdx";
# Examples:
#ConnectPeer = "aaa.wide.ad.jp";
#ConnectPeer = "old.diameter.serv" { TcTimer = 60; TLS_old_method; No_SCTP; Port=3868; } ;
ConnectPeer = "hss.localdomain" { ConnectTo = "127.0.0.4"; No_TLS; };
ConnectPeer = "hss.localdomain" { ConnectTo = "127.0.0.8"; No_TLS; };
##############################################################

View File

@ -1,15 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC1OjHtv/7N51DMlLo9/S/my4MlPYKTJle0L2sp2f2AyMWCnAkX
FDiRV6xysIbUb71r+rlgUZura2g3Fcfei73o2lpJdQMzCY5J5NlbPC/KR5uV1W8W
5I05tDndURpVJ2i5oCStHBhIu0lUrgOjC7jl2rTCfwmkEo6XCFgkakv0hwIDAQAB
AoGBALL3ID1H/8m4Z9tP+EelEzvYt8772kmUcMHYnfw7cJNQMXQUwQlQh7hIG107
JDr/idDrTUtn69GxhL35PWJxH3z7b9nPQCcPZQ3PZWW8lDXNqNCjV5j+2zDAXqkc
IyxLQuPnTyn9kcB/OIjNGrr86/6JKS1ipbT9AIllV+br5OMhAkEA7KMLbiAI03JH
wBhtnHdtj7NETXDnZd0Plj3ATpa7SOtxmBtqVVOH/1ghAqJ0YScrqa9+eEqcn6mv
sHoJ10wVVwJBAMQOdR6b6H3Swy5dZNYzSKDsWRf4cNK5Kz8HJ8UOLbHTjzcDHNsD
n09McdcnWgNAxV6J0YJzu4LWQjT4b1e77FECQAd+8rG+Wgk4qYUwQOif79yJdTRu
yyWy5vd/ZUQYCj65FpQW6jthtgEkrYcD1mPtdbieUodE9cko+uPAOeeUBWkCQQCt
lL9NImxtOjVkz3t/ylf7YkZfWq9JYnhPjV5AsZTzZIPgCPl7T3G1G9GO1GB1kNsu
IIdGIIFcDacAjxTFcLSBAkA1Bl7gARE2XZR9iVVJ/On2hWFZhtG9RId+k0pVUxKs
KXYnYSiD/WIeVZ6IBswqL2AnEV+kBBuZ7D9aEiDYbXQ/
MIICXQIBAAKBgQCcaSX87n8R4IH3tVGPAbieAXQDPqUl3m8oZgVve6uGDwn8lHvo
qp8LXzInRvDK4hLzXQOA6Zod8CDWXBtLZdRm47djGW6x6NtsJN8kLFDyHIozwfcn
uDxuxpCYrENnAGs9qzlJPdV0d2oOOE5BzeQVYyd2tZx1+MtvzF7zp2jvpQIDAQAB
AoGARr3D4a7Yp/Q7tBY86gokPsp3dxQ5S3RcIBBseuybOknJAYUCucuZnWIT4/HQ
7GHtokY6VG7TNqEpqOoFqkdHFgDZQlJPG+N2B63JEGxAL0RedHsTbnYQ8MFqrixb
U59yDfwudrlEYAQNML51pEp7D06Add+CPubcFLO8Tnh/z20CQQDQCWRPP0ZdfYk1
NZFS82fWxWE0jhxEu8nFXCh4uawlSOyyl8RFKyvwFhs+u8DAS+ntSA5nBIkglLW5
aM+WbJerAkEAwHi5BIojXNmqjrfDDDaD3jM5/Ug2SOuReVz/7JDoPC/w9rob37RM
pz0bWrtOVCud+mD0WeOjsxfsb6ixpjMF7wJBAI9zmnbG0/eNo/pL6NzBOP4w9rlt
sPJ4Z0avKL0ukxTWt1jjLBTiExcntzvH7b7r2e+ju0KwLvqHcNPcASDh2qcCQBQ4
Wo+ch4yInX9y1L3iuEXOsefm/zT38oeCeqx6qLsx+imhca41vdvP8qC8jsUO9ADK
0MDkxlzZRZCRc2BXeecCQQCl+Ac9n+gtpIUFNmwvgtOnnjDAEDhGgi4lR45frT75
t57D+YTERbn2pygttzhZ6imWMEUnSQJQSGpDAUnVsIUg
-----END RSA PRIVATE KEY-----

View File

@ -5,22 +5,22 @@ Certificate:
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=ca.localdomain, C=KO, ST=Seoul, L=Nowon, O=Open5GS, OU=Tests
Validity
Not Before: Oct 20 06:43:58 2019 GMT
Not After : Oct 17 06:43:58 2029 GMT
Not Before: Aug 22 00:39:17 2020 GMT
Not After : Aug 20 00:39:17 2030 GMT
Subject: C=KO, ST=Seoul, O=Open5GS, OU=Tests, CN=pcrf.localdomain
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (1024 bit)
Modulus:
00:c4:63:95:b8:b2:99:ca:4d:dd:ac:b8:e2:78:29:
43:03:8a:de:6b:05:99:97:b7:90:39:f8:f6:b8:20:
77:44:4b:1b:95:6c:ad:e1:5f:2c:48:a2:8a:d2:95:
72:0e:f9:e1:cf:70:4e:45:6e:71:7e:2a:41:29:93:
7a:12:01:73:0b:10:20:7a:38:66:9f:75:76:21:d6:
7d:0c:ea:35:47:16:d6:c3:9f:41:ec:e9:98:36:16:
84:9f:43:38:2b:b2:c8:d9:f3:6c:07:82:e4:ce:c8:
a3:f3:c3:60:13:f3:46:44:fa:f0:ee:a9:48:40:8f:
80:3e:60:73:ff:6d:59:03:2f
00:b9:1f:b3:a5:74:de:31:97:ac:fa:86:1d:65:86:
c7:be:b1:25:07:01:f3:69:21:7a:6d:ec:d7:c8:ec:
e2:c9:e8:71:a1:07:ce:0e:68:e5:0f:a9:ec:f3:5e:
5e:3e:a4:ea:27:f3:fa:65:36:2d:7c:ce:a8:70:cc:
34:db:51:b2:28:7b:03:bf:78:06:61:7c:44:81:17:
88:f9:c9:16:cb:2e:9f:21:4a:24:28:0a:0f:76:ef:
63:0f:05:a4:ee:52:64:1f:4f:0b:ec:4e:6c:1b:12:
40:43:75:ed:62:16:ec:6a:ba:15:dd:c4:b9:fa:a9:
de:2c:80:f5:84:c5:97:ec:7b
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
@ -28,33 +28,33 @@ Certificate:
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
53:A8:0E:78:45:FB:38:A6:CF:30:E5:FF:BB:CA:E6:CF:A3:4A:DC:53
CD:C4:C9:C1:7F:D9:34:1F:DB:08:61:27:FC:59:A2:C2:CC:19:9A:7B
X509v3 Authority Key Identifier:
keyid:C5:38:DC:BA:0F:C3:29:6E:3D:99:07:96:D0:87:12:FD:B8:48:CC:37
keyid:64:FB:C8:D7:A3:20:17:DC:A8:3A:AA:4B:2B:85:CD:BD:3E:53:4B:09
Signature Algorithm: sha256WithRSAEncryption
47:6b:2b:f9:03:8d:c1:fd:84:21:fe:3c:5b:8c:9d:c1:48:bc:
ae:90:67:c5:ad:1a:80:e9:97:9c:c2:d4:31:1b:7d:4e:1a:72:
09:fb:92:32:b3:82:79:59:cd:92:21:27:c7:34:c3:76:27:a8:
11:33:cd:4a:ec:10:cb:44:89:da:47:1a:a4:6a:06:10:fb:f1:
6a:de:d5:1a:15:de:4a:54:6f:29:b8:de:ec:20:f2:d1:c3:0c:
9a:8e:97:46:8c:21:c3:63:7f:41:52:41:7e:73:47:43:0a:d1:
86:0b:f0:fb:9a:1f:6d:b5:93:88:95:88:84:6d:28:8e:29:2e:
66:9d
24:3a:da:a7:50:b3:42:ab:e9:87:21:b2:d9:2b:a1:44:0b:5f:
bd:ad:c9:8b:b1:ca:d5:2e:65:46:55:80:11:00:33:03:f9:04:
b1:31:a2:c9:d2:41:e0:ec:73:bc:9a:3c:31:06:cc:d0:2d:73:
1f:b4:93:1c:b0:99:dd:14:27:64:39:7e:c5:ab:53:48:c5:25:
e8:88:fd:4e:b8:dd:64:88:b5:b4:89:8b:15:97:8b:e7:c9:fb:
23:6c:ed:60:9b:2f:f0:99:7a:75:6c:8e:ea:09:c6:ba:ff:e9:
81:3f:97:96:8b:00:58:5b:88:13:e8:8a:39:4c:f6:c9:06:d3:
24:66
-----BEGIN CERTIFICATE-----
MIICszCCAhygAwIBAgIBBDANBgkqhkiG9w0BAQsFADBoMRcwFQYDVQQDDA5jYS5s
b2NhbGRvbWFpbjELMAkGA1UEBhMCS08xDjAMBgNVBAgMBVNlb3VsMQ4wDAYDVQQH
DAVOb3dvbjEQMA4GA1UECgwHT3BlbjVHUzEOMAwGA1UECwwFVGVzdHMwHhcNMTkx
MDIwMDY0MzU4WhcNMjkxMDE3MDY0MzU4WjBaMQswCQYDVQQGEwJLTzEOMAwGA1UE
DAVOb3dvbjEQMA4GA1UECgwHT3BlbjVHUzEOMAwGA1UECwwFVGVzdHMwHhcNMjAw
ODIyMDAzOTE3WhcNMzAwODIwMDAzOTE3WjBaMQswCQYDVQQGEwJLTzEOMAwGA1UE
CAwFU2VvdWwxEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsMBVRlc3RzMRkwFwYD
VQQDDBBwY3JmLmxvY2FsZG9tYWluMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQDEY5W4spnKTd2suOJ4KUMDit5rBZmXt5A5+Pa4IHdESxuVbK3hXyxIoorSlXIO
+eHPcE5FbnF+KkEpk3oSAXMLECB6OGafdXYh1n0M6jVHFtbDn0Hs6Zg2FoSfQzgr
ssjZ82wHguTOyKPzw2AT80ZE+vDuqUhAj4A+YHP/bVkDLwIDAQABo3sweTAJBgNV
gQC5H7OldN4xl6z6hh1lhse+sSUHAfNpIXpt7NfI7OLJ6HGhB84OaOUPqezzXl4+
pOon8/plNi18zqhwzDTbUbIoewO/eAZhfESBF4j5yRbLLp8hSiQoCg9272MPBaTu
UmQfTwvsTmwbEkBDde1iFuxquhXdxLn6qd4sgPWExZfsewIDAQABo3sweTAJBgNV
HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp
Y2F0ZTAdBgNVHQ4EFgQUU6gOeEX7OKbPMOX/u8rmz6NK3FMwHwYDVR0jBBgwFoAU
xTjcug/DKW49mQeW0IcS/bhIzDcwDQYJKoZIhvcNAQELBQADgYEAR2sr+QONwf2E
If48W4ydwUi8rpBnxa0agOmXnMLUMRt9ThpyCfuSMrOCeVnNkiEnxzTDdieoETPN
SuwQy0SJ2kcapGoGEPvxat7VGhXeSlRvKbje7CDy0cMMmo6XRowhw2N/QVJBfnNH
QwrRhgvw+5ofbbWTiJWIhG0ojikuZp0=
Y2F0ZTAdBgNVHQ4EFgQUzcTJwX/ZNB/bCGEn/FmiwswZmnswHwYDVR0jBBgwFoAU
ZPvI16MgF9yoOqpLK4XNvT5TSwkwDQYJKoZIhvcNAQELBQADgYEAJDrap1CzQqvp
hyGy2SuhRAtfva3Ji7HK1S5lRlWAEQAzA/kEsTGiydJB4OxzvJo8MQbM0C1zH7ST
HLCZ3RQnZDl+xatTSMUl6Ij9TrjdZIi1tImLFZeL58n7I2ztYJsv8Jl6dWyO6gnG
uv/pgT+XlosAWFuIE+iKOUz2yQbTJGY=
-----END CERTIFICATE-----

View File

@ -79,7 +79,7 @@ Realm = "localdomain";
#ListenOn = "202.249.37.5";
#ListenOn = "2001:200:903:2::202:1";
#ListenOn = "fe80::21c:5ff:fe98:7d62%eth0";
ListenOn = "127.0.0.5";
ListenOn = "127.0.0.9";
##############################################################
@ -260,6 +260,6 @@ LoadExtension = "@libdir@/freeDiameter/dict_dcca_3gpp.fdx";
# Examples:
#ConnectPeer = "aaa.wide.ad.jp";
#ConnectPeer = "old.diameter.serv" { TcTimer = 60; TLS_old_method; No_SCTP; Port=3868; } ;
ConnectPeer = "pgw.localdomain" { ConnectTo = "127.0.0.3"; No_TLS; };
ConnectPeer = "smf.localdomain" { ConnectTo = "127.0.0.4"; No_TLS; };
##############################################################

View File

@ -1,15 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDEY5W4spnKTd2suOJ4KUMDit5rBZmXt5A5+Pa4IHdESxuVbK3h
XyxIoorSlXIO+eHPcE5FbnF+KkEpk3oSAXMLECB6OGafdXYh1n0M6jVHFtbDn0Hs
6Zg2FoSfQzgrssjZ82wHguTOyKPzw2AT80ZE+vDuqUhAj4A+YHP/bVkDLwIDAQAB
AoGBAJG6b+RhK3uSMjcz7mFKBP9A8fCqdCG/xdcu5i0VcksMDMjhn1mIXPz9GFRR
LxTr2eMrK/mbjb4YLshiNgfcaXdzpZGauK15PNEHemygI4et9b0iE3ZfGM3dGEGi
UmWzXgO347S8CNmm6JX/gtAaCafeapmyms6E4teYFp1UMRIBAkEA7zrq9HZT1CZu
fWN9DraOUVrgMdV8Q/qdKzAqMsTf95r43aRxxe8ZkXpQuf1X0kBDH8cIeOAVu96/
hmfxCcVZAQJBANIn3YU7xCnUbdK29tYuxAzEw7j4pdfjHEPgkvjV1xsGVwM+DQkF
/yrSgAujxR70uGfBcUF/M9XRniBWg+FRrC8CQBXJ5vZnBJGRAoU3F3/Mjr/IKB1B
1XSXkdMKKv2+wqtZmQsO3DHr6gc+/bVC5snGgpaVWScxOamHyyfhtalvKQECQG+w
PCyo3NIWUd+g2YJvDEZ09EgD7a/UxZrVaYbRryZvsiLJAYiAJWKOyPpmqUaQbMjH
p/dVMSk75Dvvfttq2oUCQQDuEO0xY0gHxzFYH1K82Yw5aDdRsryEQYpb5e+jduH1
EHACfc2H4Oc3/a39q7On+HnZgxK7gFMpGW+D0MdDDoL6
MIICWgIBAAKBgQC5H7OldN4xl6z6hh1lhse+sSUHAfNpIXpt7NfI7OLJ6HGhB84O
aOUPqezzXl4+pOon8/plNi18zqhwzDTbUbIoewO/eAZhfESBF4j5yRbLLp8hSiQo
Cg9272MPBaTuUmQfTwvsTmwbEkBDde1iFuxquhXdxLn6qd4sgPWExZfsewIDAQAB
An8UP2NmtWGYCv7gZ8rPT+6I7Ncf7RayaPb7DuyLDV3At6u18SSYbuCe1fcUpz2n
nGH//K9mYoaXIANMUwl083qIwxT0VbarpTCgiHT8afdISe6Bm8B8Xs0ITEikRHiG
vmI/oCbCA1DkXZlf4jpQbGdet2DyxnJTXv+W9vDkqHOhAkEA74Y+MQgf3eaz/on9
2I5S0kvFJxBYjkAcbkzHmytA5cT45KoCIF+6oPAnBoDkLq3fUotOgWzX2pnWHzMu
+VLtrwJBAMXbhpxQflZ/4eqDYbD49ggVO8VJzl3Ch1B7ZvKW/b+6plRwsdHx0RFk
xbwz02GuJbwf6UjVW1VyaQF6fgkdzPUCQQCYhK+nQxgfkV69zxpvwbilJhBFHph1
BAfWiFd1y+YIKROfb03pVWuePS1sa7hgrOCOTBxSN39/OAPrXAkmQ5MLAkBbNSZp
eoWy1ELNe4EWNr4b3cXu3WYfPKRqCmjbnZUdxCoWtNiUAlgxH3YzmuRvm/rTLRa6
N3hh/FrBjrj49N7dAkA5SaCw2WFulgLRPA6QwfObrQEYkHgtF2++r9jhane5nfq3
/kcrlFnfDfT7ITc32Hmvgj7wJud7w8ANukPXG7DU
-----END RSA PRIVATE KEY-----

View File

@ -79,7 +79,7 @@ Realm = "localdomain";
#ListenOn = "202.249.37.5";
#ListenOn = "2001:200:903:2::202:1";
#ListenOn = "fe80::21c:5ff:fe98:7d62%eth0";
ListenOn = "127.0.0.3";
ListenOn = "127.0.0.4";
##############################################################
@ -260,7 +260,7 @@ LoadExtension = "@libdir@/freeDiameter/dict_dcca_3gpp.fdx";
# Examples:
#ConnectPeer = "aaa.wide.ad.jp";
#ConnectPeer = "old.diameter.serv" { TcTimer = 60; TLS_old_method; No_SCTP; Port=3868; } ;
ConnectPeer = "pcrf.localdomain" { ConnectTo = "127.0.0.5"; No_TLS; };
ConnectPeer = "pcrf.localdomain" { ConnectTo = "127.0.0.9"; No_TLS; };
##############################################################

View File

@ -0,0 +1,60 @@
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 3 (0x3)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=ca.localdomain, C=KO, ST=Seoul, L=Nowon, O=Open5GS, OU=Tests
Validity
Not Before: Aug 22 00:39:17 2020 GMT
Not After : Aug 20 00:39:17 2030 GMT
Subject: C=KO, ST=Seoul, O=Open5GS, OU=Tests, CN=smf.localdomain
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (1024 bit)
Modulus:
00:ad:d6:cb:88:33:51:23:72:f1:16:29:2a:df:b7:
75:d7:38:9e:da:18:b6:27:73:a8:60:ec:04:8f:d0:
cd:c6:2e:10:ff:bd:c3:c2:a3:d7:53:e7:9e:73:07:
07:a9:59:16:b1:7f:92:79:4d:d8:ee:5a:c7:ed:ef:
37:83:8a:7d:94:08:41:0b:34:68:27:a5:4b:7d:cb:
29:fb:85:c0:21:6e:17:72:32:29:7a:28:be:94:31:
56:d2:85:9f:4b:b1:33:6f:f9:eb:01:9c:e7:2f:68:
94:6b:91:58:a7:80:04:94:3c:b3:19:96:91:31:f7:
c4:81:98:2b:85:8f:5c:f0:fd
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
91:4B:EF:65:02:0D:C8:85:FA:4A:3F:29:C0:10:3C:1B:AE:E4:AD:A4
X509v3 Authority Key Identifier:
keyid:64:FB:C8:D7:A3:20:17:DC:A8:3A:AA:4B:2B:85:CD:BD:3E:53:4B:09
Signature Algorithm: sha256WithRSAEncryption
a3:6e:4f:00:bd:1a:62:b9:86:0f:35:f6:18:8d:15:61:a2:bc:
05:07:f1:73:8d:70:6f:e1:34:f1:ae:87:26:87:13:0b:c8:d8:
29:16:70:02:12:73:36:f9:de:43:26:12:7d:9f:d2:20:7c:e2:
76:47:0b:14:ba:67:e5:5a:0d:22:3b:00:c8:35:ab:dd:b1:9a:
e5:75:b0:86:89:02:15:32:b3:e9:48:c3:e0:38:e1:56:4c:fd:
aa:12:96:00:6d:a6:c3:ab:b0:8c:4b:ab:b2:4c:c2:08:26:ab:
d6:3f:26:95:4a:da:b8:dd:9a:f8:fe:b9:c2:e3:7a:a3:2f:2c:
7f:df
-----BEGIN CERTIFICATE-----
MIICsjCCAhugAwIBAgIBAzANBgkqhkiG9w0BAQsFADBoMRcwFQYDVQQDDA5jYS5s
b2NhbGRvbWFpbjELMAkGA1UEBhMCS08xDjAMBgNVBAgMBVNlb3VsMQ4wDAYDVQQH
DAVOb3dvbjEQMA4GA1UECgwHT3BlbjVHUzEOMAwGA1UECwwFVGVzdHMwHhcNMjAw
ODIyMDAzOTE3WhcNMzAwODIwMDAzOTE3WjBZMQswCQYDVQQGEwJLTzEOMAwGA1UE
CAwFU2VvdWwxEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsMBVRlc3RzMRgwFgYD
VQQDDA9zbWYubG9jYWxkb21haW4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
AK3Wy4gzUSNy8RYpKt+3ddc4ntoYtidzqGDsBI/QzcYuEP+9w8Kj11PnnnMHB6lZ
FrF/knlN2O5ax+3vN4OKfZQIQQs0aCelS33LKfuFwCFuF3IyKXoovpQxVtKFn0ux
M2/56wGc5y9olGuRWKeABJQ8sxmWkTH3xIGYK4WPXPD9AgMBAAGjezB5MAkGA1Ud
EwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmlj
YXRlMB0GA1UdDgQWBBSRS+9lAg3IhfpKPynAEDwbruStpDAfBgNVHSMEGDAWgBRk
+8jXoyAX3Kg6qksrhc29PlNLCTANBgkqhkiG9w0BAQsFAAOBgQCjbk8AvRpiuYYP
NfYYjRVhorwFB/FzjXBv4TTxrocmhxMLyNgpFnACEnM2+d5DJhJ9n9IgfOJ2RwsU
umflWg0iOwDINavdsZrldbCGiQIVMrPpSMPgOOFWTP2qEpYAbabDq7CMS6uyTMII
JqvWPyaVStq43Zr4/rnC43qjLyx/3w==
-----END CERTIFICATE-----

View File

@ -0,0 +1,266 @@
# This is a sample configuration file for freeDiameter daemon.
# Most of the options can be omitted, as they default to reasonable values.
# Only TLS-related options must be configured properly in usual setups.
# It is possible to use "include" keyword to import additional files
# e.g.: include "/etc/freeDiameter.d/*.conf"
# This is exactly equivalent as copy & paste the content of the included file(s)
# where the "include" keyword is found.
##############################################################
## Peer identity and realm
# The Diameter Identity of this daemon.
# This must be a valid FQDN that resolves to the local host.
# Default: hostname's FQDN
#Identity = "aaa.koganei.freediameter.net";
Identity = "smf.localdomain";
# The Diameter Realm of this daemon.
# Default: the domain part of Identity (after the first dot).
#Realm = "koganei.freediameter.net";
Realm = "localdomain";
##############################################################
## Transport protocol configuration
# The port this peer is listening on for incoming connections (TCP and SCTP).
# Default: 3868. Use 0 to disable.
#Port = 3868;
# The port this peer is listening on for incoming TLS-protected connections (TCP and SCTP).
# See TLS_old_method for more information about TLS flavours.
# Note: we use TLS/SCTP instead of DTLS/SCTP at the moment. This will change in future version of freeDiameter.
# Default: 5868. Use 0 to disable.
#SecPort = 5868;
# Use RFC3588 method for TLS protection, where TLS is negociated after CER/CEA exchange is completed
# on the unsecure connection. The alternative is RFC6733 mechanism, where TLS protects also the
# CER/CEA exchange on a dedicated secure port.
# This parameter only affects outgoing connections.
# The setting can be also defined per-peer (see Peers configuration section).
# Default: use RFC6733 method with separate port for TLS.
#TLS_old_method;
# Disable use of TCP protocol (only listen and connect over SCTP)
# Default : TCP enabled
#No_TCP;
# Disable use of SCTP protocol (only listen and connect over TCP)
# Default : SCTP enabled
#No_SCTP;
# This option is ignored if freeDiameter is compiled with DISABLE_SCTP option.
# Prefer TCP instead of SCTP for establishing new connections.
# This setting may be overwritten per peer in peer configuration blocs.
# Default : SCTP is attempted first.
#Prefer_TCP;
# Default number of streams per SCTP associations.
# This setting may be overwritten per peer basis.
# Default : 30 streams
#SCTP_streams = 30;
##############################################################
## Endpoint configuration
# Disable use of IP addresses (only IPv6)
# Default : IP enabled
#No_IP;
# Disable use of IPv6 addresses (only IP)
# Default : IPv6 enabled
#No_IPv6;
# Specify local addresses the server must bind to
# Default : listen on all addresses available.
#ListenOn = "202.249.37.5";
#ListenOn = "2001:200:903:2::202:1";
#ListenOn = "fe80::21c:5ff:fe98:7d62%eth0";
ListenOn = "127.0.0.4";
##############################################################
## Server configuration
# How many Diameter peers are allowed to be connecting at the same time ?
# This parameter limits the number of incoming connections from the time
# the connection is accepted until the first CER is received.
# Default: 5 unidentified clients in paralel.
#ThreadsPerServer = 5;
##############################################################
## TLS Configuration
# TLS is managed by the GNUTLS library in the freeDiameter daemon.
# You may find more information about parameters and special behaviors
# in the relevant documentation.
# http://www.gnu.org/software/gnutls/manual/
# Credentials of the local peer
# The X509 certificate and private key file to use for the local peer.
# The files must contain PKCS-1 encoded RSA key, in PEM format.
# (These parameters are passed to gnutls_certificate_set_x509_key_file function)
# Default : NO DEFAULT
#TLS_Cred = "<x509 certif file.PEM>" , "<x509 private key file.PEM>";
#TLS_Cred = "/etc/ssl/certs/freeDiameter.pem", "/etc/ssl/private/freeDiameter.key";
TLS_Cred = "@sysconfdir@/freeDiameter/smf.cert.pem", "@sysconfdir@/freeDiameter/smf.key.pem";
# Certificate authority / trust anchors
# The file containing the list of trusted Certificate Authorities (PEM list)
# (This parameter is passed to gnutls_certificate_set_x509_trust_file function)
# The directive can appear several times to specify several files.
# Default : GNUTLS default behavior
#TLS_CA = "<file.PEM>";
TLS_CA = "@sysconfdir@/freeDiameter/cacert.pem";
# Certificate Revocation List file
# The information about revoked certificates.
# The file contains a list of trusted CRLs in PEM format. They should have been verified before.
# (This parameter is passed to gnutls_certificate_set_x509_crl_file function)
# Note: openssl CRL format might have interoperability issue with GNUTLS format.
# Default : GNUTLS default behavior
#TLS_CRL = "<file.PEM>";
# GNU TLS Priority string
# This string allows to configure the behavior of GNUTLS key exchanges
# algorithms. See gnutls_priority_init function documentation for information.
# You should also refer to the Diameter required TLS support here:
# http://tools.ietf.org/html/rfc6733#section-13.1
# Default : "NORMAL"
# Example: TLS_Prio = "NONE:+VERS-TLS1.1:+AES-128-CBC:+RSA:+SHA1:+COMP-NULL";
#TLS_Prio = "NORMAL";
# Diffie-Hellman parameters size
# Set the number of bits for generated DH parameters
# Valid value should be 768, 1024, 2048, 3072 or 4096.
# (This parameter is passed to gnutls_dh_params_generate2 function,
# it usually should match RSA key size)
# Default : 1024
#TLS_DH_Bits = 1024;
# Alternatively, you can specify a file to load the PKCS#3 encoded
# DH parameters directly from. This accelerates the daemon start
# but is slightly less secure. If this file is provided, the
# TLS_DH_Bits parameters has no effect.
# Default : no default.
#TLS_DH_File = "<file.PEM>";
##############################################################
## Timers configuration
# The Tc timer of this peer.
# It is the delay before a new attempt is made to reconnect a disconnected peer.
# The value is expressed in seconds. The recommended value is 30 seconds.
# Default: 30
#TcTimer = 30;
# The Tw timer of this peer.
# It is the delay before a watchdog message is sent, as described in RFC 3539.
# The value is expressed in seconds. The default value is 30 seconds. Value must
# be greater or equal to 6 seconds. See details in the RFC.
# Default: 30
#TwTimer = 30;
##############################################################
## Applications configuration
# Disable the relaying of Diameter messages?
# For messages not handled locally, the default behavior is to forward the
# message to another peer if any is available, according to the routing
# algorithms. In addition the "0xffffff" application is advertised in CER/CEA
# exchanges.
# Default: Relaying is enabled.
#NoRelay;
# Number of server threads that can handle incoming messages at the same time.
# Default: 4
#AppServThreads = 4;
# Other applications are configured by loaded extensions.
##############################################################
## Extensions configuration
# The freeDiameter framework merely provides support for
# Diameter Base Protocol. The specific application behaviors,
# as well as advanced functions, are provided
# by loadable extensions (plug-ins).
# These extensions may in addition receive the name of a
# configuration file, the format of which is extension-specific.
#
# Format:
#LoadExtension = "/path/to/extension" [ : "/optional/configuration/file" ] ;
#
# Examples:
#LoadExtension = "extensions/sample.fdx";
#LoadExtension = "extensions/sample.fdx":"conf/sample.conf";
# Extensions are named as follow:
# dict_* for extensions that add content to the dictionary definitions.
# dbg_* for extensions useful only to retrieve more information on the framework execution.
# acl_* : Access control list, to control which peers are allowed to connect.
# rt_* : routing extensions that impact how messages are forwarded to other peers.
# app_* : applications, these extensions usually register callbacks to handle specific messages.
# test_* : dummy extensions that are useful only in testing environments.
# The dbg_msg_dump.fdx extension allows you to tweak the way freeDiameter displays some
# information about some events. This extension does not actually use a configuration file
# but receives directly a parameter in the string passed to the extension. Here are some examples:
## LoadExtension = "dbg_msg_dumps.fdx" : "0x1111"; # Removes all default hooks, very quiet even in case of errors.
## LoadExtension = "dbg_msg_dumps.fdx" : "0x2222"; # Display all events with few details.
## LoadExtension = "dbg_msg_dumps.fdx" : "0x0080"; # Dump complete information about sent and received messages.
# The four digits respectively control: connections, routing decisions, sent/received messages, errors.
# The values for each digit are:
# 0 - default - keep the default behavior
# 1 - quiet - remove any specific log
# 2 - compact - display only a summary of the information
# 4 - full - display the complete information on a single long line
# 8 - tree - display the complete information in an easier to read format spanning several lines.
LoadExtension = "@libdir@/freeDiameter/dbg_msg_dumps.fdx" : "0x8888";
LoadExtension = "@libdir@/freeDiameter/dict_rfc5777.fdx";
LoadExtension = "@libdir@/freeDiameter/dict_mip6i.fdx";
LoadExtension = "@libdir@/freeDiameter/dict_nasreq.fdx";
LoadExtension = "@libdir@/freeDiameter/dict_nas_mipv6.fdx";
LoadExtension = "@libdir@/freeDiameter/dict_dcca.fdx";
LoadExtension = "@libdir@/freeDiameter/dict_dcca_3gpp.fdx";
##############################################################
## Peers configuration
# The local server listens for incoming connections. By default,
# all unknown connecting peers are rejected. Extensions can override this behavior (e.g., acl_wl).
#
# In addition to incoming connections, the local peer can
# be configured to establish and maintain connections to some
# Diameter nodes and allow connections from these nodes.
# This is achieved with the ConnectPeer directive described below.
#
# Note that the configured Diameter Identity MUST match
# the information received inside CEA, or the connection will be aborted.
#
# Format:
#ConnectPeer = "diameterid" [ { parameter1; parameter2; ...} ] ;
# Parameters that can be specified in the peer's parameter list:
# No_TCP; No_SCTP; No_IP; No_IPv6; Prefer_TCP; TLS_old_method;
# No_TLS; # assume transparent security instead of TLS. DTLS is not supported yet (will change in future versions).
# Port = 5868; # The port to connect to
# TcTimer = 30;
# TwTimer = 30;
# ConnectTo = "202.249.37.5";
# ConnectTo = "2001:200:903:2::202:1";
# TLS_Prio = "NORMAL";
# Realm = "realm.net"; # Reject the peer if it does not advertise this realm.
# Examples:
#ConnectPeer = "aaa.wide.ad.jp";
#ConnectPeer = "old.diameter.serv" { TcTimer = 60; TLS_old_method; No_SCTP; Port=3868; } ;
ConnectPeer = "pcrf.localdomain" { ConnectTo = "127.0.0.9"; No_TLS; };
##############################################################

View File

@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCt1suIM1EjcvEWKSrft3XXOJ7aGLYnc6hg7ASP0M3GLhD/vcPC
o9dT555zBwepWRaxf5J5TdjuWsft7zeDin2UCEELNGgnpUt9yyn7hcAhbhdyMil6
KL6UMVbShZ9LsTNv+esBnOcvaJRrkVingASUPLMZlpEx98SBmCuFj1zw/QIDAQAB
AoGAV1x1hmn7oav22mMv56PD9be/pOz8RZFLEgIqPLf7YVfvNQaBpYQ/ByyEJVxo
DkP2Mpdg3dMwbIB0ru8j39guSO0evsCG95u5L3lUMLFh/+WTt4W0g4+9y0qD1dUy
y7kk+gKLlbPvyRNr+CiEnpz/rxdWC3J+tVBsWJGNjBGtZWECQQDdn5q7FUrF6HHQ
O5iJYCbeL+Xn4Ajwrr4M9OeGhMz4pTTtE45jjGi2ykFa9TJFMqjLuClBXw5FkIOe
S4unTO7JAkEAyM268Z558xHHnRl6uEN1NrqqpdXtZYnK9lm4/kZRs2mKm/98fjf0
GiHwiKqONP7si4ARE2Ws1wKmXmCe0nNGlQJBAMw8KFCd95FYe4IlWZXHySnaxCki
WbrLnhK8opxhx66gOJz996sfmuRQkVfsPE5uuAU9Cq/WlIVg/xoijmk3yZkCQEFu
YCsZM62TrpKvWcCvIoOZ4b817Sw38S3C4LfiW/71NhhM8NkEDINzabhusvXr11JB
gc7rQ52wHFwGadoze90CQF9qOBatpIFlEDkhzKofRILCWIzSrfhFdcCZqe6K8G10
ngbk3Xg3I0I+qWViDivOm689SC9xniF7wJ1XH0BRBKE=
-----END RSA PRIVATE KEY-----

View File

@ -34,20 +34,13 @@ else
endif
example_conf = '''
5gc.yaml
5gc-sample.yaml
00101.yaml
23504.yaml
minimal.yaml
epc.yaml
epc-fdconf.yaml
epc-custom.yaml
mnc3.yaml
sample.yaml
310014.yaml
csfb.yaml
volte.yaml
minimal.yaml
srslte.yaml
cups.yaml
app.yaml
sample.yaml
'''.split()
foreach file : example_conf

View File

@ -3,13 +3,105 @@ db_uri: mongodb://localhost/open5gs
logger:
parameter:
# no_nrf: true
# no_amf: true
# no_smf: true
# no_upf: true
# no_ausf: true
# no_udm: true
# no_udr: true
# no_mme: true
# no_sgwc: true
# no_sgwu: true
# no_pcrf: true
# no_hss: true
mme:
freeDiameter:
identity: mme.localdomain
realm: localdomain
listen_on: 127.0.0.2
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.localdomain
addr: 127.0.0.8
s1ap:
addr: 127.0.0.2
gtpc:
addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
mcc: 901
mnc: 70
tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
network_name:
full: Open5GS
sgwc:
gtpc:
addr: 127.0.0.3
pfcp:
addr: 127.0.0.3
smf:
sbi:
- addr: 127.0.0.4
port: 7777
gtpc:
- addr: 127.0.0.4
- addr: ::1
pfcp:
- addr: 127.0.0.4
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
freeDiameter:
identity: smf.localdomain
realm: localdomain
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.localdomain
addr: 127.0.0.9
amf:
sbi:
- addr: 127.0.0.2
- addr: 127.0.0.5
port: 7777
ngap:
- addr: 127.0.0.2
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 208
@ -38,28 +130,28 @@ amf:
full: Open5GS
amf_name: open5gs-amf0
smf:
sbi:
- addr: 127.0.0.3
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: ::1
sgwu:
gtpu:
addr: 127.0.0.6
pfcp:
- addr: 127.0.0.3
addr: 127.0.0.6
upf:
pfcp:
- addr: 127.0.0.7
gtpu:
- addr:
- 127.0.0.7
- ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
hss:
freeDiameter:
identity: pgw.open-ims.test
realm: open-ims.test
listen_on: 127.0.0.3
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.8
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -70,34 +162,44 @@ smf:
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.open-ims.test
addr: 127.0.0.5
upf:
pfcp:
- addr: 127.0.0.4
gtpu:
- addr:
- 127.0.0.4
- identity: mme.localdomain
addr: 127.0.0.2
pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.9
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.localdomain
addr: 127.0.0.4
nrf:
sbi:
addr:
- 127.0.0.10
- ::1
pdn:
port: 7777
ausf:
sbi:
- addr: 127.0.0.5
- addr: 127.0.0.11
port: 7777
udm:
sbi:
- addr: 127.0.0.6
- addr: 127.0.0.12
port: 7777
udr:
sbi:
- addr: 127.0.0.7
port: 7777
nrf:
sbi:
- addr:
- 127.0.0.1
- ::1
- addr: 127.0.0.13
port: 7777

View File

@ -1,144 +0,0 @@
db_uri: mongodb://localhost/open5gs
logger:
parameter:
nrf:
sbi:
addr:
- 127.0.0.1
- ::1
port: 7777
mme:
freeDiameter:
identity: mme.localdomain
realm: localdomain
listen_on: 127.0.0.2
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.localdomain
addr: 127.0.0.4
s1ap:
addr: 127.0.0.1
gtpc:
addr: 127.0.0.1
gummei:
plmn_id:
mcc: 310
mnc: 014
mme_gid: 32798
mme_code: 100
tai:
plmn_id:
mcc: 310
mnc: 014
tac: [50, 51, 52, 53]
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
network_name:
full: Open5GS
sgwc:
gtpc:
addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
sgwu:
gtpu:
addr: 127.0.0.7
pfcp:
addr: 127.0.0.7
smf:
sbi:
- addr: 127.0.0.3
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: ::1
pfcp:
- addr: 127.0.0.3
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
freeDiameter:
identity: smf.localdomain
realm: localdomain
listen_on: 127.0.0.3
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.localdomain
addr: 127.0.0.5
upf:
pfcp:
- addr: 127.0.0.4
gtpu:
- addr:
- 127.0.0.4
- ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
hss:
freeDiameter:
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: mme.localdomain
addr: 127.0.0.2
pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.5
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.localdomain
addr: 127.0.0.3

View File

@ -16,7 +16,7 @@
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,pfcp,fd,gtp,amf,event,tlv,mem,sock
# domain: core,ngap,nas,gmm,sbi,amf,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/amf.log
@ -41,9 +41,9 @@ logger:
# key: amf.key
# pem: amf.pem
#
# o SBI Server(https://127.0.0.2:443, http://[::1]:80)
# o SBI Server(https://127.0.0.5:443, http://[::1]:80)
# sbi:
# - addr: 127.0.0.2
# - addr: 127.0.0.5
# tls:
# key: amf.key
# pem: amf.pem
@ -53,9 +53,9 @@ logger:
# sbi:
# name: amf.open5gs.org
#
# o SBI Server(http://127.0.0.2:7777)
# o SBI Server(http://127.0.0.5:7777)
# sbi:
# - addr: 127.0.0.2
# - addr: 127.0.0.5
# port: 7777
#
# o SBI Server(http://<eth0 IP address>:80)
@ -71,14 +71,14 @@ logger:
# ngap:
# addr: 0.0.0.0
#
# o NGAP Server(127.0.0.1:38412, [::1]:38412)
# o NGAP Server(127.0.0.5:38412, [::1]:38412)
# ngap:
# - addr: 127.0.0.1
# - addr: 127.0.0.5
# - addr: ::1
#
# o NGAP Server(different port)
# ngap:
# - addr: 127.0.0.1
# - addr: 127.0.0.5
# port: 38413
#
# o NGAP Server(address avaiable in `eth0` interface)
@ -162,10 +162,10 @@ logger:
#
amf:
sbi:
- addr: 127.0.0.2
- addr: 127.0.0.5
port: 7777
ngap:
- addr: 127.0.0.2
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
@ -196,31 +196,31 @@ amf:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.0.1:7777)
# o SBI Client(http://127.0.0.10:7777)
# sbi:
# addr: 127.0.0.1
# addr: 127.0.0.10
# port: 7777
#
# o SBI Client(https://127.0.0.1:443, http://nrf.open5gs.org:80)
# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
# sbi:
# - addr: 127.0.0.1
# - addr: 127.0.0.10
# tls:
# key: nrf.key
# pem: nrf.pem
# - name: nrf.open5gs.org
#
# o SBI Client(http://[fe80::1%@loopback_devname@]:80)
# If prefer_ipv4 is true, http://127.0.0.1:80 is selected.
# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.0.1
# - 127.0.0.10
# - fe80::1%@loopback_devname@
#
nrf:
sbi:
- addr:
- 127.0.0.1
- 127.0.0.10
- ::1
port: 7777

View File

@ -16,7 +16,7 @@
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,pfcp,fd,gtp,ausf,event,tlv,mem,sock
# domain: core,sbi,ausf,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/ausf.log
@ -41,9 +41,9 @@ logger:
# key: ausf.key
# pem: ausf.pem
#
# o SBI Server(https://127.0.0.5:443, http://[::1]:80)
# o SBI Server(https://127.0.0.11:443, http://[::1]:80)
# sbi:
# - addr: 127.0.0.5
# - addr: 127.0.0.11
# tls:
# key: ausf.key
# pem: ausf.pem
@ -53,9 +53,9 @@ logger:
# sbi:
# name: ausf.open5gs.org
#
# o SBI Server(http://127.0.0.5:7777)
# o SBI Server(http://127.0.0.11:7777)
# sbi:
# - addr: 127.0.0.5
# - addr: 127.0.0.11
# port: 7777
#
# o SBI Server(http://<eth0 IP address>:80)
@ -64,7 +64,7 @@ logger:
#
ausf:
sbi:
- addr: 127.0.0.5
- addr: 127.0.0.11
port: 7777
#
@ -72,31 +72,31 @@ ausf:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.0.1:7777)
# o SBI Client(http://127.0.0.10:7777)
# sbi:
# addr: 127.0.0.1
# addr: 127.0.0.10
# port: 7777
#
# o SBI Client(https://127.0.0.1:443, http://nrf.open5gs.org:80)
# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
# sbi:
# - addr: 127.0.0.1
# - addr: 127.0.0.10
# tls:
# key: nrf.key
# pem: nrf.pem
# - name: nrf.open5gs.org
#
# o SBI Client(http://[fe80::1%@loopback_devname@]:80)
# If prefer_ipv4 is true, http://127.0.0.1:80 is selected.
# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.0.1
# - 127.0.0.10
# - fe80::1%@loopback_devname@
#
nrf:
sbi:
- addr:
- 127.0.0.1
- 127.0.0.10
- ::1
port: 7777

View File

@ -33,14 +33,14 @@ logger:
# s1ap:
# addr: 0.0.0.0
#
# o S1AP Server(127.0.0.1:36412, [::1]:36412)
# o S1AP Server(127.0.0.2:36412, [::1]:36412)
# s1ap:
# - addr: 127.0.0.1
# - addr: 127.0.0.2
# - addr: ::1
#
# o S1AP Server(different port)
# s1ap:
# - addr: 127.0.0.1
# - addr: 127.0.0.2
# port: 36413
#
# o S1AP Server(address avaiable in `eth0` interface)
@ -52,9 +52,9 @@ logger:
# o GTP-C Server(all address avaiable)
# gtpc:
#
# o GTP-C Server(127.0.0.1:2123, [::1]:2123)
# o GTP-C Server(127.0.0.2:2123, [::1]:2123)
# gtpc:
# - addr: 127.0.0.1
# - addr: 127.0.0.2
# - addr: ::1
#
# <SGsAP>
@ -112,7 +112,7 @@ logger:
# mnc: 02
# lac: 43692
# - addr
# - 127.0.0.3
# - 127.0.0.4
# - fe80::2%@loopback_devname@
# map:
# tai:
@ -204,9 +204,9 @@ logger:
mme:
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
addr: 127.0.0.1
addr: 127.0.0.2
gtpc:
addr: 127.0.0.1
addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
@ -236,21 +236,21 @@ mme:
# If prefer_ipv4 is not true, [fe80::2%@loopback_devname@] is selected.
# gtpc:
# addr:
# - 127.0.0.6
# - 127.0.0.3
# - fe80::2%@loopback_devname@
#
# o Two SGW are defined. MME selects SGW with round-robin manner per UE
# gtpc:
# - addr: 127.0.0.6
# - addr: 127.0.0.3
# - addr: fe80::2%@loopback_devname@
#
# o Three SGW are defined. MME selects SGW with round-robin manner per UE
# gtpc:
# - addr
# - 127.0.0.6
# - 127.0.0.3
# - fe80::2%@loopback_devname@
# - addr
# - 127.0.0.12
# - 127.0.0.22
# - fe80::12%@loopback_devname@
# - name: sgw3.open5gs.org
#
@ -259,7 +259,7 @@ mme:
# o Round-Robin
#
# gtpc:
# addr: 127.0.0.6
# addr: 127.0.0.3
# addr: 127.0.2.2
# addr: 127.0.4.2
#
@ -267,7 +267,7 @@ mme:
# (either single TAC or multiple TACs, DECIMAL representation)
#
# gtpc:
# - addr: 127.0.0.6
# - addr: 127.0.0.3
# tac: 26000
# - addr: 127.0.2.2
# tac: [25000, 27000, 28000]
@ -276,14 +276,14 @@ mme:
# (either single or multiple e_cell_id, HEX representation)
#
# gtpc:
# - addr: 127.0.0.6
# - addr: 127.0.0.3
# e_cell_id: abcde01
# - addr: 127.0.2.2
# e_cell_id: [12345, a9413, 98765]
#
sgwc:
gtpc:
addr: 127.0.0.6
addr: 127.0.0.3
#
# smf:
@ -295,37 +295,37 @@ sgwc:
# - If the HSS uses WebUI to set the SMF IP for each UE,
# you can use a specific SMF node for each UE.
#
# o Two SMF are defined. 127.0.0.3:2123 is used.
# o Two SMF are defined. 127.0.0.4:2123 is used.
# [fe80::3%@loopback_devname@]:2123 is ignored.
# gtpc:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# - addr: fe80::3%@loopback_devname@
#
# o One SMF is defined. if prefer_ipv4 is not true,
# [fe80::3%@loopback_devname@] is selected.
# gtpc:
# - addr:
# - 127.0.0.3
# - 127.0.0.4
# - fe80::3%@loopback_devname@
#
# o Two SMF are defined with a different APN.
# - Note that if SMF IP for UE is configured in HSS,
# the following configurion for this UE is ignored.
# gtpc:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# apn: internet
# - addr: 127.0.0.5
# apn: volte
#
# o If APN is omitted, the default APN uses the first SMF node.
# gtpc:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# - addr: 127.0.0.5
# apn: volte
smf:
gtpc:
addr:
- 127.0.0.3
- 127.0.0.4
- ::1
#

View File

@ -16,7 +16,7 @@
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,fd,nrf,event,mem,sock
# domain: core,sbi,nrf,event,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/nrf.log
@ -42,9 +42,9 @@ logger:
# key: nrf.key
# pem: nrf.pem
#
# o SBI Server(https://127.0.0.1:443, http://[::1]:80)
# o SBI Server(https://127.0.0.10:443, http://[::1]:80)
# sbi:
# - addr: 127.0.0.1
# - addr: 127.0.0.10
# tls:
# key: nrf.key
# pem: nrf.pem
@ -54,9 +54,9 @@ logger:
# sbi:
# name: nrf.open5gs.org
#
# o SBI Server(http://127.0.0.1:7777)
# o SBI Server(http://127.0.0.10:7777)
# sbi:
# - addr: 127.0.0.1
# - addr: 127.0.0.10
# port: 7777
#
# o SBI Server(http://<eth0 IP address>:80)
@ -66,7 +66,7 @@ logger:
nrf:
sbi:
addr:
- 127.0.0.1
- 127.0.0.10
- ::1
port: 7777

View File

@ -16,7 +16,7 @@
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,gtp,sgw,event,tlv,mem,sock
# domain: core,pfcp,gtp,sgwc,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/sgwc.log
@ -26,47 +26,47 @@ logger:
#
# <GTP-C Server>
#
# o GTP-C Server(127.0.0.6:2123, [fe80::2%@loopback_devname@]:2123)
# o GTP-C Server(127.0.0.3:2123, [fe80::2%@loopback_devname@]:2123)
# gtpc:
# addr:
# - 127.0.0.6
# - 127.0.0.3
# - fe80::2%@loopback_devname@
#
# o On SGW, Same Configuration(127.0.0.6:2123,
# o On SGW, Same Configuration(127.0.0.3:2123,
# [fe80::2%@loopback_devname@]:2123) as below.
# gtpc:
# - addr: 127.0.0.6
# - addr: 127.0.0.3
# - addr: fe80::2%@loopback_devname@
#
# <PFCP Server>
#
# o PFCP Server(127.0.0.6:8805, ::1:8805)
# o PFCP Server(127.0.0.3:8805, ::1:8805)
# pfcp:
# - addr: 127.0.0.6
# - addr: 127.0.0.3
# - addr: ::1
#
sgwc:
gtpc:
addr: 127.0.0.6
addr: 127.0.0.3
pfcp:
addr: 127.0.0.6
addr: 127.0.0.3
#
# sgwu:
#
# <PFCP Client>>
#
# o PFCP Client(127.0.0.7:8805)
# o PFCP Client(127.0.0.6:8805)
#
# pfcp:
# addr: 127.0.0.7
# addr: 127.0.0.6
#
# <UPF_SELECTION_MODE - EPC only>
#
# o Round-Robin
# sgwu:
# pfcp:
# - addr: 127.0.0.7
# - addr: 127.0.0.6
# - addr: 127.0.0.12
#
# o UPF selection by eNodeB TAC
@ -74,7 +74,7 @@ sgwc:
#
# sgwu:
# pfcp:
# - addr: 127.0.0.7
# - addr: 127.0.0.6
# tac: 1
# - addr: 127.0.0.12
# tac: [3,5,8]
@ -83,7 +83,7 @@ sgwc:
#
# sgwu:
# pfcp:
# - addr: 127.0.0.7
# - addr: 127.0.0.6
# dnn: ims
# - addr: 127.0.0.12
# apn: [internet, web]
@ -93,14 +93,14 @@ sgwc:
#
# sgwu:
# pfcp:
# - addr: 127.0.0.7
# - addr: 127.0.0.6
# e_cell_id: 463
# - addr: 127.0.0.12
# nr_cell_id: [123456789, 9413]
#
sgwu:
pfcp:
addr: 127.0.0.7
addr: 127.0.0.6
#
# parameter:
@ -124,7 +124,6 @@ sgwu:
# no_slaac: true
#
parameter:
no_ipv6: true
#
# max:

View File

@ -16,10 +16,10 @@
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,gtp,sgw,event,tlv,mem,sock
# domain: core,pfcp,gtp,sgwu,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/sgwc.log
file: @localstatedir@/log/open5gs/sgwu.log
#
# sgwu:
@ -44,16 +44,16 @@ logger:
#
# <PFCP Server>
#
# o PFCP Server(127.0.0.7:8805, ::1:8805)
# o PFCP Server(127.0.0.6:8805, ::1:8805)
# pfcp:
# - addr: 127.0.0.7
# - addr: 127.0.0.6
# - addr: ::1
#
sgwu:
gtpu:
addr: 127.0.0.7
addr: 127.0.0.6
pfcp:
addr: 127.0.0.7
addr: 127.0.0.6
#
# sgwc:
@ -89,7 +89,6 @@ sgwc:
# no_slaac: true
#
parameter:
no_ipv6: true
#
# max:

View File

@ -16,7 +16,7 @@
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,pfcp,fd,gtp,smf,event,tlv,mem,sock
# domain: core,pfcp,fd,pfcp,gtp,smf,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/smf.log
@ -41,9 +41,9 @@ logger:
# key: smf.key
# pem: smf.pem
#
# o SBI Server(https://127.0.0.3:443, http://[::1]:80)
# o SBI Server(https://127.0.0.4:443, http://[::1]:80)
# sbi:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# tls:
# key: smf.key
# pem: smf.pem
@ -53,9 +53,9 @@ logger:
# sbi:
# name: smf.open5gs.org
#
# o SBI Server(http://127.0.0.3:7777)
# o SBI Server(http://127.0.0.4:7777)
# sbi:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# port: 7777
#
# o SBI Server(http://<eth0 IP address>:80)
@ -64,23 +64,23 @@ logger:
#
# <PFCP Server>
#
# o PFCP Server(127.0.0.3:8805, ::1:8805)
# o PFCP Server(127.0.0.4:8805, ::1:8805)
# pfcp:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# - addr: ::1
#
# <GTP-C Server>
#
# o GTP-C Server(127.0.0.3:2123, [fe80::3%@loopback_devname@]:2123)
# o GTP-C Server(127.0.0.4:2123, [fe80::3%@loopback_devname@]:2123)
# gtpc:
# addr:
# - 127.0.0.3
# - 127.0.0.4
# - fe80::3%@loopback_devname@
#
# o On SMF, Same configuration
# (127.0.0.3:2123, [fe80::3%@loopback_devname@]:2123).
# (127.0.0.4:2123, [fe80::3%@loopback_devname@]:2123).
# gtpc:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# - addr: fe80::3%@loopback_devname@
#
# <PDN Configuration with UE Pool>
@ -181,13 +181,13 @@ logger:
#
smf:
sbi:
- addr: 127.0.0.3
- addr: 127.0.0.4
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: 127.0.0.4
- addr: ::1
pfcp:
- addr: 127.0.0.3
- addr: 127.0.0.4
- addr: ::1
pdn:
- addr: 10.45.0.1/16
@ -198,7 +198,7 @@ smf:
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
freeDiameter: @sysconfdir@/freeDiameter/pgw.conf
freeDiameter: @sysconfdir@/freeDiameter/smf.conf
#
# nrf:
@ -207,29 +207,29 @@ smf:
#
# o SBI Client(http://127.0.0.1:7777)
# sbi:
# addr: 127.0.0.1
# addr: 127.0.0.10
# port: 7777
#
# o SBI Client(https://127.0.0.1:443, http://nrf.open5gs.org:80)
# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
# sbi:
# - addr: 127.0.0.1
# - addr: 127.0.0.10
# tls:
# key: nrf.key
# pem: nrf.pem
# - name: nrf.open5gs.org
#
# o SBI Client(http://[fe80::1%@loopback_devname@]:80)
# If prefer_ipv4 is true, http://127.0.0.1:80 is selected.
# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.0.1
# - 127.0.0.10
# - fe80::1%@loopback_devname@
#
nrf:
sbi:
- addr:
- 127.0.0.1
- 127.0.0.10
- ::1
port: 7777
@ -238,17 +238,17 @@ nrf:
#
# <PFCP Client>>
#
# o PFCP Client(127.0.0.4:8805)
# o PFCP Client(127.0.0.7:8805)
#
# pfcp:
# addr: 127.0.0.4
# addr: 127.0.0.7
#
# <UPF_SELECTION_MODE - EPC only>
#
# o Round-Robin
# upf:
# pfcp:
# - addr: 127.0.0.4
# - addr: 127.0.0.7
# - addr: 127.0.0.12
#
# o UPF selection by eNodeB TAC
@ -256,7 +256,7 @@ nrf:
#
# upf:
# pfcp:
# - addr: 127.0.0.4
# - addr: 127.0.0.7
# tac: 1
# - addr: 127.0.0.12
# tac: [3,5,8]
@ -265,7 +265,7 @@ nrf:
#
# upf:
# pfcp:
# - addr: 127.0.0.4
# - addr: 127.0.0.7
# dnn: ims
# - addr: 127.0.0.12
# apn: [internet, web]
@ -275,14 +275,14 @@ nrf:
#
# upf:
# pfcp:
# - addr: 127.0.0.4
# - addr: 127.0.0.7
# e_cell_id: 463
# - addr: 127.0.0.12
# nr_cell_id: [123456789, 9413]
#
upf:
pfcp:
- addr: 127.0.0.4
- addr: 127.0.0.7
#
# parameter:

View File

@ -16,7 +16,7 @@
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,pfcp,fd,gtp,udm,event,tlv,mem,sock
# domain: core,sbi,udm,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/udm.log
@ -41,9 +41,9 @@ logger:
# key: udm.key
# pem: udm.pem
#
# o SBI Server(https://127.0.0.6:443, http://[::1]:80)
# o SBI Server(https://127.0.0.12:443, http://[::1]:80)
# sbi:
# - addr: 127.0.0.6
# - addr: 127.0.0.12
# tls:
# key: udm.key
# pem: udm.pem
@ -53,9 +53,9 @@ logger:
# sbi:
# name: udm.open5gs.org
#
# o SBI Server(http://127.0.0.6:7777)
# o SBI Server(http://127.0.0.12:7777)
# sbi:
# - addr: 127.0.0.6
# - addr: 127.0.0.12
# port: 7777
#
# o SBI Server(http://<eth0 IP address>:80)
@ -64,7 +64,7 @@ logger:
#
udm:
sbi:
- addr: 127.0.0.6
- addr: 127.0.0.12
port: 7777
#
@ -72,31 +72,31 @@ udm:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.0.1:7777)
# o SBI Client(http://127.0.0.10:7777)
# sbi:
# addr: 127.0.0.1
# addr: 127.0.0.10
# port: 7777
#
# o SBI Client(https://127.0.0.1:443, http://nrf.open5gs.org:80)
# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
# sbi:
# - addr: 127.0.0.1
# - addr: 127.0.0.10
# tls:
# key: nrf.key
# pem: nrf.pem
# - name: nrf.open5gs.org
#
# o SBI Client(http://[fe80::1%@loopback_devname@]:80)
# If prefer_ipv4 is true, http://127.0.0.1:80 is selected.
# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.0.1
# - 127.0.0.10
# - fe80::1%@loopback_devname@
#
nrf:
sbi:
- addr:
- 127.0.0.1
- 127.0.0.10
- ::1
port: 7777

View File

@ -18,7 +18,7 @@ db_uri: mongodb://localhost/open5gs
#
# o Set OGS_LOG_TRACE to all domain level
# level: trace
# domain: core,pfcp,fd,gtp,udr,event,tlv,mem,sock
# domain: core,sbi,udr,event,tlv,mem,sock
#
logger:
file: @localstatedir@/log/open5gs/udr.log
@ -43,9 +43,9 @@ logger:
# key: udr.key
# pem: udr.pem
#
# o SBI Server(https://127.0.0.7:443, http://[::1]:80)
# o SBI Server(https://127.0.0.13:443, http://[::1]:80)
# sbi:
# - addr: 127.0.0.7
# - addr: 127.0.0.13
# tls:
# key: udr.key
# pem: udr.pem
@ -55,9 +55,9 @@ logger:
# sbi:
# name: udr.open5gs.org
#
# o SBI Server(http://127.0.0.7:7777)
# o SBI Server(http://127.0.0.13:7777)
# sbi:
# - addr: 127.0.0.7
# - addr: 127.0.0.13
# port: 7777
#
# o SBI Server(http://<eth0 IP address>:80)
@ -66,7 +66,7 @@ logger:
#
udr:
sbi:
- addr: 127.0.0.7
- addr: 127.0.0.13
port: 7777
#
@ -74,31 +74,31 @@ udr:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.0.1:7777)
# o SBI Client(http://127.0.0.10:7777)
# sbi:
# addr: 127.0.0.1
# addr: 127.0.0.10
# port: 7777
#
# o SBI Client(https://127.0.0.1:443, http://nrf.open5gs.org:80)
# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
# sbi:
# - addr: 127.0.0.1
# - addr: 127.0.0.10
# tls:
# key: nrf.key
# pem: nrf.pem
# - name: nrf.open5gs.org
#
# o SBI Client(http://[fe80::1%@loopback_devname@]:80)
# If prefer_ipv4 is true, http://127.0.0.1:80 is selected.
# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
#
# sbi:
# addr:
# - 127.0.0.1
# - 127.0.0.10
# - fe80::1%@loopback_devname@
#
nrf:
sbi:
- addr:
- 127.0.0.1
- 127.0.0.10
- ::1
port: 7777

View File

@ -26,26 +26,26 @@ logger:
#
# <PFCP Server>
#
# o PFCP Server(127.0.0.4:8805)
# o PFCP Server(127.0.0.7:8805)
# pfcp:
# addr: 127.0.0.4
# addr: 127.0.0.7
#
# <GTP-U Server>>
#
# o GTP-U Server(127.0.0.4:2152, [::1]:2152)
# o GTP-U Server(127.0.0.7:2152, [::1]:2152)
# gtpu:
# - addr:
# - 127.0.0.4
# - 127.0.0.7
# - ::1
#
# o Same configuration(127.0.0.4:2152, [::1]:2152) as below.
# o Same configuration(127.0.0.7:2152, [::1]:2152) as below.
# gtpu:
# name: localhost
#
# o User Plane IP Resource information
# gtpu:
# - addr:
# - 127.0.0.4
# - 127.0.0.7
# - ::1
# teid_range_indication: 4
# teid_range: 10
@ -59,12 +59,14 @@ logger:
#
upf:
pfcp:
- addr: 127.0.0.4
- addr: 127.0.0.7
gtpu:
- addr:
- 127.0.0.4
- 127.0.0.7
- ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
#
# smf:

View File

@ -3,14 +3,18 @@ db_uri: mongodb://localhost/open5gs
logger:
parameter:
no_ipv6: true
nrf:
sbi:
addr:
- 127.0.0.1
- ::1
port: 7777
# no_nrf: true
# no_amf: true
# no_smf: true
# no_upf: true
# no_ausf: true
# no_udm: true
# no_udr: true
# no_mme: true
# no_sgwc: true
# no_sgwu: true
# no_pcrf: true
# no_hss: true
mme:
freeDiameter:
@ -28,13 +32,13 @@ mme:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.localdomain
addr: 127.0.0.4
addr: 127.0.0.8
s1ap:
addr: 127.0.0.1
addr: 127.0.0.2
gtpc:
addr: 127.0.0.1
gummei:
addr: 127.0.0.2
gummei:
plmn_id:
mcc: 901
mnc: 70
@ -54,25 +58,19 @@ mme:
sgwc:
gtpc:
addr: 127.0.0.6
addr: 127.0.0.3
pfcp:
addr: 127.0.0.6
sgwu:
gtpu:
addr: 127.0.0.7
pfcp:
addr: 127.0.0.7
addr: 127.0.0.3
smf:
sbi:
- addr: 127.0.0.3
- addr: 127.0.0.4
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: 127.0.0.4
- addr: ::1
pfcp:
- addr: 127.0.0.3
- addr: 127.0.0.4
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
@ -85,7 +83,7 @@ smf:
freeDiameter:
identity: smf.localdomain
realm: localdomain
listen_on: 127.0.0.3
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -97,13 +95,50 @@ smf:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.localdomain
addr: 127.0.0.5
addr: 127.0.0.9
amf:
sbi:
- addr: 127.0.0.5
port: 7777
ngap:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mnc: 70
tac: 1
plmn:
- plmn_id:
mcc: 901
mnc: 70
s_nssai:
- sst: 1
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
sgwu:
gtpu:
addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
upf:
pfcp:
- addr: 127.0.0.4
- addr: 127.0.0.7
gtpu:
- addr:
- 127.0.0.4
- 127.0.0.7
- ::1
pdn:
- addr: 10.45.0.1/16
@ -113,7 +148,7 @@ hss:
freeDiameter:
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.4
listen_on: 127.0.0.8
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -130,7 +165,7 @@ pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.5
listen_on: 127.0.0.9
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -142,4 +177,26 @@ pcrf:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.localdomain
addr: 127.0.0.3
addr: 127.0.0.4
nrf:
sbi:
addr:
- 127.0.0.10
- ::1
port: 7777
ausf:
sbi:
- addr: 127.0.0.11
port: 7777
udm:
sbi:
- addr: 127.0.0.12
port: 7777
udr:
sbi:
- addr: 127.0.0.13
port: 7777

View File

@ -3,14 +3,18 @@ db_uri: mongodb://localhost/open5gs
logger:
parameter:
no_ipv6: true
nrf:
sbi:
addr:
- 127.0.0.1
- ::1
port: 7777
# no_nrf: true
# no_amf: true
# no_smf: true
# no_upf: true
# no_ausf: true
# no_udm: true
# no_udr: true
# no_mme: true
# no_sgwc: true
# no_sgwu: true
# no_pcrf: true
# no_hss: true
mme:
freeDiameter:
@ -28,13 +32,13 @@ mme:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.localdomain
addr: 127.0.0.4
addr: 127.0.0.8
s1ap:
addr: 127.0.1.100
gtpc:
addr: 127.0.1.100
gummei:
gummei:
plmn_id:
mcc: 901
mnc: 70
@ -54,25 +58,19 @@ mme:
sgwc:
gtpc:
addr: 127.0.0.6
addr: 127.0.0.3
pfcp:
addr: 127.0.0.6
sgwu:
gtpu:
addr: 127.0.0.7
pfcp:
addr: 127.0.0.7
addr: 127.0.0.3
smf:
sbi:
- addr: 127.0.0.3
- addr: 127.0.0.4
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: 127.0.0.4
- addr: ::1
pfcp:
- addr: 127.0.0.3
- addr: 127.0.0.4
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
@ -85,7 +83,7 @@ smf:
freeDiameter:
identity: smf.localdomain
realm: localdomain
listen_on: 127.0.0.3
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -97,24 +95,60 @@ smf:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.localdomain
addr: 127.0.0.5
addr: 127.0.0.9
amf:
sbi:
- addr: 127.0.0.5
port: 7777
ngap:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 901
mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 901
mnc: 70
tac: 1
plmn:
- plmn_id:
mcc: 901
mnc: 70
s_nssai:
- sst: 1
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
sgwu:
gtpu:
addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
upf:
pfcp:
- addr: 127.0.0.4
- addr: 127.0.0.7
gtpu:
- addr:
- 127.0.0.4
- 127.0.0.7
- ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
hss:
freeDiameter:
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.4
listen_on: 127.0.0.8
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -127,12 +161,11 @@ hss:
connect:
- identity: mme.localdomain
addr: 127.0.0.2
pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.5
listen_on: 127.0.0.9
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -144,4 +177,26 @@ pcrf:
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.localdomain
addr: 127.0.0.3
addr: 127.0.0.4
nrf:
sbi:
addr:
- 127.0.0.10
- ::1
port: 7777
ausf:
sbi:
- addr: 127.0.0.11
port: 7777
udm:
sbi:
- addr: 127.0.0.12
port: 7777
udr:
sbi:
- addr: 127.0.0.13
port: 7777

View File

@ -16,11 +16,18 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
systemd_conf_in = '''
open5gs-hssd.service
open5gs-pgwd.service
open5gs-mmed.service
open5gs-sgwd.service
open5gs-sgwcd.service
open5gs-smfd.service
open5gs-amfd.service
open5gs-sgwud.service
open5gs-upfd.service
open5gs-hssd.service
open5gs-pcrfd.service
open5gs-nrfd.service
open5gs-ausfd.service
open5gs-udmd.service
open5gs-udrd.service
'''.split()
foreach file : systemd_conf_in

View File

@ -1,5 +1,5 @@
[Unit]
Description=Open5GS S-GW Daemon
Description=Open5GS AMF Daemon
After=networking.service
[Service]
@ -9,7 +9,7 @@ User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-sgwd -c @sysconfdir@/open5gs/sgw.yaml
ExecStart=@bindir@/open5gs-amfd -c @sysconfdir@/open5gs/amf.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID

View File

@ -0,0 +1,18 @@
[Unit]
Description=Open5GS AUSF Daemon
After=networking.service
[Service]
Type=simple
User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-ausfd -c @sysconfdir@/open5gs/ausf.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,18 @@
[Unit]
Description=Open5GS NRF Daemon
After=networking.service
[Service]
Type=simple
User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-nrfd -c @sysconfdir@/open5gs/nrf.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,18 @@
[Unit]
Description=Open5GS SGW-C Daemon
After=networking.service
[Service]
Type=simple
User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-sgwcd -c @sysconfdir@/open5gs/sgwc.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,18 @@
[Unit]
Description=Open5GS SGW-U Daemon
After=networking.service
[Service]
Type=simple
User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-sgwud -c @sysconfdir@/open5gs/sgwu.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@ -1,5 +1,5 @@
[Unit]
Description=Open5GS P-GW Daemon
Description=Open5GS SMF Daemon
After=networking.service
Requires=systemd-networkd.service
@ -10,7 +10,7 @@ User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-pgwd -c @sysconfdir@/open5gs/pgw.yaml
ExecStart=@bindir@/open5gs-smfd -c @sysconfdir@/open5gs/smf.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID

View File

@ -0,0 +1,18 @@
[Unit]
Description=Open5GS UDM Daemon
After=networking.service
[Service]
Type=simple
User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-udmd -c @sysconfdir@/open5gs/udm.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,18 @@
[Unit]
Description=Open5GS UDR Daemon
After=networking.service
[Service]
Type=simple
User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-udrd -c @sysconfdir@/open5gs/udr.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,19 @@
[Unit]
Description=Open5GS UPF Daemon
After=networking.service
Requires=systemd-networkd.service
[Service]
Type=simple
User=open5gs
Group=open5gs
Restart=always
ExecStart=@bindir@/open5gs-upfd -c @sysconfdir@/open5gs/upf.yaml
RestartSec=2
RestartPreventExitStatus=1
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@ -10,19 +10,16 @@ parameter:
# no_ausf: true
# no_udm: true
# no_udr: true
# no_mme: true
# no_sgwc: true
# no_sgwu: true
# no_pcrf: true
# no_hss: true
nrf:
sbi:
addr:
- 127.0.0.1
- ::1
port: 7777
mme:
freeDiameter:
identity: mme.open-ims.test
realm: open-ims.test
# port: 3868
# sec_port: 5868
identity: mme.localdomain
realm: localdomain
listen_on: 127.0.0.2
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
@ -34,15 +31,14 @@ mme:
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: hss.open-ims.test
addr: 127.0.0.4
# port: 3868
- identity: hss.localdomain
addr: 127.0.0.8
s1ap:
addr: 127.0.0.1
addr: 127.0.0.2
gtpc:
addr: 127.0.0.1
gummei:
addr: 127.0.0.2
gummei:
plmn_id:
mcc: 001
mnc: 01
@ -57,27 +53,24 @@ mme:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
network_name:
full: Open5GS
sgwc:
gtpc:
addr: 127.0.0.6
addr: 127.0.0.3
pfcp:
addr: 127.0.0.6
sgwu:
gtpu:
addr: 127.0.0.7
pfcp:
addr: 127.0.0.7
addr: 127.0.0.3
smf:
sbi:
- addr: 127.0.0.3
- addr: 127.0.0.4
port: 7777
gtpc:
- addr: 127.0.0.3
- addr: 127.0.0.4
- addr: ::1
pfcp:
- addr: 127.0.0.3
- addr: 127.0.0.4
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
@ -88,42 +81,8 @@ smf:
- 2001:4860:4860::8844
mtu: 1400
freeDiameter:
identity: smf.open-ims.test
realm: open-ims.test
# port: 3868
# sec_port: 5868
listen_on: 127.0.0.3
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: pcrf.open-ims.test
addr: 127.0.0.5
# port: 3868
upf:
pfcp:
- addr: 127.0.0.4
gtpu:
- addr:
- 127.0.0.4
- ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
hss:
freeDiameter:
identity: hss.open-ims.test
realm: open-ims.test
# port: 3868
# sec_port: 5868
identity: smf.localdomain
realm: localdomain
listen_on: 127.0.0.4
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
@ -135,17 +94,61 @@ hss:
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: mme.open-ims.test
addr: 127.0.0.2
# port: 3868
- identity: pcrf.localdomain
addr: 127.0.0.9
amf:
sbi:
- addr: 127.0.0.5
port: 7777
ngap:
- addr: 127.0.0.5
guami:
- plmn_id:
mcc: 001
mnc: 01
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: 001
mnc: 01
tac: 1
plmn:
- plmn_id:
mcc: 001
mnc: 01
s_nssai:
- sst: 1
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
pcrf:
sgwu:
gtpu:
addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
upf:
pfcp:
- addr: 127.0.0.7
gtpu:
- addr:
- 127.0.0.7
- ::1
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
hss:
freeDiameter:
identity: pcrf.open-ims.test
realm: open-ims.test
# port: 3868
# sec_port: 5868
listen_on: 127.0.0.5
identity: hss.localdomain
realm: localdomain
listen_on: 127.0.0.8
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
@ -156,7 +159,46 @@ pcrf:
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.open-ims.test
addr: 127.0.0.3
- identity: pcscf.open-ims.test
- identity: mme.localdomain
addr: 127.0.0.2
pcrf:
freeDiameter:
identity: pcrf.localdomain
realm: localdomain
listen_on: 127.0.0.9
load_extension:
- module: @freediameter_extensions_builddir@/dbg_msg_dumps.fdx
conf: 0x8888
- module: @freediameter_extensions_builddir@/dict_rfc5777.fdx
- module: @freediameter_extensions_builddir@/dict_mip6i.fdx
- module: @freediameter_extensions_builddir@/dict_nasreq.fdx
- module: @freediameter_extensions_builddir@/dict_nas_mipv6.fdx
- module: @freediameter_extensions_builddir@/dict_dcca.fdx
- module: @freediameter_extensions_builddir@/dict_dcca_3gpp.fdx
connect:
- identity: smf.localdomain
addr: 127.0.0.4
- identity: pcscf.localdomain
addr: 127.0.0.1
nrf:
sbi:
addr:
- 127.0.0.10
- ::1
port: 7777
ausf:
sbi:
- addr: 127.0.0.11
port: 7777
udm:
sbi:
- addr: 127.0.0.12
port: 7777
udr:
sbi:
- addr: 127.0.0.13
port: 7777

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
open5gs (2.0.0) unstable; urgency=medium
* 5G Core and EPC (Hybrid)
-- Sukchan Lee <acetcom@gmail.com> Fri, 21 Aug 2020 22:18:53 -0400
open5gs (1.3.0) unstable; urgency=medium
* Release-16

192
debian/control vendored
View File

@ -30,12 +30,12 @@ Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends}
Description: Open Source based 3GPP EPC (Shared Files)
Open5GS is a C-language Open Source implementation of the 3GPP Evolved
Packet Core, i.e. the core network of an LTE network.
Description: 5G Core and EPC (Shared Files)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package contains some core libraries/plugins required by the other
binary packages such as open5gs-{mme,sgw,pgw,pcrf,hss}.
binary packages such as open5gs-{mme,sgwc,sgwu,amf,smf,upf,...}.
Package: open5gs-mme
Architecture: any
@ -43,61 +43,79 @@ Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: Open Source based 3GPP EPC MME (Mobility Management Entity)
Open5GS is a C-language Open Source implementation of the 3GPP Evolved
Packet Core, i.e. the core network of an LTE network.
Description: MME (Mobility Management Entity)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the MME (Mobility Management Engine), which
terminates the S1 interfaces from the eNodeBs cells in the cellular
network, and interfaces via S11 to the SGW as well as via S6a to the
network, and interfaces via S11 to the SGW-C as well as via S6a to the
HSS.
Package: open5gs-sgw
Package: open5gs-sgwc
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: Open Source based 3GPP EPC SGW (Serving Gateway)
Open5GS is a C-language Open Source implementation of the 3GPP Evolved
Packet Core, i.e. the core network of an LTE network.
Description: SGW-C (Serving Gateway - Control Plane)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the SGW (Serving Gateway) which is situated
between the MME and PGW. It implements the S11 interface to the MME,
and the S5 interface to the PGW.
This package provides the SGW-C (Serving Gateway - Control Plane)
which is situated between the MME and PGW. It implements the S11 interface
to the MME, and the S5 interface to the SMF-C.
Package: open5gs-pgw
Package: open5gs-smf
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: SMF (Session Management Function)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the SMF (Session Management Function)
Package: open5gs-amf
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: AMF (Access and Mobility Management Function)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the AMF (Access and Mobility Management Function)
Package: open5gs-sgwu
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: SGW-U (Serving Gateway - User Plane)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the SGW-U (Serving Gateway - User Plane)
which is situated between the eNB and UPF. It implements the S1U interface
to the eNB, and the S5U interface to the SMF-U.
Package: open5gs-upf
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
udev,
open5gs-common (= ${binary:Version})
Description: Open Source based 3GPP EPC PGW (Packet Data Network Gateway)
Open5GS is a C-language Open Source implementation of the 3GPP Evolved
Packet Core, i.e. the core network of an LTE network.
Description: UPF (User Plane Function)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the PGW or PDN-GW (Packet Data Network Gateway)
element of the EPC, i.e. the gateway between the EPC and the external
packet data network, such as the public Internet. It implements the S5
interface towards the S-GW, the SGi interface towards the Internet,
and the S7 interface towards the PCRF.
Package: open5gs-pcrf
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
mongodb-org | mongodb,
open5gs-common (= ${binary:Version})
Description: Open Source based 3GPP EPC PCRF (Policy and Charging Rules Function)
Open5GS is a C-language Open Source implementation of the 3GPP Evolved
Packet Core, i.e. the core network of an LTE network.
.
This package contains the PCRF (Policy and Charging Rules Function),
which controls the service quality (QoS) of individual connections and
how to account/charge related traffic. It implements the Gx interface
towards the PGW using the DIAMETER protocol.
This package provides the UPF (User Plane Function)
Package: open5gs-hss
Architecture: any
@ -106,9 +124,9 @@ Depends: ${shlibs:Depends},
${misc:Depends},
mongodb-org | mongodb,
open5gs-common (= ${binary:Version})
Description: Open Source based 3GPP EPC HSS (Home Subscriber Server)
Open5GS is a C-language Open Source implementation of the 3GPP Evolved
Packet Core, i.e. the core network of an LTE network.
Description: HSS (Home Subscriber Server)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the HSS (Home Subscriber Server) element of the
EPC, i.e. the central database of mobile network subscribers, with
@ -116,22 +134,92 @@ Description: Open Source based 3GPP EPC HSS (Home Subscriber Server)
information, etc. It implements the S6a interface towards the MME
using the DIAMETER protocol.
Package: open5gs-pcrf
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
mongodb-org | mongodb,
open5gs-common (= ${binary:Version})
Description: PCRF (Policy and Charging Rules Function)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package contains the PCRF (Policy and Charging Rules Function),
which controls the service quality (QoS) of individual connections and
how to account/charge related traffic. It implements the Gx interface
towards the SMF-C using the DIAMETER protocol.
Package: open5gs-nrf
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: NRF (Network Repository Function)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the NRF (Network Repository Function)
Package: open5gs-ausf
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: AUSF (Authentication Server Function)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the AUSF (Authentication Server Function)
Package: open5gs-udm
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: UDM (Unified Data Management)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the UDM (Unified Data Managemement)
Package: open5gs-udr
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
open5gs-common (= ${binary:Version})
Description: UDR (Unified Data Repository)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package provides the UDR (Unified Data Repository)
Package: open5gs
Architecture: any
Multi-Arch: same
Depends: ${misc:Depends},
open5gs-common (= ${binary:Version}),
open5gs-mme (= ${binary:Version}),
open5gs-sgw (= ${binary:Version}),
open5gs-pgw (= ${binary:Version}),
open5gs-sgwc (= ${binary:Version}),
open5gs-smf (= ${binary:Version}),
open5gs-amf (= ${binary:Version}),
open5gs-sgwu (= ${binary:Version}),
open5gs-upf (= ${binary:Version}),
open5gs-hss (= ${binary:Version}),
open5gs-pcrf (= ${binary:Version})
Description: Open Source based 3GPP EPC (metapackage)
Open5GS is a C-language Open Source implementation of the 3GPP Evolved
Packet Core, i.e. the core network of an LTE network.
open5gs-pcrf (= ${binary:Version}),
open5gs-nrf (= ${binary:Version}),
open5gs-ausf (= ${binary:Version}),
open5gs-udm (= ${binary:Version}),
open5gs-udr (= ${binary:Version})
Description: 5G Core and EPC (metapackage)
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This is a metapackage that depends on all the open5gs parts.
(MME, SGW, PGW, HSS, PCRF)
Package: open5gs-dbg
Architecture: any
@ -139,7 +227,7 @@ Multi-Arch: same
Depends: ${misc:Depends},
open5gs (= ${binary:Version})
Description: Debug symbols for Open5GS
Open5GS is a C-language Open Source implementation of the 3GPP Evolved
Packet Core, i.e. the core network of an LTE network.
Open5GS is a C-language implementation of 5G Core and EPC
Packet Core, i.e. the core network of an NR/LTE network (Release-16)
.
This package contains debug symbols for Open5GS.

3
debian/open5gs-amf.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/bin/open5gs-amfd
configs/open5gs/amf.yaml etc/open5gs
configs/systemd/open5gs-amfd.service lib/systemd/system

3
debian/open5gs-ausf.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/bin/open5gs-ausfd
configs/open5gs/ausf.yaml etc/open5gs
configs/systemd/open5gs-ausfd.service lib/systemd/system

3
debian/open5gs-nrf.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/bin/open5gs-nrfd
configs/open5gs/nrf.yaml etc/open5gs
configs/systemd/open5gs-nrfd.service lib/systemd/system

View File

@ -1,5 +0,0 @@
usr/bin/open5gs-pgwd
configs/freeDiameter/pgw.* etc/freeDiameter
configs/open5gs/pgw.yaml etc/open5gs
configs/systemd/99-open5gs.net* etc/systemd/network
configs/systemd/open5gs-pgwd.service lib/systemd/system

View File

@ -1,3 +0,0 @@
usr/bin/open5gs-sgwd
configs/open5gs/sgw.yaml etc/open5gs
configs/systemd/open5gs-sgwd.service lib/systemd/system

3
debian/open5gs-sgwc.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/bin/open5gs-sgwcd
configs/open5gs/sgwc.yaml etc/open5gs
configs/systemd/open5gs-sgwcd.service lib/systemd/system

3
debian/open5gs-sgwu.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/bin/open5gs-sgwud
configs/open5gs/sgwu.yaml etc/open5gs
configs/systemd/open5gs-sgwud.service lib/systemd/system

4
debian/open5gs-smf.install vendored Normal file
View File

@ -0,0 +1,4 @@
usr/bin/open5gs-smfd
configs/freeDiameter/smf.* etc/freeDiameter
configs/open5gs/smf.yaml etc/open5gs
configs/systemd/open5gs-smfd.service lib/systemd/system

3
debian/open5gs-udm.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/bin/open5gs-udmd
configs/open5gs/udm.yaml etc/open5gs
configs/systemd/open5gs-udmd.service lib/systemd/system

3
debian/open5gs-udr.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/bin/open5gs-udrd
configs/open5gs/udr.yaml etc/open5gs
configs/systemd/open5gs-udrd.service lib/systemd/system

4
debian/open5gs-upf.install vendored Normal file
View File

@ -0,0 +1,4 @@
usr/bin/open5gs-upfd
configs/open5gs/upf.yaml etc/open5gs
configs/systemd/99-open5gs.net* etc/systemd/network
configs/systemd/open5gs-upfd.service lib/systemd/system

View File

@ -76,20 +76,101 @@ $ sudo zypper install open5gs
### Configure Open5GS
---
Modify [/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP/GTP-C IP address, PLMN ID, and TAC
#### 5G Core
Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 10.10.0.5 for the NGAP connection of AMF to the gNB
- use 10.11.0.7 for the GTP-U connection of UPF to the gNB
```diff
diff -u amf.yaml.old amf.yaml
--- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400
+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400
@@ -67,25 +67,25 @@
- addr: 127.0.0.5
port: 7777
ngap:
- - addr: 127.0.0.5
+ - addr: 10.10.0.5
guami:
- plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
- mcc: 001
- mnc: 01
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 1
plmn:
- plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
s_nssai:
- sst: 1
- - sd: 2
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
```
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/upf.yaml.in) to set the GTP-U IP address.
```diff
diff -u upf.yaml.old upf.yaml
--- upf.yaml.old 2020-06-21 23:35:54.378631781 -0400
+++ upf.yaml 2020-06-21 23:36:02.978245251 -0400
@@ -61,6 +61,7 @@
pfcp:
- addr: 127.0.0.7
gtpu:
- - addr: 127.0.0.7
+ - addr: 10.11.0.7
pdn:
```
After changing conf files, please restart Open5GS daemons.
```bash
$ sudo systemctl restart open5gs-amfd
$ sudo systemctl restart open5gs-upfd
```
#### EPC
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 10.10.0.2 for the S1AP connection of MME to the eNB
- use 10.11.0.6 for the GTP-U connection of SGW-U to the eNB
```diff
diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2018-04-15 18:28:31.000000000 +0900
+++ mme.yaml 2018-04-15 19:53:10.000000000 +0900
@@ -8,18 +8,20 @@ parameter:
@@ -204,20 +204,20 @@ logger:
mme:
freeDiameter: /etc/freeDiameter/mme.conf
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
+ addr: 192.168.0.100
- addr: 127.0.0.2
+ addr: 10.10.0.2
gtpc:
+ addr: 192.168.0.100
gummei:
addr: 127.0.0.2
gummei:
plmn_id:
- mcc: 001
- mnc: 01
@ -101,32 +182,37 @@ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
plmn_id:
- mcc: 001
- mnc: 01
- tac: 12345
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 7
+ tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
Modify [/etc/open5gs/sgw.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgw.yaml.in) to set the GTP-U IP address.
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
diff -u /etc/open5gs/sgw.yaml.old /etc/open5gs/sgw.yaml
--- sgw.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgw.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -14,3 +14,4 @@
gtpc:
addr: 127.0.0.2
diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgwu.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -51,7 +51,7 @@ logger:
#
sgwu:
gtpu:
+ addr: 192.168.0.100
- addr: 127.0.0.6
+ addr: 10.11.0.6
pfcp:
addr: 127.0.0.6
```
After changing conf files, please restart Open5GS daemons.
```bash
$ sudo systemctl restart open5gs-mmed
$ sudo systemctl restart open5gs-sgwd
$ sudo systemctl restart open5gs-sgwud
```
### Install WebUI of Open5GS

View File

@ -62,7 +62,7 @@ Check whether the compilation is correct.
$ ninja -C build test
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || diameter || gtp`. You can see the virtually created packets. [[testsimple.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testsimple.pcapng)
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || pfcp || diameter || gtp`. You can see the virtually created packets. [[testsimple.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testsimple.pcapng)
{: .notice--info}
You need to perform the **installation process**.
@ -75,25 +75,96 @@ $ cd ../
### Configure Open5GS
---
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP/GTP-C IP address, PLMN ID, and TAC.
#### 5G Core
Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 192.168.0.100 for the S1AP +GTP-U connection of MME/SGW to the eNB
- use 10.10.0.5 for the NGAP connection of AMF to the gNB
- use 10.11.0.7 for the GTP-U connection of UPF to the gNB
```diff
diff -u amf.yaml.old amf.yaml
--- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400
+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400
@@ -67,25 +67,25 @@
- addr: 127.0.0.5
port: 7777
ngap:
- - addr: 127.0.0.5
+ - addr: 10.10.0.5
guami:
- plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
- mcc: 001
- mnc: 01
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 1
plmn:
- plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
s_nssai:
- sst: 1
- - sd: 2
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
```
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/upf.yaml.in) to set the GTP-U IP address.
```diff
diff -u upf.yaml.old upf.yaml
--- upf.yaml.old 2020-06-21 23:35:54.378631781 -0400
+++ upf.yaml 2020-06-21 23:36:02.978245251 -0400
@@ -61,6 +61,7 @@
pfcp:
- addr: 127.0.0.7
gtpu:
- - addr: 127.0.0.7
+ - addr: 10.11.0.7
pdn:
```
If you modify the config files while Open5GS daemons are running, please restart them
#### EPC
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 10.10.0.2 for the S1AP connection of MME to the eNB
- use 10.11.0.6 for the GTP-U connection of SGW-U to the eNB
```diff
diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2018-04-15 18:28:31.000000000 +0900
+++ mme.yaml 2018-04-15 19:53:10.000000000 +0900
@@ -8,18 +8,20 @@ parameter:
@@ -204,20 +204,20 @@ logger:
mme:
freeDiameter: /etc/freeDiameter/mme.conf
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
+ addr: 192.168.0.100
- addr: 127.0.0.2
+ addr: 10.10.0.2
gtpc:
+ addr: 192.168.0.100
gummei:
addr: 127.0.0.2
gummei:
plmn_id:
- mcc: 001
- mnc: 01
@ -105,25 +176,29 @@ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
plmn_id:
- mcc: 001
- mnc: 01
- tac: 12345
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 7
+ tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
Modify [install/etc/open5gs/sgw.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgw.yaml.in) to set the GTP-U IP address.
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
diff -u /etc/open5gs/sgw.yaml.old /etc/open5gs/sgw.yaml
--- sgw.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgw.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -14,3 +14,4 @@
gtpc:
addr: 127.0.0.2
diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgwu.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -51,7 +51,7 @@ logger:
#
sgwu:
gtpu:
+ addr: 192.168.0.100
- addr: 127.0.0.6
+ addr: 10.11.0.6
pfcp:
addr: 127.0.0.6
```
If you modify the config files while Open5GS daemons are running, please restart them
@ -138,7 +213,7 @@ Specify the absolute path to the sharead library as follows.
$ echo $(cd $(dirname ./install/lib/x86_64-linux-gnu/) && pwd -P)/$(basename ./install/lib/x86_64-linux-gnu/)
/home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu
$ export LD_LIBRARY_PATH=/home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu
$ ldd ./install/bin/open5gs-mmed
$ ldd ./install/bin/open5gs-amfd
...
libogsapp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogsapp.so.1 (0x00007f161ab51000)
libogscore.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogscore.so.1 (0x00007f161a922000)
@ -157,58 +232,123 @@ Now let's get started.
```bash
$ cd install/bin/
$ ./open5gs-pcrfd
Open5GS daemon v1.0.0
$ ./install/bin/open5gs-mmed
Open5GS daemon v1.3.0-213-gd190548+
10/27 15:47:55.821: [app] INFO: Configuration: '/Users/acetcom/Documents/git/open5gs/install/etc/open5gs/pcrf.yaml' (../src/main.c:54)
10/27 15:47:55.822: [app] INFO: File Logging: '/Users/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcrf.log' (../src/main.c:57)
10/27 15:47:55.868: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
10/27 15:47:55.965: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
08/21 22:53:47.328: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../src/main.c:54)
08/21 22:53:47.328: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../src/main.c:57)
08/21 22:53:47.365: [app] INFO: MME initialize...done (../src/mme/app-init.c:33)
08/21 22:53:47.365: [gtp] INFO: gtp_server() [127.0.0.2]:2123 (../lib/gtp/path.c:32)
08/21 22:53:47.365: [gtp] INFO: gtp_connect() [127.0.0.3]:2123 (../lib/gtp/path.c:59)
08/21 22:53:47.366: [mme] INFO: s1ap_server() [127.0.0.2]:36412 (../src/mme/s1ap-sctp.c:57)
$ ./open5gs-pgwd
Open5GS daemon v1.0.0
$ ./install/bin/open5gs-sgwcd
Open5GS daemon v1.3.0-213-gd190548+
10/27 15:48:11.198: [app] INFO: Configuration: '/Users/acetcom/Documents/git/open5gs/install/etc/open5gs/pgw.yaml' (../src/main.c:54)
10/27 15:48:11.199: [app] INFO: File Logging: '/Users/acetcom/Documents/git/open5gs/install/var/log/open5gs/pgw.log' (../src/main.c:57)
10/27 15:48:11.292: [app] INFO: PGW initialize...done (../src/pgw/app-init.c:31)
10/27 15:48:11.293: [gtp] INFO: gtp_server() [127.0.0.3]:2123 (../lib/gtp/path.c:32)
10/27 15:48:11.293: [gtp] INFO: gtp_server() [::1]:2123 (../lib/gtp/path.c:32)
10/27 15:48:11.293: [gtp] INFO: gtp_server() [127.0.0.3]:2152 (../lib/gtp/path.c:32)
10/27 15:48:11.293: [gtp] INFO: gtp_server() [::1]:2152 (../lib/gtp/path.c:32)
08/21 22:54:43.059: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwc.yaml' (../src/main.c:54)
08/21 22:54:43.059: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwc.log' (../src/main.c:57)
08/21 22:54:43.065: [app] INFO: SGW-C initialize...done (../src/sgwc/app.c:31)
08/21 22:54:43.066: [gtp] INFO: gtp_server() [127.0.0.3]:2123 (../lib/gtp/path.c:32)
08/21 22:54:43.066: [pfcp] INFO: pfcp_server() [127.0.0.3]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:43.066: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.6]:8805 (../lib/pfcp/path.c:60)
$ ./open5gs-sgwd
Open5GS daemon v1.0.0
$ ./install/bin/open5gs-smfd
Open5GS daemon v1.3.0-213-gd190548+
10/27 15:48:21.526: [app] INFO: Configuration: '/Users/acetcom/Documents/git/open5gs/install/etc/open5gs/sgw.yaml' (../src/main.c:54)
10/27 15:48:21.527: [app] INFO: File Logging: '/Users/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgw.log' (../src/main.c:57)
10/27 15:48:21.533: [app] INFO: SGW initialize...done (../src/sgw/app-init.c:31)
10/27 15:48:21.537: [gtp] INFO: gtp_server() [127.0.0.2]:2123 (../lib/gtp/path.c:32)
10/27 15:48:21.537: [gtp] INFO: gtp_server() [192.168.0.3]:2152 (../lib/gtp/path.c:32)
08/21 22:54:56.000: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/smf.yaml' (../src/main.c:54)
08/21 22:54:56.000: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/smf.log' (../src/main.c:57)
08/21 22:54:56.050: [gtp] INFO: gtp_server() [127.0.0.4]:2123 (../lib/gtp/path.c:32)
08/21 22:54:56.050: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
08/21 22:54:56.050: [gtp] INFO: gtp_server() [::1]:2123 (../lib/gtp/path.c:32)
08/21 22:54:56.050: [pfcp] INFO: pfcp_server() [127.0.0.4]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:56.050: [pfcp] INFO: pfcp_server() [::1]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:56.050: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.7]:8805 (../lib/pfcp/path.c:60)
08/21 22:54:56.051: [sbi] INFO: sbi_server() [127.0.0.4]:7777 (../lib/sbi/server.c:298)
$ ./open5gs-hssd
Open5GS daemon v1.0.0
$ ./install/bin/open5gs-amfd
Open5GS daemon v1.3.0-213-gd190548+
10/27 15:48:32.802: [app] INFO: Configuration: '/Users/acetcom/Documents/git/open5gs/install/etc/open5gs/hss.yaml' (../src/main.c:54)
10/27 15:48:32.803: [app] INFO: File Logging: '/Users/acetcom/Documents/git/open5gs/install/var/log/open5gs/hss.log' (../src/main.c:57)
10/27 15:48:32.815: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
10/27 15:48:32.861: [app] INFO: HSS initialize...done (../src/hss/app-init.c:31)
08/21 22:55:14.015: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/amf.yaml' (../src/main.c:54)
08/21 22:55:14.015: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log' (../src/main.c:57)
08/21 22:55:14.039: [app] INFO: AMF initialize...done (../src/amf/app.c:33)
08/21 22:55:14.040: [sbi] INFO: sbi_server() [127.0.0.5]:7777 (../lib/sbi/server.c:298)
08/21 22:55:14.040: [amf] INFO: ngap_server() [127.0.0.5]:38412 (../src/amf/ngap-sctp.c:56)
$ ./open5gs-mmed
Open5GS daemon v1.0.0
$ ./install/bin/open5gs-sgwud
Open5GS daemon v1.3.0-213-gd190548+
10/27 15:46:23.539: [app] INFO: Configuration: '/Users/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../src/main.c:54)
10/27 15:46:23.540: [app] INFO: File Logging: '/Users/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../src/main.c:57)
10/27 15:46:23.682: [app] INFO: MME initialize...done (../src/mme/app-init.c:33)
10/27 15:46:23.682: [gtp] INFO: gtp_server() [192.168.0.3]:2123 (../lib/gtp/path.c:32)
10/27 15:46:23.683: [gtp] INFO: gtp_connect() [127.0.0.2]:2123 (../lib/gtp/path.c:57)
10/27 15:46:23.683: [mme] INFO: s1ap_server() [192.168.0.3]:36412 (../src/mme/s1ap-usrpath.c:46)
08/21 22:54:10.357: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwu.yaml' (../src/main.c:54)
08/21 22:54:10.357: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwu.log' (../src/main.c:57)
08/21 22:54:10.360: [pfcp] INFO: pfcp_server() [127.0.0.6]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:10.360: [app] INFO: SGW-U initialize...done (../src/sgwu/app.c:31)
08/21 22:54:10.361: [gtp] INFO: gtp_server() [127.0.0.6]:2152 (../lib/gtp/path.c:32)
$ ./install/bin/open5gs-upfd
Open5GS daemon v1.3.0-213-gd190548+
08/21 22:54:21.596: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/upf.yaml' (../src/main.c:54)
08/21 22:54:21.596: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/upf.log' (../src/main.c:57)
08/21 22:54:21.601: [pfcp] INFO: pfcp_server() [127.0.0.7]:8805 (../lib/pfcp/path.c:32)
08/21 22:54:21.601: [app] INFO: UPF initialize...done (../src/upf/app.c:31)
08/21 22:54:21.601: [gtp] INFO: gtp_server() [127.0.0.7]:2152 (../lib/gtp/path.c:32)
08/21 22:54:21.601: [gtp] INFO: gtp_server() [::1]:2152 (../lib/gtp/path.c:32)
$ ./install/bin/open5gs-hssd
Open5GS daemon v1.3.0-213-gd190548+
08/21 22:57:17.450: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/hss.yaml' (../src/main.c:54)
08/21 22:57:17.450: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/hss.log' (../src/main.c:57)
08/21 22:57:17.451: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/21 22:57:17.519: [app] INFO: HSS initialize...done (../src/hss/app-init.c:31)
$ ./install/bin/open5gs-pcrfd
Open5GS daemon v1.3.0-213-gd190548+
08/21 22:57:45.894: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcrf.yaml' (../src/main.c:54)
08/21 22:57:45.894: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcrf.log' (../src/main.c:57)
08/21 22:57:45.896: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/21 22:57:45.997: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
$ ./install/bin/open5gs-nrfd
Open5GS daemon v1.3.0-213-gd190548+
08/21 22:56:35.472: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nrf.yaml' (../src/main.c:54)
08/21 22:56:35.472: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nrf.log' (../src/main.c:57)
08/21 22:56:35.472: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
08/21 22:56:35.473: [sbi] INFO: sbi_server() [127.0.0.10]:7777 (../lib/sbi/server.c:298)
08/21 22:56:35.473: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:298
$ ./install/bin/open5gs-ausfd
Open5GS daemon v1.3.0-213-gd190548+
08/21 22:55:41.899: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/ausf.yaml' (../src/main.c:54)
08/21 22:55:41.899: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/ausf.log' (../src/main.c:57)
08/21 22:55:41.900: [app] INFO: AUSF initialize...done (../src/ausf/app.c:31)
08/21 22:55:41.900: [sbi] INFO: sbi_server() [127.0.0.11]:7777 (../lib/sbi/server.c:298)
$ ./install/bin/open5gs-udmd
Open5GS daemon v1.3.0-213-gd190548+
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udm.yaml' (../src/main.c:54)
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udm.log' (../src/main.c:57)
08/21 22:56:02.155: [app] INFO: UDM initialize...done (../src/udm/app.c:31)
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
$ ./install/bin/open5gs-udrd
Open5GS daemon v1.3.0-213-gd190548+
08/21 22:56:15.810: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udr.yaml' (../src/main.c:54)
08/21 22:56:15.810: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udr.log' (../src/main.c:57)
08/21 22:56:15.813: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/21 22:56:15.813: [app] INFO: UDR initialize...done (../src/udr/app.c:31)
08/21 22:56:15.813: [sbi] INFO: sbi_server() [127.0.0.13]:7777 (../lib/sbi/server.c:298)
```
Several command line options are provided.
```bash
$ ./open5gs-mmed -h
Usage: ./open5gs-mmed [options]
$ ./install/bin/open5gs-amfd -h
Usage: ./install/bin/open5gs-amfd [options]
Options:
-c filename : set configuration file
-l filename : set logging file
@ -226,6 +366,18 @@ You can also copy the binaries to /usr/bin to be able to run them from anywhere
$ cp open5gs* /usr/bin/
```
For convenience, you can execute all NFs at once by using the following command.
```bash
$ cd build
$ cat configs/sample.yaml ## check the configuration
$ ./test/app/5gc ## 5G Core Only with sample.yaml
OR
$ ./test/app/epc -c ./config/srslte.yaml ## EPC Only with srslte.yaml
OR
$ ./test/app/app ## Both 5G Core and EPC with sample.yaml
```
### Building the WebUI of Open5GS
---
@ -327,38 +479,45 @@ Debugging tools can help you troubleshoot problems.
- [GDB](https://www.gnu.org/software/gdb/) can be used as below:
```bash
$ gdb ./open5gs-mmed
$ gdb ./open5gs-amfd
```
- On *Mac OS X*, you can use the [LLDB](https://lldb.llvm.org/).
```bash
$ lldb ./open5gs-mmed
$ lldb ./open5gs-amfd
```
You can use the command line option[`-d`] to record more logs.
```bash
Open5GS daemon v1.0.0
$ ./test/app/app -d
Open5GS daemon v1.3.0-213-gd190548+
08/21 23:01:54.246: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
08/21 23:01:54.246: [thread] DEBUG: [0x7f8de4d25018] worker signal (../lib/core/ogs-thread.c:66)
08/21 23:01:54.246: [thread] DEBUG: [0x7f8de4d25018] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0-213-gd190548+
08/21 23:01:54.254: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
08/21 23:01:54.254: [thread] DEBUG: [0x7ff8d13be818] worker signal (../lib/core/ogs-thread.c:66)
08/21 23:01:54.254: [nrf] DEBUG: nrf_state_initial(): INIT (../src/nrf/nrf-sm.c:25)
08/21 23:01:54.254: [nrf] DEBUG: nrf_state_operational(): ENTRY (../src/nrf/nrf-sm.c:50)
08/21 23:01:54.254: [thread] DEBUG: [0x7ff8d13be818] thread started (../lib/core/ogs-thread.c:101)
08/21 23:01:54.254: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
08/21 23:01:54.255: [sbi] INFO: sbi_server() [127.0.0.10]:7777 (../lib/sbi/server.c:298)
08/21 23:01:54.255: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:298)
08/21 23:01:54.296: [thread] DEBUG: [0x7f8de4d25098] worker signal (../lib/core/ogs-thread.c:66)
08/21 23:01:54.296: [thread] DEBUG: [0x7f8de4d25098] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0-213-gd190548+
08/21 23:01:54.315: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
08/21 23:01:54.319: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/21 23:01:54.332: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
08/21 23:01:54.347: [thread] DEBUG: [0x7f8de4d25118] worker signal (../lib/core/ogs-thread.c:66)
08/21 23:01:54.347: [thread] DEBUG: [0x7f8de4d25118] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0-213-gd190548+
...
10/27 15:50:45.170: [app] INFO: Configuration: '/Users/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../src/main.c:54)
10/27 15:50:45.171: [app] INFO: File Logging: '/Users/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../src/main.c:57)
10/27 15:50:45.171: [app] INFO: LOG-LEVEL: 'debug' (../src/main.c:60)
10/27 15:50:45.267: [thread] DEBUG: [0x10b52ed08] thread started (../lib/core/ogs-thread.c:101)
10/27 15:50:45.267: [thread] DEBUG: [0x10b52ed08] worker signal (../lib/core/ogs-thread.c:66)
10/27 15:50:45.268: [app] INFO: MME initialize...done (../src/mme/app-init.c:33)
10/27 15:50:45.268: [mme] DEBUG: mme_state_initial(): INIT
(../src/mme/mme-sm.c:38)
10/27 15:50:45.268: [mme] DEBUG: mme_state_operational(): ENTRY
(../src/mme/mme-sm.c:83)
10/27 15:50:45.269: [sock] DEBUG: socket create(2:2:17) (../lib/core/ogs-socket.c:92)
10/27 15:50:45.269: [sock] DEBUG: udp_socket() family:2 (../lib/core/ogs-udp.c:31)
10/27 15:50:45.269: [sock] DEBUG: socket bind 192.168.0.3:2123 (../lib/core/ogs-socket.c:117)
10/27 15:50:45.269: [sock] DEBUG: udp_server() [192.168.0.3]:2123 (../lib/core/ogs-udp.c:55)
10/27 15:50:45.269: [gtp] INFO: gtp_server() [192.168.0.3]:2123 (../lib/gtp/path.c:32)
10/27 15:50:45.269: [gtp] INFO: gtp_connect() [127.0.0.2]:2123 (../lib/gtp/path.c:57)
10/27 15:50:45.270: [sctp] DEBUG: Old INITMSG (numout:10 maxin:2048 maxattempt:8 maxinit_to:60000) (../lib/sctp/ogs-usrsctp.c:132)
10/27 15:50:45.271: [sctp] DEBUG: New INITMSG (numout:30 maxin:65535 maxattempt:4 maxinit_to:8000) (../lib/sctp/ogs-usrsctp.c:152)
10/27 15:50:45.271: [sctp] DEBUG: sctp_bind() [192.168.0.3]:36412 (../lib/sctp/ogs-usrsctp.c:261)
10/27 15:50:45.271: [mme] INFO: s1ap_server() [192.168.0.3]:36412 (../src/mme/s1ap-usrpath.c:46)
```

View File

@ -3,50 +3,47 @@ title: Open5GS Splitting Network Elements
head_inline: "<style> .blue { color: blue; } </style>"
---
In a production network network elements would typically not all be on the same machine, as is the default example that ships with Open5GS.
In a production network, NFs would typically not all be on the same machine, as is the default example that ships with Open5GS.
Open5GS is designed to be standards compliant, so in theory you can connect any core network element (MME, PGW, SGW, PCRF, HSS) from Open5GS or any other vendor to form a functioning network, so long as they are 3GPP compliant.
Open5GS is designed to be standards compliant, so in theory you can connect any core network function from Open5GS or any other vendor to form a functioning network, so long as they are 3GPP compliant.
To demonstrate this we will cover isolating each network element onto it's on machine and connect each network element to the other. For some interfaces specifying multiple interfaces is supported to allow connection to multiple
In these examples we'll be connecting Open5GS elements together, but it could just as easily be EPC elements from a different vendor in the place of any Open5GS network element.
In these examples we'll be connecting Open5GS NFs together, but it could just as easily be NFs from a different vendor in the place of any Open5GS network functions.
| Service | IP | Identity |
| ------------- |:-------------:|:-------------:|
| P-GW | 10.0.1.121 | pgw.localdomain |
| S-GW | 10.0.1.122 | |
| SMF | 10.0.1.121 | smf.localdomain |
| SGW-C | 10.0.1.122 | |
| PCRF | 10.0.1.123 | pcrf.localdomain |
| MME | 10.0.1.124 | mme.localdomain |
| HSS | 10.0.1.118 | hss.localdomain |
# External P-GW
In it's simplest from the P-GW has 3 interfaces:
* S5 - Connection to home network S-GW (GTP-C)
# External SMF
In it's simplest from the SMF has 3 interfaces:
* S5 - Connection to home network SGW-C (GTP-C)
* Gx - Connection to PCRF (Diameter)
* Sgi - Connection to external network (Generally the Internet via standard TCP/IP)
### S5 Interface Configuration
Edit ```/etc/open5gs/pgw.yaml``` and change the address to IP of the server running the P-GW for the listener on GTP-C and GTP-U interfaces.
Edit ```/etc/open5gs/smf.yaml``` and change the address to IP of the server running the SMF for the listener on GTP-C interfaces.
```
pgw:
freeDiameter: /etc/freeDiameter/pgw.conf
smf:
freeDiameter: /etc/freeDiameter/smf.conf
gtpc:
addr:
- 10.0.1.121
gtpu:
addr:
- 10.0.1.121
```
### Gx Interface Configuration
Edit ```/etc/freeDiameter/pgw.conf```
Edit ```/etc/freeDiameter/smf.conf```
Update ```ListenOn``` address to IP of the server running the P-GW:
Update ```ListenOn``` address to IP of the server running the SMF:
``` ListenOn = "10.0.1.121"; ```
@ -56,38 +53,37 @@ Update ConnectPeer to connect to the PCRF on it's IP.
### Restart Services
Restart Open5GS PGW Daemon:
Restart Open5GS SMF Daemon:
``` $ sudo systemctl restart open5gs-pgwd ```
``` $ sudo systemctl restart open5gs-smfd ```
# External S-GW
In it's simplest form the S-GW has 2 interfaces:
# External SGW-C
In it's simplest form the SGW-C has 2 interfaces:
* S11 - Connection to MME (GTP-C)
* S5 - Connection to the home network P-GW (GTP-C)
* S5 - Connection to the home network SMF (GTP-C)
### S5 Interface Configuration
Edit ```/etc/open5gs/sgw.yaml``` and change the address to IP of the server running the S-GW for the listener on GTP-C interface.
Edit ```/etc/open5gs/sgwc.yaml``` and change the address to IP of the server running the SGW-C for the listener on GTP-C interface.
```
sgw:
freeDiameter: /etc/freeDiameter/pgw.conf
sgwc:
gtpc:
addr:
- 10.0.1.122
```
Restart Open5GS SGW Daemon:
Restart Open5GS SGW-C Daemon:
``` $ sudo systemctl restart open5gs-sgwd ```
``` $ sudo systemctl restart open5gs-sgwcd ```
# External PCRF
In it's simplest from the PCRF has 1 network interface:
* Gx - Connection to P-GW (Diameter)
* Gx - Connection to SMF (Diameter)
### Gx Interface Configuration
Edit ```/etc/freeDiameter/hss.conf```
Edit ```/etc/freeDiameter/pcrf.conf```
Update ```ListenOn``` address to IP of the server running the HSS on it's IP:
@ -95,10 +91,10 @@ Update ```ListenOn``` address to IP of the server running the HSS on it's IP:
Update ConnectPeer to connect to the MME.
```ConnectPeer = "pgw.localdomain" { ConnectTo = "10.0.1.121"; No_TLS; };```
```ConnectPeer = "smf.localdomain" { ConnectTo = "10.0.1.121"; No_TLS; };```
### MongoDB Interface Configuration (Open5GS HSS only)
Edit ```/etc/freeDiameter/hss.conf``` and change the ```db_uri:``` to point at the HSS: ```db_uri: mongodb://10.0.1.118/open5gs```
### MongoDB Interface Configuration
Edit the ```db_uri:``` to point at the Open5GS: ```db_uri: mongodb://10.0.1.118/open5gs```
Restart Open5GS PCRF Daemon:
@ -135,16 +131,16 @@ Restart MongoDB for changes to take effect.
In it's simplest form the MME has 3 interfaces:
* S1AP - Connections from eNodeBs
* S6a - Connection to HSS (Diameter)
* S11 - Connection to S-GW (GTP-C)
* S11 - Connection to SGW-C (GTP-C)
### S11 Interface Configuration
Edit ```/etc/open5gs/mme.yaml``` and filling the IP address of the S-GW and P-GW servers.
Edit ```/etc/open5gs/mme.yaml``` and filling the IP address of the SGW-C and SMF servers.
```
sgw:
sgwc:
gtpc:
addr: 10.0.1.122
pgw:
smf:
gtpc:
addr:
- 10.0.1.121

View File

@ -1,426 +0,0 @@
---
title: Installing 5G Core from Sources
head_inline: "<style> .blue { color: blue; } </style>"
---
This post explains how to compile and install the source code on **Debian/Ubuntu** based Linux Distribution.
{: .blue}
### Getting MongoDB
---
Install MongoDB with package manager. It is used as database for the UDR.
```bash
$ sudo apt update
$ sudo apt install mongodb
$ sudo systemctl start mongodb (if '/usr/bin/mongod' is not running)
$ sudo systemctl enable mongodb (ensure to automatically start it on system boot)
```
### Setting up TUN device (not persistent after rebooting)
---
Create the TUN device with the interface name `ogstun`.
```bash
$ sudo ip tuntap add name ogstun mode tun
$ sudo ip addr add 10.45.0.1/16 dev ogstun
$ sudo ip addr add cafe::1/64 dev ogstun
$ sudo ip link set ogstun up
```
**Tip:** The script provided in [$GIT_REPO/misc/netconf.sh](https://github.com/{{ site.github_username }}/open5gs/blob/master/misc/netconf.sh) makes it easy to configure the TUN device as follows:
`$ sudo ./misc/netconf.sh`
{: .notice--info}
### Building Open5GS
---
Install the dependencies for building the source code.
```bash
$ sudo apt install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison git libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libmicrohttpd-dev libcurl4-gnutls-dev meson
```
Git clone.
```bash
$ git clone https://github.com/{{ site.github_username }}/open5gs
```
To compile with meson:
```bash
$ cd open5gs
$ meson build --prefix=`pwd`/install
$ ninja -C build
```
Check whether the compilation is correct in your environment.
```bash
$ cd build
$ ./tests/registration/registration
```
**Tip:** You can also check the result of `./test/registration/registration` with a tool that captures packets. If you are running `wireshark`, select the `any` interface and set FILTER to `ngap || http || pfcp || gtp`.
{: .notice--info}
You need to perform the **installation process**.
```bash
$ cd build
$ ninja install
$ cd ../
```
### Configure Open5GS
---
Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 192.168.0.100 for the NGAP connection of AMF to the gNB
```diff
diff -u amf.yaml.old amf.yaml
--- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400
+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400
@@ -67,25 +67,25 @@
- addr: 127.0.0.2
port: 7777
ngap:
+ - addr: 192.168.0.100
guami:
- plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
amf_id:
region: 2
set: 1
tai:
- plmn_id:
- mcc: 001
- mnc: 01
- tac: 1
+ mcc: 901
+ mnc: 70
+ tac: 7
plmn:
- plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
s_nssai:
- sst: 1
- - sd: 2
security:
integrity_order : [ NIA1, NIA2, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
```
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/upf.yaml.in) to set the GTP-U IP address.
```diff
diff -u upf.yaml.old upf.yaml
--- upf.yaml.old 2020-06-21 23:35:54.378631781 -0400
+++ upf.yaml 2020-06-21 23:36:02.978245251 -0400
@@ -61,6 +61,7 @@
pfcp:
- addr: 127.0.0.4
gtpu:
+ - addr: 192.168.0.100
pdn:
```
If you modify the config files while Open5GS daemons are running, please restart them
### Running Open5GS
---
Specify the absolute path to the sharead library as follows.
```bash
$ echo $(cd $(dirname ./install/lib/x86_64-linux-gnu/) && pwd -P)/$(basename ./install/lib/x86_64-linux-gnu/)
/home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu
$ export LD_LIBRARY_PATH=/home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu
$ ldd ./install/bin/open5gs-amfd
...
libogsapp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogsapp.so.1 (0x00007f161ab51000)
libogscore.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogscore.so.1 (0x00007f161a922000)
libogssctp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogssctp.so.1 (0x00007f161a71d000)
libogss1ap.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogss1ap.so.1 (0x00007f161a519000)
...
```
If you want to set the shared library path permanently, you can use ldconfig.
```bash
$ sudo sh -c "echo /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu > /etc/ld.so.conf.d/open5gs.conf"
$ sudo ldconfig
```
Now let's get started.
```bash
$ cd install/bin/
$ ./install/bin/open5gs-nrfd
Open5GS daemon v1.3.0
06/21 23:37:46.749: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nrf.yaml' (../src/main.c:54)
06/21 23:37:46.749: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nrf.log' (../src/main.c:57)
06/21 23:37:46.749: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
06/21 23:37:46.749: [sbi] INFO: sbi_server() [127.0.0.1]:7777 (../lib/sbi/server.c:291)
06/21 23:37:46.749: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:291
$ ./install/bin/open5gs-amfd
Open5GS daemon v1.3.0
06/21 23:38:15.834: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/amf.yaml' (../src/main.c:54)
06/21 23:38:15.834: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log' (../src/main.c:57)
06/21 23:38:15.876: [app] INFO: AMF initialize...done (../src/amf/app.c:33)
06/21 23:38:15.876: [sbi] INFO: sbi_server() [127.0.0.2]:7777 (../lib/sbi/server.c:291)
06/21 23:38:15.877: [amf] INFO: ngap_server() [192.168.0.11]:38412 (../src/amf/ngap-sctp.c:56)
06/21 23:38:15.877: [amf] INFO: ngap_server() [172.19.0.1]:38412 (../src/amf/ngap-sctp.c:56)
06/21 23:38:15.877: [amf] INFO: ngap_server() [172.17.0.1]:38412 (../src/amf/ngap-sctp.c:56)
06/21 23:38:15.877: [amf] INFO: ngap_server() [2601:144:4100:a220:ee:f149:8f28:9572]:38412 (../src/amf/ngap-sctp.c:56)
06/21 23:38:15.877: [amf] INFO: ngap_server() [2601:144:4100:a220:c643:4b3a:b0ee:c446]:38412 (../src/amf/ngap-sctp.c:56)
06/21 23:38:15.877: [amf] INFO: [ce785804-b439-41ea-9c93-399fce5a75a5] NF registered (../src/amf/nf-sm.c:209)
$ ./install/bin/open5gs-smfd
Open5GS daemon v1.3.0
06/21 23:38:35.313: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/smf.yaml' (../src/main.c:54)
06/21 23:38:35.313: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/smf.log' (../src/main.c:57)
06/21 23:38:35.350: [gtp] INFO: gtp_server() [127.0.0.3]:2123 (../lib/gtp/path.c:32)
06/21 23:38:35.350: [gtp] INFO: gtp_server() [::1]:2123 (../lib/gtp/path.c:32)
06/21 23:38:35.350: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
06/21 23:38:35.350: [pfcp] INFO: pfcp_server() [127.0.0.3]:8805 (../lib/pfcp/path.c:32)
06/21 23:38:35.350: [pfcp] INFO: pfcp_server() [::1]:8805 (../lib/pfcp/path.c:32)
06/21 23:38:35.350: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.4]:8805 (../lib/pfcp/path.c:60)
06/21 23:38:35.351: [sbi] INFO: sbi_server() [127.0.0.3]:7777 (../lib/sbi/server.c:291)
06/21 23:38:35.352: [smf] INFO: [da15f3e2-b439-41ea-bd58-c3fe61467c94] NF registered (../src/smf/nf-sm.c:210)
$ ./install/bin/open5gs-upfd
Open5GS daemon v1.3.0
06/21 23:38:52.832: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/upf.yaml' (../src/main.c:54)
06/21 23:38:52.832: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/upf.log' (../src/main.c:57)
06/21 23:38:52.844: [app] INFO: UPF initialize...done (../src/upf/app.c:31)
06/21 23:38:52.844: [pfcp] INFO: pfcp_server() [127.0.0.4]:8805 (../lib/pfcp/path.c:32)
06/21 23:38:52.844: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.3]:8805 (../lib/pfcp/path.c:60)
06/21 23:38:52.846: [gtp] INFO: gtp_server() [192.168.0.11]:2152 (../lib/gtp/path.c:32)
06/21 23:38:52.846: [gtp] INFO: gtp_server() [172.19.0.1]:2152 (../lib/gtp/path.c:32)
06/21 23:38:52.846: [gtp] INFO: gtp_server() [172.17.0.1]:2152 (../lib/gtp/path.c:32)
06/21 23:38:52.846: [gtp] INFO: gtp_server() [2601:144:4100:a220:ee:f149:8f28:9572]:2152 (../lib/gtp/path.c:32)
06/21 23:38:52.846: [gtp] INFO: gtp_server() [2601:144:4100:a220:c643:4b3a:b0ee:c446]:2152 (../lib/gtp/path.c:32)
06/21 23:38:52.848: [upf] INFO: PFCP associated (../src/upf/pfcp-sm.c:171)
06/21 23:38:53.358: [upf] WARNING: PFCP[REQ] has already been associated (../src/upf/pfcp-sm.c:201)
$ ./install/bin/open5gs-ausfd
Open5GS daemon v1.3.0
06/21 23:39:11.641: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/ausf.yaml' (../src/main.c:54)
06/21 23:39:11.641: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/ausf.log' (../src/main.c:57)
06/21 23:39:11.641: [app] INFO: AUSF initialize...done (../src/ausf/app.c:31)
06/21 23:39:11.642: [sbi] INFO: sbi_server() [127.0.0.5]:7777 (../lib/sbi/server.c:291)
06/21 23:39:11.643: [ausf] INFO: [efbbbe5c-b439-41ea-b95c-039d7a609671] NF registered (../src/ausf/nf-sm.c:209)
$ ./install/bin/open5gs-udmd
Open5GS daemon v1.3.0
06/21 23:39:28.792: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udm.yaml' (../src/main.c:54)
06/21 23:39:28.792: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udm.log' (../src/main.c:57)
06/21 23:39:28.792: [app] INFO: UDM initialize...done (../src/udm/app.c:31)
06/21 23:39:28.793: [sbi] INFO: sbi_server() [127.0.0.6]:7777 (../lib/sbi/server.c:291)
06/21 23:39:29.390: [udm] INFO: [f9f4ce22-b439-41ea-bf29-c309f36c787f] NF registered (../src/udm/nf-sm.c:209)
$ ./install/bin/open5gs-udrd
Open5GS daemon v1.3.0
06/21 23:39:41.763: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udr.yaml' (../src/main.c:54)
06/21 23:39:41.763: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udr.log' (../src/main.c:57)
06/21 23:39:41.765: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
06/21 23:39:41.765: [app] INFO: UDR initialize...done (../src/udr/app.c:31)
06/21 23:39:41.765: [sbi] INFO: sbi_server() [127.0.0.7]:7777 (../lib/sbi/server.c:291)
06/21 23:39:41.767: [udr] INFO: [01b0191e-b43a-41ea-9abb-df3b42196e0a] NF registered (../src/udr/nf-sm.c:209)
```
Several command line options are provided.
```bash
$ ./install/bin/open5gs-amfd -h
Usage: ./install/bin/open5gs-amfd [options]
Options:
-c filename : set configuration file
-l filename : set logging file
-e level : set global log-level (default:info)
-m domain : set log-domain (e.g. mme:sgw:gtp)
-d : print lots of debugging information
-t : print tracing information for developer
-D : start as a daemon
-v : show version number and exit
-h : show this message and exit
```
You can also copy the binaries to /usr/bin to be able to run them from anywhere on the system.
```bash
$ cp open5gs* /usr/bin/
```
For convenience, you can execute all NFs at once by using the following command.
```bash
$ cd build
$ vi configs/5gc.yaml ## check the configuration
$ ./test/app/5gc ## run all NFs
```
### Building the WebUI of Open5GS
---
[Node.js](https://nodejs.org/) is required to build WebUI of Open5GS
```bash
$ sudo apt install curl
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install nodejs
```
Install the dependencies to run WebUI
```bash
$ cd webui
$ npm install
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.
```bash
$ npm run dev
```
### Register Subscriber Information
---
Connect to `http://localhost:3000` and login with **admin** account.
> Username : admin
> Password : 1423
**Note:**
You can change the password in _Account_ Menu.
{: .notice--info}
To add subscriber information, you can do WebUI operations in the following order:
1. Go to `Subscriber` Menu.
2. Click `+` Button to add a new subscriber.
3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
4. Click `SAVE` Button
**Tip:** This addition immediately affects Open5GS without restarting any daemon.
{: .notice--warning}
### IP routing + NAT for UE internet connectivity
---
To allow your phones to connect to the internet, you must run the following command on the host running Open5GS-PGW:
```bash
### Check IP Table 'forward'
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
### Check IP Table 'nat'
$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
### Enable IPv4 Forwarding
$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
### Add NAT Rule
$ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
```
**Note:** The above assumes you do not have any existing rules in the filter and nat tables. If a program such as docker has already set up rules, you may need to add the Open5GS related rules differently.
{: .notice--danger}
### Turn on your gNB and Phone
---
- You can view the log at `$INSTALL_PREFIX/var/log/open5gs/*.log`.
### Troubleshooting
---
If you run into any problems, please post the github issue. Providing packets using wireshark can help a lot.
{: .blue}
To fix the problem yourself, debugging tools can help you troubleshoot problems.
- [GDB](https://www.gnu.org/software/gdb/) can be used as below:
```bash
$ gdb ./open5gs-amfd
```
- On *Mac OS X*, you can use the [LLDB](https://lldb.llvm.org/).
```bash
$ lldb ./open5gs-amfd
```
You can use the command line option[`-d`] to record more logs.
```bash
$ ./test/app/5gc -d
Open5GS daemon v1.3.0
06/21 23:44:54.500: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/5gc.yaml' (../src/main.c:54)
06/21 23:44:54.500: [thread] DEBUG: [0x7f3342a7d018] worker signal (../lib/core/ogs-thread.c:66)
06/21 23:44:54.500: [thread] DEBUG: [0x7f3342a7d018] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0
06/21 23:44:54.508: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/5gc.yaml' (../src/main.c:54)
06/21 23:44:54.508: [thread] DEBUG: [0x7f31d3620818] worker signal (../lib/core/ogs-thread.c:66)
06/21 23:44:54.508: [nrf] DEBUG: nrf_state_initial(): INIT (../src/nrf/nrf-sm.c:25)
06/21 23:44:54.508: [nrf] DEBUG: nrf_state_operational(): ENTRY (../src/nrf/nrf-sm.c:50)
06/21 23:44:54.508: [thread] DEBUG: [0x7f31d3620818] thread started (../lib/core/ogs-thread.c:101)
06/21 23:44:54.508: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
06/21 23:44:54.509: [sbi] INFO: sbi_server() [127.0.0.1]:7777 (../lib/sbi/server.c:291)
06/21 23:44:54.509: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:291)
06/21 23:44:54.551: [thread] DEBUG: [0x7f3342a7d098] worker signal (../lib/core/ogs-thread.c:66)
06/21 23:44:54.551: [thread] DEBUG: [0x7f3342a7d098] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0
06/21 23:44:54.575: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/5gc.yaml' (../src/main.c:54)
06/21 23:44:54.601: [thread] DEBUG: [0x7f3342a7d118] worker signal (../lib/core/ogs-thread.c:66)
06/21 23:44:54.601: [thread] DEBUG: [0x7f3342a7d118] thread started (../lib/core/ogs-thread.c:101)
Open5GS daemon v1.3.0
06/21 23:44:54.607: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/5gc.yaml' (../src/main.c:54)
06/21 23:44:54.608: [thread] DEBUG: [0x7f996e1b2918] worker signal (../lib/core/ogs-thread.c:66)
06/21 23:44:54.608: [ausf] DEBUG: ausf_state_initial(): INIT (../src/ausf/ausf-sm.c:25)
```

View File

@ -1,407 +0,0 @@
---
title: Moving 4G EPC to the CUPS
head_inline: "<style> .blue { color: blue; } </style>"
---
This post explains how to compile and install the source code on **Debian/Ubuntu** based Linux Distribution.
{: .blue}
### Getting MongoDB
---
Install MongoDB with package manager. It is used as database for the HSS and PCRF.
```bash
$ sudo apt update
$ sudo apt install mongodb
$ sudo systemctl start mongodb (if '/usr/bin/mongod' is not running)
$ sudo systemctl enable mongodb (ensure to automatically start it on system boot)
```
### Setting up TUN device (not persistent after rebooting)
---
Create the TUN device with the interface name `ogstun`.
```bash
$ sudo ip tuntap add name ogstun mode tun
$ sudo ip addr add 10.45.0.1/16 dev ogstun
$ sudo ip addr add cafe::1/64 dev ogstun
$ sudo ip link set ogstun up
```
**Tip:** The script provided in [$GIT_REPO/misc/netconf.sh](https://github.com/{{ site.github_username }}/open5gs/blob/master/misc/netconf.sh) makes it easy to configure the TUN device as follows:
`$ sudo ./misc/netconf.sh`
{: .notice--info}
### Building Open5GS
---
Install the dependencies for building the source code.
```bash
$ sudo apt install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison git libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libmicrohttpd-dev libcurl4-gnutls-dev meson
```
Git clone.
```bash
$ git clone https://github.com/{{ site.github_username }}/open5gs
```
To compile with meson:
```bash
$ cd open5gs
$ meson build --prefix=`pwd`/install
$ ninja -C build
```
Check whether the compilation is correct.
```bash
$ meson test
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || diameter || pfcp || gtp`. You can see the virtually created packets. [[testcups.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testcups.pcapng)
{: .notice--info}
You need to perform the **installation process**.
```bash
$ cd build
$ ninja install
$ cd ../
```
### Configure Open5GS
---
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 192.168.0.100 for the S1AP/GTP-U connection of MME/SGW-U to the eNB
```diff
diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2018-04-15 18:28:31.000000000 +0900
+++ mme.yaml 2018-04-15 19:53:10.000000000 +0900
@@ -204,20 +204,20 @@ logger:
mme:
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
- addr: 127.0.0.1
+ addr: 192.168.0.100
gtpc:
addr: 127.0.0.1
gummei:
plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 001
- mnc: 01
- tac: 1
+ mcc: 901
+ mnc: 70
+ tac: 7
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgwu.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -51,7 +51,7 @@ logger:
#
sgwu:
gtpu:
- addr: 127.0.0.7
+ addr: 192.168.0.100
pfcp:
addr: 127.0.0.7
```
If you modify the config files while Open5GS daemons are running, please restart them
### Running Open5GS
---
Specify the absolute path to the sharead library as follows.
```bash
$ echo $(cd $(dirname ./install/lib/x86_64-linux-gnu/) && pwd -P)/$(basename ./install/lib/x86_64-linux-gnu/)
/home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu
$ export LD_LIBRARY_PATH=/home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu
$ ldd ./install/bin/open5gs-mmed
...
libogsapp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogsapp.so.1 (0x00007f161ab51000)
libogscore.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogscore.so.1 (0x00007f161a922000)
libogssctp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogssctp.so.1 (0x00007f161a71d000)
libogss1ap.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogss1ap.so.1 (0x00007f161a519000)
...
```
If you want to set the shared library path permanently, you can use ldconfig.
```bash
$ sudo sh -c "echo /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu > /etc/ld.so.conf.d/open5gs.conf"
$ sudo ldconfig
```
Now let's get started.
```bash
$ ./install/bin/open5gs-nrfd
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:34:39.277: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nrf.yaml' (../src/main.c:54)
08/12 19:34:39.277: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nrf.log' (../src/main.c:57)
08/12 19:34:39.278: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
08/12 19:34:39.278: [sbi] INFO: sbi_server() [127.0.0.1]:7777 (../lib/sbi/server.c:298)
08/12 19:34:39.278: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:298
$ ./install/bin/open5gs-mmed
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:35:00.505: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../src/main.c:54)
08/12 19:35:00.506: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../src/main.c:57)
08/12 19:35:00.560: [gtp] INFO: gtp_server() [127.0.0.1]:2123 (../lib/gtp/path.c:32)
08/12 19:35:00.560: [app] INFO: MME initialize...done (../src/mme/app-init.c:33)
08/12 19:35:00.560: [gtp] INFO: gtp_connect() [127.0.0.6]:2123 (../lib/gtp/path.c:59)
08/12 19:35:00.560: [mme] INFO: s1ap_server() [127.0.0.1]:36412 (../src/mme/s1ap-sctp.c:57)
$ ./install/bin/open5gs-sgwcd
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:35:15.866: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwc.yaml' (../src/main.c:54)
08/12 19:35:15.866: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwc.log' (../src/main.c:57)
08/12 19:35:15.872: [app] INFO: SGW-C initialize...done (../src/sgwc/app.c:31)
08/12 19:35:15.873: [gtp] INFO: gtp_server() [127.0.0.6]:2123 (../lib/gtp/path.c:32)
08/12 19:35:15.873: [pfcp] INFO: pfcp_server() [127.0.0.6]:8805 (../lib/pfcp/path.c:32)
08/12 19:35:15.873: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.7]:8805 (../lib/pfcp/path.c:60)
$ ./install/bin/open5gs-sgwud
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:35:37.768: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwu.yaml' (../src/main.c:54)
08/12 19:35:37.768: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwc.log' (../src/main.c:57)
08/12 19:35:37.771: [pfcp] INFO: pfcp_server() [127.0.0.7]:8805 (../lib/pfcp/path.c:32)
08/12 19:35:37.771: [app] INFO: SGW-U initialize...done (../src/sgwu/app.c:31)
08/12 19:35:37.773: [gtp] INFO: gtp_server() [127.0.0.7]:2152 (../lib/gtp/path.c:32)
$ ./install/bin/open5gs-smfd
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:35:50.948: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/smf.yaml' (../src/main.c:54)
08/12 19:35:50.948: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/smf.log' (../src/main.c:57)
08/12 19:35:50.999: [gtp] INFO: gtp_server() [127.0.0.3]:2123 (../lib/gtp/path.c:32)
08/12 19:35:50.999: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
08/12 19:35:50.999: [gtp] INFO: gtp_server() [::1]:2123 (../lib/gtp/path.c:32)
08/12 19:35:50.999: [pfcp] INFO: pfcp_server() [127.0.0.3]:8805 (../lib/pfcp/path.c:32)
08/12 19:35:50.999: [pfcp] INFO: pfcp_server() [::1]:8805 (../lib/pfcp/path.c:32)
08/12 19:35:50.999: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.4]:8805 (../lib/pfcp/path.c:60)
08/12 19:35:50.999: [sbi] INFO: sbi_server() [127.0.0.3]:7777 (../lib/sbi/server.c:298)
$ ./install/bin/open5gs-upfd
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:36:03.980: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/upf.yaml' (../src/main.c:54)
08/12 19:36:03.981: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/upf.log' (../src/main.c:57)
08/12 19:36:03.984: [pfcp] INFO: pfcp_server() [127.0.0.4]:8805 (../lib/pfcp/path.c:32)
08/12 19:36:03.984: [app] INFO: UPF initialize...done (../src/upf/app.c:31)
08/12 19:36:03.984: [gtp] INFO: gtp_server() [127.0.0.4]:2152 (../lib/gtp/path.c:32)
08/12 19:36:03.984: [gtp] INFO: gtp_server() [::1]:2152 (../lib/gtp/path.c:32)
$ ./install/bin/open5gs-hssd
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:36:15.670: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/hss.yaml' (../src/main.c:54)
08/12 19:36:15.670: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/hss.log' (../src/main.c:57)
08/12 19:36:15.671: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/12 19:36:15.693: [app] INFO: HSS initialize...done (../src/hss/app-init.c:31)
$ ./install/bin/open5gs-pcrfd
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:36:30.356: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcrf.yaml' (../src/main.c:54)
08/12 19:36:30.356: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcrf.log' (../src/main.c:57)
08/12 19:36:30.358: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
08/12 19:36:30.387: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
```
Several command line options are provided.
```bash
$ ./install/bin/open5gs-mmed -h
Usage: ./install/bin/open5gs-mmed [options]
Options:
-c filename : set configuration file
-l filename : set logging file
-e level : set global log-level (default:info)
-m domain : set log-domain (e.g. mme:sgw:gtp)
-d : print lots of debugging information
-t : print tracing information for developer
-D : start as a daemon
-v : show version number and exit
-h : show this message and exit
```
You can also copy the binaries to /usr/bin to be able to run them from anywhere on the system.
```bash
$ cp open5gs* /usr/bin/
```
For convenience, you can execute all network elements at once by using the following command.
```bash
$ cd build
$ vi configs/app.yaml ## check the configuration
$ ./test/app/app ## run all network elements
```
### Building the WebUI of Open5GS
---
[Node.js](https://nodejs.org/) is required to build WebUI of Open5GS
```bash
$ sudo apt install curl
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt install nodejs
```
Install the dependencies to run WebUI
```bash
$ cd webui
$ npm install
```
The WebUI runs as an [npm](https://www.npmjs.com/) script.
```bash
$ npm run dev
```
### Register Subscriber Information
---
Connect to `http://localhost:3000` and login with **admin** account.
> Username : admin
> Password : 1423
**Note:**
You can change the password in _Account_ Menu.
{: .notice--info}
To add subscriber information, you can do WebUI operations in the following order:
1. Go to `Subscriber` Menu.
2. Click `+` Button to add a new subscriber.
3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
4. Click `SAVE` Button
**Tip:** This addition immediately affects Open5GS without restarting any daemon.
{: .notice--warning}
### IP routing + NAT for UE internet connectivity
---
To allow your phones to connect to the internet, you must run the following command on the host running Open5GS-PGW:
```bash
### Check IP Table 'forward'
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
### Check IP Table 'nat'
$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
### Enable IPv4 Forwarding
$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
### Add NAT Rule
$ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
```
**Note:** The above assumes you do not have any existing rules in the filter and nat tables. If a program such as docker has already set up rules, you may need to add the Open5GS related rules differently.
{: .notice--danger}
### Turn on your eNodeB and Phone
---
- You can see actual traffic through wireshark -- [[srsenb.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/srsenb.pcapng).
- You can view the log at `$INSTALL_PREFIX/var/log/open5gs/*.log`.
### Troubleshooting
---
Debugging tools can help you troubleshoot problems.
- [GDB](https://www.gnu.org/software/gdb/) can be used as below:
```bash
$ gdb ./open5gs-mmed
```
- On *Mac OS X*, you can use the [LLDB](https://lldb.llvm.org/).
```bash
$ lldb ./open5gs-mmed
```
You can use the command line option[`-d`] to record more logs.
```bash
$ ./install/bin/open5gs-mmed -d
Open5GS daemon v1.3.0-194-gc674984+
08/12 19:38:40.968: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../src/main.c:54)
08/12 19:38:40.968: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../src/main.c:57)
08/12 19:38:40.968: [app] INFO: LOG-LEVEL: 'debug' (../src/main.c:60)
08/12 19:38:41.076: [thread] DEBUG: [0x7ff5d26adb18] worker signal (../lib/core/ogs-thread.c:66)
08/12 19:38:41.076: [mme] DEBUG: mme_state_initial(): INIT
(../src/mme/mme-sm.c:82)
08/12 19:38:41.076: [thread] DEBUG: [0x7ff5d26adb18] thread started (../lib/core/ogs-thread.c:101)
08/12 19:38:41.076: [mme] DEBUG: mme_state_operational(): ENTRY
(../src/mme/mme-sm.c:128)
08/12 19:38:41.076: [app] INFO: MME initialize...done (../src/mme/app-init.c:33)
08/12 19:38:41.076: [sock] DEBUG: socket create(2:2:17) (../lib/core/ogs-socket.c:92)
08/12 19:38:41.076: [sock] DEBUG: udp_socket() family:2 (../lib/core/ogs-udp.c:31)
08/12 19:38:41.076: [sock] DEBUG: socket bind 127.0.0.1:2123 (../lib/core/ogs-socket.c:117)
08/12 19:38:41.076: [sock] DEBUG: udp_server() [127.0.0.1]:2123 (../lib/core/ogs-udp.c:55)
08/12 19:38:41.076: [gtp] INFO: gtp_server() [127.0.0.1]:2123 (../lib/gtp/path.c:32)
08/12 19:38:41.076: [gtp] INFO: gtp_connect() [127.0.0.6]:2123 (../lib/gtp/path.c:59)
08/12 19:38:41.076: [sock] DEBUG: socket create(2:1:132) (../lib/core/ogs-socket.c:92)
08/12 19:38:41.076: [sock] DEBUG: socket bind 127.0.0.1:36412 (../lib/core/ogs-socket.c:117)
08/12 19:38:41.076: [sock] DEBUG: sctp_server() [127.0.0.1]:36412 (../lib/sctp/ogs-lksctp.c:100)
08/12 19:38:41.076: [mme] INFO: s1ap_server() [127.0.0.1]:36412 (../src/mme/s1ap-sctp.c:57)
```

View File

@ -107,11 +107,18 @@ switched to db open5gs
Kill all processes.
```bash
$ ps -ef | grep open5gs
$ sudo pkill -9 open5gs-mmed
$ sudo pkill -9 open5gs-sgwcd
$ sudo pkill -9 open5gs-smfd
$ sudo pkill -9 open5gs-amfd
$ sudo pkill -9 open5gs-sgwud
$ sudo pkill -9 open5gs-upfd
$ sudo pkill -9 open5gs-hssd
$ sudo pkill -9 open5gs-pcrfd
$ sudo pkill -9 open5gs-pgwd
$ sudo pkill -9 open5gs-sgwd
$ sudo pkill -9 open5gs-mmed
$ sudo pkill -9 open5gs-nrfd
$ sudo pkill -9 open5gs-ausfd
$ sudo pkill -9 open5gs-udmd
$ sudo pkill -9 open5gs-udrd
```
Run `meson test` again
@ -385,9 +392,9 @@ You can start MongoDB using systemctl.
$ sudo systemctl start mongodb
```
#### I have some error when running `./build/test/epc/simple`
#### I have some error when running `./build/test/attach/attach`
Did you see the following error after executing `./build/test/epc/simple`?
Did you see the following error after executing `./build/test/attach/attach`?
```bash
$ ./build/test/epc/simple
s1setup_test : SUCCESS
@ -420,18 +427,18 @@ Execute `./build/test/epc/simple`
$ ./build/test/epc/simple
```
#### My eNB does not support IPv6.
#### My gNB/eNB does not support IPv6.
Your eNodeB don't have to support IPv6.
If the sgw.gtpu configuration does not have an IPv6 address, the eNodeB can use IPv4 to connect to the MME and SGW. If the sgw.gtpu setting has an IPv6 address, you can disable the IPv6 address as shown below.
If the sgwu.gtpu configuration does not have an IPv6 address, the gNB/eNB can use IPv4 to connect to the MME and SGW-U. If the sgwu.gtpu setting has an IPv6 address, you can disable the IPv6 address as shown below.
```yaml
parameter:
no_ipv6: true
```
**Note:** This parameter `no_ipv6` is only applied to EPC Elements such as MME, SGW, and so on. The parameter `no_ipv6` does not affect to UE. So, IPv6-enabled UE can connect to Open5GS LTE network.
**Note:** This parameter `no_ipv6` is only applied to NFs such as AMF, MME, SGW-C, and so on. The parameter `no_ipv6` does not affect to UE. So, IPv6-enabled UE can connect to Open5GS LTE network.
{: .notice--warning}
#### Unable to add new user by WebUI
@ -470,45 +477,55 @@ Currently, the number of UE is limited to `128*128`.
- Network
```
* MME
S1AP: listen on all address avaiable in system
GTP-C: listen on the first IP address in system
DIAMETER: 127.0.0.2 (No TLS)
* MongoDB : 127.0.0.1
* MME : 127.0.0.2
* SGW-C : 127.0.0.3
* SMF : 127.0.0.4
* AMF : 127.0.0.5
* SGW-U : 127.0.0.6
* UPF : 127.0.0.7
* HSS : 127.0.0.8
* PCRF : 127.0.0.9
* NRF : 127.0.0.10
* AUSF : 127.0.0.11
* UDM : 127.0.0.12
* UDR : 127.0.0.13
```
* SGW
GTP-C: 127.0.0.2
GTP-U: listen on the first IP address in system
- AMF_ID, TAC and S_NSSAI
* PGW
GTP-C: Both 127.0.0.3 and [::1]
GTP-U: Both 127.0.0.3 and [::1]
DIAMETER: 127.0.0.3 (No TLS)
```
* AMF_ID
PLMN ID - MNC: 901, MCC: 70
Region : 2
Set : 1
* HSS
DIAMETER: 127.0.0.4 (No TLS)
* TAI
PLMN ID - MNC: 901, MCC: 70
TAC : 1
* PCRF
DIAMETER: 127.0.0.5 (No TLS)
* S_NSSASI
SST : 1
```
- GUMMEI, PLMN and TAC
```
* GUMMEI
PLMN ID - MNC: 001, MCC: 01
PLMN ID - MNC: 901, MCC: 70
MME Group : 2
MME Code : 1
* TAI
PLMN ID - MNC: 001, MCC: 01
TAC : 12345
PLMN ID - MNC: 901, MCC: 70
TAC : 1
```
- Security
```
* Integrity : EIA1 - Snow 3G
* Ciphering : EEA0 - Nothing
* Integrity : NIA1/EIA1 - Snow 3G
* Ciphering : NEA0/EEA0 - Nothing
```
- UE Network
@ -547,7 +564,7 @@ By default, Open5GS is designed to support the Embedding System. To do so, we in
- We'll use Debian Docker Environment.
```bash
$ git clone https://github.com/acetcom/open5gs
$ git clone https://github.com/open5gs/open5gs
$ cd open5gs/docker
$ DIST=debian TAG=stretch docker-compose run dev
```

View File

@ -222,68 +222,73 @@ Then proceed as follows:
3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
4. Click `SAVE` Button
Modify [/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP/GTP-C IP address, PLMN ID, and TAC
Modify [/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC
```diff
diff -u mme.yaml.old mme.yaml
diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2018-04-15 18:28:31.000000000 +0900
+++ mme.yaml 2018-04-15 19:53:10.000000000 +0900
@@ -14,18 +14,20 @@
@@ -204,20 +204,20 @@ logger:
mme:
freeDiameter: mme.conf
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
- addr: 127.0.0.2
+ addr: 127.0.1.100
gtpc:
+ addr: 127.0.1.100
gummei:
addr: 127.0.0.2
gummei:
plmn_id:
- mcc: 001
- mnc: 01
- mcc: 901
- mnc: 70
+ mcc: 310
+ mnc: 789
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 001
- mnc: 01
- tac: 12345
- mcc: 901
- mnc: 70
- tac: 1
+ mcc: 310
+ mnc: 789
+ tac: 7
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
S1AP/GTP-C IP address, PLMN ID, TAC are changed as follows.
```
S1AP address : 127.0.1.100 - srsENB default value
GTP-C address : 127.0.1.100 - Use loopback interface
PLMN ID : MNC(310), MCC(789) - Programmed USIM with a card reader
TAC : 7 - srsENB default value
```
The GTP-U IP address will be set to 127.0.0.2. To do this, modify [/etc/open5gs/sgw.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgw.yaml.in) to set the GTP-U IP address.
The GTP-U IP address will be set to 127.0.0.6. To do this, modify [/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
diff -u /etc/open5gs/sgw.yaml.old /etc/open5gs/sgw.yaml
--- sgw.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgw.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -14,3 +14,4 @@
gtpc:
addr: 127.0.0.2
diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgwu.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -51,7 +51,7 @@ logger:
#
sgwu:
gtpu:
+ addr: 127.0.0.2
- addr: 10.11.0.6
+ addr: 127.0.0.6
pfcp:
addr: 127.0.0.6
```
After changing conf files, please restart Open5GS daemons.
```bash
$ sudo systemctl restart open5gs-mmed
$ sudo systemctl restart open5gs-sgwd
$ sudo systemctl restart open5gs-sgwud
```
If your phone can connect to internet, you must run the following command in Open5GS-PGW installed host.

View File

@ -1204,7 +1204,7 @@ Assuming IMSI of the user1 as 001010123456791 and MSISDN is 0198765432100 and IM
Debug using wireshark at Open5GS machine and following wireshark display filter
```
s1ap || gtpv2 || diameter || diameter.3gpp || sip
s1ap || gtpv2 || pfcp || diameter || diameter.3gpp || sip
```
Also,

View File

@ -5,10 +5,6 @@ permalink: /docs/
head_inline: "<style> ul { padding-bottom: 1em; } </style>"
---
- What's New?
- [Installing 5G Core](new/02-installing-5g-core)
- [Moving 4G EPC to the CUPS](new/03-moving-4g-epc-to-cups)
- User's Guide
- [Quickstart](guide/01-quickstart)
- [Building Open5GS from Sources](guide/02-building-open5gs-from-sources)

View File

@ -10,7 +10,7 @@
#
PACKAGE="open5gs"
VERSION="1.3.0"
VERSION="2.0.0"
print_status() {
echo

View File

@ -390,7 +390,10 @@ void ogs_log_vprintf(ogs_log_level_e level, int id,
ogs_list_for_each(&log_list, log) {
domain = ogs_pool_find(&domain_pool, id);
ogs_assert(domain);
if (!domain) {
fprintf(stderr, "No LogDomain[id:%d] in %s:%d", id, file, line);
ogs_assert_if_reached();
}
if (domain->level < level)
return;

View File

@ -30,6 +30,7 @@
#define FC_FOR_KGNB_KN3IWF_DERIVATION 0x6E
#define FC_FOR_NH_GNB_DERIVATION 0x6F
#define FC_FOR_KASME 0x10
#define FC_FOR_KENB_DERIVATION 0x11
#define FC_FOR_NH_ENB_DERIVATION 0x12
#define FC_FOR_EPS_ALGORITHM_KEY_DERIVATION 0x15
@ -261,6 +262,39 @@ void ogs_kdf_nh_gnb(uint8_t *kamf, uint8_t *sync_input, uint8_t *kgnb)
FC_FOR_NH_GNB_DERIVATION, param, kgnb);
}
/* TS33.401 Annex A.2 KASME derivation function */
void ogs_auc_kasme(const uint8_t *ck, const uint8_t *ik,
const uint8_t *plmn_id, const uint8_t *sqn, const uint8_t *ak,
uint8_t *kasme)
{
kdf_param_t param;
int i;
uint8_t key[OGS_KEY_LEN*2];
uint8_t sqn_xor_ak[OGS_SQN_XOR_AK_LEN];
ogs_assert(ck);
ogs_assert(ik);
ogs_assert(plmn_id);
ogs_assert(sqn);
ogs_assert(ak);
memcpy(key, ck, OGS_KEY_LEN);
memcpy(key + OGS_KEY_LEN, ik, OGS_KEY_LEN);
memset(param, 0, sizeof(param));
param[0].buf = (uint8_t *)plmn_id;
param[0].len = OGS_PLMN_ID_LEN;
for (i = 0; i < 6; i++)
sqn_xor_ak[i] = sqn[i] ^ ak[i];
param[1].buf = sqn_xor_ak;
param[1].len = OGS_SQN_XOR_AK_LEN;
ogs_kdf_common(key, OGS_SHA256_DIGEST_SIZE, FC_FOR_KASME, param, kasme);
}
/* TS33.401 Annex A.3 KeNB derivation function */
void ogs_kdf_kenb(uint8_t *kasme, uint32_t ul_count, uint8_t *kenb)
{

View File

@ -77,6 +77,11 @@ void ogs_kdf_kgnb_and_kn3iwf(uint8_t *kamf, uint32_t ul_count,
/* TS33.501 Annex A.10 NH derivation function */
void ogs_kdf_nh_gnb(uint8_t *kamf, uint8_t *sync_input, uint8_t *kgnb);
/* TS33.401 Annex A.2 KASME derivation function */
void ogs_auc_kasme(const uint8_t *ck, const uint8_t *ik,
const uint8_t *plmn_id, const uint8_t *sqn, const uint8_t *ak,
uint8_t *kasme);
/* TS33.401 Annex A.3 KeNB derivation function */
void ogs_kdf_kenb(uint8_t *kasme, uint32_t ul_count, uint8_t *kenb);

View File

@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2020-06-30 16:47:16.506642 by acetcom
* Created on: 2020-08-16 17:47:29.429097 by acetcom
* from 24301-g40.docx
******************************************************************************/
@ -153,6 +153,8 @@ int ogs_nas_eps_decode_attach_request(ogs_nas_eps_message_t *message, ogs_pkbuf_
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_REQUEST_TMSI_STATUS_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_tmsi_status(&attach_request->tmsi_status, pkbuf);
ogs_assert(size >= 0);
attach_request->presencemask |= OGS_NAS_EPS_ATTACH_REQUEST_TMSI_STATUS_PRESENT;
@ -177,6 +179,8 @@ int ogs_nas_eps_decode_attach_request(ogs_nas_eps_message_t *message, ogs_pkbuf_
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_REQUEST_ADDITIONAL_UPDATE_TYPE_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_additional_update_type(&attach_request->additional_update_type, pkbuf);
ogs_assert(size >= 0);
attach_request->presencemask |= OGS_NAS_EPS_ATTACH_REQUEST_ADDITIONAL_UPDATE_TYPE_PRESENT;
@ -189,18 +193,24 @@ int ogs_nas_eps_decode_attach_request(ogs_nas_eps_message_t *message, ogs_pkbuf_
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_REQUEST_DEVICE_PROPERTIES_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_device_properties(&attach_request->device_properties, pkbuf);
ogs_assert(size >= 0);
attach_request->presencemask |= OGS_NAS_EPS_ATTACH_REQUEST_DEVICE_PROPERTIES_PRESENT;
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_REQUEST_OLD_GUTI_TYPE_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_guti_type(&attach_request->old_guti_type, pkbuf);
ogs_assert(size >= 0);
attach_request->presencemask |= OGS_NAS_EPS_ATTACH_REQUEST_OLD_GUTI_TYPE_PRESENT;
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_REQUEST_MS_NETWORK_FEATURE_SUPPORT_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_ms_network_feature_support(&attach_request->ms_network_feature_support, pkbuf);
ogs_assert(size >= 0);
attach_request->presencemask |= OGS_NAS_EPS_ATTACH_REQUEST_MS_NETWORK_FEATURE_SUPPORT_PRESENT;
@ -351,6 +361,8 @@ int ogs_nas_eps_decode_attach_accept(ogs_nas_eps_message_t *message, ogs_pkbuf_t
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_ACCEPT_ADDITIONAL_UPDATE_RESULT_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_additional_update_result(&attach_accept->additional_update_result, pkbuf);
ogs_assert(size >= 0);
attach_accept->presencemask |= OGS_NAS_EPS_ATTACH_ACCEPT_ADDITIONAL_UPDATE_RESULT_PRESENT;
@ -381,12 +393,16 @@ int ogs_nas_eps_decode_attach_accept(ogs_nas_eps_message_t *message, ogs_pkbuf_t
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_ACCEPT_SMS_SERVICES_STATUS_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_sms_services_status(&attach_accept->sms_services_status, pkbuf);
ogs_assert(size >= 0);
attach_accept->presencemask |= OGS_NAS_EPS_ATTACH_ACCEPT_SMS_SERVICES_STATUS_PRESENT;
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_ACCEPT_NON__NW_PROVIDED_POLICIES_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_non__nw_provided_policies(&attach_accept->non__nw_provided_policies, pkbuf);
ogs_assert(size >= 0);
attach_accept->presencemask |= OGS_NAS_EPS_ATTACH_ACCEPT_NON__NW_PROVIDED_POLICIES_PRESENT;
@ -399,6 +415,8 @@ int ogs_nas_eps_decode_attach_accept(ogs_nas_eps_message_t *message, ogs_pkbuf_t
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_ACCEPT_NETWORK_POLICY_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_network_policy(&attach_accept->network_policy, pkbuf);
ogs_assert(size >= 0);
attach_accept->presencemask |= OGS_NAS_EPS_ATTACH_ACCEPT_NETWORK_POLICY_PRESENT;
@ -429,6 +447,8 @@ int ogs_nas_eps_decode_attach_accept(ogs_nas_eps_message_t *message, ogs_pkbuf_t
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_ue_radio_capability_id_deletion_indication(&attach_accept->ue_radio_capability_id_deletion_indication, pkbuf);
ogs_assert(size >= 0);
attach_accept->presencemask |= OGS_NAS_EPS_ATTACH_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
@ -498,6 +518,8 @@ int ogs_nas_eps_decode_attach_reject(ogs_nas_eps_message_t *message, ogs_pkbuf_t
decoded += size;
break;
case OGS_NAS_EPS_ATTACH_REJECT_EXTENDED_EMM_CAUSE_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_extended_emm_cause(&attach_reject->extended_emm_cause, pkbuf);
ogs_assert(size >= 0);
attach_reject->presencemask |= OGS_NAS_EPS_ATTACH_REJECT_EXTENDED_EMM_CAUSE_PRESENT;
@ -593,12 +615,16 @@ int ogs_nas_eps_decode_tracking_area_update_request(ogs_nas_eps_message_t *messa
switch (type) {
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_key_set_identifier(&tracking_area_update_request->non_current_native_nas_key_set_identifier, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_request->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_PRESENT;
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_GPRS_CIPHERING_KEY_SEQUENCE_NUMBER_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_ciphering_key_sequence_number(&tracking_area_update_request->gprs_ciphering_key_sequence_number, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_request->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_GPRS_CIPHERING_KEY_SEQUENCE_NUMBER_PRESENT;
@ -641,6 +667,8 @@ int ogs_nas_eps_decode_tracking_area_update_request(ogs_nas_eps_message_t *messa
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_UE_RADIO_CAPABILITY_INFORMATION_UPDATE_NEEDED_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_ue_radio_capability_information_update_needed(&tracking_area_update_request->ue_radio_capability_information_update_needed, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_request->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_UE_RADIO_CAPABILITY_INFORMATION_UPDATE_NEEDED_PRESENT;
@ -665,6 +693,8 @@ int ogs_nas_eps_decode_tracking_area_update_request(ogs_nas_eps_message_t *messa
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_TMSI_STATUS_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_tmsi_status(&tracking_area_update_request->tmsi_status, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_request->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_TMSI_STATUS_PRESENT;
@ -689,6 +719,8 @@ int ogs_nas_eps_decode_tracking_area_update_request(ogs_nas_eps_message_t *messa
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_ADDITIONAL_UPDATE_TYPE_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_additional_update_type(&tracking_area_update_request->additional_update_type, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_request->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_ADDITIONAL_UPDATE_TYPE_PRESENT;
@ -701,18 +733,24 @@ int ogs_nas_eps_decode_tracking_area_update_request(ogs_nas_eps_message_t *messa
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_OLD_GUTI_TYPE_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_guti_type(&tracking_area_update_request->old_guti_type, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_request->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_OLD_GUTI_TYPE_PRESENT;
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_DEVICE_PROPERTIES_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_device_properties(&tracking_area_update_request->device_properties, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_request->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_DEVICE_PROPERTIES_PRESENT;
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_MS_NETWORK_FEATURE_SUPPORT_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_ms_network_feature_support(&tracking_area_update_request->ms_network_feature_support, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_request->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_MS_NETWORK_FEATURE_SUPPORT_PRESENT;
@ -869,6 +907,8 @@ int ogs_nas_eps_decode_tracking_area_update_accept(ogs_nas_eps_message_t *messag
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_ADDITIONAL_UPDATE_RESULT_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_additional_update_result(&tracking_area_update_accept->additional_update_result, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_accept->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_ADDITIONAL_UPDATE_RESULT_PRESENT;
@ -905,12 +945,16 @@ int ogs_nas_eps_decode_tracking_area_update_accept(ogs_nas_eps_message_t *messag
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_SMS_SERVICES_STATUS_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_sms_services_status(&tracking_area_update_accept->sms_services_status, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_accept->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_SMS_SERVICES_STATUS_PRESENT;
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_NON__NW_POLICIES_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_non__nw_provided_policies(&tracking_area_update_accept->non__nw_policies, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_accept->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_NON__NW_POLICIES_PRESENT;
@ -923,6 +967,8 @@ int ogs_nas_eps_decode_tracking_area_update_accept(ogs_nas_eps_message_t *messag
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_NETWORK_POLICY_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_network_policy(&tracking_area_update_accept->network_policy, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_accept->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_NETWORK_POLICY_PRESENT;
@ -953,6 +999,8 @@ int ogs_nas_eps_decode_tracking_area_update_accept(ogs_nas_eps_message_t *messag
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_ue_radio_capability_id_deletion_indication(&tracking_area_update_accept->ue_radio_capability_id_deletion_indication, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_accept->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
@ -995,6 +1043,8 @@ int ogs_nas_eps_decode_tracking_area_update_reject(ogs_nas_eps_message_t *messag
decoded += size;
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REJECT_EXTENDED_EMM_CAUSE_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_extended_emm_cause(&tracking_area_update_reject->extended_emm_cause, pkbuf);
ogs_assert(size >= 0);
tracking_area_update_reject->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_REJECT_EXTENDED_EMM_CAUSE_PRESENT;
@ -1035,6 +1085,8 @@ int ogs_nas_eps_decode_extended_service_request(ogs_nas_eps_message_t *message,
switch (type) {
case OGS_NAS_EPS_EXTENDED_SERVICE_REQUEST_CSFB_RESPONSE_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_csfb_response(&extended_service_request->csfb_response, pkbuf);
ogs_assert(size >= 0);
extended_service_request->presencemask |= OGS_NAS_EPS_EXTENDED_SERVICE_REQUEST_CSFB_RESPONSE_PRESENT;
@ -1047,6 +1099,8 @@ int ogs_nas_eps_decode_extended_service_request(ogs_nas_eps_message_t *message,
decoded += size;
break;
case OGS_NAS_EPS_EXTENDED_SERVICE_REQUEST_DEVICE_PROPERTIES_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_device_properties(&extended_service_request->device_properties, pkbuf);
ogs_assert(size >= 0);
extended_service_request->presencemask |= OGS_NAS_EPS_EXTENDED_SERVICE_REQUEST_DEVICE_PROPERTIES_PRESENT;
@ -1162,6 +1216,8 @@ int ogs_nas_eps_decode_guti_reallocation_command(ogs_nas_eps_message_t *message,
decoded += size;
break;
case OGS_NAS_EPS_GUTI_REALLOCATION_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_ue_radio_capability_id_deletion_indication(&guti_reallocation_command->ue_radio_capability_id_deletion_indication, pkbuf);
ogs_assert(size >= 0);
guti_reallocation_command->presencemask |= OGS_NAS_EPS_GUTI_REALLOCATION_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
@ -1310,6 +1366,8 @@ int ogs_nas_eps_decode_security_mode_command(ogs_nas_eps_message_t *message, ogs
switch (type) {
case OGS_NAS_EPS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_imeisv_request(&security_mode_command->imeisv_request, pkbuf);
ogs_assert(size >= 0);
security_mode_command->presencemask |= OGS_NAS_EPS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT;
@ -1340,6 +1398,8 @@ int ogs_nas_eps_decode_security_mode_command(ogs_nas_eps_message_t *message, ogs
decoded += size;
break;
case OGS_NAS_EPS_SECURITY_MODE_COMMAND_UE_RADIO_CAPABILITY_ID_REQUEST_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_ue_radio_capability_id_request(&security_mode_command->ue_radio_capability_id_request, pkbuf);
ogs_assert(size >= 0);
security_mode_command->presencemask |= OGS_NAS_EPS_SECURITY_MODE_COMMAND_UE_RADIO_CAPABILITY_ID_REQUEST_PRESENT;
@ -1696,6 +1756,8 @@ int ogs_nas_eps_decode_activate_default_eps_bearer_context_request(ogs_nas_eps_m
decoded += size;
break;
case OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_RADIO_PRIORITY_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_radio_priority(&activate_default_eps_bearer_context_request->radio_priority, pkbuf);
ogs_assert(size >= 0);
activate_default_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_RADIO_PRIORITY_PRESENT;
@ -1726,12 +1788,16 @@ int ogs_nas_eps_decode_activate_default_eps_bearer_context_request(ogs_nas_eps_m
decoded += size;
break;
case OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_CONNECTIVITY_TYPE_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_connectivity_type(&activate_default_eps_bearer_context_request->connectivity_type, pkbuf);
ogs_assert(size >= 0);
activate_default_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_CONNECTIVITY_TYPE_PRESENT;
decoded += size;
break;
case OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_WLAN_OFFLOAD_INDICATION_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_wlan_offload_acceptability(&activate_default_eps_bearer_context_request->wlan_offload_indication, pkbuf);
ogs_assert(size >= 0);
activate_default_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_WLAN_OFFLOAD_INDICATION_PRESENT;
@ -1750,6 +1816,8 @@ int ogs_nas_eps_decode_activate_default_eps_bearer_context_request(ogs_nas_eps_m
decoded += size;
break;
case OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_CONTROL_PLANE_ONLY_INDICATION_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_control_plane_only_indication(&activate_default_eps_bearer_context_request->control_plane_only_indication, pkbuf);
ogs_assert(size >= 0);
activate_default_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_CONTROL_PLANE_ONLY_INDICATION_PRESENT;
@ -1910,6 +1978,8 @@ int ogs_nas_eps_decode_activate_dedicated_eps_bearer_context_request(ogs_nas_eps
decoded += size;
break;
case OGS_NAS_EPS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST_RADIO_PRIORITY_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_radio_priority(&activate_dedicated_eps_bearer_context_request->radio_priority, pkbuf);
ogs_assert(size >= 0);
activate_dedicated_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST_RADIO_PRIORITY_PRESENT;
@ -1928,6 +1998,8 @@ int ogs_nas_eps_decode_activate_dedicated_eps_bearer_context_request(ogs_nas_eps
decoded += size;
break;
case OGS_NAS_EPS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST_WLAN_OFFLOAD_INDICATION_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_wlan_offload_acceptability(&activate_dedicated_eps_bearer_context_request->wlan_offload_indication, pkbuf);
ogs_assert(size >= 0);
activate_dedicated_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST_WLAN_OFFLOAD_INDICATION_PRESENT;
@ -2094,6 +2166,8 @@ int ogs_nas_eps_decode_modify_eps_bearer_context_request(ogs_nas_eps_message_t *
decoded += size;
break;
case OGS_NAS_EPS_MODIFY_EPS_BEARER_CONTEXT_REQUEST_RADIO_PRIORITY_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_radio_priority(&modify_eps_bearer_context_request->radio_priority, pkbuf);
ogs_assert(size >= 0);
modify_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_MODIFY_EPS_BEARER_CONTEXT_REQUEST_RADIO_PRIORITY_PRESENT;
@ -2118,6 +2192,8 @@ int ogs_nas_eps_decode_modify_eps_bearer_context_request(ogs_nas_eps_message_t *
decoded += size;
break;
case OGS_NAS_EPS_MODIFY_EPS_BEARER_CONTEXT_REQUEST_WLAN_OFFLOAD_INDICATION_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_wlan_offload_acceptability(&modify_eps_bearer_context_request->wlan_offload_indication, pkbuf);
ogs_assert(size >= 0);
modify_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_MODIFY_EPS_BEARER_CONTEXT_REQUEST_WLAN_OFFLOAD_INDICATION_PRESENT;
@ -2288,6 +2364,8 @@ int ogs_nas_eps_decode_deactivate_eps_bearer_context_request(ogs_nas_eps_message
decoded += size;
break;
case OGS_NAS_EPS_DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST_WLAN_OFFLOAD_INDICATION_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_wlan_offload_acceptability(&deactivate_eps_bearer_context_request->wlan_offload_indication, pkbuf);
ogs_assert(size >= 0);
deactivate_eps_bearer_context_request->presencemask |= OGS_NAS_EPS_DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST_WLAN_OFFLOAD_INDICATION_PRESENT;
@ -2374,6 +2452,8 @@ int ogs_nas_eps_decode_pdn_connectivity_request(ogs_nas_eps_message_t *message,
switch (type) {
case OGS_NAS_EPS_PDN_CONNECTIVITY_REQUEST_ESM_INFORMATION_TRANSFER_FLAG_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_esm_information_transfer_flag(&pdn_connectivity_request->esm_information_transfer_flag, pkbuf);
ogs_assert(size >= 0);
pdn_connectivity_request->presencemask |= OGS_NAS_EPS_PDN_CONNECTIVITY_REQUEST_ESM_INFORMATION_TRANSFER_FLAG_PRESENT;
@ -2392,6 +2472,8 @@ int ogs_nas_eps_decode_pdn_connectivity_request(ogs_nas_eps_message_t *message,
decoded += size;
break;
case OGS_NAS_EPS_PDN_CONNECTIVITY_REQUEST_DEVICE_PROPERTIES_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_device_properties(&pdn_connectivity_request->device_properties, pkbuf);
ogs_assert(size >= 0);
pdn_connectivity_request->presencemask |= OGS_NAS_EPS_PDN_CONNECTIVITY_REQUEST_DEVICE_PROPERTIES_PRESENT;
@ -2604,6 +2686,8 @@ int ogs_nas_eps_decode_bearer_resource_allocation_request(ogs_nas_eps_message_t
decoded += size;
break;
case OGS_NAS_EPS_BEARER_RESOURCE_ALLOCATION_REQUEST_DEVICE_PROPERTIES_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_device_properties(&bearer_resource_allocation_request->device_properties, pkbuf);
ogs_assert(size >= 0);
bearer_resource_allocation_request->presencemask |= OGS_NAS_EPS_BEARER_RESOURCE_ALLOCATION_REQUEST_DEVICE_PROPERTIES_PRESENT;
@ -2740,6 +2824,8 @@ int ogs_nas_eps_decode_bearer_resource_modification_request(ogs_nas_eps_message_
decoded += size;
break;
case OGS_NAS_EPS_BEARER_RESOURCE_MODIFICATION_REQUEST_DEVICE_PROPERTIES_TYPE:
decoded--;
ogs_assert(ogs_pkbuf_push(pkbuf, 1));
size = ogs_nas_eps_decode_device_properties(&bearer_resource_modification_request->device_properties, pkbuf);
ogs_assert(size >= 0);
bearer_resource_modification_request->presencemask |= OGS_NAS_EPS_BEARER_RESOURCE_MODIFICATION_REQUEST_DEVICE_PROPERTIES_PRESENT;

View File

@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2020-06-30 16:47:16.518250 by acetcom
* Created on: 2020-08-16 17:47:29.440664 by acetcom
* from 24301-g40.docx
******************************************************************************/

View File

@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2020-06-30 16:47:16.490433 by acetcom
* Created on: 2020-08-16 17:47:29.412678 by acetcom
* from 24301-g40.docx
******************************************************************************/
@ -81,12 +81,15 @@ int ogs_nas_eps_encode_additional_information(ogs_pkbuf_t *pkbuf, ogs_nas_additi
* O TV 1 */
int ogs_nas_eps_decode_device_properties(ogs_nas_device_properties_t *device_properties, ogs_pkbuf_t *pkbuf)
{
memcpy(device_properties, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_device_properties_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(device_properties, pkbuf->data - size, size);
ogs_trace(" DEVICE_PROPERTIES - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_device_properties(ogs_pkbuf_t *pkbuf, ogs_nas_device_properties_t *device_properties)
@ -353,12 +356,15 @@ int ogs_nas_eps_encode_plmn_list(ogs_pkbuf_t *pkbuf, ogs_nas_plmn_list_t *plmn_l
* O TV 1 */
int ogs_nas_eps_decode_additional_update_result(ogs_nas_additional_update_result_t *additional_update_result, ogs_pkbuf_t *pkbuf)
{
memcpy(additional_update_result, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_additional_update_result_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(additional_update_result, pkbuf->data - size, size);
ogs_trace(" ADDITIONAL_UPDATE_RESULT - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_additional_update_result(ogs_pkbuf_t *pkbuf, ogs_nas_additional_update_result_t *additional_update_result)
@ -378,12 +384,15 @@ int ogs_nas_eps_encode_additional_update_result(ogs_pkbuf_t *pkbuf, ogs_nas_addi
* O TV 1 */
int ogs_nas_eps_decode_additional_update_type(ogs_nas_additional_update_type_t *additional_update_type, ogs_pkbuf_t *pkbuf)
{
memcpy(additional_update_type, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_additional_update_type_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(additional_update_type, pkbuf->data - size, size);
ogs_trace(" ADDITIONAL_UPDATE_TYPE - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_additional_update_type(ogs_pkbuf_t *pkbuf, ogs_nas_additional_update_type_t *additional_update_type)
@ -806,12 +815,15 @@ int ogs_nas_eps_encode_identity_type_2(ogs_pkbuf_t *pkbuf, ogs_nas_identity_type
* O TV 1 */
int ogs_nas_eps_decode_imeisv_request(ogs_nas_imeisv_request_t *imeisv_request, ogs_pkbuf_t *pkbuf)
{
memcpy(imeisv_request, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_imeisv_request_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(imeisv_request, pkbuf->data - size, size);
ogs_trace(" IMEISV_REQUEST - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_imeisv_request(ogs_pkbuf_t *pkbuf, ogs_nas_imeisv_request_t *imeisv_request)
@ -929,12 +941,15 @@ int ogs_nas_eps_encode_ms_network_capability(ogs_pkbuf_t *pkbuf, ogs_nas_ms_netw
* O TV 1 */
int ogs_nas_eps_decode_ms_network_feature_support(ogs_nas_ms_network_feature_support_t *ms_network_feature_support, ogs_pkbuf_t *pkbuf)
{
memcpy(ms_network_feature_support, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_ms_network_feature_support_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(ms_network_feature_support, pkbuf->data - size, size);
ogs_trace(" MS_NETWORK_FEATURE_SUPPORT - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_ms_network_feature_support(ogs_pkbuf_t *pkbuf, ogs_nas_ms_network_feature_support_t *ms_network_feature_support)
@ -954,12 +969,15 @@ int ogs_nas_eps_encode_ms_network_feature_support(ogs_pkbuf_t *pkbuf, ogs_nas_ms
* O TV 1 */
int ogs_nas_eps_decode_key_set_identifier(ogs_nas_key_set_identifier_t *key_set_identifier, ogs_pkbuf_t *pkbuf)
{
memcpy(key_set_identifier, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_key_set_identifier_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(key_set_identifier, pkbuf->data - size, size);
ogs_trace(" KEY_SET_IDENTIFIER - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_key_set_identifier(ogs_pkbuf_t *pkbuf, ogs_nas_key_set_identifier_t *key_set_identifier)
@ -1209,12 +1227,15 @@ int ogs_nas_eps_encode_p_tmsi_signature(ogs_pkbuf_t *pkbuf, ogs_nas_p_tmsi_signa
* O TV 1 */
int ogs_nas_eps_decode_extended_emm_cause(ogs_nas_extended_emm_cause_t *extended_emm_cause, ogs_pkbuf_t *pkbuf)
{
memcpy(extended_emm_cause, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_extended_emm_cause_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(extended_emm_cause, pkbuf->data - size, size);
ogs_trace(" EXTENDED_EMM_CAUSE - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_extended_emm_cause(ogs_pkbuf_t *pkbuf, ogs_nas_extended_emm_cause_t *extended_emm_cause)
@ -1388,12 +1409,15 @@ int ogs_nas_eps_encode_time_zone_and_time(ogs_pkbuf_t *pkbuf, ogs_nas_time_zone_
* O TV 1 */
int ogs_nas_eps_decode_tmsi_status(ogs_nas_tmsi_status_t *tmsi_status, ogs_pkbuf_t *pkbuf)
{
memcpy(tmsi_status, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_tmsi_status_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(tmsi_status, pkbuf->data - size, size);
ogs_trace(" TMSI_STATUS - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_tmsi_status(ogs_pkbuf_t *pkbuf, ogs_nas_tmsi_status_t *tmsi_status)
@ -1515,12 +1539,15 @@ int ogs_nas_eps_encode_ue_network_capability(ogs_pkbuf_t *pkbuf, ogs_nas_ue_netw
* O TV 1 */
int ogs_nas_eps_decode_ue_radio_capability_information_update_needed(ogs_nas_ue_radio_capability_information_update_needed_t *ue_radio_capability_information_update_needed, ogs_pkbuf_t *pkbuf)
{
memcpy(ue_radio_capability_information_update_needed, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_ue_radio_capability_information_update_needed_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(ue_radio_capability_information_update_needed, pkbuf->data - size, size);
ogs_trace(" UE_RADIO_CAPABILITY_INFORMATION_UPDATE_NEEDED - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_ue_radio_capability_information_update_needed(ogs_pkbuf_t *pkbuf, ogs_nas_ue_radio_capability_information_update_needed_t *ue_radio_capability_information_update_needed)
@ -1918,12 +1945,15 @@ int ogs_nas_eps_encode_voice_domain_preference_and_ue_usage_setting(ogs_pkbuf_t
* O TV 1 */
int ogs_nas_eps_decode_guti_type(ogs_nas_guti_type_t *guti_type, ogs_pkbuf_t *pkbuf)
{
memcpy(guti_type, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_guti_type_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(guti_type, pkbuf->data - size, size);
ogs_trace(" GUTI_TYPE - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_guti_type(ogs_pkbuf_t *pkbuf, ogs_nas_guti_type_t *guti_type)
@ -2011,12 +2041,15 @@ int ogs_nas_eps_encode_dcn_id(ogs_pkbuf_t *pkbuf, ogs_nas_dcn_id_t *dcn_id)
* O TV 1 */
int ogs_nas_eps_decode_non__nw_provided_policies(ogs_nas_non__nw_provided_policies_t *non__nw_provided_policies, ogs_pkbuf_t *pkbuf)
{
memcpy(non__nw_provided_policies, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_non__nw_provided_policies_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(non__nw_provided_policies, pkbuf->data - size, size);
ogs_trace(" NON__NW_PROVIDED_POLICIES - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_non__nw_provided_policies(ogs_pkbuf_t *pkbuf, ogs_nas_non__nw_provided_policies_t *non__nw_provided_policies)
@ -2036,12 +2069,15 @@ int ogs_nas_eps_encode_non__nw_provided_policies(ogs_pkbuf_t *pkbuf, ogs_nas_non
* O TV 1 */
int ogs_nas_eps_decode_sms_services_status(ogs_nas_sms_services_status_t *sms_services_status, ogs_pkbuf_t *pkbuf)
{
memcpy(sms_services_status, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_sms_services_status_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(sms_services_status, pkbuf->data - size, size);
ogs_trace(" SMS_SERVICES_STATUS - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_sms_services_status(ogs_pkbuf_t *pkbuf, ogs_nas_sms_services_status_t *sms_services_status)
@ -2061,12 +2097,15 @@ int ogs_nas_eps_encode_sms_services_status(ogs_pkbuf_t *pkbuf, ogs_nas_sms_servi
* O TV 1 */
int ogs_nas_eps_decode_ciphering_key_sequence_number(ogs_nas_ciphering_key_sequence_number_t *ciphering_key_sequence_number, ogs_pkbuf_t *pkbuf)
{
memcpy(ciphering_key_sequence_number, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_ciphering_key_sequence_number_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(ciphering_key_sequence_number, pkbuf->data - size, size);
ogs_trace(" CIPHERING_KEY_SEQUENCE_NUMBER - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_ciphering_key_sequence_number(ogs_pkbuf_t *pkbuf, ogs_nas_ciphering_key_sequence_number_t *ciphering_key_sequence_number)
@ -2086,12 +2125,15 @@ int ogs_nas_eps_encode_ciphering_key_sequence_number(ogs_pkbuf_t *pkbuf, ogs_nas
* O TV 1 */
int ogs_nas_eps_decode_csfb_response(ogs_nas_csfb_response_t *csfb_response, ogs_pkbuf_t *pkbuf)
{
memcpy(csfb_response, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_csfb_response_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(csfb_response, pkbuf->data - size, size);
ogs_trace(" CSFB_RESPONSE - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_csfb_response(ogs_pkbuf_t *pkbuf, ogs_nas_csfb_response_t *csfb_response)
@ -2187,12 +2229,15 @@ int ogs_nas_eps_encode_replayed_nas_message_container(ogs_pkbuf_t *pkbuf, ogs_na
* O TV 1 */
int ogs_nas_eps_decode_network_policy(ogs_nas_network_policy_t *network_policy, ogs_pkbuf_t *pkbuf)
{
memcpy(network_policy, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_network_policy_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(network_policy, pkbuf->data - size, size);
ogs_trace(" NETWORK_POLICY - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_network_policy(ogs_pkbuf_t *pkbuf, ogs_nas_network_policy_t *network_policy)
@ -2386,12 +2431,15 @@ int ogs_nas_eps_encode_n1_ue_network_capability(ogs_pkbuf_t *pkbuf, ogs_nas_n1_u
* O TV 1 */
int ogs_nas_eps_decode_ue_radio_capability_id_request(ogs_nas_ue_radio_capability_id_request_t *ue_radio_capability_id_request, ogs_pkbuf_t *pkbuf)
{
memcpy(ue_radio_capability_id_request, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_ue_radio_capability_id_request_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(ue_radio_capability_id_request, pkbuf->data - size, size);
ogs_trace(" UE_RADIO_CAPABILITY_ID_REQUEST - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_ue_radio_capability_id_request(ogs_pkbuf_t *pkbuf, ogs_nas_ue_radio_capability_id_request_t *ue_radio_capability_id_request)
@ -2479,12 +2527,15 @@ int ogs_nas_eps_encode_ue_radio_capability_id(ogs_pkbuf_t *pkbuf, ogs_nas_ue_rad
* O TV 1 */
int ogs_nas_eps_decode_ue_radio_capability_id_deletion_indication(ogs_nas_ue_radio_capability_id_deletion_indication_t *ue_radio_capability_id_deletion_indication, ogs_pkbuf_t *pkbuf)
{
memcpy(ue_radio_capability_id_deletion_indication, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_ue_radio_capability_id_deletion_indication_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(ue_radio_capability_id_deletion_indication, pkbuf->data - size, size);
ogs_trace(" UE_RADIO_CAPABILITY_ID_DELETION_INDICATION - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_ue_radio_capability_id_deletion_indication(ogs_pkbuf_t *pkbuf, ogs_nas_ue_radio_capability_id_deletion_indication_t *ue_radio_capability_id_deletion_indication)
@ -2705,12 +2756,15 @@ int ogs_nas_eps_encode_quality_of_service(ogs_pkbuf_t *pkbuf, ogs_nas_quality_of
* O TV 1 */
int ogs_nas_eps_decode_radio_priority(ogs_nas_radio_priority_t *radio_priority, ogs_pkbuf_t *pkbuf)
{
memcpy(radio_priority, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_radio_priority_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(radio_priority, pkbuf->data - size, size);
ogs_trace(" RADIO_PRIORITY - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_radio_priority(ogs_pkbuf_t *pkbuf, ogs_nas_radio_priority_t *radio_priority)
@ -2896,12 +2950,15 @@ int ogs_nas_eps_encode_transaction_identifier(ogs_pkbuf_t *pkbuf, ogs_nas_transa
* O TV 1 */
int ogs_nas_eps_decode_wlan_offload_acceptability(ogs_nas_wlan_offload_acceptability_t *wlan_offload_acceptability, ogs_pkbuf_t *pkbuf)
{
memcpy(wlan_offload_acceptability, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_wlan_offload_acceptability_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(wlan_offload_acceptability, pkbuf->data - size, size);
ogs_trace(" WLAN_OFFLOAD_ACCEPTABILITY - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_wlan_offload_acceptability(ogs_pkbuf_t *pkbuf, ogs_nas_wlan_offload_acceptability_t *wlan_offload_acceptability)
@ -3027,12 +3084,15 @@ int ogs_nas_eps_encode_header_compression_configuration(ogs_pkbuf_t *pkbuf, ogs_
* O TV 1 */
int ogs_nas_eps_decode_control_plane_only_indication(ogs_nas_control_plane_only_indication_t *control_plane_only_indication, ogs_pkbuf_t *pkbuf)
{
memcpy(control_plane_only_indication, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_control_plane_only_indication_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(control_plane_only_indication, pkbuf->data - size, size);
ogs_trace(" CONTROL_PLANE_ONLY_INDICATION - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_control_plane_only_indication(ogs_pkbuf_t *pkbuf, ogs_nas_control_plane_only_indication_t *control_plane_only_indication)
@ -3196,12 +3256,15 @@ int ogs_nas_eps_encode_extended_apn_aggregate_maximum_bit_rate(ogs_pkbuf_t *pkbu
* O TV 1 */
int ogs_nas_eps_decode_connectivity_type(ogs_nas_connectivity_type_t *connectivity_type, ogs_pkbuf_t *pkbuf)
{
memcpy(connectivity_type, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_connectivity_type_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(connectivity_type, pkbuf->data - size, size);
ogs_trace(" CONNECTIVITY_TYPE - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_connectivity_type(ogs_pkbuf_t *pkbuf, ogs_nas_connectivity_type_t *connectivity_type)
@ -3319,12 +3382,15 @@ int ogs_nas_eps_encode_esm_cause(ogs_pkbuf_t *pkbuf, ogs_nas_esm_cause_t *esm_ca
* O TV 1 */
int ogs_nas_eps_decode_esm_information_transfer_flag(ogs_nas_esm_information_transfer_flag_t *esm_information_transfer_flag, ogs_pkbuf_t *pkbuf)
{
memcpy(esm_information_transfer_flag, pkbuf->data - 1, 1);
uint16_t size = sizeof(ogs_nas_esm_information_transfer_flag_t);
ogs_assert(ogs_pkbuf_pull(pkbuf, size));
memcpy(esm_information_transfer_flag, pkbuf->data - size, size);
ogs_trace(" ESM_INFORMATION_TRANSFER_FLAG - ");
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);
ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
return 0;
return size;
}
int ogs_nas_eps_encode_esm_information_transfer_flag(ogs_pkbuf_t *pkbuf, ogs_nas_esm_information_transfer_flag_t *esm_information_transfer_flag)

View File

@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2020-06-30 16:47:16.487897 by acetcom
* Created on: 2020-08-16 17:47:29.410200 by acetcom
* from 24301-g40.docx
******************************************************************************/

View File

@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
* Created on: 2020-06-30 16:47:16.497641 by acetcom
* Created on: 2020-08-16 17:47:29.419910 by acetcom
* from 24301-g40.docx
******************************************************************************/

View File

@ -403,10 +403,12 @@ for (k, v) in sorted_type_list:
if (type_list[k]["format"] == "TV" or type_list[k]["format"] == "T") and type_list[k]["length"] == "1":
f.write("int ogs_nas_eps_decode_%s(ogs_nas_%s_t *%s, ogs_pkbuf_t *pkbuf)\n" % (v_lower(k), v_lower(k), v_lower(k)))
f.write("{\n")
f.write(" memcpy(%s, pkbuf->data - 1, 1);\n\n" % v_lower(k))
f.write(" uint16_t size = sizeof(ogs_nas_%s_t);\n\n" % v_lower(k))
f.write(" ogs_assert(ogs_pkbuf_pull(pkbuf, size));\n")
f.write(" memcpy(%s, pkbuf->data - size, size);\n\n" % v_lower(k))
f.write(" ogs_trace(\" %s - \");\n" % v_upper(k))
f.write(" ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - 1, 1);\n\n");
f.write(" return 0;\n")
f.write(" ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);\n\n");
f.write(" return size;\n")
f.write("}\n\n")
f.write("int ogs_nas_eps_encode_%s(ogs_pkbuf_t *pkbuf, ogs_nas_%s_t *%s)\n" % (v_lower(k), v_lower(k), v_lower(k)))
f.write("{\n")
@ -693,6 +695,9 @@ for (k, v) in sorted_msg_list:
optional_fields = True;
f.write(" case OGS_NAS_EPS_%s_%s_TYPE:\n" % (v_upper(k), v_upper(ie["value"])))
if (ie["format"] == "TV" or ie["format"] == "T") and ie["length"] == "1":
f.write(" decoded--;\n")
f.write(" ogs_assert(ogs_pkbuf_push(pkbuf, 1));\n")
f.write(" size = ogs_nas_eps_decode_%s(&%s->%s, pkbuf);\n" % (v_lower(ie["type"]), v_lower(k), v_lower(ie["value"])))
f.write(" ogs_assert(size >= 0);\n")
f.write(" %s->presencemask |= OGS_NAS_EPS_%s_%s_PRESENT;\n" % (v_lower(k), v_upper(k), v_upper(ie["value"])))

View File

@ -287,8 +287,8 @@ ED2(uint8_t spare:5;,
#define OGS_NAS_KEY_SET_IDENTIFIER_NOT_AVAILABLE 0x111
#define OGS_NAS_ATTACH_TYPE_EPS_ATTACH 1
#define OGS_NAS_ATTACH_TYPE_COMBINED_EPS_IMSI_ATTAACH 2
#define OGS_NAS_ATTACH_TYPE_EPS_ERMERGENCY_ATTCH 3
#define OGS_NAS_ATTACH_TYPE_COMBINED_EPS_IMSI_ATTACH 2
#define OGS_NAS_ATTACH_TYPE_EPS_ERMERGENCY_ATTACH 3
#define OGS_NAS_ATTACH_TYPE_RESERVED 4
typedef struct ogs_nas_eps_attach_type_s {
ED4(uint8_t tsc:1;,

View File

@ -124,7 +124,7 @@ void ogs_ngap_nr_cgi_to_ASN(ogs_nr_cgi_t *nr_cgi, NGAP_NR_CGI_t *nR_CGI)
/* CellIdentity : 36bit */
ogs_uint64_to_buffer((nr_cgi->cell_id << 4), 5, buf);
ogs_asn_buffer_to_BIT_STRING(buf, 5, 4, &nR_CGI->nRCellIdentity);
ogs_asn_buffer_to_BIT_STRING(buf, 5, 4, &nR_CGI->nRCellIdentity);
}
void ogs_ngap_ASN_to_nr_cgi(NGAP_NR_CGI_t *nR_CGI, ogs_nr_cgi_t *nr_cgi)

View File

@ -21,7 +21,7 @@
int __ogs_ngap_domain;
ogs_pkbuf_t *nga_ngap_encode(ogs_ngap_message_t *message)
ogs_pkbuf_t *ogs_ngap_encode(ogs_ngap_message_t *message)
{
ogs_pkbuf_t *pkbuf = NULL;
@ -39,7 +39,7 @@ ogs_pkbuf_t *nga_ngap_encode(ogs_ngap_message_t *message)
return pkbuf;
}
int nga_ngap_decode(ogs_ngap_message_t *message, ogs_pkbuf_t *pkbuf)
int ogs_ngap_decode(ogs_ngap_message_t *message, ogs_pkbuf_t *pkbuf)
{
int rv;
ogs_assert(message);
@ -60,7 +60,7 @@ int nga_ngap_decode(ogs_ngap_message_t *message, ogs_pkbuf_t *pkbuf)
return OGS_OK;
}
void nga_ngap_free(ogs_ngap_message_t *message)
void ogs_ngap_free(ogs_ngap_message_t *message)
{
ogs_assert(message);
ogs_asn_free(&asn_DEF_NGAP_NGAP_PDU, message);

View File

@ -30,9 +30,9 @@ extern "C" {
typedef struct NGAP_NGAP_PDU ogs_ngap_message_t;
int nga_ngap_decode(ogs_ngap_message_t *message, ogs_pkbuf_t *pkbuf);
ogs_pkbuf_t *nga_ngap_encode(ogs_ngap_message_t *message);
void nga_ngap_free(ogs_ngap_message_t *message);
int ogs_ngap_decode(ogs_ngap_message_t *message, ogs_pkbuf_t *pkbuf);
ogs_pkbuf_t *ogs_ngap_encode(ogs_ngap_message_t *message);
void ogs_ngap_free(ogs_ngap_message_t *message);
#ifdef __cplusplus
}

279
lib/s1ap/build.c Normal file
View File

@ -0,0 +1,279 @@
/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "ogs-s1ap.h"
ogs_pkbuf_t *ogs_s1ap_build_error_indication(
S1AP_MME_UE_S1AP_ID_t *mme_ue_s1ap_id,
S1AP_ENB_UE_S1AP_ID_t *enb_ue_s1ap_id,
S1AP_Cause_PR group, long cause)
{
S1AP_S1AP_PDU_t pdu;
S1AP_InitiatingMessage_t *initiatingMessage = NULL;
S1AP_ErrorIndication_t *ErrorIndication = NULL;
S1AP_ErrorIndicationIEs_t *ie = NULL;
S1AP_MME_UE_S1AP_ID_t *MME_UE_S1AP_ID = NULL;
S1AP_ENB_UE_S1AP_ID_t *ENB_UE_S1AP_ID = NULL;
S1AP_Cause_t *Cause = NULL;
ogs_debug("[MME] Error Indication");
memset(&pdu, 0, sizeof (S1AP_S1AP_PDU_t));
pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage;
pdu.choice.initiatingMessage =
CALLOC(1, sizeof(S1AP_InitiatingMessage_t));
initiatingMessage = pdu.choice.initiatingMessage;
initiatingMessage->procedureCode = S1AP_ProcedureCode_id_ErrorIndication;
initiatingMessage->criticality = S1AP_Criticality_ignore;
initiatingMessage->value.present =
S1AP_InitiatingMessage__value_PR_ErrorIndication;
ErrorIndication = &initiatingMessage->value.choice.ErrorIndication;
if (mme_ue_s1ap_id) {
ie = CALLOC(1, sizeof(S1AP_ErrorIndicationIEs_t));
ASN_SEQUENCE_ADD(&ErrorIndication->protocolIEs, ie);
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_ErrorIndicationIEs__value_PR_MME_UE_S1AP_ID;
MME_UE_S1AP_ID = &ie->value.choice.MME_UE_S1AP_ID;
*MME_UE_S1AP_ID = *mme_ue_s1ap_id;
ogs_debug(" MME_UE_S1AP_ID[%d]", (int)*mme_ue_s1ap_id);
}
if (enb_ue_s1ap_id) {
ie = CALLOC(1, sizeof(S1AP_ErrorIndicationIEs_t));
ASN_SEQUENCE_ADD(&ErrorIndication->protocolIEs, ie);
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_ErrorIndicationIEs__value_PR_ENB_UE_S1AP_ID;
ENB_UE_S1AP_ID = &ie->value.choice.ENB_UE_S1AP_ID;
*ENB_UE_S1AP_ID = *enb_ue_s1ap_id;
ogs_debug(" ENB_UE_S1AP_ID[%d]", (int)*enb_ue_s1ap_id);
}
ie = CALLOC(1, sizeof(S1AP_ErrorIndicationIEs_t));
ASN_SEQUENCE_ADD(&ErrorIndication->protocolIEs, ie);
ie->id = S1AP_ProtocolIE_ID_id_Cause;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_ErrorIndicationIEs__value_PR_Cause;
Cause = &ie->value.choice.Cause;
Cause->present = group;
Cause->choice.radioNetwork = cause;
ogs_debug(" Group[%d] Cause[%d]",
Cause->present, (int)Cause->choice.radioNetwork);
return ogs_s1ap_encode(&pdu);
}
ogs_pkbuf_t *ogs_s1ap_build_s1_reset(
S1AP_Cause_PR group, long cause,
S1AP_UE_associatedLogicalS1_ConnectionListRes_t *partOfS1_Interface)
{
S1AP_S1AP_PDU_t pdu;
S1AP_InitiatingMessage_t *initiatingMessage = NULL;
S1AP_Reset_t *Reset = NULL;
S1AP_ResetIEs_t *ie = NULL;
S1AP_Cause_t *Cause = NULL;
S1AP_ResetType_t *ResetType = NULL;
ogs_debug("[MME] Reset");
memset(&pdu, 0, sizeof (S1AP_S1AP_PDU_t));
pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage;
pdu.choice.initiatingMessage =
CALLOC(1, sizeof(S1AP_InitiatingMessage_t));
initiatingMessage = pdu.choice.initiatingMessage;
initiatingMessage->procedureCode = S1AP_ProcedureCode_id_Reset;
initiatingMessage->criticality = S1AP_Criticality_ignore;
initiatingMessage->value.present =
S1AP_InitiatingMessage__value_PR_Reset;
Reset = &initiatingMessage->value.choice.Reset;
ie = CALLOC(1, sizeof(S1AP_ResetIEs_t));
ASN_SEQUENCE_ADD(&Reset->protocolIEs, ie);
ie->id = S1AP_ProtocolIE_ID_id_Cause;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_ResetIEs__value_PR_Cause;
Cause = &ie->value.choice.Cause;
ie = CALLOC(1, sizeof(S1AP_ResetIEs_t));
ASN_SEQUENCE_ADD(&Reset->protocolIEs, ie);
ie->id = S1AP_ProtocolIE_ID_id_ResetType;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_ResetIEs__value_PR_ResetType;
ResetType = &ie->value.choice.ResetType;
Cause->present = group;
Cause->choice.radioNetwork = cause;
ogs_debug(" Group[%d] Cause[%d] partOfS1_Interface[%p]",
Cause->present, (int)Cause->choice.radioNetwork, partOfS1_Interface);
if (partOfS1_Interface) {
ResetType->present = S1AP_ResetType_PR_partOfS1_Interface;
ResetType->choice.partOfS1_Interface = partOfS1_Interface;
} else {
ResetType->present = S1AP_ResetType_PR_s1_Interface;
ResetType->choice.s1_Interface = S1AP_ResetAll_reset_all;
}
return ogs_s1ap_encode(&pdu);
}
ogs_pkbuf_t *ogs_s1ap_build_s1_reset_partial(
S1AP_Cause_PR group, long cause,
S1AP_MME_UE_S1AP_ID_t *mme_ue_s1ap_id,
S1AP_ENB_UE_S1AP_ID_t *enb_ue_s1ap_id)
{
S1AP_UE_associatedLogicalS1_ConnectionListRes_t *partOfS1_Interface = NULL;
S1AP_UE_associatedLogicalS1_ConnectionItemRes_t *ie2 = NULL;
S1AP_UE_associatedLogicalS1_ConnectionItem_t *item = NULL;
partOfS1_Interface = CALLOC(1,
sizeof(S1AP_UE_associatedLogicalS1_ConnectionListRes_t));
ogs_assert(partOfS1_Interface);
ie2 = CALLOC(1,
sizeof(S1AP_UE_associatedLogicalS1_ConnectionItemRes_t));
ASN_SEQUENCE_ADD(&partOfS1_Interface->list, ie2);
ie2->id = S1AP_ProtocolIE_ID_id_UE_associatedLogicalS1_ConnectionItem;
ie2->criticality = S1AP_Criticality_reject;
ie2->value.present = S1AP_UE_associatedLogicalS1_ConnectionItemRes__value_PR_UE_associatedLogicalS1_ConnectionItem;
item = &ie2->value.choice.UE_associatedLogicalS1_ConnectionItem;
item->mME_UE_S1AP_ID = mme_ue_s1ap_id;
item->eNB_UE_S1AP_ID = enb_ue_s1ap_id;
return ogs_s1ap_build_s1_reset(group, cause, partOfS1_Interface);
}
ogs_pkbuf_t *ogs_s1ap_build_s1_reset_ack(
S1AP_UE_associatedLogicalS1_ConnectionListRes_t *partOfS1_Interface)
{
S1AP_S1AP_PDU_t pdu;
S1AP_SuccessfulOutcome_t *successfulOutcome = NULL;
S1AP_ResetAcknowledge_t *ResetAcknowledge = NULL;
S1AP_ResetAcknowledgeIEs_t *ie = NULL;
ogs_debug("[MME] Reset acknowledge");
memset(&pdu, 0, sizeof (S1AP_S1AP_PDU_t));
pdu.present = S1AP_S1AP_PDU_PR_successfulOutcome;
pdu.choice.successfulOutcome =
CALLOC(1, sizeof(S1AP_SuccessfulOutcome_t));
successfulOutcome = pdu.choice.successfulOutcome;
successfulOutcome->procedureCode = S1AP_ProcedureCode_id_Reset;
successfulOutcome->criticality = S1AP_Criticality_reject;
successfulOutcome->value.present =
S1AP_SuccessfulOutcome__value_PR_ResetAcknowledge;
ResetAcknowledge = &successfulOutcome->value.choice.ResetAcknowledge;
if (partOfS1_Interface && partOfS1_Interface->list.count) {
int i = 0;
S1AP_UE_associatedLogicalS1_ConnectionListResAck_t *list = NULL;
ie = CALLOC(1, sizeof(S1AP_ResetAcknowledgeIEs_t));
ASN_SEQUENCE_ADD(&ResetAcknowledge->protocolIEs, ie);
ie->id =
S1AP_ProtocolIE_ID_id_UE_associatedLogicalS1_ConnectionListResAck;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_ResetAcknowledgeIEs__value_PR_UE_associatedLogicalS1_ConnectionListResAck;
list = &ie->value.choice.UE_associatedLogicalS1_ConnectionListResAck;
for (i = 0; i < partOfS1_Interface->list.count; i++) {
S1AP_UE_associatedLogicalS1_ConnectionItemRes_t *ie1 = NULL;
S1AP_UE_associatedLogicalS1_ConnectionItem_t *item1 = NULL;
S1AP_UE_associatedLogicalS1_ConnectionItemResAck_t *ie2 = NULL;
S1AP_UE_associatedLogicalS1_ConnectionItem_t *item2 = NULL;
ie1 = (S1AP_UE_associatedLogicalS1_ConnectionItemRes_t *)
partOfS1_Interface->list.array[i];
ogs_assert(ie1);
item1 = &ie1->value.choice.UE_associatedLogicalS1_ConnectionItem;
ogs_assert(item1);
if (item1->mME_UE_S1AP_ID == NULL &&
item1->eNB_UE_S1AP_ID == NULL) {
ogs_warn("No MME_UE_S1AP_ID & ENB_UE_S1AP_ID");
continue;
}
ie2 = CALLOC(1,
sizeof(S1AP_UE_associatedLogicalS1_ConnectionItemResAck_t));
ogs_assert(ie2);
ASN_SEQUENCE_ADD(&list->list, ie2);
ie2->id =
S1AP_ProtocolIE_ID_id_UE_associatedLogicalS1_ConnectionItem;
ie2->criticality = S1AP_Criticality_ignore;
ie2->value.present = S1AP_UE_associatedLogicalS1_ConnectionItemResAck__value_PR_UE_associatedLogicalS1_ConnectionItem;
item2 = &ie2->value.choice.UE_associatedLogicalS1_ConnectionItem;
ogs_assert(item2);
if (item1->mME_UE_S1AP_ID) {
item2->mME_UE_S1AP_ID = CALLOC(1,
sizeof(S1AP_MME_UE_S1AP_ID_t));
ogs_assert(item2->mME_UE_S1AP_ID);
*item2->mME_UE_S1AP_ID = *item1->mME_UE_S1AP_ID;
}
if (item1->eNB_UE_S1AP_ID) {
item2->eNB_UE_S1AP_ID = CALLOC(1,
sizeof(S1AP_ENB_UE_S1AP_ID_t));
ogs_assert(item2->eNB_UE_S1AP_ID);
*item2->eNB_UE_S1AP_ID = *item1->eNB_UE_S1AP_ID;
}
ogs_debug(" MME_UE_S1AP_ID[%d] ENB_UE_S1AP_ID[%d]",
item2->mME_UE_S1AP_ID ? (int)*item2->mME_UE_S1AP_ID : -1,
item2->eNB_UE_S1AP_ID ? (int)*item2->eNB_UE_S1AP_ID : -1);
}
}
return ogs_s1ap_encode(&pdu);
}

View File

@ -17,23 +17,36 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef PCSCF_FD_PATH_H
#define PCSCF_FD_PATH_H
#if !defined(OGS_S1AP_INSIDE) && !defined(OGS_S1AP_COMPILATION)
#error "This header cannot be included directly."
#endif
#ifndef OGS_S1AP_BUILD_H
#define OGS_S1AP_BUILD_H
#ifdef __cplusplus
extern "C" {
#endif
int pcscf_fd_init(void);
void pcscf_fd_final(void);
ogs_pkbuf_t *ogs_s1ap_build_error_indication(
S1AP_MME_UE_S1AP_ID_t *mme_ue_s1ap_id,
S1AP_ENB_UE_S1AP_ID_t *enb_ue_s1ap_id,
S1AP_Cause_PR group, long cause);
void pcscf_rx_send_aar(uint8_t **rx_sid, const char *ip,
int qos_type, int flow_presence);
void pcscf_rx_send_str(uint8_t *rx_sid);
ogs_pkbuf_t *ogs_s1ap_build_s1_reset(
S1AP_Cause_PR group, long cause,
S1AP_UE_associatedLogicalS1_ConnectionListRes_t *partOfS1_Interface);
ogs_pkbuf_t *ogs_s1ap_build_s1_reset_partial(
S1AP_Cause_PR group, long cause,
S1AP_MME_UE_S1AP_ID_t *mme_ue_s1ap_id,
S1AP_ENB_UE_S1AP_ID_t *enb_ue_s1ap_id);
ogs_pkbuf_t *ogs_s1ap_build_s1_reset_ack(
S1AP_UE_associatedLogicalS1_ConnectionListRes_t *partOfS1_Interface);
#ifdef __cplusplus
}
#endif
#endif /* PCSCF_FD_PATH_H */
#endif /* OGS_S1AP_BUILD_H */

View File

@ -20,9 +20,11 @@ libs1ap_sources = files('''
conv.h
message.h
build.h
conv.c
message.c
build.c
'''.split())
libs1ap_inc = include_directories('.')

View File

@ -549,6 +549,7 @@
#include "s1ap/conv.h"
#include "s1ap/message.h"
#include "s1ap/build.h"
#undef OGS_S1AP_INSIDE

View File

@ -16,7 +16,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
project('open5gs', 'c',
version : '1.3.0',
version : '2.0.0',
license : 'AGPL-3.0-or-later',
meson_version : '>= 0.43.0',
default_options : [
@ -24,7 +24,7 @@ project('open5gs', 'c',
],
)
libogslib_version = '1.3.0'
libogslib_version = '2.0.0'
prefix = get_option('prefix')
bindir = join_paths(prefix, get_option('bindir'))

View File

@ -25,10 +25,10 @@ openssl genrsa -out $1/hss.key.pem 1024
openssl req -new -batch -out hss.csr.pem -key $1/hss.key.pem -subj /CN=hss.localdomain/C=KO/ST=Seoul/L=Nowon/O=Open5GS/OU=Tests
openssl ca -cert $1/cacert.pem -days 3650 -keyfile cakey.pem -in hss.csr.pem -out $1/hss.cert.pem -outdir . -batch
#pgw
openssl genrsa -out $1/pgw.key.pem 1024
openssl req -new -batch -out pgw.csr.pem -key $1/pgw.key.pem -subj /CN=pgw.localdomain/C=KO/ST=Seoul/L=Nowon/O=Open5GS/OU=Tests
openssl ca -cert $1/cacert.pem -days 3650 -keyfile cakey.pem -in pgw.csr.pem -out $1/pgw.cert.pem -outdir . -batch
#smf
openssl genrsa -out $1/smf.key.pem 1024
openssl req -new -batch -out smf.csr.pem -key $1/smf.key.pem -subj /CN=smf.localdomain/C=KO/ST=Seoul/L=Nowon/O=Open5GS/OU=Tests
openssl ca -cert $1/cacert.pem -days 3650 -keyfile cakey.pem -in smf.csr.pem -out $1/smf.cert.pem -outdir . -batch
#pcrf
openssl genrsa -out $1/pcrf.key.pem 1024
@ -38,4 +38,4 @@ openssl ca -cert $1/cacert.pem -days 3650 -keyfile cakey.pem -in pcrf.csr.pem -o
rm -rf demoCA
rm -f 01.pem 02.pem 03.pem 04.pem
rm -f cakey.pem
rm -f mme.csr.pem hss.csr.pem pgw.csr.pem pcrf.csr.pem
rm -f mme.csr.pem hss.csr.pem smf.csr.pem pcrf.csr.pem

View File

@ -23,6 +23,19 @@ else
ifconfig lo0 alias 127.0.0.5 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.6 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.7 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.8 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.9 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.10 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.11 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.12 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.13 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.14 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.15 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.16 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.17 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
if [ "$SYSTEM" = "Darwin" ]; then
if ! test -f /etc/pf.anchors/org.open5gs; then
sudo sh -c "echo 'nat on {en0} from 10.45.0.0/16 to any -> {en0}' > /etc/pf.anchors/org.open5gs"

View File

@ -624,7 +624,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(gnb);
ogs_assert(OGS_FSM_STATE(&gnb->sm));
rc = nga_ngap_decode(&ngap_message, pkbuf);
rc = ogs_ngap_decode(&ngap_message, pkbuf);
if (rc == OGS_OK) {
e->gnb = gnb;
e->ngap.message = &ngap_message;
@ -636,7 +636,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
NGAP_CauseProtocol_abstract_syntax_error_falsely_constructed_message);
}
nga_ngap_free(&ngap_message);
ogs_ngap_free(&ngap_message);
ogs_pkbuf_free(pkbuf);
break;

View File

@ -229,7 +229,7 @@ int amf_context_parse_config(void)
family != AF_INET && family != AF_INET6) {
ogs_warn("Ignore family(%d) : "
"AF_UNSPEC(%d), "
"AF_INET(%d), AF_INET6(%d) ",
"AF_INET(%d), AF_INET6(%d) ",
family, AF_UNSPEC, AF_INET, AF_INET6);
family = AF_UNSPEC;
}
@ -249,7 +249,7 @@ int amf_context_parse_config(void)
}
ogs_assert(num <= OGS_MAX_NUM_OF_HOSTNAME);
hostname[num++] =
hostname[num++] =
ogs_yaml_iter_value(&hostname_iter);
} while (
ogs_yaml_iter_type(&hostname_iter) ==

View File

@ -157,7 +157,7 @@ ogs_pkbuf_t *ngap_build_ng_setup_response(void)
ASN_SEQUENCE_ADD(&PLMNSupportList->list, NGAP_PLMNSupportItem);
}
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_ng_setup_failure(
@ -212,7 +212,7 @@ ogs_pkbuf_t *ngap_build_ng_setup_failure(
if (TimeToWait)
*TimeToWait = time_to_wait;
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_downlink_nas_transport(
@ -285,7 +285,7 @@ ogs_pkbuf_t *ngap_build_downlink_nas_transport(
memcpy(NAS_PDU->buf, gmmbuf->data, NAS_PDU->size);
ogs_pkbuf_free(gmmbuf);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_initial_context_setup_request(
@ -589,7 +589,7 @@ ogs_pkbuf_t *ngap_build_initial_context_setup_request(
ogs_pkbuf_free(gmmbuf);
}
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
#if 0
@ -732,7 +732,7 @@ ogs_pkbuf_t *ngap_build_ue_context_modification_request(amf_ue_t *amf_ue)
memcpy(SecurityKey->buf, amf_ue->kgnb, SecurityKey->size);
}
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
#endif
@ -799,7 +799,7 @@ ogs_pkbuf_t *ngap_build_ue_context_release_command(
Cause->present = group;
Cause->choice.radioNetwork = cause;
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_pdu_session_resource_setup_request(
@ -908,7 +908,7 @@ ogs_pkbuf_t *ngap_build_pdu_session_resource_setup_request(
memcpy(transfer->buf, n2smbuf->data, transfer->size);
ogs_pkbuf_free(n2smbuf);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_pdu_session_resource_release_command(
@ -1015,7 +1015,7 @@ ogs_pkbuf_t *ngap_build_pdu_session_resource_release_command(
memcpy(transfer->buf, n2smbuf->data, transfer->size);
ogs_pkbuf_free(n2smbuf);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
#if 0
@ -1139,7 +1139,7 @@ ogs_pkbuf_t *ngap_build_paging(
&tai_item->tAI.pLMNidentity);
ogs_asn_uint16_to_OCTET_STRING(amf_ue->tai.tac, &tai_item->tAI.tAC);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_amf_configuration_transfer(
@ -1187,7 +1187,7 @@ ogs_pkbuf_t *ngap_build_amf_configuration_transfer(
son_configuration_transfer, SONConfigurationTransfer);
ogs_assert(rv == OGS_OK);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_path_switch_ack(amf_ue_t *amf_ue)
@ -1268,7 +1268,7 @@ ogs_pkbuf_t *ngap_build_path_switch_ack(amf_ue_t *amf_ue)
memcpy(SecurityContext->nextHopParameter.buf,
amf_ue->nh, SecurityContext->nextHopParameter.size);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_path_switch_failure(
@ -1339,7 +1339,7 @@ ogs_pkbuf_t *ngap_build_path_switch_failure(
Cause->present = group;
Cause->choice.radioNetwork = cause;
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_handover_command(ran_ue_t *source_ue)
@ -1510,7 +1510,7 @@ ogs_pkbuf_t *ngap_build_handover_command(ran_ue_t *source_ue)
ogs_asn_buffer_to_OCTET_STRING(amf_ue->container.buf,
amf_ue->container.size, Target_ToSource_TransparentContainer);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_handover_preparation_failure(
@ -1584,7 +1584,7 @@ ogs_pkbuf_t *ngap_build_handover_preparation_failure(
Cause->present = cause->present;
Cause->choice.radioNetwork = cause->choice.radioNetwork;
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_handover_request(
@ -1829,7 +1829,7 @@ ogs_pkbuf_t *ngap_build_handover_request(
memcpy(SecurityContext->nextHopParameter.buf,
amf_ue->nh, SecurityContext->nextHopParameter.size);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_handover_cancel_ack(ran_ue_t *source_ue)
@ -1886,7 +1886,7 @@ ogs_pkbuf_t *ngap_build_handover_cancel_ack(ran_ue_t *source_ue)
ogs_debug(" Source : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%d]",
source_ue->ran_ue_ngap_id, source_ue->amf_ue_ngap_id);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_amf_status_transfer(
@ -1965,7 +1965,7 @@ ogs_pkbuf_t *ngap_build_amf_status_transfer(
RAN_StatusTransfer_TransparentContainer);
ogs_assert(rv == OGS_OK);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
#endif
@ -2041,7 +2041,7 @@ ogs_pkbuf_t *ngap_build_error_indication(
ogs_debug(" Group[%d] Cause[%d]",
Cause->present, (int)Cause->choice.radioNetwork);
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
#if 0
@ -2104,7 +2104,7 @@ ogs_pkbuf_t *ngap_build_s1_reset(
ResetType->choice.s1_Interface = NGAP_ResetAll_reset_all;
}
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
ogs_pkbuf_t *ngap_build_s1_reset_partial(
@ -2226,6 +2226,6 @@ ogs_pkbuf_t *ngap_build_s1_reset_ack(
}
}
return nga_ngap_encode(&pdu);
return ogs_ngap_encode(&pdu);
}
#endif

View File

@ -1,49 +0,0 @@
/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "ogs-crypt.h"
#include "ogs-core.h"
#include "hss-auc.h"
#define FC_VALUE 0x10
void hss_auc_kasme(const uint8_t *ck, const uint8_t *ik,
const uint8_t plmn_id[3], const uint8_t *sqn, const uint8_t *ak,
uint8_t *kasme)
{
uint8_t s[14];
uint8_t k[32];
int i;
memcpy(&k[0], ck, 16);
memcpy(&k[16], ik, 16);
s[0] = FC_VALUE;
memcpy(&s[1], plmn_id, 3);
s[4] = 0x00;
s[5] = 0x03;
for (i = 0; i < 6; i++)
s[6+i] = sqn[i] ^ ak[i];
s[12] = 0x00;
s[13] = 0x06;
ogs_hmac_sha256(k, 32, s, 14, kasme, 32);
}

View File

@ -20,7 +20,6 @@
#include "ogs-crypt.h"
#include "hss-context.h"
#include "hss-auc.h"
#include "hss-fd-path.h"
/* handler for fallback cb */
@ -163,7 +162,7 @@ static int hss_ogs_diam_s6a_air_cb( struct msg **msg, struct avp *avp,
milenage_generate(opc, auth_info.amf, auth_info.k,
ogs_uint64_to_buffer(auth_info.sqn, OGS_SQN_LEN, sqn), auth_info.rand,
autn, ik, ck, ak, xres, &xres_len);
hss_auc_kasme(ck, ik, hdr->avp_value->os.data, sqn, ak, kasme);
ogs_auc_kasme(ck, ik, hdr->avp_value->os.data, sqn, ak, kasme);
/* Set the Authentication-Info */
ret = fd_msg_avp_new(ogs_diam_s6a_authentication_info, 0, &avp);

Some files were not shown because too many files have changed in this diff Show More