blob: c02192c1c70d13221e90d1a40f1af3c3a4d9783b [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
35 /* Enable remote API and Web interface */
36 com_addr: "${enb.addr}:9001",
37
38 /* RF driver configuration */
39 include "amarisoft_rf_driver.cfg",
40
41 mme_list: [
42 {
Pau Espin Pedrol3b49d462020-06-11 13:15:53 +020043 s1ap_bind_addr: "${enb.addr}",
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020044 /* address of MME for S1AP connection. Must be modified if the MME
45 runs on a different host. */
46 mme_addr: "${enb.mme_addr}",
47 },
48 ],
49 /* GTP bind address (=address of the ethernet interface connected to
50 the MME). Must be modified if the MME runs on a different host. */
Andre Puschmann4b5a09a2020-04-14 22:24:00 +020051 gtp_addr: "${enb.gtp_bind_addr}",
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020052
53 /* high 20 bits of SIB1.cellIdentifier */
Pau Espin Pedrol491f77c2020-04-20 14:20:43 +020054 enb_id: ${enb.id},
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020055
56 /* list of cells */
57 cell_list: [
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020058
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020059%for cell in enb.cell_list:
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020060 {
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020061 dl_earfcn: ${cell.dl_earfcn},
Andre Puschmann549826d2020-04-21 21:14:30 +020062 rf_port: ${cell.rf_port},
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020063 cell_id: ${cell.cell_id},
Pau Espin Pedrol154dc932020-04-20 17:02:08 +020064 n_id_cell: ${cell.pci},
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020065 tac: 0x0001,
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020066 root_sequence_index: ${loop.index + 204}, /* PRACH root sequence index */
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020067
Pau Espin Pedrol6c778742020-04-20 12:15:06 +020068 ncell_list: [
69%for ncell in enb.cell_list:
70%if ncell.cell_id in cell.ncell_list:
71 { n_id_cell: ${ncell.pci}, dl_earfcn: ${ncell.dl_earfcn}, cell_id: ${ncell.cell_id}, tac: 1 },
72%endif
73%endfor
74 ],
75
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020076 scell_list: [
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020077%for scell_id in cell.scell_list:
78 { cell_id: ${scell_id}, cross_carrier_scheduling: false, scheduling_cell_id: ${cell.cell_id}, ul_allowed: true},
79%endfor
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020080 ],
81 },
Pau Espin Pedrolf46ae222020-04-17 16:23:54 +020082%endfor
Andre Puschmanna0e69aa2020-04-06 14:51:31 +020083 ], /* cell_list */
84
85 /* default cell parameters */
86 cell_default: {
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020087 /* Broadcasted PLMN identities */
88 plmn_list: [
89 "${enb.mcc}${enb.mnc}",
90 ],
91
Andre Puschmannbf40f8c2020-04-14 14:04:32 +020092% if int(enb.get('transmission_mode')) == 1:
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +020093 n_antenna_dl: 1, /* number of DL antennas */
94 n_antenna_ul: 1, /* number of UL antennas */
Andre Puschmannbf40f8c2020-04-14 14:04:32 +020095% else:
96 n_antenna_dl: 2, /* number of DL antennas */
97 n_antenna_ul: 2, /* number of UL antennas */
98% endif
99
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200100 n_rb_dl: ${enb.num_prb}, /* Bandwidth: 25: 5 MHz, 50: 10 MHz, 75: 15 MHz, 100: 20 MHz */
101 cyclic_prefix: "normal",
102
103 phich_duration: "normal",
104 phich_resource: "1", /* ratio of NG */
105
106 /* System Information Block type 1 */
107 sib1: "amarisoft_sib1.asn",
108
109 /* other SIBs, in same order as the scheduling list in SIB 1 */
110 sib_sched_list: [ "amarisoft_sib23.asn" ],
111
112 si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */
113 si_pdcch_format: 2, /* 2 or 3. Log2 of the number of CCEs for PDCCH
114 for SI/RA/P-RNTI */
115
116 n_symb_cch: 0, /* number of symbols for CCH (0 = auto) */
117
118 /* PDSCH dedicated config (currently same for all UEs) */
119 pdsch_dedicated: {
120 p_a: 0,
121 },
122
123 /* If defined, force for number of CCEs for UE specific PDCCH to
124 2^pdcch_format. Otherwise it is computed from the reported
125 CQI. Range: 0 to 3. */
126 pdcch_format: 1,
127
128 /* if defined, force the PDSCH MCS for all UEs. Otherwise it is
129 computed from the reported CQI */
130 /* pdsch_mcs: 12, */
131
132 /* PUSCH dedicated config (currently same for all UEs) */
133 pusch_dedicated: {
134 beta_offset_ack_index: 9,
135 beta_offset_ri_index: 6,
136 beta_offset_cqi_index: 6,
137 },
138
139 /* MCS for Msg3 (=CCCH RRC Connection Request) */
140 pusch_msg3_mcs: 0,
141
142 /* this CQI value is assumed when none is received from the UE */
143 initial_cqi: 5,
144
145 /* if defined, force the PUSCH MCS for all UEs. Otherwise it is
146 computed from the last received SRS/PUSCH. */
147 // pusch_mcs: 18,
148
149 transmission_mode: ${enb.transmission_mode},
150
151 /* Scheduling request period (ms). Must be >= 40 for HD-FDD */
152 sr_period: 20,
153
154 /* CQI report config */
Andre Puschmann487d1ef2020-05-28 15:22:18 +0200155 cqi_period: 160, /* period (ms). Must be >= 32 for HD-FDD */
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200156
157 /* RI reporting is done with a period of m_ri * cqi_period.
158 m_ri = 0 (default) disables RI reporting. */
Andre Puschmann487d1ef2020-05-28 15:22:18 +0200159 % if int(enb.get('transmission_mode')) > 1:
160 m_ri: 8,
161 % endif
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200162
Andre Puschmanna0e69aa2020-04-06 14:51:31 +0200163 pucch_dedicated: {
164 /* ack/nack feedback mode when carrier aggregation is
165 enabled. It can be "cs" (for at most two scells) or "pucch3"
166 (used in all cases if more than two cells). */
167 ack_nack_feedback_mode_ca: "cs",
168
169 /* TDD ack/nack feedback mode when a rel 10 UE is detected. It
170 can be "bundling", "multiplexing", "cs" or "pucch3". By
171 default is it the same as tdd_ack_nack_feedback_mode. */
172 // tdd_ack_nack_feedback_mode_r10: "cs",
173
174 /* number of PUCCH 1b CS resources. It determines
175 the maximum number of UEs that can be scheduled in one TTI
176 using carrier aggregation with PUCCH 1b CS ack/nack feedback. */
177 n1_pucch_an_cs_count: 1,
178
179 /* number of resource blocks for PUCCH 3. It determines
180 the maximum number of UEs that can be scheduled in one TTI
181 using carrier aggregation with PUCCH 3 ack/nack feedback. */
182 n3_pucch_an_n_rb: 0,
183 },
184
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200185 /* SRS dedicated config. All UEs share these
186 parameters. srs_config_index and freq_domain_position are
187 allocated for each UE) */
188 srs_dedicated: {
189 srs_period: 80, /* period (ms). Must be >= 40 for HD-FDD */
190 srs_bandwidth: 1,
191 srs_hopping_bandwidth: 0,
192 },
193
194 /* MAC configuration (same for all UEs) */
195 mac_config: {
196 ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
197 dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
198 },
199
200 /* CPU load limitation */
201 pusch_max_its: 6, /* max number of turbo decoder iterations */
202
203 /* dynamic power control */
204 dpc: true,
205 dpc_pusch_snr_target: 15,
206 dpc_pucch_snr_target: 10,
207
208 /* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
209 cipher_algo_pref: [],
210 /* RRC integrity algorithm preference. EIA0 is always the last. */
211 integ_algo_pref: [2, 1],
212
213 /* (in ms) send RRC connection release after this time of network
214 inactivity */
215 inactivity_timer: 10000,
216
217 /* SRB configuration */
218 srb_config: [
219 {
220 id: 1,
221 maxRetxThreshold: 32,
222 t_Reordering: 45,
223 t_PollRetransmit: 60,
224 },
225 {
226 id: 2 ,
227 maxRetxThreshold: 32,
228 t_Reordering: 45,
229 t_PollRetransmit: 60,
230 }
231 ],
232
233 /* DRB configuration */
234 drb_config: "amarisoft_drb.cfg",
Andre Puschmanna7f19832020-04-07 14:38:27 +0200235
236% if enb.enable_measurements:
237 /* measurement configuration */
238 meas_config_desc: {
239 a1_report_type: "${enb.a1_report_type}",
240 a1_${enb.a1_report_type}: ${enb.a1_report_value},
241 a1_hysteresis: ${enb.a1_hysteresis},
242 a1_time_to_trigger: ${enb.a1_time_to_trigger},
243 a2_report_type: "${enb.a2_report_type}",
244 a2_${enb.a2_report_type}: ${enb.a2_report_value},
245 a2_hysteresis: ${enb.a2_hysteresis},
246 a2_time_to_trigger: ${enb.a2_time_to_trigger},
247 a3_report_type: "${enb.a3_report_type}",
248 a3_offset: ${enb.a3_report_value},
249 a3_hysteresis: ${enb.a3_hysteresis},
250 a3_time_to_trigger: ${enb.a3_time_to_trigger},
251 },
252
253 /* measurement gap configuration */
254 meas_gap_config: "gp0",
255
256 /* if true, initiate a handover when a suitable measurement report
257 is received */
258 ho_from_meas: true,
259% endif
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200260 },
261}