#
# 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,gtp,upf,event,tlv,mem,sock
#
logger:
    file: ${upf.log_filename}
    level: info

#
# upf:
#
#  <PFCP Server>
#
#  o PFCP Server(127.0.0.7:8805, ::1:8805)
#    pfcp:
#      - addr: 127.0.0.7
#      - addr: ::1
#
#  o PFCP-U Server(127.0.0.1:2152, [::1]:2152)
#    pfcp:
#      name: localhost
#
#  <GTP-U Server>>
#
#  o GTP-U Server(127.0.0.7:2152, [::1]:2152)
#    gtpu:
#      - addr: 127.0.0.7
#      - addr: ::1
#
#  o GTP-U Server(127.0.0.1:2152, [::1]:2152)
#    gtpu:
#      name: localhost
#
#  <Subnet for UE network>
#
#  Note that you need to setup your UE network using TUN device.
#  (ogstun, ogstun2, ogstunX, ..)
#
#  o IPv4 Pool
#    $ sudo ip addr add 10.45.0.1/16 dev ogstun
#
#    subnet:
#      addr: 10.45.0.1/16
#
#  o IPv4/IPv6 Pool
#    $ sudo ip addr add 10.45.0.1/16 dev ogstun
#    $ sudo ip addr add 2001:230:cafe::1/48 dev ogstun
#
#    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
#    All other APNs use 10.45.0.1/16, 2001:230:cafe::1/48
#    $ sudo ip addr add 10.45.0.1/16 dev ogstun
#    $ sudo ip addr add 10.46.0.1/16 dev ogstun
#    $ sudo ip addr add 2001:230:cafe::1/48 dev ogstun
#    $ sudo ip addr add 2001:230:babe::1/48 dev ogstun
#
#    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 Multiple Devices (default: ogstun)
#    $ sudo ip addr add 10.45.0.1/16 dev ogstun
#    $ sudo ip addr add 2001:230:cafe::1/48 dev ogstun2
#    $ sudo ip addr add 10.46.0.1/16 dev ogstun3
#    $ sudo ip addr add 2001:230:babe::1/48 dev ogstun3
#
#    subnet:
#      - addr: 10.45.0.1/16
#        dnn: internet
#      - addr: 2001:230:cafe::1/48
#        dnn: internet
#        dev: ogstun2
#      - addr: 10.46.0.1/16
#        dnn: ims
#        dev: ogstun3
#      - addr: 2001:230:babe::1/48
#        dnn: ims
#        dev: ogstun3
#
upf:
    pfcp:
      - addr: ${epc.addr_upf}
    gtpu:
      - addr: ${epc.addr_upf}
        port: 2152
    subnet:
      - addr: ${epc.tun_addr}/${epc.tun_netmask}
        dnn: ${epc.apn_name}
        dev: ${epc.tun_name}

#
# smf:
#
#  <PFCP Client>>
#
#  o PFCP Client(127.0.0.3:8805)
#
#    pfcp:
#      addr: 127.0.0.3
#
smf:
    pfcp:
      - addr: ${epc.addr_smf}

#
# 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 Message Wait Duration (Default : 10,000 ms = 10 seconds)
#
#  o Message Wait Duration (3000 ms)
#    message:
#        duration: 3000
time:
