Skip to main content

Configuration Reference

OCUDU uses a YAML (.yml) configuration file.

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

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.

These include sample supplementary configuration files for:

  • MIMO with a USRP
  • Increasing QAM from 64 to 256
  • Specific QOS configurations for voice, video, IMS, live-streaming and buffered video streaming
  • Slicing support

OCUDU allows configuration files to be used in concatenation with other configuration files, using the -c flag between each file. For example you might want to use both the n310 and MIMO example configs together as follows:

sudo ./gnb -c gnb_rf_n310_fdd_n3_20mhz.yml -c mimo.yml

Furthermore you may wish to use QAM256 in addition to the above. This can be done as follows:

sudo ./gnb -c gnb_rf_n310_fdd_n3_20mhz.yml -c mimo.yml -c qam256.yml

Note: list-of-structures sections such as cells and qos cannot be merged across files due to CLI11 limitations. The last file to define the section takes effect.


Configuration Reference

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

parameter: default_value         # Optional/Required TYPE (default value). Parameter description. Format: <format description> OR Supported: <supported values>.
Download configuration files

Download the full reference configuration for each deployment mode: gNodeB (gnb.yaml) | CU (cu.yaml) | DU (du.yaml)

gnb.yaml
# SPDX-FileCopyrightText: Copyright (C) 2021-2026 Software Radio Systems Limited
# SPDX-License-Identifier: BSD-3-Clause-Open-MPI

ran_node_name: gnb01 # Optional TEXT (gnb01). Sets the RAN node name.
gnb_id: 411 # Optional UINT (411). gNodeB identifier.
gnb_id_bit_length: 22 # Optional UINT (22). gNodeB identifier length in bits. Supported: [22 - 32].
gnb_cu_up_id: 0 # Optional UINT (0). Sets the gNB CU-UP ID. Supported: [0 - 68719476735].
gnb_du_id: 0 # Optional UINT (0). Sets the gNB DU ID. Supported: [0 - 68719476735].
dryrun: false # Optional BOOLEAN (false). Enable application dry run mode. Supported: [false, true].

cells: # Optional TEXT. Sets the cell configuration on a per cell basis, overwriting the default configuration defined by cell_cfg.
- pci: 1 # Optional UINT. Override the PCI defined by the default cell in cell_cfg.
dl_arfcn: 536020 # Optional UINT. Set the ARFCN for the above PCI. Note, this must match the value used in the cell_cfg section.
- pci: 2 # Optional UINT. Set the PCI of the second cell.
dl_arfcn: 532020 # Optional UINT. Set the ARFCN of the second cell.

qos: # Optional TEXT. Configures RLC and PDCP radio bearers on a per 5QI basis. Each list entry should begin with "-".
- five_qi: 9 # Optional UINT (9). 5QI. Supported: [0 - 255].
rlc:
mode: am # Optional TEXT (am). RLC mode.
um-bidir:
tx:
sn: 0 # Optional UINT (0). RLC UM TX SN.
queue-size: 0 # Optional UINT (0). RLC UM TX SDU queue size.
queue-bytes: 0 # Optional UINT (0). RLC UM TX SDU queue limit in bytes.
rx:
sn: 0 # Optional UINT (0). RLC UM RX SN.
t-reassembly: 0 # Optional INT (0). RLC UM t-Reassembly.
am:
tx:
sn: 0 # Optional UINT (0). RLC AM TX SN size.
t-poll-retransmit: 0 # Optional INT (0). RLC AM TX t-PollRetransmit (ms).
max-retx-threshold: 0 # Optional UINT (0). RLC AM max retx threshold.
poll-pdu: 0 # Optional INT (0). RLC AM TX PollPdu.
poll-byte: 0 # Optional INT (0). RLC AM TX PollByte.
max_window: 0 # Optional UINT (0). Non-standard parameter that limits the tx window size. Can be used for limiting memory usage with large windows. 0 means no limits other than the SN size (i.e. 2^[sn_size-1]).
queue-size: 4096 # Optional UINT (4096). RLC AM TX SDU queue size.
queue-bytes: 6172672 # Optional UINT (6172672). RLC AM TX SDU queue size in bytes.
rx:
sn: 0 # Optional UINT (0). RLC AM RX SN.
t-reassembly: 0 # Optional INT (0). RLC AM RX t-Reassembly.
t-status-prohibit: 0 # Optional INT (0). RLC AM RX t-StatusProhibit.
max_sn_per_status: 0 # Optional UINT (0). RLC AM RX status SN limit.
pdcp:
rohc:
rohc_type: none # Optional TEXT (none). ROHC type (none/rohc/ul_only_rohc). Values: {none, rohc, ul_only_rohc}. Default: none. Supported: [none, rohc, uplink_only_rohc].
max_cid: 15 # Optional UINT (15). Maximum CID.
profile0x0001: false # Optional BOOLEAN (false). Configure profile0x0001 (ROHCv1 RTP/UDP/IP). Supported: [false, true].
profile0x0002: false # Optional BOOLEAN (false). Configure profile0x0002 (ROHCv1 UDP/IP). Supported: [false, true].
profile0x0003: false # Optional BOOLEAN (false). Configure profile0x0003 (ROHCv1 ESP/IP). Supported: [false, true].
profile0x0004: false # Optional BOOLEAN (false). Configure profile0x0004 (ROHCv1 IP). Supported: [false, true].
profile0x0006: false # Optional BOOLEAN (false). Configure profile0x0006 (ROHCv1 TCP/IP). Supported: [false, true].
profile0x0101: false # Optional BOOLEAN (false). Configure profile0x0101 (ROHCv2 RTP/UDP/IP). Supported: [false, true].
profile0x0102: false # Optional BOOLEAN (false). Configure profile0x0102 (ROHCv2 UDP/IP). Supported: [false, true].
profile0x0103: false # Optional BOOLEAN (false). Configure profile0x0103 (ROHCv2 ESP/IP). Supported: [false, true].
profile0x0104: false # Optional BOOLEAN (false). Configure profile0x0104 (ROHCv2 IP). Supported: [false, true].
tx:
sn: 0 # Optional UINT (0). PDCP TX SN size.
discard_timer: 0 # Optional INT (0). PDCP TX discard timer (ms).
status_report_required: false # Optional BOOLEAN (false). PDCP TX status report required. Supported: [false, true].
rx:
sn: 0 # Optional UINT (0). PDCP RX SN size.
t_reordering: 0 # Optional INT (0). PDCP RX t-Reordering (ms).
out_of_order_delivery: false # Optional BOOLEAN (false). PDCP RX enable out-of-order delivery. Supported: [false, true].
f1u_cu_up:
backoff_timer: 5 # Optional INT (5). F1-U backoff timer (ms).
queue_size: 8192 # Optional UINT (8192). F1-U backoff timer (ms).
batch_size: 256 # Optional UINT (256). F1-U backoff timer (ms).
f1u_du:
backoff_timer: 0 # Optional INT (0). F1-U backoff timer (ms).
ul_buffer_size: 0 # Optional UINT (0). F1-U handover buffer size.

srbs: # Optional TEXT. Configures signaling radio bearers. Each list entry should begin with "-".
- srb_id: 0 # Optional UINT (0). SRB Id. Format: legal values: {1, 2}.
rlc:
tx:
sn: 0 # Optional UINT (0). RLC AM TX SN size.
t-poll-retransmit: 0 # Optional INT (0). RLC AM TX t-PollRetransmit (ms).
max-retx-threshold: 0 # Optional UINT (0). RLC AM max retx threshold.
poll-pdu: 0 # Optional INT (0). RLC AM TX PollPdu.
poll-byte: 0 # Optional INT (0). RLC AM TX PollByte.
max_window: 0 # Optional UINT (0). Non-standard parameter that limits the tx window size. Can be used for limiting memory usage with large windows. 0 means no limits other than the SN size (i.e. 2^[sn_size-1]).
queue-size: 4096 # Optional UINT (4096). RLC AM TX SDU queue size in PDUs.
queue-bytes: 6172672 # Optional UINT (6172672). RLC AM TX SDU queue size in bytes.
rx:
sn: 0 # Optional UINT (0). RLC AM RX SN.
t-reassembly: 0 # Optional INT (0). RLC AM RX t-Reassembly.
t-status-prohibit: 0 # Optional INT (0). RLC AM RX t-StatusProhibit.
max_sn_per_status: 0 # Optional UINT (0). RLC AM RX status SN limit.

cu_cp:
max_nof_dus: 6 # Optional UINT (6). Sets the maximum number of DU connections that the CU-CP may accept.
max_nof_cu_ups: 6 # Optional UINT (6). Sets the maximum number of CU-UP connections that the CU-CP may accept.
max_nof_ues: 8192 # Optional UINT (8192). Sets the maximum number of UEs that the CU-CP may accept.
max_nof_drbs_per_ue: 8 # Optional UINT (8). Sets the maximum number of DRBs per UE. Supported: [1 - 29].
inactivity_timer: 120 # Optional INT (120). Sets the UE/PDU Session/DRB inactivity timer in seconds. Supported: [1 - 7200].
request_pdu_session_timeout: 3 # Optional INT (3). Timeout for the setup of a PDU session after an InitialUeMessage was sent to the core, in seconds. The timeout must be larger
# than T310. If the value is reached, the UE will be released.
enable_rrc_inactive: false # Optional BOOLEAN (false). Enables the RRC INACTIVE state for UEs. Supported: [false, true].
ran_paging_cycle: 32 # Optional UINT (32). Sets the default RAN paging cycle for INACTIVE UEs. Supported: [32, 64, 128, 256].
nof_i_rnti_ue_bits: 13 # Optional UINT (13). Sets the number of bits used for the I-RNTI UE identifier. Supported: [1 - 18].
t380: 10 # Optional INT (10). Sets the RRC inactivity timer T380 in minutes. Supported: [5, 10, 20, 30, 60, 120, 360, 720].
extra_amfs: # Optional TEXT. Sets the list of extra AMFs for the CU-CP to connect to.

amf:
no_core: false # Optional BOOLEAN (false). Setting to true allows the gNB to run without a core. Supported: [false, true].
amf_reconnection_retry_time: 1000 # Optional UINT (1000). Sets the time in ms to wait before retrying to connect to the AMF after a failed connection attempt.
addrs: 127.0.1.100 # Required TEXT. Sets the AMF IP addresses for N2 interface. Multiple addresses supported for SCTP multi-homing. Format: IPV4 or IPV6 IP address.
port: 38412 # Optional UINT (38412). Sets the AMF port. Supported: [20000 - 40000].
bind_addrs: 127.0.0.1 # Optional TEXT (127.0.0.1). Sets the local bind addresses for N2 interface. Multiple addresses supported for SCTP multi-homing.
bind_interface: auto # Optional TEXT (auto). Sets network device to bind for N2 interface.
sctp_rto_initial: 120 # Optional INT (120). Sets the initial retransmission timeout when creating the SCTP connection.
sctp_rto_min: 120 # Optional INT (120). Sets the minimum retransmission timeout for the SCTP connection.
sctp_rto_max: 500 # Optional INT (500). Sets the maximum retransmission timeout for the SCTP connection.
sctp_init_max_attempts: 3 # Optional INT (3). Sets the maximum retransmission attempts for the initial SCTP connection.
sctp_max_init_timeo: 500 # Optional INT (500). Sets the maximum retransmission timeout for the initial SCTP connection.
sctp_hb_interval: 30000 # Optional INT (30000). SCTP heartbeat interval in milliseconds. Supported: [-1 - inf] (-1 to use system default).
sctp_assoc_max_retx: 10 # Optional INT (10). SCTP association max retransmissions. Supported: [-1 - inf] (-1 to use system default).
sctp_nodelay: false # Optional BOOLEAN (false). Setting to true allows the gNB to send SCTP messages as soon as possible without any Nagle-like algorithm. Supported: [false, true].
procedure_timeout: 5000 # Optional UINT (5000). Sets the AMF NGAP procedure timeout in milliseconds.
supported_tracking_areas: # Optional TEXT. Sets the list of tracking areas supported by this AMF.
- # Supported TAC #1
tac: 7 # Required UINT. Sets the Tracking Area Code.
plmn_list: # Required TEXT. Sets the list of PLMN items supported for this Tracking Area.
- # Supported PLMN #1
plmn: "00101" # Required TEXT. Sets the Public Land Mobile Network code. Format: 7-digit PLMN code containing MCC & MNC.
tai_slice_support_list: # Required TEXT. Sets the list of TAI slices for this PLMN item.
- # Supported TAI Slice(s) for PLMN
sst: 1 # Optional UINT (0). Sets the Slice Service Type. Supported: [0 - 255].
sd: 16777215 # Optional UINT (16777215). Sets the Service Differentiator. Supported: [0 - 16777215].

xnap:
procedure_timeout: 5000 # Optional UINT (5000). Sets the Xn-AP procedure timeout in milliseconds.
reconnect_timer: 10000 # Optional UINT (10000). Sets the Xn-AP reconnect timer in milliseconds.
no_connection_init: false # Optional BOOLEAN (false). Disables Xn-AP connection initiation. Supported: [false, true].
gateways: # Optional TEXT. Sets the list of Xn-AP gateway addresses. Each list entry should begin with "-".
-
bind_addrs: x.x.x.x # Required TEXT. Sets the gateway IP addresses.
sctp:
sctp_rto_initial: 120
sctp_rto_min: 120
sctp_rto_max: 500
sctp_init_max_attempts: 3
sctp_max_init_timeo: 500
sctp_hb_interval: 30000
sctp_assoc_max_retx: 10
sctp_nodelay: false
connections: # Optional TEXT. Sets the list of Xn-C peer connections reachable via this gateway.
-
peer_addrs: # Required TEXT. Sets the peer gNB IP addresses for this XnAP connection.

