O-RAN 7.2 RU Guide

Overview

The srsRAN Project supports both split 7.2 and split 8 fronthaul interfaces to Radio Units (RUs). This tutorial outlines the general steps required to interface an RU with the srsRAN CU/DU via split 7.2. For more detailed instructions on specific O-RUs select an RU from this list.

Split 7.2 is an open specification published by the O-RAN Alliance aiming to ensure interoperability between different DU and RU solutions.

The split 7.2 interface is supported in srsRAN through the Open Fronthaul (OFH) Library. Developed by the SRS team, OFH is an open-source, portable library with minimal 3rd-party dependencies. It has been designed to minimize the integration and configuration burden associated with using srsRAN with 3rd-party O-RUs.


Setup Considerations

This tutorial uses the following hardware:

  • Server (Running srsRAN Project CU/DU)

    • CPU: AMD Ryzen 7 5700G

    • MEM: 64GB

    • NIC: Intel Corporation 82599ES 10-Gigabit

    • OS: Ubuntu 22.04 (5.15.0-1037-realtime)

  • Fronthaul switch & synchronization

  • RU

  • COTS UE (OnePlus 9)

With the following software:

../../../../_images/generic_oru.png

CU/DU

The CU/DU is provided by the srsRAN Project gNB. The Open Fronthaul (OFH) Library provides the necessary interface between the DU and the RU. The DU is connected to the fronthaul switch via SFP+ fiber cable.

RU

Users should chose the RU that best suits their usecase and specific requirements. There are various O-RUs available with specific implementations for indoor and outdoor use, various price points, and various hardware capabilities. A list of tested O-RUs can be found here, along with details on using them with the srsRAN Project gNB.

For all set-ups the RU should be connected to the fronthaul switch via SFP+ fiber cable through the main fronthaul interface.

5G Core

For this example we use the Open5GS 5G Core.

Open5GS is a C-language open-source implementation for 5G Core and EPC. The following links will provide you with the information needed to download and setup Open5GS so that it is ready to use with srsRAN:

Synchronization

The split 7.2 interface requires tight timing synchronization between the DU and RU. O-RAN WG 4 has defined various synchronization methods for use with Open Fronthaul. These are outlined in O-RAN.WG4.CUS.0-R003-v11.00 Section 11.

In this setup we use LLS-C3. The LLS-C3 configuration enables the distribution of network timing between central sites and remote sites from PRTC/T-GM to RU. In simpler terms, it allows the synchronization of one or more PRTC/T-GM devices (serving as PTP master) in the fronthaul network to transmit network timing signals to DU and RU components as seen in the figure above. In our setup the fronthaul switch is acting as the PTP grandmaster (which is synchronized via GPS), providing timing to the RU and the DU. These are connected to the SFP+ 10G ports on the switch via Ethernet.

Note

The OFH library supports all of the defined clock model and synchronization topologies defined by O-RAN WG4. The use of LLS-C3 is specific to this example.

Switch

The chosen switch should be a timing-aware O-RAN switch & PTP grandmaster. This is used to provide both clocking and timing synchronization to both the DU and RU.


Configuration

Switch

Refer to the specific Switch documentation to correctly configure it. Specifically any timing and routing options that may need to be configured.

We recommend using the manufacturers documentation as well as the specific switch guide from SRS if it is available in the Integration Guide.

CU/DU

NIC configuration

The DU machine should have jumbo frames enabled in the NIC and the PTP process should be checked to make sure it is synchronized correctly.

To set the jumbo frames in the NIC use the following command for a temporary configuration:

ifconfig <eth0> mtu 9600 up

Where eth0 is the ethernet port for the SFP+ fiber cable that connects the DU to the fronthaul switch.

PTP configuration

To start the PTP process in the DU, use the command below. The configuration file can be downloaded here

./ptp4l -2 -i enp1s0f0 -f ./configs/default.cfg -m

You should then see the following output:

ptp4l[4321.966]: rms    6 max   14 freq -25784 +/-   9 delay   172 +/-   1
ptp4l[4323.091]: rms    5 max   10 freq -25778 +/-   8 delay   170 +/-   1
ptp4l[4324.216]: rms    6 max   11 freq -25781 +/-   9 delay   169 +/-   1
ptp4l[4325.341]: rms    5 max   10 freq -25783 +/-   8 delay   170 +/-   1

In the above output, the rms value can be used to determine if the PTP sync is correct, for this we look for a value < 10.

Next, run:

./phc2sys -s enp1s0f0 -w -m -R 8 -f ./configs/default.cfg

You should then see the following output:

phc2sys[4348.303]: CLOCK_REALTIME phc offset       -25 s2 freq   +8026 delay   1467
phc2sys[4348.428]: CLOCK_REALTIME phc offset       -11 s2 freq   +8033 delay   1466
phc2sys[4348.553]: CLOCK_REALTIME phc offset       -25 s2 freq   +8016 delay   1396
phc2sys[4348.678]: CLOCK_REALTIME phc offset        -5 s2 freq   +8028 delay   1397

