blob: e8cd92927199b922ea8624e23bc6493bf362dbe4 [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
JohnKeeneyb2bc53f2021-12-13 13:00:43 +00003.. Copyright (C) 2021 Nordix
maximessone6b4d272019-10-31 13:26:13 +01004
JohnKeeneyb2bc53f2021-12-13 13:00:43 +00005.. |archpic| image:: ./images/nonrtric-architecture-E.png
JohnKeeney01ea4be2021-05-26 19:32:47 +01006 :alt: Image: O-RAN SC - NONRTRIC Overall Architecture
maximessone6b4d272019-10-31 13:26:13 +01007
JohnKeeney01ea4be2021-05-26 19:32:47 +01008Summary
9-------
maximessone6b4d272019-10-31 13:26:13 +010010
elinuxhenrik6b45b052022-01-12 16:12:45 +010011The 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.
maximessone6b4d272019-10-31 13:26:13 +010012
elinuxhenrik6b45b052022-01-12 16:12:45 +010013The 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.
JohnKeeneyc621b962021-12-14 21:47:39 +000014
elinuxhenrik6b45b052022-01-12 16:12:45 +010015Non-RealTime RIC functions include service and policy management, RAN analytics and model-training for the near-RealTime RICs.
JohnKeeneyc621b962021-12-14 21:47:39 +000016The Non-RealTime RIC platform hosts and coordinates rApps (Non-RT RIC applications) to perform Non-RealTime RIC tasks.
elinuxhenrik6b45b052022-01-12 16:12:45 +010017The Non-RealTime RIC also hosts the new R1 interface (between rApps and SMO/Non-RealTime-RIC services).
JohnKeeneyc621b962021-12-14 21:47:39 +000018
19The O-RAN-SC (OSC) NONRTRIC project provides concepts, architecture and reference implementations as defined and described by the `O-RAN Alliance <https://www.o-ran.org>`_ architecture.
20The OSC 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.
maximessone6b4d272019-10-31 13:26:13 +010021
JohnKeeney01ea4be2021-05-26 19:32:47 +010022|archpic|
maximessone6b4d272019-10-31 13:26:13 +010023
JohnKeeney01ea4be2021-05-26 19:32:47 +010024Find detailed description of the NONRTRIC project see the `O-RAN SC NONRTRIC Project Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_.
maximessone6b4d272019-10-31 13:26:13 +010025
JohnKeeney01ea4be2021-05-26 19:32:47 +010026NONRTRIC components
27-------------------
maximessone6b4d272019-10-31 13:26:13 +010028
JohnKeeney01ea4be2021-05-26 19:32:47 +010029These are the components that make up the Non-RT-RIC:
maximessone6b4d272019-10-31 13:26:13 +010030
JohnKeeneyc621b962021-12-14 21:47:39 +000031* Non-RT-RIC Control Panel
PatrikBuhrc6916032021-11-22 16:12:27 +010032* Information Coordinator Service
JohnKeeneyc621b962021-12-14 21:47:39 +000033* A1 Policy Management Service
34* A1 Policy Controller / Adapter
35* Near-RT RIC A1 Simulator
JohnKeeney01ea4be2021-05-26 19:32:47 +010036* Non-RT-RIC (Spring Cloud) Service Gateway
37* Non-RT-RIC (Kong) Service Exposure Prototyping
JohnKeeneyc621b962021-12-14 21:47:39 +000038* DMaaP/Kafka Information Producer Adapters
JohnKeeney01ea4be2021-05-26 19:32:47 +010039* Initial Non-RT-RIC App Catalogue
JohnKeeneyc621b962021-12-14 21:47:39 +000040* Initial K8S Helm Chart LCM Manager
41* Test Framework
42* Use Cases
JohnKeeney01ea4be2021-05-26 19:32:47 +010043
JohnKeeneyc621b962021-12-14 21:47:39 +000044 + "Helloworld" O-RU Fronthaul Recovery use case
45 + "Helloworld" O-DU Slice Assurance use case
46
47The source code 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).
JohnKeeney01ea4be2021-05-26 19:32:47 +010048
49Non-RT-RIC Control Panel / NONRTRIC Dashboard
50~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
51
elinuxhenrik6b45b052022-01-12 16:12:45 +010052Graphical user interface.
JohnKeeney01ea4be2021-05-26 19:32:47 +010053
54* View and Manage A1 policies in the RAN (near-RT-RICs)
JohnKeeneyc621b962021-12-14 21:47:39 +000055* Graphical A1 policy creation/editing is model-driven, based on policy type's JSON schema
PatrikBuhrc6916032021-11-22 16:12:27 +010056* View and manage producers and jobs for the Information coordinator service
JohnKeeney01ea4be2021-05-26 19:32:47 +010057* Configure A1 Policy Management Service (e.g. add/remove near-rt-rics)
JohnKeeneyc621b962021-12-14 21:47:39 +000058* Interacts with the A1-Policy Management Service & Information Coordination Service (REST NBIs) via Service Exposure gateway
59
JohnKeeney01ea4be2021-05-26 19:32:47 +010060Implementation:
61
62* Frontend: Angular framework
63* Repo: *portal/nonrtric-controlpanel*
64
JohnKeeneyc621b962021-12-14 21:47:39 +000065Please refer the developer guide and the `Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_ to set up in your local environment.
JohnKeeney01ea4be2021-05-26 19:32:47 +010066
elinuxhenrik6b45b052022-01-12 16:12:45 +010067More details available at the `NONRTRIC-Portal documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-portal-nonrtric-controlpanel>`_.
JohnKeeney01ea4be2021-05-26 19:32:47 +010068
JohnKeeneyc621b962021-12-14 21:47:39 +000069Information Coordination Service
70~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71
72Coordinate/Register Information Types, Producers, Consumers, and Jobs.
73
74Coordinate/Register A1-EI Types, Producers, Consumers, and Jobs (A1 Enrichment Information Job Coordination).
75
76* Maintains a registry of:
77
78 + Information Types / schemas
79 + Information Producers
80 + Information Consumers
81 + Information Jobs
82
elinuxhenrik6b45b052022-01-12 16:12:45 +010083* Information Query API (e.g. per producer, per consumer, per types).
84* Query status of Information jobs.
85* After Information-type/Producer/Consumer/Job is successfully registered delivery/flow can happen directly between Information Producers and Information Consumers.
JohnKeeneyc621b962021-12-14 21:47:39 +000086* The Information Coordinator Service natively supports the O-RAN A1 Enrichment Information (A1-EI) interface, supporting coordination A1-EI Jobs where information (A1-EI)flow from the SMO/Non-RT-RIC/rApps to near-RT-RICs over the A1 interface.
87
88Implementation:
89
elinuxhenrik6b45b052022-01-12 16:12:45 +010090* Implemented as a Java Spring Boot application.
JohnKeeneyc621b962021-12-14 21:47:39 +000091
JohnKeeney01ea4be2021-05-26 19:32:47 +010092A1 Policy Management Service (from ONAP CCSDK)
93~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
94
95A1 Controller Service above A1 Controller/Adaptor that provides:
96
elinuxhenrik6b45b052022-01-12 16:12:45 +010097* Unified REST & DMaaP NBI APIs for managing A1 Policies in all near-RT-RICs.
JohnKeeney01ea4be2021-05-26 19:32:47 +010098
elinuxhenrik6b45b052022-01-12 16:12:45 +010099 + Query A1 Policy Types in near-RT-RICs.
100 + Create/Query/Update/Delete A1 Policy Instances in near-RT-RICs.
101 + Query Status for A1 Policy Instances.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100102
elinuxhenrik6b45b052022-01-12 16:12:45 +0100103* Maintains (persistent) cache of RAN's A1 Policy information.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100104
elinuxhenrik6b45b052022-01-12 16:12:45 +0100105 * Support RAN-wide view of A1 Policy information.
106 * Streamline A1 traffic.
107 * Enable (optional) re-synchronization after inconsistencies / near-RT-RIC restarts.
108 * Supports a large number of near-RT-RICs (& multi-version support).
JohnKeeneyc621b962021-12-14 21:47:39 +0000109
elinuxhenrik6b45b052022-01-12 16:12:45 +0100110* 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).
111* 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.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100112
elinuxhenrik6b45b052022-01-12 16:12:45 +0100113See also: `A1 Policy Management Service in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_ .
PatrikBuhrcddb8132021-12-01 11:02:19 +0100114
115Implementation:
JohnKeeneyc621b962021-12-14 21:47:39 +0000116
elinuxhenrik6b45b052022-01-12 16:12:45 +0100117* Implemented as a Java Spring Boot application.
PatrikBuhrcddb8132021-12-01 11:02:19 +0100118
JohnKeeney01ea4be2021-05-26 19:32:47 +0100119A1/SDNC Controller & A1 Adapter (Controller plugin)
120~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
elinuxhenrik6b45b052022-01-12 16:12:45 +0100121Mediation point for A1 interface termination in SMO/NONRTRIC.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100122
elinuxhenrik6b45b052022-01-12 16:12:45 +0100123* Implemented as CCSDK OSGI Feature/Bundles.
124* A1 REST southbound.
125* RESTCONF Northbound.
126* NETCONF YANG > RESTCONF adapter.
127* SLI Mapping logic supported.
128* Can be included in an any controller based on ONAP CCSDK.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100129
elinuxhenrik6b45b052022-01-12 16:12:45 +0100130See also: `A1 Adapter/Controller Functions in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_ .
JohnKeeney01ea4be2021-05-26 19:32:47 +0100131
JohnKeeneyc621b962021-12-14 21:47:39 +0000132A1 Interface / Near-RT-RIC Simulator
133~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JohnKeeney01ea4be2021-05-26 19:32:47 +0100134
JohnKeeneyc621b962021-12-14 21:47:39 +0000135Stateful A1 test stub.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100136
elinuxhenrik6b45b052022-01-12 16:12:45 +0100137* Used to create multiple stateful A1 providers (simulated near-rt-rics).
138* Supports A1-Policy and A1-Enrichment Information.
139* Swagger-based northbound interface, so easy to change the A1 profile exposed (e.g. A1 version, A1 Policy Types, A1-E1 consumers, etc).
140* All A1-AP versions supported.
PatrikBuhrcddb8132021-12-01 11:02:19 +0100141
142Implementation:
JohnKeeneyb2bc53f2021-12-13 13:00:43 +0000143
elinuxhenrik6b45b052022-01-12 16:12:45 +0100144* Implemented as a Python application.
145* Repo: *sim/a1-interface*.
PatrikBuhrcddb8132021-12-01 11:02:19 +0100146
JohnKeeneyc621b962021-12-14 21:47:39 +0000147More details available at the `A1 Simulator documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface>`_
PatrikBuhrcddb8132021-12-01 11:02:19 +0100148
JohnKeeney01ea4be2021-05-26 19:32:47 +0100149Non-RT-RIC (Spring Cloud) Service Gateway
150~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
elinuxhenrik6b45b052022-01-12 16:12:45 +0100151Support Apps to use A1 Services.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100152
elinuxhenrik6b45b052022-01-12 16:12:45 +0100153* `Spring Cloud Gateway <https://cloud.spring.io/spring-cloud-gateway>`_ provides the library to build a basic API gateway.
154* Exposes A1 Policy Management Service & Information Coordinator Service.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100155* Additional predicates can be added in code or preferably in the Gateway yaml configuration.
156
157Implementation:
158
elinuxhenrik6b45b052022-01-12 16:12:45 +0100159* Implemented as a Java Spring Cloud application.
160* Repo: *portal/nonrtric-controlpanel*.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100161
162
163Non-RT-RIC (Kong) Service Exposure Prototyping
164~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
165
elinuxhenrik6b45b052022-01-12 16:12:45 +0100166Support Apps to use NONRTRIC, SMO and other App interfaces.
167A building block for coming releases as the R1 Interface concept matures .
JohnKeeney01ea4be2021-05-26 19:32:47 +0100168
elinuxhenrik6b45b052022-01-12 16:12:45 +0100169* Support dynamic registration and exposure of service interfaces to Non-RT-RIC applications (& NONRTRIC Control panel).
170* Extends a static gateway function specifically for NONRTRIC Control panel (described above).
171* Initial version based on `Kong API Gateway <https://docs.konghq.com/gateway-oss>`_ function.
172* Initial exposure candidates include A1 (NONRTRIC) services & O1 (OAM/SMO) services.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100173
elinuxhenrik6b45b052022-01-12 16:12:45 +0100174NONRTRIC 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/nonrtric>`_ Gerrit repo.
JohnKeeneyc621b962021-12-14 21:47:39 +0000175
176DMaaP/Kafka Information Producer Adapters
177~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
178
elinuxhenrik6b45b052022-01-12 16:12:45 +0100179Configurable mediators to take information from DMaaP and Kafka and present it as a coordinated Information Producer.
JohnKeeneyc621b962021-12-14 21:47:39 +0000180
elinuxhenrik6b45b052022-01-12 16:12:45 +0100181These mediators/adapters are generic information producers, which register themselves as information producers of defined information types in Information Coordination Service (ICS).
182The information types are defined in a configuration file.
183Information jobs defined using ICS then allow information consumers to retrieve data from DMaaP MR or Kafka topics (accessing the ICS API).
JohnKeeneyc621b962021-12-14 21:47:39 +0000184
elinuxhenrik6b45b052022-01-12 16:12:45 +0100185There are two alternative implementations to allow Information Consumers to consume DMaaP or Kafka events as coordinated Information Jobs.
JohnKeeneyc621b962021-12-14 21:47:39 +0000186
elinuxhenrik6b45b052022-01-12 16:12:45 +01001871. A version implemented in Java Spring (DMaaP Adaptor Service).
elinuxhenrik5e92b212022-03-01 08:44:41 +01001882. A version implemented in Go (DMaaP Mediator Producer), see `DMaaP Mediator Producer documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-dmaapmediatorproducer>`_.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100189
190Initial Non-RT-RIC App Catalogue
191~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
192
193Register for Non-RT-RIC Apps.
194
elinuxhenrik6b45b052022-01-12 16:12:45 +0100195* Non-RT-RIC Apps can be registered / queried.
196* Limited functionality/integration for now.
197* *More work required in coming releases as the rApp concept matures*.
elinuxhenrikf93f9af2022-02-17 16:28:01 +0100198* Repo: *portal/nonrtric-plt-rappcatalogue*
199
200More details available at the `documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-rappcatalogue>`_.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100201
202Initial K8S Helm Chart LCM Manager
203~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
204
elinuxhenrik6b45b052022-01-12 16:12:45 +0100205Onboard, start, stop, and modify Non-RT-RIC App µServices as Helm Charts.
206*A building block for coming releases as the R-APP concept matures*.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100207
elinuxhenrik6b45b052022-01-12 16:12:45 +0100208* Interfaces that accepts Non-RT-RIC App µServices Helm Charts.
209* Support basic LCM operations.
210* Onboard, Start, Stop, Modify, Monitor.
211* Initial version co-developed with v. similar functions in ONAP.
212* *Limited functionality/integration for now*.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100213
JohnKeeneyc621b962021-12-14 21:47:39 +0000214Test Framework
215~~~~~~~~~~~~~~
JohnKeeney01ea4be2021-05-26 19:32:47 +0100216
elinuxhenrik6b45b052022-01-12 16:12:45 +0100217A full test environment with extensive test cases/scripts can be found in the ``test`` directory in the *nonrtric* source code.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100218
JohnKeeneyc621b962021-12-14 21:47:39 +0000219Use Cases
220~~~~~~~~~
JohnKeeney01ea4be2021-05-26 19:32:47 +0100221
JohnKeeneyc621b962021-12-14 21:47:39 +0000222"Helloworld" O-RU Fronthaul Recovery use case
223^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
JohnKeeney01ea4be2021-05-26 19:32:47 +0100224
elinuxhenrik6b45b052022-01-12 16:12:45 +0100225A very simplified closed-loop rApp use case to re-establish front-haul connections between O-DUs and O-RUs if they fail. Not intended to to be 'real-world'.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100226
JohnKeeneyc621b962021-12-14 21:47:39 +0000227"Helloworld" O-DU Slice Assurance use case
228^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
229
elinuxhenrik6b45b052022-01-12 16:12:45 +0100230A very simplified closed-loop rApp use case to re-prioritize a RAN slice's radio resource allocation priority if sufficient throughput cannot be maintained. Not intended to to be 'real-world'.