mobility:
trigger_handover_from_measurements: false # Optional BOOLEAN (false). Sets whether or not to start HO if neighbor cells become stronger. Supported: [false, true].
trigger_cho_on_ue_setup: false # Optional BOOLEAN (false). Sets whether to trigger Conditional Handover on UE setup. Supported: [false, true].
cho_timeout_ms: 10000 # Optional UINT (10000). Sets the Conditional Handover timeout in milliseconds. Supported: [1 - 600000].
cells: # Optional TEXT. Sets the list of cells known to the CU-CP, their configs (if not provided over F1) and their respective neighbor cells.
- # Define Cell 1
nr_cell_id: # Required UINT. The ID of a cell that belongs to this gNB.
periodic_report_cfg_id: # Optional UINT. The periodical report configuration to use for this cell.
ncells: # Required TEXT. List of neighbor cells.
- # Define neighbour cell(s) of Cell 1.
nr_cell_id: # Required UINT. The ID of this neighbor cell.
report_configs: # Required TEXT. List of report configurations to use for measurements of this neighbor cell.
- # Define Cell 2
nr_cell_id: # Required UINT. The ID of a cell that does not belong to this gNB.
ncells: # Required TEXT. List of neighbor cells.
- # Define neighbour cell(s) of Cell 2.
nr_cell_id: # Required UINT. The ID of this neighbor cell.
report_configs: # Required TEXT. List of report configurations to use for measurements of this neighbor cell.
gnb_id_bit_length: # Optional UINT. The ID of this cell's gNB. Must be present if the cell does not belong to this gNB. Supported: [22 - 32].
pci: # Optional UINT. The PCI of this cell. Must be present if the cell does not belong to this gNB. Supported: [0 - 1007].
band: # Optional TEXT (enum). The NR band of this cell. Must be present if the cell does not belong to this gNB.
ssb_arfcn: # Optional UINT. Sets the SSB ARFCN of this cell.
plmn: # Optional TEXT. Sets the PLMN of this cell.
tac: # Optional UINT. Sets the Tracking Area Code of this cell. Supported: [0 - 16777215].
ssb_scs: # Optional UINT. The SSB subcarrier spacing of this cell in KHz. Must be present if cell does not belong to this gNB. Supported: [15, 30, 60, 120, 240].
ssb_period: # Optional UINT. The SSB period of this cell in ms. Must be present if cell does not belong to this gNB. Supported: [5, 10, 20, 40, 80, 160].
ssb_offset: # Optional UINT. The SSB offset of this cell. Must be present if cell does not belong to this gNB.
ssb_duration: # Optional UINT. The SSB duration of this cell in subframes. Must be present if cell does not belong to this gNB. Supported: [1, 2, 3, 4, 5].
report_configs: # Optional TEXT. Sets the list of report configurations to dynamically build a measurement configuration sent to UEs.
- # Define report configs to be used by the UEs
report_cfg_id: # Required UINT. The ID of this report configuration.
report_type: # Required TEXT. The type of the report. Supported: [event_triggered, periodical, cond_trigger].
event_triggered_report_type: # Optional TEXT. Sets the type of event triggered report. Supported: [a1, a2, a3, a4, a5, a6, d1, t1, d2].
report_interval_ms: # Optional UINT. The report interval in ms. Supported: [120, 240, 480, 640, 1024, 2048, 5120, 10240, 20480, 40960, 60000, 360000, 720000, 1800000].
meas_trigger_quantity: # Optional TEXT. Sets the quantity to be measured. Supported: [rsrp, rsrq, sinr].
meas_trigger_quantity_threshold_db: # Optional INT. Sets the measurement trigger quantity threshold in dB for A1/A2/A4/A5 events. Valid ranges: RSRP [-156..-31] dBm, RSRQ [-43..20] dB, SINR [-23..40] dB. Supported: [-156 - 40].
meas_trigger_quantity_threshold_2_db: # Optional INT. Sets the measurement trigger quantity threshold 2 in dB for A5 events. Valid ranges: RSRP [-156..-31] dBm, RSRQ [-43..20] dB, SINR [-23..40] dB. Supported: [-156 - 40].
meas_trigger_quantity_offset_db: # Optional INT. Sets the measurement trigger quantity offset in dB for A3/A6 events. Supported: [-15 - 15].
hysteresis_db: # Optional UINT. Sets the hysteresis in dB for measurement report trigger. Supported: [0 - 15].
time_to_trigger_ms: # Optional UINT. Sets the time in ms during which a condition must be met before measurement report trigger. Supported: [0, 40, 64, 80, 100, 128, 160, 256, 320, 480, 512, 640, 1024, 1280, 2560, 5120].
periodic_ho_rsrp_offset_db: -1 # Optional INT (-1). Sets the RSRP offset for periodic HO triggering in dB. -1 disables. Note the actual value is field value * 0.5 dB. Supported: [-1 - 30].
t312: # Optional UINT. Sets the T312 timer in ms. Supported: [0, 50, 100, 200, 300, 400, 500, 1000].
distance_thresh_from_ref1_km: # Optional FLOAT. Sets the D1/D2 distance threshold 1 in km. Supported: [0.0 - 3276.75].
distance_thresh_from_ref2_km: # Optional FLOAT. Sets the D1/D2 distance threshold 2 in km. Supported: [0.0 - 3276.75].
hysteresis_location_km: # Optional FLOAT. Sets the D1/D2 location hysteresis in km. Supported: [0.0 - 327.68].
ref_location1:
latitude: # Optional FLOAT. Sets D1 reference location 1 latitude in degrees. Supported: [-90.0 - 90.0].
longitude: # Optional FLOAT. Sets D1 reference location 1 longitude in degrees. Supported: [-180.0 - 180.0].
ref_location2:
latitude: # Optional FLOAT. Sets D1 reference location 2 latitude in degrees. Supported: [-90.0 - 90.0].
longitude: # Optional FLOAT. Sets D1 reference location 2 longitude in degrees. Supported: [-180.0 - 180.0].
t1_thres: # Optional TEXT. Sets the T1 time threshold. Format: Unix ms integer or YYYY-MM-DDTHH:MM:SS[.mmm].
duration_s: # Optional FLOAT. Sets the T1 duration in seconds. Supported: [0.1 - 600.0].

rrc:
force_reestablishment_fallback: false # Optional BOOLEAN (false). Forces RRC re-establishment fallback to RRC setup. Supported: [false, true].
force_resume_fallback: false # Optional BOOLEAN (false). Forces RRC Resume to fall back to RRC Setup. Supported: [false, true].
rrc_procedure_guard_time_ms: 1000 # Optional UINT (1000). Sets the guard time in ms used for RRC message exchange with UE. This is added to the RRC procedure timeout.

security:
integrity: not_needed # Optional TEXT (not_needed). Sets the default integrity protection indication for DRBs. Supported: [not_needed, preferred, required].
confidentiality: required # Optional TEXT (required). Sets the default confidentiality protection indication for DRBs. Supported: [not_needed, preferred, required].
nea_pref_list: nea0,nea2,nea1,nea3 # Optional TEXT (nea0,nea2,nea1,nea3). Sets the ordered preference list for the selection of encryption algorithm (NEA).
nia_pref_list: nia2,nia1,nia3 # Optional TEXT (nia2,nia1,nia3). Sets the ordered preference list for the selection of integrity algorithm (NIA).

f1ap:
procedure_timeout: 1000 # Optional UINT (1000). Sets the time the F1AP waits for a DU response in milliseconds.

e1ap:
procedure_timeout: 1000 # Optional UINT (1000). Sets the time the E1AP waits for a CU-UP response in milliseconds.

cu_up:
max_nof_ues: 16384 # Optional UINT (16384). Sets the maximum number of UE bearer contexts supported by the CU-UP. Supported: [1 - 65536].
warn_on_drop: false # Optional BOOLEAN (false). Enables logging a warning for dropped packets in GTP-U and PDCP due to full queues. Supported: [false, true].
plmn_list: # Optional TEXT. Sets the list of supported PLMN IDs. Each entry is a 5 or 6 digit string (MCC+MNC). Supported: up to 12 PLMNs.

ngu:
no_core: false # Optional BOOLEAN (false). Setting to true allows the gNB to run without a core. Supported: [false, true].
gtpu:
queue_size: 2046 # Optional UINT (2046). Sets the GTP-U queue size, in PDUs.
batch_size: 256 # Optional UINT (256). Sets the maximum number of GTP-U PDUs processed in a batch.
reordering_timer: 0 # Optional UINT (0). Sets the GTP-U RX reordering timer in milliseconds. 0 disables reordering.
rate_limiter_period: 100 # Optional UINT (100). Sets the GTP-U RX rate limiter period in milliseconds.
ignore_ue_ambr: true # Optional BOOLEAN (true). Ignores GTP-U DL UE-AMBR rate limiter. Supported: [false, true].
teid_release_linger_time: 100 # Optional UINT (100). Sets the TEID linger time after release in milliseconds.
socket: # Optional TEXT. Defines socket(s) for NG-U interface. Each list entry should begin with "-".
- # Socket 1
bind_addr: 127.0.0.1 # Optional TEXT (127.0.0.1). Sets local IP address to bind for N3 interface. Format: IPV4 or IPV6 IP address.
bind_interface: auto # Optional TEXT (auto). Sets network device to bind for N3 interface.
ext_addr: auto # Optional TEXT (auto). Sets the external IP address for N3 traffic. "auto" uses bind_addr.
udp:
max_rx_msgs: 256 # Optional UINT (256). Sets the maximum number of messages RX from a socket in a single syscall.
pool_threshold: 0.9 # Optional FLOAT (0.9). Sets the pool occupancy threshold above which packets are dropped. Supported: [0.0 - 1.0].
tx_qsize: 4096 # Optional UINT (4096). Sets the size of TX queue used for batching SDUs.
max_tx_msgs: 256 # Optional UINT (256). Sets the maximum amount of messages TX in a single syscall.
max_tx_segments: 256 # Optional UINT (256). Sets the maximum amount of segments TX in a single SDU.
reuse_addr: false # Optional BOOLEAN (false). Allow multiple sockets to bind to the same port. Supported: [false, true].
dscp: # Optional UINT. Sets the Differentiated Services Code Point value. Supported: [0 - 63].

test_mode:
enable: false # Optional BOOLEAN (false). Enables or disables CU-UP test mode. Supported: [false, true].
integrity_enable: true # Optional BOOLEAN (true). Enables or disables PDCP integrity testing. Supported: [false, true].
ciphering_enable: true # Optional BOOLEAN (true). Enables or disables PDCP ciphering testing. Supported: [false, true].
nea_algo: 2 # Optional UINT (2). Sets the NEA algorithm index for test mode. Supported: [0 - 3].
nia_algo: 2 # Optional UINT (2). Sets the NIA algorithm index for test mode. Supported: [1 - 3].
ue_ambr: 40000000000 # Optional UINT (40000000000). Sets the DL UE-AMBR used for testing in bps.
attach_detach_period: 0 # Optional UINT (0). Sets the attach/detach period for test mode in milliseconds. 0 means always attached.
reestablish_period: 0 # Optional UINT (0). Sets the reestablish period for test mode in milliseconds. 0 means no re-establishment.
f1u_peer_address: 127.0.10.2 # Optional TEXT (127.0.10.2). Sets the F1-U peer address for test mode.
nof_ues: 1 # Optional UINT (1). Sets the number of test UEs.

du:
warn_on_drop: false # Optional BOOLEAN (false). Enables logging a warning for dropped packets in F1-U, RLC and MAC due to full queues. Supported: [false, true].

cell_cfg:
pci: 1 # Optional UINT (1). Sets the Physical Cell ID. Supported: [0 - 1007].
sector_id: # Optional UINT. Sets the Sector ID (4-14 bits). Concatenated with gNB Id to form NR Cell Identity. Auto-derived if not specified. Supported: [0 - 16383].
dl_arfcn: 536020 # Required UINT (536020). Sets the Downlink ARFCN.
band: auto # Optional TEXT (auto). Sets the NR band being used for the cell. If not specified, will be set automatically based on ARFCN.
common_scs: 15 # Required UINT (15). Sets the subcarrier spacing in kHz. Supported: [15, 30, 60, 120].
channel_bandwidth_MHz: 20 # Required UINT (20). Sets the channel bandwidth in MHz. Supported: [5, 10, 15, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100].
nof_antennas_dl: 1 # Optional UINT (1). Sets the number of antennas for downlink transmission. Supported: [1, 2, 4].
nof_antennas_ul: 1 # Optional UINT (1). Sets the number of antennas for uplink transmission. Supported: [1, 2, 4].
plmn: "00101" # Required TEXT (00101). Sets the Public Land Mobile Network code. Format: 7-digit PLMN code containing MCC & MNC.
tac: 7 # Required UINT (7). Sets the Tracking Area Code.
enabled: true # Optional BOOLEAN (true). Sets whether the cell is enabled on start-up or not. Supported: [false, true].
cell_barred: false # Optional BOOLEAN (false). Sets whether the cell is broadcast as barred for new access. Supported: [false, true].
intra_freq_reselection: true # Optional BOOLEAN (true). Enables intra-frequency cell reselection. Supported: [false, true].
q_rx_lev_min: -70 # Optional INT (-70). Sets the required minimum received RSRP level for cell selection/re-selection, in dBm. Supported: [-70 - -22].
q_qual_min: -20 # Optional INT (-20). Sets the required minimum received RSRQ level for cell selection/re-selection, in dB. Supported: [-43 - -12].
pcg_p_nr_fr1: # Optional INT. Sets the maximum total TX power for the UE in this NR cell group in FR1. Supported: [-30 - +23].
additional_plmns: # Optional TEXT. Sets additional PLMN list for the cell.
slicing: # Optional TEXT. Configures network slicing options. This can only be set via the configuration file.
- # Configure Slice 1, for further slices, replicate below format.
sst: 1 # Optional UINT (1). Sets the Slice Service Type. Supported: [0 - 255].
sd: 0 # Optional UINT (0). Sets the Service Differentiator. Supported: [0 - 16777215].
sched_cfg: # Scheduler configuration for the slice.
min_prb_policy_ratio: 0 # Optional UINT (0). Sets the minimum percentage of PRBs to be allocated to the slice. Supported: [0 - 100].
max_prb_policy_ratio: 100 # Optional UINT (100). Sets the maximum percentage of PRBs to be allocated to the slice. Supported: [1 - 100].
ded_prb_policy_ratio: 1 # Optional UINT. Sets the dedicated percentage of PRBs to be allocated to the slice. Supported: [1 - 100].
priority: 0 # Optional UINT (0). Sets the slice scheduler priority. Supported: [0 - 254].
policy:
qos_sched:
combine_function: gbr_prioritized # Optional TEXT (gbr_prioritized). Sets the QoS-aware scheduler weight combining function. Supported: [gbr_prioritized, geometric_mean].
pf_fairness_coeff: 2 # Optional FLOAT (2). Sets the fairness coefficient for the Proportional Fair policy scheduler.
prio_enabled: true # Optional BOOLEAN (true). Enables the QoS Flow priority in QoS-aware scheduling. Supported: [false, true].
pdb_enabled: true # Optional BOOLEAN (true). Enables the Packet Delay Budget (PDB) in QoS-aware scheduling. Supported: [false, true].
gbr_enabled: true # Optional BOOLEAN (true). Enables the Guaranteed Bit Rate (GBR) in QoS-aware scheduling. Supported: [false, true].
rr_sched: # Optional. Round-robin scheduler policy configuration.

