This page describes how to get the release A version of NonRTRIC up and running locally with two separate NearRT-RIC simulator docker containers.

All four components of the NonRTRIC repo run inside docker containers and communicate via a docker network. Details of the architecture can be found from Release A page.

Project Requirements

Build Code

Download the nonrtric repo: 

     git clone "https://gerrit.o-ran-sc.org/r/nonrtric" -b Amber

Configure policy-agent

To support local test with two separate NearRT-RIC simulator instances the following modifications must be done:  


{
   "config": {
      "//description": "Application configuration",
      "ric": [
         {
            "name": "ric1",
            "baseUrl": "http://ric1:8085/",  
            "managedElementIds": [
               "kista_1",
               "kista_2"
            ]
         },
         {
            "name": "ric2",
            "baseUrl": "http://ric2:8085/",
            "managedElementIds": [
               "kista_3",
               "kista_4"
            ]
         }
      ]
   }
}

Verify dashboard configuration

(warning) Note that nonrtric/dashboard/webapp-backend/src/main/resources/application.properties default property value policycontroller.url.prefix = http://policy-agent-container:8081 assumes that policy agent is started with name policy-agent-container and exposes port 8081 (as is done below)! 

Build the code and create docker images

To build docker images of sdnc-a1-controller, policy-agent, near-rt-ric-simulator and nonrtric-dashboard:

cd nonrtric
mvn clean install -Dmaven.test.skip=true

Run A1 Controller Docker Container


Run Near-RT-RIC Simulator Docker Containers

Run Policy-agent Docker Container

(warning) Note on automatic A1 Client selection

Once policy-agent is up and running, it establishes connections to all configured NearRT-RICs. It has multiple A1 clients to select from and selection is done dynamically based on connectivity. Selection of A1 client is not clearly visible for user, but policy-agent logs can be grepped to see which client was selected.

The two grepping examples below show how either SDNC_OSC A1 client or STD A1 client was selected - these translate into options A and B described on the Testing End to End call in release A page.

$ docker logs policy-agent | grep "protocol version"
2020-03-30 05:33:21.765 DEBUG 1 --- [or-http-epoll-2] o.o.policyagent.clients.A1ClientFactory  : Recover ric: ric2, protocol version:SDNC_OSC
2020-03-30 05:33:21.784 DEBUG 1 --- [or-http-epoll-1] o.o.policyagent.clients.A1ClientFactory  : Recover ric: ric1, protocol version:SDNC_OSC


$ docker logs policy-agent | grep "protocol version"
2020-04-03 12:06:54.548 DEBUG 1 --- [or-http-epoll-1] o.o.policyagent.clients.A1ClientFactory  : Recover ric: ric1, protocol version:STD_V1
2020-04-03 12:06:54.552 DEBUG 1 --- [or-http-epoll-2] o.o.policyagent.clients.A1ClientFactory  : Recover ric: ric2, protocol version:STD_V1

Run Non-RT-RIC Dashboard Docker Container

Open Daylight GUI

Dashboard UI