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