#
# 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.addr_smf}
        port: 2152
    subnet:
      - addr: ${epc.tun_addr}/${epc.tun_netmask}
    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:
