.. SPDX-License-Identifier: CC-BY-4.0
.. Copyright (C) 2021 Nordix
-.. |archpic| image:: ./images/nonrtric-architecture-E.png
+.. |archpic| image:: ./images/nonrtric-architecture-F.png
:alt: Image: O-RAN SC - NONRTRIC Overall Architecture
Summary
These are the components that make up the Non-RT-RIC:
-- Non-RT-RIC Control Panel
-- Information Coordinator Service
-- A1 Policy Management Service
-- A1 Policy Controller / Adapter
-- Near-RT RIC A1 Simulator
-- Non-RT-RIC (Spring Cloud) Service Gateway
-- Non-RT-RIC (Kong) Service Exposure Prototyping
-- DMaaP/Kafka Information Producer Adapters
-- Initial Non-RT-RIC App Catalogue
-- Initial K8S Helm Chart LCM Manager
-- Test Framework
-- Use Cases
+* `Non-RT-RIC Control Panel <#non-rt-ric-control-panel-nonrtric-dashboard>`_. :doc:`Documentation site <controlpanel:index>`.
+* `Information Coordinator Service <#information-coordination-service>`_. :doc:`Documentation site <informationcoordinatorservice:index>`.
+* `A1 Policy Management Service <#a1-policy-management-service-from-onap-ccsdk>`_. :doc:`Documentation site <a1policymanagementservice:index>`.
+* `A1 Policy Controller / Adapter <#a1-sdnc-controller-a1-adapter-controller-plugin>`_.
+* `Near-RT RIC A1 Simulator <#a1-interface-near-rt-ric-simulator>`_. :doc:`Documentation site <simulator:index>`.
+* `Non-RT-RIC (Spring Cloud) Service Gateway <#non-rt-ric-spring-cloud-service-gateway>`_.
+* `Non-RT-RIC (Kong) Service Exposure Prototyping <#non-rt-ric-kong-service-exposure-prototyping>`_.
+* `DMaaP/Kafka Information Producer Adapters <#dmaap-kafka-information-producer-adapters>`_. :doc:`Documentation site adapter <dmaapadapter:index>`. :doc:`Documentation site mediator <dmaapmediatorproducer:index>`.
+* `Initial Non-RT-RIC App Catalogue <#initial-non-rt-ric-app-catalogue>`_. :doc:`Documentation site <rappcatalogue:index>`.
+* `Initial K8S Helm Chart LCM Manager <#id5>`_. :doc:`Documentation site <helmmanager:index>`.
+* `Authentication Support <#id6>`_. :doc:`Documentation site <authtokenfetch:index>`.
+* `Service Management & Exposure (SME) <#service-management-and-exposure>`_. :doc:`Documentation site <sme:index>`.
+* `Test Framework <#id7>`_.
+* `Use Cases: <#non-rt-ric-use-cases>`_
+
+ * "Helloworld" O-RU Fronthaul Recovery use case. :doc:`Documentation site <orufhrecovery:index>`.
+ * "Helloworld" O-DU Slice Assurance use case. :doc:`Documentation site <ransliceassurance:index>`.
- + "Helloworld" O-RU Fronthaul Recovery use case
- + "Helloworld" O-DU Slice Assurance use case
-
-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).
Non-RT-RIC Control Panel / NONRTRIC Dashboard
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Frontend: Angular framework
- Repo: *portal/nonrtric-controlpanel*
- `Wiki <https://wiki.o-ran-sc.org/display/RICNR/>`_ to set up in your local environment.
-- Documentation at the `NONRTRIC-Portal documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-portal-nonrtric-controlpanel>`_.
+- Documentation at the :doc:`NONRTRIC-Portal documentation site <controlpanel:index>`.
Information Coordination Service
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Information Consumers
- Information Jobs
-The service is not involved in data delivery and hence does not put restrictions on this.
+The service is not involved in data delivery and hence does not put restrictions on this.
Implementation:
- Implemented as a Java Spring Boot application.
- Repo: *nonrtric/plt/informationcoordinatorservice*.
-- Documentation at the `Information Coordination Service site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-informationcoordinatorservice/en/latest/>`_
+- Documentation at the :doc:`Information Coordination Service site <informationcoordinatorservice:index>`.
A1 Policy Management Service (from ONAP CCSDK)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Implemented as a Java Spring Boot application.
- Wiki: `A1 Policy Management Service in ONAP <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_ .
+- Repo: *nonrtric/plt/a1policymanagementservice*.
+- Documentation at the :doc:`A1 Policy Management Service documentation site <a1policymanagementservice:index>`.
A1/SDNC Controller & A1 Adapter (Controller plugin)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Implemented as a Python application.
- Repo: *sim/a1-interface*.
-- Documentation at the `A1 Simulator documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-sim-a1-interface>`_
+- Documentation at the :doc:`A1 Simulator documentation site <simulator:index>`.
Non-RT-RIC (Spring Cloud) Service Gateway
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Implementation:
-- Implementation in Java Spring (DMaaP Adapter), repo: *nonrtric/plt/dmaapadapter*, see `DMaaP Adapter documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-dmaapadapter/en/latest/>`_.
-- Implemention in Go (DMaaP Mediator Producer), repo: *nonrtric/plt/dmaapmediatorproducer*, see `DMaaP Mediator Producer documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-dmaapmediatorproducer>`_.
+- Implementation in Java Spring (DMaaP Adapter), repo: *nonrtric/plt/dmaapadapter*, see :doc:`DMaaP Adapter documentation site <dmaapadapter:index>`.
+- Implementation in Go (DMaaP Mediator Producer), repo: *nonrtric/plt/dmaapmediatorproducer*, see :doc:`DMaaP Mediator Producer documentation site <dmaapmediatorproducer:index>`.
Initial Non-RT-RIC App Catalogue
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Implemented as a Java Spring Boot application.
- Repo: *nonrtric/plt/rappcatalogue*
-- Documentation at the `rApp Catalogue documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-rappcatalogue>`_.
+- Documentation at the :doc:`rApp Catalogue documentation site <rappcatalogue:index>`.
Initial K8S Helm Chart LCM Manager
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Implemented as a Java Spring Boot application.
- Repo: *nonrtric/plt/helmmanager*
-- Documentation at the `Helm Manager documentation site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-helmmanager>`_.
+- Documentation at the :doc:`Helm Manager documentation site <helmmanager:index>`.
+
+Service Management and Exposure
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+An initial implementation of the CAPIF Core service. It implements the following CAPIF APIs:
+
+- API Provider Management
+- Publish Service
+- Discover Service
+- API Invoker Management
+- Security
+- Events
+
+Implementation:
+
+- Implemented in Go
+- Repo: *nonrtric/plt/sme*
+- Documentation at the :doc:`Service Management & Exposure (SME) documentation site <sme:index>`.
+
+Authentication Support
+~~~~~~~~~~~~~~~~~~~~~~
+
+The auth-token-fetch provides support for authentication.
+It is intended to be used as a sidecar and does the authentication procedure, gets and saves the access token
+in the local file system. This includes refresh of the token before it expires.
+This means that the service only needs to read the token from a file.
+
+It is tested using Keycloak as authentication provider.
+
+.. image:: ./AuthSupport.png
+ :width: 500pt
+
+So, a service just needs to read the token file and for instance insert it in the authorization header when using HTTP.
+The file needs to be re-read if it has been updated.
+
+The auth-token-fetch is configured by the following environment variables.
+
+* CERT_PATH - the file path of the cert to use for TSL, example: security/tls.crt
+* CERT_KEY_PATH - the file path of the private key file for the cert, example: "security/tls.key"
+* ROOT_CA_CERTS_PATH - the file path of the trust store.
+* CREDS_GRANT_TYPE - the grant_type used for authentication, example: client_credentials
+* CREDS_CLIENT_SECRET - the secret/private shared key used for authentication
+* CREDS_CLIENT_ID - the client id used for authentication
+* OUTPUT_FILE - the path where the fetched authorization token is stored, example: "/tmp/authToken.txt"
+* AUTH_SERVICE_URL - the URL to the authentication service (Keycloak)
+* REFRESH_MARGIN_SECONDS - how long in advance before the authorization token expires it is refreshed
Test Framework
~~~~~~~~~~~~~~
A full test environment with extensive test cases/scripts can be found in the ``test`` directory in the *nonrtric* source code.
-Use Cases
-~~~~~~~~~
+Non-RT-RIC Use Cases
+~~~~~~~~~~~~~~~~~~~~
"Helloworld" O-RU Fronthaul Recovery use case
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- One version implemented in Python, one in Go as an Information Coordination Service Consumer, and one as an apex policy.
- Repo: *nonrtric/rapp/orufhrecovery*
+- Documentation at the :doc:`O-RU Fronthaul Recovery documentation site <orufhrecovery:index>`.
"Helloworld" O-DU Slice Assurance use case
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- One version implemented in Go as a micro service, one in Go as an Information Coordination Service Consumer.
- Repo: *nonrtric/rapp/ransliceassurance*
-- Documentation at the `O-DU Slice Assurance site <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-rapp-ransliceassurance>`__.
+- Documentation at the :doc:`O-DU Slice Assurance documentation site <ransliceassurance:index>`.