| .. This work is licensed under a Creative Commons Attribution 4.0 International License. |
| .. SPDX-License-Identifier: CC-BY-4.0 |
| .. Copyright (C) 2023 Nordix |
| |
| Non-RT RIC RAN PM Measurement |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| Parent repository for components implementing Non-RT RIC RAN PM Use-cases. |
| |
| |
| ******** |
| Overview |
| ******** |
| |
| The OSC Non-RT RIC provides a high performing, fully scalable end-to-end solution for handling |
| PM Measurements. A PM report (containing aggregated PM measurements over a time interval) is |
| an XML file. The format is defined by 3GPP (TS 32.432 and 3GPP TS 32.435). |
| The files are collected from the RAN and stored. An rApp can subscribe for chosen measurement types from |
| measured resources in the network. |
| |
| |
| ********** |
| Components |
| ********** |
| |
| The picture illustrates the components involved. |
| |
| * The PM Data File Collector fetches the XML files from the RAN. |
| * The PM File Converter converts these to a Json format. The structure and the contents |
| is the same as the XML format. |
| * The PM Producer handles filtering and distribution of PM data to subscribers. These subscribers can be rApps. |
| * The Influx Logger stores selected PM measurements into a time series database. |
| * HTTPS-SERVER is for testing and implements functionality to simulate file transfer from RAN nodes. |
| |
| The third party products used are: |
| |
| * Minio object storage, for storing of files. |
| * Kafka for transferring of data (not the full PM reports, though) |
| * Influx time series database for storing of selected PM measurements over time. |
| |
| .. image:: ./Components.png |
| :width: 500pt |
| |
| For more detailed documentation of the components: |
| |
| * :doc:`Non-RT RIC - RAN PM - PM Data File Collector (Documentation site) <datafilecollector:index>`. |
| * :doc:`Non-RT RIC - RAN PM - PM File Converter (Documentation site) <pm-file-converter:index>`. |
| * :doc:`Non-RT RIC - RAN PM - PM Producer (Documentation site) <pmproducer:index>`. |
| * :doc:`Non-RT RIC - RAN PM - Influx Logger (Documentation site) <influxlogger:index>`. |
| * :doc:`Non-RT RIC - Information Coordinator Service (Documentation site) <ics:index>`. |
| |
| ********* |
| Data Flow |
| ********* |
| |
| The figure below gives an overview of the data flow through the components. |
| |
| .. image:: ./DataFlow.png |
| :width: 900pt |
| |
| 1. The RAN node sends a VES event with available PM measurement report files. |
| 2. The VES event is put on a Kafka topic and picked up by the Data File Collector. |
| 3. A PM report file is fetched from the RAN node by a file transfer protocol. Which protocol to use is defined in the VES event. |
| 4. The collected file is stored |
| 5. A File collected object is put on a Kafka topic and is picked up by the PM File Converter. |
| 6. The file data is read from the file store. |
| 7. A PM report in json format is stored (compressed with gzip). |
| 8. A message (a Json object) indicating that a new PM report (in Json format) is available is put on a Kafka topic and is picked up by the PM Data Producer. |
| 9. The PM data producer reads the Json file |
| 10. The subscribed PM data is sent to the PM data consumers (over Kafka). An rApp may be a PM data consumer. |
| 11. The Influx Logger, which is a PM data consumer, stores PM data in an Influx database. |
| |
| At anytime an rApp can read logged PM data from the Influx database. |
| |
| ******************** |
| PM Data Subscription |
| ******************** |
| PM measurement data is subscribed by creating an Information Job using the Information Coordination Service (ICS). |
| This a subscription broker and is part of what is called Data Management an Exposure (DME) in O-RAN. |
| The ICS makes sure that all data producers gets its data subscriptions (jobs). |
| |
| In the picture below, an rApp and the Influx Logger are consumers of PM data. |
| |
| .. image:: ./ControlFlow.png |
| :width: 500pt |
| |
| The PM Data Influx logger will create a PM data subscription based on a configuration file. An rApp can create |
| PM data subscription. The PM Data producer will deliver received PM measurements according to the subscriptions. |
| |
| The PM Data file collector will fetch all PM measurement files. The PM Data Converted will convert all fetched xml files |
| to json. So these does not use any subscriptions. |
| |
| ************************************** |
| PM Subscriber design time dependencies |
| ************************************** |
| |
| An rApp uses the ICS API to create and manage the subscription of PM Measurements. |
| The API documentation is available in :doc:`Non-RT RIC - Information Coordinator Service (Documentation site) <ics:index>`. |
| |
| The schema for the PM Measurement information jobs is defined in :doc:`Non-RT RIC - RAN PM - PM Producer (Documentation <pmproducer:index>`. |
| This schema defines parameters used in the subscription (info job) and defines which measurements to subscribe for and on which |
| kafka topic the information shall be delivered to. |
| |
| An application retrieving logged PM data from the Influx database needs to consider how the data is stored (the schema). That is |
| defined in :doc:`Non-RT RIC - RAN PM - Influx Logger (Documentation) <influxlogger:index>`. |
| |
| .. image:: ./DesignTimeDependencies.png |
| :width: 500pt |