/* lteenb configuration file example for NB-IoT (standalone mode) with NTN support * Copyright (C) 2022 Amarisoft */ #ifndef LEO #define LEO 0 #endif { /* Log filter: syntax: layer.field=value[,...] Possible layers are phy, mac, rlc, pdcp, rrc, nas, ip 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,bcch=0,phy.level=debug,phy.ntn=1,mac.level=debug,mac.max_size=1", 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,bcch=0,phy.level=debug,phy.ntn=1,mac.level=debug,mac.max_size=1000,mac.payload=1", */ 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,bcch=1,phy.level=debug,phy.ntn=1,mac.level=debug,mac.max_size=1000,mac.payload=1", log_filename: "/tmp/enb0.log", pcap: { filename: "/tmp/wireshark.pcapng" }, /* Enable remote API and Web interface */ com_addr: "0.0.0.0:9001", /* RF driver configuration */ include "rf_driver/config.cfg", tx_gain: 70, rx_gain: 0, custom_freq_band: [ { band: 1, dl_earfcn_min: 0, dl_earfcn_max: 599, dl_freq_min: 2110, ul_earfcn_min: 18000, ul_earfcn_max: 18599, ul_freq_min: 1920, ntn: true } ], 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", }, ], /* 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: 0x1A2D1, /* list of LTE cells (for NB-IoT in-band operation they must be defined here) */ cell_list: [ ], /* default NB-IoT cell parameters */ nb_cell_default: { /* SI info */ si_value_tag: 0, /* increment modulo 32 if SI is modified */ r_sib1: 4, /* number of SIB1 repetitions */ cell_barred: false, /* SIB1.cellBarred-r13 */ intra_freq_reselection: true, /* SIB1.intraFreqReselection-r13 */ q_rx_lev_min: -70, /* SIB1.q-RxLevMin */ q_qual_min: -34, /* SIB1.q-QualMin */ p_max: 10, /* SIB1.p-Max */ si_window_length: 160, /* ms */ si_radio_frame_offset: 0, /* in frames */ si_value_tag_list_enable: true, /* enable per SIB si_value_tag */ sib_sched_list: [ { filename: "sib2_nb.asn", si_periodicity: 128, si_repetition_pattern: 2, si_value_tag: 0, /* increment modulo 4 if SIB is modified */ }, ], /* SIB31 separate mapping */ sib31: { si_periodicity: 128, si_repetition_pattern: 4, si_value_tag: 0 }, /* NTN configuration */ ntn: { #if LEO default_ephemeris: "leo", ul_sync_validity: 5, k_offset: 10, #else default_ephemeris: "geo", ul_sync_validity: 60, k_offset: 600, rat_type: "nbiot-geo", #endif use_state_vectors: true, ground_position: { latitude: 48.895, longitude: 2.2872, altitude: 30 }, channel_sim_control: { #if 1 type: "auto_feeder_service_link", ue_position: { latitude: 43.6156, longitude: 7.055, altitude: 150, #else type: "disabled", #endif } } }, mac_config: { msg3_max_harq_tx: 2, ul_max_harq_tx: 2, dl_max_harq_tx: 2, ul_max_consecutive_retx: 5, /* disconnect UE if reached */ dl_max_consecutive_retx: 5, /* disconnect UE if reached */ time_alignment_timer_dedicated: 0, periodic_bsr_timer: 0, /* infinity for BSR timers */ retx_bsr_timer: 0, logical_channel_sr_prohibit_timer: 0, /* 0 means released */ }, npusch_max_its: 10, /* Max turbo decoder iterations */ /* each coverage level corresponds to a NPRACH configuration */ coverage_levels: [ { nprach_detect_threshold: 30, /* in dB */ npdcch_ra_n_rep: 1, /* must be <= npdcch-NumRepetitions-RA-r13 */ npdsch_ra_n_rep: 1, /* number of repetition for NPDSCH with RAR */ npdsch_ra_i_tbs: 3, /* I_TBS for NPDSCH with RAR */ /* msg3 configuration */ ul_sc_spacing: 1, /* 0 = 3.75 KHz subcarrier, 1 = 15 KHz subcarrier */ msg3_n_sc: 1, /* 1, 3, 6, 12 max number of subcarriers */ msg3_single_tone_mcs: 2, /* 0-2 */ msg3_n_rep: 1, /* 1-128 number of repetitions for msg3 */ /* Paging */ npdcch_paging_n_rep: 1, /* must be <= npdcch-NumRepetitionPaging-r13 */ npdsch_paging_i_tbs: 4, npdsch_paging_n_rep: 1, /* NPDCCH User Search Space */ npdcch_uss_n_rep_max: 8, /* 1-2048 max number of NPDCCH repetition */ npdcch_uss_n_rep: 1, /* use 0 for half RB allocation, otherwise actual number of NPDCCH repetitions */ npdcch_uss_start_sf: 4, /* 1.5, 2, 4, 8, 16, 32, 48, 64 */ npdcch_uss_offset: 0, /* 0-3 */ /* NPDSCH config */ npdsch_i_tbs: 5, /* 0-12 */ npdsch_n_rep: 1, /* 1-2048 number of NPDSCH repetitions */ /* NPUSCH config */ npusch_n_sc: 12, /* 1, 3, 6, 12 max number of subcarriers */ npusch_single_tone_i_tbs: 4, /* 0-12 */ npusch_multi_tone_i_tbs: 4, /* 0-12 */ npusch_n_rep: 1, /* 1-128 number of NPUSCH repetitions */ }, ], two_harq_support: true, ignore_ue_as_release: true, /* 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], inactivity_timer: 10000, /* SRB configuration */ srb_config: { maxRetxThreshold: 32, enb_maxRetxThreshold: 32, t_PollRetransmit: 6000, enb_t_PollRetransmit: 6000, t_Reordering: 2200, }, /* DRB configuration */ drb_config: "drb_nb.cfg", //drb_config: "drb_nb_BHI_vasu.cfg", /* for t_reordering */ }, /* list of NB-IoT cells */ nb_cell_list: [ { plmn_list: [ { plmn: "00101", reserved: false }, ], cell_id: 0x01, tac: 0x0002, /* SIB1.trackingAreaCode */ dl_earfcn: 300, n_antenna_dl: 1, cell_barred: false, n_antenna_ul: 1, operation_mode: "standalone", rel13_5: true, /* release 13.5 NPBCH/BCCH scrambling changes */ n_id_ncell: 37, }, ], /* nbcell_list */ /* Put the whole RTT in the DL channel simulator, * UL stays instantaneous, but it emulates correct behaviour on UE and eNB side */ rf_ports: [ { channel_dl: { paths: [ { type: "constant", gain: 0, #if LEO delay: 2800e3, /* in nanoseconds */ #else delay: 600000000, #endif channel_matrix: [[ 1 ]] } ], noise_level: -25, }, } ], }