How to setup an OAI-based O-RAN deployment with a basic monitoring xApp and an advanced xApp that manages GBR SLA
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 5G NR SA network composed of a gNB and a few UEs on Colosseum. Additionally, this tutorial shows how to deploy a nRT-RIC and an xApp developed to manage Guaranteed Bit Rate (GBR) Service Level Agreements (SLAs) of the RAN UEs.
More details in this paper:
E. Moro, M. Polese, A. Capone, T. Melodia, "An Open RAN Framework for the Dynamic Control of 5G Service Level Agreements," in Proceedings of IEEE NFV-SDN, Dresden, Germany, November 2023. [pdf] [bibtex]
Please consider citing the paper above if you use the O-RAN-compliant OAI gNB, the xApp SDK and the custom E2SM definitions in your research.
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.
Please make a Colosseum reservation with the following images (credentials are root
/pass
for all):
oai-core-gbr
for the core networkoai-ran-gbr
for both the gNB and the UEs (at least 3 UEs are suggested)nrt-ric-gbr
for the nRT-RIC and the xAppOnce the reservation is ready, start the core network in the oai-core
SRN:
Then start the near-RT RIC in the oai-ric
SRN:
and take note of the IP address of the SRN:
You can check if all the ric components are running by using the command docker ps
, whose result should be this:
Start the gNB in the oai-ran-gbr
SRN:
In the same SRN, start the e2term
:
where RIC_IP
is the col0
IP address you have previously found, and RIC_PORT
is the default 36422
. The E2 Agent of the gNB is successfully connected with the RIC if the following line is shown:
Before connecting the reserved UEs to the gNB, start the following Colosseum RF scenario:
Now connect all the UEs by running the following in the UE containers:
We now start the xApp. Back to the RIC container, attach a terminal to the xApp
docker container:
Different SLA management xApps are available, please refer to the paper above for all the details. We start the advanced xApp implementing an elastic SLA policy:
Finally, we can generate downlink UE traffic as follows. In every UE container, add the route to the core network host:
and take note of the UE GPRS Tunneling Protocol (GTP) endpoint IP:
Run an iperf3
server in the UE SRN:
and test the connection in downlink by running this in the oai-core
SRN:
where UE_IP is the UE GTP endpoint IP.