blob: f46b77e260571f61c87ff56c2548d93686c5a52d [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,
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020077 root_sequence_index: ${loop.index + 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 Puschmannbf40f8c2020-04-14 14:04:32 +0200103% if int(enb.get('transmission_mode')) == 1:
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200104 n_antenna_dl: 1, /* number of DL antennas */
105 n_antenna_ul: 1, /* number of UL antennas */
Andre Puschmannbf40f8c2020-04-14 14:04:32 +0200106% else:
107 n_antenna_dl: 2, /* number of DL antennas */
108 n_antenna_ul: 2, /* number of UL antennas */
109% endif
110
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200111 n_rb_dl: ${enb.num_prb}, /* Bandwidth: 25: 5 MHz, 50: 10 MHz, 75: 15 MHz, 100: 20 MHz */
112 cyclic_prefix: "normal",
113
114 phich_duration: "normal",
115 phich_resource: "1", /* ratio of NG */
116
117 /* System Information Block type 1 */
118 sib1: "amarisoft_sib1.asn",
119
120 /* other SIBs, in same order as the scheduling list in SIB 1 */
121 sib_sched_list: [ "amarisoft_sib23.asn" ],
122
123 si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */
124 si_pdcch_format: 2, /* 2 or 3. Log2 of the number of CCEs for PDCCH
125 for SI/RA/P-RNTI */
126
127 n_symb_cch: 0, /* number of symbols for CCH (0 = auto) */
128
129 /* PDSCH dedicated config (currently same for all UEs) */
130 pdsch_dedicated: {
131 p_a: 0,
132 },
133
134 /* If defined, force for number of CCEs for UE specific PDCCH to
135 2^pdcch_format. Otherwise it is computed from the reported
136 CQI. Range: 0 to 3. */
Andre Puschmann0694c302020-06-22 13:10:24 +0200137 //pdcch_format: 1,
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200138
139 /* if defined, force the PDSCH MCS for all UEs. Otherwise it is
140 computed from the reported CQI */
141 /* pdsch_mcs: 12, */
142
143 /* PUSCH dedicated config (currently same for all UEs) */
144 pusch_dedicated: {
145 beta_offset_ack_index: 9,
146 beta_offset_ri_index: 6,
147 beta_offset_cqi_index: 6,
148 },
149
150 /* MCS for Msg3 (=CCCH RRC Connection Request) */
151 pusch_msg3_mcs: 0,
152
153 /* this CQI value is assumed when none is received from the UE */
154 initial_cqi: 5,
155
156 /* if defined, force the PUSCH MCS for all UEs. Otherwise it is
157 computed from the last received SRS/PUSCH. */
158 // pusch_mcs: 18,
159
160 transmission_mode: ${enb.transmission_mode},
161
162 /* Scheduling request period (ms). Must be >= 40 for HD-FDD */
163 sr_period: 20,
164
165 /* CQI report config */
Andre Puschmann0694c302020-06-22 13:10:24 +0200166 cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200167
168 /* RI reporting is done with a period of m_ri * cqi_period.
169 m_ri = 0 (default) disables RI reporting. */
Andre Puschmann487d1ef2020-05-28 15:22:18 +0200170 % if int(enb.get('transmission_mode')) > 1:
171 m_ri: 8,
172 % endif
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200173
Andre Puschmanna0e69aa2020-04-06 14:51:31 +0200174 pucch_dedicated: {
175 /* ack/nack feedback mode when carrier aggregation is
176 enabled. It can be "cs" (for at most two scells) or "pucch3"
177 (used in all cases if more than two cells). */
178 ack_nack_feedback_mode_ca: "cs",
179
180 /* TDD ack/nack feedback mode when a rel 10 UE is detected. It
181 can be "bundling", "multiplexing", "cs" or "pucch3". By
182 default is it the same as tdd_ack_nack_feedback_mode. */
183 // tdd_ack_nack_feedback_mode_r10: "cs",
184
185 /* number of PUCCH 1b CS resources. It determines
186 the maximum number of UEs that can be scheduled in one TTI
187 using carrier aggregation with PUCCH 1b CS ack/nack feedback. */
188 n1_pucch_an_cs_count: 1,
189
190 /* number of resource blocks for PUCCH 3. It determines
191 the maximum number of UEs that can be scheduled in one TTI
192 using carrier aggregation with PUCCH 3 ack/nack feedback. */
193 n3_pucch_an_n_rb: 0,
194 },
195
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200196 /* SRS dedicated config. All UEs share these
197 parameters. srs_config_index and freq_domain_position are
198 allocated for each UE) */
199 srs_dedicated: {
Andre Puschmann0694c302020-06-22 13:10:24 +0200200 srs_period: 160, /* period (ms). Must be >= 40 for HD-FDD */
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200201 srs_bandwidth: 1,
202 srs_hopping_bandwidth: 0,
203 },
204
205 /* MAC configuration (same for all UEs) */
206 mac_config: {
207 ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
208 dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
209 },
210
211 /* CPU load limitation */
212 pusch_max_its: 6, /* max number of turbo decoder iterations */
213
214 /* dynamic power control */
215 dpc: true,
216 dpc_pusch_snr_target: 15,
217 dpc_pucch_snr_target: 10,
218
219 /* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
220 cipher_algo_pref: [],
221 /* RRC integrity algorithm preference. EIA0 is always the last. */
222 integ_algo_pref: [2, 1],
223
224 /* (in ms) send RRC connection release after this time of network
225 inactivity */
Andre Puschmann0cfc0842020-08-26 18:19:15 +0200226 inactivity_timer: ${enb.inactivity_timer},
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200227
228 /* SRB configuration */
229 srb_config: [
230 {
231 id: 1,
232 maxRetxThreshold: 32,
233 t_Reordering: 45,
234 t_PollRetransmit: 60,
235 },
236 {
237 id: 2 ,
238 maxRetxThreshold: 32,
239 t_Reordering: 45,
240 t_PollRetransmit: 60,
241 }
242 ],
243
244 /* DRB configuration */
245 drb_config: "amarisoft_drb.cfg",
Andre Puschmanna7f19832020-04-07 14:38:27 +0200246
247% if enb.enable_measurements:
248 /* measurement configuration */
249 meas_config_desc: {
250 a1_report_type: "${enb.a1_report_type}",
251 a1_${enb.a1_report_type}: ${enb.a1_report_value},
252 a1_hysteresis: ${enb.a1_hysteresis},
253 a1_time_to_trigger: ${enb.a1_time_to_trigger},
254 a2_report_type: "${enb.a2_report_type}",
255 a2_${enb.a2_report_type}: ${enb.a2_report_value},
256 a2_hysteresis: ${enb.a2_hysteresis},
257 a2_time_to_trigger: ${enb.a2_time_to_trigger},
258 a3_report_type: "${enb.a3_report_type}",
259 a3_offset: ${enb.a3_report_value},
260 a3_hysteresis: ${enb.a3_hysteresis},
261 a3_time_to_trigger: ${enb.a3_time_to_trigger},
262 },
263
264 /* measurement gap configuration */
265 meas_gap_config: "gp0",
266
267 /* if true, initiate a handover when a suitable measurement report
268 is received */
269 ho_from_meas: true,
270% endif
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200271 },
272}