Skip to end of metadata
Go to start of metadata

Architecture for Honolulu Release:

Non-RT RIC components:

A1 Policy Management GUI / NONRTRIC Dashboard (in O-RAN Source Community (OSC)) (Wiki)

A1 Policy Management Service (In ONAP CCSDK/SDNC)


Near-RT RIC / A1 Simulator (in O-RAN Source Community (OSC)) (Wiki)

The Gerri Repos for code: ONAP CCSSDK (O-RAN), with support functions available in OSC repos: OSC A1-Simulator & OSC NONRTRIC Control Panel

ONAP A1 Policy Management Service (“Policy Agent”) (ONAP CCDSK)

The Policy Management Service is a micro service which maintains a transient repository of:

  • All A1 policies instances in the network. Each policy is targeted to a Near-RT RIC instance and is owned by a 'service' (R-APP or the NONRTRIC Dashboard).
  • All Near-RT RICs in the network. This information can be maintained using the ONAP CDS database (which is using the Cloudify Consul database) or using a plain text file.
  • All Policy types supported by each Near-RT RIC

The service provides :

  • Unified REST API for managing A1 Policies in all near-RT RICs.
  • A DMAAP API for A1 Policy management.
  • Synchronized view of A1 Policy instances for each R-APP
  • Synchronized view of A1 Policy instances in each Near-RT RIC
  • Synchronized view of A1 Policy types supported by each Near-RT RIC
  • Lookup service to find the Near-RT RIC to control resources in the RAN as defined in  O1 (e.g. which Near-RT RIC should be accessed to control a certain CU or DU, which in turn controls a certain cell).
  • Monitors all Near-RT RICs and maintains data consistency  – e.g. recovery from Near-RT RIC restarts
  • Support for different Southbound APIs  to the Near-RT RICs (different versions of the A1-P and other similar APIs).

HTTPS can be configured to use a supplied certificate/private key and to validate peers towards a list of trusted CAs/certs.
There is also support for tunneling HTTP/HTTPS through a HTTP Proxy.

ONAP A1 Adapter (part of ONAP CCSDK/SDNC):

Mediation point for A1 interface termination in SMO/Non-RT RIC

  • Implemented as OSGI Feature/Bundles
  • A1 Rest southbound
  • NETCONF YANG Northbound
  • RESTCONF > NETCONF adapter
  • Mapping logic / Provider
  • Can be included in an any SDNC/CCSDK persona

OSC A1 Policy Management GUI / NONRTRIC Dashboard

Graphical user interface. This tool is available in O-RAN SC and is not essential for the A1 Policies / Non-RT-RIC.

  • View and Manage A1 policies in the RAN (Near-RT RICs)
  • Interacts with the Policy Management Services’s NBI (REST API)
  • Graphical A1 policy creation/editing is model-driven, based on policy type’s JSON schema
  • Frontend: Angular framework
  • Backend Java Springboot application
  • Please refer this developer guide to set up in your local environment.

OSC Near-RT RIC Simulator / A1 Simulator:

A1 simulator used for testing purposes. This tool is available in O-RAN SC and is not essential for the A1 Policies / Non-RT-RIC.

  • Used to create multiple stateful A1 providers (simulated Near-RT RICs)
  • Implemented as a Java Springboot application
  • Swagger-based northbound interface, so easy to change the A1 profile exposed
  • No labels


  1. Hi Muhammad Rehan Raza ,

    We are facing a issue/bug while using A1-Policy-Management Service(H release).We are able to perform  policy CRUD operations on the configured near-rt-Ric's but the RicSuperVision Class which is doing auto sync with the configured near-rt-Ric's every 1 minute is causing a issue.

    Its recreating policy instances in Ric's even though its already present in the Ric ,its  deleting the same instance and re-creating it again for the sake of synchronization.

    Note: I am using transient as false while creating policy instance.

    Any help is apricated.

  2. Hi,

    Someone has had the same problem before. Then there was two PMS instances running that were competing (or two ric entries in the configuration referring to the same nearRT RIC (same URL)).

    At regular intervals, a consistency check is run. And the picture of the NearRT-RIC and the PMS differs, a synch is done.
    If transient=false, the policy will be recreated.

    You can enable traces like this (just change the IP/port to the right one):
    curl -i -X POST  -H 'Content-Type: application/json' -d '{"configuredLevel":"debug"}'

    You can read the log contents like this:
    curl  -i -X GET

  3. Hi Patrik Buhr ,

    Thank you for your reply.

    We are having two different nearRT-RIC's (different URL's port is different).Also, I have enabled TRACE level logs 

    Apart from above issue, other issue is that if policy creation request fails with 400 error code ,RicSupervision is deleting all existing instances of that Ric only and recreating only few instances which are available in local repo/cache.

    1. Hi Vishal Varvate Patrik Buhr 
      It would probably be better to take this discussion on the mailing list ...

      Perhaps Vishal Varvate - in an email - you could attach your log file and details of your setup / configuration.