Source Code Repositories
========================

- VOLTHA source code is hosted on Gerrit and Github.

.. list-table:: Gerrit
   :widths: 20, 20, 105
   :header-rows: 1

   * - GERRIT Repository
     - GIT Repository
     - Description
   * - `bbsim gerrit <:vol-ger:'bbsim'>`_
     - `bbsim git <:vol-git:'bbsim'>`_
     - BroadBand Simulator (BBSim) is a tool to simulate a PON network with OLTs, ONUs and RGs.
   * - `bbsim-sadis-server gerrit <:vol-ger:'bbsim-sadis-server'>`_
     - `bbsim-sadis-server git <:vol-git:'bbsim-sadis-server'>`_
     - BBSim Sadis Server.
       Designed to aggregate Sadis entries from multiple BBSim instances running on the same kubernetes cluster.
   * - `voltha-core gerrit <:vol-ger:'voltha-go'>`_
     - `voltha-core git <:vol-git:'voltha-go'>`_
     - Voltha Core
   * - `voltha-openolt-adapter gerrit <:vol-ger:'voltha-openolt-adapter'>`_
     - `voltha-openolt-adapter git <:vol-git:'voltha-openolt-adapter'>`_
     - Open OLT adapter
   * - `voltha-openonu-adapter gerrit <:vol-ger:'voltha-openonu-adapter-go'>`_
     - `voltha-openonu-adapter git <:vol-git:'voltha-openonu-adapter-go'>`_
     - Open ONU adapter
   * - `omci-lib gerrit <:vol-ger:'omci-lib-go'>`_
     - `omci-lib git <:vol-git:'omci-lib-go'>`_
     - OMCI Library
   * - `voltha-cli gerrit <:vol-ger:'voltctl'>`_
     - `voltha-cli git <:vol-git:'voltctl'>`_
     - A CLI tool for managing and operating VOLTHA components.
   * - `voltha-ofagent gerrit <:vol-ger:'ofagent-go'>`_
     - `voltha-ofagent git <:vol-git:'ofagent-go'>`_
     - OpenFlow management interface for Voltha
   * - `voltha-onos gerrit <:vol-ger:'voltha-onos'>`_
     - `voltha-onos git <:vol-git:'voltha-onos'>`_
     - VOLTHA ONOS Development Build Environment.
   * - `voltha-lib gerrit <:vol-ger:'voltha-lib-go'>`_
     - `voltha-lib git <:vol-git:'voltha-lib-go'>`_
     - Library for common VOLTHA functions
   * - `voltha-protos gerrit <:vol-ger:'voltha-protos'>`_
     - `voltha-protos git <:vol-git:'voltha-protos'>`_
     - Protobuf definitions for VOLTHA
   * - `device-management-interface gerrit <:vol-ger:'device-management-interface'>`_
     - `device-management-interface git <:vol-git:'device-management-interface'>`_
     - Device Management Interface
   * - `voltha-helm-charts gerrit <:vol-ger:'voltha-helm-charts'>`_
     - `voltha-helm-charts git <:vol-git:'voltha-helm-charts'>`_
     - Helm charts for deploying VOLTHA
   * - `ci-management gerrit <:vol-ger:'ci-management'>`_
     - `ci-management git <:vol-git:'ci-management'>`_
     - Configuration for the Jenkins testing infrastructure
   * - `voltha-system-tests gerrit <:vol-ger:'voltha-system-tests'>`_
     - `voltha-system-tests git <:vol-git:'voltha-system-tests'>`_
     - Automated test-suites to validate the stability/functionality of VOLTHA.
   * - `pod-configs gerrit <:vol-ger:'pod-configs'>`_
     - `pod-configs git <:vol-git:'pod-configs'>`_
     - Configuration files for VOLTHA labs
   * - `voltha-docs gerrit <:vol-ger:'voltha-docs'>`_
     - `voltha-docs git <:vol-git:'voltha-docs'>`_
     - VOLTHA Documentation


