blob: d25c714f165be65922fd60f8046a9c5e78f1f98f [file] [log] [blame]
Alexandre Huffb86721b2021-05-28 13:32:02 -03001
2
3.. This work is licensed under a Creative Commons Attribution 4.0 International License.
4.. SPDX-License-Identifier: CC-BY-4.0
5..
6.. CAUTION: this document is generated from source in doc/src/*
7.. To make changes edit the source and recompile the document.
8.. Do NOT make changes directly to .rst or .md files.
9
10
E. Scott Danielsf7b96952020-04-29 10:07:53 -040011============
Alexandre Huffb86721b2021-05-28 13:32:02 -030012User's Guide
E. Scott Danielsf7b96952020-04-29 10:07:53 -040013============
14---------------------
15Traffic Steering xAPP
16---------------------
Alexandre Huffb86721b2021-05-28 13:32:02 -030017
18Introduction
E. Scott Danielsf7b96952020-04-29 10:07:53 -040019============
20
Alexandre Huffb86721b2021-05-28 13:32:02 -030021The Traffic Steering Use Case demonstrates intelligent inferences in the Near-RT RIC and E2 interaction in order to execute on the inferences.
Ron Shacham394029b2020-06-02 13:48:42 -040022
Alexandre Huffb86721b2021-05-28 13:32:02 -030023The current Use Case is comprised of five xApps:
24
25* KPI Monitoring xApp: Gathers the radio and system Key Performance Indicators (KPI) metrics from E2 Nodes and stores them in the Shared Data Layer (SDL).
26* Anomaly Detection (AD) xApp: Fetches UE data regularly from SDL, monitors UE metrics and sends the anomalous UEs to Traffic Steering xApp.
Alexandre Huff11a46a42022-04-26 09:42:11 -030027* Traffic Steering xApp (*this one*): Consumes A1 Policy Intent, listens for badly performing UEs, sends prediction requests to QP xApp, and listens for messages from QP that show UE throughput predictions in different cells to make decisions about UE Handover.
28* QoE Prediction (QP) xApp: Generates a feature set of metrics based on SDL lookups in UE-Metric and Cell-Metric namespaces for a given UE, and outputs Throughput predictions on the Serving and any Neighbor cells to the Traffic Steering xApp.
29* RAN Control (RC) xApp: Provides basic implementation of spec compliant E2-SM RC to send RIC Control Request messages to RAN/E2 Nodes.
30
Ron Shacham394029b2020-06-02 13:48:42 -040031
32A1 Policy
33=========
34
35A1 Policy is sent to Traffic Steering xApp to define the Intent which will drive the Traffic Steering behavior.
36
37Policy Type ID is 20008.
38
Alexandre Huffb86721b2021-05-28 13:32:02 -030039Currently, there is only one parameter that can be provided in A1 Policy: *threshold*
Ron Shacham394029b2020-06-02 13:48:42 -040040
41An example Policy follows:
Alexandre Huffb86721b2021-05-28 13:32:02 -030042
43.. code-block::
44
45 { "threshold": 5 }
46
Alexandre Huff11a46a42022-04-26 09:42:11 -030047This Policy instructs Traffic Steering xApp to hand-off any UE whose downlink throughput of its current serving cell is 5% below the throughput of any neighboring cell.
Ron Shacham394029b2020-06-02 13:48:42 -040048
Alexandre Huffb86721b2021-05-28 13:32:02 -030049Receiving Anomaly Detection
50===========================
51
52Traffic Sterring xApp defines a callback to listen to Anomaly Detection messages received from AD xApp. The RMR message type is 30003.
53The following is an example message body:
54
55.. code-block::
56
57 [
58 {
59 "du-id":1010,
60 "ue-id":"Train passenger 2",
61 "measTimeStampRf":1620835470108,
62 "Degradation":"RSRP RSSINR"
63 }
64 ]
65
66.. ``[{"du-id": 1010, "ue-id": "Train passenger 2", "measTimeStampRf": 1620835470108, "Degradation": "RSRP RSSINR"}]``
67
Ron Shacham394029b2020-06-02 13:48:42 -040068Sending QoE Prediction Request
69==============================
70
Alexandre Huff11a46a42022-04-26 09:42:11 -030071Traffic Steering listens for badly performing UEs.
72Each Anomaly Detection message received from AD xApp, results in a QoE Prediction Request to QP xApp.
73The RMR Message Type is 30000.
Alexandre Huffb86721b2021-05-28 13:32:02 -030074The following is an example message body:
Ron Shacham394029b2020-06-02 13:48:42 -040075
Alexandre Huffb86721b2021-05-28 13:32:02 -030076.. {"UEPredictionSet" : ["12345"]}
77
78.. code-block::
79
80 { "UEPredictionSet": ["Train passenger 2"] }
Ron Shacham394029b2020-06-02 13:48:42 -040081
82Receiving QoE Prediction
83========================
84
85Traffic Steering xApp defines a callback for QoE Prediction received from QP xApp. The RMR message type is 30002. The following is an example message body:
86
Alexandre Huffb86721b2021-05-28 13:32:02 -030087.. {"12345" : { "310-680-200-555001" : [ 2000000 , 1200000 ] , "310-680-200-555002" : [ 800000 , 400000 ] , "310-680-200-555003" : [ 800000 , 400000 ] } }
Ron Shacham394029b2020-06-02 13:48:42 -040088
Alexandre Huffb86721b2021-05-28 13:32:02 -030089.. code-block::
Ron Shacham394029b2020-06-02 13:48:42 -040090
Alexandre Huffb86721b2021-05-28 13:32:02 -030091 {
92 "Train passenger 2":{
93 "310-680-200-555001":[2000000, 1200000],
94 "310-680-200-555002":[1000000, 4000000],
95 "310-680-200-555003":[5000000, 4000000]
96 }
97 }
Ron Shacham394029b2020-06-02 13:48:42 -040098
Alexandre Huffb86721b2021-05-28 13:32:02 -030099This message provides predictions for UE ID "Train passenger 2". For its service cell and neighbor cells, it lists an array containing two elements: DL Throughput and UL Throughput predictions.
Ron Shacham394029b2020-06-02 13:48:42 -0400100
Alexandre Huffb86721b2021-05-28 13:32:02 -0300101Traffic Steering xApp checks for the Service Cell ID for UE ID, and determines whether the predicted throughput is higher in a neighbor cell.
102The first cell in this prediction message is assumed to be the serving cell.
103
Alexandre Huff11a46a42022-04-26 09:42:11 -0300104Since RC xApp is not mandatory for the Traffic Steering use case, TS xApp sends CONTROL messages using either REST or gRPC calls.
105The CONTROL endpoint is set up in the xApp descriptor file called "config-file.json". Please, check out the "schema.json" file for configuration examples.
106
107The following is an example of a REST message that requests the handover of a given UE:
Alexandre Huffb86721b2021-05-28 13:32:02 -0300108
109.. code-block::
110
111 {
112 "command": "HandOff",
113 "seqNo": 1,
114 "ue": "Train passenger 2",
115 "fromCell": "310-680-200-555001",
116 "toCell": "310-680-200-555003",
117 "timestamp": "Sat May 22 10:35:33 2021",
118 "reason": "Hand-Off Control Request from TS xApp",
119 "ttl": 10
120 }
121
Alexandre Huff11a46a42022-04-26 09:42:11 -0300122Control messages might also be exchanged with E2 Simulators that implement REST-based interfaces.
123Traffic Steering then logs the REST response showing whether or not the control operation has succeeded.
124
125The gRPC interface is only required to exchange messages with the RC xApp.
126The following is an example of the gRPC message (*string representation*) which requests the RC xApp to handover a given UE:
127
128.. code-block::
129
130 e2NodeID: "000000000001001000110100"
131 plmnID: "02F829"
132 ranName: "enb_208_092_001235"
133 RICE2APHeaderData {
134 RanFuncId: 300
135 RICRequestorID: 1001
136 }
137 RICControlHeaderData {
138 ControlStyle: 3
139 ControlActionId: 1
140 UEID: "Train passenger 2"
141 }
142 RICControlMessageData {
143 TargetCellID: "mnop"
144 }
145
146TS xApp also requires to fetch additional RAN information from the E2 Manager to communicate with RC xApp.
147By default, TS xApp requests information to the default endpoint of E2 Manager in the Kubernetes cluster.
148Still, the default E2 Manager endpoint from TS can be changed using the env variable "SERVICE_E2MGR_HTTP_BASE_URL".