diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
index bdca6bd..8fd405b 100644
--- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
@@ -2,35 +2,22 @@
 #                   srsUE configuration file
 #####################################################################
 
-#####################################################################
-# RF configuration
-#
-# dl_earfcn: Downlink EARFCN code.
-# freq_offset: Uplink and Downlink optional frequency offset (in Hz)
-# tx_gain: Transmit gain (dB).
-# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
-#
-# Optional parameters:
-# dl_freq:            Override DL frequency corresponding to dl_earfcn
-# ul_freq:            Override UL frequency corresponding to dl_earfcn
-# nof_radios:         Number of available RF devices
-# nof_rf_channels:    Number of RF channels per radio
-# nof_rx_ant:         Number of RX antennas per channel
-# device_name:        Device driver family. Supported options: "auto" (uses first found), "UHD" or "bladeRF"
-# device_args:        Arguments for the device driver. Options are "auto" or any string.
-#                     Default for UHD: "recv_frame_size=9232,send_frame_size=9232"
-#                     Default for bladeRF: ""
-# device_args_2:      Arguments for the RF device driver 2.
-# device_args_3:      Arguments for the RF device driver 3.
-# time_adv_nsamples:  Transmission time advance (in number of samples) to compensate for RF delay
-#                     from antenna to timestamp insertion.
-#                     Default "auto". B210 USRP: 100 samples, bladeRF: 27.
-# burst_preamble_us:  Preamble length to transmit before start of burst.
-#                     Default "auto". B210 USRP: 400 us, bladeRF: 0 us.
-# continuous_tx:      Transmit samples continuously to the radio or on bursts (auto/yes/no).
-#                     Default is auto (yes for UHD, no for rest)
-#####################################################################
 [rf]
+% if int(ue.tx_gain) > 0:
+tx_gain = ${ue.tx_gain}
+% endif
+% if int(ue.rx_gain) > 0:
+rx_gain = ${ue.rx_gain}
+% endif
+
+freq_offset = ${ue.freq_offset}
+
+nof_antennas = ${ue.num_antennas}
+
+device_name = ${ue.rf_dev_type}
+device_args = ${ue.rf_dev_args},${ue.rf_dev_sync}
+
+[rat.eutra]
 % if int(ue.num_carriers) == 4:
 dl_earfcn = 2850,3050,3250,3350
 % elif int(ue.num_carriers) == 2:
@@ -44,75 +31,17 @@
 % if ue.get('ul_freq', -1) != -1:
 ul_freq = ${ue.ul_freq}
 % endif
-freq_offset = ${ue.freq_offset}
-% if int(ue.tx_gain) > 0:
-tx_gain = ${ue.tx_gain}
-% endif
-% if int(ue.rx_gain) > 0:
-rx_gain = ${ue.rx_gain}
-% endif
 
-#nof_radios = 1
-nof_antennas = ${ue.num_antennas}
 nof_carriers = ${ue.num_carriers}
 
-device_name = ${ue.rf_dev_type}
 
-# For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:
-#     USRP B210: num_recv_frames=64,num_send_frames=64
-
-# For best performance when BW<5 MHz (25 PRB), use the following device_args settings:
-#     USRP B210: send_frame_size=512,recv_frame_size=512
-
-device_args = ${ue.rf_dev_args},${ue.rf_dev_sync}
-#time_adv_nsamples = auto
-#burst_preamble_us = auto
-#continuous_tx     = auto
-
-
-#####################################################################
-# Packet capture configuration
-#
-# Packet capture is supported at both MAC and NAS layers.
-# MAC-layer packets are captured to file in the compact format
-# decoded by the Wireshark mac-lte-framed dissector.
-# To use this dissector, edit the preferences for DLT_USER to
-# add an entry with DLT=147, Payload Protocol=mac-lte-framed.
-# For more information see: https://wiki.wireshark.org/MAC-LTE
-# NAS-layer packets are dissected with DLT=148, and
-# Payload Protocol = nas-eps.
-#
-# enable:       Enable MAC layer packet captures (true/false)
-# filename:     File path to use for MAC packet captures
-# nas_enable:   Enable NAS layer packet captures (true/false)
-# nas_filename: File path to use for NAS packet captures
-#####################################################################
 [pcap]
 enable = ${'mac' if ue.enable_pcap else 'none'}
 mac_filename = ${ue.pcap_filename}
 mac_nr_filename = /tmp/ue_mac_nr.pcap
 nas_filename = /tmp/ue_nas.pcap
 
