736fffe70dac5fc9792d9a86bc3296f35b7d4258
[ric-app/qp.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) 2020 AT&T Intellectual Property
4
5 QoE Predictor Overview
6 ======================
7
8 QoE Predictor (QP) is an Xapp in the Traffic Steering O-RAN use case,
9 which uses the following Xapps:
10
11 #. Traffic Steering, which sends prediction requests to QP Driver.
12 #. QP Driver, which fetches data from SDL on behalf of traffic steering,
13    both UE Data and Cell Data, merges that data together, then sends off 
14    the data to the QoE Predictor.
15 #. QoE Predictor, which predicts and sends that prediction back to Traffic Steering
16 #. KPIMONN, which populates SDL in the first place.
17
18 Expected Input
19 --------------
20
21 The QP Xapp expects a prediction-request JSON message via RMR with the following structure::
22
23   {
24     "predictionUE": "UEId1",
25     "ueMeasurements" :
26       { "servingCellId" : "CID2",
27         "measTimestampUePrbUsage" : TS1,
28         "measPeriodUePrbUsage" : Int,
29         "uePrbUsageDL" : Int,
30         "uePrbUsageUL" : Int,
31         "measTimestampUePdcpBytes" : TS2,
32         "measPeriodUePdcpByes" : Int,
33         "uePdcpBytesDL": Int,
34         "uePdcpBytesUL" : Int
35       },
36     "cellMeasurements" : [
37       {
38         "cellId" : "CID2",
39         "measTimestampPrbAvailable" : TS,
40         "measPeriodPrbAvailable" : Int,
41         "prbAvailableDL" : Int,
42         "prbAvailableUL" : Int,
43         "measTimestampPdcpBytes" : TS,
44         "measPeriodPdcpBytes" : Int,
45         "pdcpBytesDL" : 30000000,
46         "pdcpBytesUL" : 5000000,
47         "measTimestampRf" : TS,
48         "measPeriodRf" : Int,
49         "rfMeasurements" : {
50           "rsrp": Int,
51           "rsrq": Int,
52           "rsSinr": Int
53        }
54      },
55      {
56        "cellId" : "CID1",
57        "measTimestampPrbAvailable" : TS,
58        "measPeriodPrbAvailable" : Int,
59        "prbAvailableDL" : Int,
60        "prbAvailableUL" : Int,
61        "measTimestampPdcpBytes" : TS,
62        "measPeriodPdcpBytes" : Int,
63        "pdcpBytesDL" : 10000000,
64        "pdcpBytesUL" : 2000000,
65        "measTimestampRf" : TS,
66        "measPeriodRf" : Int,
67        "rfMeasurements" : {
68          "rsrp": Int,
69          "rsrq": Int,
70          "rsSinr": Int
71        }
72      },
73      {
74        "cellId" : "CID3",
75        "measTimestampPrbAvailable" : TS,
76        "measPeriodPrbAvailable" : Int,
77        "prbAvailableDL" : Int,
78        "prbAvailableUL" : Int,
79        "measTimestampPdcpBytes" : TS,
80        "measPeriodPdcpBytes" : Int,
81        "pdcpBytesDL" : 50000000,
82        "pdcpBytesUL" : 4000000,
83        "measTimestampRf" : TS,
84        "measPeriodRf" : Int,
85        "rfMeasurements" : {
86          "rsrp": Int,
87          "rsrq": Int,
88          "rsSinr": Int
89        }
90      }
91     ]
92   }
93
94
95 Expected Output
96 ---------------
97
98 The QP Xapp should send a prediction for both downlink and uplink throughput
99 as a JSON message via RMR with the following structure::
100
101   {
102     "UEId1": {
103       "CID1" : [10000000,2000000],
104       "CID2" : [30000000,5000000],
105       "CID3" : [50000000,4000000]
106     }
107   }
108
109