diff --git a/VERSION b/VERSION
index 14377a8..10c2c0c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.10.0-dev
+2.10.0
diff --git a/release_notes/voltha_2.10.rst b/release_notes/voltha_2.10.rst
new file mode 100644
index 0000000..8e8104d
--- /dev/null
+++ b/release_notes/voltha_2.10.rst
@@ -0,0 +1,260 @@
+VOLTHA 2.10 Release Notes
+=========================
+
+Highlights
+----------
+
+VOLTHA-2.10 builds on the 2.9 release for VOLTHA. The release focused on including new features, improving scale and
+interacting with the Broadband Forum BBF. With VOLTHA 2.10 Fiber to the Building (FTTB) capabilities were introduced,
+scale was enhanced to 4096 subscribers per stack, rolling software upgrade capabilities were introduced and the ONU
+adapter was improved with extended message support and unknown ME handling. ONU delete and automatic re-discovery
+was implemented. Finally collaboration with BBF defined the yang models extension needed to support VOLTHA, that were
+started to get implemented in the BBF adapter for the VOLTHA northbound.
+Finally new tests were introduced for FTTB, memory leaks and the Telecom Italia (TIM) workflow.
+
+
+VOLTHA 2.10 first and foremost introduced the support for FTTB use case with the 1 tcont 4 gem technology profile.
+VOLTHA now has capability to install ANCP, DPU management and subscriber rules flow rules. These rules are created in
+ONOS and translated in vlan swapping at the OLT (outer vlan swap). The rules get installed after the MAC address is
+learnt for the DPU device. These Rules configure the OMCI ONT within the DPU. Extensions have been made in ONOS and
+in the different adapters. Sadis has been extended with the subscriber and ANCP/Management traffic definitions and
+documentation.
+Extended work has been put in to increase scalability and in VOLTHA 2.10 a single stack can support up to
+4096 subscribers, on one or two OLTs, while keeping the same 10 minute maximum provisioning time from when the OLT
+connects to VOLTHA. All the VOLTHA components have also been extended to ensure a smooth upgrade with no request
+downtime via the Kubernetes rolling upgrade functionality.
+The onu adapter now allows for ONU automatic re-discovery after deletion, unknown ME handling where we ignore
+unknown messages but still onboard the ONU. Extended message support has also been introduced allowing for
+faster ONU image installation and MIB initial download. Extended message support has been parameterized not to be
+enabled by default, it has also been tested only with BBSIM, according to according to ITU-T G.988 Amendment 3
+(03/2020, further hardware test will be done and required fixes will be applied, any report from the community
+is appreciated.
+
+The stack has been enhanced to provide a pathway for supporting COMBO PON OLTs with the introduction of a framework of
+dynamic detection of PON Transceiver Technology and then using that information to configure the MAC and PON modes.
+
+Alignment with the Broadband Forum progressed and a first agreement has been reached on the yang models that correctly
+map VOLTHA, both on the OLT and ONU side and the subscriber service abstraction. The BBF models have been extended and
+the proposals are ready for submission for official approval. In the meantime a BBF adapter has been written,
+exposing a netconf server on the NB which leverages the mentioned models and in turns call the VOLTHA/ONOS apis.
+
+Finally the release provided bug fixes across the stack, especially around Resource Cleanup and correct state assurance
+for devices and for the different containers. Also several panics and null pointer exceptions have been prevented,
+yielding a much more stable system.
+
+On the testing front VOLTHA 2.10 includes tests for the FTTB functionality, both on BBSIM and on a physical DPU in
+the Berlin POD. Also, TIM Workflow tests have been introduced in BBSIM, to avoid regression for that workflow,
+which includes the PPPoE application. New tests have been introduced to check for memory leaks during device deletion
+and re-creation both for the ONU adapter and the OLT adapter.
+Other new tests for the unknown MEs, ONU delete and re-discovery, rolling upgrade and extended OMCI message support.
+More tests have been extended, such as TT with unit-tag subscriber provisioning, mac learning, also the
+Device management Interface tests are now being run on hardware as well.
+
+Along with VOLTHA 2.10, the Device Management Brigade also released new major versions
+(up to `1.5.0 <https://github.com/opencord/device-management-interface/releases/tag/v1.5.0>`_) of the interface
+with COMBO PON support, NNI port speed runtime config, new events and states.
+
+
+Features & Improvements
+-----------------------
+
+- Fiber to the Building (FTTB) Support
+
+  - Support for DPU management and ancp traffic rules single tagged with VLAN swap
+  - Support for Subscriber traffic flows with outer VLAN swap
+  - Sadis integration with documentation
+  - Hardware integration with ADTRAN DPU
+  - 1 tcont 4 Gem technology profile
+
+- Scale enhancements
+
+  - 4096 subscribers on one OLT with 1 VOLTHA stack
+  - 4096 subscribers on two OLTs with 1 VOLTHA stack
+
+- Rolling software upgrade capabilities
+
+  - Kubernetes rolling upgrade of pods
+  - Requests always served with no pod downtime
+
+- Initial Combo PON support
+
+  - Framework for dynamic detection of PON Transceiver Technology
+
+- Extended Message Support in ONU Adapter
+
+  - Reduced number of messages for ONU Software Upgrade and MIB template download
+  - Higher speed of software image and MIB template download
+
+- Unknown MEs handling
+
+  - Relaxed decoding of unknown MEs
+  - Discarded unknown entities but proceed with ONU MIB download for that ONU.
+
+- ONU Delete and re-discovery
+
+- BBF Adapter Initial Implementation
+
+  - Northbound NETCONF server
+  - Southbound integration with VOLTHA protos, ONOS APIs
+  - Augmentation and use of existing BBF models
+  - Get OLT and ONU information via NETCONF and BBF models
+
+- Move to ONOS 2.5.6 with bug fixes
+
+Bug Fixes
+---------
+
+- Resource cleanup in ONOS, ETCD and final state machines, especially in case of device delete/restart and adapter(s)
+  restart
+- Avoid wrong state and missing notification for ONUs in several components and system states.
+- Avoid panic and runtime expectations in VOLTHA and ONOS Apis
+
+
+
+Test
+----
+
+Voltha-2.10 tests are available on `Jenkins <https://jenkins.opencord.org/>`_.
+
+- FTTB tests
+- Optimized ATT test for time reduction
+- Memory leak tests with 200 iterations of device deletion
+- Unknown ME tests
+- Extended OMCI message support for MIB Upload
+- ONU Delete and Rediscovery
+- Mac Learning in TT Sanity
+- Mib Audit
+- Device Management Interface tests on ADTRAN hardware
+- MDS mismatch
+- Voltha services Rolling upgrade
+- TIM workflow tests
+- Unknown attribute tests
+
+
+Design Discussions
+------------------
+
+- OLT Disconnect and Reconnect
+- ONOS replacement controller (lightweight VOLTHA controller)
+- ONF/BBF integration and models extension
+- COMBO PON support
+
+
+
+Documentation
+-------------
+
+- Contributing to VOLTHA
+- Certification program
+- release procedure and versioning guidelines
+- jenkins node setup for testing
+- Rollback scenarios
+
+As usual documentation is published on https://docs.voltha.org
+
+Known Issues
+------------
+
+- FTTB Upstream flow stays in pending add on openolt based devices. `[VOL-4742] <https://jira.opencord.org/browse/VOL-4742>`_
+- ATT Workflow fails EAPOL flow installation at scale `[VOL-4745] <https://jira.opencord.org/browse/VOL-4745>`_
+- Olt app removes flows based on the latest Sadis entry, if sadis changes flows can’t be removed. `[VOL-4746] <https://jira.opencord.org/browse/VOL-4746>`_
+- Flows stuck in pending-add when subscriber is provisioned after open-olt-adapter pod restart `[VOL-4747] <https://jira.opencord.org/browse/VOL-4747>`_
+- Alpha ONUs on soak pod drop upstream ARP/ICMP packets `[VOL-4748] <https://jira.opencord.org/browse/VOL-4748>`_
+- Rolling update test failures `[VOL-4749] <https://jira.opencord.org/browse/VOL-4749>`_
+
+
+Certification Program
+---------------------
+
+Thanks to the `Continuous Certification <https://opennetworking.org/continuous-certification-program>`_ program at
+ONF we can also ensure that the following ONF member products are compatible with the VOLTHA 2.10 release:
+
+- Edgecore ASGVolt64 GPON OLT
+- Edgecore ASXVolt16 XGSGPON OLT
+- Radisys 3200G GPON OLT
+- Radisys 1600G GPON OLT
+- Radisys 1600X COMBO OLT
+- Adtran 6320X COMBO OLT
+- Zyxel SDA3016SS Combo OLT
+- Sercomm FG1000 GPON ONU
+- Sercomm Glasfaser GPON ONU
+- Edgecore 6712-32X Switch
+- Edgecore 7712-32X Switch
+
+In particular the 2.10 release added the Zyxel SDA3016SS COMBO OLT.
+
+Jira stories
+------------
+A full list of stories and bugs completed can be found under the
+`VOLTHA 2.10 <https://jira.opencord.org/secure/ReleaseNote.jspa?projectId=10106&version=12300>`_ release page in Jira.
+
+Component Versions in VOLTHA 2.10 release
+-----------------------------------------
+
+ONOS and Atomix:
+++++++++++++++++
+
+- `ONOS 2.5 LTS <https://github.com/opennetworkinglab/onos/releases/tag/2.5.8>`_: ``2.5.8``
+- `ATOMIX <https://github.com/atomix/atomix/releases/tag/atomix-3.1.9>`_: ``3.1.9``
+
+ONOS Apps:
+++++++++++
+
+- `aaa <https://gerrit.opencord.org/gitweb?p=aaa.git;a=summary>`_: ``2.6.0``
+- `dhcpl2relay <https://gerrit.opencord.org/gitweb?p=dhcpl2relay.git;a=summary>`_: ``2.6.0``
+- `igmpproxy <https://gerrit.opencord.org/gitweb?p=igmpproxy.git;a=summary>`_: ``2.5.0``
+- `kafka <https://gerrit.opencord.org/gitweb?p=kafka-onos.git;a=summary>`_: ``2.9.0``
+- `mcast <https://gerrit.opencord.org/gitweb?p=mcast.git;a=summary>`_: ``2.6.0``
+- `olt <https://gerrit.opencord.org/gitweb?p=olt.git;a=summary>`_: ``5.0.1``
+- `sadis <https://gerrit.opencord.org/gitweb?p=sadis.git;a=summary>`_: ``5.6.0``
+- `bng <https://gerrit.opencord.org/gitweb?p=bng.git;a=summary>`_: ``2.2.0``
+- `pppoeagent <https://gerrit.opencord.org/plugins/gitiles/pppoeagent/>`_: ``1.2.0``
+- `olttopology <https://gerrit.opencord.org/plugins/gitiles/olttopology/>`_: ``1.2.0``
+
+VOLTHA Components:
+++++++++++++++++++
+
+- `Helm Charts (voltha-helm-charts) <https://gerrit.opencord.org/gitweb?p=voltha-helm-charts.git;a=tree>`_ - ``3.1.1``
+- `bbsim <https://gerrit.opencord.org/gitweb?p=bbsim.git;a=tree>`_- ``1.12.10`` with `chart <https://gerrit.opencord.org/gitweb?p=helm-charts.git;a=tree;f=bbsim>`_ ``4.8.6``
+- `voltha-go <https://gerrit.opencord.org/gitweb?p=voltha-go.git;a=tree>`_ - ``3.1.5`` with chart ``2.11.3``
+- `ofagent-go <https://gerrit.opencord.org/gitweb?p=ofagent-go.git;a=tree>`_ - ``2.1.2``  with chart ``2.11.3``
+- `voltctl <https://gerrit.opencord.org/gitweb?p=voltctl.git;a=tree>`_ - ``1.7.6``
+- `voltha-openolt-adapter <https://gerrit.opencord.org/gitweb?p=voltha-openolt-adapter.git;a=tree>`_ - ``4.2.6`` with chart ``2.11.3``
+- `voltha-openonu-adapter-go <https://gerrit.opencord.org/gitweb?p=voltha-openonu-adapter-go.git;a=tree>`_ - ``2.2.8`` with chart ``2.10.3``
+- `voltha-onos <https://gerrit.opencord.org/gitweb?p=voltha-onos.git;a=tree>`_ -  ``5.0.5`` with chart ``0.1.27``
+- `openolt agent <https://gerrit.opencord.org/gitweb?p=openolt.git;a=tree>`_ - ``3.7.5``
+- `voltha-protos <https://github.com/opencord/voltha-protos/releases/tag/v5.2.5>`_ - ``5.2.5``
+- `voltha-lib-go <https://github.com/opencord/voltha-lib-go/releases/tag/v7.1.7>`_ - ``7.1.7``
+- `Bbsim-sadis-server <https://github.com/opencord/bbsim-sadis-server/releases/tag/v0.3.4>`_ - ``0.3.4`` with chart ``0.3.1``
+- `voltha-system-tests <https://github.com/opencord/voltha-system-tests/releases/tag/2.9.0>`_ - ``2.10.0``
+
+
+Helm Chart Versions:
+++++++++++++++++++++
+This section refers to the macro charts to deploy the required infrastructure and a (or many) VOLTHA stacks:
+- Voltha-infra: ``2.10.7``
+- Voltha-stack: ``2.10.4``
+
+BAL Version:
+++++++++++++
+Broadcom abstraction layer (BAL) version: ``3.10.2.2``.
+
+Openolt Agent packages:
++++++++++++++++++++++++
+**EdgeCore**
+Get access credentials for https://edgecore.quickconnect.to from Edgecore.
+Then login and navigate to ``File_Station`` -> ``EdgecoreNAS``, and then the folder
+``/ASXvOLT16/OpenOLT_Agent/From_ONF_Distribution/voltha-2.10`` or
+``/ASGvOLT64/OpenOLT_Agent/From_ONF_Distribution/voltha-2.10`` based on ``ASXvOLT16`` or ``ASGvOLT64`` platform,
+and pick the suitable OLT debian package based on ``BAL 3.10.2.2`` applicable for you.
+Please make sure to use the ONL
+``/ASXvOLT16/OpenOLT_Agent/From_ONF_Distribution/ONL-onl-4.14_ONL-OS8_2021-11-26.0058-0de1c30_AMD64_INSTALLED_INSTALLER``
+for running ``BAL 3.10.2.2``.
+
+**Radisys**
+Please write to `Cameron Lundberg <cameron.lundberg@radisys.com>`_
+to get the OLT debian package validated on 3200G, 1600x and 1600G platforms for VOLTHA-2.10 release
+
+**Radisys**
+Please write to `Emanuel Villalobos <Emanuel.Villalobos@zyxel.com.tw>`_
+to get the OLT debian package validated on the SDA3016SS for VOLTHA-2.10 release.
