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
5 .. |archpic| image:: ./images/nonrtric-architecture-E.png
6 :alt: Image: O-RAN SC - NONRTRIC Overall Architecture
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.
13 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.
15 Non-RealTime RIC functions include service and policy management, RAN analytics and model-training for the near-RealTime RICs.
16 The Non-RealTime RIC platform hosts and coordinates rApps (Non-RT RIC applications) to perform Non-RealTime RIC tasks.
17 The Non-RealTime RIC also hosts the new R1 interface (between rApps and SMO/Non-RealTime-RIC services)
19 The 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.
20 The 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.
24 Find detailed description of the NONRTRIC project see the `O-RAN SC NONRTRIC Project Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_.
29 These are the components that make up the Non-RT-RIC:
31 * 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
44 + "Helloworld" O-RU Fronthaul Recovery use case
45 + "Helloworld" O-DU Slice Assurance use case
47 The 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).
49 Non-RT-RIC Control Panel / NONRTRIC Dashboard
50 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 Graphical user interface
54 * 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
62 * Frontend: Angular framework
63 * Repo: *portal/nonrtric-controlpanel*
65 Please refer the developer guide and the `Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_ to set up in your local environment.
67 More details available at the `NONRTRIC-Portal documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-portal-nonrtric-controlpanel>`_
69 Information Coordination Service
70 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72 Coordinate/Register Information Types, Producers, Consumers, and Jobs.
74 Coordinate/Register A1-EI Types, Producers, Consumers, and Jobs (A1 Enrichment Information Job Coordination).
76 * Maintains a registry of:
78 + Information Types / schemas
79 + Information Producers
80 + Information Consumers
83 * 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
86 * 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.
90 * Implemented as a Java Spring Boot application
92 A1 Policy Management Service (from ONAP CCSDK)
93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 A1 Controller Service above A1 Controller/Adaptor that provides:
97 * Unified REST & DMaaP NBI APIs for managing A1 Policies in all near-RT-RICs
99 + 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
103 * Maintains (persistent) cache of RAN's A1 Policy information
105 * 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)
110 * 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
113 See also: `A1 Policy Management Service in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_
117 * Implemented as a Java Spring Boot application
119 A1/SDNC Controller & A1 Adapter (Controller plugin)
120 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
121 Mediation point for A1 interface termination in SMO/NONRTRIC
123 * Implemented as CCSDK OSGI Feature/Bundles
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
130 See also: `A1 Adapter/Controller Functions in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_
132 A1 Interface / Near-RT-RIC Simulator
133 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135 Stateful A1 test stub.
137 * 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
144 * Implemented as a Python application
145 * Repo: *sim/a1-interface*
147 More details available at the `A1 Simulator documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface>`_
149 Non-RT-RIC (Spring Cloud) Service Gateway
150 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
151 Support Apps to use A1 Services
153 * `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.
155 * Additional predicates can be added in code or preferably in the Gateway yaml configuration.
159 * Implemented as a Java Spring Cloud application
160 * Repo: *portal/nonrtric-controlpanel*
163 Non-RT-RIC (Kong) Service Exposure Prototyping
164 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
166 Support Apps to use NONRTRIC, SMO and other App interfaces
167 A building block for coming releases as the R1 Interface concept matures
169 * 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
174 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/nonrtric>`_ Gerrit repo.
176 DMaaP/Kafka Information Producer Adapters
177 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
179 Configurable mediators to take information from DMaaP (& Kafka) and present it as a coordinated Information Producer
181 These mediators/adapters are generic information producers, which registers themselves as an information producers of defined information types (in Information Coordination Service).
182 The information types are defined in a configuration file.
183 Information jobs defined using Information Coordination Service (ICS) then allow information consumers to retrieve data from DMaaP MR or Kafka topics (accessing the ICS API).
185 Two alternative implementations to allow Information Consumers to consume DMaaP or Kafka events as coordinated Information Jobs.
189 1. A version implemented in Java (Spring) - Supporting DMaaP and Kafka mediation
190 2. A version implemented in Go - Supporting DMaaP mediation
192 Initial Non-RT-RIC App Catalogue
193 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
195 Register for Non-RT-RIC Apps.
197 * Non-RT-RIC Apps can be registered / queried
198 * Limited functionality/integration for now
199 * *More work required in coming releases as the rApp concept matures*
201 Initial K8S Helm Chart LCM Manager
202 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
204 Onboard, start, stop, and modify Non-RT-RIC App µServices as Helm Charts
205 *A building block for coming releases as the R-APP concept matures*
207 * Interfaces that accepts Non-RT-RIC App µServices Helm Charts
208 * Support basic LCM operations
209 * Onboard, Start, Stop, Modify, Monitor
210 * Initial version co-developed with v. similar functions in ONAP
211 * *Limited functionality/integration for now*
216 A full test environment with extensive test cases/scripts can be found in the ``test`` directory in the *nonrtric* source code
221 "Helloworld" O-RU Fronthaul Recovery use case
222 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
224 A 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'
226 "Helloworld" O-DU Slice Assurance use case
227 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
229 A 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'