X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2Foverview.rst;h=8645a1898cb1c1358c80b196640a76a548379be6;hb=deabebb9e3735b60285f77474ff7a0697eff7105;hp=df0966ca9d72fc49313bd4476599c3a5336bb106;hpb=780b2bff6684aa0b514088f9e291441692f29b3e;p=nonrtric.git diff --git a/docs/overview.rst b/docs/overview.rst index df0966ca..8645a189 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -1,74 +1,174 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 +.. Copyright (C) 2020 Nordix +.. |archpic| image:: ./images/nonrtric-architecture-D.png + :alt: Image: O-RAN SC - NONRTRIC Overall Architecture -..please write your project overview -..please delete this content after editing +Summary +------- +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 `_ architecture. -Non-RT RIC Overview -=================== +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. -Find detailed description of what Non-RT RIC is on this `page`_. +|archpic| -.. _page: https://wiki.o-ran-sc.org/display/RICNR/ +Find detailed description of the NONRTRIC project see the `O-RAN SC NONRTRIC Project Wiki `_. -A-release architecture ----------------------- +NONRTRIC components +------------------- -The architecture is as shown on the following picture: +These are the components that make up the Non-RT-RIC: -.. image:: ./images/architecture.png - :scale: 50 % +* Non-RT-RIC Control Panel / Dashboard +* A1 Policy Management Service (developed in ONAP) +* A1/SDNC Controller & A1 Adapter (Controller plugin) +* Enrichment Information Coordinator +* Non-RT-RIC (Spring Cloud) Service Gateway +* Non-RT-RIC (Kong) Service Exposure Prototyping +* Initial Non-RT-RIC App Catalogue +* Near-RT-RIC A1 Simulator -The A1 controller is located in SDNC, an ONAP component. It communicates with ORAN via the A1 interface with the Near-RT RIC simulator. +The code base for "D" Release is in the `NONRTRIC `_, `NONRTRIC-ControlPanel `_, and `Near-RT-RIC A1-Simulator `_ , Gerrit source repositories (D Branch). -On the other end, it is accessible via a dashboard, that allows to interact with policies. The dashboard itself is split into the backend and the frontend, and can be deployed following the instructions on the `human interfaces page`_. +Non-RT-RIC Control Panel / NONRTRIC Dashboard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. _human interfaces page: ./human-interfaces.html +Graphical user interface -Requirements for the Non-RT RIC project ---------------------------------------- +* View and Manage A1 policies in the RAN (near-RT-RICs) +* Interacts with the Policy agent’s NBI (REST API) +* Graphical A1 policy creation/editing is model-driven, based on policy type’s JSON schema +* View and manage producers and jobs for the Enrichment coordinator service +* Configure A1 Policy Management Service (e.g. add/remove near-rt-rics) +* Interacts with the A1-PolicyManagementService & A1-EI-Coordinator (REST NBIs) via Service Exposure gateway + +Implementation: -There are functional requirements emitted by O-RAN WG2 for the Non-RT RIC, which are the following: +* Frontend: Angular framework +* Repo: *portal/nonrtric-controlpanel* -1. Non-RT RIC shall support data retrieval and analysis; the data may include performance, configuration or other data related to the application (recommended data shown in required data section for different use cases). -2. Non-RT RIC shall support relevant AI/ML model training based on the data in 1. for non-real-time optimization of configuration parameters in RAN or Near-RT RIC, as applicable for the use case. -3. Non-RT RIC shall support relevant AI/ML model training based on the data in 1. for generating/optimizing policies and intents to guide the behavior of applications in Near-RT RIC or RAN, as applicable for the use case. -4. Non-RT RIC shall support training of relevant AI/ML models based on the data in 1. to be deployed/updated in Near-RT RIC as required by the applications. -5. Non-RT RIC shall support performance monitoring and evaluation. -6. Non-RT RIC shall support a fallback mechanism to prevent drastic degradation/fluctuation of performance, e.g. to restore to the previous policy or configuration. +Please refer the developer guide and the wiki to set up in your local environment. -The non-functional requirements are the following ones: +More details available at the `NONRTRIC-Portal documentation site `_ -1. Non-RT RIC shall not update the same policy or configuration parameter for a given near-RT RIC or RAN function more often than once per second. -2. Non-RT RIC shall be able to update policies in several near-RT RICs. +A1 Policy Management Service (from ONAP CCSDK) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Moreover, there are functional requirements regarding the A1 interface: +A1 Controller Service above A1 Controller/Adaptor that provides: -1. A1 interface shall support communication of policies/intents from Non-RT RIC to Near-RT RIC. -2. A1 interface shall support AI/ML model deployment and update from Non-RT RIC to Near-RT RIC. -3. A1 interface shall support communication of enrichment information from Non-RT RIC to Near-RT RIC. -4. A1 interface shall support feedback from Near-RT RIC for monitoring AI/ML model performance. -5. A1 interface shall support the policy/intents feedback from Near-RT RIC to Non-RT RIC. +* Unified REST & DMaaP NBI APIs for managing A1 Policies in all near-RT-RICs -.. _a1_policy_procedure: + + Query A1 Policy Types in near-RT-RICs + + Create/Query/Update/Delete A1 Policy Instances in near-RT-RICs + + Query Status for A1 Policy Instances -A1 policy procedure -------------------- +* Maintains (persistent) cache of RAN’s A1 Policy information + + * Support RAN-wide view of A1 Policy information + * Streamline A1 traffic + * Enable (optional) re-synchronization after inconsistencies / near-RT-RIC restarts + * Supports a large number of near-RT-RICs (& multi-version support) + +* 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) +* 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 + +See also: `A1 Policy Management Service in ONAP `_ + +A1/SDNC Controller & A1 Adapter (Controller plugin) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Mediation point for A1 interface termination in SMO/NONRTRIC + +* Implemented as CCSDK OSGI Feature/Bundles +* A1 REST southbound +* RESTCONF Northbound +* NETCONF YANG > RESTCONF adapter +* SLI Mapping logic supported +* Can be included in an any controller based on ONAP CCSDK +* Continues to support both a dedicated OSC A1-controller persona and an ONAP SDNC persona + +See also: `A1 Adapter/Controller Functions in ONAP `_ + +Enrichment Information Job Coordination Service +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Coordinate/Register A1-EI Types, Producers, Consumers, and Jobs. + +* Maintains a registry of: + + - A1-EI Data Types / schemas + - A1-EI Producers + - A1-EI Consumers + - A1-EI Jobs + +* A1-EI Query API (e.g. per producer, per consumer, per types) +* Query status of A1-EI jobs +* Monitors all near-RT-RICs and recovers from inconsistencies +* 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) +* *Being extended to coordinate non-A1 Enrichment Information exchange between NONRTRIC Apps* + +Non-RT-RIC (Spring Cloud) Service Gateway +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Support Apps to use A1 Services + +* `Spring Cloud Gateway `_ provides the library to build a basic API gateway +* Exposes A1 Policy Management Service & Enrichment Coordinator Service. +* Additional predicates can be added in code or preferably in the Gateway yaml configuration. + +Implementation: + +* Implemented as a Java Spring Cloud application +* Repo: *portal/nonrtric-controlpanel* + + +Non-RT-RIC (Kong) Service Exposure Prototyping +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Support Apps to use NONRTRIC, SMO and other App interfaces +A building block for coming releases as the R1 Interface concept matures + +* Support dynamic registration and exposure of service interfaces to Non-RT-RIC applications (& NONRTRIC Control panel) +* Extends a static gateway function specifically for NONRTRIC Control panel (described above) +* Initial version based on `Kong API Gateway `_ function +* Initial exposure candidates include A1 (NONRTRIC) services & O1 (OAM/SMO) services + +NONRTRIC Kubernetes deployment - including Kong configurations can be found in the OSC `it/dep `_ Gerrit repo. + +Initial Non-RT-RIC App Catalogue +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Register for Non-RT-RIC Apps. + +* Non-RT-RIC Apps can be registered / queried +* Limited functionality/integration for now +* *More work required in coming releases as the rApp concept matures* + +Initial K8S Helm Chart LCM Manager +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Onboard, start, stop, and modify Non-RT-RIC App µServices as Helm Charts +*A building block for coming releases as the R-APP concept matures* + +* Interfaces that accepts Non-RT-RIC App µServices Helm Charts +* Support basic LCM operations +* Onboard, Start, Stop, Modify, Monitor +* Initial version co-developed with v. similar functions in ONAP +* *Limited functionality/integration for now* + +A1 Interface / Near-RT-RIC Simulator +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Stateful A1 test stub. + +* Used to create multiple stateful A1 providers (simulated near-rt-rics) +* Supports A1-Policy and A1-EnrichmentInformation +* Swagger-based northbound interface, so easy to change the A1 profile exposed (e.g. A1 version, A1 Policy Types, A1-E1 consumers, etc) +* All A1-AP versions supported + +Implementation: + +* Implemented as a Python application +* Repo: *sim/a1-interface* -As for A-release, the methods are as follows: - -+---------------------+--------------------------+--------------------------+ -| A1 policy procedure | Single policy method | Multiple policies method | -+---------------------+--------------------------+--------------------------+ -| Create policy | PUT | | -+---------------------+--------------------------+--------------------------+ -| Query policy | GET | GET (sequence of \*) | -+---------------------+--------------------------+--------------------------+ -| Update policy | PUT | | -+---------------------+--------------------------+--------------------------+ -| Delete policy | DELETE | | -+---------------------+--------------------------+--------------------------+ -| Notify policy | POST | POST | -+---------------------+--------------------------+--------------------------+ +More details available at the `A1 Simulator documentation site `_