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.
rrc_reject_wait_time_s: 8 # Optional UINT (). Sets the waitTime IE in RRC Reject. Omit the key to send no waitTime IE in RRC Reject. Supported: [1, 16].

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].
p0_nominal_without_grant: -76 # Optional INT (-76). Sets the P0 value for PUSCH without grant, 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.