| ##################################################################### |
| # srsENB configuration file |
| ##################################################################### |
| |
| ##################################################################### |
| # eNB configuration |
| # |
| # enb_id: 20-bit eNB identifier. |
| # cell_id: 8-bit cell identifier. |
| # tac: 16-bit Tracking Area Code. |
| # mcc: Mobile Country Code |
| # mnc: Mobile Network Code |
| # mme_addr: IP address of MME for S1 connnection |
| # gtp_bind_addr: Local IP address to bind for GTP connection |
| # s1c_bind_addr: Local IP address to bind for S1AP connection |
| # n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100) |
| # tm: Transmission mode 1-4 (TM1 default) |
| # nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4) |
| # |
| ##################################################################### |
| [enb] |
| # need hex value here for enb_id due to bug: https://github.com/srsLTE/srsLTE/issues/485 |
| enb_id = ${hex(int(enb.id))} |
| mcc = ${enb.mcc} |
| mnc = ${enb.mnc} |
| mme_addr = ${enb.mme_addr} |
| gtp_bind_addr = ${enb.gtp_bind_addr} |
| s1c_bind_addr = ${enb.addr} |
| n_prb = ${enb.num_prb} |
| tm = ${enb.transmission_mode} |
| nof_ports = ${enb.num_ports} |
| |
| ##################################################################### |
| # eNB configuration files |
| # |
| # sib_config: SIB1, SIB2 and SIB3 configuration file |
| # note: when enabling mbms, use the sib.conf.mbsfn configuration file which includes SIB13 |
| # rr_config: Radio Resources configuration file |
| # drb_config: DRB configuration file |
| ##################################################################### |
| [enb_files] |
| sib_config = ${enb.sib_filename} |
| rr_config = ${enb.rr_filename} |
| drb_config = ${enb.drb_filename} |
| |
| ##################################################################### |
| # RF configuration |
| # |
| # dl_earfcn: EARFCN code for DL |
| # tx_gain: Transmit gain (dB). |
| # rx_gain: Optional receive gain (dB). If disabled, AGC if enabled |
| # |
| # Optional parameters: |
| # dl_freq: Override DL frequency corresponding to dl_earfcn |
| # ul_freq: Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set) |
| # device_name: Device driver family. Supported options: "auto" (uses first found), "UHD" or "bladeRF" |
| # device_args: Arguments for the device driver. Options are "auto" or any string. |
| # Default for UHD: "recv_frame_size=9232,send_frame_size=9232" |
| # Default for bladeRF: "" |
| # #time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay |
| # from antenna to timestamp insertion. |
| # Default "auto". B210 USRP: 100 samples, bladeRF: 27. |
| # burst_preamble_us: Preamble length to transmit before start of burst. |
| # Default "auto". B210 USRP: 400 us, bladeRF: 0 us. |
| ##################################################################### |
| [rf] |
| tx_gain = ${enb.tx_gain} |
| rx_gain = ${enb.rx_gain} |
| |
| device_name = ${enb.rf_dev_type} |
| |
| # For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings: |
| # USRP B210: num_recv_frames=64,num_send_frames=64 |
| |
| # For best performance when BW<5 MHz (25 PRB), use the following device_args settings: |
| # USRP B210: send_frame_size=512,recv_frame_size=512 |
| |
| device_args = ${enb.rf_dev_args},${enb.rf_dev_sync} |
| #time_adv_nsamples = auto |
| #burst_preamble_us = auto |
| |
| |
| ##################################################################### |
| # MAC-layer packet capture configuration |
| # |
| # Packets are captured to file in the compact format decoded by |
| # the Wireshark mac-lte-framed dissector and with DLT 147. |
| # To use the dissector, edit the preferences for DLT_USER to |
| # add an entry with DLT=147, Payload Protocol=mac-lte-framed. |
| # For more information see: https://wiki.wireshark.org/MAC-LTE |
| # |
| # Please note that this setting will by default only capture MAC |
| # frames on dedicated channels, and not SIB. You have to build with |
| # WRITE_SIB_PCAP enabled in enb/src/stack/mac/mac.cc if you want |
| # SIB to be part of the MAC pcap file. |
| # |
| # enable: Enable MAC layer packet captures (true/false) |
| # filename: File path to use for packet captures |
| ##################################################################### |
| [pcap] |
| enable = ${'true' if enb.enable_pcap else 'false'} |
| filename = ${enb.pcap_filename} |
| |
| ##################################################################### |
| # Log configuration |
| # |
| # Log levels can be set for individual layers. "all_level" sets log |
| # level for all layers unless otherwise configured. |
| # Format: e.g. phy_level = info |
| # |
| # In the same way, packet hex dumps can be limited for each level. |
| # "all_hex_limit" sets the hex limit for all layers unless otherwise |
| # configured. |
| # Format: e.g. phy_hex_limit = 32 |
| # |
| # Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, all |
| # Logging levels: debug, info, warning, error, none |
| # |
| # filename: File path to use for log output. Can be set to stdout |
| # to print logs to standard output |
| # file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created. |
| # If set to negative, a single log file will be created. |
| ##################################################################### |
| [log] |
| all_level = ${enb.log_all_level} |
| all_hex_limit = 32 |
| filename = ${enb.log_filename} |
| file_max_size = -1 |
| |
| [gui] |
| enable = false |
| |
| ##################################################################### |
| # Scheduler configuration options |
| # |
| # max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3) |
| # pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified) |
| # pdsch_max_mcs: Optional PDSCH MCS limit |
| # pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified) |
| # pusch_max_mcs: Optional PUSCH MCS limit |
| # min_nof_ctrl_symbols: Minimum number of control symbols |
| # max_nof_ctrl_symbols: Maximum number of control symbols |
| # |
| ##################################################################### |
| [scheduler] |
| #max_aggr_level = -1 |
| #pdsch_mcs = -1 |
| #pdsch_max_mcs = -1 |
| #pusch_mcs = -1 |
| #pusch_max_mcs = 16 |
| #min_nof_ctrl_symbols = 1 |
| #max_nof_ctrl_symbols = 3 |
| |
| ##################################################################### |
| # eMBMS configuration options |
| # |
| # enable: Enable MBMS transmission in the eNB |
| # m1u_multiaddr: Multicast addres the M1-U socket will register to |
| # m1u_if_addr: Address of the inteferface the M1-U interface will listen for multicast packets. |
| # |
| ##################################################################### |
| [embms] |
| #enable = false |
| #m1u_multiaddr = 239.255.0.1 |
| #m1u_if_addr = 127.0.1.201 |
| |
| |
| |
| ##################################################################### |
| # Channel emulator options: |
| # enable: Enable/Disable internal Downlink/Uplink channel emulator |
| # |
| # -- Fading emulator |
| # fading.enable: Enable/disable fading simulator |
| # fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc) |
| # |
| # -- Delay Emulator delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2 |
| # Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period |
| # delay.enable: Enable/disable delay simulator |
| # delay.period_s: Delay period in seconds. |
| # delay.init_time_s: Delay initial time in seconds. |
| # delay.maximum_us: Maximum delay in microseconds |
| # delay.minumum_us: Minimum delay in microseconds |
| # |
| # -- Radio-Link Failure (RLF) Emulator |
| # rlf.enable: Enable/disable RLF simulator |
| # rlf.t_on_ms: Time for On state of the channel (ms) |
| # rlf.t_off_ms: Time for Off state of the channel (ms) |
| # |
| # -- High Speed Train Doppler model simulator |
| # hst.enable: Enable/Disable HST simulator |
| # hst.period_s: HST simulation period in seconds |
| # hst.fd_hz: Doppler frequency in Hz |
| # hst.init_time_s: Initial time in seconds |
| ##################################################################### |
| % if enb.enable_dl_awgn: |
| [channel.dl] |
| enable = true |
| % endif |
| |
| % if enb.enable_dl_awgn: |
| [channel.dl.awgn] |
| enable = true |
| snr = ${enb.dl_awgn_snr} |
| % endif |
| |
| [channel.dl.fading] |
| #enable = false |
| #model = none |
| |
| [channel.dl.delay] |
| #enable = false |
| #period_s = 3600 |
| #init_time_s = 0 |
| #maximum_us = 100 |
| #minimum_us = 10 |
| |
| [channel.dl.rlf] |
| #enable = false |
| #t_on_ms = 10000 |
| #t_off_ms = 2000 |
| |
| [channel.dl.hst] |
| #enable = false |
| #period_s = 7.2 |
| #fd_hz = 750.0 |
| #init_time_s = 0.0 |
| |
| [channel.ul] |
| #enable = false |
| |
| [channel.ul.fading] |
| #enable = false |
| #model = none |
| |
| [channel.ul.delay] |
| #enable = false |
| #period_s = 3600 |
| #init_time_s = 0 |
| #maximum_us = 100 |
| #minimum_us = 10 |
| |
| [channel.ul.rlf] |
| #enable = false |
| #t_on_ms = 10000 |
| #t_off_ms = 2000 |
| |
| [channel.ul.hst] |
| #enable = false |
| #period_s = 7.2 |
| #fd_hz = -750.0 |
| #init_time_s = 0.0 |
| |
| |
| ##################################################################### |
| # Expert configuration options |
| # |
| # pusch_max_its: Maximum number of turbo decoder iterations (Default 4) |
| # pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental) |
| # nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 3) |
| # metrics_period_secs: Sets the period at which metrics are requested from the eNB. |
| # metrics_csv_enable: Write eNB metrics to CSV file. |
| # metrics_csv_filename: File path to use for CSV metrics. |
| # pregenerate_signals: Pregenerate uplink signals after attach. Improves CPU performance. |
| # tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR) |
| # link_failure_nof_err: Number of PUSCH failures after which a radio-link failure is triggered. |
| # a link failure is when SNR<0 and CRC=KO |
| # max_prach_offset_us: Maximum allowed RACH offset (in us) |
| # eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1). |
| # eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0). |
| # |
| ##################################################################### |
| [expert] |
| % if enb.rf_dev_type == 'zmq': |
| nof_prach_threads = 0 |
| % endif |
| #pusch_max_its = 8 # These are half iterations |
| #pusch_8bit_decoder = false |
| #nof_phy_threads = 3 |
| #metrics_period_secs = 1 |
| metrics_csv_enable = true |
| metrics_csv_filename = ${enb.metrics_filename} |
| tracing_enable = ${enb.enable_tracing} |
| tracing_filename = ${enb.tracing_filename} |
| #pregenerate_signals = false |
| #tx_amplitude = 0.6 |
| #link_failure_nof_err = 50 |
| rrc_inactivity_timer = ${enb.inactivity_timer} |
| #max_prach_offset_us = 30 |
| eea_pref_list = ${', '.join(list(dict.fromkeys(enb.cipher_list))).upper()} |
| eia_pref_list = ${', '.join(list(dict.fromkeys(enb.integrity_list))).upper()} |
| % if "lime" in enb.rf_dev_args: |
| lte_sample_rates = true |
| % endif |