Introduction

Performance RIC benchmarking is a feature that aims to provide the performance metrics on both the RAN (Radio Access Network) and Near-RT RIC platform. It involves the communication of E2-simulator from RAN side to Near-RT RIC platform infrastructure that uses the xApp onboarded on RIC platform. The xApp that interacts messages with E2simulator through the Near RT RIC platform pods and records the time that provides metrics on latency on the RIC platform/throughput on the xApp onboarded on RIC platform is termed as Bouncer xApp.


Features:    


Architecture:



 



Prerequisites:

Near-RT RIC platform setup is required. Link for Near-RT RIC installation.

E2-interface (E2-Simulator) code needs to be deployed.

The Bouncer xApp needs to be deployed and onboarded on the Near RT RIC platform.


Building xApp:

docker build -f Dockerfile -t nexus3.o-ran-sc.org:10004/oran-ric/bouncer_test:1.0.0 .

docker push nexus3.o-ran-sc.org:10004/oran-ric/bouncer_test:1.0.0


Preparing an xApp for onboarding:

Here we are preparing for API calls into the xApp On-Boarder by providing the locations of the xApp descriptors:


Onboarding of xApp:

STEP -1:

echo '{"config-file.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/bouncer.git;a=blob_plain;f=Bouncer/init/config-file.json;hb=HEAD" }' > onboard.bouncer.url

STEP -2:

curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download"  --header 'Content-Type: application/json' --data-binary "@./onboard.bouncer.url"

To view onboarded charts:

curl --location --request GET "http://$(hostname):32080/onboard/api/v1/charts"


STEP -3: Deploying xApp 

Deploy the xApp by invoking the xApp Manager's API.
Note that the names of the xApp to be deployed must match with what the on-boarder has.
Once receiving the deploy API call, the xApp Manager will make API call into Helm/Kubernetes to deploy the xApp's Helm chart.
The Routing Manager is also involved if the xApp needs to process RMR messages, – it will complete the routes and send out route updates.

curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "bouncer-xapp"}'


To delete an onboarded xApp:

curl --location --request DELETE  "http://$(hostname):32080/appmgr/ric/v1/xapps/bouncer-xapp"