blob: 3824f3175d802f21a93f6c9c0c0b89fc34cdb348 [file] [log] [blame]
maximessone6b4d272019-10-31 13:26:13 +01001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. SPDX-License-Identifier: CC-BY-4.0
3
4
elinuxhenrikc7a0d732020-02-04 14:49:59 +01005Requirements for the Non-RT RIC project
6==========================================
maximessone6b4d272019-10-31 13:26:13 +01007
8Find detailed description of what Non-RT RIC is on this `page`_.
9
10.. _page: https://wiki.o-ran-sc.org/display/RICNR/
11
maximessone6b4d272019-10-31 13:26:13 +010012There are functional requirements emitted by O-RAN WG2 for the Non-RT RIC, which are the following:
13
elinuxhenrikc7a0d732020-02-04 14:49:59 +010014#. Non-RT RIC shall support data retrieval and analysis; the data may include performance, configuration or other data related to the application (recommended data shown in required data section for different use cases).
15#. Non-RT RIC shall support relevant AI/ML model training based on the data in 1. for non-real-time optimization of configuration parameters in RAN or Near-RT RIC, as applicable for the use case.
16#. Non-RT RIC shall support relevant AI/ML model training based on the data in 1. for generating/optimizing policies and intents to guide the behavior of applications in Near-RT RIC or RAN, as applicable for the use case.
17#. Non-RT RIC shall support training of relevant AI/ML models based on the data in 1. to be deployed/updated in Near-RT RIC as required by the applications.
18#. Non-RT RIC shall support performance monitoring and evaluation.
19#. Non-RT RIC shall support a fallback mechanism to prevent drastic degradation/fluctuation of performance, e.g. to restore to the previous policy or configuration.
maximessone6b4d272019-10-31 13:26:13 +010020
21The non-functional requirements are the following ones:
22
elinuxhenrikc7a0d732020-02-04 14:49:59 +010023#. Non-RT RIC shall not update the same policy or configuration parameter for a given near-RT RIC or RAN function more often than once per second.
24#. Non-RT RIC shall be able to update policies in several near-RT RICs.
maximessone6b4d272019-10-31 13:26:13 +010025
26Moreover, there are functional requirements regarding the A1 interface:
27
elinuxhenrikc7a0d732020-02-04 14:49:59 +010028#. A1 interface shall support communication of policies/intents from Non-RT RIC to Near-RT RIC.
29#. A1 interface shall support AI/ML model deployment and update from Non-RT RIC to Near-RT RIC.
30#. A1 interface shall support communication of enrichment information from Non-RT RIC to Near-RT RIC.
31#. A1 interface shall support feedback from Near-RT RIC for monitoring AI/ML model performance.
32#. A1 interface shall support the policy/intents feedback from Near-RT RIC to Non-RT RIC.
maximesson780b2bf2019-11-12 16:09:02 +010033
maximessone6b4d272019-10-31 13:26:13 +010034A1 policy procedure
35-------------------
36
37As for A-release, the methods are as follows:
38
39+---------------------+--------------------------+--------------------------+
40| A1 policy procedure | Single policy method | Multiple policies method |
41+---------------------+--------------------------+--------------------------+
42| Create policy | PUT | |
43+---------------------+--------------------------+--------------------------+
44| Query policy | GET | GET (sequence of \*) |
45+---------------------+--------------------------+--------------------------+
46| Update policy | PUT | |
47+---------------------+--------------------------+--------------------------+
48| Delete policy | DELETE | |
49+---------------------+--------------------------+--------------------------+
50| Notify policy | POST | POST |
maximesson780b2bf2019-11-12 16:09:02 +010051+---------------------+--------------------------+--------------------------+
elinuxhenrikc7a0d732020-02-04 14:49:59 +010052
53Policy Agent Overview
54=======================
55
56The Policy Agent maintains a transient ropository of the following items to support R-Apps:
57
58 * All NearRT RICs in the network. This information is configured using the ONAP CDS database (which is using the Cloudify Consul database).
59 * All Policy types for all NearRT RICs
60 * All configured Policy instances in the network
61
62It provides an NBI for the R-Apps (and for the dashboard) for policy management. This is a REST API.
63As an option, policy management can also be done via asynchronous messages through ONAP/Dmaap.
64The NBI provides support for an R-APP to locate the correct NearRT RIC based on identifiers as defined in O1.
65
66The agent monitors all Near-RT RICs and recovers from data inconsistencies, which may happen when (for instance) an Near-RT RIC restarts.
67
68The R-Apps can be monitored so that their Policies can be automatically removed when an R-App is stopped/removed.
69
70On its southbound side the agent can connect to a number of different A1 providers:
71
72 * Directly to the NonRT RIC:
73
74 - OSC API, which is influenced by the A1 standard
75 - The NonRT RIC simulator, which supports the A1 standard with a number of not yet CRs included.
76 * To an ONAP style controller.
77
78Amber release Policy Agent architecture
79-----------------------------------------
80
81.. image:: ./images/NonRtRicComponents.png
82 :scale: 50 %
83
84NonRT RIC components:
85
86 #. Non-RT RIC Dashboard
87 #. Policy agent
88 #. SDNC A1 Controller
89 #. Near-RT RIC Simulator
90
91Dashboard Overview
92===================
93
94The NonRT RIC Dashboard is a graphical user user interface that enables the user to manage the Policies in the network. The dashboard interacts with the Policy agent via a REST API.
95The dashboard generates its GUI from JSON schemas in a model driven fashion.
96
97The dashboards consists of a back end implemented as a Java Springboot application and a fronted developed using the Angular framework.
98
99Amber release Dashboard architecture
100-----------------------------------------
101
102The architecture of the dashboardis as shown on the following picture:
103
104.. image:: ./images/architecture.png
105 :scale: 50 %
106
107The dashboard itself is split
108into the backend and the frontend, and can be deployed following the instructions in the README.md file in the repo.