.. figure:: images/voltha.svg
   :alt: voltha- Release Notes
   :width: 40%
   :align: center


VOLTHA 2.12 Release Notes
=========================

Highlights
----------

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

.. list-table:: Features & Improvements
   :widths: 10, 60
   :header-rows: 1

   * - Jira
     - Description
   * - :jira-browse:`VOL-4949 <VOL-4949>`
     - Introduce DEVICE_BUSY reason in the UploadDebugInfoStatus DMI message
   * - :jira-browse:`VOL-4783 <VOL-4783>`
     - Introduce UploadDebugInformation RPC in DMI
   * - :jira-browse:`VOL-4788 <VOL-4788>`
     - Create package in voltha-libs-go for support of prometheus counters in voltha
   * - :jira-browse:`VOL-4782 <VOL-4782>`
     - Enchance DMI to include DataValueType in Events and also clarification for Transceiver Events
   * - :jira-browse:`VOL-4878 <VOL-4878>`
     - Improve the voltha-protos extensions interface to get the Rx Power levels from an OLT
   * - :jira-browse:`VOL-4877 <VOL-4877>`
     - Enhance DMI interface to be able to retrieve the Tx Power on the Transceivers
   * - :jira-browse:`VOL-4958 <VOL-4958>`
     - Introduce protobuf dependencies in DMI for the python testing framework
   * - :jira-browse:`VOL-4952 <VOL-4952>`
     - Add retry client options to the grpc library in voltha-lib-go
   * - :jira-browse:`VOL-4983 <VOL-4983>`
     - voltctl list device meters with traffic shaping info
   * - :jira-browse:`VOL-5043 <VOL-5043>`
     - Enhance DMI interface to have CPU/Mem/Disk usage alarms and also NTP synch alarms
   * - :jira-browse:`VOL-4444 <VOL-4444>`
     - VOL-4340 Create API for profile in voltha rw-core for profile operations
   * - :jira-browse:`VOL-4436 <VOL-4436>`
     - VOL-4340 Create proto files for sip profile and voip service
   * - :jira-browse:`VOL-5046 <VOL-5046>`
     - Reuse grpc clinet connection in grpc clinet lib
   * - :jira-browse:`VOL-4972 <VOL-4972>`
     - Changes in openolt adapter to reconcile onu device and pon states
   * - :jira-browse:`VOL-4953 <VOL-4953>`
     - Retry for grpc towards core in openolt adapter
   * - :jira-browse:`VOL-5216 <VOL-5216>`
     - Handle transition in core during device reboot
   * - :jira-browse:`VOL-5197 <VOL-5197>`
     - In DMI add QSFP-DD as a form factor for the TransceiverAttributes
   * - :jira-browse:`VOL-4950 <VOL-4950>`
     - Move the component_uuid from EventsConfigurationRequest to EventCfg of DMI interface
   * - :jira-browse:`VOL-5241 <VOL-5241>`
     - Add Zyxel to ONU Vendor list
   * - :jira-browse:`VOL-5233 <VOL-5233>`
     - VOL-5206 Change "ONU_DYING_GASP_EVENT" check to "ONU_DYING_GASP_RAISE_EVENT" in Alarm tests

Bug Fixes
---------

