/* ltemme configuration file
 * version 2018-10-18
 * Copyright (C) 2015-2018 Amarisoft
 */
{

%if epc.license_server_addr != '0.0.0.0':
  license_server: {
    server_addr: "${epc.license_server_addr}",
    name: "amarisoft",
  },
%endif

  /* Log filter: syntax: layer.field=value[,...]

     Possible layers are nas, ip, s1ap, gtpu and all. The 'all' layer
     is used to address all the layers at the same time.

     field values:

     - 'level': the log level of each layer can be set to 'none',
     'error', 'info' or 'debug'. Use 'debug' to log all the messages.

     - 'max_size': set the maximum size of the hex dump. 0 means no
       hex dump. -1 means no limit.
  */
  //log_options: "all.level=debug,all.max_size=32",
  log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1",
  log_filename: "${epc.log_filename}",

  /* Enable remote API and Web interface */
  com_addr: "${epc.run_addr}:9000",

  /* bind address for GTP-U. Normally = address of the PC, here bound
    on local interface to be able to run ltemme on the same PC as
    lteenb. By default, the S1AP SCTP connection is bound on the same
    address. */
  gtp_addr: "${epc.run_addr}",

  s1ap_bind_addr: "${epc.run_addr}",

  plmn: "${epc.mcc}${epc.mnc}",
  mme_group_id: 32769,
  mme_code: 1,

  /* network name and network short name sent in the EMM information
     message to the UE */
  network_name: "Amarisoft Network",
  network_short_name: "Amarisoft",

  /* Control Plane Cellular IoT EPS optimization support */
  cp_ciot_opt: true,

  /* Public Data Networks. The first one is the default. */
  pdn_list: [
    {
      /* Some UE requires a specific PDN for data access */
      pdn_type: "ipv4",
      access_point_name: "internet",
      first_ip_addr: "192.168.4.2",
      last_ip_addr: "192.168.4.254",
      ip_addr_shift: 2,
      dns_addr: "8.8.8.8", /* Google DNS address */
      erabs: [
        {
          qci: ${epc.qci},
          priority_level: 15,
          pre_emption_capability: "shall_not_trigger_pre_emption",
          pre_emption_vulnerability: "not_pre_emptable",
        },
        {
          qci: 1,
          priority_level: 1,
          pre_emption_capability: "shall_not_trigger_pre_emption",
          pre_emption_vulnerability: "not_pre_emptable",
          setup_type: "on_demand",
          filters: [
            {
              direction: "both",
              id: 1,
              precedence: 0,
              components: [
                {
                  type_of_service: 0xb8,
                  mask: 255
                }
              ]
            }
          ],
          on_demand_timeout: 10000,
          on_demand_ul_trigger: true,
          transaction_identifier: 20,
          radio_priority: 1,
          packet_flow_identifier: 20
        },
        {
          qci: 2,
          priority_level: 1,
          pre_emption_capability: "shall_not_trigger_pre_emption",
          pre_emption_vulnerability: "not_pre_emptable",
          setup_type: "on_demand",
          filters: [
            {
              direction: "both",
              id: 2,
              precedence: 1,
              components: [
                {
                  type_of_service: 0x60,
                  mask: 255
                }
              ]
            }
          ],
          on_demand_timeout: 10000,
          on_demand_ul_trigger: true,
          transaction_identifier: 21,
          radio_priority: 1,
          packet_flow_identifier: 21
        },
      ],
    },
  ],
  /* Setup script for the network interface.
     If no script is given, no network interface is created.
     Script is called for each PDN with following parameters:
        1) Interface name
        2) PDN index
        3) Access Point Name
        4) IP version: 'ipv4' or 'ipv6'
        5) IP address: first IP address for ipv4 and link local address for IPv6
        6) First IP address
        7) Last IP address
  */
  tun_setup_script: "${epc.ifup_filename}",

  /* If true, inter-UE routing is done inside the MME (hence no IP
     packet is output to the virtual network interface in case of
     inter-UE communication). Otherwise, it is done by the Linux IP
     layer. */
  ue_to_ue_forwarding: false,

  /* NAS ciphering algorithm preference. EEA0 is always the last. */
  nas_cipher_algo_pref: [ ],
  /* NAS integrity algorithm preference. EIA0 is always the last. */
  nas_integ_algo_pref: [ 2, 1 ],

  /* user data base */
  ue_db: [
%for sub in epc.hss.subscribers:
    {
      sim_algo: "${sub.auth_algo}", /* USIM authentication algorithm: xor, milenage or tuak */
      imsi: "${sub.imsi}", /* Anritsu Test USIM */
      amf: 0x9001, /* Authentication Management Field */
      sqn: "000000000000", /* Sequence Number */
      K: "${sub.ki}", /* Anritsu Test USIM */
% if sub.opc:
      opc: "${sub.opc}",
% endif
      /* if true, allow several UEs to have the same IMSI (useful
         with test SIM cards). They are distinguished with their
         IMEI. default = false. */
      multi_sim: false,
    },
%endfor
    /* Add new entries for each IMSI/K */
  ],

  /* persistent user database */
  //ue_db_filename: "lte_ue.db",
}
