Architecture introduction

Overall architecture (not component-specific)

Installing the near-RT RIC

Outdated: Bronze release (Jun-21-2020) Getting StartedNear Realtime RIC Installation (but similar sequence is used in Cherry and Dawn)

Generally the latest instructions: → Installing Near Realtime RIC in RIC Cluster

There's a demo video which shows how to deploy the near-RT RIC, connect an E2 node (gNB simulator) to it and how to deploy an xApp using the DMS CLI:

List of release docker images:

Using the E2 simulator from O-RAN-SC

see here: E2 Simulator#Buildingdockerimageandrunningsimulatorinstance


An example xApp using the Golang xApp framework: link and the xApp_Writer_s_Guide_v2.pdf

Also check the "md" files in the base directory of many of the RIC repositories by name in gerrit.

Also check the currently still somewhat empty information in readthedocs component-by-component.

Xapp frameworks in general: see item with same name "Xapp frameworks in general:" in the "external interfaces" section below.

External interfaces

The RIC platform has the following external interfaces. Note that additional per-component documentation can be found here: link


(2023-06-30) Since the F release we support E2APv2.0. The older protocol versions - E2APv1.1 and E2AP1.0 - are not supported anymore (use old OSC near-RT RIC releases if needed (The E release has E2APv1.1 and is backwards compatible with E2APv1.0); or upgrade). Some features that are worthwhile to point out as supported:

  • OID support in function definitions (RIC-640, implemented in E, Added in E2APv1.1)
  • configuration transfer capabilities (RIC-638, implemented in F)

Not supported

  • no RIC-784 (timer handling in E2 control messages),
  • no RIC-785 (error indication handling),
  • no RIC-783 (support for control ack to selected xapps)
  • no E2 Reset from RIC to RAN (RIC-387) - the other direction from RAN to RIC (RIC-386) is supported.
  • In submgr we only support Subscriptions with single actions (RIC-75).
  • No support for multiple TNL associations, i.e., no E2 Connection Update procedure (RIC-639)
  • RIC subscription delete required is terminated by the submgr (the interface towards xApps for this is coming only via RIC-967).
  • No support for the E2 removal procedure (simple SCTP disconnect is currently the way)

Note that the RIC platform is generally independent of E2SMs (E2 service models) and E2APv1.0, 1.1, 2.0 work with the various E2SMs as there are no dependencies.

Xapp Frameworks

  • Support for netconf "Hello exchange" (incl. capability exchange)
  • Alarms as VES events as per RIC Alarm System
  • get E2 stats (on number of packets over E2) via the path E2T->Prometheus->VESPA→(ONAP). Requires setting the environment variable VESMGR_PLT_CFG_FILE which contains the VESPA mapping for this path: Prometheus->VESPA

Support for O2 use case "Deploy xApp in near-RT RIC" in WG6's O-RAN orchestration use cases v2.0. This is done as per the CLI that is in this commit 


(2021-05-25) Support for A1-Policy and A1-EI as per A1APv3.0 and A1APv3.1. Note that the A1 mediator in the RIC platform is independent of A1TD (A1 type definitions) and passes them as opaque blobs to xApps. Also A1 mediator only handles numeric policy types and not as in the standard a string.


RMR: Check the read-the-docs page: Additionally you might read RIC Message Router (RMR)

Subscription manager: and REST API: link

Xapp onboarding and deployment: check section "RIC applications" in on how to use the dms_cli to onboard and deploy xApps. Onboarding is the act of generating a Helm chart for the xApp from the its xApp descriptor. Using the generated helm chart (which is specific to a particular RIC instance) the xApp can be deployed.

Generally check the read-the-docs pages:

  • No labels


  1. I would like to submit proposal for NR-RIC WG. Can someone please help me with the process of submitting the proposal?

    1. This is an O-RAN alliance subgroup. Did you ever get answer to this question? if not, please send me an e-mail Thoralf Czichy using .

  2. Hello, I'm not sure if this is the right topic, but I was wondering whether is there any difference on running an xApp using dms_cli tool and simple using helm to run the xApp pod. Does the dms_cli perform any kind of "registration" of the xApp in the platform? Or simple running a pod is enough?


  3. “dms_cli” is basically a wrapper around helm. It generated helm charts that include all parameters needed by xApps on a particular RIC instance. These helm charts are then deployed. You could work with helm charts only as well. Registration of the xapps is done by the xApp itself as part of its startup. Eventually we will need to give xApps an identity and security token and I always thought that the dms_cli will play a role in that, but that concept isn’t yet there.

    1. Hello Mr Czichy,

         Perfectly clear! Thank you very much for the detailed answer! I asked about that because I intend to use skaffold as a debug tool and it deploys pods only using helm charts. So I'll carry on with this idea. If the feature that you mentioned (id or token) eventually come to be implemented I'll see how to workout. Thank you very much!

  4. Hello. Sorry for duplicated questions. I'm hoping to get advice on my problem from a wider audience. 

    I'm now trying to implement RIC in our lab by following the instructions in the demo. The instruction looks straightforward but I'm stuck in the step for k8s installation. As demonstrated in the guidance, I used ./  However, the outcome of this command didn't seem to be successful. Since I'm not an expert in Linux, this issue makes me frustrated as I am not sure about the right direction to debug. 

    The execution outcome of this command is very long so I inserted a txt file for your reference. Please could Thoralf or anyone in the community take a look and advise? Thank you in advance.


  5. Hello! Now I'm trying to install oran software to do some experiment in my lab and it's quite hard for me.

    I have a question about installing near rt ric.

    I found 2 version of installing near rt ric guide

    The one is here

    And another one is here

    In the first guide, there are RIC cluster and AUX cluster in near-rt-ric. Also the installing is based on ubuntu 18.04 version

    But there is only RIC cluster in the letter guide and the installing is based on ubuntu 20.04 vestion.

    So I was wondering whether there is any trouble to operate Oran or not even if I use different version of ubuntu versioin (e.g AUX cluster in ubuntu18.04 and RIC cluster in ubuntu20.04)

    And  also what's the difference the way to install ric cluster between the first guide and letter guide?

    Thank you

    Best regards.

    1. pls. see the sprint demos for the latest guide (video): 2023-12-19 Release I→ How to deploy the near-RT RIC?