mac_cell_group:
bsr_cfg:
periodic_bsr_timer: 10 # Optional UINT (10). Sets the periodic Buffer Status Report Timer value in nof. subframes. Supported: [1, 5, 10, 16, 20, 32, 40, 64, 80, 128, 160, 320, 640, 1280, 2560, 0].
retx_bsr_timer: 80 # Optional UINT (80). Sets the retransmission Buffer Status Report Timer value in nof. subframes. Supported: [10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240].
lc_sr_delay_timer: # Optional UINT. Sets the Logical Channel SR delay timer in nof. subframes. Supported: [20, 40, 64, 128, 512, 1024, 2560].
phr_cfg:
phr_prohibit_timer: 10 # Optional UINT (10). Sets the PHR prohibit timer in nof. subframes. Supported: [0, 10, 20, 50, 100, 200, 500, 1000].
sr_cfg:
sr_trans_max: 64 # Optional UINT (64). Sets the maximum number of SR transmissions. Supported: [4, 8, 16, 32, 64].
sr_prohibit_timer: # Optional TEXT. Sets the timer for SR transmission on PUCCH in ms. Supported: [1, 2, 4, 8, 16, 32, 64, 128].

ssb:
ssb_period: 10 # Optional UINT (10). Sets the period of SSB scheduling in milliseconds. Supported: [5, 10, 20].
ssb_block_power_dbm: -16 # Optional INT (-16). Sets the SS PBCH block power in dBm. Supported: [-60 - +50].
pss_to_sss_epre_db: 0 # Optional UINT (0). Sets the PSS to SSS EPRE ratio in dB. Supported: [0, 3].


sib:
si_window_length: 160 # Optional UINT (160). Sets the length of the SI scheduling window in slots. Supported: [5, 10, 20, 40, 80, 160, 320, 640, 1280].
si_sched_info: # Optional TEXT. Configures the scheduling for each of the SI-messages broadcast by the gNB.
t300: 1000 # Optional UINT (1000). Sets the RRC Connection Establishment timer in ms. Supported: [100, 200, 300, 400, 600, 1000, 1500, 2000].
t301: 1000 # Optional UINT (1000). Sets the RRC Connection Re-establishment timer in ms. Supported: [100, 200, 300, 400, 600, 1000, 1500, 2000].
t310: 1000 # Optional UINT (1000). Sets the Out-of-sync timer in ms. Supported: [0, 50, 100, 200, 500, 1000, 2000].
n310: 1 # Optional UINT (1). Sets the Out-of-sync counter. Supported: [1, 2, 3, 4, 6, 8, 10, 20].
t311: 3000 # Optional UINT (3000). Sets the RRC Connection Re-establishment procedure timer in ms. Supported: [1000, 3000, 5000, 10000, 15000, 20000, 30000].
n311: 1 # Optional UINT (1). Sets the In-sync counter. Supported: [1, 2, 3, 4, 5, 6, 8, 10].
t319: 1000 # Optional UINT (1000). Sets the RRC Connection Resume timer in ms. Supported: [100, 200, 300, 400, 600, 1000, 1500, 2000].
sib2:
q_hyst: 3 # Optional UINT (3). Sets the hysteresis value for ranking criteria. Supported: [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24].
thresh_serving_low_p: 0 # Optional UINT (0). Sets the Rx level threshold for serving cell when reselecting to lower priority RAT/frequency. Supported: [0 - 31].
cell_reselection_priority: 6 # Optional UINT (6). Sets the cell reselection priority for this cell's frequency. Supported: [0 - 7].
q_rx_lev_min: -140 # Optional INT (-140). Sets the minimum required Rx level in the cell in dBm. Supported: even values in [-140, -44].
s_intra_search_p: 62 # Optional UINT (62). Sets the Rx level threshold for intra-frequency measurements in dB. Supported: even values in [0, 62].
t_reselection_nr: 1 # Optional UINT (1). Sets the cell reselection timer value in seconds. Supported: [0 - 7].
sib3:
intra_freq_neigh_cell_list: # Optional TEXT. Sets the intra-frequency neighbor cell list.
- pci: 0 # Optional UINT (0). Sets the PCI of the neighbour cell. Supported: [0 - 1007].
q_offset_cell: 0 # Optional INT (0). Sets the cell-specific offset for this neighbour. Format: legal values: {-24, -22, -20, -18, -16, -14, -12, -10, -8, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24}.
intra_freq_excluded_cell_list: # Optional TEXT. Sets the intra-frequency excluded cell list.
- start: 0 # Required UINT (0). Sets the range start. Supported: [0 - 1007].
size: 1 # Required UINT (1). Sets the range size. Format: legal values: {1, 4, 8, 12, 16, 24, 32, 48, 64, 84, 96, 128, 168, 252, 504, 1008}.
sib4:
inter_freq_carrier_freq_list: # Optional TEXT. Sets the inter-frequency carrier frequency list.
- arfcn: 0 # Optional UINT (0). Sets the carrier ARFCN.
ssb_scs: 15kHz # Optional TEXT (15kHz). Sets the SSB subcarrier spacing. Format: accepts SCS strings (e.g. "15kHz", "30kHz").
derive_ssb_index_from_cell: false # Optional BOOLEAN (false). Derives SSB index from cell. Supported: [false, true].
q_rx_lev_min: -140 # Optional INT (-140). Sets the minimum required Rx level in dBm. Format: must be an even value within [-140, -44].
thresh_x_high_p: 0 # Optional UINT (0). Sets the Rx level threshold in dB for reselection to a higher priority RAT/frequency. Format: must be an even value within [0, 62].
thresh_x_low_p: 0 # Optional UINT (0). Sets the Rx level threshold in dB for reselection to a lower priority RAT/frequency. Format: must be an even value within [0, 62].
q_offset_freq: 0 # Optional INT (0). Sets the frequency-specific offset in dB for equal priority NR frequencies. Format: legal values: {-24, -22, -20, -18, -16, -14, -12, -10, -8, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24}.
sib5:
t_reselection_eutra: # Optional UINT. Sets the EUTRA cell reselection timer value in seconds. Supported: [0 - 7].
carrier_freq_list_eutra: # Optional TEXT. Sets the EUTRA carrier frequency list.
- earfcn: 0 # Optional UINT (0). Sets the EUTRA EARFCN.
allowed_meas_bandwidth: 0 # Optional UINT (0). Sets the allowed measurement bandwidth. Format: legal values: {6, 15, 25, 50, 75, 100}.
presence_antenna_port1: false # Optional BOOLEAN (false). Sets whether all neighbour cells use Antenna Port 1. Supported: [false, true].
cell_reselection_priority: # Required UINT. Sets the cell reselection priority for this frequency. Supported: [0 - 7].
thresh_x_high: 0 # Optional UINT (0). Sets the Rx level threshold in dB for reselection to a higher priority RAT/frequency. Format: must be an even value within [0, 62].
thresh_x_low: 0 # Optional UINT (0). Sets the Rx level threshold in dB for reselection to a lower priority RAT/frequency. Format: must be an even value within [0, 62].
q_rx_lev_min: -140 # Optional INT (-140). Sets the minimum required Rx level in dBm. Format: must be an even value within [-140, -44].
q_qual_min: -34 # Optional INT (-34). Sets the minimum required quality level in dB. Supported: [-34 - -3].
p_max_eutra: 33 # Optional INT (33). Sets the maximum allowed transmission power in dBm. Supported: [-30 - 33].
sib16:
freq_prio_list_slicing: # Optional TEXT. Sets the frequency priority slicing list entries.
- dl_implicit_carrier_freq: 0 # Optional UINT (0). Sets the DL implicit carrier frequency index. Supported: [0 - 8].
slice_info_list: # Optional TEXT. Sets the slice info list entries.
- nsag_id: 0 # Optional UINT (0). Sets the NSAG ID. Supported: [0 - 255].
allowed: true # Optional BOOLEAN (true). Sets whether the cell list is allowed (true) or excluded (false). Supported: [false, true].
reselection_priority: 0 # Optional FLOAT (0). Sets the priority for this cell reselection slice. Format: must be a multiple of 0.2 within [0.0, 7.8].
cells_allowed: # Optional TEXT. Sets the slice cell list entries.
- start: 0 # Required UINT (0). Sets the range start. Supported: [0 - 1007].
size: 1 # Required UINT (1). Sets the range size. Format: legal values: {1, 4, 8, 12, 16, 24, 32, 48, 64, 84, 96, 128, 168, 252, 504, 1008}.
etws:
message_id: 4356 # Optional UINT (4356). Sets the ETWS message ID. Supported: [0 - 65535].
serial_num: 12288 # Optional UINT (12288). Sets the ETWS message serial number. Supported: [0 - 65535].
warning_type: 2432 # Optional UINT (2432). Sets the ETWS warning type. Supported: [0 - 65535].
data_coding_scheme: 0 # Optional UINT (0). Sets the ETWS CBS data coding scheme. Supported: [0 - 255].
warning_message: # Optional TEXT. Sets the ETWS warning message string.
cmas:
message_id: 4370 # Optional UINT (4370). Sets the CMAS message ID. Supported: [0 - 65535].
serial_num: 12291 # Optional UINT (12291). Sets the CMAS message serial number. Supported: [0 - 65535].
data_coding_scheme: 0 # Optional UINT (0). Sets the CMAS CBS data coding scheme. Supported: [0 - 255].
warning_message: # Optional TEXT. Sets the CMAS warning message string.

ul_common:
p_max: # Optional INT. Sets maximum transmit power allowed in this serving cell. Supported: [-30 - +23].
max_pucchs_per_slot: 31 # Optional UINT (31). Sets the maximum number of PUCCH grants that can be allocated per slot. Supported: [1 - 128].
max_ul_grants_per_slot: 32 # Optional UINT (32). Sets the maximum number of UL grants that can be allocated per slot. Supported: [1 - 144].
min_pucch_pusch_prb_distance: 1 # Optional UINT (1). Sets the minimum PRB distance between PUCCH and UE-dedicated PUSCH grants. Supported: [0 - 137].

pdcch:
common:
coreset0_index: # Optional INT. Sets the CORESET 0 index. Supported: [0 - 15].
ss1_n_candidates: {0,0,2,0,0} # Optional UINT ({0,0,2,0,0}). Sets the number of PDCCH candidates per aggregation level for SearchSpace#1. Supported: any 5-value array of [0 - 8].
ss0_index: 0 # Optional UINT (0). Sets the SearchSpace#0 index. Supported: [0 - 15].
max_coreset0_duration: # Optional INT. Sets the maximum CORESET#0 duration in OFDM symbols. Supported: [1 - 2].
dedicated:
coreset1_rb_start: # Optional UINT. Sets the starting common resource block for CORESET 1, relative to CRB0. Default: derived automatically. Supported: [0 - 275].
coreset1_l_crb: # Optional INT. Sets the length of CORESET 1 in number of CRBs. Supported: [0 - 275].
coreset1_duration: # Optional INT. Sets the duration of CORESET 1 in number of OFDM symbols. Supported: [1 - 2].
ss2_n_candidates: [0, 0, 0, 0, 0] # Optional UINT ([0, 0, 0, 0, 0]). Sets the number of PDCCH candidates per aggregation level for SearchSpace#2. Supported: any 5-value array of [0 - 8].
dci_format_0_1_and_1_1: true # Optional BOOLEAN (true). Sets whether to use non-fallback or fallback DCI format in UE SearchSpace#2. Supported: [false, true].
ss2_type: ue_dedicated # Optional TEXT (ue_dedicated). Sets the SearchSpace type for UE dedicated SearchSpace#2. Supported: [common, ue_dedicated].
al_cqi_offset: 0 # Optional FLOAT (0). Sets the offset applied to the CQI value in PDCCH aggregation level calculation. Supported: [-15 - 15].

pdsch:
min_ue_mcs: 0 # Optional UINT (0). Sets a minimum PDSCH MCS value for all UEs. Supported: [0 - 28].
max_ue_mcs: 28 # Optional UINT (28). Sets a maximum PDSCH MCS value for all UEs. Supported: [0 - 28].
fixed_rar_mcs: 0 # Optional UINT (0). Sets a fixed RAR MCS value for all UEs. Supported: [0 - 28].
fixed_sib1_mcs: 5 # Optional UINT (5). Sets a fixed SIB1 MCS for all UEs. Supported: [0 - 28].
nof_harqs: 16 # Optional UINT (16). Sets the number of DL HARQ processes. Supported: [2, 4, 6, 8, 10, 12, 16, 32].
max_nof_harq_retxs: 4 # Optional UINT (4). Sets the maximum number of times a DL HARQ can be retransmitted before it is discarded. Supported: [0 - 64].
harq_retx_timeout: 100 # Optional UINT (100). Sets the maximum time in ms between a HARQ NACK and the scheduler allocating the HARQ for retransmission. Supported: [10 - 500].
max_consecutive_kos: 100 # Optional UINT (100). Sets the maximum number of consecutive HARQ-ACK KOs before an RLF is reported. Supported: [0 - inf].
rv_sequence: [0,2,3,1] # Optional UINT ([0, 2, 3, 1]). Sets the redundancy version sequence to use for PDSCH. Supported: any combination of [0, 1, 2, 3].
mcs_table: qam256 # Optional ENUM (qam256). Sets the MCS table to use for PDSCH. Supported: [qam64, qam256, qam64lowse].
harq_feedback_disabled: false # Optional TEXT (false). Sets whether to disable DL HARQ Feedback (NTN only). Supported: [true, false] or 32-bit bitmask.
interleaving_bundle_size: 0 # Optional UINT (0). Sets the PDSCH interleaving bundle size. Supported: [0, 2, 4].
max_rank: # Optional UINT. Sets the maximum number of PDSCH transmission layers. Supported: non-negative integer (0 or greater).
enable_csi_rs_pdsch_multiplexing: true # Optional BOOLEAN (true). Enables multiplexing of CSI-RS and PDSCH. Supported: [false, true].
min_rb_size: 1 # Optional UINT (1). Sets the minimum RB size for UE PDSCH resource allocation. Supported: [1 - 275].
max_rb_size: 275 # Optional UINT (275). Sets the maximum RB size for UE PDSCH resource allocation. Supported: [1 - 275].
start_rb: 0 # Optional UINT (0). Sets the start RB for resource allocation of UE PDSCHs. Supported: [0 - 275].
end_rb: 275 # Optional UINT (275). Sets the end RB for resource allocation of UE PDSCHs. Supported: [0 - 275].
max_pdschs_per_slot: 35 # Optional UINT (35). Sets the maximum number of PDSCH grants per slot, including SIB, RAR, Paging and UE data grants. Supported: [1 - 35].
max_alloc_attempts: 35 # Optional UINT (35). Sets the maximum number of DL or UL PDCCH grant allocation attempts per slot before the scheduler skips the slot. Supported: [1 - 35].
olla_cqi_inc_step: 0.001 # Optional FLOAT (0.001). Sets the outer-loop link adaptation (OLLA) increment value. 0 disables OLLA. Supported: [0 - 1].
olla_target_bler: 0.01 # Optional FLOAT (0.01). Sets the target DL BLER in the OLLA algorithm. Supported: [0 - 0.5].
olla_max_cqi_offset: 4 # Optional FLOAT (4). Sets the maximum CQI offset that OLLA can apply. Supported: positive float.
dc_offset: # Optional TEXT. Sets the Direct Current offset in number of subcarriers. Supported: [-1650 - 1649] OR [outside, undetermined, center].
harq_la_cqi_drop_threshold: 3 # Optional UINT (3). Sets the LA threshold for CQI drop above which HARQ retransmissions are cancelled. 0 disables. Supported: [0 - 15].
harq_la_ri_drop_threshold: 1 # Optional UINT (1). Sets the LA threshold for nof. layers drop above which HARQ retransmission is cancelled. 0 disables. Supported: [0 - 4].
dmrs_additional_position: 2 # Optional UINT (2). Sets the PDSCH DMRS additional position. Supported: [0 - 3].

