blob: b3651f43cc79e7d41ffd71fe8f7a541232daba6d [file] [log] [blame]
maximesson94978f42019-11-13 11:53:26 +01001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. SPDX-License-Identifier: CC-BY-4.0
Lathish1279d192019-10-10 13:30:07 +01003
elinuxhenrikc7a0d732020-02-04 14:49:59 +01004Developer Guide
5===============
Lathish1279d192019-10-10 13:30:07 +01006
elinuxhenrikc7a0d732020-02-04 14:49:59 +01007This document provides a quickstart for developers of the Non-RT RIC.
8
9SDNC A1 Controller
10==================================
Lathish1279d192019-10-10 13:30:07 +010011
12Prerequisites
13-------------
14
151. Java development kit (JDK), version 8
162. Maven dependency-management tool, version 3.4 or later
173. Python, version 2
184. Docker, version 19.03.1 or later
195. Docker Compose, version 1.24.1 or later
20
elinuxhenrikc7a0d732020-02-04 14:49:59 +010021Build and run
22-------------
Lathish1279d192019-10-10 13:30:07 +010023Go to the northbound directory and run this command ::
24 mvn clean install
25
26This will build the project and create artifcats in maven repo
27
28Go to oam/installation directory and run this command ::
29 mvn clean install -P docker
maximessone6b4d272019-10-31 13:26:13 +010030
Lathish1279d192019-10-10 13:30:07 +010031This will create the docker images required for sdnc
32
33After this step check for the docker images created by the maven build with this command ::
34 docker images | grep sdnc
35
36Go to oam/installation/src/main/yaml and run this command ::
37 docker-compose up -d sdnc
38
39This will create the docker containers with the sdnc image, you can check the status of the docker container using ::
40 docker-compose logs -f sdnc
41
42The SDNC url to access the Northbound API,
43 http://localhost:8282/apidoc/explorer/index.html
44
maximessone6b4d272019-10-31 13:26:13 +010045Credentials: admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
Lathish1279d192019-10-10 13:30:07 +010046
Lathishe1041aa2020-01-31 14:01:45 +000047Policy Agent
elinuxhenrikc7a0d732020-02-04 14:49:59 +010048============================
elinuxhenrik71061052020-02-03 11:11:37 +010049The O-RAN NonRT RIC PolicyAgent provides a REST API for management of policices. It provides support for:
50
51 * Supervision of clients (R-APPs) to eliminate stray policies in case of failure
52 * Consistency monitoring of the SMO view of policies and the actual situation in the RICs
53 * Consistency monitoring of RIC capabilities (policy types)
54 * Policy configuration. This includes:
55
56 * One REST API towards all RICs in the network
57 * Query functions that can find all policies in a RIC, all policies owned by a service (R-APP), all policies of a type etc.
58 * Maps O1 resources (ManagedElement) as defined in O1 to the controlling RIC.
elinuxhenrikc7a0d732020-02-04 14:49:59 +010059
60| The PolicyAgent can be accessed over the REST API or through the DMaaP Interface. The REST API is documented in the
61| *nonrtric/policy-agent/docs/api.yaml* file. Please refer to the README file of PolicyAgent to know more about the API's.
Lathishe1041aa2020-01-31 14:01:45 +000062
63
elinuxhenrikc7a0d732020-02-04 14:49:59 +010064Near-RT RIC Simulator
maximesson780b2bf2019-11-12 16:09:02 +010065=====================================
Lathish1279d192019-10-10 13:30:07 +010066
elinuxhenrikc7a0d732020-02-04 14:49:59 +010067
Lathish1279d192019-10-10 13:30:07 +010068Prerequisites
69-------------
elinuxhenrikc7a0d732020-02-04 14:49:59 +010070 1. Java development kit (JDK), version 8
71 2. Maven dependency-management tool, version 3.4 or later
Lathish1279d192019-10-10 13:30:07 +010072
elinuxhenrikc7a0d732020-02-04 14:49:59 +010073Build and run
74-------------
Lathish1279d192019-10-10 13:30:07 +010075
maximessone3954c42020-02-24 17:15:50 +010076Go to the near-rt-ric-simulator/ric-plt-a1/ directory and run this command::
Lathish1279d192019-10-10 13:30:07 +010077 mvn clean install
elinuxhenrikc7a0d732020-02-04 14:49:59 +010078The docker image can be built using::
79 docker build -t {desiredImageName} .
80The image can be run using the command::
81 docker run -it -p {desiredPort}:8085 {desiredImageName}
Lathish1279d192019-10-10 13:30:07 +010082
elinuxhenrikc7a0d732020-02-04 14:49:59 +010083The functions written in *a1.py* are the ones matching the requests listed in the A1 open api yaml file. The functions written in *main.py* are the ones used for development purpose.
Lathish1279d192019-10-10 13:30:07 +010084
elinuxhenrikc7a0d732020-02-04 14:49:59 +010085Different error codes can be thrown back according to the yaml file. In order to simulate an error code, simply add the query ?code={desiredCodeNumber} at the end of the address in the curl request.
maximessone6b4d272019-10-31 13:26:13 +010086
maximessone3954c42020-02-24 17:15:50 +010087For running the simulator outside of a docker container, run ./run_me.sh. It is possible to use the port of your choice, by adding it in the command: ./run_me.sh {desiredPort}.
88After that, it is the exact same use with or without a container.
89
maximessone6b4d272019-10-31 13:26:13 +010090End-to-end call
maximesson780b2bf2019-11-12 16:09:02 +010091===============
maximessone6b4d272019-10-31 13:26:13 +010092
93In order to make a complete end-to-end call, follow the instructions given in this `guide`_.
94
elinuxhenrikc7a0d732020-02-04 14:49:59 +010095.. _guide: https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=12157166