.. list-table:: Bug Fixes
   :widths: 10, 60
   :header-rows: 1

   * - Jira
     - Description
   * -
     -
   * - :jira-browse:`VOL-4926 <VOL-4926>`
     - VOL-4836 kail - godownloader.sh no longer available: alternative needed
   * - :jira-browse:`VOL-4934 <VOL-4934>`
     - omci-lib-go: MIC (AES-128) calculation does not properly support the Extended Message Set
   * - :jira-browse:`VOL-4927 <VOL-4927>`
     - omci-lib-go: ONT-G ME alarms are not supposed
   * - :jira-browse:`VOL-4929 <VOL-4929>`
     - openonuAdapterGo - memory leak seen in long term tests
   * - :jira-browse:`VOL-4931 <VOL-4931>`
     - openoltAdapter: memory leak seen in long term tests
   * - :jira-browse:`VOL-4984 <VOL-4984>`
     - voltctl log level list does not display the component open-flow-agent
   * - :jira-browse:`VOL-5105 <VOL-5105>`
     - cli label missing for pon ports in BBSIM
   * - :jira-browse:`VOL-5193 <VOL-5193>`
     - OpenOnuAdapterGo: MIB sync handling fails , when the MIB template has NULL terminated strings.
   * - :jira-browse:`VOL-5187 <VOL-5187>`
     - openolt adaptor should not set discovery in progress for a given onu in case the particular discovery request fails
   * - :jira-browse:`VOL-5165 <VOL-5165>`
     - Openoltagent getting crashed when ONT is rebooted
   * - :jira-browse:`VOL-5172 <VOL-5172>`
     - Olt adaptor trying to add flows to the devices even when the parent olt is not up
   * - :jira-browse:`VOL-5104 <VOL-5104>`
     - BBSIM crashed when adding flows
   * - :jira-browse:`VOL-4993 <VOL-4993>`
     - Upon OLT reboot, OLT's OPERSTATUS is observed as "rebooted" and no ONTs are discovered
   * - :jira-browse:`VOL-4798 <VOL-4798>`
     - voltctl - log configuration for multiple stacks doesn't work
   * - :jira-browse:`VOL-5212 <VOL-5212>`
     - Unable to fetch PON RX power for all the ONTs on a PON port.
   * - :jira-browse:`VOL-5215 <VOL-5215>`
     - After rebooting ONUs the BBSIM OLT is crashing
   * - :jira-browse:`VOL-5208 <VOL-5208>`
     - onu adapter will go into race and crash if delete-device and delete gemport from olt adapter happens at once
   * - :jira-browse:`VOL-5210 <VOL-5210>`
     - Open onu adapter crashes when processing requests and device is deleted
   * - :jira-browse:`VOL-5107 <VOL-5107>`
     - forced crash during child device detected may result in duplicate device
   * - :jira-browse:`VOL-5219 <VOL-5219>`
     - in case voltha core goes down before it gets a chance to fire reconcile to the adaptors it should retrigger the reconcile process once it comes back up
   * - :jira-browse:`VOL-5175 <VOL-5175>`
     - OLT device ports list in ONOS is empty after rebooting the OLT
   * - :jira-browse:`VOL-5195 <VOL-5195>`
     - Missing ANI-G Signal Fail and Signal Degrade alarm notification
   * - :jira-browse:`VOL-5209 <VOL-5209>`
     - Open onu adapter crashes during delete device
   * - :jira-browse:`VOL-5249 <VOL-5249>`
     - error loading onos image in voltha-onos-sanity_test
   * - :jira-browse:`VOL-5236 <VOL-5236>`
     - onu adapter should gracefully reset vlan config fsm on onu down
   * - :jira-browse:`VOL-5223 <VOL-5223>`
     - OpenOnuAdapterGo: Alarm Mgr has to handle unconfigured MEs responses from ONT during Alarm Audit.


Test
----

.. list-table:: Test
   :widths: 10, 60
   :header-rows: 1

   * - Jira
     - Description
   * - :jira-browse:`VOL-4829 <VOL-4829>`
     - openonuAdapterGo: Robustness - Test of reconciling openonu-adapter with continuous traffic at real HW


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

As usual documentation is published on https://docs.voltha.org


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

Certification Program
---------------------

Thanks to the Continuous Certification program at ONF we can also ensure
that the following ONF member products are compatible with the VOLTHA 2.11
release:

- Edgecore ASGVolt64 GPON OLT
- Radisys 3200G GPON OLT
- Radisys 1600G GPON OLT
- Zyxel SDA3016SS Combo OLT


Jira stories
------------
A full list of stories and bugs completed can be found under the
`VOLTHA 2.12 <https://lf-broadband.atlassian.net/projects/VOL/versions/12600>`_ (`formatted <https://lf-broadband.atlassian.net/secure/ReleaseNote.jspa?projectId=10106&version=12600>`_) release page in Jira.

|

Component Versions in VOLTHA 2.12 release
-----------------------------------------

ONOS and Atomix
+++++++++++++++

