Merge "Adding a guide to include devices in certification"
diff --git a/index.rst b/index.rst
index 64b6edf..e9331d1 100644
--- a/index.rst
+++ b/index.rst
@@ -171,6 +171,7 @@
testing/index.rst
testing/memory_usage_pprof.rst
testing/voltha_test_automation.rst
+ testing/certification.rst
.. toctree::
:maxdepth: 1
diff --git a/testing/certification.rst b/testing/certification.rst
new file mode 100644
index 0000000..9d91b04
--- /dev/null
+++ b/testing/certification.rst
@@ -0,0 +1,101 @@
+=================================
+Product Certification with VOLTHA
+=================================
+
+VOLTHA is part fo the `continuous certification program at ONF <https://opennetworking.org/continuous-certification-program/>`_.
+You can see the currently certified products in the `ONF marketplace <https://opennetworking.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 @ ONF <michelle@opennetworking.org>`_
+to be showcased in the `marketplace <https://opennetworking.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 ONF'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@opennetworking.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 ONF community lab.
+
+ONF'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 ONF 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>`_
+- Radisys Laboratory in Hilssboro, Oregon
+
+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 ONF 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.
+
+
+
+ONF Contacts
+------------
+For any further information please contact:
+`Timon Sloane <timon@opennetworking.org>`_
+`Michelle Roth <michelle@opennetworking.org>`_