Hello everyone. I want, using documentation, to connect srsUE to srsENB and open5gs. Before that, I managed to connect COTS UE (One Plus 9). The phone managed to connect to the LTE network and was able to use the Internet. Now I want to connect srsUE, but I can't do it. UE detects PHY, but does not connect to the network
srsENB
```
Starting srsenb ... done
Opening 2 channels in RF device=soapy with args=rxant=LNAH,txant=BAND1
Soapy has found device #0: addr=1d50:6108, driver=lime, label=LimeSDR-USB [USB 3.0] 9081C05C4292E, media=USB 3.0, module=FX3, name=LimeSDR-USB, serial=0009081C05C4292E,
Selecting Soapy device: 0
Detected LimeSDR. Consider using LTE rates for better RF performance.
Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true'
[INFO] Make connection: 'LimeSDR-USB [USB 3.0] 9081C05C4292E'
[INFO] Reference clock 30.72 MHz
[INFO] Device name: LimeSDR-USB
[INFO] Reference: 30.72 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 2 channel(s)
Setting up Tx stream with 2 channel(s)
[INFO] RX LPF configured
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Available device sensors:
- clock_locked
- lms7_temp
Available sensors for Rx channel 0:
- lo_locked
Available sensors for Rx channel 1:
- lo_locked
Setting Rx channel 0 antenna to LNAH
Setting Rx channel 1 antenna to LNAH
Setting Tx channel 0 antenna to BAND1
Setting Tx channel 1 antenna to BAND1
State of gain elements for Rx channel 0 (AGC not supported):
- TIA: 9.00 dB
- LNA: 30.00 dB
- PGA: -7.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
- PAD: 0.00 dB
- IAMP: 0.00 dB
Rx antenna set to LNAH
Tx antenna set to BAND1
==== eNodeB started ===
Type to view trace
[INFO] RX LPF configured
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11.52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11.52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Setting frequency: DL=942.5 Mhz, UL=897.5 MHz for cc_idx=0 nof_prb=50
[INFO] Tx calibration finished
[INFO] Tx calibration finished
[INFO] Rx calibration finished
[INFO] Rx calibration finished
```
srsUE
```
Opening 1 channels in RF device=soapy with args=default
Supported RF device list: UHD soapy zmq file
Soapy has found device #0: addr=1d50:6108, driver=lime, label=LimeSDR-USB [USB 3.0] 90706024D2515, media=USB 3.0, module=FX3, name=LimeSDR-USB, serial=00090706024D2515,
Selecting Soapy device: 0
Detected LimeSDR. Consider using LTE rates for better RF performance.
Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true'
[INFO] Make connection: 'LimeSDR-USB [USB 3.0] 90706024D2515'
[INFO] Reference clock 30.72 MHz
[INFO] Device name: LimeSDR-USB
[INFO] Reference: 30.72 MHz
[INFO] LMS7002M register cache: Disabled
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
Available device sensors:
- clock_locked
- lms7_temp
Available sensors for Rx channel 0:
- lo_locked
State of gain elements for Rx channel 0 (AGC not supported):
- TIA: 9.00 dB
- LNA: 30.00 dB
- PGA: -7.00 dB
State of gain elements for Tx channel 0 (AGC not supported):
- PAD: 0.00 dB
- IAMP: 0.00 dB
Rx antenna set to LNAL
Tx antenna set to BAND1
Waiting PHY to initialize ... done!
Attaching UE...
Starting plot for worker_id=0
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[INFO] Tx calibration finished
[INFO] Rx calibration finished
.
Found Cell: Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=-0,1 KHz
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11,52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
RF status: O=0, U=0, L=1
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
.
Found Cell: Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=-0,2 KHz
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11,52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
[INFO] RX LPF configured
[INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active
[INFO] TX LPF configured
.
Found Cell: Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=0,2 KHz
```
Interesting note. srsUE finds the cell, but then nothing happens. What should be done in this situation?
Steps to reproduce the problem
Configs
databes (open5gs)
```
[{
"_id": {
"$oid": "630d99f79a163df784831075"
},
"imsi": "001010000001339",
"subscribed_rau_tau_timer": 12,
"network_access_mode": 0,
"subscriber_status": 0,
"access_restriction_data": 32,
"slice": [
{
"sst": 1,
"default_indicator": true,
"_id": {
"$oid": "62d511e515b346001610661c"
},
"session": [
{
"name": "internet",
"type": 1,
"_id": {
"$oid": "62d511e515b346001610661f"
},
"pcc_rule": [],
"ambr": {
"uplink": {
"value": 1,
"unit": 3
},
"downlink": {
"value": 1,
"unit": 3
}
},
"qos": {
"index": 9,
"arp": {
"priority_level": 8,
"pre_emption_capability": 1,
"pre_emption_vulnerability": 1
}
}
},
{
"name": "ims",
"type": 1,
"_id": {
"$oid": "62d511e515b346001610661d"
},
"pcc_rule": [
{
"_id": {
"$oid": "62d511e515b346001610661e"
},
"qos": {
"index": 1,
"gbr": {
"uplink": {
"value": 128,
"unit": 1
},
"downlink": {
"value": 128,
"unit": 1
}
},
"mbr": {
"uplink": {
"value": 128,
"unit": 1
},
"downlink": {
"value": 128,
"unit": 1
}
},
"arp": {
"priority_level": 2,
"pre_emption_capability": 2,
"pre_emption_vulnerability": 2
}
},
"flow": []
}
],
"ambr": {
"uplink": {
"value": 1530,
"unit": 1
},
"downlink": {
"value": 3850,
"unit": 1
}
},
"qos": {
"index": 5,
"arp": {
"priority_level": 1,
"pre_emption_capability": 1,
"pre_emption_vulnerability": 1
}
}
}
]
}
],
"ambr": {
"uplink": {
"value": 1,
"unit": 3
},
"downlink": {
"value": 1,
"unit": 3
}
},
"security": {
"k": "F17D97B3CABBB032A217E2D783F289A1",
"amf": "8000",
"op": "49EB0C86BDF39192AF90D327932FA9EE",
"opc": null,
"sqn": 128
},
"imeisv": "8601610559128512",
"msisdn": [
"1339"
],
"schema_version": 1,
"__v": 0
},{
"_id": {
"$oid": "630d99f79a163df784831076"
},
"imsi": "001010000001337",
"subscribed_rau_tau_timer": 12,
"network_access_mode": 0,
"subscriber_status": 0,
"access_restriction_data": 32,
"slice": [
{
"sst": 1,
"default_indicator": true,
"_id": {
"$oid": "62d50ddedb04480016b27ad7"
},
"session": [
{
"name": "internet",
"type": 1,
"_id": {
"$oid": "62d50ddedb04480016b27ada"
},
"pcc_rule": [],
"ambr": {
"uplink": {
"value": 1,
"unit": 3
},
"downlink": {
"value": 1,
"unit": 3
}
},
"qos": {
"index": 9,
"arp": {
"priority_level": 8,
"pre_emption_capability": 1,
"pre_emption_vulnerability": 1
}
}
},
{
"name": "ims",
"type": 1,
"_id": {
"$oid": "62d50ddedb04480016b27ad8"
},
"pcc_rule": [
{
"_id": {
"$oid": "62d50ddedb04480016b27ad9"
},
"qos": {
"index": 1,
"gbr": {
"uplink": {
"value": 128,
"unit": 1
},
"downlink": {
"value": 128,
"unit": 1
}
},
"mbr": {
"uplink": {
"value": 128,
"unit": 1
},
"downlink": {
"value": 128,
"unit": 1
}
},
"arp": {
"priority_level": 2,
"pre_emption_capability": 2,
"pre_emption_vulnerability": 2
}
},
"flow": []
}
],
"ambr": {
"uplink": {
"value": 1530,
"unit": 1
},
"downlink": {
"value": 3850,
"unit": 1
}
},
"qos": {
"index": 5,
"arp": {
"priority_level": 1,
"pre_emption_capability": 1,
"pre_emption_vulnerability": 1
}
}
}
]
}
],
"ambr": {
"uplink": {
"value": 1,
"unit": 3
},
"downlink": {
"value": 1,
"unit": 3
}
},
"security": {
"k": "A6896C6EA5749B67F3A07F7E7611997D",
"amf": "8000",
"op": "6692021D5D8BC4D43C9F8D557192F32D",
"opc": null,
"sqn": 256
},
"imeisv": "3523331147151901",
"msisdn": [
"1337"
],
"schema_version": 1,
"__v": 0
},{
"_id": {
"$oid": "630f1f61f2b4020016a419cd"
},
"imsi": "001010000001338",
"subscribed_rau_tau_timer": 12,
"network_access_mode": 0,
"subscriber_status": 0,
"access_restriction_data": 32,
"slice": [
{
"sst": 1,
"default_indicator": true,
"_id": {
"$oid": "630f1f61f2b4020016a419ce"
},
"session": [
{
"name": "internet",
"type": 1,
"_id": {
"$oid": "630f1f62f2b4020016a419cf"
},
"pcc_rule": [],
"ambr": {
"uplink": {
"value": 1,
"unit": 3
},
"downlink": {
"value": 1,
"unit": 3
}
},
"qos": {
"index": 9,
"arp": {
"priority_level": 8,
"pre_emption_capability": 1,
"pre_emption_vulnerability": 1
}
}
}
]
}
],
"ambr": {
"uplink": {
"value": 1,
"unit": 3
},
"downlink": {
"value": 1,
"unit": 3
}
},
"security": {
"k": "00112233445566778899aabbccddeeff",
"amf": "8000",
"op": null,
"opc": "63BFA50EE6523365FF14C1F45F88737D"
},
"imeisv": [],
"msisdn": [],
"schema_version": 1,
"__v": 0
}]
```
ue.conf
```
#####################################################################
# srsUE configuration file
#####################################################################
#####################################################################
# RF configuration
#
# 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
# srate: Optional fixed sampling rate (Hz), corresponding to cell bandwidth. Must be set for 5G-SA.
#
# nof_antennas: Number of antennas per carrier (all carriers have the same number of antennas)
# 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.
# continuous_tx: Transmit samples continuously to the radio or on bursts (auto/yes/no).
# Default is auto (yes for UHD, no for rest)
#####################################################################
[rf]
freq_offset = 0
tx_gain = 56
rx_gain = 38
#srate = 11.52e6
device_name = soapy
device_args = rxant=LNAH,txant=BAND1
nof_antennas = 1
# 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 = auto
#time_adv_nsamples = auto
#continuous_tx = auto
# Example for ZMQ-based operation with TCP transport for I/Q samples
#device_name = zmq
#device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6
#####################################################################
# EUTRA RAT configuration
#
# dl_earfcn: Downlink EARFCN list.
#
# Optional parameters:
# dl_freq: Override DL frequency corresponding to dl_earfcn
# ul_freq: Override UL frequency corresponding to dl_earfcn
# nof_carriers: Number of carriers
#####################################################################
[rat.eutra]
dl_earfcn = 3625
#nof_carriers = 2
#####################################################################
# NR RAT configuration
#
# Optional parameters:
# bands: List of support NR bands seperated by a comma (default 78)
# nof_carriers: Number of NR carriers (must be at least 1 for NR support)
#####################################################################
[rat.nr]
# bands = 78
# nof_carriers = 0
#####################################################################
# Packet capture configuration
#
# Packet capture is supported at the MAC, MAC_NR, and NAS layer.
# MAC-layer packets are captured to file a the compact format decoded
# by the Wireshark. For decoding, use the UDP dissector and the UDP
# heuristic dissection. Edit the preferences (Edit > Preferences >
# Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with
# Protocol=udp. Further, enable the heuristic dissection in UDP under:
# Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp
# For more information see: https://wiki.wireshark.org/MAC-LTE
# Using the same filename for mac_filename and mac_nr_filename writes both
# MAC-LTE and MAC-NR to the same file allowing a better analysis.
# NAS-layer packets are dissected with DLT=148, and Protocol = nas-eps.
#
# enable: Enable packet captures of layers (mac/mac_nr/nas/none) multiple option list
# mac_filename: File path to use for MAC packet capture
# mac_nr_filename: File path to use for MAC NR packet capture
# nas_filename: File path to use for NAS packet capture
#####################################################################
[pcap]
enable = none
mac_filename = /tmp/ue_mac.pcap
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, stack, 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 = none
phy_lib_level = info
all_hex_limit = 32
filename = /tmp/ue.log
file_max_size = -1
#####################################################################
# 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 = milenage
opc = 63BFA50EE6523365FF14C1F45F88737D
k = 00112233445566778899aabbccddeeff
imsi = 001010000001338
imei = 353490069873319
#reader =
#pin = 1234
#####################################################################
# RRC configuration
#
# ue_category: Sets UE category (range 1-5). Default: 4
# release: UE Release (8 to 15)
# 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
# nr_measurement_pci: NR PCI for the simulated NR measurement. Default: 500
# nr_short_sn_support: Announce PDCP short SN support. Default: true
#####################################################################
[rrc]
#ue_category = 4
#release = 8
#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, 3 - ZUC
# eea: List of ciphering algorithms included in UE capabilities
# Supported: 0 - NULL, 1 - Snow3G, 2 - AES, 3 - ZUC
#####################################################################
[nas]
apn = internet
apn_protocol = ipv4
#user = srsuser
#pass = srspass
#force_imsi_attach = true
#eia = 1,2,3
#eea = 0,1,2,3
#####################################################################
# 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 = true
#####################################################################
# Channel emulator options:
# enable: Enable/Disable internal Downlink/Uplink channel emulator
#
# -- AWGN Generator
# awgn.enable: Enable/disable AWGN generator
# awgn.snr: SNR in dB
# awgn.signal_power: Received signal power in decibels full scale (dBfs)
#
# -- 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.awgn]
#enable = false
#snr = 30
[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.awgn]
#enable = false
#n0 = -30
[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)
# pdsch_meas_evm: Measure PDSCH EVM, increases CPU load (default false)
# 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.
# correct_sync_error: Channel estimator measures and pre-compensates time synchronization error. Increases CPU usage,
# improves PDSCH decoding in high SFO and high speed UE scenarios.
# 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.
#
# interpolate_subframe_enabled: Interpolates in the time domain the channel estimates within 1 subframe. Default is to average.
#
# 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)
#
# in_sync_rsrp_dbm_th: RSRP threshold (in dBm) above which the UE considers to be in-sync
# in_sync_snr_db_th: SNR threshold (in dB) above which the UE considers to be in-sync
# nof_in_sync_events: Number of PHY in-sync events before sending an in-sync event to RRC
# nof_out_of_sync_events: Number of PHY out-sync events before sending an out-sync event to RRC
#
# force_N_id_2: Force using a specific PSS (set to -1 to allow all PSSs).
# force_N_id_1: Force using a specific SSS (set to -1 to allow all SSSs).
#
#####################################################################
[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
#pdsch_meas_evm = false
nof_phy_threads = 4
#equalizer_mode = mmse
#correct_sync_error = false
#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
#pdsch_csi_enabled = true
#pdsch_8bit_decoder = false
#force_ul_amplitude = 0
#detect_cp = false
#in_sync_rsrp_dbm_th = -130.0
#in_sync_snr_db_th = 3.0
#nof_in_sync_events = 10
#nof_out_of_sync_events = 20
#force_N_id_2 = 1
#force_N_id_1 = 10
#####################################################################
# PHY NR specific configuration options
#
# store_pdsch_ko: Dumps the PDSCH baseband samples into a file on KO reception
#
#####################################################################
[phy.nr]
#store_pdsch_ko = false
#####################################################################
# CFR configuration options
#
# The CFR module provides crest factor reduction for the transmitted signal.
#
# enable: Enable or disable the CFR. Default: disabled
#
# mode: manual: CFR threshold is set by cfr_manual_thres (default).
# auto_ema: CFR threshold is adaptive based on the signal PAPR. Power avg. with Exponential Moving Average.
# The time constant of the averaging can be tweaked with the ema_alpha parameter.
# auto_cma: CFR threshold is adaptive based on the signal PAPR. Power avg. with Cumulative Moving Average.
# Use with care, as CMA's increasingly slow response may be unsuitable for most use cases.
#
# strength: Ratio between amplitude-limited vs unprocessed signal (0 to 1). Default: 1
# manual_thres: Fixed manual clipping threshold for CFR manual mode. Default: 2
# auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 7
# ema_alpha: Alpha coefficient for the power average in auto_ema mode. Default: 1/7
#
#####################################################################
[cfr]
#enable = false
#mode = manual
#manual_thres = 2.0
#strength = 1.0
#auto_target_papr = 7.0
#ema_alpha = 0.0143
#####################################################################
# 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 = -1
#airplane_t_off_ms = -1
#####################################################################
# 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.
#
# tracing_enable: Write source code tracing information to a file.
#
# tracing_filename: File path to use for tracing information.
#
# tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store.
#
# have_tti_time_stats: Calculate TTI execution statistics using system clock
#
# metrics_json_enable: Write UE metrics to JSON file.
#
# metrics_json_filename: File path to use for JSON metrics.
#
#####################################################################
[general]
#metrics_csv_enable = false
#metrics_period_secs = 1
#metrics_csv_filename = /tmp/ue_metrics.csv
#have_tti_time_stats = true
#tracing_enable = true
#tracing_filename = /tmp/ue_tracing.log
#tracing_buffcapacity = 1000000
#metrics_json_enable = false
#metrics_json_filename = /tmp/ue_metrics.json
```
enb.conf
```
#####################################################################
# srsENB configuration file
#####################################################################
#####################################################################
# eNB configuration
#
# enb_id: 20-bit eNB identifier.
# mcc: Mobile Country Code
# mnc: Mobile Network Code
# mme_addr: IP address of MME for S1 connnection
# gtp_bind_addr: Local IP address to bind for GTP connection
# gtp_advertise_addr: IP address of eNB to advertise for DL GTP-U Traffic
# s1c_bind_addr: Local IP address to bind for S1AP connection
# n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100)
# tm: Transmission mode 1-4 (TM1 default)
# nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4)
#
#####################################################################
[enb]
enb_id = 0x19B
mcc = MCC
mnc = MNC
mme_addr = MME_IP
gtp_bind_addr = SRS_ENB_IP
s1c_bind_addr = SRS_ENB_IP
n_prb = 50
tm = 4
nof_ports = 2
#####################################################################
# eNB configuration files
#
# sib_config: SIB1, SIB2 and SIB3 configuration file
# note: when enabling mbms, use the sib.conf.mbsfn configuration file which includes SIB13
# rr_config: Radio Resources configuration file
# drb_config: DRB configuration file
#####################################################################
[enb_files]
sib_config = sib.conf
rr_config = rr.conf
drb_config = drb.conf
#####################################################################
# RF configuration
#
# dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf)
# 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 (must be set if dl_freq is set)
# device_name: Device driver family.
# Supported options: "auto" (uses first found), "UHD", "bladeRF", "soapy" or "zmq".
# 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: ""
# 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.
#####################################################################
[rf]
dl_earfcn = 3625
tx_gain = 56
rx_gain = 38
device_name = soapy
device_args = rxant=LNAH,txant=BAND1
# 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
# And for 75 PRBs, also append ",master_clock_rate=15.36e6" to the device args
# 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 = auto
#time_adv_nsamples = auto
# Example for ZMQ-based operation with TCP transport for I/Q samples
#device_name = zmq
#device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
#####################################################################
# Packet capture configuration
#
# MAC-layer packets are captured to file a the compact format decoded
# by the Wireshark. For decoding, use the UDP dissector and the UDP
# heuristic dissection. Edit the preferences (Edit > Preferences >
# Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with
# Protocol=udp. Further, enable the heuristic dissection in UDP under:
# Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp
# For more information see: https://wiki.wireshark.org/MAC-LTE
# Configuring this Wireshark preferences is needed for decoding the MAC PCAP
# files as well as for the live network capture option.
#
# Please note that this setting will by default only capture MAC
# frames on dedicated channels, and not SIB. You have to build with
# WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want
# SIB to be part of the MAC pcap file.
#
# S1AP Packets are captured to file in the compact format decoded by
# the Wireshark s1ap dissector and with DLT 150.
# To use the dissector, edit the preferences for DLT_USER to
# add an entry with DLT=150, Payload Protocol=s1ap.
#
# mac_enable: Enable MAC layer packet captures (true/false)
# mac_filename: File path to use for packet captures
# s1ap_enable: Enable or disable the PCAP.
# s1ap_filename: File name where to save the PCAP.
#
# mac_net_enable: Enable MAC layer packet captures sent over the network (true/false default: false)
# bind_ip: Bind IP address for MAC network trace (default: "0.0.0.0")
# bind_port: Bind port for MAC network trace (default: 5687)
# client_ip: Client IP address for MAC network trace (default "127.0.0.1")
# client_port Client IP address for MAC network trace (default: 5847)
#####################################################################
[pcap]
#enable = false
#filename = /tmp/enb.pcap
#s1ap_enable = false
#s1ap_filename = /tmp/enb_s1ap.pcap
#mac_net_enable = false
#bind_ip = 0.0.0.0
#bind_port = 5687
#client_ip = 127.0.0.1
#client_port = 5847
#####################################################################
# 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, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, 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 = warning
all_hex_limit = 32
filename = /tmp/enb.log
file_max_size = -1
[gui]
enable = false
#####################################################################
# Scheduler configuration options
#
# sched_policy: User MAC scheduling policy (E.g. time_rr, time_pf)
# max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
# pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified)
# pdsch_max_mcs: Optional PDSCH MCS limit
# pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified)
# pusch_max_mcs: Optional PUSCH MCS limit
# min_nof_ctrl_symbols: Minimum number of control symbols
# max_nof_ctrl_symbols: Maximum number of control symbols
#
#####################################################################
[scheduler]
#policy = time_pf
#policy_args = 2
#max_aggr_level = -1
#pdsch_mcs = -1
#pdsch_max_mcs = -1
#pusch_mcs = -1
#pusch_max_mcs = 16
#min_nof_ctrl_symbols = 1
#max_nof_ctrl_symbols = 3
#pucch_multiplex_enable = false
#####################################################################
# eMBMS configuration options
#
# enable: Enable MBMS transmission in the eNB
# m1u_multiaddr: Multicast addres the M1-U socket will register to
# m1u_if_addr: Address of the inteferface the M1-U interface will listen for multicast packets.
# mcs: Modulation and Coding scheme for MBMS traffic.
#
#####################################################################
[embms]
#enable = false
#m1u_multiaddr = 239.255.0.1
#m1u_if_addr = 127.0.1.201
#mcs = 20
#####################################################################
# Channel emulator options:
# enable: Enable/Disable internal Downlink/Uplink channel emulator
#
# -- AWGN Generator
# awgn.enable: Enable/disable AWGN generator
# awgn.snr: Target SNR in dB
#
# -- 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.awgn]
#enable = false
#snr = 30
[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.awgn]
#enable = false
#n0 = -30
[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
#####################################################################
# Expert configuration options
#
# pusch_max_its: Maximum number of turbo decoder iterations (Default 4)
# pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental)
# nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 3)
# metrics_period_secs: Sets the period at which metrics are requested from the eNB.
# metrics_csv_enable: Write eNB metrics to CSV file.
# metrics_csv_filename: File path to use for CSV metrics.
# tracing_enable: Write source code tracing information to a file.
# tracing_filename: File path to use for tracing information.
# tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store.
# pregenerate_signals: Pregenerate uplink signals after attach. Improves CPU performance.
# tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)
# rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds).
# max_prach_offset_us: Maximum allowed RACH offset (in us)
# nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (Default 8)
# eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1).
# eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0).
#
#####################################################################
[expert]
#pusch_max_its = 8 # These are half iterations
#pusch_8bit_decoder = false
#nof_phy_threads = 3
#metrics_period_secs = 1
#metrics_csv_enable = false
#metrics_csv_filename = /tmp/enb_metrics.csv
#report_json_enable = true
#report_json_filename = /tmp/enb_report.json
#alarms_log_enable = true
#alarms_filename = /tmp/enb_alarms.log
#tracing_enable = true
#tracing_filename = /tmp/enb_tracing.log
#tracing_buffcapacity = 1000000
#pregenerate_signals = false
#tx_amplitude = 0.6
#rrc_inactivity_timer = 30000
#max_nof_kos = 100
#max_prach_offset_us = 30
#nof_prealloc_ues = 8
#eea_pref_list = EEA0, EEA2, EEA1
#eia_pref_list = EIA2, EIA1, EIA0
```
rr.conf
```
mac_cnfg =
{
phr_cnfg =
{
dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY
periodic_phr_timer = 50;
prohibit_phr_timer = 0;
};
ulsch_cnfg =
{
max_harq_tx = 4;
periodic_bsr_timer = 20; // in ms
retx_bsr_timer = 320; // in ms
};
time_alignment_timer = -1; // -1 is infinity
};
phy_cnfg =
{
phich_cnfg =
{
duration = "Normal";
resources = "1/6";
};
pusch_cnfg_ded =
{
beta_offset_ack_idx = 6;
beta_offset_ri_idx = 6;
beta_offset_cqi_idx = 6;
};
// PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource.
sched_request_cnfg =
{
dsr_trans_max = 64;
period = 20; // in ms
//subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all)
nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number)
};
cqi_report_cnfg =
{
mode = "periodic";
simultaneousAckCQI = true;
period = 40; // in ms
//subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all)
nof_prb = 1;
m_ri = 8; // RI period in CQI period
};
};
cell_list =
(
{
// rf_port = 0;
cell_id = 0x01;
tac = 0x0001;
pci = 1;
// root_seq_idx = 204;
dl_earfcn = 3625;
//ul_earfcn = 21400;
ho_active = false;
//meas_gap_period = 0; // 0 (inactive), 40 or 80
// target_pusch_sinr = -1;
// target_pucch_sinr = -1;
// allowed_meas_bw = 6;
// CA cells
scell_list = (
// {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true}
)
// Cells available for handover
meas_cell_list =
(
{
eci = 0x19C02;
dl_earfcn = 2850;
pci = 2;
//direct_forward_path_available = false;
//allowed_meas_bw = 6;
}
);
// ReportCfg (only A3 supported)
meas_report_desc = {
a3_report_type = "RSRP";
a3_offset = 6;
a3_hysteresis = 0;
a3_time_to_trigger = 480;
rsrq_config = 4;
};
}
// Add here more cells
);
```
rb.conf
```
// All times are in ms. Use -1 for infinity, where available
// 4G Section
// srb1_config = {
// rlc_config = {
// ul_am = {
// t_poll_retx = 45;
// poll_pdu = -1;
// poll_byte = -1;
// max_retx_thresh = 4;
// };
// dl_am = {
// t_reordering = 35;
// t_status_prohibit = 0;
// };
// enb_specific = {
// dl_max_retx_thresh = 32;
// };
// };
// }
// srb2_config = {
// rlc_config = {
// ul_am = {
// t_poll_retx = 45;
// poll_pdu = -1;
// poll_byte = -1;
// max_retx_thresh = 4;
// };
// dl_am = {
// t_reordering = 35;
// t_status_prohibit = 0;
// };
// enb_specific = {
// dl_max_retx_thresh = 32;
// };
// };
// }
qci_config = (
{
qci=1;
pdcp_config = {
discard_timer = 100;
pdcp_sn_size = 12;
}
rlc_config = {
ul_um = {
sn_field_length = 10;
};
dl_um = {
sn_field_length = 10;
t_reordering = 50;
};
};
logical_channel_config = {
priority = 2;
prioritized_bit_rate = -1;
bucket_size_duration = 100;
log_chan_group = 1;
};
enb_specific = {
dl_max_retx_thresh = 32;
};
},
{
qci=2;
pdcp_config = {
discard_timer = 100;
pdcp_sn_size = 12;
}
rlc_config = {
ul_um = {
sn_field_length = 10;
};
dl_um = {
sn_field_length = 10;
t_reordering = 50;
};
};
logical_channel_config = {
priority = 4;
prioritized_bit_rate = -1;
bucket_size_duration = 100;
log_chan_group = 1;
};
enb_specific = {
dl_max_retx_thresh = 32;
};
},
{
qci=5;
pdcp_config = {
discard_timer = -1;
status_report_required = true;
}
rlc_config = {
ul_am = {
t_poll_retx = 80;
poll_pdu = 128;
poll_byte = 125;
max_retx_thresh = 4;
};
dl_am = {
t_reordering = 80;
t_status_prohibit = 60;
};
};
logical_channel_config = {
priority = 11;
prioritized_bit_rate = -1;
bucket_size_duration = 100;
log_chan_group = 2;
};
enb_specific = {
dl_max_retx_thresh = 32;
};
},
{
qci = 7;
pdcp_config = {
discard_timer = -1;
pdcp_sn_size = 12;
}
rlc_config = {
ul_um = {
sn_field_length = 10;
};
dl_um = {
sn_field_length = 10;
t_reordering = 45;
};
};
logical_channel_config = {
priority = 13;
prioritized_bit_rate = -1;
bucket_size_duration = 100;
log_chan_group = 2;
};
enb_specific = {
dl_max_retx_thresh = 32;
};
},
{
qci = 9;
pdcp_config = {
discard_timer = 150;
status_report_required = true;
}
rlc_config = {
ul_am = {
t_poll_retx = 120;
poll_pdu = 64;
poll_byte = 750;
max_retx_thresh = 16;
};
dl_am = {
t_reordering = 50;
t_status_prohibit = 50;
};
};
logical_channel_config = {
priority = 11;
prioritized_bit_rate = -1;
bucket_size_duration = 100;
log_chan_group = 3;
};
enb_specific = {
dl_max_retx_thresh = 32;
};
}
);
// 5G Section
five_qi_config = (
{
five_qi = 7;
pdcp_nr_config = {
drb = {
discard_timer = 50;
pdcp_sn_size_ul = 18;
pdcp_sn_size_dl = 18;
};
t_reordering = 50;
};
rlc_config = {
um_bi_dir = {
ul_um = {
sn_field_len = 12;
};
dl_um = {
sn_field_len = 12;
t_reassembly = 50;
};
};
};
},
{
five_qi = 9;
pdcp_nr_config = {
drb = {
discard_timer = 50;
pdcp_sn_size_ul = 18;
pdcp_sn_size_dl = 18;
};
t_reordering = 50;
};
rlc_config = {
am = {
ul_am = {
sn_field_len = 12;
t_poll_retx = 50;
poll_pdu = 4;
poll_byte = 3000;
max_retx_thres = 4;
};
dl_am = {
sn_field_len = 12;
t_reassembly = 50;
t_status_prohibit = 50;
};
};
};
}
);
```
sib.conf
```
sib1 =
{
intra_freq_reselection = "Allowed";
q_rx_lev_min = -65;
//p_max = 3;
cell_barred = "NotBarred"
si_window_length = 20;
sched_info =
(
{
si_periodicity = 16;
// comma-separated array of SIB-indexes (from 3 to 13), leave empty or commented to just scheduler sib2
si_mapping_info = [ 3 ];
}
);
system_info_value_tag = 0;
};
sib2 =
{
rr_config_common_sib =
{
rach_cnfg =
{
num_ra_preambles = 52;
preamble_init_rx_target_pwr = -104;
pwr_ramping_step = 6; // in dB
preamble_trans_max = 10;
ra_resp_win_size = 10; // in ms
mac_con_res_timer = 64; // in ms
max_harq_msg3_tx = 4;
};
bcch_cnfg =
{
modification_period_coeff = 16; // in ms
};
pcch_cnfg =
{
default_paging_cycle = 32; // in rf
nB = "1";
};
prach_cnfg =
{
root_sequence_index = 128;
prach_cnfg_info =
{
high_speed_flag = false;
prach_config_index = 3;
// prach_freq_offset = 4;
prach_freq_offset = 4;
zero_correlation_zone_config = 5;
};
};
pdsch_cnfg =
{
/* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1
*/
p_b = 1;
rs_power = 0;
};
pusch_cnfg =
{
n_sb = 1;
hopping_mode = "inter-subframe";
pusch_hopping_offset = 2;
enable_64_qam = false; // 64QAM PUSCH is not currently enabled
ul_rs =
{
cyclic_shift = 0;
group_assignment_pusch = 0;
group_hopping_enabled = false;
sequence_hopping_enabled = false;
};
};
pucch_cnfg =
{
delta_pucch_shift = 1;
n_rb_cqi = 1;
n_cs_an = 0;
n1_pucch_an = 12;
};
ul_pwr_ctrl =
{
p0_nominal_pusch = -85;
alpha = 0.7;
p0_nominal_pucch = -107;
delta_flist_pucch =
{
format_1 = 0;
format_1b = 3;
format_2 = 1;
format_2a = 2;
format_2b = 2;
};
delta_preamble_msg3 = 6;
};
ul_cp_length = "len1";
};
ue_timers_and_constants =
{
t300 = 2000; // in ms
t301 = 100; // in ms
t310 = 200; // in ms
n310 = 1;
t311 = 10000; // in ms
n311 = 1;
};
freqInfo =
{
ul_carrier_freq_present = true;
ul_bw_present = true;
additional_spectrum_emission = 1;
};
time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc.
};
sib3 =
{
cell_reselection_common = {
q_hyst = 2; // in dB
},
cell_reselection_serving = {
s_non_intra_search = 3,
thresh_serving_low = 2,
cell_resel_prio = 6
},
intra_freq_reselection = {
q_rx_lev_min = -61,
p_max = 23,
s_intra_search = 5,
presence_ant_port_1 = true,
neigh_cell_cnfg = 1,
t_resel_eutra = 1
}
};
#####################################################################
# sib7 configuration options (See TS 36.331)
# Contains GERAN neighbor information for CSFB and inter-rat handover.
# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted
#
# t_resel_geran: Cell reselection timer (seconds)
# carrier_freqs_info_list: A list of carrier frequency groups.
# cell_resel_prio: Absolute priority of the carrier frequency group
# ncc_permitted: 8-bit bitmap of NCC carriers permitted for monitoring
# q_rx_lev_min: Minimum receive level in gsm cell, ([field_val] * 2) - 115 = [level in dBm]
# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency
# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency
# start_arfcn: Initial search ARFCN value
# band_ind: One of "dcs1800" or "pcs1900" Disambiguates ARFCNs in these bands, has no meaning for other ARFCNs.
# explicit_list_of_arfcns: List of ARFCN numbers in the group
#
#####################################################################
sib7 =
{
t_resel_geran = 1;
carrier_freqs_info_list =
(
{
cell_resel_prio = 0;
ncc_permitted = 255;
q_rx_lev_min = 0;
thresh_x_high = 2;
thresh_x_low = 2;
start_arfcn = 871;
band_ind = "dcs1800";
explicit_list_of_arfcns = (
871
);
}
);
};
```
Issue Description
Hello everyone. I want, using documentation, to connect srsUE to srsENB and open5gs. Before that, I managed to connect COTS UE (One Plus 9). The phone managed to connect to the LTE network and was able to use the Internet. Now I want to connect srsUE, but I can't do it. UE detects PHY, but does not connect to the network
Setup Details
Actual Behaviour
Logs
srsENB
``` Starting srsenb ... done Opening 2 channels in RF device=soapy with args=rxant=LNAH,txant=BAND1 Soapy has found device #0: addr=1d50:6108, driver=lime, label=LimeSDR-USB [USB 3.0] 9081C05C4292E, media=USB 3.0, module=FX3, name=LimeSDR-USB, serial=0009081C05C4292E, Selecting Soapy device: 0 Detected LimeSDR. Consider using LTE rates for better RF performance. Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true' [INFO] Make connection: 'LimeSDR-USB [USB 3.0] 9081C05C4292E' [INFO] Reference clock 30.72 MHz [INFO] Device name: LimeSDR-USB [INFO] Reference: 30.72 MHz [INFO] LMS7002M register cache: Disabled Setting up Rx stream with 2 channel(s) Setting up Tx stream with 2 channel(s) [INFO] RX LPF configured [INFO] RX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active [INFO] TX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active [INFO] TX LPF configured Available device sensors: - clock_locked - lms7_temp Available sensors for Rx channel 0: - lo_locked Available sensors for Rx channel 1: - lo_locked Setting Rx channel 0 antenna to LNAH Setting Rx channel 1 antenna to LNAH Setting Tx channel 0 antenna to BAND1 Setting Tx channel 1 antenna to BAND1 State of gain elements for Rx channel 0 (AGC not supported): - TIA: 9.00 dB - LNA: 30.00 dB - PGA: -7.00 dB State of gain elements for Tx channel 0 (AGC not supported): - PAD: 0.00 dB - IAMP: 0.00 dB Rx antenna set to LNAH Tx antenna set to BAND1 ==== eNodeB started === TypesrsUE
``` Opening 1 channels in RF device=soapy with args=default Supported RF device list: UHD soapy zmq file Soapy has found device #0: addr=1d50:6108, driver=lime, label=LimeSDR-USB [USB 3.0] 90706024D2515, media=USB 3.0, module=FX3, name=LimeSDR-USB, serial=00090706024D2515, Selecting Soapy device: 0 Detected LimeSDR. Consider using LTE rates for better RF performance. Either compile with '-DUSE_LTE_RATES=True' or start srsENB/srsUE with '--expert.lte_sample_rates=true' [INFO] Make connection: 'LimeSDR-USB [USB 3.0] 90706024D2515' [INFO] Reference clock 30.72 MHz [INFO] Device name: LimeSDR-USB [INFO] Reference: 30.72 MHz [INFO] LMS7002M register cache: Disabled Setting up Rx stream with 1 channel(s) Setting up Tx stream with 1 channel(s) [INFO] RX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active [INFO] TX LPF configured Available device sensors: - clock_locked - lms7_temp Available sensors for Rx channel 0: - lo_locked State of gain elements for Rx channel 0 (AGC not supported): - TIA: 9.00 dB - LNA: 30.00 dB - PGA: -7.00 dB State of gain elements for Tx channel 0 (AGC not supported): - PAD: 0.00 dB - IAMP: 0.00 dB Rx antenna set to LNAL Tx antenna set to BAND1 Waiting PHY to initialize ... done! Attaching UE... Starting plot for worker_id=0 QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' [INFO] Tx calibration finished [INFO] Rx calibration finished . Found Cell: Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=-0,1 KHz [INFO] RX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11,52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active [INFO] TX LPF configured RF status: O=0, U=0, L=1 [INFO] RX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active [INFO] TX LPF configured . Found Cell: Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=-0,2 KHz [INFO] RX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 11,52 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active [INFO] TX LPF configured [INFO] RX LPF configured [INFO] Filter calibrated. Filter order-4th, filter bandwidth set to 5 MHz.Real pole 1st order filter set to 2.5 MHz. Preemphasis filter not active [INFO] TX LPF configured . Found Cell: Mode=FDD, PCI=1, PRB=50, Ports=2, CP=Normal, CFO=0,2 KHz ```Interesting note. srsUE finds the cell, but then nothing happens. What should be done in this situation?
Steps to reproduce the problem
Configs
databes (open5gs)
``` [{ "_id": { "$oid": "630d99f79a163df784831075" }, "imsi": "001010000001339", "subscribed_rau_tau_timer": 12, "network_access_mode": 0, "subscriber_status": 0, "access_restriction_data": 32, "slice": [ { "sst": 1, "default_indicator": true, "_id": { "$oid": "62d511e515b346001610661c" }, "session": [ { "name": "internet", "type": 1, "_id": { "$oid": "62d511e515b346001610661f" }, "pcc_rule": [], "ambr": { "uplink": { "value": 1, "unit": 3 }, "downlink": { "value": 1, "unit": 3 } }, "qos": { "index": 9, "arp": { "priority_level": 8, "pre_emption_capability": 1, "pre_emption_vulnerability": 1 } } }, { "name": "ims", "type": 1, "_id": { "$oid": "62d511e515b346001610661d" }, "pcc_rule": [ { "_id": { "$oid": "62d511e515b346001610661e" }, "qos": { "index": 1, "gbr": { "uplink": { "value": 128, "unit": 1 }, "downlink": { "value": 128, "unit": 1 } }, "mbr": { "uplink": { "value": 128, "unit": 1 }, "downlink": { "value": 128, "unit": 1 } }, "arp": { "priority_level": 2, "pre_emption_capability": 2, "pre_emption_vulnerability": 2 } }, "flow": [] } ], "ambr": { "uplink": { "value": 1530, "unit": 1 }, "downlink": { "value": 3850, "unit": 1 } }, "qos": { "index": 5, "arp": { "priority_level": 1, "pre_emption_capability": 1, "pre_emption_vulnerability": 1 } } } ] } ], "ambr": { "uplink": { "value": 1, "unit": 3 }, "downlink": { "value": 1, "unit": 3 } }, "security": { "k": "F17D97B3CABBB032A217E2D783F289A1", "amf": "8000", "op": "49EB0C86BDF39192AF90D327932FA9EE", "opc": null, "sqn": 128 }, "imeisv": "8601610559128512", "msisdn": [ "1339" ], "schema_version": 1, "__v": 0 },{ "_id": { "$oid": "630d99f79a163df784831076" }, "imsi": "001010000001337", "subscribed_rau_tau_timer": 12, "network_access_mode": 0, "subscriber_status": 0, "access_restriction_data": 32, "slice": [ { "sst": 1, "default_indicator": true, "_id": { "$oid": "62d50ddedb04480016b27ad7" }, "session": [ { "name": "internet", "type": 1, "_id": { "$oid": "62d50ddedb04480016b27ada" }, "pcc_rule": [], "ambr": { "uplink": { "value": 1, "unit": 3 }, "downlink": { "value": 1, "unit": 3 } }, "qos": { "index": 9, "arp": { "priority_level": 8, "pre_emption_capability": 1, "pre_emption_vulnerability": 1 } } }, { "name": "ims", "type": 1, "_id": { "$oid": "62d50ddedb04480016b27ad8" }, "pcc_rule": [ { "_id": { "$oid": "62d50ddedb04480016b27ad9" }, "qos": { "index": 1, "gbr": { "uplink": { "value": 128, "unit": 1 }, "downlink": { "value": 128, "unit": 1 } }, "mbr": { "uplink": { "value": 128, "unit": 1 }, "downlink": { "value": 128, "unit": 1 } }, "arp": { "priority_level": 2, "pre_emption_capability": 2, "pre_emption_vulnerability": 2 } }, "flow": [] } ], "ambr": { "uplink": { "value": 1530, "unit": 1 }, "downlink": { "value": 3850, "unit": 1 } }, "qos": { "index": 5, "arp": { "priority_level": 1, "pre_emption_capability": 1, "pre_emption_vulnerability": 1 } } } ] } ], "ambr": { "uplink": { "value": 1, "unit": 3 }, "downlink": { "value": 1, "unit": 3 } }, "security": { "k": "A6896C6EA5749B67F3A07F7E7611997D", "amf": "8000", "op": "6692021D5D8BC4D43C9F8D557192F32D", "opc": null, "sqn": 256 }, "imeisv": "3523331147151901", "msisdn": [ "1337" ], "schema_version": 1, "__v": 0 },{ "_id": { "$oid": "630f1f61f2b4020016a419cd" }, "imsi": "001010000001338", "subscribed_rau_tau_timer": 12, "network_access_mode": 0, "subscriber_status": 0, "access_restriction_data": 32, "slice": [ { "sst": 1, "default_indicator": true, "_id": { "$oid": "630f1f61f2b4020016a419ce" }, "session": [ { "name": "internet", "type": 1, "_id": { "$oid": "630f1f62f2b4020016a419cf" }, "pcc_rule": [], "ambr": { "uplink": { "value": 1, "unit": 3 }, "downlink": { "value": 1, "unit": 3 } }, "qos": { "index": 9, "arp": { "priority_level": 8, "pre_emption_capability": 1, "pre_emption_vulnerability": 1 } } } ] } ], "ambr": { "uplink": { "value": 1, "unit": 3 }, "downlink": { "value": 1, "unit": 3 } }, "security": { "k": "00112233445566778899aabbccddeeff", "amf": "8000", "op": null, "opc": "63BFA50EE6523365FF14C1F45F88737D" }, "imeisv": [], "msisdn": [], "schema_version": 1, "__v": 0 }] ```ue.conf
``` ##################################################################### # srsUE configuration file ##################################################################### ##################################################################### # RF configuration # # 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 # srate: Optional fixed sampling rate (Hz), corresponding to cell bandwidth. Must be set for 5G-SA. # # nof_antennas: Number of antennas per carrier (all carriers have the same number of antennas) # 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. # continuous_tx: Transmit samples continuously to the radio or on bursts (auto/yes/no). # Default is auto (yes for UHD, no for rest) ##################################################################### [rf] freq_offset = 0 tx_gain = 56 rx_gain = 38 #srate = 11.52e6 device_name = soapy device_args = rxant=LNAH,txant=BAND1 nof_antennas = 1 # 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 = auto #time_adv_nsamples = auto #continuous_tx = auto # Example for ZMQ-based operation with TCP transport for I/Q samples #device_name = zmq #device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6 ##################################################################### # EUTRA RAT configuration # # dl_earfcn: Downlink EARFCN list. # # Optional parameters: # dl_freq: Override DL frequency corresponding to dl_earfcn # ul_freq: Override UL frequency corresponding to dl_earfcn # nof_carriers: Number of carriers ##################################################################### [rat.eutra] dl_earfcn = 3625 #nof_carriers = 2 ##################################################################### # NR RAT configuration # # Optional parameters: # bands: List of support NR bands seperated by a comma (default 78) # nof_carriers: Number of NR carriers (must be at least 1 for NR support) ##################################################################### [rat.nr] # bands = 78 # nof_carriers = 0 ##################################################################### # Packet capture configuration # # Packet capture is supported at the MAC, MAC_NR, and NAS layer. # MAC-layer packets are captured to file a the compact format decoded # by the Wireshark. For decoding, use the UDP dissector and the UDP # heuristic dissection. Edit the preferences (Edit > Preferences > # Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with # Protocol=udp. Further, enable the heuristic dissection in UDP under: # Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp # For more information see: https://wiki.wireshark.org/MAC-LTE # Using the same filename for mac_filename and mac_nr_filename writes both # MAC-LTE and MAC-NR to the same file allowing a better analysis. # NAS-layer packets are dissected with DLT=148, and Protocol = nas-eps. # # enable: Enable packet captures of layers (mac/mac_nr/nas/none) multiple option list # mac_filename: File path to use for MAC packet capture # mac_nr_filename: File path to use for MAC NR packet capture # nas_filename: File path to use for NAS packet capture ##################################################################### [pcap] enable = none mac_filename = /tmp/ue_mac.pcap 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, stack, 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 = none phy_lib_level = info all_hex_limit = 32 filename = /tmp/ue.log file_max_size = -1 ##################################################################### # 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 = milenage opc = 63BFA50EE6523365FF14C1F45F88737D k = 00112233445566778899aabbccddeeff imsi = 001010000001338 imei = 353490069873319 #reader = #pin = 1234 ##################################################################### # RRC configuration # # ue_category: Sets UE category (range 1-5). Default: 4 # release: UE Release (8 to 15) # 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 # nr_measurement_pci: NR PCI for the simulated NR measurement. Default: 500 # nr_short_sn_support: Announce PDCP short SN support. Default: true ##################################################################### [rrc] #ue_category = 4 #release = 8 #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, 3 - ZUC # eea: List of ciphering algorithms included in UE capabilities # Supported: 0 - NULL, 1 - Snow3G, 2 - AES, 3 - ZUC ##################################################################### [nas] apn = internet apn_protocol = ipv4 #user = srsuser #pass = srspass #force_imsi_attach = true #eia = 1,2,3 #eea = 0,1,2,3 ##################################################################### # 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 = true ##################################################################### # Channel emulator options: # enable: Enable/Disable internal Downlink/Uplink channel emulator # # -- AWGN Generator # awgn.enable: Enable/disable AWGN generator # awgn.snr: SNR in dB # awgn.signal_power: Received signal power in decibels full scale (dBfs) # # -- 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.awgn] #enable = false #snr = 30 [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.awgn] #enable = false #n0 = -30 [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) # pdsch_meas_evm: Measure PDSCH EVM, increases CPU load (default false) # 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. # correct_sync_error: Channel estimator measures and pre-compensates time synchronization error. Increases CPU usage, # improves PDSCH decoding in high SFO and high speed UE scenarios. # 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. # # interpolate_subframe_enabled: Interpolates in the time domain the channel estimates within 1 subframe. Default is to average. # # 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) # # in_sync_rsrp_dbm_th: RSRP threshold (in dBm) above which the UE considers to be in-sync # in_sync_snr_db_th: SNR threshold (in dB) above which the UE considers to be in-sync # nof_in_sync_events: Number of PHY in-sync events before sending an in-sync event to RRC # nof_out_of_sync_events: Number of PHY out-sync events before sending an out-sync event to RRC # # force_N_id_2: Force using a specific PSS (set to -1 to allow all PSSs). # force_N_id_1: Force using a specific SSS (set to -1 to allow all SSSs). # ##################################################################### [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 #pdsch_meas_evm = false nof_phy_threads = 4 #equalizer_mode = mmse #correct_sync_error = false #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 #pdsch_csi_enabled = true #pdsch_8bit_decoder = false #force_ul_amplitude = 0 #detect_cp = false #in_sync_rsrp_dbm_th = -130.0 #in_sync_snr_db_th = 3.0 #nof_in_sync_events = 10 #nof_out_of_sync_events = 20 #force_N_id_2 = 1 #force_N_id_1 = 10 ##################################################################### # PHY NR specific configuration options # # store_pdsch_ko: Dumps the PDSCH baseband samples into a file on KO reception # ##################################################################### [phy.nr] #store_pdsch_ko = false ##################################################################### # CFR configuration options # # The CFR module provides crest factor reduction for the transmitted signal. # # enable: Enable or disable the CFR. Default: disabled # # mode: manual: CFR threshold is set by cfr_manual_thres (default). # auto_ema: CFR threshold is adaptive based on the signal PAPR. Power avg. with Exponential Moving Average. # The time constant of the averaging can be tweaked with the ema_alpha parameter. # auto_cma: CFR threshold is adaptive based on the signal PAPR. Power avg. with Cumulative Moving Average. # Use with care, as CMA's increasingly slow response may be unsuitable for most use cases. # # strength: Ratio between amplitude-limited vs unprocessed signal (0 to 1). Default: 1 # manual_thres: Fixed manual clipping threshold for CFR manual mode. Default: 2 # auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 7 # ema_alpha: Alpha coefficient for the power average in auto_ema mode. Default: 1/7 # ##################################################################### [cfr] #enable = false #mode = manual #manual_thres = 2.0 #strength = 1.0 #auto_target_papr = 7.0 #ema_alpha = 0.0143 ##################################################################### # 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 = -1 #airplane_t_off_ms = -1 ##################################################################### # 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. # # tracing_enable: Write source code tracing information to a file. # # tracing_filename: File path to use for tracing information. # # tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store. # # have_tti_time_stats: Calculate TTI execution statistics using system clock # # metrics_json_enable: Write UE metrics to JSON file. # # metrics_json_filename: File path to use for JSON metrics. # ##################################################################### [general] #metrics_csv_enable = false #metrics_period_secs = 1 #metrics_csv_filename = /tmp/ue_metrics.csv #have_tti_time_stats = true #tracing_enable = true #tracing_filename = /tmp/ue_tracing.log #tracing_buffcapacity = 1000000 #metrics_json_enable = false #metrics_json_filename = /tmp/ue_metrics.json ```enb.conf
``` ##################################################################### # srsENB configuration file ##################################################################### ##################################################################### # eNB configuration # # enb_id: 20-bit eNB identifier. # mcc: Mobile Country Code # mnc: Mobile Network Code # mme_addr: IP address of MME for S1 connnection # gtp_bind_addr: Local IP address to bind for GTP connection # gtp_advertise_addr: IP address of eNB to advertise for DL GTP-U Traffic # s1c_bind_addr: Local IP address to bind for S1AP connection # n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100) # tm: Transmission mode 1-4 (TM1 default) # nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4) # ##################################################################### [enb] enb_id = 0x19B mcc = MCC mnc = MNC mme_addr = MME_IP gtp_bind_addr = SRS_ENB_IP s1c_bind_addr = SRS_ENB_IP n_prb = 50 tm = 4 nof_ports = 2 ##################################################################### # eNB configuration files # # sib_config: SIB1, SIB2 and SIB3 configuration file # note: when enabling mbms, use the sib.conf.mbsfn configuration file which includes SIB13 # rr_config: Radio Resources configuration file # drb_config: DRB configuration file ##################################################################### [enb_files] sib_config = sib.conf rr_config = rr.conf drb_config = drb.conf ##################################################################### # RF configuration # # dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf) # 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 (must be set if dl_freq is set) # device_name: Device driver family. # Supported options: "auto" (uses first found), "UHD", "bladeRF", "soapy" or "zmq". # 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: "" # 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. ##################################################################### [rf] dl_earfcn = 3625 tx_gain = 56 rx_gain = 38 device_name = soapy device_args = rxant=LNAH,txant=BAND1 # 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 # And for 75 PRBs, also append ",master_clock_rate=15.36e6" to the device args # 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 = auto #time_adv_nsamples = auto # Example for ZMQ-based operation with TCP transport for I/Q samples #device_name = zmq #device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6 ##################################################################### # Packet capture configuration # # MAC-layer packets are captured to file a the compact format decoded # by the Wireshark. For decoding, use the UDP dissector and the UDP # heuristic dissection. Edit the preferences (Edit > Preferences > # Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with # Protocol=udp. Further, enable the heuristic dissection in UDP under: # Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp # For more information see: https://wiki.wireshark.org/MAC-LTE # Configuring this Wireshark preferences is needed for decoding the MAC PCAP # files as well as for the live network capture option. # # Please note that this setting will by default only capture MAC # frames on dedicated channels, and not SIB. You have to build with # WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want # SIB to be part of the MAC pcap file. # # S1AP Packets are captured to file in the compact format decoded by # the Wireshark s1ap dissector and with DLT 150. # To use the dissector, edit the preferences for DLT_USER to # add an entry with DLT=150, Payload Protocol=s1ap. # # mac_enable: Enable MAC layer packet captures (true/false) # mac_filename: File path to use for packet captures # s1ap_enable: Enable or disable the PCAP. # s1ap_filename: File name where to save the PCAP. # # mac_net_enable: Enable MAC layer packet captures sent over the network (true/false default: false) # bind_ip: Bind IP address for MAC network trace (default: "0.0.0.0") # bind_port: Bind port for MAC network trace (default: 5687) # client_ip: Client IP address for MAC network trace (default "127.0.0.1") # client_port Client IP address for MAC network trace (default: 5847) ##################################################################### [pcap] #enable = false #filename = /tmp/enb.pcap #s1ap_enable = false #s1ap_filename = /tmp/enb_s1ap.pcap #mac_net_enable = false #bind_ip = 0.0.0.0 #bind_port = 5687 #client_ip = 127.0.0.1 #client_port = 5847 ##################################################################### # 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, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, 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 = warning all_hex_limit = 32 filename = /tmp/enb.log file_max_size = -1 [gui] enable = false ##################################################################### # Scheduler configuration options # # sched_policy: User MAC scheduling policy (E.g. time_rr, time_pf) # max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3) # pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified) # pdsch_max_mcs: Optional PDSCH MCS limit # pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified) # pusch_max_mcs: Optional PUSCH MCS limit # min_nof_ctrl_symbols: Minimum number of control symbols # max_nof_ctrl_symbols: Maximum number of control symbols # ##################################################################### [scheduler] #policy = time_pf #policy_args = 2 #max_aggr_level = -1 #pdsch_mcs = -1 #pdsch_max_mcs = -1 #pusch_mcs = -1 #pusch_max_mcs = 16 #min_nof_ctrl_symbols = 1 #max_nof_ctrl_symbols = 3 #pucch_multiplex_enable = false ##################################################################### # eMBMS configuration options # # enable: Enable MBMS transmission in the eNB # m1u_multiaddr: Multicast addres the M1-U socket will register to # m1u_if_addr: Address of the inteferface the M1-U interface will listen for multicast packets. # mcs: Modulation and Coding scheme for MBMS traffic. # ##################################################################### [embms] #enable = false #m1u_multiaddr = 239.255.0.1 #m1u_if_addr = 127.0.1.201 #mcs = 20 ##################################################################### # Channel emulator options: # enable: Enable/Disable internal Downlink/Uplink channel emulator # # -- AWGN Generator # awgn.enable: Enable/disable AWGN generator # awgn.snr: Target SNR in dB # # -- 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.awgn] #enable = false #snr = 30 [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.awgn] #enable = false #n0 = -30 [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 ##################################################################### # Expert configuration options # # pusch_max_its: Maximum number of turbo decoder iterations (Default 4) # pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental) # nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 3) # metrics_period_secs: Sets the period at which metrics are requested from the eNB. # metrics_csv_enable: Write eNB metrics to CSV file. # metrics_csv_filename: File path to use for CSV metrics. # tracing_enable: Write source code tracing information to a file. # tracing_filename: File path to use for tracing information. # tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store. # pregenerate_signals: Pregenerate uplink signals after attach. Improves CPU performance. # tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR) # rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds). # max_prach_offset_us: Maximum allowed RACH offset (in us) # nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (Default 8) # eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1). # eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0). # ##################################################################### [expert] #pusch_max_its = 8 # These are half iterations #pusch_8bit_decoder = false #nof_phy_threads = 3 #metrics_period_secs = 1 #metrics_csv_enable = false #metrics_csv_filename = /tmp/enb_metrics.csv #report_json_enable = true #report_json_filename = /tmp/enb_report.json #alarms_log_enable = true #alarms_filename = /tmp/enb_alarms.log #tracing_enable = true #tracing_filename = /tmp/enb_tracing.log #tracing_buffcapacity = 1000000 #pregenerate_signals = false #tx_amplitude = 0.6 #rrc_inactivity_timer = 30000 #max_nof_kos = 100 #max_prach_offset_us = 30 #nof_prealloc_ues = 8 #eea_pref_list = EEA0, EEA2, EEA1 #eia_pref_list = EIA2, EIA1, EIA0 ```rr.conf
``` mac_cnfg = { phr_cnfg = { dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY periodic_phr_timer = 50; prohibit_phr_timer = 0; }; ulsch_cnfg = { max_harq_tx = 4; periodic_bsr_timer = 20; // in ms retx_bsr_timer = 320; // in ms }; time_alignment_timer = -1; // -1 is infinity }; phy_cnfg = { phich_cnfg = { duration = "Normal"; resources = "1/6"; }; pusch_cnfg_ded = { beta_offset_ack_idx = 6; beta_offset_ri_idx = 6; beta_offset_cqi_idx = 6; }; // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. sched_request_cnfg = { dsr_trans_max = 64; period = 20; // in ms //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) }; cqi_report_cnfg = { mode = "periodic"; simultaneousAckCQI = true; period = 40; // in ms //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) nof_prb = 1; m_ri = 8; // RI period in CQI period }; }; cell_list = ( { // rf_port = 0; cell_id = 0x01; tac = 0x0001; pci = 1; // root_seq_idx = 204; dl_earfcn = 3625; //ul_earfcn = 21400; ho_active = false; //meas_gap_period = 0; // 0 (inactive), 40 or 80 // target_pusch_sinr = -1; // target_pucch_sinr = -1; // allowed_meas_bw = 6; // CA cells scell_list = ( // {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} ) // Cells available for handover meas_cell_list = ( { eci = 0x19C02; dl_earfcn = 2850; pci = 2; //direct_forward_path_available = false; //allowed_meas_bw = 6; } ); // ReportCfg (only A3 supported) meas_report_desc = { a3_report_type = "RSRP"; a3_offset = 6; a3_hysteresis = 0; a3_time_to_trigger = 480; rsrq_config = 4; }; } // Add here more cells ); ```rb.conf
``` // All times are in ms. Use -1 for infinity, where available // 4G Section // srb1_config = { // rlc_config = { // ul_am = { // t_poll_retx = 45; // poll_pdu = -1; // poll_byte = -1; // max_retx_thresh = 4; // }; // dl_am = { // t_reordering = 35; // t_status_prohibit = 0; // }; // enb_specific = { // dl_max_retx_thresh = 32; // }; // }; // } // srb2_config = { // rlc_config = { // ul_am = { // t_poll_retx = 45; // poll_pdu = -1; // poll_byte = -1; // max_retx_thresh = 4; // }; // dl_am = { // t_reordering = 35; // t_status_prohibit = 0; // }; // enb_specific = { // dl_max_retx_thresh = 32; // }; // }; // } qci_config = ( { qci=1; pdcp_config = { discard_timer = 100; pdcp_sn_size = 12; } rlc_config = { ul_um = { sn_field_length = 10; }; dl_um = { sn_field_length = 10; t_reordering = 50; }; }; logical_channel_config = { priority = 2; prioritized_bit_rate = -1; bucket_size_duration = 100; log_chan_group = 1; }; enb_specific = { dl_max_retx_thresh = 32; }; }, { qci=2; pdcp_config = { discard_timer = 100; pdcp_sn_size = 12; } rlc_config = { ul_um = { sn_field_length = 10; }; dl_um = { sn_field_length = 10; t_reordering = 50; }; }; logical_channel_config = { priority = 4; prioritized_bit_rate = -1; bucket_size_duration = 100; log_chan_group = 1; }; enb_specific = { dl_max_retx_thresh = 32; }; }, { qci=5; pdcp_config = { discard_timer = -1; status_report_required = true; } rlc_config = { ul_am = { t_poll_retx = 80; poll_pdu = 128; poll_byte = 125; max_retx_thresh = 4; }; dl_am = { t_reordering = 80; t_status_prohibit = 60; }; }; logical_channel_config = { priority = 11; prioritized_bit_rate = -1; bucket_size_duration = 100; log_chan_group = 2; }; enb_specific = { dl_max_retx_thresh = 32; }; }, { qci = 7; pdcp_config = { discard_timer = -1; pdcp_sn_size = 12; } rlc_config = { ul_um = { sn_field_length = 10; }; dl_um = { sn_field_length = 10; t_reordering = 45; }; }; logical_channel_config = { priority = 13; prioritized_bit_rate = -1; bucket_size_duration = 100; log_chan_group = 2; }; enb_specific = { dl_max_retx_thresh = 32; }; }, { qci = 9; pdcp_config = { discard_timer = 150; status_report_required = true; } rlc_config = { ul_am = { t_poll_retx = 120; poll_pdu = 64; poll_byte = 750; max_retx_thresh = 16; }; dl_am = { t_reordering = 50; t_status_prohibit = 50; }; }; logical_channel_config = { priority = 11; prioritized_bit_rate = -1; bucket_size_duration = 100; log_chan_group = 3; }; enb_specific = { dl_max_retx_thresh = 32; }; } ); // 5G Section five_qi_config = ( { five_qi = 7; pdcp_nr_config = { drb = { discard_timer = 50; pdcp_sn_size_ul = 18; pdcp_sn_size_dl = 18; }; t_reordering = 50; }; rlc_config = { um_bi_dir = { ul_um = { sn_field_len = 12; }; dl_um = { sn_field_len = 12; t_reassembly = 50; }; }; }; }, { five_qi = 9; pdcp_nr_config = { drb = { discard_timer = 50; pdcp_sn_size_ul = 18; pdcp_sn_size_dl = 18; }; t_reordering = 50; }; rlc_config = { am = { ul_am = { sn_field_len = 12; t_poll_retx = 50; poll_pdu = 4; poll_byte = 3000; max_retx_thres = 4; }; dl_am = { sn_field_len = 12; t_reassembly = 50; t_status_prohibit = 50; }; }; }; } ); ```sib.conf
``` sib1 = { intra_freq_reselection = "Allowed"; q_rx_lev_min = -65; //p_max = 3; cell_barred = "NotBarred" si_window_length = 20; sched_info = ( { si_periodicity = 16; // comma-separated array of SIB-indexes (from 3 to 13), leave empty or commented to just scheduler sib2 si_mapping_info = [ 3 ]; } ); system_info_value_tag = 0; }; sib2 = { rr_config_common_sib = { rach_cnfg = { num_ra_preambles = 52; preamble_init_rx_target_pwr = -104; pwr_ramping_step = 6; // in dB preamble_trans_max = 10; ra_resp_win_size = 10; // in ms mac_con_res_timer = 64; // in ms max_harq_msg3_tx = 4; }; bcch_cnfg = { modification_period_coeff = 16; // in ms }; pcch_cnfg = { default_paging_cycle = 32; // in rf nB = "1"; }; prach_cnfg = { root_sequence_index = 128; prach_cnfg_info = { high_speed_flag = false; prach_config_index = 3; // prach_freq_offset = 4; prach_freq_offset = 4; zero_correlation_zone_config = 5; }; }; pdsch_cnfg = { /* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1 */ p_b = 1; rs_power = 0; }; pusch_cnfg = { n_sb = 1; hopping_mode = "inter-subframe"; pusch_hopping_offset = 2; enable_64_qam = false; // 64QAM PUSCH is not currently enabled ul_rs = { cyclic_shift = 0; group_assignment_pusch = 0; group_hopping_enabled = false; sequence_hopping_enabled = false; }; }; pucch_cnfg = { delta_pucch_shift = 1; n_rb_cqi = 1; n_cs_an = 0; n1_pucch_an = 12; }; ul_pwr_ctrl = { p0_nominal_pusch = -85; alpha = 0.7; p0_nominal_pucch = -107; delta_flist_pucch = { format_1 = 0; format_1b = 3; format_2 = 1; format_2a = 2; format_2b = 2; }; delta_preamble_msg3 = 6; }; ul_cp_length = "len1"; }; ue_timers_and_constants = { t300 = 2000; // in ms t301 = 100; // in ms t310 = 200; // in ms n310 = 1; t311 = 10000; // in ms n311 = 1; }; freqInfo = { ul_carrier_freq_present = true; ul_bw_present = true; additional_spectrum_emission = 1; }; time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc. }; sib3 = { cell_reselection_common = { q_hyst = 2; // in dB }, cell_reselection_serving = { s_non_intra_search = 3, thresh_serving_low = 2, cell_resel_prio = 6 }, intra_freq_reselection = { q_rx_lev_min = -61, p_max = 23, s_intra_search = 5, presence_ant_port_1 = true, neigh_cell_cnfg = 1, t_resel_eutra = 1 } }; ##################################################################### # sib7 configuration options (See TS 36.331) # Contains GERAN neighbor information for CSFB and inter-rat handover. # Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted # # t_resel_geran: Cell reselection timer (seconds) # carrier_freqs_info_list: A list of carrier frequency groups. # cell_resel_prio: Absolute priority of the carrier frequency group # ncc_permitted: 8-bit bitmap of NCC carriers permitted for monitoring # q_rx_lev_min: Minimum receive level in gsm cell, ([field_val] * 2) - 115 = [level in dBm] # thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency # thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency # start_arfcn: Initial search ARFCN value # band_ind: One of "dcs1800" or "pcs1900" Disambiguates ARFCNs in these bands, has no meaning for other ARFCNs. # explicit_list_of_arfcns: List of ARFCN numbers in the group # ##################################################################### sib7 = { t_resel_geran = 1; carrier_freqs_info_list = ( { cell_resel_prio = 0; ncc_permitted = 255; q_rx_lev_min = 0; thresh_x_high = 2; thresh_x_low = 2; start_arfcn = 871; band_ind = "dcs1800"; explicit_list_of_arfcns = ( 871 ); } ); }; ```