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