.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
-.. Copyright (C) 2020 Nordix
+.. Copyright (C) 2021 Nordix
Developer Guide
===============
-This document provides a quickstart for developers of the Non-RT RIC.
+This document provides a quickstart for developers of the Non-RT RIC parts.
-SDNC A1 Controller
-==================
+Additional developer guides are available on the `O-RAN SC NONRTRIC Developer wiki <https://wiki.o-ran-sc.org/display/RICNR/Release+E>`_.
-Prerequisites
--------------
+A1 Policy Management Service & SDNC/A1 Controller & A1 Adapter
+--------------------------------------------------------------
-1. Java development kit (JDK), version 11
-2. Maven dependency-management tool, version 3.6 or later
-3. Python, version 2
-4. Docker, version 19.03.1 or latest
-5. Docker Compose, version 1.24.1 or latest
+The A1 Policy Management Service is implemented in ONAP. For documentation see `ONAP CCSDK documentation <https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/index.html>`_.
+and `wiki <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_.
-Build and run
--------------
-Go to the northbound directory and run this command ::
- mvn clean install
+Information Coordinator Service
+-------------------------------
+The Information Coordinator Service is a Java 11 web application built using the Spring Framework. Using Spring Boot
+dependencies, it runs as a standalone application.
-This will build the project and create artifcats in maven repo
+Its main functionality is to act as a data subscription broker and to decouple data producer from data consumers.
-Go to oam/installation directory and run this command ::
- mvn clean install -P docker
+See the ./config/README file in the *information-coordinator-service* directory Gerrit repo on how to create and setup
+the certificates and private keys needed for HTTPS.
-This will create the docker images required for A1 controller.
+Start standalone
+++++++++++++++++
-After this step check for the docker images created by the maven build with this command ::
- docker images | grep a1-controller
+The project uses Maven. To start the Information Coordinator Service as a freestanding application, run the following
+command in the *information-coordinator-service* directory:
-Go to oam/installation/src/main/yaml and run this command ::
- docker-compose up -d a1-controller
+ +-----------------------------+
+ | mvn spring-boot:run |
+ +-----------------------------+
-This will create the docker containers with the A1 controller image, you can check the status of the docker container using ::
- docker-compose logs -f a1-controller
+There are a few files that needs to be available to run. These are referred to from the application.yaml file.
+The following properties have to be modified:
-The SDNC url to access the Northbound API,
- http://localhost:8282/apidoc/explorer/index.html
+* server.ssl.key-store=./config/keystore.jks
+* app.webclient.trust-store=./config/truststore.jks
+* app.vardata-directory=./target
-Credentials: admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+Start in Docker
++++++++++++++++
-Policy Agent
-============
+To build and deploy the Information Coordinator Service, go to the "information-coordinator-service" folder and run the
+following command:
-The O-RAN Non-RT RIC Policy Agent provides a REST API for management of policices. It provides support for:
+ +-----------------------------+
+ | mvn clean install |
+ +-----------------------------+
- * Supervision of clients (R-APPs) to eliminate stray policies in case of failure
- * Consistency monitoring of the SMO view of policies and the actual situation in the RICs
- * Consistency monitoring of RIC capabilities (policy types)
- * Policy configuration. This includes:
+Then start the container by running the following command:
- * One REST API towards all RICs in the network
- * Query functions that can find all policies in a RIC, all policies owned by a service (R-APP), all policies of a type etc.
- * Maps O1 resources (ManagedElement) as defined in O1 to the controlling RIC.
+ +--------------------------------------------------------------------+
+ | docker run nonrtric-information-coordinator-service |
+ +--------------------------------------------------------------------+
-| The Policy Agent can be accessed over the REST API or through the DMaaP Interface. The REST API is documented in the
-| *nonrtric/policy-agent/docs/api.yaml* file. Please refer to the README file of Policy Agent to know more about the API's.
+DMaaP Adaptor Service
+---------------------
-End-to-end call
-===============
+This Java implementation is run in the same way as the Information Coordinator Service.
+
+The following properties in the application.yaml file have to be modified:
+* server.ssl.key-store=./config/keystore.jks
+* app.webclient.trust-store=./config/truststore.jks
+* app.configuration-filepath=./src/test/resources/test_application_configuration.json
+
+DMaaP Mediator Producer
+-----------------------
+
+To build and run this Go implementation, see the README.md file under the folder "dmaap-mediator-producer" in the "nonrtric" repo.
+
+O-DU & O-RU fronthaul recovery
+------------------------------
+
+See the page in Wiki: `O-RU Fronthaul Recovery usecase <https://wiki.o-ran-sc.org/display/RICNR/O-RU+Fronthaul+Recovery+usecase>`_.
+
+O-DU Slicing use cases
+----------------------
+
+See the page in Wiki: `O-DU Slice Assurance usecase <https://wiki.o-ran-sc.org/display/RICNR/O-DU+Slice+Assurance+usecase>`_.
+
+Helm Manager
+------------
+
+See the page in Wiki: `Release E <https://wiki.o-ran-sc.org/display/RICNR/Release+E>`_.
+
+Kubernetes deployment
+=====================
+
+Non-RT RIC can be also deployed in a Kubernetes cluster, `it/dep repository <https://gerrit.o-ran-sc.org/r/admin/repos/it/dep>`_.
+hosts deployment and integration artifacts. Instructions and helm charts to deploy the Non-RT-RIC functions in the
+OSC NONRTRIC integrated test environment can be found in the *./nonrtric* directory.
+
+For more information on installation of NonRT-RIC in Kubernetes, see `Deploy NONRTRIC in Kubernetes <https://wiki.o-ran-sc.org/display/RICNR/Deploy+NONRTRIC+in+Kubernetes>`_.
-In order to make a complete end-to-end call, follow the instructions given in this `guide`_.
+For more information see `Integration and Testing documentation on the O-RAN-SC wiki <https://docs.o-ran-sc.org/projects/o-ran-sc-it-dep/en/latest/index.html>`_.
-.. _guide: https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=12157166