Versions Compared

Key

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

This page contains step by step tutorials to get you started with installing and running the Bronze Release features.



Section


Column
width25%

SMO Installation

The goal of this tutorial is to install and run the Service Management Orchestrator


Column
width25%

Near Realtime RIC Installation 

The goal of this tutorial is to install and run the Near Realtime RIC 


Column
width25%

Hello World xApp Use Case Flows

This is a step by step tutorial to on-board, deploy and run a Hello World xApp in a Near Realtime RAN Intelligent Controller (RIC) instance.

How to onboard, deploy and run a Hello World xApp on RIC Video (18 minutes)


Column
width25%

Running A1 and O1 Use Case Flows

The goal of this tutorial is to run the A1 and O1 interfaces 



Image Added

Figure 1: Demo deployment architecture

Bronze Demonstrations

Deployment

Minimum deployment for running Bronze use case demos.

SMO Cluster:

  • ONAP "Lite" (Minimalistic for running SDNC/SDNR for RSAC Bronze O1)
    • Minimum replicas
    • VES collector is deployed standalone in ricaux namespace (w/o rest of DCAE, using a helm chart derived from the ONAP VES Cloudify Blueprint)
  • Non RT RIC

Near RT RIC Cluster:

  • Near RT RIC Platform
  • Near RT RIC Applications

Videos

Image Added

Figure 2: O-RAN architecture overview

In the O-RAN architecture, the radio side includes Near-RT RIC, O-CU-CP, O-CU-UP, O-DU, and O-RU. The management side includes Service Management and Orchestration Framework that contains a Non-RT-RIC function.

O-RAN Alliance Components Definition

For the purposes of the present document, the terms and definitions given in 3GPP TR 21.905 [1] and the following apply. A term defined in the present document takes precedence over the definition of the same term, if any, in 3GPP TR 21.905 [1].

near-RT RIC: O-RAN near-real-time RAN Intelligent Controller: a logical function that enables near-real-time control and optimization of O-RAN elements and resources via fine-grained data collection and actions over E2 interface.

non-RT RIC: O-RAN non-real-time RAN Intelligent Controller: a logical function that enables non-real-time control and optimization of RAN elements and resources, AI/ML workflow including model training and updates, and policy-based guidance of applications/features in near-RT RIC.

NMS: A Network Management System

O-CU: O-RAN Central Unit: a logical node hosting RRC, SDAP and PDCP protocols

O-CU-CP: O-RAN Central Unit – Control Plane: a logical node hosting the RRC and the control plane part of the PDCP protocol

O-CU-UP: O-RAN Central Unit – User Plane: a logical node hosting the user plane part of the PDCP protocol and the SDAP protocol

O-DU: O-RAN Distributed Unit: a logical node hosting RLC/MAC/High-PHY layers based on a lower layer functional split.

O-RU: O-RAN Radio Unit: a logical node hosting Low-PHY layer and RF processing based on a lower layer functional split. This is similar to 3GPP’s “TRP” or “RRH” but more specific in including the Low-PHY layer (FFT/iFFT, PRACH extraction).

O1: Interface between management entities in Service Management and Orchestration Framework and O-RAN managed elements, for operation and management, by which FCAPS management, Software management, File management shall be achieved.

O1*: Interface between Service Management and Orchestration Framework and Infrastructure Management Framework supporting O-RAN virtual network functions.

xAPP: Independent software plug-in to the Near-RT RIC platform to provide functional extensibility to the RAN by third parties.

VM Minimum Requirements for RIC

NOTE: sudo access is required for installation

Getting Started PDF

Step 1: Obtaining the Deployment Scripts and Charts

NOTE:  cd to your directory where installation will be, i.e. /home/user

Run ...

$ git clone http://gerrit.o-ran-sc.org/r/it/dep

$ cd dep
$ git submodule update --init --recursive --remote
Step 2: Generation of cloud-init Script Run ...

$ sudo -i
Note: After doing sudo -i you will need to return to user home directory. You will need to go /home/user.

$ cd /home/user/dep/tools/k8s/bin
./gen-cloud-init.sh   # will generate the stack install script for what RIC needsStep 3: Update Version Combination

Run ...

$ cd ../etc
$ vi infra.rc   # Review and edit the versions, using the combination for ONAP Frankfurt
$ cd ../bin
$ ./gen-cloud-init.sh   # The stack install script for ONAP will be generated.

Step 4: Installation of Kubernetes, Helm, Docker, etc.

Run ...

$ ./k8s-1node-cloud-init-k_1_16-h_2_12-d_cur.sh

NOTE: Be patient as this takes some time to complete. Upon completion of this script, the VM will be rebooted.  You will then need to login once again.

$ sudo -i

$ kubectl get pods --all-namespaces  # There should be  9 pods running in kube-system namespace.

Step 5:  Deploy RIC using Recipe

Run ...

$ cd /home/user/dep/bin
$ ./deploy-ric-platform -f ../RECIPE_EXAMPLE/PLATFORM/example_recipe.yaml
$ kubectl get pods -n ricplt   # There should be ~16 pods running in the ricplt namespace.  

Step 6:  Onboarding an xAPP
Run...
$ cd /home/user/dep
# Create the file that will contain the URL used to start the on-boarding process...
$ echo '{ "config-file.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/hw.git;a=blob_plain;f=init/config-file.json;hb=HEAD" }' > onboard.hw.url
# Start on-boarding process...
$ curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.hw.url"
NOTE:  Message "Created" will b e displayed upon completion# Verify list of all on-boarded xApps...
$ curl --location --request GET "http://$(hostname):32080/onboard/api/v1/charts"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...

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

#  Verify xApp is running...

kubectl get pods -n ricxapp

#  View logs...

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

Helpful Hints

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

Contributorsmodelistscopedescendantslimit5showLastTimetrueorderupdate