pusch:
min_ue_mcs: 0 # Optional UINT (0). Sets a minimum PUSCH MCS value for all UEs. Supported: [0 - 28].
max_ue_mcs: 28 # Optional UINT (28). Sets a maximum PUSCH MCS value for all UEs. Supported: [0 - 28].
max_nof_harq_retxs: 4 # Optional UINT (4). Sets the maximum number of times a UL HARQ can be retransmitted. Supported: [0 - 64].
harq_retx_timeout: 100 # Optional UINT (100). Sets the maximum time in ms between a CRC=KO and the scheduler allocating the HARQ for retransmission. Supported: [10 - 500].
max_consecutive_kos: 100 # Optional UINT (100). Sets the maximum number of consecutive CRC KOs before an RLF is reported. Supported: [0 - inf].
rv_sequence: [0] # Optional UINT ([0]). Sets the redundancy version sequence to use for PUSCH. Supported: any combination of [0, 1, 2, 3].
mcs_table: qam256 # Optional ENUM (qam256). Sets the MCS table to use for PUSCH. Supported: [qam64, qam256, qam64lowse].
harq_mode_b: false # Optional TEXT (false). Sets HARQ Mode B (NTN only). Supported: [true, false] or 32-bit bitmask.
nof_harqs: 16 # Optional UINT (16). Sets the number of UL HARQ processes. Supported: [16, 32].
ema_alpha_cl_pw_control_sinr: 0.5 # Optional FLOAT (0.5). Sets the EMA smoothing factor alpha for PUSCH closed-loop power control SINR. Supported: (0, 1) exclusive.
max_rank: 4 # Optional UINT (4). Sets the maximum number of PUSCH transmission layers. Supported: [1 - 4].
msg3_delta_preamble: 6 # Optional INT (6). Sets the MSG3 DeltaPreamble power offset between MSG3 and RACH preamble transmission. Supported: [-1 - 6].
p0_nominal_with_grant: -76 # Optional INT (-76). Sets the P0 value for PUSCH grant (except MSG3), in dBm. Supported: multiples of 2 within the range [-202, 24].
msg3_delta_power: 8 # Optional INT (8). Sets the target power level at the network receiver side, in dBm. Supported: multiples of 2 within the range [-6, 8].
max_puschs_per_slot: 16 # Optional UINT (16). Sets the maximum number of PUSCH grants per slot. Supported: [1 - 16].
beta_offset_ack_idx_1: 11 # Optional UINT (11). Sets the betaOffsetACK-Index1 part of UCI-OnPUSCH. Supported: [0 - 31].
beta_offset_ack_idx_2: 6 # Optional UINT (6). Sets the betaOffsetACK-Index2 part of UCI-OnPUSCH. Supported: [0 - 31].
beta_offset_ack_idx_3: 4 # Optional UINT (4). Sets the betaOffsetACK-Index3 part of UCI-OnPUSCH. Supported: [0 - 31].
beta_offset_csi_p1_idx_1: 13 # Optional UINT (13). Sets the betaOffsetCSI-Part1-Index1 part of UCI-OnPUSCH. Supported: [0 - 31].
beta_offset_csi_p1_idx_2: 10 # Optional UINT (10). Sets the betaOffsetCSI-Part1-Index2 part of UCI-OnPUSCH. Supported: [0 - 31].
beta_offset_csi_p2_idx_1: 13 # Optional UINT (13). Sets the betaOffsetCSI-Part2-Index1 part of UCI-OnPUSCH. Supported: [0 - 31].
beta_offset_csi_p2_idx_2: 10 # Optional UINT (10). Sets the betaOffsetCSI-Part2-Index2 part of UCI-OnPUSCH. Supported: [0 - 31].
min_k2: 4 # Optional UINT (4). Sets the minimum value of K2 (difference in slots between PDCCH and PUSCH). Supported: [1 - 4].
dc_offset: # Optional TEXT. Sets the Direct Current offset in number of subcarriers. Supported: [-1650 - 1649] OR [outside, undetermined, center].
olla_snr_inc_step: 0.001 # Optional FLOAT (0.001). Sets the outer-loop link adaptation (OLLA) increment value. 0 disables OLLA. Supported: [0 - 1].
olla_target_bler: 0.01 # Optional FLOAT (0.01). Sets the target UL BLER in the OLLA algorithm. Supported: [0 - 0.5].
olla_max_snr_offset: 5 # Optional FLOAT (5). Sets the maximum SNR offset that OLLA can apply. Supported: positive float.
dmrs_additional_position: 2 # Optional UINT (2). Sets the PUSCH DMRS additional position. Supported: [0 - 3].
min_rb_size: 1 # Optional UINT (1). Sets the minimum RB size for UE PUSCH resource allocation. Supported: [1 - 275].
max_rb_size: 275 # Optional UINT (275). Sets the maximum RB size for UE PUSCH resource allocation. Supported: [1 - 275].
start_rb: 0 # Optional UINT (0). Sets the start RB for resource allocation of UE PUSCHs. Supported: [0 - 275].
end_rb: 275 # Optional UINT (275). Sets the end RB for resource allocation of UE PUSCHs. Supported: [0 - 275].
enable_cl_loop_pw_control: false # Optional BOOLEAN (false). Enables the closed-loop power control for PUSCH. Supported: [false, true].
enable_phr_bw_adaptation: false # Optional BOOLEAN (false). Enables bandwidth adaptation to prevent negative PHR. Supported: [false, true].
target_sinr: 10 # Optional FLOAT (10). Sets the target SINR in dB. Supported: [-5 - 30].
ref_path_loss: 70 # Optional FLOAT (70). Sets the reference path-loss for target PUSCH SINR in dB. Supported: [50 - 120].
pl_compensation_factor: 1 # Optional FLOAT (1). Sets the fractional path-loss compensation factor in PUSCH power control. Supported: [0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1].
enable_transform_precoding: false # Optional BOOLEAN (false). Enables transform precoding for PUSCH. Supported: [false, true].

pucch:
p0_nominal: -90 # Optional INT (-90). Sets the power control parameter P0 for PUCCH transmissions in dBm. Supported: multiples of 2 within [-202, 24].
pucch_resource_common: # Optional UINT. Sets the index of PUCCH resource set for common configuration. Supported: [0 - 15].
sr_period_ms: 20 # Optional FLOAT (20). Sets the SR period in milliseconds. Supported: [1, 2, 2.5, 4, 5, 8, 10, 16, 20, 40, 80, 160, 320].
formats: f1_and_f2 # Optional TEXT (f1_and_f2). Sets the PUCCH format combinations to use. Supported: [f0_and_f2, f1_and_f2, f1_and_f3, f1_and_f4].
resource_set_size: 8 # Optional UINT (8). Sets the number of PUCCH resources per UE for HARQ for each PUCCH resource set. Supported: [1 - 8].
nof_cell_res_set_configs: 2 # Optional UINT (2). Sets the number of PUCCH resource set configurations per cell. Supported: [1 - 10].
nof_cell_sr_res: 8 # Optional UINT (8). Sets the number of PUCCH F0 or F1 resources per cell for SR. Supported: [1 - 100].
nof_cell_csi_res: 8 # Optional UINT (8). Sets the number of PUCCH F2, F3 or F4 resources per cell for CSI. Supported: [0 - 100].
f0_intraslot_freq_hop: false # Optional BOOLEAN (false). Enables intra-slot frequency hopping for PUCCH F0. Supported: [false, true].
f1_enable_occ: false # Optional BOOLEAN (false). Enables OCC for PUCCH F1. Supported: [false, true].
f1_nof_cyclic_shifts: 2 # Optional UINT (2). Sets the number of possible cyclic shifts for PUCCH F1 resources. Supported: [1, 2, 3, 4, 6, 12].
f1_intraslot_freq_hop: false # Optional BOOLEAN (false). Enables intra-slot frequency hopping for PUCCH F1. Supported: [false, true].
f2_max_nof_rbs: 1 # Optional UINT (1). Sets the max number of RBs for PUCCH F2 resources. Supported: [1 - 16].
f2_max_payload: # Optional UINT. Sets the min required payload capacity in bits for PUCCH F2 resources. Supported: [4 - 40].
f2_max_code_rate: dot35 # Optional TEXT (dot35). Sets the PUCCH F2 max code rate. Supported: [dot08, dot15, dot25, dot35, dot45, dot60, dot80].
f2_intraslot_freq_hop: false # Optional BOOLEAN (false). Enables intra-slot frequency hopping for PUCCH F2. Supported: [false, true].
f3_max_nof_rbs: 1 # Optional UINT (1). Sets the max number of RBs for PUCCH F3 resources. Supported: [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16].
f3_max_payload: # Optional UINT. Sets the min required payload capacity in bits for PUCCH F3 resources. Supported: [4 - 40].
f3_max_code_rate: dot35 # Optional TEXT (dot35). Sets the PUCCH F3 max code rate. Supported: [dot08, dot15, dot25, dot35, dot45, dot60, dot80].
f3_intraslot_freq_hop: false # Optional BOOLEAN (false). Enables intra-slot frequency hopping for PUCCH F3. Supported: [false, true].
f3_additional_dmrs: false # Optional BOOLEAN (false). Enables additional DMRS for PUCCH F3. Supported: [false, true].
f3_pi2_bpsk: false # Optional BOOLEAN (false). Enables pi/2 BPSK for PUCCH F3. Supported: [false, true].
f4_max_code_rate: dot35 # Optional TEXT (dot35). Sets the PUCCH F4 max code rate. Supported: [dot08, dot15, dot25, dot35, dot45, dot60, dot80].
f4_intraslot_freq_hop: false # Optional BOOLEAN (false). Enables intra-slot frequency hopping for PUCCH F4. Supported: [false, true].
f4_additional_dmrs: false # Optional BOOLEAN (false). Enables additional DMRS for PUCCH F4. Supported: [false, true].
f4_pi2_bpsk: false # Optional BOOLEAN (false). Enables pi/2 BPSK for PUCCH F4. Supported: [false, true].
f4_occ_length: 2 # Optional UINT (2). Sets the OCC length for PUCCH F4. Supported: [2, 4].
ema_alpha_cl_pw_control_sinr: 0.5 # Optional FLOAT (0.5). Sets the EMA smoothing factor alpha for PUCCH closed-loop power control SINR. Supported: (0, 1) exclusive.
repetition_sinr_thresholds: # Optional FLOAT. Sets the SINR thresholds (dB) mapping UE SINR to PUCCH repetition factor. Up to 3 entries.
repetition_factors: # Optional UINT. Sets the repetition factor for each PUCCH resource in a HARQ-ACK resource set. Supported: [1, 2, 4, 8].
f4_enable_occ: false # Optional BOOLEAN (false). Enables OCC multiplexing for PUCCH F4. Supported: [false, true].
min_k1: 4 # Optional UINT (4). Sets the minimum value of K1 (difference in slots between PDSCH and HARQ-ACK). Supported: [1 - 4].
max_consecutive_kos: 100 # Optional UINT (100). Sets the maximum number of consecutive undecoded PUCCH F2 for CSI before an RLF is reported.
enable_cl_loop_pw_control: false # Optional BOOLEAN (false). Enables the closed-loop power control for PUCCH. Supported: [false, true].
target_sinr_f0: 10 # Optional FLOAT (10). Sets the target SINR for PUCCH F0 in dB. Supported: [-10 - 20].
target_sinr_f2: 6 # Optional FLOAT (6). Sets the target SINR for PUCCH F2 in dB. Supported: [-10 - 20].
target_sinr_f3: 1 # Optional FLOAT (1). Sets the target SINR for PUCCH F3 in dB. Supported: [-15 - 10].

srs:
type_enabled: disabled # Optional TEXT (disabled). Enables/disables SRS and sets resource type. Supported: [disabled, periodic, aperiodic].
period_ms: 20 # Optional FLOAT (20). Sets the periodic SRS period in ms. Supported: [1, 2, 2.5, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 160, 320, 640, 1280, 2560].
max_nof_sym_per_slot: 2 # Optional UINT (2). Sets the number of symbols for UL slot reserved for SRS cell resources. Supported: [1 - 6].
nof_sym_per_resource: 1 # Optional UINT (1). Sets the number of symbols per SRS resource. Supported: [1, 2, 4].
c_srs: # Optional UINT. Sets the C_SRS parameter for SRS. If not set, computed automatically. Supported: [0 - 63].
freq_domain_shift: 0 # Optional UINT (0). Sets the SRS frequency domain shift. Supported: [0 - 268].
tx_comb: 4 # Optional UINT (4). Sets the SRS TX comb size. Supported: [2, 4].
cyclic_shift_reuse: 1 # Optional UINT (1). Sets the SRS cyclic shift reuse factor. Supported: [1, 2, 3, 4, 6].
sequence_id_reuse: 1 # Optional UINT (1). Sets the reuse factor for the SRS sequence ID. Supported: [1, 2, 3, 5, 6, 10, 15, 30].
p0: -84 # Optional INT (-84). Sets the P0 value for SRS in dBm. Supported: multiples of 2 within [-202, 24].

