| /* lteenb configuration file version 2022-03-19 |
| * Copyright (C) 2015-2022 Amarisoft |
| */ |
| #include "cros_sdr_count.cfg" |
| #if CROS_SDR_COUNT <= 1 |
| #define N_CELL 1 // should not be changed, used in rf_driver/config.cfg |
| #else |
| #define N_CELL 2 // should not be changed, used in rf_driver/config.cfg |
| #endif |
| |
| #define TDD 0 // Values: 0 (FDD), 1(TDD) |
| #define N_RB_DL 25 // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz) |
| #define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2) |
| #define N_ANTENNA_UL 1 // Values: 1, 2 |
| #define CHANNEL_SIM 0 // Values: 0 (channel simulator disabled), 1 (channel simulator enabled) |
| #define NG_ENB 0 // 1 for ng-eNB |
| |
| { |
| /* 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,file=cut,file.rotate=now,file.rotate=2M", |
| log_filename: "/tmp/enb0.log", |
| |
| /* Enable remote API and Web interface */ |
| com_addr: "0.0.0.0:9001", |
| |
| /* RF driver configuration */ |
| include "rf_driver/config.cfg", |
| |
| #if CHANNEL_SIM == 1 |
| rf_ports: [ |
| { |
| channel_dl: { |
| type: "awgn", |
| noise_level: -30, |
| }, |
| } |
| ], |
| #endif |
| |
| mme_list: [ |
| { |
| /* address of MME for S1AP connection. Must be modified if the MME |
| runs on a different host. */ |
| mme_addr: "127.0.1.100", |
| }, |
| ], |
| #if NG_ENB == 1 |
| amf_list: [ |
| { |
| /* address of AMF for NGAP connection. Must be modified if the AMF |
| runs on a different host. */ |
| amf_addr: "127.0.1.100", |
| }, |
| ], |
| #endif |
| /* 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: "127.0.1.1", |
| |
| /* high 20 bits of SIB1.cellIdentifier */ |
| enb_id: 0x1A2D0, |
| |
| /* list of cells */ |
| cell_list: [ |
| { |
| #if TDD == 1 |
| dl_earfcn: 38050, /* 2600 MHz (band 38) */ |
| //dl_earfcn: 40620, /* 2593 MHz (band 41) */ |
| //dl_earfcn: 42590, /* 3500 MHz (band 42) */ |
| #else |
| //dl_earfcn: 300, /* DL center frequency: 2132 MHz (Band 1) */ |
| //dl_earfcn: 900, /* DL center frequency: 1960 MHz (Band 2) */ |
| //dl_earfcn: 1575, /* DL center frequency: 1842.5 MHz (Band 3) */ |
| dl_earfcn: 2175, /* DL center frequency: 2132.5 MHz (Band 4) */ |
| //dl_earfcn: 2525, /* DL center frequency: 881.5 MHz (Band 5) */ |
| //dl_earfcn: 3350, /* DL center frequency: 2680 MHz (Band 7) */ |
| |
| //dl_earfcn: 5095, /* DL center frequency: 737.5 MHz (Band 12) */ |
| //dl_earfcn: 5230, /* DL center frequency: 751 MHz (Band 13) */ |
| //dl_earfcn: 6300, /* 806 MHz (Band 20) */ |
| //dl_earfcn: 38050, /* 2600 MHz (band 38) */ |
| //dl_earfcn: 40620, /* 2593 MHz (band 41) */ |
| //dl_earfcn: 42590, /* 3500 MHz (band 42) */ |
| //dl_earfcn: 66886, /* 2155 MHz (band 66) */ |
| #endif |
| rf_port: 0, |
| n_id_cell: 1, |
| cell_id: 0x01, |
| tac: 0x0001, |
| root_sequence_index: 204, /* PRACH root sequence index */ |
| }, |
| #if N_CELL > 1 |
| /* Cell 2 */ |
| { |
| #if TDD == 1 |
| dl_earfcn: 40620, /* 2593 MHz (band 41) */ |
| #else |
| dl_earfcn: 1575, /* DL center frequency: 1842.5 MHz (Band 3) */ |
| #endif |
| rf_port: 1, |
| n_id_cell: 2, |
| cell_id: 0x04, |
| tac: 0x0001, |
| root_sequence_index: 28, /* PRACH root sequence index */ |
| }, |
| #endif |
| ], /* cell_list */ |
| |
| /* default cell parameters */ |
| cell_default: { |
| #if NG_ENB == 1 |
| plmn_list_5gc: [ { |
| tac: 10, |
| plmn_ids: [{ plmn: "00101", reserved: false }], |
| }], |
| #endif |
| /* Broadcasted PLMN identities */ |
| plmn_list: [ |
| "00101", |
| ], |
| n_antenna_dl: N_ANTENNA_DL, /* number of DL antennas */ |
| n_antenna_ul: N_ANTENNA_UL, /* number of UL antennas */ |
| |
| #if TDD == 1 |
| uldl_config: 2, /* TDD only */ |
| sp_config: 7, /* TDD only */ |
| #endif |
| |
| n_rb_dl: N_RB_DL, /* 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 */ |
| |
| /* SIB1 */ |
| si_value_tag: 0, /* increment modulo 32 if SI is modified */ |
| cell_barred: false, /* SIB1.cellBarred-r13 */ |
| intra_freq_reselection: true, /* SIB1.intraFreqReselection */ |
| q_rx_lev_min: -70, /* SIB1.q-RxLevMin */ |
| p_max: 10, /* maximum power allowed for the UE (dBm) */ |
| si_window_length: 40, /* ms */ |
| sib_sched_list: [ |
| { |
| filename: "sib2_3.asn", |
| si_periodicity: 16, /* frames */ |
| }, |
| ], |
| |
| #if N_RB_DL == 6 |
| si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */ |
| #else |
| si_coderate: 0.20, /* maximum code rate for SI/RA/P-RNTI messages */ |
| #endif |
| 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: { |
| #if N_ANTENNA_DL == 4 |
| p_a: -6, |
| #elif N_ANTENNA_DL == 2 |
| p_a: -3, |
| #else |
| p_a: 0, |
| #endif |
| p_b: -1, /* -1 means automatic */ |
| }, |
| |
| /* 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. */ |
| #if N_RB_DL == 6 |
| pdcch_format: 1, |
| #else |
| pdcch_format: 2, |
| #endif |
| |
| /* if defined, force the PDSCH MCS for all UEs. Otherwise it is |
| computed from the reported CQI */ |
| /* pdsch_mcs: 12, */ |
| |
| #if N_RB_DL == 6 |
| prach_config_index: 15, /* subframe 9 every 20 ms */ |
| #else |
| prach_config_index: 4, /* subframe 4 every 10 ms */ |
| #endif |
| prach_freq_offset: -1, /* -1 means automatic */ |
| |
| /* PUCCH dedicated config (currently same for all UEs) */ |
| pucch_dedicated: { |
| n1_pucch_sr_count: 11, /* increase if more UEs are needed */ |
| cqi_pucch_n_rb: 1, /* increase if more UEs are needed */ |
| #if TDD == 1 |
| //tdd_ack_nack_feedback_mode: "bundling", /* TDD only */ |
| tdd_ack_nack_feedback_mode: "multiplexing", /* TDD only */ |
| #endif |
| }, |
| |
| /* 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, |
| }, |
| |
| pusch_hopping_offset: -1, /* -1 means automatic */ |
| |
| /* MCS for Msg3 (=CCCH RRC Connection Request) */ |
| pusch_msg3_mcs: 0, |
| |
| /* this CQI value is assumed when none is received from the UE */ |
| #if N_RB_DL == 6 |
| initial_cqi: 5, |
| #else |
| initial_cqi: 3, |
| #endif |
| |
| /* if defined, force the PUSCH MCS for all UEs. Otherwise it is |
| computed from the last received SRS/PUSCH. */ |
| // pusch_mcs: 18, |
| |
| dl_256qam: true, |
| ul_64qam: true, |
| |
| /* 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 */ |
| |
| #if N_ANTENNA_DL >= 2 |
| /* RI reporting is done with a period of m_ri * cqi_period. |
| m_ri = 0 (default) disables RI reporting. */ |
| m_ri: 8, |
| /* transmission mode */ |
| transmission_mode: 3, |
| #endif |
| |
| /* SRS dedicated config. All UEs share these |
| parameters. srs_config_index and freq_domain_position are |
| allocated for each UE) */ |
| srs_dedicated: { |
| #if N_RB_DL == 6 |
| srs_bandwidth_config: 7, |
| srs_bandwidth: 1, |
| #elif N_RB_DL == 15 |
| srs_bandwidth_config: 6, |
| srs_bandwidth: 1, |
| #elif N_RB_DL == 25 |
| srs_bandwidth_config: 3, |
| srs_bandwidth: 1, |
| #elif N_RB_DL == 50 |
| srs_bandwidth_config: 2, |
| srs_bandwidth: 2, |
| #elif N_RB_DL == 75 |
| srs_bandwidth_config: 2, |
| srs_bandwidth: 2, |
| #else |
| srs_bandwidth_config: 2, |
| srs_bandwidth: 3, |
| #endif |
| srs_subframe_config: 3, /* 0 - 15 */ |
| srs_period: 40, /* period (ms). Must be >= 40 for HD-FDD */ |
| 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: 25, |
| dpc_pucch_snr_target: 20, |
| |
| /* 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: "drb.cfg", |
| }, |
| } |