diff --git a/release_notes/voltha_2.3.rst b/release_notes/voltha_2.3.rst
new file mode 100644
index 0000000..3a14955
--- /dev/null
+++ b/release_notes/voltha_2.3.rst
@@ -0,0 +1,178 @@
+VOLTHA 2.3 Release Notes
+========================
+
+Highlights
+----------
+
+With the release of VOLTHA 2.3 and ONOS 2.2.2, the SEBA Surge effort from Oct1,
+2019 to March 31st 2020 comes to an end. Highlights of this release include
+performance and scale improvements, substantially expanded automated-tests,
+improved stability and robustness, and better support for the Deutsche Telekom
+(DT) FTTH and Turk Telekom (TT) workflows.
+
+Features & Improvements
+-----------------------
+
+- VOLTHA support moves from ONOS 1.13.9 to ONOS 2.2 (LTS branch); all ONOS apps
+  migrated to ONOS 2.2.x .
+
+- EdegCore OLT (and openolt-agent) moves from BAL 3.1 to BAL 3.2.3.2 with many
+  bug fixes and improved scale; in particular we now support multiple-GEM ports
+  reliably, for example 1 TCONT, 4 GEMs in AT&T workflow and 1 TCONT, 8 GEMs in
+  DT FTTH workflow.
+
+- ONOS olt, sadis and other apps upgraded to simultaneously support AT&T, DT
+  and TT workflows (together with related changes in VOLTHA).
+
+- Log levels are changeable on many VOLTHA components at runtime.
+
+- OMCI MIB templating implemented to reduce the number of OMCI messages for
+  known ONU types in order to improve openonu-adaptor scale.
+
+- Several scale improvements in voltha-rw-core including flow-decomposer route
+  calculations and core-to-adaptor transaction lifecycles.
+
+- OMCI MIB external (etcd) storage support implemented in the ONU adapter to
+  enable restart/reconcile and improve performance.
+
+- Container readiness and health checks were implemented.
+
+- Openflow agent (ofagent) rewritten in Golang.
+
+- Support for ANY_VLAN (4096) for DT workflow.
+
+- Several features added to support hardware-reboot and software-restarts.
+
+- ONOS-FCAPS support added for igmp and multicast (and related BBSim changes).
+
+- VOLTHA-pod management preliminary support for Redfish APIs added.
+
+- VOLTHA FCAPS: Added additional alarm types, dynamic log configuration, and
+  On-Demand API for ONU Self-Test.
+
+Development process
+-------------------
+
+- voltha-lib-go turned into a shared library, separated from voltha-go
+
+- Golang tooling has been containerized for easier development and version
+  maintenance
+
+- Kafka events can be viewed from voltctl
+
+- Updated to Python 3 within components and supporting tools
+
+
+Testing
+-------
+
+- `Unit tests coverage
+  <https://jenkins.opencord.org/view/VOLTHA%202.x%20verify>`_ greatly improved
+
+- Integration Tests
+
+  - `Automated tests run on both hardware and BBSim platforms
+    <https://jenkins.opencord.org/view/VOLTHA-2.3/>`_
+
+    - Functional Tests (ATT)
+    - All Container Restart/Failure scenarios (ATT)
+    - Validation checks for Error Scenarios
+    - Beginning of functional tests for DT WorkFlow
+
+- `Community pods <https://jenkins.opencord.org/view/Community-PODs/>`_ at DT
+  (Berlin) with GPON and XGSPON OLTs, and Infosys with XGSPON OLT, were set up
+
+- Scale Tests
+
+  - `Automated scale tests implemented with BBSim
+    <https://jenkins.opencord.org/view/voltha-scale-measurements/>`_
+  - Scale test procedure standardized and documented.
+
+Documentation
+-------------
+
+- Versioned documentation now published on `<https://docs.voltha.org>`_
+- Robot Test resource documentation is automatically generated and published.
+
+Known Issues
+------------
+
+**All of the issues listed below are expected to be supported in VOLTHA 2.4
+release.**
+
+- This release does not support multiple-OLTs, which is targeted for the next
+  release. In the meantime, please use ‘master’ for multiple-OLT support.
+
+- This release does not support multicast and multi-TCONT based workflows,
+  although substantial additions were made.
+
+- This release does not support multiple-ONU-adaptors, although several
+  features like multiple onu-adaptor registration and kafka topics per
+  onu-adaptor have been added to master.
+
+- This release does not officially support GPON. Although the feature exists,
+  it has not been tested completely.
+
+- This release does not officially support ONOS clustering for HA. Although
+  several features were added to make ONOS apps work in clustered mode, as well
+  as ofagent-go to work with an ONOS cluster, it has not been tested
+  completely.
+
+- This release does not distinguish between an OLT reboot and a temporary
+  disconnection between voltha and the OLT hardware - both cases are treated as
+  OLT reboot.
+
+- This release does not support disable of an OLT followed by a re-enable. The
+  only operation supported after OLT-disable is OLT-delete.
+
+Component Versions
+------------------
+
+`Helm Charts (voltha-helm-charts) <https://gerrit.opencord.org/gitweb?p=voltha-helm-charts.git;a=tree;h=refs/heads/voltha-2.3>`_
+
+voltha ``2.3.1`` with container images:
+
+- `voltha-rw-core <https://gerrit.opencord.org/gitweb?p=voltha-go.git;a=tree;h=refs/heads/voltha-2.3>`_: ``2.3.6``
+- `ofagent-go <https://gerrit.opencord.org/gitweb?p=ofagent-go.git;a=tree;h=refs/heads/voltha-2.3>`_: ``1.1.6``
+
+voltha-adapter-openolt: ``2.3.1`` with container image `voltha-openolt-adapter
+<https://gerrit.opencord.org/gitweb?p=voltha-openolt-adapter.git;a=tree;h=refs/heads/voltha-2.3>`_:
+``2.3.22``
+
+voltha-adapter-openonu ``2.3.0`` with container image `voltha-openonu-adapter
+<https://gerrit.opencord.org/gitweb?p=voltha-openonu-adapter.git;a=tree;h=refs/heads/voltha-2.3>`_:
+``2.3.6``
+
+`voltha-onos
+<https://gerrit.opencord.org/gitweb?p=voltha-onos.git;a=tree;h=refs/heads/voltha-2.3>`_:
+`onos chart
+<https://gerrit.opencord.org/gitweb?p=helm-charts.git;a=tree;f=onos>`_
+``3.0.1`` using container image ``4.0.2``
+
+ONOS App versions:
+
+- `aaa <https://gerrit.opencord.org/gitweb?p=aaa.git;a=summary>`_: ``2.0.2``
+- `dhcpl2relay <https://gerrit.opencord.org/gitweb?p=dhcpl2relay.git;a=summary>`_: ``2.0.2``
+- `igmpproxy <https://gerrit.opencord.org/gitweb?p=igmpproxy.git;a=summary>`_: ``2.0.0``
+- `kafka <https://gerrit.opencord.org/gitweb?p=kafka-onos.git;a=summary>`_: ``2.2.0``
+- `mcast <https://gerrit.opencord.org/gitweb?p=mcast.git;a=summary>`_: ``2.0.0``
+- `olt <https://gerrit.opencord.org/gitweb?p=olt.git;a=summary>`_: ``4.0.2``
+- `sadis <https://gerrit.opencord.org/gitweb?p=sadis.git;a=summary>`_: ``5.0.1``
+
+`bbsim
+<https://gerrit.opencord.org/gitweb?p=bbsim.git;a=tree;h=refs/heads/voltha-2.3>`:
+`bbsim chart
+<https://gerrit.opencord.org/gitweb?p=helm-charts.git;a=tree;f=bbsim>`_
+``3.0.18`` using container image: ``0.1.0``
+
+`OpenOLT Agent
+<https://gerrit.opencord.org/gitweb?p=openolt.git;a=tree;h=refs/heads/voltha-2.3>`_
+``2.3.0`` using ``BAL 3.2.3.2`` SDK
+
+- ``openolt_2_3_0_asfvolt16.deb`` (available from EdgeCore site)
+- Get access credentials for https://edgecore.quickconnect.to and then login
+  and navigate to File_Station -> EdgecoreNAS, and then the folder
+  /ASXvOLT16/OpenOLT_Agent/From_ONF_Distribution/ and pick the version above
+
+
+