.. list-table:: ONOS and Atomix
   :widths: 30, 5, 5, 5, 5, 5
   :header-rows: 2

   * - Component
     - VOLTHA
     - Component
     - with
     - Gerrit
     - Github
   * - Name
     - Ver
     - Ver
     - Chart
     - URL
     - URL
   * -
     -
     -
     -
     -
     -
   * - ONOS 2.5 LTS: `2.5.9 <https://github.com/opennetworkinglab/onos/releases/tag/2.5.9>`_, `2.5.8 <https://github.com/opennetworkinglab/onos/releases/tag/2.5.8>`_
     - ``2.5.5``
     - ``2.5.9``, ``2.5.8``
     -
     -
     -
   * - `ATOMIX <https://github.com/atomix/atomix/releases/tag/atomix-3.1.9>`_
     -
     - ``3.1.9``
     -
     -
     -

ONOS Components
+++++++++++++++

.. list-table:: ONOS Components
   :widths: 10, 2, 2, 2, 2, 2, 2, 2
   :header-rows: 2

   * - Component
     - Artifact
     - Api
     - App
     - Pkg
     - Gerrit
     - Github
     - Released
   * - Name
     - Ver
     - Ver
     - Ver
     - Ver
     - URL
     - URL
     -
   * -
     -
     -
     -
     -
     -
     -
     -
   * - `aaa <https://gerrit.opencord.org/gitweb?p=aaa.git;a=summary>`_
     - :mvn-cord:`2.11.0 <aaai/2.11.0>`
     - :mvn-cord:`X <aaa-api/2.11.0>`
     - :mvn-cord:`X <aaa-app/2.11.0>`
     - :mvn-cord:`X <aaa/2.11.0>`
     - :vol-ger:`X <aaa/+/refs/tags/2.11.0>`
     - :vol-git:`X <aaa/releases/tag/2.11.0>`
     -
   * - `bng <https://gerrit.opencord.org/gitweb?p=bng.git;a=summary>`__
     - :mvn-cord:`2.5.1 <bng/2.5.1>`
     - :mvn-cord:`X <bng-api/2.5.1>`
     - :mvn-cord:`X <bng-app/2.5.1>`
     - :mvn-cord:`X <bng/2.5.1>`
     - :vol-ger:`X <bng/+/refs/tags/2.5.1>`
     - :vol-git:`X <bng/releases/tag/2.5.1>`
     -
   * - `dhcpl2relay <https://gerrit.opencord.org/gitweb?p=dhcpl2relay.git;a=summary>`__
     - :mvn-cord:`2.11.0 <dhcpl2relay/2.11.0>`
     - :mvn-cord:`X <dhcpl2relay-api/2.11.0>`
     - :mvn-cord:`X <dhcpl2relay-app/2.11.0>`
     - :mvn-cord:`X <dhcpl2relay>`
     - :vol-ger:`X <dhcpl2relay/+/refs/tags/2.11.0>`
     - :vol-git:`X <dhcpl2relay/releases/tag/2.11.0>`
     -
   * - `igmpproxy <https://gerrit.opencord.org/gitweb?p=igmpproxy.git;a=summary>`__
     - :mvn-cord:`2.9.0 <onos-app-igmpproxy/2.9.0>`
     - :mvn-cord:`X <onos-app-igmpproxy-api/2.9.0>`
     - :mvn-cord:`X <onos-app-igmpproxy-app/2.9.0>`
     - :mvn-cord:`X <onos-app-igmpproxy/2.9.0>`
     - :vol-ger:`X <igmpproxy/+/refs/tags/2.9.0>`
     - :vol-git:`X <igmpproxy/releases/tag/2.9.0>`
     -
   * - `kafka <https://gerrit.opencord.org/gitweb?p=kafka-onos.git;a=summary>`__
     - :mvn-cord:`2.13.2 <kafka/2.13.2>`
     - :mvn-cord:`X <kafka-api/2.13.2>`
     - :mvn-cord:`X <kafka-app/2.13.2>`
     - :mvn-cord:`X <kafka/2.13.2>`
     - :vol-ger:`X <kafka-onos/+/refs/tags/2.13.2>`
     - :vol-git:`X <kafka-onos/releases/tag/2.13.2>`
     - ``N``
   * - :vol-ger:`maclearner <mac-learning>`
     - :mvn-cord:`1.2.3 <maclearner/1.2.3>`
     - :mvn-cord:`X <maclearner-api/1.2.3>`
     - :mvn-cord:`X <maclearner-app/1.2.3>`
     - :mvn-cord:`X <maclearner>`
     - :vol-ger:`X <mac-learning/+/refs/tags/1.2.3>`
     - :vol-git:`X </mac-learning/releases/tag/1.2.3>`, :vol-git:`T <mac-learning/tree/1.2.3>`
     -
   * - `mcast <https://gerrit.opencord.org/gitweb?p=mcast.git;a=summary>`__
     - :mvn-cord:`2.9.1 <mcast/2.9.1>`
     - :mvn-cord:`X <mcast-api/2.9.1>`
     - :mvn-cord:`X <mcast-app/2.9.1>`
     - :mvn-cord:`X <mcast/2.9.1>`
     - :vol-ger:`X <mcast/+/refs/tags/2.9.1>`
     - :vol-git:`X </mcast/releases/tag/2.9.1>`, :vol-git:`T <mcast/tree/2.9.1>`
     -
   * - `olt <https://gerrit.opencord.org/gitweb?p=olt.git;a=summary>`__
     - :mvn-cord:`5.2.6 <olt/5.2.6>`
     - :mvn-cord:`X <olt-api/5.2.6>`
     - :mvn-cord:`X <olt-app/5.2.6>`
     - :mvn-cord:`X <olt/5.2.6>`
     - :vol-ger:`X <olt/+/refs/tags/5.2.6>`
     - :vol-git:`X <olt/releases/tag/5.2.6>`
     -
   * - :vol-ger:`olttopology <olttopology/>`
     - :mvn-cord:`1.3.1 <olttopology/1.3.1>`
     - :mvn-cord:`X <olttopology-api/1.3.1>`
     - :mvn-cord:`X <olttopology-app/1.3.1>`
     - :mvn-cord:`X <olttopology>`
     - :vol-ger:`X <olttopology/+/refs/tags/1.3.1>`
     - :vol-git:`X <olttopology/releases/tag/1.3.1>`
     -
   * - :vol-ger:`pppoeagent <pppoeagent/>`
     - :mvn-cord:`1.3.0 <pppoeagent/1.3.0>`
     - :mvn-cord:`X <pppoeagent-api/1.3.0>`
     - :mvn-cord:`X <pppoeagent-app/1.3.0>`
     - :mvn-cord:`X <pppoeagent>`
     - :vol-ger:`X <pppoeagent/+/refs/tags/1.3.0>`
     - :vol-git:`X <pppoeagent/releases/tag/1.3.0>`
     -
   * - `sadis <https://gerrit.opencord.org/gitweb?p=sadis.git;a=summary>`__
     - :mvn-cord:`5.12.2 <sadis/5.12.2>`
     - :mvn-cord:`X <sadis-api/5.12.2>`
     - :mvn-cord:`X <sadis-app/5.12.2>`
     - :mvn-cord:`X <sadis>`
     - :vol-ger:`X <sadis/+/refs/tags/5.12.2>`
     - :vol-git:`X <sadis/releases/tag/5.12.2>`
     -

- See Also

  - :ref:`Release Notes Legend for ONOS Components`
  - `Docker Images: opencord <https://hub.docker.com/search?q=opencord>`_


VOLTHA Components
+++++++++++++++++

.. list-table:: VOLTHA Components
   :widths: 30, 5, 5, 5, 5, 5, 5, 5, 5
   :header-rows: 2

   * - Component
     - VOLTHA
     - :vol-ger:`Chart.yaml <voltha-helm-charts/+/refs/heads/master>`
     - `Gerrit <https://gerrit.opencord.org/admin/repos>`_
     - :vol-git:`Github<>`
     - `Docker <https://hub.docker.com/search?q=voltha>`_
     - `Golang <https://pkg.go.dev>`_
     - `Pypi <https://pypi.org>`_
     - Repository
   * - Name
     - Version
     - Version
     - ULR
     - URL
     - URL
     - URL
     - URL
     - Released
   * -
     -
     -
     -
     -
     -
     -
     -
     -
   * - `ofagent-go <https://gerrit.opencord.org/gitweb?p=ofagent-go.git;a=tree>`_
     - :vol-ger:`2.2.1 <ofagent-go/+/refs/heads/voltha-2.12/VERSION>`
     - ``N/A``
     - :vol-ger:`X <ofagent-go/+/refs/tags/v2.2.1>`
     - :vol-git:`X <ofagent-go/releases/tag/v2.2.1>`
     - `1.1.4(stale) <https://hub.docker.com/layers/voltha/ofagent-go/1.1.4/images/sha256-8231111b69c8643c4981d64abff0a85d71f80763bb98632bb101e92b89882647?context=explore>`_
     - `1.6.5(stale) <https://pkg.go.dev/github.com/opencord/ofagent-go/cmd/ofagent>`_
     -
     -
   * - `voltha-go <https://gerrit.opencord.org/gitweb?p=voltha-go.git;a=tree>`_
     - :vol-ger:`3.5.4 <voltha-go/+/refs/heads/voltha-2.12/VERSION>`
     - ``N/A``
     - :vol-ger:`X <voltha-go/+/refs/tags/v3.5.4>`
     - :vol-git:`X <voltha-go/releases/tag/v3.5.4>`
     - ``N/A``
     - ``v7:?``
     -
     -
   * - :vol-ger:`voltha-lib-go <voltha-lib-go>`
     - :vol-ger:`7.5.3 <voltha-lib-go/+/refs/heads/master/VERSION>`
     - ``N/A``
     - :vol-ger:`X <voltha-lib-go/+/refs/tags/v7.5.3>`
     - :vol-git:`X <voltha-lib-go/releases/tag/v7.5.3>`
     - ``?``
     - `v7 <https://pkg.go.dev/github.com/opencord/voltha-lib-go/v7@v7.5.3>`__
     - ``?``
     -
   * - `voltha-onos <https://gerrit.opencord.org/gitweb?p=voltha-onos.git;a=tree>`_
     - ``5.1.10``
     - ``0.1.27``
     - :vol-ger:`X <voltha-onos/+/refs/tags/5.1.10>`
     - :vol-git:`X <voltha-onos/releases/tag/5.1.10>`
     - `X <https://hub.docker.com/layers/voltha/voltha-onos/5.1.10/images/sha256-d2498af38194a1cd01a1b9072a58af8647ed50fea2dbc9bd3ac4d4e4b583d72a?context=explore>`__
     -
     -
     - ``N``
   * - `voltha-openolt-adapter <https://gerrit.opencord.org/gitweb?p=voltha-openolt-adapter.git;a=tree>`_
     - :vol-ger:`4.4.11 <voltha-openolt-adapter/+/refs/heads/voltha-2.12/VERSION>`
     - :vol-ger:`2.12.6 <voltha-helm-charts/+/refs/heads/master/voltha-adapter-openolt/Chart.yaml#20>`
     - :vol-ger:`X <voltha-openolt-adapter/+/refs/tags/v4.4.11>`
     - :vol-git:`X <voltha-openolt-adapter/releases/tag/v4.4.11>`
     - `X <https://hub.docker.com/layers/voltha/voltha-openolt-adapter/4.4.11/images/sha256-eed64f687f6029f4cbf531162a10d5e496ea454878987ec0212cd5dbf4c6d9cf?context=explore>`__
     - ``N/A``
     - ``N/A``
     -
   * - `voltha-openonu-adapter-go <https://gerrit.opencord.org/gitweb?p=voltha-openonu-adapter-go.git;a=tree>`_
     - :vol-ger:`2.11.12 <voltha-openonu-adapter-go/+/refs/heads/voltha-2.12/VERSION>`
     - :vol-ger:`2.12.2 <voltha-helm-charts/+/refs/heads/master/voltha-adapter-openonu/Chart.yaml#17>`
     - :vol-ger:`X <voltha-openonu-adapter-go/+/refs/tags/v2.11.12>`
     - :vol-git:`X <voltha-openonu-adapter-go/releases/tag/v2.11.12>`
     - `X <https://hub.docker.com/layers/voltha/voltha-openonu-adapter-go/2.11.12/images/sha256-e9484a8963d08748af5766a6a8ce7f7485efb384488bcf93840ecc1142d7ad74?context=explore>`__
     - `stale <https://pkg.go.dev/github.com/opencord/voltha-openonu-adapter-go>`_
     - ``N/A``
     -
   * - :vol-ger:`voltha-protos <voltha-protos>`
     - :vol-ger:`5.4.11 <voltha-protos/+/refs/heads/voltha-2.12/VERSION>`
     - ``N/A``
     - :vol-ger:`X <voltha-protos/+/refs/tags/v5.4.11>`
     - :vol-git:`X <voltha-protos/releases/tag/v5.4.11>`
     - `stale <https://hub.docker.com/r/voltha/voltha-protos/tags>`__
     - `stale <https://pkg.go.dev/github.com/opencord/voltha-protos>`__
     - `5.4.11 <https://pypi.org/project/voltha-protos/5.4.11>`__
     -
   * - :vol-git:`voltha-system-tests <voltha-system-tests/releases/tag/2.9.0>`
     - ``2.12.13``
     -
     - :vol-ger:`X <voltha-system-tests/+/refs/tags/2.12.13>`
     - :vol-git:`X <voltha-system-tests/tree/2.12.13>`
     -
     -
     -
     - ``verify`` `VOL-5064 <https://lf-broadband.atlassian.net/browse/VOL-5064>`_
   * - segmentrouting
     - ``3.0.0``
     -
     -
     -
     -
     -
     -
     - ``N``

