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-case.
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 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>`.
47 * PM Data Converter TBD
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
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.
70 7. A PM report in json format is stored (compressed with gzip).
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
100 An rApp uses the ICS API, which 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/>`_.
101
102 The schema for the PM Mesaurement information jobs is defined in :doc:`Non-RT RIC - RAN PM - PM Producer (Documentation site) <pmproducer:index>`.
103 This schema defines parameters used in the subscription (info job) and defines which measurements to subscribe for and on which
104 kafka topic the information shall be delivered to.
105
106 An application retrieving logged PM data from the Influx database needs to know how the data is stored. That is
107 defined in :doc:`Non-RT RIC - RAN PM - Influx Logger (Documentation site) <influxlogger:index>`.
108
109 .. image:: ./DesignTimeDependencies.png
110    :width: 500pt