-#####################################################################
-# Log configuration
-#
-# Log levels can be set for individual layers. "all_level" sets log
-# level for all layers unless otherwise configured.
-# Format: e.g. phy_level = info
-#
-# In the same way, packet hex dumps can be limited for each level.
-# "all_hex_limit" sets the hex limit for all layers unless otherwise
-# configured.
-# Format: e.g. phy_hex_limit = 32
-#
-# Logging layers: rf, phy, mac, rlc, pdcp, rrc, nas, gw, usim, all
-# Logging levels: debug, info, warning, error, none
-#
-# filename: File path to use for log output. Can be set to stdout
-#           to print logs to standard output
-# file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created.
-#                If set to negative, a single log file will be created.
-#####################################################################
+
 [log]
 all_level = ${ue.log_all_level}
 phy_lib_level = none
@@ -121,19 +50,7 @@
 file_max_size = -1
 nas_level = ${ue.log_nas_level}
 
-#####################################################################
-# USIM configuration
-#
-# mode:   USIM mode (soft/pcsc)
-# algo:   Authentication algorithm (xor/milenage)
-# op/opc: 128-bit Operator Variant Algorithm Configuration Field (hex)
-#         - Specify either op or opc (only used in milenage)
-# k:      128-bit subscriber key (hex)
-# imsi:   15 digit International Mobile Subscriber Identity
-# imei:   15 digit International Mobile Station Equipment Identity
-# pin:    PIN in case real SIM card is used
-# reader: Specify card reader by it's name as listed by 'pcsc_scan'. If empty, try all available readers.
-#####################################################################
+
 [usim]
 mode = soft
 algo = ${ue.auth_algo}
@@ -143,20 +60,8 @@
 k    = ${ue.ki}
 imsi = ${ue.imsi}
 imei = 353490069873319
-#reader =
-#pin  = 1234
 
-#####################################################################
-# RRC configuration
-#
-# ue_category:       Sets UE category (range 1-5). Default: 4
-# release:           UE Release (8 to 10)
-# feature_group:     Hex value of the featureGroupIndicators field in the
-#                    UECapabilityInformation message. Default 0xe6041000
-# mbms_service_id:   MBMS service id for autostarting MBMS reception
-#                    (default -1 means disabled)
-# mbms_service_port: Port of the MBMS service
-#####################################################################
+
 [rrc]
 % if "dl_qam256" in ue.features or "ul_qam64" in ue.features:
 ue_category       = 8
@@ -170,234 +75,27 @@
 #ue_category       = 4
 #release           = 8
 % endif
-#feature_group     = 0xe6041000
-#mbms_service_id   = -1
-#mbms_service_port = 4321
 
-#####################################################################
-# NAS configuration
-#
-# apn:               Set Access Point Name (APN)
-# apn_protocol:      Set APN protocol (IPv4, IPv6 or IPv4v6.)
-# user:              Username for CHAP authentication
-# pass:              Password for CHAP authentication
-# force_imsi_attach: Whether to always perform an IMSI attach
-# eia:               List of integrity algorithms included in UE capabilities
-#                      Supported: 1 - Snow3G, 2 - AES
-# eea:               List of ciphering algorithms included in UE capabilities
-#                      Supported: 0 - NULL, 1 - Snow3G, 2 - AES
-#####################################################################
-[nas]
-#apn = internetinternet
-#apn_protocol = ipv4
-#user = srsuser
-#pass = srspass
-#force_imsi_attach = false
-#eia = 1,2
-#eea = 0,1,2
 
