Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 1 | /* ltemme configuration file |
| 2 | * version 2018-10-18 |
| 3 | * Copyright (C) 2015-2018 Amarisoft |
| 4 | */ |
| 5 | { |
| 6 | |
Pau Espin Pedrol | c04528c | 2020-04-01 13:55:51 +0200 | [diff] [blame] | 7 | %if epc.license_server_addr != '0.0.0.0': |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 8 | license_server: { |
| 9 | server_addr: "${epc.license_server_addr}", |
| 10 | name: "amarisoft", |
| 11 | }, |
Pau Espin Pedrol | c04528c | 2020-04-01 13:55:51 +0200 | [diff] [blame] | 12 | %endif |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 13 | |
| 14 | /* Log filter: syntax: layer.field=value[,...] |
| 15 | |
| 16 | Possible layers are nas, ip, s1ap, gtpu and all. The 'all' layer |
| 17 | is used to address all the layers at the same time. |
| 18 | |
| 19 | field values: |
| 20 | |
| 21 | - 'level': the log level of each layer can be set to 'none', |
| 22 | 'error', 'info' or 'debug'. Use 'debug' to log all the messages. |
| 23 | |
| 24 | - 'max_size': set the maximum size of the hex dump. 0 means no |
| 25 | hex dump. -1 means no limit. |
| 26 | */ |
| 27 | //log_options: "all.level=debug,all.max_size=32", |
| 28 | log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1", |
| 29 | log_filename: "${epc.log_filename}", |
| 30 | |
| 31 | /* Enable remote API and Web interface */ |
| 32 | com_addr: "${epc.run_addr}:9000", |
| 33 | |
| 34 | /* bind address for GTP-U. Normally = address of the PC, here bound |
| 35 | on local interface to be able to run ltemme on the same PC as |
| 36 | lteenb. By default, the S1AP SCTP connection is bound on the same |
| 37 | address. */ |
| 38 | gtp_addr: "${epc.run_addr}", |
| 39 | |
| 40 | s1ap_bind_addr: "${epc.run_addr}", |
| 41 | |
Andre Puschmann | 5c4c052 | 2020-07-09 15:55:04 +0200 | [diff] [blame] | 42 | plmn: "${'{0:03}'.format(int(epc.mcc))}${'{0:02}'.format(int(epc.mnc))}", |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 43 | mme_group_id: 32769, |
| 44 | mme_code: 1, |
| 45 | |
| 46 | /* network name and network short name sent in the EMM information |
| 47 | message to the UE */ |
| 48 | network_name: "Amarisoft Network", |
| 49 | network_short_name: "Amarisoft", |
| 50 | |
| 51 | /* Control Plane Cellular IoT EPS optimization support */ |
| 52 | cp_ciot_opt: true, |
| 53 | |
Andre Puschmann | 8d37a98 | 2021-05-04 17:33:30 +0200 | [diff] [blame] | 54 | /* DCNR support */ |
| 55 | nr_support: true, |
| 56 | |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 57 | /* Public Data Networks. The first one is the default. */ |
| 58 | pdn_list: [ |
| 59 | { |
| 60 | /* Some UE requires a specific PDN for data access */ |
| 61 | pdn_type: "ipv4", |
| 62 | access_point_name: "internet", |
| 63 | first_ip_addr: "192.168.4.2", |
| 64 | last_ip_addr: "192.168.4.254", |
| 65 | ip_addr_shift: 2, |
| 66 | dns_addr: "8.8.8.8", /* Google DNS address */ |
| 67 | erabs: [ |
| 68 | { |
Pau Espin Pedrol | 04ad3b5 | 2020-04-06 12:25:22 +0200 | [diff] [blame] | 69 | qci: ${epc.qci}, |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 70 | priority_level: 15, |
| 71 | pre_emption_capability: "shall_not_trigger_pre_emption", |
| 72 | pre_emption_vulnerability: "not_pre_emptable", |
| 73 | }, |
Andre Puschmann | d5a58d0 | 2020-06-17 15:43:43 +0200 | [diff] [blame] | 74 | { |
| 75 | qci: 1, |
| 76 | priority_level: 1, |
| 77 | pre_emption_capability: "shall_not_trigger_pre_emption", |
| 78 | pre_emption_vulnerability: "not_pre_emptable", |
| 79 | setup_type: "on_demand", |
AlaiaL | 9e025a3 | 2021-03-25 16:37:02 +0100 | [diff] [blame] | 80 | gbr: |
| 81 | { |
| 82 | maximum_bitrate_dl: 2000000, |
| 83 | maximum_bitrate_ul: 2000000, |
| 84 | guaranteed_bitrate_dl: 1000000, |
| 85 | guaranteed_bitrate_ul: 1000000 |
| 86 | }, |
Andre Puschmann | d5a58d0 | 2020-06-17 15:43:43 +0200 | [diff] [blame] | 87 | filters: [ |
| 88 | { |
| 89 | direction: "both", |
| 90 | id: 1, |
| 91 | precedence: 0, |
| 92 | components: [ |
| 93 | { |
| 94 | type_of_service: 0xb8, |
| 95 | mask: 255 |
| 96 | } |
| 97 | ] |
| 98 | } |
| 99 | ], |
| 100 | on_demand_timeout: 10000, |
| 101 | on_demand_ul_trigger: true, |
| 102 | transaction_identifier: 20, |
| 103 | radio_priority: 1, |
| 104 | packet_flow_identifier: 20 |
| 105 | }, |
| 106 | { |
| 107 | qci: 2, |
| 108 | priority_level: 1, |
| 109 | pre_emption_capability: "shall_not_trigger_pre_emption", |
| 110 | pre_emption_vulnerability: "not_pre_emptable", |
| 111 | setup_type: "on_demand", |
AlaiaL | 9e025a3 | 2021-03-25 16:37:02 +0100 | [diff] [blame] | 112 | gbr: |
| 113 | { |
| 114 | maximum_bitrate_dl: 2000000, |
| 115 | maximum_bitrate_ul: 2000000, |
| 116 | guaranteed_bitrate_dl: 1000000, |
| 117 | guaranteed_bitrate_ul: 1000000 |
| 118 | }, |
Andre Puschmann | d5a58d0 | 2020-06-17 15:43:43 +0200 | [diff] [blame] | 119 | filters: [ |
| 120 | { |
| 121 | direction: "both", |
| 122 | id: 2, |
| 123 | precedence: 1, |
| 124 | components: [ |
| 125 | { |
| 126 | type_of_service: 0x60, |
| 127 | mask: 255 |
| 128 | } |
| 129 | ] |
| 130 | } |
| 131 | ], |
| 132 | on_demand_timeout: 10000, |
| 133 | on_demand_ul_trigger: true, |
| 134 | transaction_identifier: 21, |
| 135 | radio_priority: 1, |
| 136 | packet_flow_identifier: 21 |
| 137 | }, |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 138 | ], |
| 139 | }, |
| 140 | ], |
| 141 | /* Setup script for the network interface. |
| 142 | If no script is given, no network interface is created. |
| 143 | Script is called for each PDN with following parameters: |
| 144 | 1) Interface name |
| 145 | 2) PDN index |
| 146 | 3) Access Point Name |
| 147 | 4) IP version: 'ipv4' or 'ipv6' |
| 148 | 5) IP address: first IP address for ipv4 and link local address for IPv6 |
| 149 | 6) First IP address |
| 150 | 7) Last IP address |
| 151 | */ |
| 152 | tun_setup_script: "${epc.ifup_filename}", |
| 153 | |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 154 | /* NAS ciphering algorithm preference. EEA0 is always the last. */ |
| 155 | nas_cipher_algo_pref: [ ], |
| 156 | /* NAS integrity algorithm preference. EIA0 is always the last. */ |
| 157 | nas_integ_algo_pref: [ 2, 1 ], |
| 158 | |
| 159 | /* user data base */ |
| 160 | ue_db: [ |
| 161 | %for sub in epc.hss.subscribers: |
| 162 | { |
| 163 | sim_algo: "${sub.auth_algo}", /* USIM authentication algorithm: xor, milenage or tuak */ |
| 164 | imsi: "${sub.imsi}", /* Anritsu Test USIM */ |
| 165 | amf: 0x9001, /* Authentication Management Field */ |
| 166 | sqn: "000000000000", /* Sequence Number */ |
| 167 | K: "${sub.ki}", /* Anritsu Test USIM */ |
Pau Espin Pedrol | 0f7f265 | 2020-07-13 12:01:10 +0200 | [diff] [blame] | 168 | % if sub.opc: |
| 169 | opc: "${sub.opc}", |
| 170 | % endif |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 171 | /* if true, allow several UEs to have the same IMSI (useful |
| 172 | with test SIM cards). They are distinguished with their |
| 173 | IMEI. default = false. */ |
Pau Espin Pedrol | 0f7f265 | 2020-07-13 12:01:10 +0200 | [diff] [blame] | 174 | multi_sim: false, |
Andre Puschmann | 0e72f9d | 2021-01-28 21:22:01 +0100 | [diff] [blame] | 175 | count: ${sub.count}, |
Pau Espin Pedrol | da2e31f | 2020-03-31 13:45:01 +0200 | [diff] [blame] | 176 | }, |
| 177 | %endfor |
| 178 | /* Add new entries for each IMSI/K */ |
| 179 | ], |
| 180 | |
| 181 | /* persistent user database */ |
| 182 | //ue_db_filename: "lte_ue.db", |
| 183 | } |