=================================
Product Certification with VOLTHA
=================================

.. attention::

    This page contains outdated information, as the LF BB marketplace is no longer
    available.

VOLTHA is part of the `continuous certification program at LF BB <https://lfbroadband.org/continuous-certification-program/>`_.
You can see the currently certified products in the `LF BB marketplace <https://lfbroadband.org/marketplace/?_product_project=voltha>`_.

The following document describes the procedure to include and certify an
OLT or an ONU with VOLTHA.  The process of getting a product certified
consists of several phases:

- testing and validation with VOLTHA at the vendor premises
- showcase of successful integration with VOLTHA to the TST
- shipment and integration of the product (OLT/ONU) at a community lab
  (e.g. Berlin with DT)
- Creation of automated CI jobs in Jenkins that start nightly automation tests.
- Test maintenance. It's the Vendors and the VOLTHA community responsibility
  to maintain the created tests.

Finally a brief Description of the device and a point of contact need to
be sent to `Michelle Roth @ LF BB <mroth@linuxfoundation.org>`_ to be
showcased in the `marketplace <https://lfbroadband.org/marketplace/?_product_project=voltha>`_ after successful verification.

Once all these steps are completed the product will be certified for
the next release of VOLTHA.  Let's describe each phase in detail.

Vendor's premises Testing
-------------------------
The first step is for the vendor to guarantee that the OLT or the ONU are VOLTHA compatible is complying got LF BB's
automated sanity test.
To do so we suggest setting up a HW test pod according as described in the `physical setup guide <https://docs.voltha.org/master/overview/lab_setup.html>`_.

Once the setup is running the next step is running the Sanity tests, as described in the `testing documentation <https://docs.voltha.org/master/voltha-system-tests/README.html#running-tests-on-physical-pod>`_.
If those pass the hardware is ready to be shown to the VOLTHA TST.

Showcase to VOLTHA TST
----------------------
Once the OLT has passed tests in the Vendor lab it's ready to be showcased to the VOLTHA Technical Steering Team.
The request needs to be performed to the Technical TST leader or to `Timon Sloane <timon@lfbroadband.org>`_ who will
forward the request appropriately.
During a scheduled TST meeting (Tuesday 8 AM PST) the vendor will showcase the OLT/ONU to the TST by starting from a
fresh VOLTHA instance, connecting the OLT and then performing the Sanity test.
With the test passing the TST will give approval for shipment of the device (ONU/OLT) to an LF BB community lab.

LF BB's community lab integration
-------------------------------

Once the TST has given approval for device integration in VOLTHA nighly tests the Vendor needs to ship the device to
any one of the LF BB community lab, including a wiring diagram (if needed) Currently there are two locations:

- DT Office in Berlin, Germany. Address: Winterfeldtstraße 21, 10781 Berlin, Germany. Point of contact `Bjoern Nagel @ DT <NagelB@telekom.de>`_

Once the OLT arrives the technicians will rack it and wire it according to
the diagram shared.  For an OLT the NNI connection will be provided to the
AGG switch and all the management will also be connected with management IP
assigned according to the network of the pod.

For an ONU it will be connected to one of the existing OLTs in the pod,
according to space, technology and topology requirements.  Once all the
racking and wiring is complete the device will appear under the LF BB network,
accessible via VPN.

Automated CI Jobs
-----------------
Once the device in included in one of the community pods it's the responsibility of the vendor to integrate
it into the nightly VOLTHA tests. This process is done by submitting a series of patches to different repositories.
The process is different for ONUs and OLTs.
To create jenkins jobs see https://docs.voltha.org/master/testing/voltha_test_automation.html#hardware-or-physical-pod-jobs

OLT
+++
A new OLT needs a full new configuration, job and data.
The job can be created according to the desired workflow to be tested. Information can be found in the
`system tests information <https://docs.voltha.org/master/testing/voltha_test_automation.html#hardware-or-physical-pod-jobs>`_
The required patches are:

- ci-management. Creates the job that will run in jenkins. Job Example ``https://github.com/opencord/ci-management/blob/master/jjb/voltha-test/voltha-certification.yaml``
- pod configs. Inserts information about the OLT and target ONUs data. `Data example <https://github.com/opencord/pod-configs/blob/master/deployment-configs/menlo-certification-pod-radisys-1600g-DT.yaml>`_
  and `kubernetes example <https://github.com/opencord/pod-configs/blob/master/kubernetes-configs/menlo-certification-pod-radisys-1600g.conf>`_
- voltha-system-tests. Adds the sadis configuration for the OLT and the ONU. `Sadis Example <https://github.com/opencord/voltha-system-tests/blob/master/tests/data/menlo-certification-pod-radisys-1600g-sadis-DT.json>`_

Once these are created and merged the job will appear on jenkins and
run accordingly.

ONU
+++

A new ONU it's attached to an existing OLT, so just the information for
that ONU needs to be added to the proper OLT files.

The required patches are:

- pod configs. Inserts information about the ONU into an existing pod. `Info and Target example <https://github.com/opencord/pod-configs/blob/master/deployment-configs/menlo-certification-pod-radisys-1600g-DT.yaml>`_
- voltha-system-tests. Adds the sadis configuration for the ONU. Example `Sadis ONU example <https://github.com/opencord/voltha-system-tests/blob/master/tests/data/menlo-certification-pod-radisys-1600g-sadis-DT.json>`_

Job maintenance
---------------

It's the responsibility of the Vendor, the VOLTHA TST and the community at
large to mantain, manage and update the job to make sure the OLT gets
certified for each of the following VOLTHA releases.



LF BB Contacts
------------
For any further information please contact:

- `Michelle Roth <mroth@lfbroadband.org>`_
