How to setup and use OpenAirInterface with a near-RT RIC
OpenAirInterface (OAI) is a 3GPP-compliant software implementation of the full 5G NR stack. In this tutorial, we show how OpenRAN Gym users can get started with deploying an OAI gNB on Colosseum equipped with a standard compliant E2 agent for the E2AP component and custom Service Models based on protocol buffers, together with a Near-RT RIC and a sample xApp.
The basic repository for this project can be found here. It contains submodules that point to the different projects that are relevant to this tutorial.
This is a basic xapp (
xapp-oai submodule) that subscribes to selected RAN parameters, receives periodic indications messages and sends control requests to update these parameters. The base xApp can communicate with the gNB by means of a RIC, or via direct socket communication.
This component (
xapp-oai submodule) connects the xApp with the RIC. In downstream (from the xApp to the gNB), the connector receives our custom sm buffers to be encapsulated in E2AP messages and sent to the RIC. In upstream (from the gNB to the xApp), the connector retrieves custom Service Model (SM) buffers from E2AP to be sent to the xApp.
See ColO-RAN for a detailed description of the RIC components.
Similar to what the xApp SM Connector does, the E2SIM component (
e2sim submodule) encapsulates/decapsulates custom SM buffers that are to be sent or that are received from the gNB. It communicates with the gNB via UDP sockets.
This component (in the
e2protobuf submodule) is a simple gNB emulator to test custom SMs without running a real gNB.
This repository contains our custom protobuf definitions (in the
This component (
openairinterface5g submodule) is a fork of OpenAirInterface with the addition of a custom xApp agent.
Start by making a reservation on Colosseum that includes
oai-ric (the login credentials are
pass). For the following steps, we recommend using a terminal multiplexer such as
Start the gNB emulator. The emulated gNB is now waiting for incoming messages.
Start the RIC:
Check that the following containers are running by using the command
If in the
e2mgr logs you see something like the following, it means that
e2sim has successfully registered with the RIC:
Start the base xApp container:
Start the xApp SM Connector:
Wait for the following lines to appear:
The SM Connector is now ready to communicate with the base xApp. To run the xApp:
The base xApp will now receive periodic RIC Indication messages from the gNB. When an indication message is received, the xApp sends a control request to write the target RAN parameters with random data. This is how it normally looks like in the base xApp:
The gNB will show something similar to the following:
This requires a Colosseum reservation with
eugenio-ran-dev. The procedure is similar to the gNB emulator case, with the following differences:
Start the RIC in the SRN running with
Start the gNB in the SRN running with
In the same SRN, also start the