/* 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: "${'{0:03}'.format(int(epc.mcc))}${'{0:02}'.format(int(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",
          gbr:
          {
            maximum_bitrate_dl: 2000000,
            maximum_bitrate_ul: 2000000,
            guaranteed_bitrate_dl: 1000000,
            guaranteed_bitrate_ul: 1000000
          },
          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",
          gbr:
          {
            maximum_bitrate_dl: 2000000,
            maximum_bitrate_ul: 2000000,
            guaranteed_bitrate_dl: 1000000,
            guaranteed_bitrate_ul: 1000000
          },
          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,
      count: ${sub.count},
    },
%endfor
    /* Add new entries for each IMSI/K */
  ],

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