prach:
prach_config_index: # Optional UINT. Sets the PRACH configuration index. If not set, derived automatically. Supported: [0 - 255].
prach_root_sequence_index: 1 # Optional UINT (1). Sets the PRACH Root Sequence Index (RSI). Supported: [0 - 837].
zero_correlation_zone: 0 # Optional UINT (0). Sets the Zero Correlation Zone. Supported: [0 - 15].
fixed_msg3_mcs: 0 # Optional UINT (0). Sets a fixed Msg3 MCS. Supported: [0 - 28].
max_msg3_harq_retx: 4 # Optional UINT (4). Sets the maximum number of Msg3 HARQ retransmissions. Supported: [0 - 4].
total_nof_ra_preambles: 64 # Optional UINT (64). Sets the number of different contention-based PRACH preambles per occasion. Supported: [1 - 64].
cfra_enabled: false # Optional BOOLEAN (false). Enables Contention Free Random Access (CFRA). Supported: [false, true].
prach_frequency_start: # Optional INT. Sets the offset of lowest PRACH transmission occasion in frequency domain in PRBs. Supported: [0 - (MAX_NOF_PRB - 1)].
preamble_rx_target_pw: -100 # Optional INT (-100). Sets the target power level at the network receiver side, in dBm. Supported: multiples of 2 within [-202, -60].
preamble_trans_max: 7 # Optional UINT (7). Sets the max number of RA preamble transmissions before declaring a failure. Supported: [3, 4, 5, 6, 7, 8, 10, 20, 50, 100, 200].
power_ramping_step_db: 4 # Optional UINT (4). Sets the power ramping step for PRACH. Supported: [0, 2, 4, 6].
ports: 0 # Optional UINT (0). Sets the list of antenna ports.
nof_ssb_per_ro: 1 # Optional UINT (1). Sets the number of SSBs per RACH occasion. Supported: [1].
nof_cb_preambles_per_ssb: 64 # Optional UINT (64). Sets the number of contention based preambles per SSB. Supported: [1 - 64].
nof_prach_guardbands_rbs: 3 # Optional UINT (3). Sets the number of RBs used as guardband on each side of the PRACH RBs interval. Supported: [1 - 10].
slice_based_ra_prioritization: # Optional TEXT. Sets the list of configurations for slice-based RA prioritization.
ra_resp_window: # Optional UINT. Sets the RA-response window length in number of slots. Supported: [1, 2, 4, 8, 10, 20, 40, 80].
two_step:
cb_preambles_per_ssb_per_shared_ro: 4 # Optional UINT (4). Sets the number of CB preambles per SSB per shared RACH occasion for 2-step RA. Supported: [1 - 60].
msgA_rsrp_thres_dbm: -100 # Optional INT (-100). Sets the RSRP threshold in dBm for UE to select 2-step RA over 4-step RA. Supported: [-156 - -29].
msgB_response_window_slots: 40 # Optional UINT (40). Sets the MsgB response window length in slots. Supported: [1, 2, 4, 8, 10, 20, 40, 80, 160, 320].
td_offset: 1 # Optional UINT (1). Sets the time-domain offset in slots from PRACH slot to MsgA PUSCH slot. Supported: [1 - 32].
pusch_td_res_index: 0 # Optional UINT (0). Sets the index into the PUSCH-TimeDomainAllocationResource table for MsgA PUSCH scheduling.
mcs: 0 # Optional UINT (0). Sets the MCS index for MsgA PUSCH transmission. Supported: [0 - 28].
nof_prbs_per_msgA_po: 3 # Optional UINT (3). Sets the number of PRBs per MsgA PUSCH occasion. Supported: [1 - 32].
prb_start: 0 # Optional UINT (0). Sets the frequency offset in PRBs of the lowest MsgA PUSCH occasion from PRB 0.
po_fdm: 1 # Optional UINT (1). Sets the number of MsgA PUSCH occasions FDMed in one time instance. Supported: [1, 2, 4, 8].

tdd_ul_dl_cfg:
dl_ul_tx_period: 10 # Optional INT (10). Sets the TDD pattern periodicity in slots. Supported: [2 - 80].
nof_dl_slots: 6 # Optional INT (6). Sets the number of consecutive full Downlink slots. Supported: [0 - 80].
nof_dl_symbols: 8 # Optional INT (8). Sets the number of Downlink symbols at the beginning of the slot following full Downlink slots. Supported: [0 - 13].
nof_ul_slots: 3 # Optional INT (3). Sets the number of consecutive full Uplink slots. Supported: [0 - 80].
nof_ul_symbols: 0 # Optional INT (0). Sets the number of Uplink symbols at the end of the slot preceding the first full Uplink slot. Supported: [0 - 13].
pattern2:
dl_ul_tx_period: 10 # Optional INT (10). Sets the second TDD pattern periodicity in slots. Supported: [2 - 80].
nof_dl_slots: 6 # Optional INT (6). Sets the number of consecutive full Downlink slots in the second pattern. Supported: [0 - 80].
nof_dl_symbols: 8 # Optional INT (8). Sets the number of Downlink symbols in the special slot of the second pattern. Supported: [0 - 13].
nof_ul_slots: 3 # Optional INT (3). Sets the number of consecutive full Uplink slots in the second pattern. Supported: [0 - 80].
nof_ul_symbols: 0 # Optional INT (0). Sets the number of Uplink symbols in the special slot of the second pattern. Supported: [0 - 13].

paging:
pg_search_space_id: 1 # Optional UINT (1). Sets the SearchSpace to use for Paging.
default_pg_cycle_in_rf: 128 # Optional UINT (128). Sets the default Paging cycle in number of Radio Frames. Supported: [32, 64, 128, 256].
nof_pf_per_paging_cycle: oneT # Optional TEXT (oneT). Sets the number of paging frames per DRX cycle. Supported: [oneT, halfT, quarterT, oneEighthT, oneSixteethT].
pf_offset: 0 # Optional UINT (0). Sets the paging frame offset.
nof_po_per_pf: 1 # Optional UINT (1). Sets the number of paging occasions per paging frame. Supported: [1, 2, 4].
edrx_enabled: false # Optional BOOLEAN (false). Enables eDRX. Supported: [false, true].

csi:
csi_rs_enabled: true # Optional BOOLEAN (true). Enables CSI-RS resources and CSI reporting. Supported: [false, true].
csi_rs_period: 20 # Optional UINT (20). Sets the CSI-RS period in milliseconds. Supported: [10, 20, 40, 80].
report_type: periodic # Optional TEXT (periodic). Sets the type of CSI reporting configuration. Supported: [periodic, aperiodic].
meas_csi_rs_slot_offset: # Optional UINT. Sets the slot offset of first CSI-RS resource used for measurement.
tracking_csi_rs_slot_offset: # Optional UINT. Sets the slot offset of the first CSI-RS resource used for tracking.
zp_csi_rs_slot_offset: # Optional UINT. Sets the slot offset of the ZP CSI-RS resources.
pwr_ctrl_offset: 0 # Optional INT (0). Sets the power offset of PDSCH RE to NZP CSI-RS RE in dB. Supported: [-8 - 15].

scheduler:
nof_preselected_newtx_ues: 1024 # Optional UINT (1024). Sets the number of UEs pre-selected for potential newTx allocations per slot. Supported: [1 - 8192].
policy:
qos_sched:
combine_function: gbr_prioritized # Optional TEXT (gbr_prioritized). Sets the QoS-aware scheduler weight combining function. Supported: [gbr_prioritized, geometric_mean].
pf_fairness_coeff: 2 # Optional FLOAT (2). Sets the fairness coefficient for the Proportional Fair policy scheduler.
prio_enabled: true # Optional BOOLEAN (true). Enables the QoS Flow priority in QoS-aware scheduling. Supported: [false, true].
pdb_enabled: true # Optional BOOLEAN (true). Enables the Packet Delay Budget (PDB) in QoS-aware scheduling. Supported: [false, true].
gbr_enabled: true # Optional BOOLEAN (true). Enables the Guaranteed Bit Rate (GBR) in QoS-aware scheduling. Supported: [false, true].
rr_sched: # Optional. Round-robin scheduler policy configuration.

ta:
ta_measurement_slot_period: 80 # Optional UINT (80). Sets the measurements periodicity in nof. slots over which the new Timing Advance Command is computed.
ta_measurement_slot_prohibit_period: 0 # Optional UINT (0). Sets the delay in number of slots between issuing the TA_CMD and starting TA measurements. Supported: [0 - 10000].
ta_cmd_offset_threshold: 1 # Optional INT (1). Sets the TA offset threshold above which a Timing Advance Command is triggered. -1 disables. Supported: [-1 - 31].
ta_target: 1.0 # Optional FLOAT (1.0). Sets the Timing Advance target in units of TA. Supported: [-30.0 - 30.0].
ta_update_measurement_ul_sinr_threshold: 0 # Optional FLOAT (0). Sets the UL SINR threshold in dB above which reported N_TA update measurements are considered valid.
ta_outlier_detection_zscore_threshold: 1.75 # Optional FLOAT (1.75). Sets the Z-score threshold for outlier detection in N_TA measurements. Supported: [0.0 - 5.0].

rlm:
rlm_resource_type: default_type # Optional TEXT. Sets the Radio Link Monitoring resource detection type. Supported: [default_type, ssb, csi_rs, ssb_and_csi_rs].

drx:
on_duration_timer: 10 # Optional UINT (10). Sets the minimum duration in ms that the UE stays in active mode when DRX is configured. Supported: [1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 40, 50, 60, 80, 100, 200, 300, 400, 500, 600, 800, 1000, 1200, 1600].
inactivity_timer: 0 # Optional UINT (0). Sets the duration in ms that the UE stays active after PDCCH reception when DRX is configured. Supported: [0, 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 40, 50, 60, 80, 100, 200, 300, 500, 750, 1280, 1920, 2560].
retx_timer_dl: 0 # Optional UINT (0). Sets the maximum duration in slots until a DL ReTX is received by the UE when DRX is configured. Supported: [0, 1, 2, 4, 6, 8, 16, 24, 33, 40, 64, 80, 96, 112, 128, 160, 320].
retx_timer_ul: 0 # Optional UINT (0). Sets the maximum duration in slots until a grant for UL ReTX is received by the UE when DRX is configured. Supported: [0, 1, 2, 4, 6, 8, 16, 24, 33, 40, 64, 80, 96, 112, 128, 160, 320].
long_cycle: 0 # Optional UINT (0). Sets the duration in ms between UE DRX long cycles. 0 disables DRX. Supported: [10, 20, 32, 40, 60, 64, 70, 80, 128, 160, 256, 320, 512, 640, 1024, 1280, 2048, 2560, 5120, 10240] OR [0].

ntn:
cell_specific_koffset: 1 # Optional UINT (1). Sets the cell-specific K-offset for NTN timing advance in ms. Supported: [1 - 1023].
ntn_ul_sync_validity_dur: 60 # Optional UINT (60). Sets the UL sync validity duration in seconds. Supported: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 120, 180, 240, 900].
propagator_type: rk4 # Optional TEXT (rk4). Sets the orbit propagator type. Supported: [rk4, keplerian].
ta_report: false # Optional BOOLEAN (false). Enables TA reporting in SIB19. Supported: [false, true].
use_state_vector: true # Optional BOOLEAN (true). Broadcasts ephemeris as ECEF state vectors (true) or orbital parameters (false). Supported: [false, true].
epoch_timestamp: # Optional TEXT. Sets the epoch timestamp for NTN assistance info. Format: Unix time in ms or YYYY-MM-DDTHH:MM:SS[.mmm].
epoch_sfn_offset: 0 # Optional UINT (0). Sets the optional SFN offset between SIB19 tx slot and epoch time.
distance_threshold: 0 # Optional UINT (0). Sets the distance from serving cell reference location for location-based measurement in meters. Supported: [0 - 3276250].
t_service: # Optional TEXT. Sets the end of service time for the current cell. Format: Unix time in ms or YYYY-MM-DDTHH:MM:SS[.mmm].
epoch_time:
sfn: 0 # Optional UINT (0). Sets the SFN part of the epoch time. Supported: [0 - 1023].
subframe_number: 0 # Optional UINT (0). Sets the sub-frame number of the epoch time. Supported: [0 - 9].
ta_info:
ta_common: 0 # Optional FLOAT (0). Sets the common Timing Advance value in microseconds. Supported: [0 - 270730].
ta_common_drift: 0 # Optional FLOAT (0). Sets the drift rate of common TA. Supported: [-51.4606 - 51.4606].
ta_common_drift_variant: 0 # Optional FLOAT (0). Sets the drift rate variation of common TA. Supported: [0 - 0.57898].
ta_common_offset: 0 # Optional FLOAT (0). Sets the constant offset added to TA common. Supported: [0 - 10000].
feeder_link:
enable_doppler_compensation: false # Optional BOOLEAN (false). Enables feeder link Doppler compensation. Supported: [false, true].
dl_freq: 0 # Optional FLOAT (0). Sets the downlink feeder link frequency (gNB to satellite) in Hz. Supported: [0 - 100e9].
ul_freq: 0 # Optional FLOAT (0). Sets the uplink feeder link frequency (satellite to gNB) in Hz. Supported: [0 - 100e9].
ephemeris_info_ecef:
pos_x: 0 # Optional FLOAT (0). Sets the X position of the satellite in meters. Supported: [-43620761.6 - 43620759.3].
pos_y: 0 # Optional FLOAT (0). Sets the Y position of the satellite in meters. Supported: [-43620761.6 - 43620759.3].
pos_z: 0 # Optional FLOAT (0). Sets the Z position of the satellite in meters. Supported: [-43620761.6 - 43620759.3].
vel_x: 0 # Optional FLOAT (0). Sets the X velocity of the satellite in m/s. Supported: [-7864.32 - 7864.26].
vel_y: 0 # Optional FLOAT (0). Sets the Y velocity of the satellite in m/s. Supported: [-7864.32 - 7864.26].
vel_z: 0 # Optional FLOAT (0). Sets the Z velocity of the satellite in m/s. Supported: [-7864.32 - 7864.26].
ephemeris_orbital:
semi_major_axis: 0 # Optional FLOAT (0). Sets the semi-major axis of the satellite in meters. Supported: [6500000 - 42998632.07].
eccentricity: 0 # Optional FLOAT (0). Sets the eccentricity of the satellite. Supported: [0 - 0.01500510825].
periapsis: 0 # Optional FLOAT (0). Sets the argument of periapsis in radians. Supported: [0 - 6.28407400155].
longitude: 0 # Optional FLOAT (0). Sets the longitude of ascending node in radians. Supported: [0 - 6.28407400155].
inclination: 0 # Optional FLOAT (0). Sets the orbital inclination in radians. Supported: [-1.57101850624 - 1.57101848283].
mean_anomaly: 0 # Optional FLOAT (0). Sets the mean anomaly in radians. Supported: [0 - 6.28407400155].
gateway_location:
latitude: 0 # Optional FLOAT (0). Sets the gateway latitude in degrees. Supported: [-90 - 90].
longitude: 0 # Optional FLOAT (0). Sets the gateway longitude in degrees. Supported: [-180 - 180].
altitude: 0 # Optional FLOAT (0). Sets the gateway altitude in meters. Supported: [-1000 - 20000].
reference_location:
latitude: 0 # Optional FLOAT (0). Sets the cell reference latitude in degrees. Supported: [-90 - 90].
longitude: 0 # Optional FLOAT (0). Sets the cell reference longitude in degrees. Supported: [-180 - 180].
moving_ref_location:
latitude: 0 # Optional FLOAT (0). Sets the moving reference latitude in degrees. Supported: [-90 - 90].
longitude: 0 # Optional FLOAT (0). Sets the moving reference longitude in degrees. Supported: [-180 - 180].
polarization:
dl: linear # Optional TEXT (linear). Sets the DL service link polarization. Supported: [lhcp, rhcp, linear].
ul: linear # Optional TEXT (linear). Sets the UL service link polarization. Supported: [lhcp, rhcp, linear].
sat_switch_with_resync:
epoch_timestamp: # Optional TEXT. Sets the epoch timestamp for satellite switch. Format: Unix time in ms or YYYY-MM-DDTHH:MM:SS[.mmm].
t_service_start: # Optional TEXT. Sets the time when the target satellite starts serving. Format: Unix time in ms or YYYY-MM-DDTHH:MM:SS[.mmm].
ssb_time_offset_sf: 0 # Optional UINT (0). Sets the SSB time offset in subframes. Supported: [0 - 159].
ntn_gateway_location:
latitude: 0 # Optional FLOAT (0). Sets the gateway latitude. Supported: [-90 - 90].
longitude: 0 # Optional FLOAT (0). Sets the gateway longitude. Supported: [-180 - 180].
altitude: 0 # Optional FLOAT (0). Sets the gateway altitude in meters. Supported: [-1000 - 20000].

