| /* 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", |
| 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", |
| } |