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