Configuration Reference

The srsRAN Project gNB application uses a YAML (.yml) configuration file.

The gNB comes with a number of example configuration files, these can be found in srsRAN_Project/configs/ in the source code:

These configuration file examples provide a basic set-up to get users up and running, users can easily modify these to suit their use-case.


Format

All configuration parameters are presented here below in the following format:

parameter
  • Optional/Required TYPE (default). Description. Format: format description. Supported: supported values.


Configuration Parameters

gnb_id
  • Optional UINT (411). Sets the numerical ID associated with the gNB.

ran_node_name
  • Optional TEXT (srsgnb01). Sets the text ID associated with the gNB. Format: string without spaces.

amf

addr
  • Required TEXT. Sets the IP address or hostname of the AMF. Format: IPV4 or IPV6 IP address.

port
  • Optional UINT (38412). Sets the AMF port. Format: integer between [20000 - 40000].

bind_addr
  • Required TEXT. Sets the local IP address that the gNB binds to for receiving traffic from the AMF. Format: IPV4 or IPV6 IP address.

rf_driver

srate
  • Required FLOAT (61.44). Sets the sampling rate of the RF-frontend in MHz.

device_driver
  • Required TEXT (uhd). RF device driver name. Supported: [uhd].

device_args
  • Optional TEXT. An argument that gets passed to the selected RF driver.

tx_gain
  • Required FLOAT (50). Sets the transmit gain in dB. Supported: [0 - max value supported by radio].

rx_gain
  • Required FLOAT (60). Sets the receive gain in dB. Supported: [0 - max value supported by radio].

lo_offset
  • Optional FLOAT (0). Shifts the local oscillator frequency in MHz away from the center frequency to move LO leakage out of the channel.

clock
  • Optional TEXT (default). Specify the RF device source for timestamping. Supported: [default, internal, external, gpsdo].

sync
  • Optional TEXT (default). Specify the RF device oscillator reference synchronization source. Supported: [default, internal, external, gpsdo].

time_alignment_calibration
  • Optional UINT (0). Compensates for any reception and transmission time misalignment inherent to the RF device. Positive values reduce the RF transmission delay with respect to the RF reception. Negative values have the opposite effect.

cell_cfg

pci
  • Required UINT (1). Sets the Physical Cell ID. Supported: [0-1007].

dl_arfcn
  • Required UINT (536020). Sets the Downlink ARFCN.

band
  • Optional UINT. Sets the NR band being used for the cell. If not specified, will be set automatically based on ARFCN.

  • Current unsupported bands are:

    • All SCS: 79

    • 15 kHz SCS: 34, 38, 39

common_scs
  • Required UINT (15). Sets the subcarrier spacing in KHz to be used by the cell. Supported: [15, 30].

channel_bandwidth_MHz
  • Required UINT (20). Sets the channel Bandwidth in MHz, the number of PRBs will be derived from this. Supported: [5, 10, 15, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100].

nof_antennas_ul
  • Optional UINT (1). Sets the number of antennas for downlink transmission. Supported: [1].

nof_antennas_dl
  • Optional UINT (1). Sets the number of antennas for uplink transmission. Supported: [1].

plmn
  • Required TEXT (00101). Sets the Public Land Mobile Network code. Format: 7-digit PLMN code containing MCC & MNC.

tac
  • Required UINT (7). Sets the Tracking Area Code.

pdsch
  • Further optional parameters to configure the Physical Downlink Shared Channel of the cell.

    • fixed_ue_mcs: Optional UINT. Sets a fixed PDSCH MCS value to be used for all UEs. Supported: [0 - 28].

    • fixed_rar_mcs: Optional UINT (0). Sets a fixed RAR MCS value for all UEs. Supported: [0 - 9].

    • fixed_sib1_mcs: Optional UINT (5). Sets a fixed SIB1 MCS for all UEs. Supported: [0 - 9].

pusch
  • Further optional parameters to configure the Physical Uplink Shared Channel of the cell.

    • fixed_ue_mcs: Optional UINT. Sets a fixed PUSCH MCS for all UEs. Supported: [0 - 28].

