maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 1 | .. This work is licensed under a Creative Commons Attribution 4.0 International License. |
| 2 | .. SPDX-License-Identifier: CC-BY-4.0 |
elinuxhenrik | 0a4c38b | 2020-04-14 10:59:36 +0200 | [diff] [blame] | 3 | .. Copyright (C) 2020 Nordix |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 4 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 5 | .. |archpic| image:: ./images/nonrtric-architecture-D.png |
| 6 | :alt: Image: O-RAN SC - NONRTRIC Overall Architecture |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 7 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 8 | Summary |
| 9 | ------- |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 10 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 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. |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 12 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 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. |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 14 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 15 | |archpic| |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 16 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 17 | Find detailed description of the NONRTRIC project see the `O-RAN SC NONRTRIC Project Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_. |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 18 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 19 | NONRTRIC components |
| 20 | ------------------- |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 21 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 22 | These are the components that make up the Non-RT-RIC: |
maximesson | e6b4d27 | 2019-10-31 13:26:13 +0100 | [diff] [blame] | 23 | |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 24 | * Non-RT-RIC Control Panel / Dashboard |
| 25 | * A1 Policy Management Service (developed in ONAP) |
| 26 | * A1/SDNC Controller & A1 Adapter (Controller plugin) |
| 27 | * Enrichment Information Coordinator |
| 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 | |
| 33 | The code base for "D" 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 (D Branch). |
| 34 | |
| 35 | Non-RT-RIC Control Panel / NONRTRIC Dashboard |
| 36 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 37 | |
| 38 | Graphical user interface |
| 39 | |
| 40 | * View and Manage A1 policies in the RAN (near-RT-RICs) |
| 41 | * Interacts with the Policy agent’s NBI (REST API) |
| 42 | * Graphical A1 policy creation/editing is model-driven, based on policy type’s JSON schema |
| 43 | * View and manage producers and jobs for the Enrichment coordinator service |
| 44 | * Configure A1 Policy Management Service (e.g. add/remove near-rt-rics) |
| 45 | * Interacts with the A1-PolicyManagementService & A1-EI-Coordinator (REST NBIs) via Service Exposure gateway |
| 46 | |
| 47 | Implementation: |
| 48 | |
| 49 | * Frontend: Angular framework |
| 50 | * Repo: *portal/nonrtric-controlpanel* |
| 51 | |
| 52 | Please refer the developer guide and the wiki to set up in your local environment. |
| 53 | |
| 54 | More details available at the `NONRTRIC-Portal documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-portal-nonrtric-controlpanel>`_ |
| 55 | |
| 56 | A1 Policy Management Service (from ONAP CCSDK) |
| 57 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 58 | |
| 59 | A1 Controller Service above A1 Controller/Adaptor that provides: |
| 60 | |
| 61 | * Unified REST & DMaaP NBI APIs for managing A1 Policies in all near-RT-RICs |
| 62 | |
| 63 | + Query A1 Policy Types in near-RT-RICs |
| 64 | + Create/Query/Update/Delete A1 Policy Instances in near-RT-RICs |
| 65 | + Query Status for A1 Policy Instances |
| 66 | |
| 67 | * Maintains (persistent) cache of RAN’s A1 Policy information |
| 68 | |
| 69 | * Support RAN-wide view of A1 Policy information |
| 70 | * Streamline A1 traffic |
| 71 | * Enable (optional) re-synchronization after inconsistencies / near-RT-RIC restarts |
| 72 | * Supports a large number of near-RT-RICs (& multi-version support) |
| 73 | |
| 74 | * 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) |
| 75 | * 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 |
| 76 | |
| 77 | See also: `A1 Policy Management Service in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_ |
| 78 | |
| 79 | A1/SDNC Controller & A1 Adapter (Controller plugin) |
| 80 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 81 | Mediation point for A1 interface termination in SMO/NONRTRIC |
| 82 | |
| 83 | * Implemented as CCSDK OSGI Feature/Bundles |
| 84 | * A1 REST southbound |
| 85 | * RESTCONF Northbound |
| 86 | * NETCONF YANG > RESTCONF adapter |
| 87 | * SLI Mapping logic supported |
| 88 | * Can be included in an any controller based on ONAP CCSDK |
| 89 | * Continues to support both a dedicated OSC A1-controller persona and an ONAP SDNC persona |
| 90 | |
| 91 | See also: `A1 Adapter/Controller Functions in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_ |
| 92 | |
| 93 | Enrichment Information Job Coordination Service |
| 94 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 95 | |
| 96 | Coordinate/Register A1-EI Types, Producers, Consumers, and Jobs. |
| 97 | |
| 98 | * Maintains a registry of: |
| 99 | |
| 100 | - A1-EI Data Types / schemas |
| 101 | - A1-EI Producers |
| 102 | - A1-EI Consumers |
| 103 | - A1-EI Jobs |
| 104 | |
| 105 | * A1-EI Query API (e.g. per producer, per consumer, per types) |
| 106 | * Query status of A1-EI jobs |
| 107 | * Monitors all near-RT-RICs and recovers from inconsistencies |
| 108 | * 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) |
| 109 | * *Being extended to coordinate non-A1 Enrichment Information exchange between NONRTRIC Apps* |
| 110 | |
| 111 | Non-RT-RIC (Spring Cloud) Service Gateway |
| 112 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 113 | Support Apps to use A1 Services |
| 114 | |
| 115 | * `Spring Cloud Gateway <https://cloud.spring.io/spring-cloud-gateway>`_ provides the library to build a basic API gateway |
| 116 | * Exposes A1 Policy Management Service & Enrichment Coordinator Service. |
| 117 | * Additional predicates can be added in code or preferably in the Gateway yaml configuration. |
| 118 | |
| 119 | Implementation: |
| 120 | |
| 121 | * Implemented as a Java Spring Cloud application |
| 122 | * Repo: *portal/nonrtric-controlpanel* |
| 123 | |
| 124 | |
| 125 | Non-RT-RIC (Kong) Service Exposure Prototyping |
| 126 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 127 | |
| 128 | Support Apps to use NONRTRIC, SMO and other App interfaces |
| 129 | A building block for coming releases as the R1 Interface concept matures |
| 130 | |
| 131 | * Support dynamic registration and exposure of service interfaces to Non-RT-RIC applications (& NONRTRIC Control panel) |
| 132 | * Extends a static gateway function specifically for NONRTRIC Control panel (described above) |
| 133 | * Initial version based on `Kong API Gateway <https://docs.konghq.com/gateway-oss>`_ function |
| 134 | * Initial exposure candidates include A1 (NONRTRIC) services & O1 (OAM/SMO) services |
| 135 | |
| 136 | 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. |
| 137 | |
| 138 | Initial Non-RT-RIC App Catalogue |
| 139 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 140 | |
| 141 | Register for Non-RT-RIC Apps. |
| 142 | |
| 143 | * Non-RT-RIC Apps can be registered / queried |
| 144 | * Limited functionality/integration for now |
| 145 | * *More work required in coming releases as the rApp concept matures* |
| 146 | |
| 147 | Initial K8S Helm Chart LCM Manager |
| 148 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 149 | |
| 150 | Onboard, start, stop, and modify Non-RT-RIC App µServices as Helm Charts |
| 151 | *A building block for coming releases as the R-APP concept matures* |
| 152 | |
| 153 | * Interfaces that accepts Non-RT-RIC App µServices Helm Charts |
| 154 | * Support basic LCM operations |
| 155 | * Onboard, Start, Stop, Modify, Monitor |
| 156 | * Initial version co-developed with v. similar functions in ONAP |
| 157 | * *Limited functionality/integration for now* |
| 158 | |
| 159 | A1 Interface / Near-RT-RIC Simulator |
| 160 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 161 | |
| 162 | Stateful A1 test stub. |
| 163 | |
| 164 | * Used to create multiple stateful A1 providers (simulated near-rt-rics) |
| 165 | * Supports A1-Policy and A1-EnrichmentInformation |
| 166 | * Swagger-based northbound interface, so easy to change the A1 profile exposed (e.g. A1 version, A1 Policy Types, A1-E1 consumers, etc) |
| 167 | * All A1-AP versions supported |
| 168 | |
| 169 | Implementation: |
| 170 | |
| 171 | * Implemented as a Python application |
elinuxhenrik | 2a6084b | 2021-06-02 15:31:18 +0200 | [diff] [blame] | 172 | * Repo: *sim/a1-interface* |
JohnKeeney | 01ea4be | 2021-05-26 19:32:47 +0100 | [diff] [blame] | 173 | |
| 174 | More details available at the `A1 Simulator documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface>`_ |