osmo-gsm-tester/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl

269 lines
7.9 KiB
Cheetah

/* lteenb configuration file version 2018-10-18
* Copyright (C) 2015-2018 Amarisoft
*/
{
%if enb.license_server_addr != '0.0.0.0':
license_server: {
server_addr: "${enb.license_server_addr}",
name: "amarisoft",
},
%endif
% if enb.rf_dev_type == 'zmq':
/* Force sampling rate (if uncommented) */
sample_rate: ${enb.sample_rate},
%endif
/* Log filter: syntax: layer.field=value[,...]
Possible layers are phy, mac, rlc, pdcp, rrc, nas, s1ap, x2ap, gtpu and
all. The 'all' layer is used to address all the layers at the
same time.
field values:
- 'level': the log level of each layer can be set to 'none',
'error', 'info' or 'debug'. Use 'debug' to log all the messages.
- 'max_size': set the maximum size of the hex dump. 0 means no
hex dump. -1 means no limit.
*/
log_options: "${enb.log_options}",
log_filename: "${enb.log_filename}",
/* Enable remote API and Web interface */
com_addr: "${enb.addr}:9001",
/* RF driver configuration */
include "amarisoft_rf_driver.cfg",
% if enb.enable_dl_awgn:
channel_dl: {
type: "awgn",
snr: ${enb.dl_awgn_snr}
},
% endif
mme_list: [
{
s1ap_bind_addr: "${enb.addr}",
/* address of MME for S1AP connection. Must be modified if the MME
runs on a different host. */
mme_addr: "${enb.mme_addr}",
},
],
/* GTP bind address (=address of the ethernet interface connected to
the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "${enb.gtp_bind_addr}",
/* high 20 bits of SIB1.cellIdentifier */
enb_id: ${enb.id},
/* list of cells */
cell_list: [
%for cell in enb.cell_list:
{
dl_earfcn: ${cell.dl_earfcn},
rf_port: ${cell.rf_port},
cell_id: ${cell.cell_id},
n_id_cell: ${cell.pci},
tac: 0x0001,
root_sequence_index: ${loop.index + 204}, /* PRACH root sequence index */
ncell_list: [
%for ncell in enb.cell_list:
%if ncell.cell_id in cell.ncell_list:
{ n_id_cell: ${ncell.pci}, dl_earfcn: ${ncell.dl_earfcn}, cell_id: ${ncell.cell_id}, tac: 1 },
%endif
%endfor
],
scell_list: [
%for scell_id in cell.scell_list:
{ cell_id: ${scell_id}, cross_carrier_scheduling: false, scheduling_cell_id: ${cell.cell_id}, ul_allowed: true},
%endfor
],
},
%endfor
], /* cell_list */
/* default cell parameters */
cell_default: {
/* Broadcasted PLMN identities */
plmn_list: [
"${'{0:03}'.format(int(enb.mcc))}${'{0:02}'.format(int(enb.mnc))}",
],
% if int(enb.get('transmission_mode')) == 1:
n_antenna_dl: 1, /* number of DL antennas */
n_antenna_ul: 1, /* number of UL antennas */
% else:
n_antenna_dl: 2, /* number of DL antennas */
n_antenna_ul: 2, /* number of UL antennas */
% endif
n_rb_dl: ${enb.num_prb}, /* Bandwidth: 25: 5 MHz, 50: 10 MHz, 75: 15 MHz, 100: 20 MHz */
cyclic_prefix: "normal",
phich_duration: "normal",
phich_resource: "1", /* ratio of NG */
/* System Information Block type 1 */
sib1: "amarisoft_sib1.asn",
/* other SIBs, in same order as the scheduling list in SIB 1 */
sib_sched_list: [ "amarisoft_sib23.asn" ],
si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */
si_pdcch_format: 2, /* 2 or 3. Log2 of the number of CCEs for PDCCH
for SI/RA/P-RNTI */
n_symb_cch: 0, /* number of symbols for CCH (0 = auto) */
/* PDSCH dedicated config (currently same for all UEs) */
pdsch_dedicated: {
p_a: 0,
},
/* If defined, force for number of CCEs for UE specific PDCCH to
2^pdcch_format. Otherwise it is computed from the reported
CQI. Range: 0 to 3. */
//pdcch_format: 1,
/* if defined, force the PDSCH MCS for all UEs. Otherwise it is
computed from the reported CQI */
/* pdsch_mcs: 12, */
/* PUSCH dedicated config (currently same for all UEs) */
pusch_dedicated: {
beta_offset_ack_index: 9,
beta_offset_ri_index: 6,
beta_offset_cqi_index: 6,
},
/* MCS for Msg3 (=CCCH RRC Connection Request) */
pusch_msg3_mcs: 0,
/* this CQI value is assumed when none is received from the UE */
initial_cqi: 5,
/* if defined, force the PUSCH MCS for all UEs. Otherwise it is
computed from the last received SRS/PUSCH. */
// pusch_mcs: 18,
transmission_mode: ${enb.transmission_mode},
/* Scheduling request period (ms). Must be >= 40 for HD-FDD */
sr_period: 20,
/* CQI report config */
cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */
/* RI reporting is done with a period of m_ri * cqi_period.
m_ri = 0 (default) disables RI reporting. */
% if int(enb.get('transmission_mode')) > 1:
m_ri: 8,
% endif
pucch_dedicated: {
/* ack/nack feedback mode when carrier aggregation is
enabled. It can be "cs" (for at most two scells) or "pucch3"
(used in all cases if more than two cells). */
ack_nack_feedback_mode_ca: "cs",
/* TDD ack/nack feedback mode when a rel 10 UE is detected. It
can be "bundling", "multiplexing", "cs" or "pucch3". By
default is it the same as tdd_ack_nack_feedback_mode. */
// tdd_ack_nack_feedback_mode_r10: "cs",
/* number of PUCCH 1b CS resources. It determines
the maximum number of UEs that can be scheduled in one TTI
using carrier aggregation with PUCCH 1b CS ack/nack feedback. */
n1_pucch_an_cs_count: 1,
/* number of resource blocks for PUCCH 3. It determines
the maximum number of UEs that can be scheduled in one TTI
using carrier aggregation with PUCCH 3 ack/nack feedback. */
n3_pucch_an_n_rb: 0,
},
/* SRS dedicated config. All UEs share these
parameters. srs_config_index and freq_domain_position are
allocated for each UE) */
srs_dedicated: {
srs_period: 160, /* period (ms). Must be >= 40 for HD-FDD */
srs_bandwidth: 1,
srs_hopping_bandwidth: 0,
},
/* MAC configuration (same for all UEs) */
mac_config: {
ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
},
/* CPU load limitation */
pusch_max_its: 6, /* max number of turbo decoder iterations */
/* dynamic power control */
dpc: true,
dpc_pusch_snr_target: 15,
dpc_pucch_snr_target: 10,
/* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
cipher_algo_pref: [],
/* RRC integrity algorithm preference. EIA0 is always the last. */
integ_algo_pref: [2, 1],
/* (in ms) send RRC connection release after this time of network
inactivity */
inactivity_timer: 10000,
/* SRB configuration */
srb_config: [
{
id: 1,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
},
{
id: 2 ,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
}
],
/* DRB configuration */
drb_config: "amarisoft_drb.cfg",
% if enb.enable_measurements:
/* measurement configuration */
meas_config_desc: {
a1_report_type: "${enb.a1_report_type}",
a1_${enb.a1_report_type}: ${enb.a1_report_value},
a1_hysteresis: ${enb.a1_hysteresis},
a1_time_to_trigger: ${enb.a1_time_to_trigger},
a2_report_type: "${enb.a2_report_type}",
a2_${enb.a2_report_type}: ${enb.a2_report_value},
a2_hysteresis: ${enb.a2_hysteresis},
a2_time_to_trigger: ${enb.a2_time_to_trigger},
a3_report_type: "${enb.a3_report_type}",
a3_offset: ${enb.a3_report_value},
a3_hysteresis: ${enb.a3_hysteresis},
a3_time_to_trigger: ${enb.a3_time_to_trigger},
},
/* measurement gap configuration */
meas_gap_config: "gp0",
/* if true, initiate a handover when a suitable measurement report
is received */
ho_from_meas: true,
% endif
},
}