e2:
enable_cu_cp_e2: false # Optional BOOLEAN (false). Enables the E2 agent for CU-CP. Supported: [false, true].
enable_cu_up_e2: false # Optional BOOLEAN (false). Enables the E2 agent for CU-UP. Supported: [false, true].
enable_du_e2: false # Optional BOOLEAN (false). Enables the E2 agent for DU. Supported: [false, true].
addrs: 127.0.0.1 # Optional TEXT (127.0.0.1). Sets the RIC IP addresses. Multiple addresses can be specified for SCTP multi-homing. Format: IPV4 or IPV6 IP address.
port: 36421 # Optional UINT (36421). Sets the RIC port. Supported: [20000 - 40000].
bind_addrs: 127.0.0.1 # Optional TEXT (127.0.0.1). Sets the local bind addresses for the E2 interface. Multiple addresses can be specified for SCTP multi-homing. Format: IPV4 or IPV6 IP address.
sctp_rto_initial: 120 # Optional INT (120). Sets the initial retransmission timeout when creating the SCTP connection.
sctp_rto_min: 120 # Optional INT (120). Sets the minimum retransmission timeout for the SCTP connection.
sctp_rto_max: 500 # Optional INT (500). Sets the maximum retransmission timeout for the SCTP connection.
sctp_init_max_attempts: 3 # Optional INT (3). Sets the maximum retransmission attempts for the initial SCTP connection.
sctp_max_init_timeo: 500 # Optional INT (500). Sets the maximum retransmission timeout for the initial SCTP connection.
sctp_hb_interval: 30000 # Optional INT (30000). Sets the SCTP heartbeat interval in milliseconds. -1 uses system default.
sctp_assoc_max_retx: 10 # Optional INT (10). Sets the SCTP association max retransmissions. -1 uses system default.
sctp_nodelay: false # Optional BOOLEAN (false). Enables sending SCTP messages without Nagle-like delay. Supported: [false, true].
e2sm_kpm_enabled: false # Optional BOOLEAN (false). Enables the E2SM KPM service module. Supported: [false, true].
e2sm_rc_enabled: false # Optional BOOLEAN (false). Enables the E2SM RC service module. Supported: [false, true].
e2sm_ccc_enabled: false # Optional BOOLEAN (false). Enables the E2SM CCC service module. Supported: [false, true].

ntn:
cell_specific_koffset: # Optional UINT. Sets the cell-specific k-offset for NTN timing advance in ms. Supported: [1 - 1023].
ntn_ul_sync_validity_dur: # Optional UINT. Sets the NTN UL sync validity duration in seconds. Supported: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 120, 180, 240, 900].
epoch_time:
sfn: 0 # Optional UINT (0). Sets the SFN part. Supported: [0 - 1023].
subframe_number: 0 # Optional UINT (0). Sets the sub-frame number part. Supported: [0 - 9].
ta_info:
ta_common: 0 # Optional FLOAT (0). Sets the common Timing Advance value in microseconds. Supported: [0 - 270730].
ta_common_drift: 0 # Optional FLOAT (0). Sets the drift rate of common TA. Supported: [-51.4606 - 51.4606].
ta_common_drift_variant: 0 # Optional FLOAT (0). Sets the drift rate variation of common TA. Supported: [0 - 0.57898].
ta_common_offset: 0 # Optional FLOAT (0). Sets the constant offset added to TA common. Supported: [0 - 10000].
ephemeris_info_ecef:
pos_x: 0 # Optional FLOAT (0). Sets the X position of the satellite in meters. Supported: [-43620761.6 - 43620759.3].
pos_y: 0 # Optional FLOAT (0). Sets the Y position of the satellite in meters. Supported: [-43620761.6 - 43620759.3].
pos_z: 0 # Optional FLOAT (0). Sets the Z position of the satellite in meters. Supported: [-43620761.6 - 43620759.3].
vel_x: 0 # Optional FLOAT (0). Sets the X velocity of the satellite in m/s. Supported: [-7864.32 - 7864.26].
vel_y: 0 # Optional FLOAT (0). Sets the Y velocity of the satellite in m/s. Supported: [-7864.32 - 7864.26].
vel_z: 0 # Optional FLOAT (0). Sets the Z velocity of the satellite in m/s. Supported: [-7864.32 - 7864.26].
ephemeris_orbital:
semi_major_axis: 0 # Optional FLOAT (0). Sets the semi-major axis of the satellite in meters. Supported: [6500000 - 42998632.07].
eccentricity: 0 # Optional FLOAT (0). Sets the eccentricity of the satellite. Supported: [0 - 0.01500510825].
periapsis: 0 # Optional FLOAT (0). Sets the argument of periapsis in radians. Supported: [0 - 6.28407400155].
longitude: 0 # Optional FLOAT (0). Sets the longitude of the satellite's ascending node in radians. Supported: [0 - 6.28407400155].
inclination: 0 # Optional FLOAT (0). Sets the orbital inclination in radians. Supported: [-1.57101850624 - 1.57101848283].
mean_anomaly: 0 # Optional FLOAT (0). Sets the mean anomaly in radians. Supported: [0 - 6.28407400155].
polarization:
dl: # Optional TEXT. Sets the DL service link polarization. Supported: [lhcp, rhcp, linear].
ul: # Optional TEXT. Sets the UL service link polarization. Supported: [lhcp, rhcp, linear].
ta_report: # Optional BOOLEAN. Enables TA reporting in SIB19. Supported: [false, true].

custom_freq_bands: # Optional TEXT. Defines non-standard NR frequency bands for use with dl_arfcn. Each list entry should begin with "-".
-
band_nr: 999 # Required UINT. Sets the NR band number.
dl_freq_min: 3400 # Required FLOAT. Sets the DL frequency range start in MHz.
dl_freq_max: 3600 # Required FLOAT. Sets the DL frequency range end in MHz.
ul_freq_min: 3400 # Optional FLOAT. Sets the UL frequency range start in MHz. Omit for TDD.
ul_freq_max: 3600 # Optional FLOAT. Sets the UL frequency range end in MHz. Omit for TDD.
f_raster: 15 # Required UINT. Sets the ARFCN raster in kHz. Supported: [15, 30, 60, 100, 120].
ssb_scs: 30 # Required UINT. Sets the SSB subcarrier spacing in kHz. Supported: [15, 30, 120, 240].
ssb_case_c: false # Optional BOOLEAN (false). Sets SSB pattern case C. Use true for n77/n78/n79-like TDD bands. Supported: [false, true].
min_40mhz_bw: false # Optional BOOLEAN (false). Sets the minimum 40 MHz bandwidth constraint. Supported: [false, true].
delta_gscn: 1 # Optional UINT (1). Sets the GSCN step for SSB candidate search. Supported: [1, 3, 7, 16].
ntn: false # Optional BOOLEAN (false). Sets whether this is a Non-Terrestrial Network band. Supported: [false, true].

