Merge "README and function documentation updates" into cherry 2.1.1
authorHenrik Andersson <henrik.b.andersson@est.tech>
Thu, 28 Jan 2021 13:17:03 +0000 (13:17 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Thu, 28 Jan 2021 13:17:03 +0000 (13:17 +0000)
docs/api-docs.rst
docs/developer-guide.rst
docs/images/nonrtric-architecture-cherry-v2.png [new file with mode: 0644]
docs/index.rst
docs/overview.rst
docs/requirements.rst [new file with mode: 0644]
enrichment-coordinator-service/api/README.md [new file with mode: 0644]

index 9e438f6..7811851 100644 (file)
@@ -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:
 
 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 <https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/index.html>`_ and `wiki <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_.
 
 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 <nonrtric-controlpanel:index>`.
+
+Documentation for the Control Panel can be found here: `Non-RT RIC Control Panel <https://docs.o-ran-sc.org/projects/o-ran-sc-portal-nonrtric-controlpanel/en/cherry/>`_.
+
 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 <sim-a1-interface:index>`. 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 <https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface/en/cherry/>`_.
+
+It can be downloaded from here: ::
 
   git clone "https://gerrit.o-ran-sc.org/r/sim/a1-interface"
index 5358fe3..0708ea0 100644 (file)
@@ -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 <https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/index.html>`_ 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 <https://wiki.onap.org/pages/viewpage.action?pageId=92997705>`_, which uses some other opensource functions from O-RAN SC (`NONRTRIC project <https://wiki.o-ran-sc.org/display/RICNR>`_)
\ 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 (file)
index 0000000..4e04875
Binary files /dev/null and b/docs/images/nonrtric-architecture-cherry-v2.png differ
index a32323d..5bb67e8 100644 (file)
@@ -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`
index 7f4d582..428a169 100644 (file)
 .. 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 <https://www.o-ran.org>`_ 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 <https://wiki.o-ran-sc.org/display/RICNR/>`_.
+
+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 <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 `A1-Simulator <https://gerrit.o-ran-sc.org/r/admin/repos/sim/a1-interface>`_ , 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 (file)
index 0000000..7f4d582
--- /dev/null
@@ -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 (file)
index 0000000..e69de29