From 94fdf4782260c780be3457fe7f11dd9e1a041c02 Mon Sep 17 00:00:00 2001 From: JohnKeeney Date: Fri, 28 Jun 2024 15:51:18 +0100 Subject: [PATCH] Roll versions after J-Relase master -> 2.9.0 & trigger docs (master branch) Issue-ID: NONRTRIC-972 Change-Id: Iab9a26f97ee928b3651e75fa3de5a22f72c0a07b Signed-off-by: JohnKeeney --- Dockerfile | 1 + README.md | 47 ++++++++++++++++++++++++++++++-------------- docs/installation-guide.rst | 19 +++++++----------- docs/overview.rst | 48 +++++++++++++++++++++++++++++++++++---------- pom.xml | 2 +- 5 files changed, 79 insertions(+), 38 deletions(-) diff --git a/Dockerfile b/Dockerfile index aec660a..a84b30c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ # # ============LICENSE_START======================================================= # Copyright (C) 2019-2023 Nordix Foundation. +# Copyright (C) 2024: OpenInfra Foundation Europe. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index b438613..c82e0f6 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,47 @@ -# O-RAN-SC Non-RT RIC Policy Agent +# O-RAN-SC Non-RT RIC A1 Policy Management Service -The O-RAN Non-RT RIC Policy Agent provides a REST API for the management of policies within the O-RAN architecture. This README provides details on the features, configuration, and running instructions for the Policy Agent. +The O-RAN-SC A1 Policy Management Service provides a REST API for the management of policies within the O-RAN architecture. This README provides details on the features, configuration, and running instructions for the A1 Policy Management Service. For detailed API documentation and further information, refer to the NONRTRIC documentation at [NONRTRIC Wiki](https://wiki.o-ran-sc.org/display/RICNR). +For additional detailed documentation, also refer to the NONRTRIC documentation at [A1 Policy Management Service Documentation site](https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-a1policymanagementservice). + +The A1 Policy Management Service is homed in ONAP. For additional documentation see [ONAP CCSDK documentation](https://docs.onap.org/projects/onap-ccsdk-oran). +and [wiki](https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP). ## Features -The Policy Agent offers various functionalities to manage and monitor policies and RIC capabilities: -- **Client Supervision**: Monitors clients (R-APPs) to eliminate stray policies in case of client failure. -- **Consistency Monitoring**: Ensures the SMO view of policies and RIC capabilities is consistent with the actual situation in the RICs. -- **Policy Configuration**: - - Single REST API for all RICs in the network. - - Query functions to find all policies in a RIC, all policies owned by a service (R-APP), all policies of a specific type, etc. - - Maps O1 resources (ManagedElement) to the controlling RIC. +The A1 Policy Management Service is a microservice which maintains a transient repository of: + +- All A1 policies instances in the network. Each policy is targeted to a near-RT-RIC instance and is owned by a 'service' (e.g., rApps or the NONRTRIC Dashboard). +- All near-RT-RICs in the network. +- All Policy types supported by each near-RT-RIC. + +The service provides : + +- Unified REST API for managing A1 Policies in all near-RT-RICs. +- Compliant with O-RAN R1 specification for A1-Policy Management (R1-AP v5.0, with additional features & fixes) +- Synchronized view of A1 Policy instances for each rAPP +- Synchronized view of A1 Policy instances in each near-RT-RIC +- Synchronized view of A1 Policy types supported by each near-RT-RIC +- Lookup service to find the near-RT-RIC to control resources in the RAN as defined in O1 (e.g. which near-RT-RIC should be accessed to control a certain CU or DU, which in turn controls a certain cell). +- Monitors all near-RT-RICs and maintains data consistency, e.g. recovery from near-RT-RIC restarts +- Support for different Southbound APIs to the near-RT-RICs (different versions of the A1-P and other similar APIs). +- HTTPS can be configured to use a supplied certificate/private key and to validate peers towards a list of trusted CAs/certs. +- HTTP proxy support for tunneling HTTP/HTTPS connections. +- Fine-grained access-control - with new optional callouts to an external auth function +- Fine-grained monitoring metrics, logging & call tracing can be configured ## Configuration -The Policy Agent uses default keystore and truststore files included in the container. The paths and passwords for these stores are specified in a YAML configuration file located at: +The A1 Policy Management Service uses default keystore and truststore files included in the container. The paths and passwords for these stores are specified in a YAML configuration file located at: ### Default Truststore Certificates The default truststore includes the following trusted certificates: -- **A1 Simulator Certificate**: [a1simulator cert](https://gerrit.o-ran-sc.org/r/gitweb?p=sim/a1-interface.git;a=tree;f=near-rt-ric-simulator/certificate;h=172c1e5aacd52d760e4416288dc5648a5817ce65;hb=HEAD) -- **A1 Controller Certificate**: [a1controller cert (keystore.jks)](https://gerrit.o-ran-sc.org/r/gitweb?p=nonrtric.git;a=tree;f=sdnc-a1-controller/oam/installation/sdnc-a1/src/main/resources;h=17fdf6cecc7a866c5ce10a35672b742a9f0c4acf;hb=HEAD) -- **Policy Agent's Own Certificate**: Used for mocking and unit-testing purposes (ApplicationTest.java). +- **A1 Simulator Certificate**: [a1simulator cert](https://gerrit.o-ran-sc.org/r/gitweb?p=sim/a1-interface.git;a=tree;f=near-rt-ric-simulator/certificate) +- **A1 Policy Management Service's Own Certificate**: Used for mocking and unit-testing purposes (ApplicationTest.java). ### Overriding Default Configuration @@ -50,7 +66,7 @@ docker run -p 8081:8081 -p 8433:8433 --name=policy-agent-container --network=non --volume "$PWD/new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks" \ --volume "$PWD/new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks" \ --volume "$PWD/new_application.yaml:/opt/app/policy-agent/config/application.yaml" \ - o-ran-sc/nonrtric-policy-agent:2.2.0-SNAPSHOT + nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-plt-a1policymanagementservice:2.8.0 ``` ### Running Policy Agent Locally @@ -79,7 +95,8 @@ http://your-host-name-here:8081/swagger-ui.html ## License -Copyright (C) 2019 Nordix Foundation. All rights reserved. +Copyright (C) 2019-2023 Nordix Foundation. All rights reserved. +Copyright (C) 2024: OpenInfra Foundation Europe. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/installation-guide.rst b/docs/installation-guide.rst index 5552cb1..d720c1a 100644 --- a/docs/installation-guide.rst +++ b/docs/installation-guide.rst @@ -1,6 +1,7 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. Copyright (C) 2021-2023 Nordix +.. Copyright (C) 2021-2023 Nordix Foundation +.. Copyright (C) 2024: OpenInfra Foundation Europe. All rights reserved. Installation Guide ================== @@ -16,21 +17,15 @@ Software Installation and Deployment Install with Docker +++++++++++++++++++ -Docker compose files are provided, in the "docker-compose" folder, to install the components. Run the following -command to start the components: - - .. code-block:: bash - - docker-compose -f docker-compose.yaml - -f policy-service/docker-compose.yaml - -f ics/docker-compose.yaml - -The example above is just an example to start some of the components. -For more information on running and configuring the functions can be found in the README file in the "`docker-compose `__" folder, and on the `wiki page `_ +Information on running and configuring the functions in Docker can be found +on the `Run in Docker wiki page `_ Install with Helm +++++++++++++++++ +Information on running and configuring the functions in Kubernetes can be found +on the `Run in Kubernetes wiki page `_ + Helm charts and an example recipe are provided in the `it/dep repo `_, under "nonrtric". By modifying the variables named "installXXX" in the beginning of the example recipe file, which components that will be installed can be controlled. Then the components can be installed and started by running the diff --git a/docs/overview.rst b/docs/overview.rst index 018b7b4..248766f 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -1,23 +1,51 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. Copyright (C) 2021 Nordix +.. Copyright (C) 2021-2023 Nordix Foundation +.. Copyright (C) 2024: OpenInfra Foundation Europe. All rights reserved. + +O-RAN A1 Interface +~~~~~~~~~~~~~~~~~~ + +The O-RAN Alliance defines a new management interface "A1" for Radio Access Network (RAN) Management. This interface interconnects a new logical +"Non-RealTime RAN Intelligent Controller (Non-RT-RIC)" function in the Service Management & Orchestration (SMO) layer with a new logical "Near-RealTime +RAN Intelligent Controller (near-RT-RIC)" function in the RAN. This new A1 interface allows the Non-RT-RIC to provide Policy Guidance to the RAN (near-RT-RIC) +to steer its operation. These policies are defined by the O-RAN Alliance as "A1 Policies". The specifications for the A1 Interface, including A1 Policy support, +can be found on the O-RAN Alliance Specifications website. + +The A1 Policy functions are Orchestration and Automation functions for non-real-time intelligent management of RAN functions. The primary goal of the A1 Policy +functions 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 (RAN Intelligent Controller) functions in the RAN to achieve +higher-level non-real-time objectives. + +A1 Policy functions form part of a Non-Realtime RIC as defined by O-RAN Alliance. Non-Realtime RIC functions include service and policy management, RAN analytics, +and model-training for the Near-RealTime RICs. The ONAP & O-RAN-SC A1 Policy work provides concepts, specifications, architecture and reference implementations +for A1 Policy support as defined and described in the O-RAN architecture. A1 Policy Management Service (from ONAP CCSDK) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A1 Controller Service above A1 Controller/Adaptor that provides: +The A1 Policy Management Service is a microservice which maintains a transient repository of: -* Maintains (persistent) cache of RAN's A1 Policy information. + * All A1 policies instances in the network. Each policy is targeted to a near-RT-RIC instance and is owned by a 'service' (e.g., rApps or the NONRTRIC Dashboard). + * All near-RT-RICs in the network. + * All Policy types supported by each near-RT-RIC. - * 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). +The service provides : -* 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. + * Unified REST API for managing A1 Policies in all near-RT-RICs. + * Compliant with O-RAN R1 specification for A1-Policy Management (R1-AP v5.0, with additional features & fixes) + * Synchronized view of A1 Policy instances for each rAPP + * Synchronized view of A1 Policy instances in each near-RT-RIC + * Synchronized view of A1 Policy types supported by each near-RT-RIC + * Lookup service to find the near-RT-RIC to control resources in the RAN as defined in O1 (e.g. which near-RT-RIC should be accessed to control a certain CU or DU, which in turn controls a certain cell). + * Monitors all near-RT-RICs and maintains data consistency, e.g. recovery from near-RT-RIC restarts + * Support for different Southbound APIs to the near-RT-RICs (different versions of the A1-P and other similar APIs). + * HTTPS can be configured to use a supplied certificate/private key and to validate peers towards a list of trusted CAs/certs. + * HTTP proxy support for tunneling HTTP/HTTPS connections. + * Fine-grained access-control - with new optional callouts to an external auth function + * Fine-grained monitoring metrics, logging & call tracing can be configured -See also A1 Policy Management Service in ONAP: `Wiki `_, :doc:`Documentation`. +See also A1 Policy Management Service in ONAP: `Wiki `_, :doc:`Documentation`. Implementation: diff --git a/pom.xml b/pom.xml index 5e50404..9ed284d 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ org.o-ran-sc.nonrtric.plt a1policymanagementservice - 2.8.0-SNAPSHOT + 2.9.0-SNAPSHOT The Apache Software License, Version 2.0 -- 2.16.6