- See Also

  - :ref:`Release Notes Legend for VOLTHA Components`
  - `Docker Images: Voltha <https://docs.voltha.org/master/resources/docker.html>`_


VOLTHA Tools
++++++++++++

.. list-table:: VOLTHA Components
   :widths: 30, 5, 5, 5, 5, 5, 5, 5, 5
   :header-rows: 2

   * - Component
     - VOLTHA
     - :vol-ger:`Chart.yaml <voltha-helm-charts/+/refs/heads/master>`
     - `Gerrit <https://gerrit.opencord.org/admin/repos>`_
     - :vol-git:`Github<>`
     - `Docker <https://hub.docker.com/search?q=voltha>`_
     - `Golang <https://pkg.go.dev>`_
     - `Pypi <https://pypi.org>`_
     - Repository
   * - Name
     - Version
     - Version
     - ULR
     - URL
     - URL
     - URL
     - URL
     - Released
   * -
     -
     -
     -
     -
     -
     -
     -
     -
   * - :vol-ger:`voltha-docs <voltha-docs>` , `docs.voltha.org <https://docs.voltha.org>`
     - ``2.12.25``
     - ``N/A``
     - :vol-ger:`X <voltha-docs/+/refs/tags/2.12.25>`
     - :vol-git:`X <voltha-docs/releases/tag/2.12.25>`
     -
     -
     -
     - ``N``
   * - `bbsim <https://gerrit.opencord.org/gitweb?p=bbsim.git;a=tree>`__
     - ``1.16.3+``
     - ``4.8.6`` :vol-ger:`chart <voltha-helm-charts/+/refs/heads/voltha-2.12/bbsim/Chart.yaml>`
     - :vol-ger:`X <bbsim>`
     - :vol-git:`X <bbsim/tree/v1.14.4>`
     - `X <https://hub.docker.com/layers/voltha/bbsim/1.14.4/images/sha256-c23de193c1d7cf8d32c48edfbec4bfa6c47dbeecd4b31d040da0255eeab2ec58?context=explore>`__
     - ``?``
     - ``?``
     - ``N``
   * - `Bbsim-sadis-server <https://gerrit.opencord.org/gitweb?p=bbsim-sadis-server.git;a=tree>`__
     - :vol-ger:`0.3.6 <bbsim-sadis-server/+/refs/heads/voltha-2.12/VERSION>`
     - :vol-ger:`0.3.3 <voltha-helm-charts/+/refs/heads/voltha-2.12/voltha-infra/Chart.yaml#45>`
     - :vol-ger:`X <bbsim-sadis-server/+/refs/tags/v0.3.6/VERSION>`
     - :vol-git:`X <bbsim-sadis-server/releases/tag/v0.3.6>`
     - `X <https://hub.docker.com/layers/voltha/bbsim-sadis-server/0.3.6/images/sha256-0ea9df1be13f8b1d0a8314cbf0e0800e4a4b7e2920ae3ce5e119abddb9359350?context=explore>`__
     -
     -
     - ``N``
   * - `voltctl <https://gerrit.opencord.org/gitweb?p=voltctl.git;a=tree>`_
     - :vol-ger:`1.10.2 <voltctl/+/refs/heads/voltha-2.12/VERSION>`
     - ``N/A``
     - :vol-ger:`X <voltctl/+/refs/tags/v1.10.2>`
     - :vol-git:`? <voltctl/releases/tag/v1.10.2>`
     - ``N/A``
     - `X <https://pkg.go.dev/github.com/opencord/voltctl@v1.10.2>`__
     - ``N/A``
     - ``N``