The first value here is used to determine if the PTP sync is correct, for this we look for a value < 100.

In both of the above commands enp1s0f0 is the network interface on our DU that gets the PTP sync.

srsRAN configuration

Sample configuration files for the CU/DU can be downloaded from here. There is an associated configuration file for each of the tested RUs.

The main configuration steps for the CU/DU occur in the ru_ofh field. Here the CU/DU is configured to match the capabilities of the RU being used. All parameters should be configured specifically for each RU.

See the specific RU guides in the Integration Guide for more information on configuring the CU/DU.

RU

Refer to the specific RU documentation to correctly configure the RU. Ensure the RU is running before trying to make any configuration changes.

We recommend using the manufacturers documentation as well as the specific RU guide from SRS if it is available in the Integration Guide.

Core

For this setup Open5GS is used as the core, it is running in a docker.

The Open5GS 5G Core Quickstart Guide provides a comprehensive overview of how to configure Open5GS to run as a 5G Core.

To configure the core correctly the following steps need to be taken:

  • Configure the core to connect to the gNB, ensuring the correct AMF address for both.

  • Configure the PLMN and TAC values so that they are the same as those present in the gNB configuration.

  • Register the ISIM credentials of the UE to the list of subscribers through the Open5GS WebUI.


Initializing the Network

RU

To bring up the RU simply boot it and ensure it is running correctly before attempting to connect the DU. Check for RU synchronization and that the PTP process is running correctly.

These exact steps will vary depend on the RU being used.

CU/DU

Before running the CU/DU, make sure you have used the commands outlined in the configuration section above to confirm the PTP sync between the DU and the fronthaul switch.

We can now run the CU/DU. First, navigate to srsRAN_Project/build/apps/gnb, and then run the gNB with the following command:

sudo ./gnb -c <RU_CONFIG>

Where <RU_CONFIG> is the configuration file associated with the RU being used.

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

--== srsRAN gNB (commit ) ==--

Connecting to AMF on 10.53.1.2:38412
Initializing Open Fronthaul Interface with ul_comp=[BFP,9], dl_comp=[BFP,9], prach_cp_enabled=false, downlink_broadcast=true.
Operating a 20MHz cell over a RU with instantaneous bandwidth of 100MHz.
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=20 MHz, dl_arfcn=634548 (n78), dl_freq=3518.22 MHz, dl_ssb_arfcn=634464, ul_freq=3518.22 MHz

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

Connecting to the Network

The following sections will outline two different approaches for connecting to the network. The first will show how to connect to the network using a COTS UE, the second will show how to connect using the AmariUE UE emulator from Amarisoft.

COTS UE

For full details on configuring and connecting a COTS UE to the srsRAN Project gNB see this tutorial.

For this setup a OnePlus 9 5G UE was used to connect to the network. The set-up and configuration of the device is the same as in the above tutorial.

AmariUE

Additionally, third party UEs, such as AmariUE can be used to connect to the network.

For full details on configuring and connecting AmariUE to the srsRAN Project gNB see this tutorial.

Sending Traffic

Once connected to the network you can use iPerf to generate traffic. The following console trace was taken from the gNB during bi-directional testing:

          -------------DL----------------|------------------UL--------------------
pci rnti  cqi  mcs  brate   ok  nok  (%) | pusch  mcs  brate   ok  nok  (%)    bsr
  1 4601   15   28    38M 1200    0   0% |  17.8   26    15M  493  107  17%   300k
  1 4601   15   28    38M 1186   14   1% |  17.7   26    14M  488  112  18%   300k
  1 4601   15   28    38M 1196    4   0% |  17.8   26    15M  506   94  15%   300k
  1 4601   15   28    38M 1200    0   0% |  17.8   26    15M  501   99  16%   300k
  1 4601   15   28    38M 1200    0   0% |  17.9   26    15M  498  102  17%   300k
  1 4601   15   28    38M 1200    0   0% |  17.9   26    15M  497  103  17%   300k
  1 4601   15   28    38M 1198    2   0% |  17.8   26    15M  497  103  17%   300k
  1 4601   15   28    38M 1194    6   0% |  17.8   26    15M  495  105  17%   300k
  1 4601   15   28    38M 1195    5   0% |  17.8   26    15M  510   89  14%   300k
  1 4601   15   28    38M 1200    0   0% |  17.8   26    15M  503   98  16%   300k
  1 4601   15   28    38M 1200    0   0% |  17.8   26    15M  495  105  17%   300k

Integration Guide

The Integration Guide aims to show the specific steps needed to successfully integrate COTS O-RUs and switches with the srsRAN CU/DU for use in an O-RAN split 7.2 compliant network. All of the hardware items listed here have been tested in-house.