prach
  • Further optional parameters to configure the Physical Random Access Channel of the cell.

    • prach_config_index : Optional UINT (1). Sets the PRACH configuration index. Supported: [0 - 255].

    • prach_root_sequence_index : Optional UINT (1). Sets the PRACH Roost Sequence Index (RSI), which determines the Zadoff-Chu (ZC) sequence used. Supported: [0 - 837]. If the PRACH configuration index is larger than 86, you cannot set a PRACH RSI of more than 137.

    • zero_correlation_zone : Optional UINT (0). Sets the Zero Correlation Zone, which determines the size of the cyclic shift and the number of preamble sequences which can be generated from each Root Sequence Index. Supported: [0 - 15].

    • fixed_msg3_mcs : Optional UINT (0). Sets a fixed Msg3 MCS. Supported: [0 - 28].

    • max_msg3_harq_retx : Optional UINT (4). Sets the maximum number of Msg3 HARQ retransmissions. Supported: [0 - 4].

amplitude_control
  • Further optional parameters to configure the amplitude control of the physical signal transmitted by the cell.

    • tx_gain_backoff : Optional FLOAT (12.0). Sets baseband gain back-off in dB. This accounts for the signal Peak-to-Average Power Ratio (PAPR) and is applied regardless of clipping settings. Format: positive float.

    • enable_clipping : Optional BOOL (false). Sets clipping of the baseband samples on or off. If enabled, samples that exceed the power ceiling are clipped.

    • ceiling : Optional FLOAT (0.0). Sets the power ceiling in dB, relative to the full scale amplitude of the radio. Format: negative float or 0.

log

All gNB layers and components can be configured independently to output at various levels of detail. Logs can be configured to the following levels (from lowest to highest levels of detail):

  • none

  • error

  • warning

  • info

  • debug

filename
  • Optional TEXT (/tmp/gnb.log). File path for logs.

all_level
  • Optional TEXT (warning). Sets a common log level across PHY, MAC, RLC, PDCP, RRC, SDAP, NGAP and GTPU layers.

phy_level
  • Optional TEXT (warning). Sets PHY log level.

mac_level
  • Optional TEXT (warning). Sets MAC log level.

rlc_level
  • Optional TEXT (warning). Sets RLC log level.

pdcp_level
  • Optional TEXT (warning). Sets PDCP log level.

rrc_level
  • Optional TEXT (warning). Sets RRC log level.

sdap_level
  • Optional TEXT (warning). Sets SDAP log level.

ngap_level
  • Optional TEXT (warning). Sets NGAP log level.

gtpu_level
  • Optional TEXT (warning). Sets GTPU log level.

radio_level
  • Optional TEXT (warning). Sets radio log level.

fapi_level
  • Optional TEXT (warning). Sets FAPI log level.

f1u_level
  • Optional TEXT (warning). Sets F1u log level.

du_level
  • Optional TEXT (warning). Sets DU log level.

cu_level
  • Optional TEXT (warning). Sets CU log level.

lib_level
  • Optional TEXT (warning). Sets generic log level.

hex_max_size
  • Optional UINT (0). Sets maximum number of bytes to print for hex messages. Supported: [0 - 1024].

broadcast_enabled
  • Optional BOOL (false). Enables logging in the PHY and MAC layer of broadcast messages and all PRACH opportunities.

phy_rx_symbols_filename
  • Optional TEXT. Print received symbols to file. Symbols will be printed if a valid path is set. Format: file path.

pcap

ngap_enable
  • Optional BOOL (false). Enable/disable NGAP packet capture.

ngap_filename
  • Optional TEXT (/tmp/gnb_ngap.pcap). Path for NGAP PCAPs.

mac_enable
  • Optional BOOL (false). Enable/disable MAC packet capture.

mac_filename
  • Optional TEXT (/tmp/gnb_mac.pcap). Path for MAC PCAPs.

expert_phy

nof_ul_threads
  • Optional UINT (4). Sets number of threads for processing PUSCH and PUCCH. It is set to 4 by default unless the available hardware concurrency is limited in which case will use a minimum of one thread.

pusch_dec_max_iterations
  • Optional UINT (6). Sets the number of PUSCH LDPC decoder iterations. Format: Positive integer greater than 0.

pusch_dec_enable_early_stop
  • Optional BOOL (true). Enables the PUSCH decoder early stopping mechanism.