JohnKeeney | fe56ddf | 2023-04-25 16:55:30 +0100 | [diff] [blame] | 1 | .. This work is licensed under a Creative Commons Attribution 4.0 International License. |
| 2 | .. SPDX-License-Identifier: CC-BY-4.0 |
| 3 | .. Copyright (C) 2023 Nordix |
| 4 | |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 5 | Non-RT RIC RAN PM Measurement |
| 6 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
JohnKeeney | fe56ddf | 2023-04-25 16:55:30 +0100 | [diff] [blame] | 7 | |
PatrikBuhr | 28bb3da | 2023-05-16 08:56:41 +0200 | [diff] [blame^] | 8 | Parent repository for components implementing Non-RT RIC RAN PM Use-cases. |
JohnKeeney | fe56ddf | 2023-04-25 16:55:30 +0100 | [diff] [blame] | 9 | |
JohnKeeney | fe56ddf | 2023-04-25 16:55:30 +0100 | [diff] [blame] | 10 | |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 11 | ******** |
| 12 | Overview |
| 13 | ******** |
JohnKeeney | dcecbc9 | 2023-04-26 22:42:08 +0100 | [diff] [blame] | 14 | |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 15 | The OSC Non-RT RIC provides a high performing, fully scalable end-to-end solution for handling |
| 16 | PM Mesurements. A PM report (containing aggregated PM measurements over a time interval) is |
| 17 | an XML file. The format is defined by 3GPP (TS 32.432 and 3GPP TS 32.435). |
| 18 | The files are collected from the RAN and stored. An rApp can subscribe for chosen measurement types from |
| 19 | measured resources in the network. |
| 20 | |
| 21 | |
| 22 | ********** |
| 23 | Components |
| 24 | ********** |
| 25 | |
| 26 | The picture illustrates the components involved. |
| 27 | |
| 28 | * The PM Data File Collector fetches the XML files from the RAN. |
| 29 | * The PM Data Converter converts these to a Json format. The structure and the contents |
| 30 | is the same as the XML format. |
| 31 | * The PM Producer handles filtering and distribution of PM data to subscribers. These subscribers can be rApps. |
| 32 | * The Influx Logger stores selected PM mesurements into a time series database. |
| 33 | * HTTPS-SERVER is for testing and implements functionality to simulate file transfer from thye RAN nodes. |
| 34 | |
| 35 | The third party products used are: |
| 36 | |
| 37 | * Minio object storage, for storing of files. |
| 38 | * Kafka for transferring of data (not the full PM reports, though) |
| 39 | * Influx time series database for storing of selected PM mesurements over time. |
| 40 | |
| 41 | .. image:: ./Components.png |
| 42 | :width: 500pt |
| 43 | |
| 44 | For more detailed documentation of the components: |
| 45 | |
| 46 | * :doc:`Non-RT RIC - RAN PM - PM Data File Collector (Documentation site) <datafilecollector:index>`. |
PatrikBuhr | 28bb3da | 2023-05-16 08:56:41 +0200 | [diff] [blame^] | 47 | * :doc:`Non-RT RIC - RAN PM - PM Data Data Converter (Documentation site) <kafka-pm-producer:index>`. |
JohnKeeney | dcecbc9 | 2023-04-26 22:42:08 +0100 | [diff] [blame] | 48 | * :doc:`Non-RT RIC - RAN PM - PM Producer (Documentation site) <pmproducer:index>`. |
| 49 | * :doc:`Non-RT RIC - RAN PM - Influx Logger (Documentation site) <influxlogger:index>`. |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 50 | * `Non-RT RIC - Information Coordinator Service (Documentation site) <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-informationcoordinatorservice/en/latest/>`_. |
| 51 | * HTTPS-SERVER TBD |
JohnKeeney | dcecbc9 | 2023-04-26 22:42:08 +0100 | [diff] [blame] | 52 | |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 53 | |
| 54 | |
| 55 | ********* |
| 56 | Data Flow |
| 57 | ********* |
| 58 | |
| 59 | The figure below gives an overview of the data flow through the components. |
| 60 | |
| 61 | .. image:: ./DataFlow.png |
| 62 | :width: 900pt |
| 63 | |
| 64 | 1. The RAN node sends a VES event with available PM measurement report files. |
| 65 | 2. The VES event is put on a Kafka topic and picked up by the Data File Collector. |
| 66 | 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. |
| 67 | 4. The collected file is stored |
| 68 | 5. A File collected object is put on a Kafka topic and is picked up by the PM Data Converter. |
| 69 | 6. The file data is read from the file store. |
PatrikBuhr | 499fc37 | 2023-05-10 14:07:22 +0200 | [diff] [blame] | 70 | 7. A PM report in json format is stored (compressed with gzip). |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 71 | 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. |
| 72 | 9. The PM data producer reads the Json file |
| 73 | 10. The subscribed PM data is sent to the PM data consumers (over Kafka). An rApp may be a PM data consumer. |
| 74 | 11. The Influx Logger, which is a PM data consumer, stores PM data in an Influx database. |
| 75 | |
| 76 | At anytime an rApp can read logged PM data from the Influx database. |
| 77 | |
| 78 | ******************** |
| 79 | PM Data Subscription |
| 80 | ******************** |
| 81 | PM measurement data is subscribed by creating an Information Job using the Information Coordination Service (ICS). |
| 82 | This a subscription broker and is part of what is called Data Managament an Exposure (DME) in O-RAN. |
| 83 | The ICS makes sure that all data producers gets its data subscriptions (jobs). |
| 84 | |
| 85 | In the picture below, an rApp and the Influx Logger are consumers of PM data. |
| 86 | |
| 87 | .. image:: ./ControlFlow.png |
| 88 | :width: 500pt |
| 89 | |
| 90 | The PM Data Influx logger will create a PM data subscription based on a configuration file. An rApp can create |
| 91 | PM data subscpition. The PM Data producer will deliver received PM measurements according to the subscriptions. |
| 92 | |
| 93 | The PM Data file collector will fetch all PM measurement files. The PM Data Converted will convert all fetched xml files |
| 94 | to json. So these does not use any subscriptions. |
| 95 | |
| 96 | ************************************** |
| 97 | PM Subscriber design time dependencies |
| 98 | ************************************** |
| 99 | |
PatrikBuhr | 28bb3da | 2023-05-16 08:56:41 +0200 | [diff] [blame^] | 100 | An rApp uses the ICS API to create and manage the subscription of PM Measurements. |
| 101 | The API documentation is avaiable in `Non-RT RIC - Information Coordinator Service (Documentation site) <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-informationcoordinatorservice/en/latest/>`_. |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 102 | |
PatrikBuhr | 499fc37 | 2023-05-10 14:07:22 +0200 | [diff] [blame] | 103 | The schema for the PM Mesaurement information jobs is defined in :doc:`Non-RT RIC - RAN PM - PM Producer (Documentation site) <pmproducer:index>`. |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 104 | This schema defines parameters used in the subscription (info job) and defines which measurements to subscribe for and on which |
| 105 | kafka topic the information shall be delivered to. |
| 106 | |
PatrikBuhr | 28bb3da | 2023-05-16 08:56:41 +0200 | [diff] [blame^] | 107 | An application retrieving logged PM data from the Influx database needs to consider how the data is stored (the schema). That is |
PatrikBuhr | 1dd6602 | 2023-05-08 10:02:42 +0200 | [diff] [blame] | 108 | defined in :doc:`Non-RT RIC - RAN PM - Influx Logger (Documentation site) <influxlogger:index>`. |
| 109 | |
| 110 | .. image:: ./DesignTimeDependencies.png |
| 111 | :width: 500pt |