Initial Open5GS support
Change-Id: Iff8b88dc22d8f156572839abb48b0c1377c55e33
diff --git a/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl b/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl
new file mode 100644
index 0000000..0e01337
--- /dev/null
+++ b/src/osmo_gsm_tester/templates/open5gs-smfd.yaml.tmpl
@@ -0,0 +1,506 @@
+#
+# logger:
+#
+# o Set OGS_LOG_INFO to all domain level
+# - If `level` is omitted, the default level is OGS_LOG_INFO)
+# - If `domain` is omitted, the all domain level is set from 'level'
+# (Nothing is needed)
+#
+# o Set OGS_LOG_ERROR to all domain level
+# - `level` can be set with none, fatal, error, warn, info, debug, trace
+# level: error
+#
+# o Set OGS_LOG_DEBUG to mme/emm domain level
+# level: debug
+# domain: mme,emm
+#
+# o Set OGS_LOG_TRACE to all domain level
+# level: trace
+# domain: core,pfcp,fd,pfcp,gtp,smf,event,tlv,mem,sock
+#
+logger:
+ file: ${smf.log_filename}
+#
+# smf:
+#
+# <SBI Server>
+#
+# o SBI Server(http://<all address available>:80)
+# sbi:
+#
+# o SBI Server(http://<any address>:80)
+# sbi:
+# - addr:
+# - 0.0.0.0
+# - ::0
+# port: 7777
+#
+# o SBI Server(https://<all address avaiable>:443)
+# sbi:
+# tls:
+# key: smf.key
+# pem: smf.pem
+#
+# o SBI Server(https://127.0.0.4:443, http://[::1]:80)
+# sbi:
+# - addr: 127.0.0.4
+# tls:
+# key: smf.key
+# pem: smf.pem
+# - addr: ::1
+#
+# o SBI Server(http://smf.open5gs.org:80)
+# sbi:
+# name: smf.open5gs.org
+#
+# o SBI Server(http://127.0.0.4:7777)
+# sbi:
+# - addr: 127.0.0.4
+# port: 7777
+#
+# o SBI Server(http://<eth0 IP address>:80)
+# sbi:
+# dev: eth0
+#
+# <PFCP Server>
+#
+# o PFCP Server(127.0.0.4:8805, ::1:8805)
+# pfcp:
+# - addr: 127.0.0.4
+# - addr: ::1
+#
+# o PFCP-U Server(127.0.0.1:2152, [::1]:2152)
+# pfcp:
+# name: localhost
+#
+# <GTP-C Server>
+#
+# o GTP-C Server(127.0.0.4:2123, [fe80::3%lo]:2123)
+# gtpc:
+# addr:
+# - 127.0.0.4
+# - fe80::3%lo
+#
+# o On SMF, Same configuration
+# (127.0.0.4:2123, [fe80::3%lo]:2123).
+# gtpc:
+# - addr: 127.0.0.4
+# - addr: fe80::3%lo
+#
+# <GTP-U Server>>
+#
+# o GTP-U Server(127.0.0.4:2152, [::1]:2152)
+# gtpu:
+# - addr: 127.0.0.4
+# - addr: ::1
+#
+# o GTP-U Server(127.0.0.1:2152, [::1]:2152)
+# gtpu:
+# name: localhost
+#
+# <Subnet for UE Pool>
+#
+# o IPv4 Pool
+# subnet:
+# addr: 10.45.0.1/16
+#
+# o IPv4/IPv6 Pool
+# subnet:
+# - addr: 10.45.0.1/16
+# - addr: 2001:230:cafe::1/48
+#
+#
+# o Specific DNN/APN(e.g 'ims') uses 10.46.0.1/16, 2001:230:babe::1/48
+#
+# subnet:
+# - addr: 10.45.0.1/16
+# dnn: internet
+# - addr: 2001:230:cafe::1/48
+# dnn: internet
+# - addr: 10.46.0.1/16
+# dnn: ims
+# - addr: 2001:230:babe::1/48
+# dnn: ims
+#
+# o Pool Range Sample
+# subnet:
+# - addr: 10.45.0.1/24
+# range: 10.45.0.100-10.45.0.200
+#
+# subnet:
+# - addr: 10.45.0.1/24
+# range:
+# - 10.45.0.5-10.45.0.50
+# - 10.45.0.100-
+#
+# subnet:
+# - addr: 10.45.0.1/24
+# range:
+# - -10.45.0.200
+# - 10.45.0.210-10.45.0.220
+#
+# subnet:
+# - addr: 10.45.0.1/16
+# range:
+# - 10.45.0.100-10.45.0.200
+# - 10.45.1.100-10.45.1.200
+# - addr: 2001:230:cafe::1/48
+# range:
+# - 2001:230:cafe:a0::0-2001:230:cafe:b0::0
+# - 2001:230:cafe:c0::0-2001:230:cafe:d0::0
+#
+# <Domain Name Server>
+#
+# o Primary/Secondary can be configured. Others are ignored.
+#
+# dns:
+# - 8.8.8.8
+# - 8.8.4.4
+# - 2001:4860:4860::8888
+# - 2001:4860:4860::8844
+#
+# <MTU Size>
+#
+# o Provisioning a limit on the size of the packets sent by the MS
+# to avoid packet fragmentation in the backbone network
+# between the MS and the GGSN/PGW and/or across the (S)Gi reference point)
+# when some of the backbone links does not support
+# packets larger then 1500 octets
+#
+# <P-CSCF>
+#
+# o Proxy Call Session Control Function
+#
+# p-cscf:
+# - 127.0.0.1
+# - ::1
+#
+# <SMF Selection - 5G Core only>
+# 1. SMF sends SmfInfo(S-NSSAI, DNN, TAI) to the NRF
+# 2. NRF responds to AMF with SmfInfo during NF-Discovery.
+# 3. AMF selects SMF based on S-NSSAI, DNN and TAI in SmfInfo.
+#
+# Note that if there is no SmfInfo, any AMF can select this SMF.
+#
+# o S-NSSAI[SST:1] and DNN[internet] - At least 1 DNN is required in S-NSSAI
+# info:
+# - s_nssai:
+# - sst: 1
+# dnn:
+# - internet
+#
+# o S-NSSAI[SST:1 SD:009000] and DNN[internet or ims]
+# info:
+# - s_nssai:
+# - sst: 1
+# sd: 009000
+# dnn:
+# - internet
+# - ims
+#
+# o S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:90170 TAC:1]
+# info:
+# - s_nssai:
+# - sst: 1
+# dnn:
+# - internet
+# tai:
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# tac: 1
+#
+# o If any of conditions below are met:
+# - S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:90170 TAC:1-9]
+# - S-NSSAI[SST:2 SD:000080] and DNN[internet or ims]
+# - S-NSSAI[SST:4] and DNN[internet] and TAI[PLMN-ID:90170 TAC:10-20,30-40]
+#
+# info:
+# - s_nssai:
+# - sst: 1
+# dnn:
+# - internet
+# tai:
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# range:
+# - 1-9
+# - s_nssai:
+# - sst: 2
+# sd: 000080
+# dnn:
+# - internet
+# - ims
+# - s_nssai:
+# - sst: 4
+# dnn:
+# - internet
+# tai:
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# range:
+# - 10-20
+# - 30-40
+#
+# o Complex Example
+# info:
+# - s_nssai:
+# - sst: 1
+# dnn:
+# - internet
+# - sst: 1
+# sd: 000080
+# dnn:
+# - internet
+# - ims
+# - sst: 1
+# sd: 009000
+# dnn:
+# [internet, ims]
+# - sst: 2
+# dnn:
+# - internet
+# - sst: 3
+# sd: 123456
+# dnn:
+# - internet
+# tai:
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# tac: [1, 2, 3]
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# tac: 4
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# tac:
+# - 5
+# - 6
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# range:
+# - 100-200
+# - 300-400
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# range:
+# - 500-600
+# - 700-800
+# - 900-1000
+# - s_nssai:
+# - sst: 4
+# dnn:
+# - internet
+# tai:
+# - plmn_id:
+# mcc: 901
+# mnc: 70
+# tac: 99
+#
+
+smf:
+ sbi:
+ - addr: ${epc.run_addr}
+ port: 7777
+ pfcp:
+ - addr: ${epc.run_addr}
+ port: 8808
+ gtpc:
+ - addr: ${epc.run_addr}
+ port: 2124
+ gtpu:
+ - addr: ${epc.run_addr}
+ port: 2153
+ subnet:
+ - addr: 10.45.0.1/16
+ - addr: 2001:230:cafe::1/48
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
+ - 2001:4860:4860::8888
+ - 2001:4860:4860::8844
+ mtu: 1400
+ freeDiameter: ${smf.diameter_filename}
+
+#
+# nrf:
+#
+# <SBI Client>>
+#
+# o SBI Client(http://127.0.0.1:7777)
+# sbi:
+# addr: 127.0.0.10
+# port: 7777
+#
+# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
+# sbi:
+# - addr: 127.0.0.10
+# tls:
+# key: nrf.key
+# pem: nrf.pem
+# - name: nrf.open5gs.org
+#
+# o SBI Client(http://[fe80::1%lo]:80)
+# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
+#
+# sbi:
+# addr:
+# - 127.0.0.10
+# - fe80::1%lo
+#
+nrf:
+ sbi:
+ - addr:
+ - ${epc.run_addr}
+ port: 7777
+
+#
+# upf:
+#
+# <PFCP Client>>
+#
+# o PFCP Client(127.0.0.7:8805)
+#
+# pfcp:
+# addr: 127.0.0.7
+#
+# <UPF Selection>
+#
+# o Round-Robin
+# (note that round robin can be disabled for a particular node
+# by setting flag 'rr' to 0)
+#
+# upf:
+# pfcp:
+# - addr: 127.0.0.7
+# - addr: 127.0.0.12
+# rr: 0
+# - addr: 127.0.0.19
+#
+# o UPF selection by eNodeB TAC
+# (either single TAC or multiple TACs, DECIMAL representation)
+#
+# upf:
+# pfcp:
+# - addr: 127.0.0.7
+# tac: 1
+# - addr: 127.0.0.12
+# tac: [3,5,8]
+#
+# o UPF selection by UE's DNN/APN (either single DNN/APN or multiple DNNs/APNs)
+#
+# upf:
+# pfcp:
+# - addr: 127.0.0.7
+# dnn: ims
+# - addr: 127.0.0.12
+# dnn: [internet, web]
+#
+# o UPF selection by CellID(e_cell_id: 28bit, nr_cell_id: 36bit)
+# (either single enb_id or multiple enb_ids, HEX representation)
+#
+# upf:
+# pfcp:
+# - addr: 127.0.0.7
+# e_cell_id: 463
+# - addr: 127.0.0.12
+# nr_cell_id: [123456789, 9413]
+#
+upf:
+ pfcp:
+ - addr: ${epc.run_addr}
+ port: 8807
+
+#
+# parameter:
+#
+# o Number of output streams per SCTP associations.
+# sctp_streams: 30
+#
+# o Disable use of IPv4 addresses (only IPv6)
+# no_ipv4: true
+#
+# o Disable use of IPv6 addresses (only IPv4)
+# no_ipv6: true
+#
+# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
+# prefer_ipv4: true
+#
+# o Enable Multicast traffic to the UE
+# multicast: true
+#
+# o Disable Stateless Address Autoconfiguration for IPv6
+# no_slaac: true
+#
+parameter:
+
+#
+# max:
+#
+# o Maximum Number of UE per AMF/MME
+# ue: 1024
+# o Maximum Number of gNB/eNB per AMF/MME
+# gnb: 32
+#
+max:
+
+#
+# pool:
+#
+# o The default memory pool size was set assuming 1024 UEs.
+# To connect more UEs, you need to increase the size further.
+#
+# - Pool-size 128 => 65536 Number
+# - Pool-size 256 => 16384 Number
+# - Pool-size 512 => 4096 Number
+# - Pool-size 1024 => 1024 Number
+# - Pool-size 2048 => 512 Number
+# - Pool-size 8192 => 128 Number
+# - Pool-size 1024*1024 => 8 Number
+#
+# 128: 65536
+# 256: 16384
+# 512: 4096
+# 1024: 1024
+# 2048: 512
+# 8192: 128
+# big: 8
+#
+pool:
+
+#
+# time:
+#
+# o NF Instance Heartbeat (Default : 0)
+# NFs will not send heart-beat timer in NFProfile
+# NRF will send heart-beat timer in NFProfile
+#
+# o NF Instance Heartbeat (20 seconds)
+# NFs will send heart-beat timer (20 seconds) in NFProfile
+# NRF can change heart-beat timer in NFProfile
+#
+# nf_instance:
+# heartbeat: 20
+#
+# o Message Wait Duration (Default : 10,000 ms = 10 seconds)
+#
+# o Message Wait Duration (3000 ms)
+# message:
+# duration: 3000
+#
+# o Handover Wait Duration (Default : 300 ms)
+# Time to wait for SMF to send
+# PFCP Session Modification Request(Remove Indirect Tunnel) to the UPF
+# after sending Nsmf_PDUSession_UpdateSMContext Response(hoState:COMPLETED)
+#
+# o Handover Wait Duration (500ms)
+# handover:
+# duration: 500
+time: