VOLTHA 2.4 Release Notes
========================

Highlights
----------

VOLTHA 2.4 together with ONOS 2.2.3 is the first release with full support for
all 3 operator workflows - AT&T’s 1 TCONT- 4 GEMs, Deutsche Telekom’s  FTTH 1
TCONT- 8 GEMs, and Turk Telekom’s  Multi-TCONT triple-play workflows. Also,
for the first time, this release supports whitebox GPON OLTs and in-band management
of remotely-located OLTs. It improves on performance and scale, achieving the
MVP 1.0 requirements for production deployments of 2 OLTs with 500 ONUs each for
the AT&T and DT workflows. The release also expands on automated-tests,
with over 100+ tests run nightly in regression testing jobs across 3 hardware pods,
delivering improved stability and robustness. VOLTHA 2.4 also comes on top of
up-to-date versions of key infrastructure components such as HELM 3 and Kubernetes 1.18.


Features & Improvements
-----------------------

- Full support for Turk Telekom triple play workflow with HSIA, Multicast IPTV, VoIP and VoD using T-CONTS per service.
  Two new ONOS apps introduced - igmp-proxy and mcast
- Support for multiple OLTs in a single-VOLTHA stack.
- Support for GPON OLTs, specifically EdgeCore’s ASGvOLT64 OLT
- Support for ONOS controller clustering (typically with 3 ONOS instances and 3 Atomix instances) for scale and high
  availability. All 7 ONOS applications used with VOLTHA upgraded to work in a clustered setting.
- Support for multiple ONU adaptor instances for scaling out (internal to a VOLTHA stack)
- Support for In-band Management of OLTs
- BAL transitioned from version 3.2.3.2 to version 3.4.3.3 with several bug fixes
- Full DT and ATT workflow support on BBSIM simulator for scale testing
- Scale improvements to meet MVP 1 targets of 2 OLTs with 500 ONUs each for both DT and ATT workflows,
  including several improvements to VOLTHA core data models.
- Enhanced Meter handling for Bandwidth profile support.
- Enhanced Group handling and cleanup.

Development process
-------------------

- Update to Kubernetes 1.18.5
- Update to Helm3 of all the charts and deployment tools.

Testing
-------

- Integration Tests

  - Automated tests run on both hardware and BBSim platforms, please use the VOLTHA-2.4 view under https://jenkins.lfbroadband.org/
  - Sanity test on hardware for TT workflow
  - In Band Management of OLT on one of the LF BB Menlo testing pods
  - GPON OLT test job in Berlin pod

- Scale Tests

  - Met required scale measurements with 2 OLTs and 500 ONUs each for both ATT and DT workflows

Documentation
-------------

- Updated documentation with workflow specific orientation and published on https://docs.voltha.org

Known Issues
------------

- [VOL-3376]  Data rate error margin beyond allowed limit
- [VOL-3377]  In-band interface does not get an IP address from DHCP sometimes due to an issue in BAL.
  Workaround automatically reboots the OLT.
- [VOL-3125]  Bandwidth profile not enforced with BAL 3.4.3.3.
- [VOL-3241] Scale measurements require the use of etcd in-memory

Component Versions
------------------

`Helm Charts (voltha-helm-charts) <https://gerrit.lfbroadband.org/gitweb?p=voltha-helm-charts.git;a=tree;h=refs/heads/voltha-2.4>`_

voltha ``2.5.7`` with container images:

- `voltha-rw-core <https://gerrit.lfbroadband.org/gitweb?p=voltha-go.git;a=tree;h=refs/heads/voltha-2.4>`_: ``2.4.5``
- `ofagent-go <https://gerrit.lfbroadband.org/gitweb?p=ofagent-go.git;a=tree;h=refs/heads/voltha-2.4>`_: ``1.2.6``

voltha-adapter-openolt: ``2.5.10`` with container image `voltha-openolt-adapter
<https://gerrit.lfbroadband.org/gitweb?p=voltha-openolt-adapter.git;a=tree;h=refs/heads/voltha-2.4>`_:
``2.4.14``

voltha-adapter-openonu ``2.4.6`` with container image `voltha-openonu-adapter
<https://gerrit.lfbroadband.org/gitweb?p=voltha-openonu-adapter.git;a=tree;h=refs/heads/voltha-2.4>`_:
``2.4.8``

`voltha-onos
<https://gerrit.lfbroadband.org/gitweb?p=voltha-onos.git;a=tree;h=refs/heads/voltha-2.4>`_:
`onos chart
<https://github.com/onosproject/onos-helm-charts/tree/master/onos-classic>`_
``0.1.1`` using container image ``4.1.4``

`ONOS <https://gerrit.onosproject.org/plugins/gitiles/onos>`_: ``2.2.3``

ONOS App versions:

- `aaa <https://gerrit.lfbroadband.org/gitweb?p=aaa.git;a=summary>`_: ``2.1.0``
- `dhcpl2relay <https://gerrit.lfbroadband.org/gitweb?p=dhcpl2relay.git;a=summary>`_: ``2.1.0``
- `igmpproxy <https://gerrit.lfbroadband.org/gitweb?p=igmpproxy.git;a=summary>`_: ``2.1.2``
- `kafka <https://gerrit.lfbroadband.org/gitweb?p=kafka-onos.git;a=summary>`_: ``2.3.1``
- `mcast <https://gerrit.lfbroadband.org/gitweb?p=mcast.git;a=summary>`_: ``2.1.0``
- `olt <https://gerrit.lfbroadband.org/gitweb?p=olt.git;a=summary>`_: ``4.1.3``
- `sadis <https://gerrit.lfbroadband.org/gitweb?p=sadis.git;a=summary>`_: ``5.1.0``

`bbsim
<https://gerrit.lfbroadband.org/gitweb?p=bbsim.git;a=tree;h=refs/heads/voltha-2.4>`_:
`bbsim chart
<https://gerrit.lfbroadband.org/gitweb?p=helm-charts.git;a=tree;f=bbsim>`_
``3.1.0`` using container image: ``0.2.6``

`OpenOLT Agent
<https://gerrit.lfbroadband.org/gitweb?p=openolt.git;a=tree;h=refs/heads/voltha-2.4>`_
``2.4.9`` using ``BAL 3.4.3.3`` SDK

**Available from EdgeCore site**

- Out of band management

  - ONL version (both GPON and XGSPON) ONL-onl-4.14_ONL-OS8_2020-04-14.1946-72b95a7_AMD64_INSTALLED_INSTALLER
  - ``openolt_asfvolt16-2.4.9-dev-d4aeca5a2094f7dc7c519913ab1558348c546dab.deb`` for ASFVOLT16
  - ``openolt_asgvolt64-2.4.9-dev-d4aeca5a2094f7dc7c519913ab1558348c546dab.deb`` for ASGVOLT64

- In band management

  - use ONL image, comprising of Bal and openolt (available from edgecore site)
    for ASFVOLT16 ``ONL-onl-4.14_ONL-OS8_2020-07-24.2214-72b95a7_AMD64_INSTALLED_INSTALLER``

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_LF_BB_Distribution/ and pick the version above

A full list of Jira tickets releated to the VOLTHA 2.4 release is available
`here <https://docs.google.com/document/d/1BolYA52uJ0LVJkYz5SYPWdWamkt4J3yP6CLhH7FNjBg/edit?usp=sharing>`_ .
