#
# 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}
    level: info
#
# 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.addr_smf}
    gtpc:
      - addr: ${epc.addr_smf}
    gtpu:
      - addr: ${epc.run_addr}
        port: 2153
    subnet:
      - addr: ${epc.tun_addr}/16
    dns:
      - 8.8.8.8
      - 8.8.4.4
    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.addr_upf}

#
# 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:
