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/overview/troubleshooting.rst b/overview/troubleshooting.rst
index 353e61b..4dc03cb 100644
--- a/overview/troubleshooting.rst
+++ b/overview/troubleshooting.rst
@@ -7,10 +7,10 @@
 
 Depending on your issue useful tips and tricks can be found:
 
-- `No ONUs are discovered <https://guide.opencord.org/profiles/seba/troubleshoot/no-onus.html>`_
-- `Can't authenticate <https://guide.opencord.org/profiles/seba/troubleshoot/no-aaa.html>`_
-- `DHCP is not working <https://guide.opencord.org/profiles/seba/troubleshoot/no-dhcp.html>`_
-- `No Ping <https://guide.opencord.org/profiles/seba/troubleshoot/no-ping.html>`_
+- `No ONUs are discovered <https://guide.opencord.org/master/profiles/seba/troubleshoot/no-onus.html>`_
+- `Can't authenticate <https://guide.opencord.org/master/profiles/seba/troubleshoot/no-aaa.html>`_
+- `DHCP is not working <https://guide.opencord.org/master/profiles/seba/troubleshoot/no-dhcp.html>`_
+- `No Ping <https://guide.opencord.org/master/profiles/seba/troubleshoot/no-ping.html>`_
 
 
 Trace Packets across components
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.
