open5gs/configs/open5gs/smf.yaml.in

591 lines
12 KiB
YAML
Raw Normal View History

2020-04-26 19:36:05 +00:00
#
# 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
2020-08-22 03:33:45 +00:00
# domain: core,pfcp,fd,pfcp,gtp,smf,event,tlv,mem,sock
2020-04-26 19:36:05 +00:00
#
logger:
file: @localstatedir@/log/open5gs/smf.log
#
# smf:
#
2020-05-18 21:00:37 +00:00
# <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 available>:443)
2020-05-18 21:00:37 +00:00
# sbi:
# - tls:
2020-05-18 21:00:37 +00:00
# key: smf.key
# pem: smf.pem
#
2020-08-22 03:33:45 +00:00
# o SBI Server(https://127.0.0.4:443, http://[::1]:80)
2020-05-18 21:00:37 +00:00
# sbi:
2020-08-22 03:33:45 +00:00
# - addr: 127.0.0.4
2020-05-18 21:00:37 +00:00
# tls:
# key: smf.key
# pem: smf.pem
# - addr: ::1
#
# o SBI Server(http://smf.open5gs.org:80)
# sbi:
# - name: smf.open5gs.org
2020-05-18 21:00:37 +00:00
#
2020-08-22 03:33:45 +00:00
# o SBI Server(http://127.0.0.4:7777)
2020-05-18 21:00:37 +00:00
# sbi:
2020-08-22 03:33:45 +00:00
# - addr: 127.0.0.4
2020-05-18 21:00:37 +00:00
# port: 7777
#
# o SBI Server(http://<eth0 IP address>:80)
# sbi:
# - dev: eth0
#
# o Provide custom SBI address to be advertised to NRF
# sbi:
# - dev: eth0
# advertise: open5gs-smf.svc.local
#
# sbi:
# - addr: localhost
# advertise:
# - 127.0.0.99
# - ::1
2020-05-18 21:00:37 +00:00
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.0.4
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
# <NF Service>
#
# o NF Service Name(Default : all NF services available)
# service_name:
#
# o NF Service Name(Only some NF services are available)
# service_name:
# - nsmf-pdusession
#
2020-04-26 19:36:05 +00:00
# <PFCP Server>
#
2020-08-22 03:33:45 +00:00
# o PFCP Server(127.0.0.4:8805, ::1:8805)
2020-04-26 19:36:05 +00:00
# pfcp:
2020-08-22 03:33:45 +00:00
# - addr: 127.0.0.4
2020-04-26 19:36:05 +00:00
# - addr: ::1
#
2021-03-15 01:01:55 +00:00
# o PFCP-U Server(127.0.0.1:2152, [::1]:2152)
# pfcp:
# name: localhost
#
# o PFCP Option (Default)
# - so_bindtodevice : NULL
#
# pfcp:
# addr: 127.0.0.4
# option:
# so_bindtodevice: vrf-blue
#
2020-04-26 19:36:05 +00:00
# <GTP-C Server>
#
2021-11-28 07:42:47 +00:00
# o GTP-C Server(127.0.0.4:2123, [fd69:f21d:873c:fa::3]:2123)
2020-04-26 19:36:05 +00:00
# gtpc:
# addr:
2020-08-22 03:33:45 +00:00
# - 127.0.0.4
2021-11-28 07:42:47 +00:00
# - fd69:f21d:873c:fa::3
2020-04-26 19:36:05 +00:00
#
# o On SMF, Same configuration
2021-11-28 07:42:47 +00:00
# (127.0.0.4:2123, [fd69:f21d:873c:fa::3]:2123).
2020-04-26 19:36:05 +00:00
# gtpc:
2020-08-22 03:33:45 +00:00
# - addr: 127.0.0.4
2021-11-28 07:42:47 +00:00
# - addr: fd69:f21d:873c:fa::3
2020-04-26 19:36:05 +00:00
#
# o GTP-C Option (Default)
# - so_bindtodevice : NULL
#
# gtpc:
# addr: 127.0.0.4
# option:
# so_bindtodevice: vrf-blue
#
2021-03-15 01:01:55 +00:00
# <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
#
# o GTP-U Option (Default)
# - so_bindtodevice : NULL
#
# gtpu:
# addr: 127.0.0.4
# option:
# so_bindtodevice: vrf-blue
#
# <Subnet for UE Pool>
2020-04-26 19:36:05 +00:00
#
# o IPv4 Pool
# subnet:
2020-04-26 19:36:05 +00:00
# addr: 10.45.0.1/16
#
# o IPv4/IPv6 Pool
# subnet:
2020-04-26 19:36:05 +00:00
# - addr: 10.45.0.1/16
# - addr: 2001:db8:cafe::1/48
2020-04-26 19:36:05 +00:00
#
#
2022-01-14 02:53:15 +00:00
# o Specific DNN/APN(e.g 'ims') uses 10.46.0.1/16, 2001:db8:babe::1/48
# ; If the UE has unknown DNN/APN(not internet/ims), SMF/UPF will crash.
2020-04-26 19:36:05 +00:00
#
# subnet:
2020-04-26 19:36:05 +00:00
# - addr: 10.45.0.1/16
# dnn: internet
# - addr: 2001:db8:cafe::1/48
# dnn: internet
2020-04-26 19:36:05 +00:00
# - addr: 10.46.0.1/16
# dnn: ims
2022-01-14 02:53:15 +00:00
# - addr: 2001:db8:babe::1/48
# dnn: ims
2020-04-26 19:36:05 +00:00
#
# o Specific DNN/APN with the FALLBACK SUBNET(10.47.0.1/16)
# ; Note that put the FALLBACK SUBNET last to avoid SMF/UPF crash.
#
# subnet:
# - addr: 10.45.0.1/16
# dnn: internet
# - addr: 10.46.0.1/16
# dnn: ims
# - addr: 10.50.0.1/16 ## FALLBACK SUBNET
#
2020-04-26 19:36:05 +00:00
# o Pool Range Sample
# subnet:
2020-04-26 19:36:05 +00:00
# - addr: 10.45.0.1/24
# range: 10.45.0.100-10.45.0.200
#
# subnet:
2020-04-26 19:36:05 +00:00
# - addr: 10.45.0.1/24
# range:
# - 10.45.0.5-10.45.0.50
# - 10.45.0.100-
#
# subnet:
2020-04-26 19:36:05 +00:00
# - addr: 10.45.0.1/24
# range:
# - -10.45.0.200
# - 10.45.0.210-10.45.0.220
#
# subnet:
2020-04-26 19:36:05 +00:00
# - 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:db8:cafe::1/48
2020-04-26 19:36:05 +00:00
# range:
# - 2001:db8:cafe:a0::0-2001:db8:cafe:b0::0
# - 2001:db8:cafe:c0::0-2001:db8:cafe:d0::0
2020-04-26 19:36:05 +00:00
#
# <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
#
2020-04-26 19:36:05 +00:00
# <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
#
# <CTF>
#
# o Gy interface parameters towards OCS.
# o enabled:
# o auto: Default. Use Gy only if OCS available among Diameter peers
2022-04-09 01:41:02 +00:00
# o yes: Use Gy always;
# reject subscribers if no OCS available among Diameter peers
# o no: Don't use Gy interface if there is an OCS available
#
# ctf:
# enabled: auto|yes|no
#
#
# <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:99970 TAC:1]
# info:
# - s_nssai:
# - sst: 1
# dnn:
# - internet
# tai:
# - plmn_id:
# mcc: 999
# mnc: 70
# tac: 1
#
# o If any of conditions below are met:
# - S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:99970 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:99970 TAC:10-20,30-40]
#
# info:
# - s_nssai:
# - sst: 1
# dnn:
# - internet
# tai:
# - plmn_id:
# mcc: 999
# mnc: 70
# range:
# - 1-9
# - s_nssai:
# - sst: 2
# sd: 000080
# dnn:
# - internet
# - ims
# - s_nssai:
# - sst: 4
# dnn:
# - internet
# tai:
# - plmn_id:
# mcc: 999
# 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: 999
# mnc: 70
# tac: [1, 2, 3]
# - plmn_id:
# mcc: 999
# mnc: 70
# tac: 4
# - plmn_id:
# mcc: 999
# mnc: 70
# tac:
# - 5
# - 6
# - plmn_id:
# mcc: 999
# mnc: 70
# range:
# - 100-200
# - 300-400
# - plmn_id:
# mcc: 999
# mnc: 70
# range:
# - 500-600
# - 700-800
# - 900-1000
# - s_nssai:
# - sst: 4
# dnn:
# - internet
# tai:
# - plmn_id:
# mcc: 999
# mnc: 70
# tac: 99
2022-04-08 23:19:59 +00:00
#
2020-04-26 19:36:05 +00:00
smf:
2020-05-18 21:00:37 +00:00
sbi:
2020-08-22 03:33:45 +00:00
- addr: 127.0.0.4
2020-05-18 21:00:37 +00:00
port: 7777
2021-03-15 01:01:55 +00:00
pfcp:
- addr: 127.0.0.4
- addr: ::1
2020-04-26 19:36:05 +00:00
gtpc:
2020-08-22 03:33:45 +00:00
- addr: 127.0.0.4
2020-04-26 19:36:05 +00:00
- addr: ::1
2021-03-15 01:01:55 +00:00
gtpu:
2020-08-22 03:33:45 +00:00
- addr: 127.0.0.4
2020-04-26 19:36:05 +00:00
- addr: ::1
subnet:
2020-04-26 19:36:05 +00:00
- addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48
2020-04-26 19:36:05 +00:00
dns:
- 8.8.8.8
- 8.8.4.4
- 2001:4860:4860::8888
- 2001:4860:4860::8844
mtu: 1400
ctf:
enabled: auto
2020-08-22 03:33:45 +00:00
freeDiameter: @sysconfdir@/freeDiameter/smf.conf
2020-05-18 21:00:37 +00:00
#
# nrf:
#
# <SBI Client>>
#
# o SBI Client(http://127.0.0.1:7777)
# sbi:
2020-08-22 03:33:45 +00:00
# addr: 127.0.0.10
2020-05-18 21:00:37 +00:00
# port: 7777
#
2020-08-22 03:33:45 +00:00
# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
2020-05-18 21:00:37 +00:00
# sbi:
2020-08-22 03:33:45 +00:00
# - addr: 127.0.0.10
2020-05-18 21:00:37 +00:00
# tls:
# key: nrf.key
# pem: nrf.pem
# - name: nrf.open5gs.org
#
2021-11-28 07:42:47 +00:00
# o SBI Client(http://[fd69:f21d:873c:fa::1]:80)
2020-08-22 03:33:45 +00:00
# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
2020-05-18 21:00:37 +00:00
#
# sbi:
# addr:
2020-08-22 03:33:45 +00:00
# - 127.0.0.10
2021-11-28 07:42:47 +00:00
# - fd69:f21d:873c:fa::1
2020-05-18 21:00:37 +00:00
#
# o SBI Option (Default)
# - tcp_nodelay : true
# - so_linger.l_onoff : false
#
# sbi:
# addr: 127.0.0.10
# option:
# tcp_nodelay: false
# so_linger:
# l_onoff: true
# l_linger: 10
#
2020-05-18 21:00:37 +00:00
nrf:
sbi:
2020-05-25 16:15:22 +00:00
- addr:
2020-08-22 03:33:45 +00:00
- 127.0.0.10
2020-05-25 16:15:22 +00:00
- ::1
port: 7777
2020-04-26 19:36:05 +00:00
#
# upf:
#
# <PFCP Client>>
#
2020-08-22 03:33:45 +00:00
# o PFCP Client(127.0.0.7:8805)
2022-04-08 23:19:59 +00:00
#
2020-04-26 19:36:05 +00:00
# pfcp:
2020-08-22 03:33:45 +00:00
# addr: 127.0.0.7
2020-04-26 19:36:05 +00:00
#
# <UPF Selection>
#
# o Round-Robin
# (note that round robin can be disabled for a particular node
# by setting flag 'rr' to 0)
#
# upf:
# pfcp:
2020-08-22 03:33:45 +00:00
# - 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:
2020-08-22 03:33:45 +00:00
# - addr: 127.0.0.7
2020-07-09 05:38:09 +00:00
# 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:
2020-08-22 03:33:45 +00:00
# - addr: 127.0.0.7
2020-07-09 05:38:09 +00:00
# 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:
2020-08-22 03:33:45 +00:00
# - addr: 127.0.0.7
2020-07-09 05:38:09 +00:00
# e_cell_id: 463
# - addr: 127.0.0.12
# nr_cell_id: [123456789, 9413]
#
2020-04-26 19:36:05 +00:00
upf:
pfcp:
2020-08-22 03:33:45 +00:00
- addr: 127.0.0.7
2020-04-26 19:36:05 +00:00
#
# parameter:
#
# 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 Disable selection of UPF PFCP in Round-Robin manner
# no_pfcp_rr_select: true
#
# o Legacy support for pre-release LTE 11 devices
# - Omits adding local address in packet filters for compatibility
# no_ipv4v6_local_addr_in_packet_filter: true
#
2020-04-26 19:36:05 +00:00
parameter:
#
# max:
#
# o Maximum Number of UE per AMF/MME
2020-10-01 17:27:58 +00:00
# ue: 1024
# o Maximum Number of gNB/eNB per AMF/MME
2022-01-13 08:55:36 +00:00
# gnb: 64
# o Maximum Number of GTP peer nodes per SGWC/SMF
# gtp_peer: 64
2020-04-26 19:36:05 +00:00
#
max:
2020-05-18 21:00:37 +00:00
#
# time:
#
# o NF Instance Heartbeat (Default : 0)
# NFs will not send heart-beat timer in NFProfile
# NRF will send heart-beat timer in NFProfile
2020-05-18 21:00:37 +00:00
#
# o NF Instance Heartbeat (20 seconds)
# NFs will send heart-beat timer (20 seconds) in NFProfile
# NRF can change heart-beat timer in NFProfile
2020-05-18 21:00:37 +00:00
#
# nf_instance:
# heartbeat: 20
2020-07-27 01:02:40 +00:00
#
2020-11-07 22:27:12 +00:00
# o Message Wait Duration (Default : 10,000 ms = 10 seconds)
2020-07-27 01:02:40 +00:00
#
# o Message Wait Duration (3000 ms)
2020-07-27 01:02:40 +00:00
# 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
2020-05-18 21:00:37 +00:00
time:
Initial metrics support based on Prometheus (#1571) * Initial metrics support based on Prometheus This commit introduces initial support for metrics in open5gs. The metrics code is added as libogsmetrics (lib/metrics/), with a well defined opaque API to manage different types of metrics, allowing for different implementations for different technologies to scrap the metrics (placed as lib/metrics/<impl>/. The implementation is right now selected at build time, in order to be able to opt-out the related dependencies for users not interested in the features. 2 implementations are already provided in this commit to start with: * void: Default implementation. Empty stubs, acts as a NOOP. * prometheus: open5gs processes become Prometheus servers, offering states through an http server to the Prometheus scrappers. Relies on libprom (prometheus-client-ci [1] project) to track the metrics and format them during export, and libmicrohttpd to make the export possible through HTTP. [1] https://github.com/digitalocean/prometheus-client-c The prometheus-client-c is not well maintained nowadays in upstream, and furthermore it uses a quite peculiar mixture of build systems (autolib on the main dir, cmake for libprom in a subdir). This makes it difficult to have it widely available in distros, and difficult to find it if it is installed in the system. Hence, the best is to include it as a meson subproject like we already do for freeDiameter. An open5gs fork is requried in order to have an extra patch adding a top-level CMakeList.txt in order to be able to includ eit from open5gs's meson build. Furthermore, this allows adding bugfixes to the subproject if any are found in the future. * [SMF] Initial metrics support * [SMF] Add metrics at gtp_node level * docs: Add tutorial documenting metrics with Prometheus
2022-06-07 20:51:02 +00:00
#
# metrics:
#
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
metrics:
addr: 127.0.0.4
Initial metrics support based on Prometheus (#1571) * Initial metrics support based on Prometheus This commit introduces initial support for metrics in open5gs. The metrics code is added as libogsmetrics (lib/metrics/), with a well defined opaque API to manage different types of metrics, allowing for different implementations for different technologies to scrap the metrics (placed as lib/metrics/<impl>/. The implementation is right now selected at build time, in order to be able to opt-out the related dependencies for users not interested in the features. 2 implementations are already provided in this commit to start with: * void: Default implementation. Empty stubs, acts as a NOOP. * prometheus: open5gs processes become Prometheus servers, offering states through an http server to the Prometheus scrappers. Relies on libprom (prometheus-client-ci [1] project) to track the metrics and format them during export, and libmicrohttpd to make the export possible through HTTP. [1] https://github.com/digitalocean/prometheus-client-c The prometheus-client-c is not well maintained nowadays in upstream, and furthermore it uses a quite peculiar mixture of build systems (autolib on the main dir, cmake for libprom in a subdir). This makes it difficult to have it widely available in distros, and difficult to find it if it is installed in the system. Hence, the best is to include it as a meson subproject like we already do for freeDiameter. An open5gs fork is requried in order to have an extra patch adding a top-level CMakeList.txt in order to be able to includ eit from open5gs's meson build. Furthermore, this allows adding bugfixes to the subproject if any are found in the future. * [SMF] Initial metrics support * [SMF] Add metrics at gtp_node level * docs: Add tutorial documenting metrics with Prometheus
2022-06-07 20:51:02 +00:00
port: 9090