
.. 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/rtd.
.. To make changes edit the source and recompile the document.
.. Do NOT make changes directly to .rst or .md files.

Traffic Steering xAPP
=====================

2022 May 10 Version 1.2.3
--------------------------
        Update TS to enforce A1 policy on throughput predictions

2022 Mar 26 Version 1.2.2
--------------------------
        Fix dummy values in gRPC message sent to RC xApp

2022 Feb 9 Version 1.2.1
--------------------------
        Update both xapp-frame-cpp and RMR dependencies

2021 Dec 8 Version 1.2.0
--------------------------
        Update TS xApp for Release E use case and changes to integrate with RC xApp

2021 June 24 Version 1.1.1
--------------------------
        Fixes the extra nil character sent in RMR payload and other potential bugs

2021 May 28 Version 1.1.0
-------------------------
        Changes to integrate with the traffic steering use case for Release D

2020 Dec 8 Version 1.0.13
-------------------------
        Small changes to integrate with RAN data written by KPIMON xApp

2020 Dec 7 Version 1.0.12
-------------------------
        Change by HCL to support AD xapp


2020 June 11 Version 1.0.11
----------------------------
        Removed extraneous logging messages

2020 June 8 Version 1.0.10
----------------------------
        Set env. variable RMR_SRC_ID to bet K8s RMR Service Host and Port


2020 June 2 Version 1.0.9
----------------------------
        Fix xapp descriptor to have rmr-data sections instead of rmr-data-in

2020 May 26 Version 1.0.7
----------------------------
        Fix issue with parsing of prediction message

2020 May 20 Version 1.0.5
----------------------------
        Support parsing of A1 Policy Create message

2020 May 20  Version 1.0.4
----------------------------
	Ensure that the SDL libraries are included in the image.

2020 April 28  Version 1.0.0
----------------------------

	Initial release.