Helm Chart Versions
+++++++++++++++++++
This section refers to the macro charts to deploy the required infrastructure and a (or many) VOLTHA stacks:

.. list-table:: Helm Chart Versions
   :widths: 30, 30
   :header-rows: 2

   * - Component
     - VOLTHA
   * - Name
     - Version
   * -
     -
   * - Helm Charts (voltha-helm-charts)
     - :vol-ger:`3.3.0 <voltha-helm-charts/+/refs/heads/voltha-2.12/VERSION>`
   * - Voltha
     - :vol-ger:`2.12.17 <voltha-helm-charts/+/refs/heads/master/voltha/Chart.yaml#20>`
   * - Voltha-infra
     - :vol-ger:`2.12.6 <voltha-helm-charts/+/refs/heads/master/voltha-infra/Chart.yaml#37>`
   * - Voltha-stack
     - :vol-ger:`2.12.9 <voltha-helm-charts/+/refs/heads/master/voltha-stack/Chart.yaml#37>`

BAL Version
+++++++++++

.. list-table:: Helm Chart Versions
   :widths: 30, 5, 5, 5, 5, 5
   :header-rows: 2

   * - Component
     - VOLTHA
     - Component
     -
     - Gerrit
     - Github
   * - Name
     - Version
     - Version
     - with Chart
     - URL
     - URL
   * -
     -
     -
     -
     -
     -
   * - Broadcom abstraction layer (BAL)
     -
     - ``3.10.2.2``
     -
     -
     -

