blob: 0623b33c72aff99309e1122fce1187c1268b8be9 [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
elinuxhenrik3efd7752022-04-07 07:48:46 +020031- Non-RT-RIC Control Panel
32- Information Coordinator Service
33- A1 Policy Management Service
34- A1 Policy Controller / Adapter
35- Near-RT RIC A1 Simulator
36- Non-RT-RIC (Spring Cloud) Service Gateway
37- Non-RT-RIC (Kong) Service Exposure Prototyping
38- DMaaP/Kafka Information Producer Adapters
39- Initial Non-RT-RIC App Catalogue
40- 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
elinuxhenrik3efd7752022-04-07 07:48:46 +020054- View and Manage A1 policies in the RAN (near-RT-RICs)
55- Graphical A1 policy creation/editing is model-driven, based on policy type's JSON schema
56- View and manage producers and jobs for the Information coordinator service
57- Configure A1 Policy Management Service (e.g. add/remove near-rt-rics)
58- Interacts with the A1-Policy Management Service & Information Coordination Service (REST NBIs) via Service Exposure gateway
JohnKeeneyc621b962021-12-14 21:47:39 +000059
JohnKeeney01ea4be2021-05-26 19:32:47 +010060Implementation:
61
elinuxhenrik3efd7752022-04-07 07:48:46 +020062- Frontend: Angular framework
63- Repo: *portal/nonrtric-controlpanel*
64- `Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_ to set up in your local environment.
65- Documentation 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 +010066
JohnKeeneyc621b962021-12-14 21:47:39 +000067Information Coordination Service
68~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69
PatrikBuhr028b1862022-04-04 13:37:28 +020070The ICS is a data subscription service which decouples data producers from data consumers. A data consumer can create a data subscription (Information Job) without any knowledge of its data producers (one subscription may involve several data producers). A data producer has the ability to produce one or several types of data (Information Type). One type of data can be produced by zero to many producers.
JohnKeeneyc621b962021-12-14 21:47:39 +000071
PatrikBuhr028b1862022-04-04 13:37:28 +020072A data consumer can have several active data subscriptions (Information Job). One Information Job consists of the type of data to produce and additional parameters, which may be different for different data types. These parameters are not defined or limited by this service.
JohnKeeneyc621b962021-12-14 21:47:39 +000073
elinuxhenrik3efd7752022-04-07 07:48:46 +020074Maintains a registry of:
75- Information Types / schemas
76- Information Producers
77- Information Consumers
78- Information Jobs
JohnKeeneyc621b962021-12-14 21:47:39 +000079
PatrikBuhr028b1862022-04-04 13:37:28 +020080The service is not involved in data delivery and hence does not put restrictions on this.
JohnKeeneyc621b962021-12-14 21:47:39 +000081
82Implementation:
83
elinuxhenrik3efd7752022-04-07 07:48:46 +020084- Implemented as a Java Spring Boot application.
85- Repo: *nonrtric/plt/informationcoordinatorservice*.
86- Documentation at the `Information Coordination Service site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-informationcoordinatorservice/en/latest/>`_
JohnKeeneyc621b962021-12-14 21:47:39 +000087
JohnKeeney01ea4be2021-05-26 19:32:47 +010088A1 Policy Management Service (from ONAP CCSDK)
89~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90
elinuxhenrik3efd7752022-04-07 07:48:46 +020091A1 Controller Service above A1 Controller/Adapter that provides:
JohnKeeney01ea4be2021-05-26 19:32:47 +010092
elinuxhenrik3efd7752022-04-07 07:48:46 +020093- Unified REST & DMaaP NBI APIs for managing A1 Policies in all near-RT-RICs.
JohnKeeney01ea4be2021-05-26 19:32:47 +010094
elinuxhenrik3efd7752022-04-07 07:48:46 +020095 - Query A1 Policy Types in near-RT-RICs.
96 - Create/Query/Update/Delete A1 Policy Instances in near-RT-RICs.
97 - Query Status for A1 Policy Instances.
JohnKeeney01ea4be2021-05-26 19:32:47 +010098
elinuxhenrik3efd7752022-04-07 07:48:46 +020099Maintains (persistent) cache of RAN's A1 Policy information.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100100
elinuxhenrik3efd7752022-04-07 07:48:46 +0200101- Support RAN-wide view of A1 Policy information.
102- Streamline A1 traffic.
103- Enable (optional) re-synchronization after inconsistencies / near-RT-RIC restarts.
104- Supports a large number of near-RT-RICs (& multi-version support).
JohnKeeneyc621b962021-12-14 21:47:39 +0000105
elinuxhenrik3efd7752022-04-07 07:48:46 +0200106- Converged ONAP & O-RAN-SC A1 Adapter/Controller functions in ONAP SDNC/CCSDK (Optionally deploy without A1 Adapter to connect direct to near-RT-RICs).
107- 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.
PatrikBuhrcddb8132021-12-01 11:02:19 +0100108
109Implementation:
JohnKeeneyc621b962021-12-14 21:47:39 +0000110
elinuxhenrik3efd7752022-04-07 07:48:46 +0200111- Implemented as a Java Spring Boot application.
112- Wiki: `A1 Policy Management Service in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_ .
PatrikBuhrcddb8132021-12-01 11:02:19 +0100113
JohnKeeney01ea4be2021-05-26 19:32:47 +0100114A1/SDNC Controller & A1 Adapter (Controller plugin)
115~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
elinuxhenrik6b45b052022-01-12 16:12:45 +0100116Mediation point for A1 interface termination in SMO/NONRTRIC.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100117
elinuxhenrik3efd7752022-04-07 07:48:46 +0200118- Implemented as CCSDK OSGI Feature/Bundles.
119- A1 REST southbound.
120- RESTCONF Northbound.
121- NETCONF YANG > RESTCONF adapter.
122- SLI Mapping logic supported.
123- Can be included in an any controller based on ONAP CCSDK.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100124
elinuxhenrikb2ef1d82022-04-06 09:54:57 +0200125Implementation:
126
elinuxhenrik3efd7752022-04-07 07:48:46 +0200127- Repo: *nonrtric/plt/sdnca1controller*
128- Wiki: `A1 Adapter/Controller Functions in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_ .
JohnKeeney01ea4be2021-05-26 19:32:47 +0100129
JohnKeeneyc621b962021-12-14 21:47:39 +0000130A1 Interface / Near-RT-RIC Simulator
131~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JohnKeeney01ea4be2021-05-26 19:32:47 +0100132
JohnKeeneyc621b962021-12-14 21:47:39 +0000133Stateful A1 test stub.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100134
elinuxhenrik3efd7752022-04-07 07:48:46 +0200135- Used to create multiple stateful A1 providers (simulated near-rt-rics).
136- Supports A1-Policy and A1-Enrichment Information.
137- Swagger-based northbound interface, so easy to change the A1 profile exposed (e.g. A1 version, A1 Policy Types, A1-E1 consumers, etc).
138- All A1-AP versions supported.
PatrikBuhrcddb8132021-12-01 11:02:19 +0100139
140Implementation:
JohnKeeneyb2bc53f2021-12-13 13:00:43 +0000141
elinuxhenrik3efd7752022-04-07 07:48:46 +0200142- Implemented as a Python application.
143- Repo: *sim/a1-interface*.
144- Documentation 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 +0100145
JohnKeeney01ea4be2021-05-26 19:32:47 +0100146Non-RT-RIC (Spring Cloud) Service Gateway
147~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
elinuxhenrik6b45b052022-01-12 16:12:45 +0100148Support Apps to use A1 Services.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100149
elinuxhenrik3efd7752022-04-07 07:48:46 +0200150- `Spring Cloud Gateway <https://cloud.spring.io/spring-cloud-gateway>`_ provides the library to build a basic API gateway.
151- Exposes A1 Policy Management Service & Information Coordinator Service.
152- Additional predicates can be added in code or preferably in the Gateway yaml configuration.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100153
154Implementation:
155
elinuxhenrik3efd7752022-04-07 07:48:46 +0200156- Implemented as a Java Spring Cloud application.
157- Repo: *portal/nonrtric-controlpanel*.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100158
159
160Non-RT-RIC (Kong) Service Exposure Prototyping
161~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162
elinuxhenrik6b45b052022-01-12 16:12:45 +0100163Support Apps to use NONRTRIC, SMO and other App interfaces.
164A building block for coming releases as the R1 Interface concept matures .
JohnKeeney01ea4be2021-05-26 19:32:47 +0100165
elinuxhenrik3efd7752022-04-07 07:48:46 +0200166- Support dynamic registration and exposure of service interfaces to Non-RT-RIC applications (& NONRTRIC Control panel).
167- Extends a static gateway function specifically for NONRTRIC Control panel (described above).
168- Initial version based on `Kong API Gateway <https://docs.konghq.com/gateway-oss>`_ function.
169- Initial exposure candidates include A1 (NONRTRIC) services & O1 (OAM/SMO) services.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100170
elinuxhenrik6b45b052022-01-12 16:12:45 +0100171NONRTRIC 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 +0000172
173DMaaP/Kafka Information Producer Adapters
174~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
175
elinuxhenrik6b45b052022-01-12 16:12:45 +0100176Configurable mediators to take information from DMaaP and Kafka and present it as a coordinated Information Producer.
JohnKeeneyc621b962021-12-14 21:47:39 +0000177
elinuxhenrik6b45b052022-01-12 16:12:45 +0100178These mediators/adapters are generic information producers, which register themselves as information producers of defined information types in Information Coordination Service (ICS).
179The information types are defined in a configuration file.
180Information 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 +0000181
elinuxhenrik6b45b052022-01-12 16:12:45 +0100182There are two alternative implementations to allow Information Consumers to consume DMaaP or Kafka events as coordinated Information Jobs.
JohnKeeneyc621b962021-12-14 21:47:39 +0000183
elinuxhenrik3efd7752022-04-07 07:48:46 +0200184Implementation:
185
186- Implementation in Java Spring (DMaaP Adapter), repo: *nonrtric/plt/dmaapadapter*, see `DMaaP Adapter documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-dmaapadapter/en/latest/>`_.
187- Implemention in Go (DMaaP Mediator Producer), repo: *nonrtric/plt/dmaapmediatorproducer*, 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 +0100188
189Initial Non-RT-RIC App Catalogue
190~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
191
192Register for Non-RT-RIC Apps.
193
elinuxhenrik3efd7752022-04-07 07:48:46 +0200194- Non-RT-RIC Apps can be registered / queried.
195- Limited functionality/integration for now.
196- *More work required in coming releases as the rApp concept matures*.
elinuxhenrikf93f9af2022-02-17 16:28:01 +0100197
elinuxhenrikb2ef1d82022-04-06 09:54:57 +0200198Implementation:
199
elinuxhenrik3efd7752022-04-07 07:48:46 +0200200- Implemented as a Java Spring Boot application.
201- Repo: *nonrtric/plt/rappcatalogue*
202- Documentation at the `rApp Catalogue documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-rappcatalogue>`_.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100203
204Initial K8S Helm Chart LCM Manager
205~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
206
elinuxhenrik6b45b052022-01-12 16:12:45 +0100207Onboard, start, stop, and modify Non-RT-RIC App µServices as Helm Charts.
208*A building block for coming releases as the R-APP concept matures*.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100209
elinuxhenrik3efd7752022-04-07 07:48:46 +0200210- Interfaces that accepts Non-RT-RIC App µServices Helm Charts.
211- Support basic LCM operations.
212- Onboard, Start, Stop, Modify, Monitor.
213- Initial version co-developed with v. similar functions in ONAP.
214- *Limited functionality/integration for now*.
JohnKeeney01ea4be2021-05-26 19:32:47 +0100215
elinuxhenrikb2ef1d82022-04-06 09:54:57 +0200216Implementation:
217
elinuxhenrik3efd7752022-04-07 07:48:46 +0200218- Implemented as a Java Spring Boot application.
219- Repo: *nonrtric/plt/helmmanager*
220- Documentation at the `Helm Manager documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-helmmanager>`_.
elinuxhenrikb2ef1d82022-04-06 09:54:57 +0200221
JohnKeeneyc621b962021-12-14 21:47:39 +0000222Test Framework
223~~~~~~~~~~~~~~
JohnKeeney01ea4be2021-05-26 19:32:47 +0100224
elinuxhenrik6b45b052022-01-12 16:12:45 +0100225A 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 +0100226
JohnKeeneyc621b962021-12-14 21:47:39 +0000227Use Cases
228~~~~~~~~~
JohnKeeney01ea4be2021-05-26 19:32:47 +0100229
JohnKeeneyc621b962021-12-14 21:47:39 +0000230"Helloworld" O-RU Fronthaul Recovery use case
231^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
JohnKeeney01ea4be2021-05-26 19:32:47 +0100232
elinuxhenrik6b45b052022-01-12 16:12:45 +0100233A 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 +0100234
elinuxhenrikcc2606c2022-04-11 08:52:32 +0200235Implementation:
236
237- One version implemented in Python, one in Go as an Information Coordination Service Consumer, and one as an apex policy.
238- Repo: *nonrtric/rapp/orufhrecovery*
239
JohnKeeneyc621b962021-12-14 21:47:39 +0000240"Helloworld" O-DU Slice Assurance use case
241^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
242
elinuxhenrik6b45b052022-01-12 16:12:45 +0100243A 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'.
ychacon69f66402022-03-01 14:33:26 +0100244
elinuxhenrikcc2606c2022-04-11 08:52:32 +0200245Implementation:
246
247- One version implemented in Go as a micro service, one in Go as an Information Coordination Service Consumer.
248- Repo: *nonrtric/rapp/ransliceassurance*
249- Documentation at the `O-DU Slice Assurance site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-rapp-ransliceassurance>`__.