Experiment with Hardware USRP Radio Units and a bare metal server

Prerequisites

  • You have a Slices account

  • You have successfully followed the previous tutorials

  • You have a basic understanding of kubernetes and containers

  • You have a good understanding of the 5G architecture

  • You have a good understanding of radio units (e.g., USRP).

  • You have a good understanding of OpenAirInterface and how to configure radio

The previous experiment used a simulated radio network. In this tutorial, we will work with a real radio network, utilizing a hardware radio unit and User Equipment (UE). To accomplish this, we will deploy the core network in the central SLICES-RI Kubernetes cluster, while the Radio Access Network (RAN) will operate on bare-metal resources.

For the hardware, we will utilize the R2LAB anechoic chamber, which provides both Radio Units (RUs) and User Equipment (UEs). In this setup, the N320 USRP from R2LAB will function as the radio unit of the gNB, while the N300 USRP will serve as the UE connecting to the 5G network. These devices will be referred to as n320 (for the radio unit) and n300 (for the UE). Additionally, a bare-metal server is required to act as the gNB and another one for the UE, which will be connected to the radio units.

Since gNBs linked to real radio units demand high-performance networking and computing resources, we will use sopnode-f1 and sopnode-f2.

This experiment connects:

  • the N320 USRP from the R2LAB anechoic chamber to the bare-metal fronthaul sopnode-f1 node, located in the SLICES-RI SophiaNode datacenter, which serves as a gNB. The gNB is linked to the 5G core deployed in the central hub’s Kubernetes cluster.

  • the N300 USRP from the R2LAB anechoic chamber to the bare-metal sopnode-f2, located in the SLICES-RI SophiaNode datacenter, which serves as UE.

We use standard-2-1 as a deployement node.

        graph TD
  centralhub <--> gnb
  gnb <--> n320
  ue <--> n300
  n300 <-.-> n320
  deploy -.-|controls| sopnode-f1
  deploy -.-|controls| sopnode-f2

  subgraph Slices resources

    subgraph Deployement node
    deploy[standard-2-1]
    end
    
    subgraph "centralhub k8s cluster"
            centralhub(5G core)
    end

    subgraph "Sophia Node"
        subgraph "Datacenter"
            subgraph "sopnode-f1"
                gnb(gnb)
            end
            subgraph "sopnode-f2"
                ue(UE)
            end
        end

        subgraph "Anechoic chamber"
            n320(n320)
            n300(n300)
        end
    end
  end
    

The UE is configured as follows, which is one of the default UE installed in OAI database; if you don’t use the core we provide by default, make sure to configure yours accordingly:

  • imsi: 001010000000100

  • key: fec86ba6eb707ed08905757b1bb44b8f

  • opc: C42449363BBAD02B66D16BC975D77CC1

  • dnn: oai

  • nssai_sst: 1

  • nssai_sd: 16777215

As in the previous tutorial, go to the Configure Experiment section of the Post-5G Blueprint Service, as in step 1 configure the NRF Load Balancer IP and the Multus network prefix based on the prefix you receive with the command:

post5g experiment prefix my_experiment

We do not use the kubernetes cluster to deploy the RAN and the UE, so deactivate RAN and UE by ensuring that GCN RAN Present and GCN UE Present are set to false in the assistant.

Specify standard-2-1 as deployement node, and add sopnode-f1 an sopnode-f2 as Resources (not r2lab).

Instead, the RAN will be configured and run as part of your custom experiment. We provide a simple scenario in usrp_baremetal. To use this implementation, set the experiment URL to be https://gitlab.inria.fr/dsaucez/5g_test/-/archive/usrp_exp/5g_test-usrp_exp.tar.gz.

Once you have configured correctly the experiment with the assistant, make sure you generate the code by clicking on the Generate Experiment Code button (see step 2).

The next step is to reserve the necessary resources. Similar to step 3, book a time slot through the POS Calendar section of the Post-5G Blueprint Service and choose the resources r2lab, standard-2-1, sopnode-f1, and sopnode-f2. Be sure to select the r2lab, as this ensures access to the radio hardware available in the anechoic chamber.

When your time slot begins, you can execute the experiment. Connect to the pos Webshell section of the Post-5G Blueprint Service and from the webshell retrieve the experiment information, just as you did in step 4.

post5g experiment get my_experiment

Before starting the experiment, ensure that the radio resources in R2LAB are powered on. You can control them from the pos Webshell using the command post5g nodes [start|stop] {<node_name>}, where <node_name> is the name of the resource you want to turn on or off. In this case, we’ll start the Radio Units with the following commands:

post5g nodes start n300
post5g nodes start n320

After that, you can launch the experiment using the usual method from the pos Webshell.

post5g experiment launch my_experiment

This will deploy the 5G core network on the SLICES-RI Kubernetes cluster, set up a bare-metal gNB on the sopnode-f1 server, and connect the N320 USRP to this gNB. It will then setup the UE on sopnode-f2 and connect the N300 USRP to the UE.

When the UE is connected to the RAN, then the experiment will do and ping as in our previous example.

To access the data, visit the MRS section of the Post-5G Blueprint Service, enter the Dataset ID, and click the Download Data button. In the downloaded dataset, go to the standard-2-1 folder and open the <date>_xp.sh.stdout file. It contains the compilation details and the output from the gNB console, similar to the following example.

Feel free to check xp.sh for the implementation details.