RC xApp

Rc xAPP Introduction

Rc xapp is deployed on RIC Platform and provides the basic implementation of  initiating spec compliant E2-SM RC based RIC Control Request message to the RAN/E2 Node. GRPC and RMR is used for communication.

GRPC interface support is introduced so other xapps can initiate GRPC based control Request to rc xapp, which in turn shall send the RIC Control Request to RAN/E2 Node

Communication between Rc xapp and RAN /E2 node uses RMR routing.

Rc xAPP Features

Rc xapp acts as a GRPC server which receives a GRPC request  containing RIC control request parameters from a  GRPC client. Using the parameters received from the GRPC client RIC CONTROL Request shall be constructed and encoded in ASN1 format and sent to RAN/E2 Node using RMR.

Rc xapp supports basic Control Request initiation towards E2Node based on RAN Name parameter received in GRPC Control request.If the RAN Name received in GRPC request is in CONNECTED state RIC Control request shall be initiated towards RAN/E2 Node.

If any of the Mandatory parameters are not received as per the GRPC Proto file definition, GRPC Error response shall be sent to  the client and no RIC Control Request shall be initiated.

Rc xAPP repo

Rc xapp code can be cloned using below command

git clone https://gerrit.o-ran-sc.org/r/ric-app/rc

Rc xAPP Deployment

Steps to onboard the xapp
1)echo '{ "config-file.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/rc.git;a=blob_plain;f=xapp-descriptor/config.json;hb=HEAD","controls-schema.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/rc.git;a=blob_plain;f=xapp-descriptor/schema.json;hb=HEAD" }' > onboard.rc.url

2)Onboard the rc xapp using the below command :
curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.rc.url"

After this command: xapp should be created
Eg:
curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.rc.url"
{
"status": "Created"
}
3)Deploying the xapp:
Eg:
curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "rc"}'
{
"instances":null,"name":"rc","status":"deployed","version":"1.0"
}

after this step the xapp should be in running state

ricxapp ricxapp-rc-5ccdcc9f6f-ktq7w 1/1 Running 0 88m

4) restart rtMgr so rmr is ready