Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Up-to-date information

See section "Demo on how to deploy the near-RT RIC, compile and connect the E2 simulator, compile the hello-world go xapp and how use the dms_cli to deploy it" in 2022-05-24 Release F or generally the links here: Introduction and guides#Installingthenear-RTRIC


Some old information from 2020 related to A1 (not sure if still works)


Create a Policy Type

Here we define a new policy type and call the A1 mediator to create such a policy type.

...

  • Near Realtime RIC installation completed
  • Near Realtime RIC  up and running

   # kubectl get pods -n ricplt   # There should be ~16 pods running in the ricplt namespace.  

...

Run ...

$ sudo -i

# Working directory will be dep where near realtime ric is deployed

$ cd demo

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

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

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

...

Run...

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

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

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

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

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

$ kubectl get pods -n ricplt    # Find pod with name dbprepopjob...

kubectl describe pod dbprepopjob-XXXXX-n ricplt  # Should see container started.

...

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

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

#  The outputted script is will be used for preparing K8 cluster for RIC to deploy to file is  "k8s-1node-cloud-init-k_1_16-h_2_12-d_cur.sh"

...

Run ...

$ git clone http://gerrit.o-ran-sc.org/r/ric-app/ts

$ cd ts/test/populatedb

$  ./populate_db.sh

NOTE: This will take sometime be patient.  When complete should see RESOURCES: ....

...

Run ...

$ cd ~/dep/
$ POLICY_TYPE_ID="20008"
$

...

 echo '{ "name": "tsapolicy", "description": "tsa parameters", "policy_type_id": 20008, "create_schema": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "TS Policy", "description": "TS policy type", "type": "object", "properties": { "threshold": { "type": "integer", "default": 0 } }, "additionalProperties": false } } ' > ts-policy-type-20008.json
$ curl -v -X PUT "http://$(hostname):32080/a1mediator/a1-p/policytypes/${POLICY_TYPE_ID}"   -H "accept: application/json" -H "Content-Type: application/json"   -d @./ts-policy-type-${POLICY_TYPE_ID}.json

# list policy types

List Policy Types

We now should see the newly created policy type when querying the A1 mediator.


Run ...

...

$ curl -X GET --header "Content-Type: application/json" --header "accept: application/json"   http://$(hostname):32080/a1mediator/a1-p/policytypes

...

Create a Policy Instance

Policy type is merely a declaration.  Now we create a policy instance, filling the properties with actual values.  This is also carried out by the A1 mediator. 

A1 mediator will distribute the new policy instance to the Traffic Steering xApp. 

And then we should see that the TS xApp receives this policy instancee and its behavior of "filtering RAN data by threshold" changing to using the new threshold value.

Run...

...

$ POLICY_ID="tsapolicy145"

...

$ curl -X PUT --header "Content-Type: application/json"   --data "{\"threshold\" : 5}"   http://$(hostname):32080/a1mediator/a1-p/policytypes/${POLICY_TYPE_ID}/policies/${POLICY_ID

...

Step 7:  Deploy Test xApp (HelloWorld xApp)

Run..

#  Verify xApp is not running...

kubectl get pods -n ricxapp

# Call xApp Manager to deploy HelloWorld xApp...

...

}

...

#  Verify xApp is running...

kubectl get pods -n ricxapp

#  View logs...

$ kubectl logs -n ricxapp <name of POD retrieved from statement above>

...

Kubectl commads:

kubectl get pods -n nampespace - gets a list of Pods running

kubectl get logs -n namespace name_of_running_pod

Complete these tasks to get started

Recent space activity

Recently Updated
typespage, comment, blogpost
max5
hideHeadingtrue
themesocial

Space contributors

...