Documentation of RAN PM
[nonrtric/plt/ranpm.git] / docs / overview.rst
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
5 Non-RT RIC RAN PM Measurement
6 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7
8 Parent repository for components implementing Non-RT RIC RAN PM Use-cases.
9
10
11 ********
12 Overview
13 ********
14
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 File 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>`.
47 * :doc:`Non-RT RIC - RAN PM - PM File Converter (Documentation site) <pm-file-converter:index>`.
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>`.
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
52
53 *********
54 Data Flow
55 *********
56
57 The figure below gives an overview of the data flow through the components.
58
59 .. image:: ./DataFlow.png
60    :width: 900pt
61
62 1. The RAN node sends a VES event with available PM measurement report files.
63 2. The VES event is put on a Kafka topic and picked up by the Data File Collector.
64 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.
65 4. The collected file is stored
66 5. A File collected object is put on a Kafka topic and is picked up by the PM File Converter.
67 6. The file data is read from the file store.
68 7. A PM report in json format is stored (compressed with gzip).
69 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.
70 9. The PM data producer reads the Json file
71 10. The subscribed PM data is sent to the PM data consumers (over Kafka). An rApp may be a PM data consumer.
72 11. The Influx Logger, which is a PM data consumer, stores PM data in an Influx database.
73
74 At anytime an rApp can read logged PM data from the Influx database.
75
76 ********************
77 PM Data Subscription
78 ********************
79 PM measurement data is subscribed by creating an Information Job using the Information Coordination Service (ICS).
80 This a subscription broker and is part of what is called Data Managament an Exposure (DME) in O-RAN.
81 The ICS makes sure that all data producers gets its data subscriptions (jobs).
82
83 In the picture below, an rApp and the Influx Logger are consumers of PM data.
84
85 .. image:: ./ControlFlow.png
86    :width: 500pt
87
88 The PM Data Influx logger will create a PM data subscription based on a configuration file. An rApp can create
89 PM data subscpition. The PM Data producer will deliver received PM measurements according to the subscriptions.
90
91 The PM Data file collector will fetch all PM measurement files. The PM Data Converted will convert all fetched xml files
92 to json. So these does not use any subscriptions.
93
94 **************************************
95 PM Subscriber design time dependencies
96 **************************************
97
98 An rApp uses the ICS API to create and manage the subscription of PM Measurements.
99 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/>`_.
100
101 The schema for the PM Mesaurement information jobs is defined in :doc:`Non-RT RIC - RAN PM - PM Producer (Documentation site) <pmproducer:index>`.
102 This schema defines parameters used in the subscription (info job) and defines which measurements to subscribe for and on which
103 kafka topic the information shall be delivered to.
104
105 An application retrieving logged PM data from the Influx database needs to consider how the data is stored (the schema). That is
106 defined in :doc:`Non-RT RIC - RAN PM - Influx Logger (Documentation site) <influxlogger:index>`.
107
108 .. image:: ./DesignTimeDependencies.png
109    :width: 500pt