blob: a0f22ff8bbe1c7ff344ba05447d7642eb6187a7b [file] [log] [blame]
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +02001/* lteenb configuration file version 2018-10-18
2 * Copyright (C) 2015-2018 Amarisoft
3 */
4{
5
Pau Espin Pedrolc04528c2020-04-01 13:55:51 +02006%if enb.license_server_addr != '0.0.0.0':
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +02007 license_server: {
8 server_addr: "${enb.license_server_addr}",
9 name: "amarisoft",
10 },
Pau Espin Pedrolc04528c2020-04-01 13:55:51 +020011%endif
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020012
Pau Espin Pedrold45a29e2020-04-02 17:21:47 +020013% if enb.rf_dev_type == 'zmq':
14 /* Force sampling rate (if uncommented) */
15 sample_rate: ${enb.sample_rate},
16%endif
17
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020018 /* Log filter: syntax: layer.field=value[,...]
19
20 Possible layers are phy, mac, rlc, pdcp, rrc, nas, s1ap, x2ap, gtpu and
21 all. The 'all' layer is used to address all the layers at the
22 same time.
23
24 field values:
25
26 - 'level': the log level of each layer can be set to 'none',
27 'error', 'info' or 'debug'. Use 'debug' to log all the messages.
28
29 - 'max_size': set the maximum size of the hex dump. 0 means no
30 hex dump. -1 means no limit.
31 */
Andre Puschmann62e887d2020-06-16 14:42:28 +020032 log_options: "${enb.log_options}",
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020033 log_filename: "${enb.log_filename}",
34
Andre Puschmanndbe4bb32020-07-15 14:43:51 +020035% if enb.enable_pcap == 'true':
36 pcap: {filename:"${enb.pcap_filename}"},
37%endif
38
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020039 /* Enable remote API and Web interface */
40 com_addr: "${enb.addr}:9001",
41
42 /* RF driver configuration */
43 include "amarisoft_rf_driver.cfg",
44
Andre Puschmann955249d2020-07-01 15:44:09 +020045% if enb.enable_dl_awgn:
46 channel_dl: {
47 type: "awgn",
48 snr: ${enb.dl_awgn_snr}
49 },
50% endif
51
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020052 mme_list: [
53 {
Pau Espin Pedrol3b49d462020-06-11 13:15:53 +020054 s1ap_bind_addr: "${enb.addr}",
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020055 /* address of MME for S1AP connection. Must be modified if the MME
56 runs on a different host. */
57 mme_addr: "${enb.mme_addr}",
58 },
59 ],
60 /* GTP bind address (=address of the ethernet interface connected to
61 the MME). Must be modified if the MME runs on a different host. */
Andre Puschmann4b5a09a2020-04-14 22:24:00 +020062 gtp_addr: "${enb.gtp_bind_addr}",
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020063
64 /* high 20 bits of SIB1.cellIdentifier */
Pau Espin Pedrol491f77c2020-04-20 14:20:43 +020065 enb_id: ${enb.id},
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020066
67 /* list of cells */
68 cell_list: [
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020069
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020070%for cell in enb.cell_list:
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020071 {
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020072 dl_earfcn: ${cell.dl_earfcn},
Andre Puschmann549826d2020-04-21 21:14:30 +020073 rf_port: ${cell.rf_port},
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020074 cell_id: ${cell.cell_id},
Pau Espin Pedrol154dc932020-04-20 17:02:08 +020075 n_id_cell: ${cell.pci},
Andre Puschmann0908ceb2020-09-23 17:03:21 +020076 tac: 0x0007,
Andre Puschmanna9bbbd62020-09-30 14:46:27 +020077 root_sequence_index: ${loop.index * 10 + 204}, /* PRACH root sequence index */
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020078
Pau Espin Pedrol6c778742020-04-20 12:15:06 +020079 ncell_list: [
80%for ncell in enb.cell_list:
81%if ncell.cell_id in cell.ncell_list:
82 { n_id_cell: ${ncell.pci}, dl_earfcn: ${ncell.dl_earfcn}, cell_id: ${ncell.cell_id}, tac: 1 },
83%endif
84%endfor
85 ],
86
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020087 scell_list: [
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020088%for scell_id in cell.scell_list:
89 { cell_id: ${scell_id}, cross_carrier_scheduling: false, scheduling_cell_id: ${cell.cell_id}, ul_allowed: true},
90%endfor
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020091 ],
92 },
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020093%endfor
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020094 ], /* cell_list */
95
96 /* default cell parameters */
97 cell_default: {
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020098 /* Broadcasted PLMN identities */
99 plmn_list: [
Andre Puschmann5c4c0522020-07-09 15:55:04 +0200100 "${'{0:03}'.format(int(enb.mcc))}${'{0:02}'.format(int(enb.mnc))}",
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200101 ],
102
Andre Puschmannd0682ba2020-10-15 15:46:29 +0200103% if enb.get('duplex') == "tdd":
104 uldl_config: ${enb.tdd_uldl_config},
105 sp_config: ${enb.tdd_special_subframe_pattern},
106% endif
107
Andre Puschmannbf40f8c2020-04-14 14:04:32 +0200108% if int(enb.get('transmission_mode')) == 1:
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200109 n_antenna_dl: 1, /* number of DL antennas */
110 n_antenna_ul: 1, /* number of UL antennas */
Andre Puschmannbf40f8c2020-04-14 14:04:32 +0200111% else:
112 n_antenna_dl: 2, /* number of DL antennas */
113 n_antenna_ul: 2, /* number of UL antennas */
114% endif
115
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200116 n_rb_dl: ${enb.num_prb}, /* Bandwidth: 25: 5 MHz, 50: 10 MHz, 75: 15 MHz, 100: 20 MHz */
117 cyclic_prefix: "normal",
118
119 phich_duration: "normal",
120 phich_resource: "1", /* ratio of NG */
121
122 /* System Information Block type 1 */
123 sib1: "amarisoft_sib1.asn",
124
125 /* other SIBs, in same order as the scheduling list in SIB 1 */
126 sib_sched_list: [ "amarisoft_sib23.asn" ],
127
128 si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */
129 si_pdcch_format: 2, /* 2 or 3. Log2 of the number of CCEs for PDCCH
130 for SI/RA/P-RNTI */
131
132 n_symb_cch: 0, /* number of symbols for CCH (0 = auto) */
133
134 /* PDSCH dedicated config (currently same for all UEs) */
135 pdsch_dedicated: {
136 p_a: 0,
137 },
138
139 /* If defined, force for number of CCEs for UE specific PDCCH to
140 2^pdcch_format. Otherwise it is computed from the reported
141 CQI. Range: 0 to 3. */
Andre Puschmann0694c302020-06-22 13:10:24 +0200142 //pdcch_format: 1,
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200143
144 /* if defined, force the PDSCH MCS for all UEs. Otherwise it is
145 computed from the reported CQI */
146 /* pdsch_mcs: 12, */
147
148 /* PUSCH dedicated config (currently same for all UEs) */
149 pusch_dedicated: {
150 beta_offset_ack_index: 9,
151 beta_offset_ri_index: 6,
152 beta_offset_cqi_index: 6,
153 },
154
155 /* MCS for Msg3 (=CCCH RRC Connection Request) */
156 pusch_msg3_mcs: 0,
157
158 /* this CQI value is assumed when none is received from the UE */
159 initial_cqi: 5,
160
161 /* if defined, force the PUSCH MCS for all UEs. Otherwise it is
162 computed from the last received SRS/PUSCH. */
163 // pusch_mcs: 18,
164
165 transmission_mode: ${enb.transmission_mode},
166
167 /* Scheduling request period (ms). Must be >= 40 for HD-FDD */
168 sr_period: 20,
169
170 /* CQI report config */
Andre Puschmann0694c302020-06-22 13:10:24 +0200171 cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200172
173 /* RI reporting is done with a period of m_ri * cqi_period.
174 m_ri = 0 (default) disables RI reporting. */
Andre Puschmann487d1ef2020-05-28 15:22:18 +0200175 % if int(enb.get('transmission_mode')) > 1:
176 m_ri: 8,
177 % endif
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200178
Andre Puschmanna0e69aa2020-04-06 14:51:31 +0200179 pucch_dedicated: {
180 /* ack/nack feedback mode when carrier aggregation is
181 enabled. It can be "cs" (for at most two scells) or "pucch3"
182 (used in all cases if more than two cells). */
183 ack_nack_feedback_mode_ca: "cs",
184
185 /* TDD ack/nack feedback mode when a rel 10 UE is detected. It
186 can be "bundling", "multiplexing", "cs" or "pucch3". By
187 default is it the same as tdd_ack_nack_feedback_mode. */
Andre Puschmannd0682ba2020-10-15 15:46:29 +0200188% if enb.get('duplex') == "tdd":
189 tdd_ack_nack_feedback_mode: "bundling",
Andre Puschmanna0e69aa2020-04-06 14:51:31 +0200190 // tdd_ack_nack_feedback_mode_r10: "cs",
Andre Puschmannd0682ba2020-10-15 15:46:29 +0200191% endif
Andre Puschmanna0e69aa2020-04-06 14:51:31 +0200192
193 /* number of PUCCH 1b CS resources. It determines
194 the maximum number of UEs that can be scheduled in one TTI
195 using carrier aggregation with PUCCH 1b CS ack/nack feedback. */
196 n1_pucch_an_cs_count: 1,
197
198 /* number of resource blocks for PUCCH 3. It determines
199 the maximum number of UEs that can be scheduled in one TTI
200 using carrier aggregation with PUCCH 3 ack/nack feedback. */
201 n3_pucch_an_n_rb: 0,
202 },
203
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200204 /* SRS dedicated config. All UEs share these
205 parameters. srs_config_index and freq_domain_position are
206 allocated for each UE) */
207 srs_dedicated: {
Andre Puschmann0694c302020-06-22 13:10:24 +0200208 srs_period: 160, /* period (ms). Must be >= 40 for HD-FDD */
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200209 srs_bandwidth: 1,
210 srs_hopping_bandwidth: 0,
211 },
212
213 /* MAC configuration (same for all UEs) */
214 mac_config: {
215 ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
216 dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
Andre Puschmann51fa9412020-09-29 23:10:53 +0200217 ul_max_consecutive_retx: 1000,
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200218 },
219
220 /* CPU load limitation */
221 pusch_max_its: 6, /* max number of turbo decoder iterations */
222
223 /* dynamic power control */
224 dpc: true,
225 dpc_pusch_snr_target: 15,
226 dpc_pucch_snr_target: 10,
227
228 /* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
229 cipher_algo_pref: [],
230 /* RRC integrity algorithm preference. EIA0 is always the last. */
231 integ_algo_pref: [2, 1],
232
233 /* (in ms) send RRC connection release after this time of network
234 inactivity */
Andre Puschmann0cfc0842020-08-26 18:19:15 +0200235 inactivity_timer: ${enb.inactivity_timer},
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200236
237 /* SRB configuration */
238 srb_config: [
239 {
240 id: 1,
241 maxRetxThreshold: 32,
242 t_Reordering: 45,
243 t_PollRetransmit: 60,
244 },
245 {
246 id: 2 ,
247 maxRetxThreshold: 32,
248 t_Reordering: 45,
249 t_PollRetransmit: 60,
250 }
251 ],
252
253 /* DRB configuration */
254 drb_config: "amarisoft_drb.cfg",
Andre Puschmanna7f19832020-04-07 14:38:27 +0200255
256% if enb.enable_measurements:
257 /* measurement configuration */
258 meas_config_desc: {
259 a1_report_type: "${enb.a1_report_type}",
260 a1_${enb.a1_report_type}: ${enb.a1_report_value},
261 a1_hysteresis: ${enb.a1_hysteresis},
262 a1_time_to_trigger: ${enb.a1_time_to_trigger},
263 a2_report_type: "${enb.a2_report_type}",
264 a2_${enb.a2_report_type}: ${enb.a2_report_value},
265 a2_hysteresis: ${enb.a2_hysteresis},
266 a2_time_to_trigger: ${enb.a2_time_to_trigger},
267 a3_report_type: "${enb.a3_report_type}",
268 a3_offset: ${enb.a3_report_value},
269 a3_hysteresis: ${enb.a3_hysteresis},
270 a3_time_to_trigger: ${enb.a3_time_to_trigger},
271 },
272
273 /* measurement gap configuration */
274 meas_gap_config: "gp0",
275
276 /* if true, initiate a handover when a suitable measurement report
277 is received */
278 ho_from_meas: true,
279% endif
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200280 },
281}