Benetel R550/650

Warning

This document is intended to be used as a guide. Variances in firmware and software versions in local setups may require the sample configuration files provided to be changed. As a result please closely follow the specific users guides of your RU in conjunction with this guide.

Overview

This guide provides further details on connecting the srsRAN CU/DU to an RU using the OFH Lib. Specifically the RAN550 and RAN650 RU from Benetel. Those are Split 7.2a indoor and outdoor RUs, respectivly.

Note

Please refer to the Benetel User Guide Documentation for up-to-date configuration and usage guidelines, along with disclaimer and warranty information. Contact Benetel (sales@benetel.com) for more information.


Configuration

Tip

For the most up-to-date configuration changes, troubleshooting and information on potential issues check the GitHub Discussions

CU/DU

Sample configuration files for the DU can be downloaded from below, for two different system configurations:

These configurations are specific to the firmware version of the RU (version 1.0.4) being used for this guide. As a result, you may need to modify this slightly for your local setup.

The following excerpt shows how the DU is configured to communicate with the RU (for a 4x2 MIMO configuration):

ru_ofh:
  t1a_max_cp_dl: 470
  t1a_min_cp_dl: 419
  t1a_max_cp_ul: 336
  t1a_min_cp_ul: 285
  t1a_max_up: 345
  t1a_min_up: 294
  ta4_max: 200
  ta4_min: 0
  is_prach_cp_enabled: false           # Configures if Control-Plane messages should be used to receive PRACH messages.
  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: 10                       # IQ samples scaling factor applied before compression, should be a positive value smaller than 10.
  cells:
    - network_interface: enp1s0f0      # Ethernet interface name used to communicate with the RU.
      ru_mac_addr: 70:b3:d5:e1:5b:06   # RU MAC address.
      du_mac_addr: 80:61:5f:0d:df:aa   # DU MAC address.
      vlan_tag_cp: 5                   # VLAN tag value for CP.
      vlan_tag_up: 5                   # VLAN tag value for UP.
      prach_port_id: [4, 5]            # PRACH eAxC port value.
      dl_port_id: [0, 1, 2, 3]         # Downlink eAxC port values.
      ul_port_id: [0, 1]               # Uplink eAxC port values.

To expand on this, the following parameters are set in the cells field:

  • network_interface : Network interface used to send the OFH packets.

  • ru_mac_addr : MAC address of the RAN550/650.

  • du_mac_addr : MAC address of the interface used by the gNB (it should be connected directly to the RU or using a smart switch).

  • vlan_tag_up/vlan_tag_cp : V-LAN identifier, should be set to the value configured in the switch settings

RU

Refer to the Benetel User Guide documentation to apply the following configuration changes so that they match your local setup. The following information is purely a guide and may not work for your specific set up.

We currently recommend to use the following RU configuration as other parameter combinations are untested and seem to cause issues with Benetel RUs:

  • 2x2 MIMO configuration with 20 MHz bandwidth

  • 4x2 MIMO configuration with 100 MHz bandwitdh

  • Long PRACH format; the 2x2 MIMO with 20 MHz bandwith also supports the short PRACH format, but shows a limited UL performance

Ensure the RU is running before trying to make any configuration changes. Some of the values can be set/modified in the /etc/ru_config.cfg file, but some others need to be modified

  • MAC Address : The MAC address of the DU must be configured in the RU for Control-Plane and User-Plane traffic. In our configuration we use the same MAC address for both planes.

  • VLAN tag : In our setup the same VLAN ID is used for all network traffic, as only one MAC address is used.

  • Compression : Currently only static compression headers are supported for this setup. We use BFP9 compression for all uplink and downlink channels. Refer to the Benetel User Guide for details on how to configure compression in the RU.

  • Transmission Power : Depending on your setup, you may need to alter the transmission power of the RU. For example, in a lab setting with the UE in close proximity to the RU, the default power settings may result in UE saturation.

  • PRACH format : We recommend using long PRACH format.

  • DL scaling : We use downlink scaling of 0dB for 2x2 MIMO configuration with 20 MHz bandwidth and of 6dB for 4x2 MIMO configuration with 100 MHz bandwidth.

  • TDD pattern : The TDD pattern should be set to the 7-2 format (DDDDDDDSUU). Download it here.

The full configuration files we used for these set ups can be found below:

Note that in case of using a long PRACH format, the Msg1 offset needs to be manually set by writing to the 0xc0324 register. It can be done by writing the following command in the RU control console:

registercontrol -w c0324 -x 0xef780000

Initializing and connecting to the network

Initializing and connecting to the network is done in the same way as outlined in the general 7.2 RU guide.

Initializing the network

The following steps should be taken to initialize the network:

  1. Ensure the RX50 is online and that both the PTP process and RU synchronization are running correctly.

  2. Run the CU/DU, making sure that the PTP sync between the DU and the Falcon switch is successful as previously outlined.

    sudo ./gnb -c gnb_ru_ran550_tdd_n78_100mhz_4x2.yml
    

If the DU connects to the RU successfully, you will see the following output:

The PRACH detector will not meet the performance requirements with the configuration {Format 0, ZCZ 0, SCS 1.25kHz, Rx ports 1}.

--== srsRAN gNB (commit 96f185389) ==--

Connecting to AMF on 127.0.0.5:38412
Initializing the Open Fronthaul Interface for sector#0: ul_compr=[BFP,9], dl_compr=[BFP,9], prach_compr=[BFP,9], prach_cp_enabled=false, downlink_broadcast=false
Warning: Configured PRACH occasion collides with PUCCH RBs ([0..1) intersects [0..3)). Some interference between PUCCH and PRACH is expected.
Warning: Configured PRACH occasion collides with PUCCH RBs ([0..1) intersects [0..3)). Some interference between PUCCH and PRACH is expected.
Cell pci=1, bw=100 MHz, 4T2R, dl_arfcn=650000 (n78), dl_freq=3750.0 MHz, dl_ssb_arfcn=647328, ul_freq=3750.0 MHz

==== gNodeB started ===
Type <t> to view trace

Connecting to the network

You can now connect a UE to the network. This can either be done using e.g. a COTS UE. See the main RU guide for details on this.

An example Amarisoft UE configuration file can be found below:

This configuration was tested with a R550 and a specific Amarisoft UE version (lteue-linux-2023-09-08), whilst using a cabled setup with RF splitters and 30 dB attenuation between the Rx ports of the SDR cards and the R550 antenna ports.