diff --git a/release_notes/release_process.rst b/release_notes/release_process.rst
new file mode 100644
index 0000000..632dd7e
--- /dev/null
+++ b/release_notes/release_process.rst
@@ -0,0 +1,158 @@
+Release Process
+===============
+
+This document describes the technical steps to create a new release of VOLTHA.
+
+Creating the initial release
+----------------------------
+
+A release branch name is decided on, where all tagged releases will be created
+in each repo. Historically this has been ``voltha`` followed by the Major and
+Minor `Semver <https://semver.org/>`_ version, such as ``voltha-2.2``,
+``voltha-2.3``, etc.  The rest of this section will use the ``voltha-2.3``
+release as an example:
+
+A branch named ``voltha-2.3`` is created on the voltha-helm-charts repo.  Release
+candidates will be created of each chart for the ``2.3`` release. The action that
+indicates the creation of the ``2.3`` release is to changing the `voltha
+<https://gerrit.opencord.org/gitweb?p=voltha-helm-charts.git;a=tree;f=voltha>`_
+helm chart, and adapter charts with version: ``2.3.0`` specified in ``Chart.yaml``
+within the `voltha-helm-charts
+<https://gerrit.opencord.org/gitweb?p=voltha-helm-charts.git;a=summary>`_ repo.
+
+Accompanying tests for 2.3 are created by creating a branch created named
+``voltha-2.3`` on the `voltha-system-tests
+<https://gerrit.opencord.org/gitweb?p=voltha-system-tests.git;a=summary>`_
+repo. At release we create a tag ``2.3.0`` on that branch.
+
+These two repos are the only ones that receive a ``2.3.0`` tag. Other repos that
+contain individual components have their own versioning/release cadence, driven
+by SemVer.
+
+For all other repos that create components that go into the release, tags will
+be created and ``voltha-2.3`` branches are created starting from the tag.
+
+To allow for future patches to go into the repo in a way that does not conflict
+with the patch version, each component repo's ``VERSION`` file should have it's
+Minor version increased. (ex: ``1.1.x`` to ``1.2.0-dev``, so future ``1.1.x+1``
+component release can easily be created).
+
+Testing CI jobs will be created that check out the voltha-2.3 branch of the
+`voltha-system-tests
+<https://gerrit.opencord.org/gitweb?p=voltha-system-tests.git;a=summary>`_
+repo, testing the charts as checked out with the ``voltha-2.3`` branch of
+``voltha-helm-charts``.  Patches on the ``voltha-2.3`` branch of components
+that build containers will need to be changed to rebuild those containers and
+test with the ``voltha-2.3`` branch of helm charts.
+
+Creating point releases on a stable branch
+------------------------------------------
+
+If a fix is only needed to the helm charts:
+
+- Make the fix on the master branch of voltha-helm-charts (assuming that it is
+  required in both places).
+
+- After the master tests pass, manually cherry-pick the fix to the voltha-2.3
+  branch (the Chart.yaml version would be different, requiring the manual
+  step).
+
+- Cherry-picked patchsets on that branch will be checked by the voltha-2.3
+  branch of tests.
+
+- When it passes, submitting the change will make a new 2.3.x release
+
+If a fix is needed to the components/containers that are included by the helm
+charts:
+
+- Develop a fix to the issue on the master branch, get it approved after
+  passing master tests.
+
+- Manually cherry-pick to the voltha-2.3 branch of the component, incrementing
+  the patch version, and test with the voltha-2.3 version of
+  voltha-system-tests and helm charts.
+
+- Update helm charts and go through the helm chart update process above.
+
+
+What changes can be brought into a stable branch?
+-------------------------------------------------
+
+For a change to be suitable for a stable branch, it has to be either a:
+
+- Bug
+- Non-code fix (documentation, build process)
+- Security or compatibility updates (problem found in a dependency, upstream
+  software EOL, etc.)
+
+Process to create a change on a stable branch
+
+- Add a Jira item, with the ``Affects Version: ``VOLTHA vX.X`` set
+- Discuss and get consensus on the issue via the Voltha mailing list, in the
+  all-Voltha meeting, or on Slack about whether this fix should be brought to a
+  stable branch
+- Create a fix, and go through the integration process to create a new point
+  release.
+
+What is a bug?
+""""""""""""""
+
+- Anything that causes a functional regression test (Robot tests) to fail
+- Not a new feature!
+- Severe issue (causes data loss or crash), or frequently occurring are
+  generally more likely to be accepted.
+- Issues that are merely annoying and don't cause data loss or a crash, or
+  happen very infrequently or can't be reproduced may not be.
+
+As a best practice, please add tests when bugs are found, if tests don't
+currently cover the particular bug. Examples:
+
+- Robot tests for integration-related issues
+- Unit tests for code-level issues
+
+
+Repos branched for each release
+-------------------------------
+
+Charts
+""""""
+
+- voltha-helm-charts
+
+Testing
+"""""""
+
+- voltha-system-tests
+
+Tools
+"""""
+
+- bbsim (also creates containers)
+- voltctl
+
+ONOS Apps
+"""""""""
+
+- aaa
+- dhcpl2relay
+- igmp
+- kafka
+- mcast
+- olt
+- sadis
+
+Libraries
+"""""""""
+
+- pyvoltha
+- voltha-lib-go
+- voltha-protos
+
+Components (which build containers)
+"""""""""""""""""""""""""""""""""""
+- ofagent-go
+- voltha-go (rw_core)
+- voltha-openolt-adapter
+- voltha-openonu-adapter
+- voltha-onos (includes ONOS Apps)
+
diff --git a/release_notes/voltha_2.2.rst b/release_notes/voltha_2.2.rst
new file mode 100644
index 0000000..7d029a6
--- /dev/null
+++ b/release_notes/voltha_2.2.rst
@@ -0,0 +1,79 @@
+VOLTHA 2.2 Release Notes
+========================
+
+Highlights
+----------
+
+Started the SEBA Surge effort to get VOLTHA 2.x in production by AT&T, DT, and
+TT. VOLTHA 2.2 release is a stepping stone towards that goal. Main highlights
+of this release include the work done for stabilizing VOLTHA and creating test
+infrastructure.
+
+Core
+----
+- Simplified VOLTHA stack: https://docs.google.com/presentation/d/1pPJFG1NIDQGSla_Sn1Jx4xqDXO9uEEhwgTegZEB6JK0/edit
+
+Development process
+-------------------
+
+- kind-voltha used to bring up development/testing
+- voltctl CLI replaces CLI container
+- Supports AT&T workflow
+- Moved to BAL 3.1 (from BAL 2.6 in VOLTHA 1.7 and 2.1 releases)
+- 7 active brigades
+
+Testing
+-------
+
+- Expanded set of Test Cases: https://docs.google.com/spreadsheets/d/1TOSibGWXOAYOVeT0UwcivFRMm3oQzSdcpRG5E9_WTbQ/edit
+- Patchset sanity testing with emulated hardware (BBSim)
+- Ability to submit patchsets for test on physical hardware (hardware test keyword in gerrit)
+- Nightly regression suite on hardware growing
+- New BBSim used for functional testing and scale testing
+- BBSim Reflector (BBR) to verify BBSim itself scales
+
+Documentation
+-------------
+
+- Operator Workflows Defined: https://docs.google.com/presentation/d/1FP42UviD9Ln-Pjrho5cEOT4mxD1SjszjJUD1MA3jdKY/edit
+- Several Design docs published: https://drive.google.com/drive/u/1/folders/1sNbD1oMA1twG4Kqn2e77ExzXR81qC6LK
+
+Known Issues
+------------
+
+- | This release does not support Tech Profiles other than 1 TCONT,
+  | 1 GEM port, due to issues in BAL 3.1 (VOL-2104, VOL-2105). A move to BAL 3.4 is required.
+- A scenario in the AT&T workflow results in errors (see VOL-2395)
+
+Component Versions
+------------------
+
+- ONOS: 1.13.9, with app versions:
+    - olt: 3.0.1
+    - sadis: 3.1.0
+    - aaa: 1.9.0
+    - dhcpl2relay: 1.6.1
+    - kafka: 1.1.0
+
+- VOLTHA component versions
+    - helm charts
+        - voltha: 2.2.0
+        - adapter-openolt 2.2.0
+        - adapter-openonu 2.2.0
+        - onos: 1.1.4
+    - Containers
+        - voltha-rw-core: 2.2.3
+        - voltha-of-agent: 2.2.3
+        - voltha-openolt-adapter: 2.2.5
+        - voltha-openonu-adapter: 2.2.6
+        - voltha-onos: 2.2.0
+
+- BBSim
+    - helm charts: 3.0.7
+    - container: 0.0.9
+
+- OpenOLT Agent using BAL 3.1 (voltha-2.2)
+    - openolt_2_2_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
+
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
+
+
+
