From: JohnKeeney Date: Tue, 26 Jan 2021 22:06:10 +0000 (+0000) Subject: Cherry Maintenance Doc updates X-Git-Tag: 2.1.1~2 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=71cc4a5c72352d29a1ebfb6c78b979c7b336b24b;p=nonrtric.git Cherry Maintenance Doc updates Issue-Id: NONRTRIC-377 Change-Id: If8c38dc2c0e36da23642b1fae9abc73d46bc02a4 Signed-off-by: JohnKeeney --- diff --git a/docs/api-docs.rst b/docs/api-docs.rst index 9e438f67..78118512 100644 --- a/docs/api-docs.rst +++ b/docs/api-docs.rst @@ -1,6 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. Copyright (C) 2020 Nordix +.. Copyright (C) 2021 Nordix .. _api_docs: @@ -15,61 +15,66 @@ API-Docs ======== -This is the API-docs of Non-RT RIC. +Here we describe the APIs to access the Non-RT RIC functions. -The Non-RT RIC consists of three parts, described in the sections below: +The core Non-RT RIC consists of three parts, described in the sections below: * The A1 Policy Management Service - * The Enrichment Coordinator Service - * The rAPP Catalogue + * The A1 Enrichment Information Coordinator Service + * The R-App Catalogue A1 Policy Management Service ============================ -For information about the A1 Policy Management Service that is implemented in ONAP, see `readthedocs`_ and `wiki`_. - -.. _readthedocs: https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/index.html -.. _wiki: https://wiki.onap.org/pages/viewpage.action?pageId=84644984 +For information about the A1 Policy Management Service that is implemented in ONAP CCSDK, see `ONAP docs `_ and `wiki `_. Enrichment Coordinator Service ============================== -See `ECS API <./ecs-api.html>`_ for how to use the API. +See `A1 Enrichment Information Coordination Service API <./ecs-api.html>`_ for full details of the API. + +The API is also described in Swagger-JSON and YAML: .. csv-table:: :header: "API name", "|swagger-icon|", "|yaml-icon|" :widths: 10,5,5 - "ECS API", ":download:`link <../enrichment-coordinator-service/api/ecs-api.json>`", ":download:`link <../enrichment-coordinator-service/api/ecs-api.yaml>`" - + "A1 Enrichment Information Coordination Service API", ":download:`json <../enrichment-coordinator-service/api/ecs-api.json>`", ":download:`yaml <../enrichment-coordinator-service/api/ecs-api.yaml>`" -rAPP Catalogue -============== +R-App Catalogue +=============== -The Non RT-RIC Service Catalogue provides a way for services to register themselves for other services to discover. +The R-App (Non RT-RIC Service) Catalogue provides a way for services to register themselves for other services to discover. -See `RAC API <./rac-api.html>`_ for how to use the API. +See `R-App Catalogue API <./rac-api.html>`_ for full details of the API. +The API is also described in Swagger-JSON and YAML: .. csv-table:: :header: "API name", "|swagger-icon|", "|yaml-icon|" :widths: 10,5, 5 - "RAC API", ":download:`link <../r-app-catalogue/api/rac-api.json>`", ":download:`link <../r-app-catalogue/api/rac-api.yaml>`" + "R-App Catalogue API", ":download:`json <../r-app-catalogue/api/rac-api.json>`", ":download:`yaml <../r-app-catalogue/api/rac-api.yaml>`" -Complementary tools -=================== -There are two additional tools that can be used together with the Non-RT RIC, namely the Control Panel and the Near-RT RIC simulator. +See Also: Non-RT RIC Control Panel +================================== The Non-RT RIC Control Panel provides a user interface that allows the user to interact with the Non-RT RIC. -Documentation for the Control Panel can be found here: -:doc:`Non-RT RIC Control Panel `. + +Documentation for the Control Panel can be found here: `Non-RT RIC Control Panel `_. + It can be downloaded from here: :: git clone "https://gerrit.o-ran-sc.org/r/portal/nonrtric-controlpanel". -The Near-RT RIC simulator simulates an A1 protocol termination endpoint. Documentation for the simulator can be found -here: :doc:`A1 Interface Simulator `. It can be downloaded from here: :: +See Also: A1 / Near-RT RIC simulator +==================================== + +The Near-RT RIC simulator simulates an A1 protocol termination endpoint. + +Documentation for the simulator can be found here: `A1 Interface Simulator `_. + +It can be downloaded from here: :: git clone "https://gerrit.o-ran-sc.org/r/sim/a1-interface" diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst index 5358fe3c..0708ea06 100644 --- a/docs/developer-guide.rst +++ b/docs/developer-guide.rst @@ -1,6 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. Copyright (C) 2020 Nordix +.. Copyright (C) 2021 Nordix Developer Guide =============== @@ -10,19 +10,16 @@ This document provides a quickstart for developers of the Non-RT RIC. A1 Policy Management Service ---------------------------- -The Policy Management is implemented in ONAP. For documentation see `readthedocs`_ and `wiki`_. +The A1 Policy Management Service is implemented in ONAP. For documentation see `ONAP CCSDK documentation `_ and `wiki`_. -.. _readthedocs: https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/index.html -.. _wiki: https://wiki.onap.org/pages/viewpage.action?pageId=84644984 +.. _wiki: https://wiki.onap.org/pages/viewpage.action?pageId=84672221 -rAPP Catalogue --------------- +R-App Catalogue +--------------- See the README.md file in the r-app-catalogue folder for how to run the component. End-to-end call --------------- -In order to make a complete end-to-end call, follow the instructions given in this `guide`_. - -.. _guide: https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=12157166 +To test the functionality provided in ONAP, try execute a complete `end-to-end call `_, which uses some other opensource functions from O-RAN SC (`NONRTRIC project `_) \ No newline at end of file diff --git a/docs/images/nonrtric-architecture-cherry-v2.png b/docs/images/nonrtric-architecture-cherry-v2.png new file mode 100644 index 00000000..4e048755 Binary files /dev/null and b/docs/images/nonrtric-architecture-cherry-v2.png differ diff --git a/docs/index.rst b/docs/index.rst index a32323df..5bb67e89 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,6 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. Copyright (C) 2020 Nordix +.. Copyright (C) 2021 Nordix Non-RT RIC ========== @@ -13,6 +13,7 @@ Non-RT RIC ./developer-guide.rst ./api-docs.rst ./use-cases.rst + ./requirements.rst ./release-notes.rst * :ref:`search` diff --git a/docs/overview.rst b/docs/overview.rst index 7f4d5829..428a1696 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -1,32 +1,122 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. Copyright (C) 2020 Nordix +.. Copyright (C) 2021 Nordix -Requirements for the Non-RT RIC project -======================================= +.. |archpic| image:: ./images/nonrtric-architecture-cherry-v2.png + :alt: Image: O-RAN SC - NONRTRIC Overall Architecture -Find detailed description of what Non-RT RIC is on this `page`_. +O-RAN SC Non-RT RIC project +=========================== -.. _page: https://wiki.o-ran-sc.org/display/RICNR/ +Summary +------- -There are functional requirements emitted by O-RAN WG2 for the Non-RT RIC, which are the following: +A 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 NONRTRIC 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 non-RealTime RIC project provides concepts, specifications, architecture and reference implementations as defined and described by the `O-RAN Alliance `_ architecture. -#. 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). -#. 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. -#. 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. -#. 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. -#. Non-RT RIC shall support performance monitoring and evaluation. -#. 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. +The 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. -The non-functional requirements are the following ones: +|archpic| -#. 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. -#. Non-RT RIC shall be able to update policies in several Near-RT RICs. +Find detailed description of what Non-RT RIC is on the `O-RAN SC NONRTRIC Project Wiki `_. + +NONRTRIC components +------------------- + + * Non-RT RIC Control Panel / Dashboard + * A1 Policy Management Service (developed in ONAP) + * Enrichment Information Coordinator + * R-App Catalogue + * A1 Controller - based on ONAP SDNC + * An A1 Simulator - simualtes the A1 aspects of a near-RT-RIC + +The code base for "Cherry" Release is in the `NONRTRIC `_, `NONRTRIC-ControlPanel `_, and `A1-Simulator `_ , Gerrit source repositories (Cherry Branch). + +Non-RT RIC Control Panel / NONRTRIC Dashboard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Graphical user interface + + * 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 + * Implementation: + + * Frontend: Angular framework + * Backend Java Springboot application + * Repo: portal/nonrtric-controlpanel + +Please refer the developer guide and the wiki to set up in your local environment. + +A1 Policy Management Service (from ONAP CCSDK - Guilin +) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The A1 Policy Management Service is a microservice which maintains a transient repository of: + + * All configured A1 policies instances in the network. + * All NearRT RICs in the network. + * All Policy types for all Near-RT-RICs + * All configured Policy instances in the network + * (Optionally deploy without A1 Adaptor/Controller to connect direct to near-RT-RIC) + +It provides : + + * Unified REST & DMAAP APIs for managing A1 Policies in all near-RT-RICs + * Synchronized view of policy instances for each R-APP (soon) + * Synchronized view of policy instances in all near-RT-RICs + * Synchronized view of policy types in all near-RT-RICs + * Policy Query API (e.g. per near-RT-RIC, per R-APP (soon), per policy type) + * Unified nearRTRIC-ID to nearRTRIC-address mapping (e.g. can include mapping to A&A1, CMDBs etc to "find" near-RT-RICs - soon) + * Placeholder "O1 ManagedElement" mapping database interface to find appropriate near-RT-RIC to address A1 operations for required RAN elements (e.g. connection to A&AI, RuntimeDB, other CMDBs etc - soon) + * Monitors all near-RT-RICs and recovers from inconsistencies (multiple strategies - soon) - e.g. near-RT-RIC restarts + * 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 + +A1 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 an 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) + +(Initial) R-APP catalog +~~~~~~~~~~~~~~~~~~~~~~~ + +Register for R-APPs + + * First step towards R-APP management in NONRTRIC + * R-APPs can be registered / queried + +More work required in coming releases as the R-APP concept matures + +Controller / OSC A1 Adaptor (partly from ONAP CCSDK - Guilin) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Mediation point for A1 interface termination in SMO/NONRTRIC + + * Implemented as OSGI Feature/Bundles + * A1 Rest southbound + * NETCONF YANG Northbound + * RESTCONF > NETCONF adapter + * Mapping logic / Provider + * Can be included in an any SDNC/CCSDK persona + +A1 Interface / Near-RT-RIC Simulator +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Stateful A1 test stub + + * Used to create multiple stateful A1 providers (simulated near-RT-RICs) + * Implemented as a Java Springboot application + * Swagger-based northbound interface, so easy to change the A1 profile exposed -Moreover, there are functional requirements regarding the A1 interface: -#. A1 interface shall support communication of policies/intents from Non-RT RIC to Near-RT RIC. -#. A1 interface shall support AI/ML model deployment and update from Non-RT RIC to Near-RT RIC. -#. A1 interface shall support communication of enrichment information from Non-RT RIC to Near-RT RIC. -#. A1 interface shall support feedback from Near-RT RIC for monitoring AI/ML model performance. -#. A1 interface shall support the policy/intents feedback from Near-RT RIC to Non-RT RIC. diff --git a/docs/requirements.rst b/docs/requirements.rst new file mode 100644 index 00000000..7f4d5829 --- /dev/null +++ b/docs/requirements.rst @@ -0,0 +1,32 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. Copyright (C) 2020 Nordix + +Requirements for the Non-RT RIC project +======================================= + +Find detailed description of what Non-RT RIC is on this `page`_. + +.. _page: https://wiki.o-ran-sc.org/display/RICNR/ + +There are functional requirements emitted by O-RAN WG2 for the Non-RT RIC, which are the following: + +#. 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). +#. 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. +#. 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. +#. 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. +#. Non-RT RIC shall support performance monitoring and evaluation. +#. 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. + +The non-functional requirements are the following ones: + +#. 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. +#. Non-RT RIC shall be able to update policies in several Near-RT RICs. + +Moreover, there are functional requirements regarding the A1 interface: + +#. A1 interface shall support communication of policies/intents from Non-RT RIC to Near-RT RIC. +#. A1 interface shall support AI/ML model deployment and update from Non-RT RIC to Near-RT RIC. +#. A1 interface shall support communication of enrichment information from Non-RT RIC to Near-RT RIC. +#. A1 interface shall support feedback from Near-RT RIC for monitoring AI/ML model performance. +#. A1 interface shall support the policy/intents feedback from Near-RT RIC to Non-RT RIC. diff --git a/enrichment-coordinator-service/api/README.md b/enrichment-coordinator-service/api/README.md new file mode 100644 index 00000000..e69de29b