blob: 46bdf10978313f6e2c55dde1ba6e809de7e32d21 [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 {
44 /* 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},
Pau Espin Pedrold6c79252020-04-20 16:43:56 +020062 rf_port: 0, /* FIXME: this may need to be configurable based on device specifics (B2xx vs X310) */
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 */
155 cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */
156
157 /* RI reporting is done with a period of m_ri * cqi_period.
158 m_ri = 0 (default) disables RI reporting. */
159// m_ri: 8,
160
Andre Puschmanna0e69aa2020-04-06 14:51:31 +0200161 pucch_dedicated: {
162 /* ack/nack feedback mode when carrier aggregation is
163 enabled. It can be "cs" (for at most two scells) or "pucch3"
164 (used in all cases if more than two cells). */
165 ack_nack_feedback_mode_ca: "cs",
166
167 /* TDD ack/nack feedback mode when a rel 10 UE is detected. It
168 can be "bundling", "multiplexing", "cs" or "pucch3". By
169 default is it the same as tdd_ack_nack_feedback_mode. */
170 // tdd_ack_nack_feedback_mode_r10: "cs",
171
172 /* number of PUCCH 1b CS resources. It determines
173 the maximum number of UEs that can be scheduled in one TTI
174 using carrier aggregation with PUCCH 1b CS ack/nack feedback. */
175 n1_pucch_an_cs_count: 1,
176
177 /* number of resource blocks for PUCCH 3. It determines
178 the maximum number of UEs that can be scheduled in one TTI
179 using carrier aggregation with PUCCH 3 ack/nack feedback. */
180 n3_pucch_an_n_rb: 0,
181 },
182
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200183 /* SRS dedicated config. All UEs share these
184 parameters. srs_config_index and freq_domain_position are
185 allocated for each UE) */
186 srs_dedicated: {
187 srs_period: 80, /* period (ms). Must be >= 40 for HD-FDD */
188 srs_bandwidth: 1,
189 srs_hopping_bandwidth: 0,
190 },
191
192 /* MAC configuration (same for all UEs) */
193 mac_config: {
194 ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
195 dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
196 },
197
198 /* CPU load limitation */
199 pusch_max_its: 6, /* max number of turbo decoder iterations */
200
201 /* dynamic power control */
202 dpc: true,
203 dpc_pusch_snr_target: 15,
204 dpc_pucch_snr_target: 10,
205
206 /* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
207 cipher_algo_pref: [],
208 /* RRC integrity algorithm preference. EIA0 is always the last. */
209 integ_algo_pref: [2, 1],
210
211 /* (in ms) send RRC connection release after this time of network
212 inactivity */
213 inactivity_timer: 10000,
214
215 /* SRB configuration */
216 srb_config: [
217 {
218 id: 1,
219 maxRetxThreshold: 32,
220 t_Reordering: 45,
221 t_PollRetransmit: 60,
222 },
223 {
224 id: 2 ,
225 maxRetxThreshold: 32,
226 t_Reordering: 45,
227 t_PollRetransmit: 60,
228 }
229 ],
230
231 /* DRB configuration */
232 drb_config: "amarisoft_drb.cfg",
Andre Puschmanna7f19832020-04-07 14:38:27 +0200233
234% if enb.enable_measurements:
235 /* measurement configuration */
236 meas_config_desc: {
237 a1_report_type: "${enb.a1_report_type}",
238 a1_${enb.a1_report_type}: ${enb.a1_report_value},
239 a1_hysteresis: ${enb.a1_hysteresis},
240 a1_time_to_trigger: ${enb.a1_time_to_trigger},
241 a2_report_type: "${enb.a2_report_type}",
242 a2_${enb.a2_report_type}: ${enb.a2_report_value},
243 a2_hysteresis: ${enb.a2_hysteresis},
244 a2_time_to_trigger: ${enb.a2_time_to_trigger},
245 a3_report_type: "${enb.a3_report_type}",
246 a3_offset: ${enb.a3_report_value},
247 a3_hysteresis: ${enb.a3_hysteresis},
248 a3_time_to_trigger: ${enb.a3_time_to_trigger},
249 },
250
251 /* measurement gap configuration */
252 meas_gap_config: "gp0",
253
254 /* if true, initiate a handover when a suitable measurement report
255 is received */
256 ho_from_meas: true,
257% endif
Pau Espin Pedrol786a6bc2020-03-30 13:51:21 +0200258 },
259}