Skip to content

UE YAML Reference

UE reads UE.yaml from its current working directory at startup. Copy a config/UE_*.yaml preset that matches your hardware and scenario, then edit the copy. Configuration is not hot-reloaded; restart the UE after making changes.

The tables follow the top-level YAML structure and use full paths such as uplink.arq_enabled to distinguish similarly named fields. A typical value is guidance, not a guaranteed default for every preset. If an optional section is omitted, the parser supplies its default values.

Keep coupled frame-structure, duplex, frequency, and resource-mapping fields consistent with the BS configuration.

PathType/UnitTypical ValueDescription
radio.radio_backendstringuhdRadio I/O backend. Use uhd for real USRPs or sim for the channel simulator.
PathType/UnitTypical ValueDescription
simulation.sessionstringoisac_simShared simulator session namespace.
simulation.enable_comm_rxbooltrueSimulator produces the communication RX path.
simulation.enable_sensing_rxbooltrueSimulator produces sensing RX paths.
simulation.enable_uplinkboolfalseSimulator routes the UE-to-BS uplink stream.
simulation.pacing_enabledbooltruePace simulator output to wall-clock sample time.
simulation.noise_power_dbfsfloat / dBFS-100AWGN power per RX channel.
simulation.snr_control_enableboolfalseMaintain target_snr_db by scaling clean simulated signal.
simulation.target_snr_dbfloat / dB40Initial target SNR when SNR control is enabled.
simulation.control_portint10002ChannelSimulator control port.
simulation.cfo_hzfloat / Hz0Initial BS-to-UE CFO before UE RX correction. The initial UE-to-BS CFO has the opposite sign, is carrier-ratio-scaled in FDD, and its residual then follows UE uplink TX retuning.
simulation.sample_rate_offset_ppmfloat / ppm0UE sample-clock offset relative to BS.
simulation.timing_offset_samplesint / samples0Constant integer sample delay.
simulation.array_spacing_mfloat / m0.04283Physical ULA spacing.
simulation.array_spacing_lambdafloat0.5Legacy ULA spacing in wavelengths.
simulation.ring_capacity_samplesint262144Shared-memory ring capacity.
simulation.steering_override_filestring""Optional array-manifold matrix file. When empty, the simulator generates a ULA manifold from angle_deg. When set, angle_deg no longer affects the array response; encode the angle-dependent amplitude and phase directly in the matrix.
simulation.comm_multipath_taps[]object[]optionalCommunication taps with delay_samples, gain_db, and phase_deg.
simulation.targets[]object[]optionalMonostatic point scatterers.
simulation.bistatic_targets[]object[]optionalBistatic/communication point scatterers.
PathType/UnitTypical ValueDescription
rf_sampling.sample_ratefloat / Hz50000000Baseband sample rate.
rf_sampling.bandwidthfloat / Hz50000000Analog bandwidth.
rf_sampling.rx_gainfloat / dB10UE downlink RX gain.
rf_sampling.rx_agc_enablebooltrueEnable UE downlink hardware RX AGC.
rf_sampling.rx_agc_low_threshold_dbfloat / dB14Increase RX gain below this filtered delay-spectrum threshold.
rf_sampling.rx_agc_high_threshold_dbfloat / dB16Decrease RX gain above this threshold.
rf_sampling.rx_agc_max_step_dbfloat / dB1Maximum RX gain step per AGC update.
rf_sampling.rx_agc_update_framesint4Minimum processed-frame interval between AGC updates.
PathType/UnitTypical ValueDescription
usrp_device.device_argsstringaddr=...USRP device args.
usrp_device.clock_sourcestringexternalUE clock source: internal, external, or gpsdo.
PathType/UnitTypical ValueDescription
ofdm_frame.fft_sizeint1024OFDM FFT size.
ofdm_frame.cp_lengthint / samples128Cyclic prefix length.
ofdm_frame.sync_posint1Sync symbol index.
ofdm_frame.enable_sec_sync_symbolboolfalseExpect a duplicate ZC sync symbol at sync_pos-1.
ofdm_frame.enable_cfo_training_sequenceboolfalseUse the sync_pos+1 CFO training field to resolve CFO aliases.
ofdm_frame.cfo_training_period_samplesint / samples16CFO training repetition period.
ofdm_frame.num_symbolsint100OFDM symbols per frame.
ofdm_frame.sensing_symbol_numint100Symbols used for sensing.
ofdm_frame.frame_queue_sizeint32Demodulated RX frame queue capacity.
ofdm_frame.zc_rootint29Zadoff-Chu root.
ofdm_frame.pilot_positionsint[][571,...]Comb-pilot subcarrier indices.
ofdm_frame.midframe_pilot_symbolsint[][]Optional mid-frame BPSK pilot symbols.
ofdm_frame.midframe_pilot_seedint1296453708Deterministic mid-frame BPSK pilot seed.
PathType/UnitTypical ValueDescription
cuda.cuda_demod_pipeline_slotsint3CUDA demodulation pipeline slots.
cuda.cuda_ldpc_decoder_backendstringgpuCUDA demod LDPC decoder backend: gpu or cpu.
cuda.cuda_ldpc_worker_buffersint3CUDA LDPC async worker batch buffers.
cuda.cuda_ldpc_cross_frame_flush_framesint2Max frames accumulated before CUDA LDPC batch decode.
cuda.cuda_ldpc_cross_frame_flush_usfloat / us1000Max CUDA LDPC cross-frame batch wait time.
PathType/UnitTypical ValueDescription
ldpc.fixed_pointboolfalseUse int16/Q16 CPU LDPC decode path.
ldpc.fixed_point_scaleint16LLR scale before int16 saturation.
PathType/UnitTypical ValueDescription
downlink.center_freqfloat / Hz2400000000UE downlink RF center frequency.
downlink.rx_wire_formatstringsc16UE downlink RX wire format.
downlink.rx_channelint0UE downlink RX channel index.
downlink.equalizer_modestringmmseDownlink equalizer inverse mode: zf or mmse.
downlink.channel_tracking_modestringpilot_phasePer-symbol comb-pilot tracking mode.
downlink.equalizer_mag_floorfloat1e-6Lower bound for `
downlink.channel_tracking_min_pilot_snrfloat1e-4Minimum comb-pilot residual weight before fallback.
downlink.arq_enabledboolfalseEnable downlink ARQ on the UE receiver.
downlink.arq_ordered_deliveryboolfalseBuffer downlink packets for in-order UDP delivery.
downlink.arq_window_packetsint256Downlink ARQ receive/reorder window; valid range 132767.
downlink.arq_feedback_interval_msint / ms10Minimum interval between downlink ARQ ACK feedback packets.
PathType/UnitTypical ValueDescription
uplink.enabledboolfalseMaster switch for UE uplink/duplex.
uplink.duplex_modestringtddMust match BS: tdd windowed uplink or fdd full-frame uplink.
uplink.center_freqfloat / Hz2500000000FDD-only uplink carrier. TDD uses the downlink center frequency.
uplink.idle_waveformstringrandom_qpskUE uplink idle waveform: random_qpsk or zero.
uplink.symbol_startint90TDD-only first uplink symbol.
uplink.symbol_countint10TDD-only uplink window length.
uplink.guard_symbolsint1TDD-only leading guard symbols.
uplink.tx_gainfloat / dB0UE uplink TX gain.
uplink.tx_channelint0UE uplink TX channel index.
uplink.wire_format_txstringsc16UE uplink TX wire format.
uplink.ue_timing_advanceint / samples50UE uplink transmit timing advance.
uplink.debug_self_channelboolfalseEstimate UE self-TX leakage channel from RX windows for TADV debugging.
uplink.ertm_to_enableboolfalseEnable eRTM TO payload consumption and TO logs.
uplink.ertm_timing_metricstringdelay_magnitudeDifferential-TO metric: phase-robust delay_magnitude or coherent maximum_likelihood.
uplink.ertm_delay_oversample_factorint10eRTM delay-spectrum IFFT oversampling factor.
uplink.ertm_dl_rf_delay_samplesfloat / samples67.0Calibrated downlink RF-chain delay for eRTM equations.
uplink.ertm_ul_rf_delay_samplesfloat / samples67.0Calibrated uplink RF-chain delay for eRTM equations.
uplink.ertm_debug_output_enabledboolfalseEnable UE-side eRTM debug ZMQ spectra.
uplink.ertm_report_interval_framesint / frames32BS eRTM report cadence; keep matched with BS.
uplink.arq_enabledboolfalseEnable uplink ARQ on the UE transmitter.
uplink.arq_window_packetsint256Uplink ARQ outstanding packet window; valid range 132767.
uplink.arq_retransmit_timeout_msint / ms100Uplink ARQ retransmission timeout.
uplink.arq_max_retriesint5Max uplink retransmission retries; 0 means unlimited within the window.
PathType/UnitTypical ValueDescription
sync_tracking.sync_queue_sizeint32Sync-search batch queue capacity.
sync_tracking.sync_cfo_alias_search_range_hzfloat / Hz800000CFO range covered by the sync alias resolver.
sync_tracking.reset_hold_sfloat / s0.5Invalid-delay duration before a hard reset to sync search.
sync_tracking.software_syncbooltrueEnable software sync tracking.
sync_tracking.predictive_delaybooltrueUse CFO-based predictive delay compensation.
sync_tracking.hardware_syncboolfalseEnable hardware synchronization mode.
sync_tracking.hardware_sync_ttystring/dev/ttyUSB0Serial device for the hardware sync controller.
sync_tracking.ocxo_pi_kp_fastfloat30Fast-stage OCXO PI proportional gain.
sync_tracking.ocxo_pi_ki_fastfloat1Fast-stage OCXO PI integral gain.
sync_tracking.ocxo_pi_kp_slowfloat30Slow-stage OCXO PI proportional gain.
sync_tracking.ocxo_pi_ki_slowfloat0.05Slow-stage OCXO PI integral gain.
sync_tracking.ocxo_pi_switch_abs_error_ppmfloat / ppm0.0002Error threshold for switching to slow OCXO PI stage.
sync_tracking.ocxo_pi_switch_hold_sfloat / s60Hold time below threshold before switching stages.
sync_tracking.ocxo_pi_max_step_fast_ppmfloat / ppm0.01Fast-stage maximum OCXO adjustment per update.
sync_tracking.ocxo_pi_max_step_slow_ppmfloat / ppm0.01Slow-stage maximum OCXO adjustment per update.
sync_tracking.ocxo_pi_max_step_ppmfloat / ppmoptionalLegacy alias applied to both fast and slow max-step fields.
sync_tracking.akf_enablebooltrueEnable adaptive Kalman filter on hardware-sync error_ppm.
sync_tracking.akf_bootstrap_framesint64Cold-start frames before normal AKF updates.
sync_tracking.akf_innovation_windowint64Innovation history window for adaptation.
sync_tracking.akf_max_lagint4Maximum innovation autocorrelation lag.
sync_tracking.akf_adapt_intervalint64Frame interval for adaptive Q/R updates.
sync_tracking.akf_gate_sigmafloat3Innovation gate in sigma units.
sync_tracking.akf_tikhonov_lambdafloat1e-3Tikhonov regularization for LS adaptation.
sync_tracking.akf_update_smoothfloat0.2Exponential smoothing for updated Q/R.
sync_tracking.akf_q_wf_minfloat1e-10White-frequency-noise lower bound.
sync_tracking.akf_q_wf_maxfloat1e2White-frequency-noise upper bound.
sync_tracking.akf_q_rw_minfloat1e-12Random-walk-frequency-noise lower bound.
sync_tracking.akf_q_rw_maxfloat1e1Random-walk-frequency-noise upper bound.
sync_tracking.akf_r_minfloat1e-8Observation-noise variance lower bound.
sync_tracking.akf_r_maxfloat1e3Observation-noise variance upper bound.
sync_tracking.desired_peak_posint20Target delay-peak position for alignment logic.
PathType/UnitTypical ValueDescription
sensing.sensing_delay_correction_modestringlos_trackingBistatic sensing delay correction source: los_tracking or ertm_absolute.
sensing.bi_enabledbooltrueEnable bistatic sensing processing.
sensing.range_fft_sizeint1024Range FFT size.
sensing.doppler_fft_sizeint100Doppler FFT size.
sensing.view_range_binsint0Backend RD view width; 0 means full range.
sensing.view_doppler_binsint0Backend RD view height; 0 means full Doppler size.
sensing.output_modestringdensedense full-buffer output or compact_mask selected-RE output.
sensing.on_wire_formatstringcomplex_float32Sensing payload wire format.
sensing.backend_processing_enabledboolfalsePublish backend RD/CFAR/micro-Doppler sidecars when supported.
sensing.symbol_strideint20Default dense-mode STRD applied at startup.
PathType/UnitTypical ValueDescription
resource_preview.data_resource_blocks[]object[]optionalPayload / sensing-pilot RE rectangles; each item has kind, symbol_start, symbol_count, subcarrier_start, and subcarrier_count.
resource_preview.mask_blocks[]object[]optionalCompact sensing RE rectangles with symbol_start, symbol_count, subcarrier_start, and subcarrier_count.
PathType/UnitTypical ValueDescription
measurement.measurement_enableboolfalseEnable internal PRBS measurement checking.
measurement.measurement_modestringinternal_prbsMeasurement checker mode.
measurement.measurement_run_idstring""Run ID written to measurement CSV summaries.
measurement.measurement_output_dirstring""Output directory for measurement CSV summaries.
measurement.measurement_payload_bytesint / bytes1024Expected bytes per measurement payload.
measurement.measurement_prbs_seedint0x5ABase seed for rebuilding deterministic PRBS payloads.
measurement.measurement_packets_per_pointint1Expected packets for one measurement epoch.
measurement.measurement_max_packets_per_frameint1Max measurement packets checked per frame; 0 means unlimited.
PathType/UnitTypical ValueDescription
network_output.udp_input_ipstring / IPv40.0.0.0UE uplink payload UDP bind IP.
network_output.udp_input_portint50002UE uplink payload UDP bind port.
network_output.udp_output_ipstring / IPv4""UE decoded downlink UDP destination IP; empty uses runtime.default_out_ip.
network_output.udp_output_portint50001UE decoded downlink UDP destination port.
network_output.udp_egress_pacer_enabledboolfalseEnable queued pacing for decoded UDP egress.
network_output.udp_egress_pacer_target_mbpsfloat / Mbps0Egress pacer target rate; 0 auto-estimates.
network_output.udp_egress_pacer_queue_packetsint10240Egress pacer queue capacity.
network_output.udp_egress_pacer_max_delay_msfloat / ms0Max queued packet age; 0 disables age drops.
network_output.bi_sensing_output_enabledbooltrueEnable bistatic sensing ZMQ output.
network_output.bi_sensing_ipstring / IPv40.0.0.0Bistatic sensing/control ZMQ bind IP.
network_output.bi_sensing_portint8889Bistatic sensing PUB port.
network_output.channel_ipstring / IPv40.0.0.0Channel-estimate PUB IP.
network_output.channel_portint12348Channel-estimate PUB port.
network_output.pdf_ipstring / IPv40.0.0.0Delay-spectrum PUB IP.
network_output.pdf_portint12349Delay-spectrum PUB port.
network_output.constellation_ipstring / IPv40.0.0.0Constellation PUB IP.
network_output.constellation_portint12346Constellation PUB port.
network_output.self_channel_ipstring / IPv40.0.0.0UE self-channel debug PUB IP.
network_output.self_channel_portint12350UE self-channel debug PUB port.
network_output.self_pdf_ipstring / IPv40.0.0.0UE self-delay-spectrum debug PUB IP.
network_output.self_pdf_portint12351UE self-delay-spectrum debug PUB port.
network_output.ertm_debug_ipstring / IPv40.0.0.0UE eRTM debug PUB IP.
network_output.ertm_debug_portint12362UE eRTM debug PUB port.
network_output.control_portint10001ZMQ ROUTER port for runtime control.
PathType/UnitTypical ValueDescription
cpu_cores.downlink_cpu_coresint[][1,2,3]UE downlink cores: RX, processing, bit processing.
cpu_cores.demod_worker_cpu_coresint[][]UE CPU demod worker cores; empty starts one unbound worker.
cpu_cores.ldpc_worker_cpu_coresint[][]UE CPU LDPC decode worker cores; empty starts one unbound worker.
cpu_cores.sensing_cpu_coresint[][4]UE bistatic sensing cores.
cpu_cores.uplink_cpu_coresint[][]UE uplink cores: LDPC encode, modulation, TX send, UDP receive.
cpu_cores.main_cpu_coreint-1Main-thread CPU core; -1 disables binding.
PathType/UnitTypical ValueDescription
runtime.default_out_ipstring / IPv4127.0.0.1Default destination IP for UDP and VOFA+ outputs when specific IP fields are empty.
runtime.vofa_debug_ipstring / IPv4""VOFA+ debug destination IP; empty uses default_out_ip.
runtime.vofa_debug_portint12347VOFA+ debug destination port.

Same hierarchical filter as BS (logging.*). Debug examples: ertm: debug, recovery: info, demod.snr: info. Performance (paths end with _profiling, off until set): demod_profiling: info, demod_eq_profiling: info.

Resource-map notes:

  • resource_preview.data_resource_blocks should normally match between BS and UE, including kind.
  • Built-in ZC sync symbols, the optional CFO training field, comb pilots, and mid-frame BPSK pilots take precedence over configured resource blocks.
  • resource_preview.mask_blocks controls compact sensing export only. In output_mode=compact_mask, runtime STRD is ignored because the mask defines the sampling pattern.
  • Compact sensing payloads begin with CompactSensingFrameHeader, followed by fixed-order raw complex<float> samples.