-
-
-.. 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.