How to connect an UE to a RU in a CU/DU split scenario ? #1379
-
I have made a CU/DU split scenario using srsCU and srsDU, which I can add multiple DUs over time. The issue is that I'm trying to connect one of my DUs to a UE from srsRAN 4G. I'm using the Open5GS Docker container as the core and ZMQ. I found quite confusing to configure the TX and RX ports for ZMQ, one question I have is are they arbitrary ? I know I need to invert the TX and RX ports when configuring the UE and RU, but does they need to be a especific value or there is any other rule beside this? The main error that appears for me is the UE not connecting to the RU. While I was testing two types of error occured, one with Attaching UE and other which appears Random Access Transmition message multiple times. Could someone help me with this problem ? Code for the DU: gnb_id: 411
gnb_du_id: 0 # Optional UINT (0). Sets the gNB DU ID. Supported: [0 - 68719476735].
f1ap:
cu_cp_addr: 127.0.10.1 # The address of CU-CP
bind_addr: 127.0.1.2
f1u:
socket:
-
bind_addr: 127.0.1.2
ru_sdr:
device_driver: zmq
device_args: tx_port=tcp://127.0.0.1:2000,rx_port=tcp://127.0.0.1:2001,base_srate=11.52e6
srate: 11.52
tx_gain: 75
rx_gain: 75
cell_cfg:
sector_id: 0011
dl_arfcn: 368500
band: 3
channel_bandwidth_MHz: 10
common_scs: 15
plmn: "00101"
tac: 7
pci: 1
pdcch:
common:
ss0_index: 0 # Set search space zero index to match srsUE capabilities
coreset0_index: 6 # Set search CORESET Zero index to match srsUE capabilities
dedicated:
ss2_type: common # Search Space type, has to be set to common
dci_format_0_1_and_1_1: false # Set correct DCI format (fallback)
prach:
prach_config_index: 1 # Sets PRACH config to match what is expected by srsUE
pdsch:
mcs_table: qam64
pusch:
mcs_table: qam64 Code for the UE: [rf]
freq_offset = 0
tx_gain = 50
rx_gain = 40
srate = 11.52e6
nof_antennas = 1
device_name = zmq
device_args = tx_port=tcp://127.0.0.1:2001,rx_port=tcp://127.0.0.1:2000,base_srate=11.52e6
[rat.eutra]
dl_earfcn = 2850
nof_carriers = 0
[rat.nr]
bands = 3
nof_carriers = 1
max_nof_prb = 52
nof_prb = 52
dl_nr_arfcn = 368500
ssb_nr_arfcn = 367930
[pcap]
enable = none
mac_filename = /tmp/ue1_mac.pcap
mac_nr_filename = /tmp/ue1_mac_nr.pcap
nas_filename = /tmp/ue1_nas.pcap
[log]
all_level = info
phy_lib_level = none
all_hex_limit = 32
filename = /tmp/ue1.log
file_max_size = -1
[usim]
mode = soft
algo = milenage
opc = 63BFA50EE6523365FF14C1F45F88737D
k = 00112233445566778899aabbccddeeff
imsi = 001010123456780
imei = 353490069873319
[rrc]
release = 15
ue_category = 4
[nas]
apn = srsapn
apn_protocol = ipv4
[gw]
netns = ue1
ip_devname = tun_srsue
ip_netmask = 255.255.255.0
[gui]
enable = false Attaching UE error: Active RF plugins: libsrsran_rf_zmq.so
Inactive RF plugins:
Reading configuration file ./ue1.conf...
Built in Release mode using commit ec29b0c1f on branch master.
Opening 1 channels in RF device=zmq with args=tx_port=tcp://127.0.0.1:2001,rx_port=tcp://127.0.0.1:2000,base_srate=11.52e6
Supported RF device list: zmq file
CHx base_srate=11.52e6
Current sample rate is 1.92 MHz with a base rate of 11.52 MHz (x6 decimation)
CH0 rx_port=tcp://127.0.0.1:2000
CH0 tx_port=tcp://127.0.0.1:2001
Current sample rate is 11.52 MHz with a base rate of 11.52 MHz (x1 decimation)
Current sample rate is 11.52 MHz with a base rate of 11.52 MHz (x1 decimation)
Waiting PHY to initialize ... done!
Attaching UE... Random Access Transmission error: Active RF plugins: libsrsran_rf_zmq.so
Inactive RF plugins:
Reading configuration file ./ue1.conf...
Built in Release mode using commit ec29b0c1f on branch master.
Opening 1 channels in RF device=zmq with args=tx_port=tcp://127.0.0.1:2001,rx_port=tcp://127.0.0.1:2000,base_srate=11.52e6
Supported RF device list: zmq file
CHx base_srate=11.52e6
Current sample rate is 1.92 MHz with a base rate of 11.52 MHz (x6 decimation)
CH0 rx_port=tcp://127.0.0.1:2000
CH0 tx_port=tcp://127.0.0.1:2001
Current sample rate is 11.52 MHz with a base rate of 11.52 MHz (x1 decimation)
Current sample rate is 11.52 MHz with a base rate of 11.52 MHz (x1 decimation)
Waiting PHY to initialize ... done!
Attaching UE...
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0xf, tti=331
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0xf, tti=361
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0xf, tti=391
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0xf, tti=421
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0xf, tti=451
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0xf, tti=481
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0xf, tti=511 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
I tested here and the RU address worked with a random IP and port. The configuration is actually similar to the GNB and is also good to remember the UE Limitations available at this link https://docs.srsran.com/projects/project/en/latest/tutorials/source/srsUE/source/index.html#zeromq-based-setup. While I was testing I found the following error on the UE log: PDCCH DMRS Rx: Measure L=2; ncce=0; RSRP=-inf dBfs; EPRE=-inf dBfs; Corr=0.000
2025-10-06T18:01:20.595426 [PHY_LIB] [I] [ 0] Discarded PDCCH candidate L=2;ncce=0; Invalid measurement;
2025-10-06T18:01:20.595428 [PHY_LIB] [I] [ 0] PDCCH DMRS Rx: Measure L=2; ncce=0; RSRP=-inf dBfs; EPRE=-inf dBfs; Corr=0.000
2025-10-06T18:01:20.595428 [PHY_LIB] [I] [ 0] Discarded PDCCH candidate L=2;ncce=0; Invalid measurement;
2025-10-06T18:01:20.595430 [PHY_LIB] [I] [ 0] PDCCH DMRS Rx: Measure L=2; ncce=4; RSRP=-inf dBfs; EPRE=-inf dBfs; Corr=0.000
... After this I discovered the following discussion with the same error message https://github.com/srsran/srsRAN_Project/discussions/297. The main change I did after this was putting the value 11.52 for the srate. To help other people, here is the code for the DU and the UE. Code for DU: gnb_id: 411
gnb_du_id: 0 # Optional UINT (0). Sets the gNB DU ID. Supported: [0 - 68719476735].
f1ap:
cu_cp_addr: 127.0.10.1 # The address of CU-CP
bind_addr: 127.0.1.2
f1u:
socket:
-
bind_addr: 127.0.1.2
ru_sdr:
device_driver: zmq
device_args: tx_port=tcp://127.0.0.2:2000,rx_port=tcp://127.0.0.1:2001,base_srate=11.52e6
srate: 11.52
tx_gain: 80
rx_gain: 40
cell_cfg:
sector_id: 0011
dl_arfcn: 368500
band: 3
channel_bandwidth_MHz: 10
common_scs: 15
plmn: "00101"
tac: 7
pci: 1
pdcch:
common:
ss0_index: 0 # Set search space zero index to match srsUE capabilities
coreset0_index: 6 # Set search CORESET Zero index to match srsUE capabilities
dedicated:
ss2_type: common # Search Space type, has to be set to common
dci_format_0_1_and_1_1: false # Set correct DCI format (fallback)
prach:
prach_config_index: 1 # Sets PRACH config to match what is expected by srsUE
pdsch:
mcs_table: qam64
pusch:
mcs_table: qam64 The UE code: [rf]
freq_offset = 0
tx_gain = 50
rx_gain = 40
srate = 11.52e6
nof_antennas = 1
device_name = zmq
device_args = tx_port=tcp://127.0.0.1:2001,rx_port=tcp://127.0.0.2:2000,base_srate=11.52e6
[rat.eutra]
dl_earfcn = 2850
nof_carriers = 0
[rat.nr]
bands = 3
nof_carriers = 1
max_nof_prb = 52
nof_prb = 52
dl_nr_arfcn = 368500
ssb_nr_arfcn = 368410
[pcap]
enable = none
mac_filename = /tmp/ue1_mac.pcap
mac_nr_filename = /tmp/ue1_mac_nr.pcap
nas_filename = /tmp/ue1_nas.pcap
[log]
all_level = info
all_hex_limit = 2048
filename = /tmp/ue1.log
file_max_size = -1
[usim]
mode = soft
algo = milenage
opc = 63BFA50EE6523365FF14C1F45F88737D
k = 00112233445566778899aabbccddeeff
imsi = 001010123456780
imei = 353490069873319
[rrc]
release = 15
ue_category = 4
[nas]
apn = srsapn
apn_protocol = ipv4
[gw]
netns = ue1
ip_devname = tun_srsue
ip_netmask = 255.255.255.0
[gui]
enable = false |
Beta Was this translation helpful? Give feedback.
I tested here and the RU address worked with a random IP and port. The configuration is actually similar to the GNB and is also good to remember the UE Limitations available at this link https://docs.srsran.com/projects/project/en/latest/tutorials/source/srsUE/source/index.html#zeromq-based-setup. While I was testing I found the following error on the UE log: