Merge "Adaptations to latest helm participant jar"
[nonrtric.git] / docs / overview.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. Copyright (C) 2021 Nordix
4
5 .. |archpic| image:: ./images/nonrtric-architecture-E.png
6   :alt: Image: O-RAN SC - NONRTRIC Overall Architecture
7
8 Summary
9 -------
10
11 The Non-RealTime RIC (RAN Intelligent Controller) is an Orchestration and Automation function described by the O-RAN Alliance for non-real-time intelligent management of RAN (Radio Access Network) functions. The primary goal of the Non-RealTime RIC is to support non-real-time radio resource management, higher layer procedure optimization, policy optimization in RAN, and providing guidance, parameters, policies and AI/ML models to support the operation of near-RealTime RIC functions in the RAN to achieve higher-level non-real-time objectives. NONRTRIC functions include service and policy management, RAN analytics and model-training for the near-RealTime RICs. The NONRTRIC project provides concepts, specifications, architecture and reference implementations as defined and described by the `O-RAN Alliance <https://www.o-ran.org>`_ architecture.
12
13 The O-RAN-SC NONRTRIC implementation communicates with near-RealTime RIC elements in the RAN via the A1 interface. Using the A1 interface the NONRTRIC will facilitate the provision of policies for individual UEs or groups of UEs; monitor and provide basic feedback on policy state from near-RealTime RICs; provide enrichment information as required by near-RealTime RICs; and facilitate ML model training, distribution and inference in cooperation with the near-RealTime RICs.
14
15 |archpic|
16
17 Find detailed description of the NONRTRIC project see the `O-RAN SC NONRTRIC Project Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_.
18
19 NONRTRIC components
20 -------------------
21
22 These are the components that make up the Non-RT-RIC:
23
24 * Non-RT-RIC Control Panel / Dashboard
25 * A1 Policy Management Service (developed in ONAP)
26 * A1/SDNC Controller & A1 Adapter (Controller plugin)
27 * Information Coordinator Service
28 * Non-RT-RIC (Spring Cloud) Service Gateway
29 * Non-RT-RIC (Kong) Service Exposure Prototyping
30 * Initial Non-RT-RIC App Catalogue
31 * Near-RT-RIC A1 Simulator
32 * DMaap Adaptor
33
34 The code base for "E" Release is in the `NONRTRIC <https://gerrit.o-ran-sc.org/r/admin/repos/nonrtric>`_, `NONRTRIC-ControlPanel <https://gerrit.o-ran-sc.org/r/admin/repos/portal/nonrtric-controlpanel>`_, and `Near-RT-RIC A1-Simulator <https://gerrit.o-ran-sc.org/r/admin/repos/sim/a1-interface>`_ , Gerrit source repositories (E-Release Branch).
35
36 Non-RT-RIC Control Panel / NONRTRIC Dashboard
37 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38
39 Graphical user interface
40
41 * View and Manage A1 policies in the RAN (near-RT-RICs)
42 * Interacts with the Policy agent’s NBI (REST API)
43 * Graphical A1 policy creation/editing is model-driven, based on policy type’s JSON schema
44 * View and manage producers and jobs for the Information coordinator service
45 * Configure A1 Policy Management Service (e.g. add/remove near-rt-rics)
46 * Interacts with the A1-PolicyManagementService & A1-EI-Coordinator (REST NBIs) via Service Exposure gateway
47      
48 Implementation:
49
50 * Frontend: Angular framework
51 * Repo: *portal/nonrtric-controlpanel*
52
53 Please refer the developer guide and the wiki to set up in your local environment.
54
55 More details available at the `NONRTRIC-Portal documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-portal-nonrtric-controlpanel>`_
56
57 A1 Policy Management Service (from ONAP CCSDK)
58 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59
60 A1 Controller Service above A1 Controller/Adaptor that provides:
61
62 * Unified REST & DMaaP NBI APIs for managing A1 Policies in all near-RT-RICs
63
64   + Query A1 Policy Types in near-RT-RICs
65   + Create/Query/Update/Delete A1 Policy Instances in near-RT-RICs
66   + Query Status for A1 Policy Instances
67
68 * Maintains (persistent) cache of RAN’s A1 Policy information
69
70   * Support RAN-wide view of A1 Policy information
71   * Streamline A1 traffic
72   * Enable (optional) re-synchronization after inconsistencies / near-RT-RIC restarts
73   * Supports a large number of near-RT-RICs (& multi-version support)
74   
75 * Converged ONAP & O-RAN-SC A1 Adapter/Controller functions in ONAP SDNC/CCSDK (Optionally deploy without A1 Adaptor to connect direct to near-RT-RICs)
76 * Support for different Southbound connectors per near-RT-RIC - e.g. different A1 versions, different near-RT-RIC version, different A1 adapter/controllers supports different or proprietary A1 controllers/EMSs
77
78 See also: `A1 Policy Management Service in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_  
79
80
81 Implementation:
82 * Implemented as a Java Spring Boot application
83
84 A1/SDNC Controller & A1 Adapter (Controller plugin)
85 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86 Mediation point for A1 interface termination in SMO/NONRTRIC
87
88 * Implemented as CCSDK OSGI Feature/Bundles
89 * A1 REST southbound
90 * RESTCONF Northbound
91 * NETCONF YANG > RESTCONF adapter
92 * SLI Mapping logic supported
93 * Can be included in an any controller based on ONAP CCSDK
94 * Continues to support both a dedicated OSC A1-controller persona and an ONAP SDNC persona  
95
96 See also: `A1 Adapter/Controller Functions in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_  
97   
98 Information Coordination Service
99 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100
101 Coordinate/Register A1-EI Types, Producers, Consumers, and Jobs.
102
103 * Maintains a registry of:
104
105   - A1-EI Data Types / schemas
106   - A1-EI Producers
107   - A1-EI Consumers
108   - A1-EI Jobs
109
110 * A1-EI Query API (e.g. per producer, per consumer, per types)
111 * Query status of A1-EI jobs
112 * Monitors all near-RT-RICs and recovers from inconsistencies
113 * After EI-type/Producer/Consumer/Job is successfully registered delivery/flow can happen directly between A1-EI Producers (in SMO/NONRTRIC domain) and A1-EI consumers (near-RT-RICs in RAN domain)
114 * *Being extended to coordinate non-A1 Information exchange between NONRTRIC Apps*
115
116
117 Implementation:
118
119 * Implemented as a Java Spring Boot application
120
121 Dmaap Adapter
122 ~~~~~~~~~~~~~
123
124 Is a generic information producer, which registers itself as an information producer of information types (in Information Coordination Service).
125 The information types are defined in a configuration file.
126 Information jobs can retrieve data from DMaaP or Kafka topics and push this to data consumers (accessing the ICS API).
127
128 Implementation (2 implementations):
129
130 1. Implementation as a Java Spring Boot application
131 2. Implementation as a Go application
132
133 Non-RT-RIC (Spring Cloud) Service Gateway
134 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135 Support Apps to use A1 Services
136
137 * `Spring Cloud Gateway <https://cloud.spring.io/spring-cloud-gateway>`_ provides the library to build a basic API gateway
138 * Exposes A1 Policy Management Service & Information Coordinator Service.
139 * Additional predicates can be added in code or preferably in the Gateway yaml configuration.
140
141 Implementation:
142
143 * Implemented as a Java Spring Cloud application
144 * Repo: *portal/nonrtric-controlpanel*
145
146
147 Non-RT-RIC (Kong) Service Exposure Prototyping
148 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
149
150 Support Apps to use NONRTRIC, SMO and other App interfaces
151 A building block for coming releases as the R1 Interface concept matures 
152
153 * Support dynamic registration and exposure of service interfaces to Non-RT-RIC applications (& NONRTRIC Control panel)
154 * Extends a static gateway function specifically for NONRTRIC Control panel (described above)
155 * Initial version based on `Kong API Gateway <https://docs.konghq.com/gateway-oss>`_ function
156 * Initial exposure candidates include A1 (NONRTRIC) services & O1 (OAM/SMO) services
157
158 NONRTRIC Kubernetes deployment - including Kong configurations can be found in the OSC `it/dep <https://gerrit.o-ran-sc.org/r/gitweb?p=it/dep.git;a=tree;f=nonrtric/helm;hb=refs/heads/master>`_ Gerrit repo. 
159
160 Initial Non-RT-RIC App Catalogue
161 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162
163 Register for Non-RT-RIC Apps.
164
165 * Non-RT-RIC Apps can be registered / queried
166 * Limited functionality/integration for now
167 * *More work required in coming releases as the rApp concept matures*
168
169 Initial K8S Helm Chart LCM Manager
170 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171
172 Onboard, start, stop, and modify Non-RT-RIC App µServices as Helm Charts
173 *A building block for coming releases as the R-APP concept matures*
174
175 * Interfaces that accepts Non-RT-RIC App µServices Helm Charts
176 * Support basic LCM operations
177 * Onboard, Start, Stop, Modify, Monitor
178 * Initial version co-developed with v. similar functions in ONAP
179 * *Limited functionality/integration for now*
180
181 A1 Interface / Near-RT-RIC Simulator
182 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
183
184 Stateful A1 test stub.
185
186 * Used to create multiple stateful A1 providers (simulated near-rt-rics)
187 * Supports A1-Policy and A1-Enrichment Information
188 * Swagger-based northbound interface, so easy to change the A1 profile exposed (e.g. A1 version, A1 Policy Types, A1-E1 consumers, etc)
189 * All A1-AP versions supported
190
191 Implementation:
192
193 * Implemented as a Python application
194 * Repo: *sim/a1-interface*
195
196 More details available at the `A1 Simulator documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface>`_