Update TS xApp for Release D use case
[ric-app/ts.git] / docs / user-guide.rst
index 68ceddf..720588a 100644 (file)
-     
-.. This work is licensed under a Creative Commons Attribution 4.0 International License. 
-.. SPDX-License-Identifier: CC-BY-4.0 
-.. 
-.. CAUTION: this document is generated from source in doc/src/* 
-.. To make changes edit the source and recompile the document. 
-.. Do NOT make changes directly to .rst or .md files. 
+
+
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+..
+.. CAUTION: this document is generated from source in doc/src/*
+.. To make changes edit the source and recompile the document.
+.. Do NOT make changes directly to .rst or .md files.
+
+
 ============
-User's Guide 
+User's Guide
 ============
 ---------------------
 Traffic Steering xAPP
 ---------------------
-Introduction 
+
+Introduction
 ============
 
-Some text about the traffic steering xAPP will eventually be added here.
+The Traffic Steering Use Case demonstrates intelligent inferences in the Near-RT RIC and E2 interaction in order to execute on the inferences.
+
+The current Use Case is comprised of five xApps:
+
+* 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).
+* Anomaly Detection (AD) xApp: Fetches UE data regularly from SDL, monitors UE metrics and sends the anomalous UEs to Traffic Steering xApp.
+* Traffic Steering xApp (*this one*): Consumes A1 Policy Intent, listens for badly performing UEs, sends prediction requests to QP Driver, and listens for messages that show UE throughput predictions in different cells to make a decision about UE Handover.
+* QoE Prediction Driver (QP Driver) xApp: Generates a feature set of metrics to input to QoE Prediction, based on SDL lookups in UE-Metric and Cell-Metric namespaces.
+* QoE Prediction (QP) xApp: Receives a feature set of metrics for a given UE, and output Throughput predictions on the Serving and any Neighbor cells to Traffic Steering xApp.
+
+A1 Policy
+=========
+
+A1 Policy is sent to Traffic Steering xApp to define the Intent which will drive the Traffic Steering behavior.
+
+Policy Type ID is 20008.
+
+Currently, there is only one parameter that can be provided in A1 Policy: *threshold*
+
+An example Policy follows:
+
+.. code-block::
+
+    { "threshold": 5 }
+
+.. FIXME Is the "Serving Cell RSRP" related to "Degradation" in AD message
+
+This Policy instructs Traffic Steering xApp to monitor current RAN metrics and request a QoE Prediction for any UE whose Serving Cell RSRP is less than 5.
+
+Receiving Anomaly Detection
+===========================
+
+Traffic Sterring xApp defines a callback to listen to Anomaly Detection messages received from AD xApp. The RMR message type is 30003.
+The following is an example message body:
+
+.. code-block::
+
+    [
+        {
+            "du-id":1010,
+            "ue-id":"Train passenger 2",
+            "measTimeStampRf":1620835470108,
+            "Degradation":"RSRP RSSINR"
+        }
+    ]
+
+.. ``[{"du-id": 1010, "ue-id": "Train passenger 2", "measTimeStampRf": 1620835470108, "Degradation": "RSRP RSSINR"}]``
+
+Sending QoE Prediction Request
+==============================
+
+Traffic Steering listens for badly performing UEs. When it identifies a UE whose RSRP is below the threshold, it generates
+a QoE Prediction Request message and sends it to the QP Driver xApp. The RMR Message Type is 30000.
+The following is an example message body:
+
+.. {"UEPredictionSet" : ["12345"]}
+
+.. code-block::
+
+    { "UEPredictionSet": ["Train passenger 2"] }
+
+Receiving QoE Prediction
+========================
+
+Traffic 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:
+
+.. {"12345" : { "310-680-200-555001" : [ 2000000 , 1200000 ] , "310-680-200-555002" : [ 800000 , 400000 ] , "310-680-200-555003" : [ 800000 , 400000 ]  } }
+
+.. code-block::
+
+    {
+        "Train passenger 2":{
+            "310-680-200-555001":[2000000, 1200000],
+            "310-680-200-555002":[1000000, 4000000],
+            "310-680-200-555003":[5000000, 4000000]
+        }
+    }
+
+This 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.
+
+Traffic Steering xApp checks for the Service Cell ID for UE ID, and determines whether the predicted throughput is higher in a neighbor cell.
+The first cell in this prediction message is assumed to be the serving cell.
+
+If predicted throughput is higher in a neighbor cell, Traffic Steering sends a CONTROL message through a REST call to E2 SIM. This message requests to hand-off the corresponding UE, and an example of its payload is as follows:
+
+.. code-block::
+
+    {
+        "command": "HandOff",
+        "seqNo": 1,
+        "ue": "Train passenger 2",
+        "fromCell": "310-680-200-555001",
+        "toCell": "310-680-200-555003",
+        "timestamp": "Sat May 22 10:35:33 2021",
+        "reason": "Hand-Off Control Request from TS xApp",
+        "ttl": 10
+    }
+
+Traffic Steering also logs the REST response, which shows whether or not the control operation has succeeded.