|

Helm Chart Versions
+++++++++++++++++++
This section refers to the macro charts to deploy the required infrastructure and a (or many) VOLTHA stacks:

BAL Version
+++++++++++

|

Get Involved
------------
<We'd love to accept your patches and contributions to the VOLTHA project, join the community!

| Here are a few resources to get you started:


Index/Entry points
++++++++++++++++++

  - `https://docs.voltha.org <https://docs.voltha.org/master/index.html>`_
  - `Getting Started <https://docs.voltha.org/master/overview/contributing.html>`_

HOWTO
+++++

  - `Code, Documentation, Makefiles <https://docs.voltha.org/master/howto/index.html>`_
  - `Setup a test pod <https://docs.voltha.org/master/overview/lab_setup.html>`_
  - `Troubleshooting <https://docs.voltha.org/master/overview/troubleshooting.html>`_

Testing
+++++++

  - `Automation <https://docs.voltha.org/master/testing/voltha_test_automation.html>`_
  - `Robot testing harness <https://docs.voltha.org/master/testing/index.html>`_
  - `voltha-system-tests <https://docs.voltha.org/master/voltha-system-tests/README.html>`_

CLI Tools
+++++++++

  - `BBSIM <https://docs.voltha.org/master/bbsim/docs/source/index.html>`__
  - `voltctl <https://docs.voltha.org/master/voltctl/README.html?highlight=voltctl>`__

Slack
+++++

  - `voltha-dev <https://app.slack.com/client/T095Z193Q/C01D229FP2A>`_
  - `community <https://app.slack.com/client/T095Z193Q/C0184DT7116>`_
  - `general <https://app.slack.com/client/T095Z193Q/C095YQBLL>`_

Mailing List
++++++++++++

  - `voltha-discuss@opennetworking.org <https://groups.google.com/a/opennetworking.org/g/voltha-discuss>`_.

Weekly TST Meetings
+++++++++++++++++++

  - `Zoom Meeting <https://www.google.com/url?q=https://onf.zoom.us/j/978447356?pwd%3DdS9WajNLam9ZeFExOHV3SXB2Nk1VZz09&sa=D&source=calendar&ust=1686087684256971&usg=AOvVaw3dMQpIMYLlyjTTmkvW_edp>`_.
  - `Rolling Agenda <https://www.google.com/url?q=https://docs.google.com/document/d/1mNqronCip_-tDjFI-ZoudNteC3AnOcVONPHz7HuW8Eg/edit?usp%3Dsharing&sa=D&source=calendar&ust=1686087684256971&usg=AOvVaw3km2VVU2j1qa6JCGI0iSBx>`_.

Website(s)
++++++++++

  - `onf/VOLTHA <https://opennetworking.org/voltha/>`_
  - `docs.voltha.org <https://docs.voltha.org>`_
  - `Wiki <https://wiki.opencord.org>`_

|