ru_ofh:
# Many of the following values are optional as they have default values. In practice, all of the following parameters should be defined by the user, as they will need
# to be configured specifically for the RU being used. Failing to configure these parameters correctly may result in the RU failing to connect to the DU.
gps_alpha: 0 # Optional UINT (0). Sets the GPS alpha. Supported: [0 - 1.2288e+07].
gps_beta: 0 # Optional INT (0). Sets the GPS beta. Supported: [-32768 - +32767].
ru_bandwidth_MHz: <cell bandwidth> # Optional TEXT (<cell bandwidth>). Sets the channel bandwidth in MHz. Supported: [5, 10, 15, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100].
t1a_max_cp_dl: 500 # Optional UINT (500). Sets the T1a maximum value for downlink control-plane in microseconds. Supported: [0 - 1960].
t1a_min_cp_dl: 258 # Optional UINT (258). Sets the T1a minimum value for downlink control-plane in microseconds. Supported: [0 - 1960].
t1a_max_cp_ul: 500 # Optional UINT (500). Sets the T1a maximum value for uplink control-plane in microseconds. Supported: [0 - 1960].
t1a_min_cp_ul: 285 # Optional UINT (285). Sets the T1a minimum value for uplink control-plane in microseconds. Supported: [0 - 1960].
t1a_max_up: 300 # Optional UINT (300). Sets the T1a maximum value for user-plane in microseconds. Supported: [0 - 1960].
t1a_min_up: 85 # Optional UINT (85). Sets the T1a minimum value for user-plane in microseconds. Supported: [0 - 1960].
ta4_max: 500 # Optional UINT (500). Sets the Ta4 maximum value for User-Plane in microseconds. Supported: [0 - 1960].
ta4_min: 85 # Optional UINT (85). Sets the Ta4 minimum value for User-Plane in microseconds. Supported: [0 - 1960].
is_prach_cp_enabled: true # Optional BOOLEAN (true). Sets the PRACH control-plane enabled flag. Supported: [false, true].
ignore_ecpri_seq_id: false # Optional BOOLEAN (false). Sets whether to ignore the eCPRI sequence ID field value. Supported: [false, true].
ignore_ecpri_payload_size: false # Optional BOOLEAN (false). Sets whether to ignore the eCPRI payload size field value. Supported: [false, true].
ignore_prach_start_symbol: false # Optional BOOLEAN (false). Sets whether to ignore the PRACH start symbol in PRACH U-Plane packets. Supported: [false, true].
log_lates_as_warnings: true # Optional BOOLEAN (true). Sets late Open Fronthaul events to be logged as warnings. Supported: [false, true].
warn_unreceived_ru_frames: after_traffic_detection # Optional TEXT (after_traffic_detection). Sets the policy for warning about unreceived Radio Unit frames. Supported: [never, always, after_traffic_detection].
compr_method_ul: bfp # Optional TEXT (bfp). Sets the uplink compression method. Supported: [none, bfp, bfp selective, block scaling, mu law, modulation, modulation selective].
compr_bitwidth_ul: 9 # Optional UINT (9). Sets the uplink compression bit width. Supported: [1 - 16].
compr_method_dl: bfp # Optional TEXT (bfp). Sets the downlink compression method. Supported: [none, bfp, bfp selective, block scaling, mu law, modulation, modulation selective].
compr_bitwidth_dl: 9 # Optional UINT (9). Sets the downlink compression bit width. Supported: [1 - 16].
compr_method_prach: bfp # Optional TEXT (bfp). Sets the PRACH compression method. Supported: [none, bfp, bfp selective, block scaling, mu law, modulation, modulation selective].
compr_bitwidth_prach: 9 # Optional UINT (9). Sets the PRACH compression bit width. Supported: [1 - 16].
enable_ul_static_compr_hdr: true # Optional BOOLEAN (true). Enables the uplink static compression header. Supported: [false, true].
enable_dl_static_compr_hdr: true # Optional BOOLEAN (true). Enables the downlink static compression header. Supported: [false, true].
ru_reference_level_dBFS: -12 # Optional FLOAT (-12). Sets the RU IQ reference level mapped to the maximum RF power in dBFS. Supported: (-inf - 0].
subcarrier_rms_backoff_dB: auto # Optional TEXT (auto). Sets the per-subcarrier power back-off relative to the RU reference level in dB. Accepts a numeric value >= 0 or 'auto'. Supported: [0 - inf, auto].
iq_scaling: 0.1 # Optional FLOAT (0.1). Sets the IQ scaling factor. This is an alternative to ru_reference_level_dBFS. Supported: [0 - 100].
cplane_prach_fft_len: 4096 # Optional UINT (4096). Sets the PRACH FFT length used in C-Plane Type-3 messages. Supported: [128, 256, 512, 1024, 1536, 2048, 3072, 4096].
cells: # Optional TEXT. Sets the hardware-specific cell configuration on a per cell basis.
- # Cell 1 - set custom configuration for each cell
network_interface: enp1s0f0 # Optional TEXT (enp1s0f0). Sets the ethernet network interface name for the RU or PCIe identifier when using DPDK.
enable_promiscuous: false # Optional BOOLEAN (false). Enables promiscuous mode on the network interface. Supported: [false, true].
check_link_status: false # Optional BOOLEAN (false). Enables Ethernet link status checking at startup. Supported: [false, true].
mtu: 9000 # Optional UINT (9000). Sets the NIC interface MTU size in bytes. Supported: [1500 - 9600].
ru_mac_addr: 70:b3:d5:e1:5b:06 # Optional TEXT (70:b3:d5:e1:5b:06). Sets the Radio Unit MAC address. Format: a string, e.g. [AA:BB:CC:DD:11:22].
du_mac_addr: 00:11:22:33:00:77 # Optional TEXT (00:11:22:33:00:77). Sets the Distributed Unit MAC address. Format: a string, e.g. [AA:BB:CC:DD:11:22].
vlan_tag_cp: 1 # Optional UINT. Sets the VLAN tag value for C-Plane. Supported: [1 - 4094].
vlan_tag_up: 1 # Optional UINT. Sets the VLAN tag value for U-Plane. Supported: [1 - 4094].
vlan_pcp_cp: # Optional UINT. Sets the C-Plane VLAN PCP. Requires vlan_tag_cp. Supported: [0 - 7].
vlan_pcp_up: # Optional UINT. Sets the U-Plane VLAN PCP. Requires vlan_tag_up. Supported: [0 - 7].
prach_port_id: [4] # Optional UINT ([4]). Sets the RU PRACH eAxC port ID(s).
dl_port_id: [0] # Optional UINT ([0]). Sets the RU downlink eAxC port ID(s). Format: vector containing all DL eAxC ports, e.g. [0, ..., N].
ul_port_id: [0] # Optional UINT ([0]). Sets the RU uplink eAxC port ID(s).
ru_bandwidth_MHz: <cell bandwidth> # Optional TEXT. Sets the channel bandwidth in MHz. Supported: [5, 10, 15, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100].
t1a_max_cp_dl: 500 # Optional UINT (500). Sets T1a maximum value for downlink control-plane. Supported: [0 - 1960].
t1a_min_cp_dl: 258 # Optional UINT (258). Sets T1a minimum value for downlink control-plane. Supported: [0 - 1960].
t1a_max_cp_ul: 500 # Optional UINT (500). Sets T1a maximum value for uplink control-plane. Supported: [0 - 1960].
t1a_min_cp_ul: 285 # Optional UINT (285). Sets T1a minimum value for uplink control-plane. Supported: [0 - 1960].
t1a_max_up: 300 # Optional UINT (300). Sets T1a maximum value for user-plane. Supported: [0 - 1960].
t1a_min_up: 85 # Optional UINT (85). Sets T1a minimum value for user-plane. Supported: [0 - 1960].
ta4_max: 500 # Optional UINT (500). Sets the Ta4 maximum value for User-Plane. Supported: [0 - 1960].
ta4_min: 85 # Optional UINT (85). Sets the Ta4 minimum value for User-Plane. Supported: [0 - 1960].
is_prach_cp_enabled: true # Optional BOOLEAN (true). Sets the PRACH control-plane enabled flag. Supported: [false, true].
ignore_ecpri_seq_id: false # Optional BOOLEAN (false). Sets whether to ignore the eCPRI sequence ID field value. Supported: [false, true].
ignore_ecpri_payload_size: false # Optional BOOLEAN (false). Sets whether to ignore the eCPRI payload size field value. Supported: [false, true].
ignore_prach_start_symbol: false # Optional BOOLEAN (false). Sets whether to ignore the PRACH start symbol in PRACH U-Plane Packets. Supported: [false, true].
log_lates_as_warnings: true # Optional BOOLEAN (true). Sets late events to be logged as warnings. Supported: [false, true].
warn_unreceived_ru_frames: after_traffic_detection # Optional TEXT (after_traffic_detection). Sets the policy for warning about unreceived RU frames. Supported: [never, always, after_traffic_detection].
compr_method_ul: bfp # Optional TEXT (bfp). Sets the uplink compression method. Supported: [none, bfp, bfp selective, block scaling, mu law, modulation, modulation selective].
compr_bitwidth_ul: 9 # Optional UINT (9). Sets the uplink compression bit width. Supported: [1 - 16].
compr_method_dl: bfp # Optional TEXT (bfp). Sets the downlink compression method. Supported: [none, bfp, bfp selective, block scaling, mu law, modulation, modulation selective].
compr_bitwidth_dl: 9 # Optional UINT (9). Sets the downlink compression bit width. Supported: [1 - 16].
compr_method_prach: bfp # Optional TEXT (bfp). Sets the PRACH compression method. Supported: [none, bfp, bfp selective, block scaling, mu law, modulation, modulation selective].
compr_bitwidth_prach: 9 # Optional UINT (9). Sets the PRACH compression bit width. Supported: [1 - 16].
enable_ul_static_compr_hdr: true # Optional BOOLEAN (true). Enables the uplink static compression header. Supported: [false, true].
enable_dl_static_compr_hdr: true # Optional BOOLEAN (true). Enables the downlink static compression header. Supported: [false, true].
ru_reference_level_dBFS: -12 # Optional FLOAT (-12). Sets the RU IQ reference level mapped to the maximum RF power. Supported: (-inf - 0].
subcarrier_rms_backoff_dB: auto # Optional TEXT (auto). Sets the per-subcarrier power back-off relative to the RU reference level. Accepts a numeric value >= 0 or 'auto'. Supported: [0 - inf, auto].
iq_scaling: 0.1 # Optional FLOAT (0.1). Sets the IQ scaling factor. Supported: [0 - 100].
cplane_prach_fft_len: 4096 # Optional UINT (4096). Sets the PRACH FFT length used in C-Plane Type-3 messages. Supported: [128, 256, 512, 1024, 1536, 2048, 3072, 4096].

ru_sdr:
srate: 61.44 # Optional FLOAT (61.44). Sets the sampling rate of the RF-frontend in MHz.
device_driver: uhd # Optional TEXT (uhd). Sets the RF device driver name.
device_args: # Optional TEXT. Sets an argument that gets passed to the selected RF driver.
tx_gain: 50.0 # Optional FLOAT (50.0). Sets the transmit gain in dB.
rx_gain: 60.0 # Optional FLOAT (60.0). Sets the receive gain in dB.
freq_offset: 0 # Optional FLOAT (0). Sets the center frequency offset in Hertz applied to all channels.
clock_ppm: 0 # Optional FLOAT (0). Sets the clock calibration in Parts Per Million (PPM).
lo_offset: 0 # Optional FLOAT (0). Shifts the local oscillator frequency in MHz away from the center frequency to move LO leakage out of the channel.
clock: default # Optional TEXT (default). Sets the RF device clock source.
sync: default # Optional TEXT (default). Sets the RF device time synchronization source.
otw_format: default # Optional TEXT (default). Sets the over-the-wire sample format.
time_alignment_calibration: auto # Optional TEXT (auto). Compensates for any reception and transmission time misalignment inherent to the RF device. Positive values reduce
# the RF transmission delay with respect to RF reception. Negative values have the opposite effect.
start_time: auto # Optional TEXT (auto). Sets the radio streaming start time. Format: YYYY-MM-DD HH:MM:SS. Use 'auto' or leave empty to let the radio start immediately.
dl_freq_Hz: # Optional FLOAT. Sets the downlink frequency override in Hz. Overrides dl_arfcn-derived frequency.
ul_freq_Hz: # Optional FLOAT. Sets the uplink frequency override in Hz. Overrides ul_arfcn-derived frequency.

amplitude_control:
tx_gain_backoff: 12.0 # Optional FLOAT (12.0). Sets the baseband gain back-off in dB to account for signal PAPR. Format: positive float.
enable_clipping: false # Optional BOOLEAN (false). Enables clipping of baseband samples that exceed the power ceiling. Supported: [false, true].
ceiling: -0.1 # Optional FLOAT (-0.1). Sets the power ceiling in dBFS relative to full scale amplitude. Format: negative float or 0.

expert_cfg:
low_phy_dl_throttling: 0 # Optional FLOAT (0). Throttles the lower PHY DL baseband generation. 0 disables throttling.
tx_mode: continuous # Optional TEXT (continuous). Selects a radio transmission mode. Supported: [continuous, discontinuous, same-port].
power_ramping_time_us: 0 # Optional FLOAT (0). Sets the power ramping time in microseconds, which proactively initiates transmission and mitigates transient effects.

ru_dummy:
dl_processing_delay: 1 # Optional UINT (1). Sets the DL processing delay in slots.
time_scaling: 1.0 # Optional FLOAT (1.0). Sets the time scaling factor applied to the slot duration. Must be greater than zero. A value greater than one slows down the RU, while a value between zero and one speeds it up. Supported: [0 - inf].

hal:
eal_args: # Optional TEXT. Sets the EAL configuration parameters used to initialize DPDK.
bbdev_hwacc:
hwacc_type: # Optional TEXT. Sets the type of BBDEV hardware accelerator. Supported: [acc100, acc200, vrb1].
id: # Optional UINT. Sets the ID of the BBDEV-based hardware-accelerator. Supported: [0 - 65535].
pdsch_enc:
nof_hwacc: # Optional UINT. Sets the number of hardware-accelerated PDSCH encoding functions. Supported: [0 - 64].
cb_mode: false # Optional BOOLEAN (false). Sets the operation mode of the PDSCH encoder (CB mode = true, TB mode = false). Supported: [false, true].
max_buffer_size: # Optional UINT. Sets the maximum supported buffer size in bytes (CB mode will be forced for larger TBs).
dedicated_queue: true # Optional BOOLEAN (true). Sets whether to use a dedicated hardware queue for the PDSCH encoder. Supported: [false, true].
pusch_dec:
nof_hwacc: # Optional UINT. Sets the number of hardware-accelerated PUSCH decoding functions. Supported: [0 - 64].
harq_context_size: # Optional UINT. Sets the size of the HARQ context repository.
force_local_harq: false # Optional BOOLEAN (false). Forces using host memory to implement the HARQ buffer. Supported: [false, true].
dedicated_queue: true # Optional BOOLEAN (true). Sets whether to use a dedicated hardware queue for the PUSCH decoder. Supported: [false, true].
msg_mbuf_size: # Optional UINT. Sets the size of the mbufs storing unencoded and unrate-matched messages (in bytes). Supported: [0 - 64000].
rm_mbuf_size: # Optional UINT. Sets the size of the mbufs storing encoded and rate-matched messages (in bytes). Supported: [0 - 64000].
nof_mbuf: # Optional UINT. Sets the number of mbufs in the memory pool.

buffer_pool:
nof_segments: 1048576 # Optional UINT (1048576). Sets the number of segments allocated by the buffer pool.
segment_size: 2048 # Optional UINT (2048). Sets the size of each buffer pool segment in bytes.

expert_phy:
max_proc_delay: 5 # Optional UINT (5). Sets the maximum allowed DL processing delay in slots. Supported: [1 - 30].
pusch_dec_max_iterations: 6 # Optional UINT (6). Sets the maximum number of PUSCH LDPC decoder iterations.
pusch_dec_enable_early_stop: true # Optional BOOLEAN (true). Enables the PUSCH LDPC decoder early stop. Supported: [false, true].
pusch_decoder_force_decoding: false # Optional BOOLEAN (false). Forces the PUSCH LDPC decoder to decode always. Supported: [false, true].
pusch_sinr_calc_method: post_equalization # Optional TEXT (post_equalization). Sets the PUSCH SINR calculation method. Supported: [channel_estimator, post_equalization, evm].
pusch_channel_estimator_fd_strategy: filter # Optional TEXT (filter). Sets the PUSCH channel estimator frequency-domain strategy. Supported: [filter, mean, none].
pusch_channel_estimator_td_strategy: average # Optional TEXT (average). Sets the PUSCH channel estimator time-domain strategy. Supported: [average, interpolate].
pusch_channel_estimator_cfo_compensation: true # Optional BOOLEAN (true). Enables the PUSCH channel estimator CFO compensation. Supported: [false, true].
pusch_channel_equalizer_algorithm: zf # Optional TEXT (zf). Sets the PUSCH channel equalizer algorithm. Supported: [zf, mmse].
max_request_headroom_slots: 0 # Optional UINT (0). Sets the maximum request headroom size in slots. Supported: [0 - 30].
allow_request_on_empty_uplink_slot: false # Optional BOOLEAN (false). Generates an uplink request in an uplink slot with no PUCCH/PUSCH/SRS PDUs. Supported: [false, true].
enable_phy_tap: false # Optional BOOLEAN (false). Enables the PHY tap plugin if present. Supported: [false, true].
phy_tap_arguments: # Optional TEXT. Sets the PHY tap plugin argument string passed during construction.

expert_execution:
affinities:
main_pool_cpus: # Optional TEXT. Sets CPU cores assigned to the main thread pool. No default — the affinity mask is empty by default.
main_pool_pinning: mask # Optional ENUM (mask). Sets the policy used for assigning CPU cores to the main thread pool. Supported: [round-robin, mask].
ofh:
timing_cpu: # Optional TEXT. Sets the CPU used for timing in the Radio Unit. Format: comma-separated CPU ids or ranges, e.g. "0-3,5".
threads:
main_pool:
nof_threads: # Optional UINT. Sets the number of threads for processing upper PHY and upper layers. No default — field is std::optional<unsigned> (nullopt when not set).
task_queue_size: 2048 # Optional UINT (2048). Sets the main thread pool task queue size.
backoff_period: 50 # Optional UINT (50). Sets the main thread pool back-off period in microseconds.
upper_phy:
pdsch_processor_type: auto # Optional TEXT (auto). Sets the PDSCH processor type. Supported: [auto, generic, flexible].
pdsch_cb_batch_length: 4 # Optional UINT (4). Sets the PDSCH flexible processor codeblock-batch size. Format: a non-negative integer or the sentinel strings "auto", "default", "synchronous".
max_pucch_concurrency: 0 # Optional UINT (0). Sets the maximum PUCCH processing concurrency for all cells. 0 means no limit.
max_pusch_and_srs_concurrency: 4 # Optional UINT (4). Sets the maximum PUSCH and SRS processing concurrency for all cells. 0 means no limit. If hardware acceleration is enabled, this is set to the number of accelerator queues.
max_pdsch_concurrency: 0 # Optional UINT (0). Sets the maximum PDSCH processing concurrency for all cells. 0 means no limit. If hardware acceleration is enabled, this is set to the number of accelerator queues.
ofh:
enable_busy_waiting: false # Optional BOOLEAN (false). Enables busy-waiting of the RU timing worker. Supported: [false, true].
lower_phy:
execution_profile: triple # Optional TEXT (triple). Sets the lower physical layer executor profile. Supported: [blocking, single, dual, triple].
queues:
cu_up_dl_ue_executor_queue_size: 8192 # Optional UINT (8192). Sets the CU-UP DL UE executor queue size.
cu_up_ul_ue_executor_queue_size: 8192 # Optional UINT (8192). Sets the CU-UP UL UE executor queue size.
cu_up_ctrl_ue_executor_queue_size: 8192 # Optional UINT (8192). Sets the CU-UP control UE executor queue size.
cu_up_strand_batch_size: 256 # Optional UINT (256). Sets the CU-UP strand batch size.
du_ue_data_executor_queue_size: 8192 # Optional UINT (8192). Sets the DU UE executor task queue size for PDU processing.
cell_affinities: # Optional TEXT. Sets the cell CPU affinity configuration on a per cell basis. Each list entry should begin with "-".
- ru_cpus: # Optional TEXT. Sets the CPU cores used for Radio Unit tasks. Format: comma-separated CPU ids or ranges, e.g. "0-3,5".
ru_pinning: mask # Optional TEXT (mask). Sets the policy used for assigning CPU cores to Radio Unit tasks. Format: one of: mask, round-robin.

