.. 
..  Copyright (c) 2019 AT&T Intellectual Property.
..  Copyright (c) 2019 Nokia.
..
..  Licensed under the Creative Commons Attribution 4.0 International
..  Public License (the "License"); you may not use this file except
..  in compliance with the License. You may obtain a copy of the License at
..
..    https://creativecommons.org/licenses/by/4.0/
..
..  Unless required by applicable law or agreed to in writing, documentation
..  distributed under the License is distributed on an "AS IS" BASIS,
..  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
..
..  See the License for the specific language governing permissions and
..  limitations under the License.
..

Release-Notes
=============


This document provides the release notes for the Amber Release of E2Manager

.. contents::
   :depth: 3
   :local:


Version history
---------------

+--------------------+--------------------+--------------------+--------------------+
| **Date**           | **Ver.**           | **Author**         | **Comment**        |
|                    |                    |                    |                    |
+--------------------+--------------------+--------------------+--------------------+
| 2019-10-31         | 2.0.7              | Shuky Har-Noy      | First draft        |
|                    |                    |                    |                    |
+--------------------+--------------------+--------------------+--------------------+
| 2019-12-02         | 2.0.10             | Shuky Har-Noy      | Amber Release      |
|                    |                    |                    |                    |
+--------------------+--------------------+--------------------+--------------------+


Summary
-------
The Amber release of E2Manager supports The following flows:
	- ENDC Setup
	- X2 Setup
	- ENDC Configuration Update
	- X2 Configuration Update
	- Reset
	- Shutdown
	- Load Information

Release Data
------------

+--------------------------------------+--------------------------------------+
| **Project**                          | RAN Intelligent Controller  	      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Repo/commit-ID**                   | ric-plt/e2mgr                        |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release designation**              | Amber                                |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2019-12-02                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Purpose of the delivery**          | open-source E2Manager      	      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