-#####################################################################
-# GW configuration
-#
-# netns:                Network namespace to create TUN device. Default: empty
-# ip_devname:           Name of the tun_srsue device. Default: tun_srsue
-# ip_netmask:           Netmask of the tun_srsue device. Default: 255.255.255.0
-#####################################################################
-[gw]
-#netns =
-#ip_devname = tun_srsue
-#ip_netmask = 255.255.255.0
-
-#####################################################################
-# GUI configuration
-#
-# Simple GUI displaying PDSCH constellation and channel freq response.
-# (Requires building with srsGUI)
-# enable:               Enable the graphical interface (true/false)
-#####################################################################
-[gui]
-enable = false
-
-#####################################################################
-# Channel emulator options:
-# enable:            Enable/Disable internal Downlink/Uplink channel emulator
-#
-# -- Fading emulator
-# fading.enable:     Enable/disable fading simulator
-# fading.model:      Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc)
-#
-# -- Delay Emulator     delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2
-#                       Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period
-# delay.enable:      Enable/disable delay simulator
-# delay.period_s:    Delay period in seconds.
-# delay.init_time_s: Delay initial time in seconds.
-# delay.maximum_us:  Maximum delay in microseconds
-# delay.minumum_us:  Minimum delay in microseconds
-#
-# -- Radio-Link Failure (RLF) Emulator
-# rlf.enable:        Enable/disable RLF simulator
-# rlf.t_on_ms:       Time for On state of the channel (ms)
-# rlf.t_off_ms:      Time for Off state of the channel (ms)
-#
-# -- High Speed Train Doppler model simulator
-# hst.enable:        Enable/Disable HST simulator
-# hst.period_s:      HST simulation period in seconds
-# hst.fd_hz:         Doppler frequency in Hz
-# hst.init_time_s:   Initial time in seconds
-#####################################################################
-[channel.dl]
-#enable        = false
-
-[channel.dl.fading]
-#enable        = false
-#model         = none
-
-[channel.dl.delay]
-#enable        = false
-#period_s      = 3600
-#init_time_s   = 0
-#maximum_us    = 100
-#minimum_us    = 10
-
-[channel.dl.rlf]
-#enable        = false
-#t_on_ms       = 10000
-#t_off_ms      = 2000
-
-[channel.dl.hst]
-#enable        = false
-#period_s      = 7.2
-#fd_hz         = 750.0
-#init_time_s   = 0.0
-
-[channel.ul]
-#enable        = false
-
-[channel.ul.fading]
-#enable        = false
-#model         = none
-
-[channel.ul.delay]
-#enable        = false
-#period_s      = 3600
-#init_time_s   = 0
-#maximum_us    = 100
-#minimum_us    = 10
-
-[channel.ul.rlf]
-#enable        = false
-#t_on_ms       = 10000
-#t_off_ms      = 2000
-
-[channel.ul.hst]
-#enable        = false
-#period_s      = 7.2
-#fd_hz         = -750.0
-#init_time_s   = 0.0
-
-#####################################################################
-# PHY configuration options
-#
-# rx_gain_offset:       RX Gain offset to add to rx_gain to calibrate RSRP readings
-# prach_gain:           PRACH gain (dB). If defined, forces a gain for the tranmsission of PRACH only.,
-#                       Default is to use tx_gain in [rf] section.
-# cqi_max:              Upper bound on the maximum CQI to be reported. Default 15.
-# cqi_fixed:            Fixes the reported CQI to a constant value. Default disabled.
-# snr_ema_coeff:        Sets the SNR exponential moving average coefficient (Default 0.1)
-# snr_estim_alg:        Sets the noise estimation algorithm. (Default refs)
-#                          Options: pss:   use difference between received and known pss signal,
-#                                   refs:  use difference between noise references and noiseless (after filtering)
-#                                   empty: use empty subcarriers in the boarder of pss/sss signal
-# pdsch_max_its:        Maximum number of turbo decoder iterations (Default 4)
-# nof_phy_threads:      Selects the number of PHY threads (maximum 4, minimum 1, default 3)
-# equalizer_mode:       Selects equalizer mode. Valid modes are: "mmse", "zf" or any
-#                       non-negative real number to indicate a regularized zf coefficient.
-#                       Default is MMSE.
-# sfo_ema:              EMA coefficient to average sample offsets used to compute SFO
-# sfo_correct_period:   Period in ms to correct sample time to adjust for SFO
-# sss_algorithm:        Selects the SSS estimation algorithm. Can choose between
-#                       {full, partial, diff}.
-# estimator_fil_auto:   The channel estimator smooths the channel estimate with an adaptative filter.
-# estimator_fil_stddev: Sets the channel estimator smooth gaussian filter standard deviation.
-# estimator_fil_order:  Sets the channel estimator smooth gaussian filter order (even values perform better).
-#                       The taps are [w, 1-2w, w]
-#
-# snr_to_cqi_offset:    Sets an offset in the SNR to CQI table. This is used to adjust the reported CQI.
-#
-# pregenerate_signals:  Pregenerate uplink signals after attach. Improves CPU performance.
-#
-# interpolate_subframe_enabled: Interpolates in the time domain the channel estimates within 1 subframe. Default is to average.
-#
-# sic_pss_enabled:      Applies Successive Interference Cancellation to PSS signals when searching for neighbour cells.
-#                       Must be disabled if cells have identical channel and timing, for instance if generated from
-#                       the same source.
-#
-# pdsch_csi_enabled:     Stores the Channel State Information and uses it for weightening the softbits. It is only
-#                        used in TM1. It is True by default.
-#
-# pdsch_8bit_decoder:    Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental)
-# force_ul_amplitude:    Forces the peak amplitude in the PUCCH, PUSCH and SRS (set 0.0 to 1.0, set to 0 or negative for disabling)
-#
-#####################################################################
 [phy]