remote_control:
enabled: false # Optional BOOLEAN (false). Enables the remote control feature. Supported: [false, true].
bind_addr: 127.0.0.1 # Optional TEXT (127.0.0.1). Sets the local IP address to bind for remote control. Format: IPV4 or IPV6 IP address.
port: 8001 # Optional UINT (8001). Sets the port where the remote control server listens. Supported: [0 - 65535].

test_mode:
test_ue:
rnti: 0 # Optional UINT (0). Sets the C-RNTI of the test UE. Supported: [0 - 65519].
nof_ues: 1 # Optional UINT (1). Sets the number of test UEs created. Supported: [0 - 1024].
ue_creation_stagger_slots: 10 # Optional UINT (10). Sets the number of slots between consecutive test mode UE creations. Supported: [0 - 10240].
auto_ack_indication_delay: # Optional TEXT. Sets the delay before UL and DL HARQs are automatically ACKed. Only use if the UL PHY is not operational.
pdsch_active: true # Optional BOOLEAN (true). Enables the PDSCH of the test UE. Supported: [false, true].
pusch_active: true # Optional BOOLEAN (true). Enables the PUSCH of the test UE. Supported: [false, true].
cqi: 15 # Optional UINT (15). Sets the Channel Quality Indicator for the test UE. Supported: [1 - 15].
pmi: 0 # Optional UINT (0). Sets the Precoder Matrix Indicator for the test UE. Supported: [0 - 3].
ri: 1 # Optional UINT (1). Sets the Rank Indicator for the test UE. Supported: [1 - 4].
i_1_1: 0 # Optional INT (0). Sets the Precoder Matrix codebook index i_1_1 for the test UE. Supported: [0 - 7].
i_1_3: 0 # Optional INT (0). Sets the Precoder Matrix codebook index i_1_3 for the test UE. Supported: [0 - 1].
i_2: 0 # Optional INT (0). Sets the Precoder Matrix codebook index i_2 for the test UE. Supported: [0 - 3].
attach_detach:
period_ms: 0 # Optional UINT (0). Sets the cyclic attach/detach period in ms. 0 disables.
sleep_ms: 0 # Optional UINT (0). Sets the sleep time in ms between attach/detach cycles.
attach_detach_duration_ms: # Optional UINT. Sets the duration in ms of active traffic before UEs are released and recreated. Supported: [100 - 10000].
attach_detach_guard_duration_ms: 1000 # Optional UINT (1000). Sets the guard period in ms between a release and next creation cycle. Supported: [100 - 60000].

log:
# All gNB layers and components can be configured independently to output at various levels of detail. Supported levels (from lowest to highest detail):
# none, error, warning, info, debug
filename: /tmp/gnb.log # Optional TEXT (/tmp/gnb.log). Sets the file path for logs. The gnb_appconfig constructor overrides the base logger default (stdout) to /tmp/gnb.log.
all_level: warning # Optional TEXT (warning). Sets a common log level across PHY, MAC, RLC, PDCP, RRC, SDAP, NGAP and GTPU layers. Supported: [none, warning, info, debug, error].
lib_level: warning # Optional TEXT (warning). Sets the log level for external library components. Supported: [none, warning, info, debug, error].
config_level: none # Optional TEXT (none). Sets the configuration parser log level. Supported: [none, info, debug] (error and warning are not accepted).
ngap_level: warning # Optional TEXT (warning). Sets the NGAP log level.
nrppa_level: warning # Optional TEXT (warning). Sets the NRPPa log level.
e1ap_level: warning # Optional TEXT (warning). Sets the E1AP log level.
e1ap_json_enabled: false # Optional BOOLEAN (false). Enables JSON-formatted logging of E1AP PDUs. Supported: [false, true].
xnap_level: warning # Optional TEXT (warning). Sets the Xn-AP log level.
f1ap_level: warning # Optional TEXT (warning). Sets the F1AP log level.
f1ap_json_enabled: false # Optional BOOLEAN (false). Enables JSON-formatted logging of F1AP PDUs. Supported: [false, true].
e2ap_level: warning # Optional TEXT (warning). Sets the E2AP log level. Supported: [none, warning, info, debug, error].
rrc_level: warning # Optional TEXT (warning). Sets the RRC log level.
sec_level: warning # Optional TEXT (warning). Sets the security functions log level.
cu_level: warning # Optional TEXT (warning). Sets the CU management log level.
pdcp_level: warning # Optional TEXT (warning). Sets the PDCP log level.
sdap_level: warning # Optional TEXT (warning). Sets the SDAP log level.
rohc_level: warning # Optional TEXT (warning). Sets the ROHC log level. Supported: [none, error, warning, info, debug].
du_level: warning # Optional TEXT (warning). Sets the DU management log level.
mac_level: warning # Optional TEXT (warning). Sets the MAC log level.
rlc_level: warning # Optional TEXT (warning). Sets the RLC log level.
f1u_level: warning # Optional TEXT (warning). Sets the F1-U log level.
gtpu_level: warning # Optional TEXT (warning). Sets the GTP-U log level.
fapi_level: warning # Optional TEXT (warning). Sets the FAPI log level (split_7_2 and split_6 only).
phy_level: warning # Optional TEXT (warning). Sets the physical layer log level.
ofh_level: warning # Optional TEXT (warning). Sets the Open Fronthaul log level.
radio_level: info # Optional TEXT (info). Sets the radio driver log level.
hal_level: warning # Optional TEXT (warning). Sets the HAL log level.
ntn_level: warning # Optional TEXT (warning). Sets the NTN log level.
hex_max_size: 0 # Optional INT (0). Sets the maximum number of bytes to print in hex. 0 disables hex dumps; -1 for unlimited. Supported: [-1 - 1024].
broadcast_enabled: false # Optional BOOLEAN (false). Enables logging of broadcast messages and all PRACH opportunities in the PHY and MAC layers. Supported: [false, true].
high_latency_diagnostics_enabled: false # Optional BOOLEAN (false). Enables logging of performance diagnostics when high computational latencies are detected. Supported: [false, true].
phy_rx_symbols_filename: # Optional TEXT. Sets the file path to dump received IQ symbols. Leave empty to disable.
phy_rx_symbols_port: 0 # Optional TEXT (0). Sets the Rx port number to dump IQ symbols from, or "all" for all UL receive ports. Only active if phy_rx_symbols_filename is set.
phy_rx_symbols_prach: false # Optional BOOLEAN (false). Enables dumping of IQ symbols from all PRACH ports. Only active if phy_rx_symbols_filename is set. Supported: [false, true].

pcap:
ngap_filename: /tmp/cu_ngap.pcap # Optional TEXT (/tmp/cu_ngap.pcap). Sets the path for NGAP PCAP files.
ngap_enable: false # Optional BOOLEAN (false). Enables NGAP packet capture. Supported: [false, true].
n3_filename: # Optional TEXT. Sets the N3 GTP-U PCAP file output path.
n3_enable: false # Optional BOOLEAN (false). Enables N3 packet capture. Supported: [false, true].
e1ap_filename: /tmp/cu_e1ap.pcap # Optional TEXT (/tmp/cu_e1ap.pcap). Sets the E1AP PCAP file output path.
e1ap_enable: false # Optional BOOLEAN (false). Enables E1AP packet capture. Supported: [false, true].
e2ap_cu_cp_filename: /tmp/cu_cp_e2ap.pcap # Optional TEXT (/tmp/cu_cp_e2ap.pcap). Sets the path for E2AP CU-CP PCAP files.
e2ap_cu_up_filename: /tmp/cu_up_e2ap.pcap # Optional TEXT (/tmp/cu_up_e2ap.pcap). Sets the path for E2AP CU-UP PCAP files.
e2ap_du_filename: /tmp/du_e2ap.pcap # Optional TEXT (/tmp/du_e2ap.pcap). Sets the path for E2AP DU PCAP files.
e2ap_enable: false # Optional BOOLEAN (false). Enables E2AP packet capture. Supported: [false, true].
f1ap_filename: /tmp/cu_f1ap.pcap # Optional TEXT (/tmp/cu_f1ap.pcap). Sets the path for F1AP PCAP files.
f1ap_enable: false # Optional BOOLEAN (false). Enables F1AP packet capture. Supported: [false, true].
f1u_filename: /tmp/du_f1u.pcap # Optional TEXT (/tmp/du_f1u.pcap). Sets the F1-U GTP-U PCAP file output path.
f1u_enable: false # Optional BOOLEAN (false). Enables F1-U packet capture. Supported: [false, true].
rlc_filename: /tmp/du_rlc.pcap # Optional TEXT (/tmp/du_rlc.pcap). Sets the path for RLC PCAP files.
rlc_rb_type: all # Optional TEXT (all). Sets the RLC PCAP RB type filter. Supported: [all, srb, drb].
rlc_enable: false # Optional BOOLEAN (false). Enables RLC packet capture. Supported: [false, true].
mac_filename: /tmp/du_mac.pcap # Optional TEXT (/tmp/du_mac.pcap). Sets the path for MAC PCAP files.
mac_type: udp # Optional TEXT (udp). Sets the MAC PCAP format. Supported: [dlt, udp].
mac_enable: false # Optional BOOLEAN (false). Enables MAC packet capture. Supported: [false, true].
xnap_filename: /tmp/cu_xnap.pcap # Optional TEXT (/tmp/cu_xnap.pcap). Sets the path for Xn-AP PCAP files.
xnap_enable: false # Optional BOOLEAN (false). Enables Xn-AP packet capture. Supported: [false, true].

metrics:
autostart_stdout_metrics: false # Optional BOOLEAN (false). Autostart stdout metrics reporting. Supported: [false, true].
enable_json: false # Optional BOOLEAN (false). Enables JSON metrics reporting. Supported: [false, true].
enable_log: false # Optional BOOLEAN (false). Enables log metrics reporting. Supported: [false, true].
enable_verbose: false # Optional BOOLEAN (false). Enables extended detail metrics reporting. Supported: [false, true].
layers:
enable_app_usage: false # Optional BOOLEAN (false). Enable application usage metrics. Supported: [false, true].
enable_ngap: false # Optional BOOLEAN (false). Enables NGAP metrics. Supported: [false, true].
enable_e1ap: false # Optional BOOLEAN (false). Enables E1AP metrics. Supported: [false, true].
enable_pdcp: false # Optional BOOLEAN (false). Enables PDCP metrics (reported by the CU-UP). Supported: [false, true].
enable_nrup_cu: false # Optional BOOLEAN (false). Enables NRUP metrics (CU side). Supported: [false, true].
enable_rrc: false # Optional BOOLEAN (false). Enable CU-CP RRC metrics. Supported: [false, true].
skip_cu_up_executor: true # Optional BOOLEAN (true). Whether to skip logging CU-UP executor metrics when executor logging is enabled application wide. Supported: [false, true].
enable_sched: true # Optional BOOLEAN (true). Enables DU scheduler metrics. Supported: [false, true].
enable_rlc: false # Optional BOOLEAN (false). Enables RLC metrics. Supported: [false, true].
enable_mac: false # Optional BOOLEAN (false). Enables MAC metrics. Supported: [false, true].
enable_du_proc: false # Optional BOOLEAN (false). Enables DU management and control procedure metrics. Supported: [false, true].
enable_executor: false # Optional BOOLEAN (false). Whether to log application executors metrics. Supported: [false, true].
enable_du_low: false # Optional BOOLEAN (false). Enables DU low (upper physical layer) metrics. Supported: [false, true].
enable_ru: false # Optional BOOLEAN (false). Enables Radio Unit metrics. Supported: [false, true].
periodicity:
app_usage_report_period: 1000 # Optional UINT (1000). Sets the application resource usage metrics report period in milliseconds.
cu_cp_report_period: 1000 # Optional UINT (1000). Sets the CU-CP metrics report period in milliseconds.
cu_up_report_period: 1000 # Optional UINT (1000). Sets the CU-UP metrics report period in milliseconds.
du_report_period: 1000 # Optional UINT (1000). Sets the DU statistics report period in milliseconds. Supported: [0 - 10485760].
executors_report_period: 1000 # Optional UINT (1000). Sets the executor metrics report period in milliseconds. Supported: [0 - 10485760].

trace:
filename: # Optional TEXT. Sets the file path for trace output. Leave empty to disable tracing.
max_tracing_events_per_file: 1000000 # Optional UINT (1000000). Sets the maximum number of events per trace file. 0 means no limit.
nof_tracing_events_after_severe: 0 # Optional UINT (0). Sets the number of events to write prior to a severe event. Set to zero for writing all events.
layers:
cu_up_enable: false # Optional BOOLEAN (false). Enables tracing for CU-UP executors. Supported: [false, true].
du_high_enable: false # Optional BOOLEAN (false). Enables tracing for DU-high executors. Supported: [false, true].
phy_enable: false # Optional BOOLEAN (false). Enables tracing for physical layer executors. Supported: [false, true].

Antenna Configuration

OCUDU supports SISO, codebook-based MIMO, and TX/RX diversity. These options can be configured in the cell_cfg section via the nof_antennas_dl and nof_antennas_ul parameters.

When you configure nof_antennas_dl and nof_antennas_ul, it informs the gNB about the number of antennas available for downlink (DL) and uplink (UL) transmissions, respectively. By default, a single physical antenna is used for both DL and UL, meaning the values of nof_antennas_dl and nof_antennas_ul are not additive.

As shown above, an example of a MIMO configuration file can be found in the example configuration files provided with OCUDU source files.