/* 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: "all.level=debug,all.max_size=32", 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", log_filename: "${enb.log_filename}", /* Enable remote API and Web interface */ com_addr: "${enb.addr}:9001", /* RF driver configuration */ include "amarisoft_rf_driver.cfg", mme_list: [ { /* 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: ${loop.index}, cell_id: ${cell.cell_id}, n_id_cell: ${loop.index + 1}, tac: 0x0001, root_sequence_index: ${loop.index + 204}, /* PRACH root sequence index */ 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: [ "${enb.mcc}${enb.mnc}", ], n_antenna_dl: 1, /* number of DL antennas */ n_antenna_ul: 1, /* number of UL antennas */ 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. */ // m_ri: 8, 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: 80, /* 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 }, }