-#rx_gain_offset      = 62
-#prach_gain          = 30
-#cqi_max             = 15
-#cqi_fixed           = 10
-#snr_ema_coeff       = 0.1
-#snr_estim_alg       = refs
-#pdsch_max_its       = 8    # These are half iterations
 % if ue.rf_dev_type == 'zmq':
 nof_phy_threads     = 2
 % endif
-#equalizer_mode      = mmse
-#sfo_ema             = 0.1
-#sfo_correct_period  = 10
-#sss_algorithm       = full
-#estimator_fil_auto  = false
-#estimator_fil_stddev  = 1.0
-#estimator_fil_order  = 4
-#snr_to_cqi_offset   = 0.0
-#interpolate_subframe_enabled = false
-#sic_pss_enabled     = true
-#pregenerate_signals = false
-#pdsch_csi_enabled  = true
-#pdsch_8bit_decoder = false
 % if float(ue.force_ul_amplitude) > 0:
 force_ul_amplitude = ${ue.force_ul_amplitude}
 % endif
 
-#####################################################################
-# Simulation configuration options
-#
-# The UE simulation supports turning on and off airplane mode in the UE.
-# The actions are carried periodically until the UE is stopped.
-#
-# airplane_t_on_ms:   Time to leave airplane mode turned on (in ms)
-#
-# airplane_t_off_ms:  Time to leave airplane mode turned off (in ms)
-#
-#####################################################################
+
 [sim]
 airplane_t_on_ms  = ${ue.airplane_t_on_ms}
 airplane_t_off_ms = ${ue.airplane_t_off_ms}
 
-#####################################################################
-# General configuration options
-#
-# metrics_csv_enable:   Write UE metrics to CSV file.
-#
-# metrics_period_secs:  Sets the period at which metrics are requested from the UE.
-#
-# metrics_csv_filename: File path to use for CSV metrics.
-#
-#####################################################################
+
 [general]
 metrics_csv_enable  = true
-#metrics_period_secs = 1
 metrics_csv_filename = ${ue.metrics_filename}
 
 % if ue.rf_dev_type == 'zmq':
 [stack]
 have_tti_time_stats = false
-% endif
+% endif
\ No newline at end of file
