#
# 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,s1ap,nas,fd,gtp,mme,emm,esm,event,tlv,mem,sock
#
logger:
    file: ${mme.log_filename}
    level: info

mme:
    freeDiameter: ${mme.diameter_filename}
    s1ap:
      - addr: ${epc.run_addr}
    gtpc:
      - addr: ${epc.run_addr}
    gummei:
      plmn_id:
        mcc: ${epc.mcc}
        mnc: ${epc.mnc}
      mme_gid: 2
      mme_code: 1
    tai:
      plmn_id:
        mcc: ${epc.mcc}
        mnc: ${epc.mnc}
      tac: 7
    security:
        integrity_order : [ EIA2, EIA1, EIA0 ]
        ciphering_order : [ EEA0, EEA1, EEA2 ]
    network_name:
        full: Open5GS
    mme_name: open5gs-mme0

#
# sgwc:
#
# <GTP-C Client>
#
#  o Specify SGW addresses the GTP-C must connect to
#
#  o One SGW is defined.
#    If prefer_ipv4 is not true, [fe80::2%lo] is selected.
#    gtpc:
#      addr:
#        - 127.0.0.3
#        - fe80::2%lo
#
#  o Two SGW are defined. MME selects SGW with round-robin manner per UE
#    gtpc:
#      - addr: 127.0.0.3
#      - addr: fe80::2%lo
#
#  o Three SGW are defined. MME selects SGW with round-robin manner per UE
#    gtpc:
#      - addr
#        - 127.0.0.3
#        - fe80::2%lo
#      - addr
#        - 127.0.0.22
#        - fe80::12%lo
#      - name: sgw3.open5gs.org
#
# <SGW Selection Mode>
#
# o Round-Robin
#
#   gtpc:
#     addr: 127.0.0.3
#     addr: 127.0.2.2
#     addr: 127.0.4.2
#
# o SGW selection by eNodeB TAC
#   (either single TAC or multiple TACs, DECIMAL representation)
#
#   gtpc:
#     - addr: 127.0.0.3
#       tac: 26000
#     - addr: 127.0.2.2
#       tac: [25000, 27000, 28000]
#
# o SGW selection by e_cell_id(28bit)
#   (either single or multiple e_cell_id, HEX representation)
#
#   gtpc:
#     - addr: 127.0.0.3
#       e_cell_id: abcde01
#     - addr: 127.0.2.2
#       e_cell_id: [12345, a9413, 98765]
#
sgwc:
    gtpc:
      - addr: ${epc.addr_sgwc}

#
# smf:
#
#  <GTP-C Client>
#
#  o By default, the SMF uses the first SMF node.
#    - To use a different APN for each SMF, specify gtpc.apn as the APN name.
#    - If the HSS uses WebUI to set the SMF IP for each UE,
#      you can use a specific SMF node for each UE.
#
#  o Two SMF are defined. 127.0.0.4:2123 is used.
#    [fe80::3%lo]:2123 is ignored.
#    gtpc:
#      - addr: 127.0.0.4
#      - addr: fe80::3%lo
#
#  o One SMF is defined. if prefer_ipv4 is not true,
#    [fe80::3%lo] is selected.
#    gtpc:
#      - addr:
#        - 127.0.0.4
#        - fe80::3%lo
#
#  o Two SMF are defined with a different APN.
#    - Note that if SMF IP for UE is configured in HSS,
#      the following configurion for this UE is ignored.
#    gtpc:
#      - addr: 127.0.0.4
#        apn: internet
#      - addr: 127.0.0.5
#        apn: volte
#
#  o If APN is omitted, the default APN uses the first SMF node.
#    gtpc:
#      - addr: 127.0.0.4
#      - addr: 127.0.0.5
#        apn: volte
smf:
    gtpc:
      - 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
#
#  o Use OAI UE
#    - Remove HashMME in Security-mode command message
#    - Use the length 1 of EPS network feature support in Attach accept message
#      use_openair: 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:

#
# sctp:
#
#  o heartbit_interval : 5000 (5secs)
#  o rto_initial : 3000 (3secs)
#  o rto_min : 1000 (1sec)
#  o rto_max : 5000 (5secs)
#  o max_num_of_ostreams : 30
#  o max_num_of_istreams : 65535
#  o max_attempts : 4
#  o max_initial_timeout : 8000(8secs)
#  o usrsctp_udp_port : 9899
#
sctp:

#
# time:
#
#  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 MME to send UEContextReleaseCommand
#    to the source eNB after receiving HandoverNotify
#
#  o Handover Wait Duration (500ms)
#    handover:
#        duration: 500
time:
