Real-time failure in FAPI - no communication between RAN550 and srsRAN at all #233
-
Hello, I'm trying to use the current main branch of srsRAN with a Benetel RAN550 unit. I'm running on a dedicated server with a Intel Xeon Gold 6346 CPU @ 3.10GHz dual socket with 16 real cores / 32 logical cores each, 64G RAM, a 10G fiber link to the RU, a Fibrolan PTP grandmaster clock synchronized via GPS, Ubuntu 22.04 5.15.0-1032-realtime PREEMPT_RT. I am not able to get any U-Plane communication between srsRAN and the RU going. The RU counters are showing no packets at all incoming, on the srsRAN side I only get "Detected late downlink request" messages and it seems that all traffic is dropped in srsRAN due to being too late. I have not seen any option to set the CPU affinity of the srsRAN threads, so I can not move them onto isolated cores. Does someone you have any tips / tricks for me how to look into this? I'm out of ideas, I would have expected that at least some data would be on time in such a system. You can find the used srsRAN logs attached. I truncated the logs since it was simply and endless loop of the same messages. Configuration used: amf:
addr: 127.0.1.100 # The address or hostname of the AMF.
bind_addr: 127.0.0.1 # A local IP that the gNB binds to for traffic from the AMF.
ru_ofh:
ru_bandwidth_MHz: 100 # RU instantaneous bandwidth.
t1a_max_cp_dl: 500 # Maximum T1a on Control-Plane for Downlink in microseconds.
t1a_min_cp_dl: 250 # Minimum T1a on Control-Plane for Downlink in microseconds.
t1a_max_cp_ul: 465 # Maximum T1a on Control-Plane for Uplink in microseconds.
t1a_min_cp_ul: 250 # Minimum T1a on Control-Plane for Uplink in microseconds.
t1a_max_up: 250 # Maximum T1a on User-Plane in microseconds.
t1a_min_up: 80 # Minimum T1a on User-Plane in microseconds.
is_prach_cp_enabled: false # Configures if Control-Plane messages should be used to receive PRACH messages.
# is_dl_broadcast_enabled: true # Set to true for a workaround over a firmware bug in the RAN550 when operating in SISO mode.
compr_method_ul: bfp # Uplink compression method.
compr_bitwidth_ul: 9 # Uplink IQ samples bitwidth after compression.
compr_method_dl: bfp # Downlink compression method.
compr_bitwidth_dl: 9 # Downlink IQ samples bitwidth after compression.
compr_method_prach: bfp # PRACH compression method.
compr_bitwidth_prach: 9 # PRACH IQ samples bitwidth after compression.
enable_ul_static_compr_hdr: true # Configures if the compression header is present for uplink User-Plane messages (false) or not present (true).
enable_dl_static_compr_hdr: true # Configures if the compression header is present for downlink User-Plane messages (false) or not present (true).
iq_scaling: 0.10 # IQ samples scaling factor applied before compression, should be a positive value smaller than 1.
cells:
- network_interface: enp177s0f0 # Ethernet interface name used to communicate with the RU.
ru_mac_addr: 70:b3:d5:e1:58:6d # RU MAC address.
du_mac_addr: 64:9d:99:b1:7a:f4 # DU MAC address.
vlan_tag: 100 # VLAN tag value.
prach_port_id: [4] # PRACH eAxC port value.
dl_port_id: [0, 1] # Downlink eAxC port values.
ul_port_id: [0, 1] # Uplink eAxC port values.
cell_cfg:
dl_arfcn: 637212 # ARFCN of the downlink carrier (center frequency).
band: 78 # The NR band.
channel_bandwidth_MHz: 100 # Bandwith in MHz. Number of PRBs will be automatically derived.
common_scs: 30 # Subcarrier spacing in kHz used for data.
plmn: "00101" # PLMN broadcasted by the gNB.
tac: 1 # Tracking area code (needs to match the core configuration).
pci: 1 # Physical cell ID.
nof_antennas_dl: 2 # Downlink number of antennas.
nof_antennas_ul: 2 # Uplink number of anntennas.
prach:
prach_config_index: 7 # PRACH configuration index.
prach_root_sequence_index: 1 # PRACH root sequence index.
zero_correlation_zone: 0 # Zero correlation zone.
prach_frequency_start: 0 # Offset in PRBs of lowest PRACH transmission occasion in frequency domain respective to PRB 0.
log:
filename: /tmp/gnb.log # Path of the log file.
all_level: info # Logging level applied to all layers.
pcap:
mac_enable: false # Set to true to enable MAC-layer PCAPs.
mac_filename: /tmp/gnb_mac.pcap # Path where the MAC PCAP is stored.
ngap_enable: false # Set to true to enable NGAP PCAPs.
ngap_filename: /tmp/gnb_ngap.pcap # Path where the NGAP PCAP is stored. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
Hi Nils, Can you try adding this section to your config?
With that CPU you should be able to do 100 MHz 4x4 with no issues. Regards |
Beta Was this translation helpful? Give feedback.
-
Thanks again for your help, the communication seems to be working quite fine now. One other question though, since you've used a Benetel RAN550 RU for your testing already, would it be possible for you to share your RU configuration? I'm having trouble configuring the TDD on the RU and would like to make sure that all necessary registers & values are the same as in your tests for being able to verify my setup with the configurations you provided in the repository. Thanks a lot! |
Beta Was this translation helpful? Give feedback.
Hi Nils,
Can you try adding this section to your config?
With that CPU you should be able to do 100 MHz 4x4 with no issues.
When you achieve the full attach, if you see the DL SNR (reported CQI) is low, try to increase the IQ scaling factor.
Regards