| Zack Williams | 071eda2 | 2019-05-15 18:19:51 -0700 | [diff] [blame] | 1 | VOLTHA Documentation |
| 2 | ==================== |
| 3 | |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 4 | `VOLTHA (Virtual OLT Hardware Abstraction |
| Serkant Uluderya | 6db9894 | 2026-03-26 09:53:57 -0700 | [diff] [blame^] | 5 | <https://lfbroadband.org/projects/voltha/>`_ is an open source project to create a |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 6 | hardware abstraction for broadband access equipment. It supports the principle |
| 7 | of multi-vendor, disaggregated, "any broadband access as a service" for the |
| 8 | Telco Central Office. |
| Zack Williams | 071eda2 | 2019-05-15 18:19:51 -0700 | [diff] [blame] | 9 | |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 10 | Key concepts in VOLTHA: |
| 11 | |
| 12 | - **Network as a Switch**: It makes a set of connected access network devices |
| 13 | to look like a SDN programmable switch. |
| 14 | |
| 15 | - **Evolution to virtualization**: it can work with a variety of access network |
| 16 | technologies and devices |
| 17 | |
| 18 | - **Unified OAM abstraction**: it provides unified, vendor- and technology |
| 19 | agnostic handling of device management tasks, such as service lifecycle, |
| 20 | device lifecycle (including discovery, upgrade), system monitoring, alarms, |
| 21 | troubleshooting, security, etc. |
| 22 | |
| 23 | - **Cloud/DevOps bridge to modernization**: it does all above while using a |
| 24 | microservices architecture running on top of Docker and/or Kubernetes. |
| 25 | |
| Serkant Uluderya | 6db9894 | 2026-03-26 09:53:57 -0700 | [diff] [blame^] | 26 | VOLTHA is a project under the `Linux Foundation Broadband <https://lfbroadband.org>`. |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 27 | |
| Andrea Campanella | 71221c8 | 2021-02-01 14:40:48 +0100 | [diff] [blame] | 28 | .. figure:: ./_static/voltha_diagram.svg |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 29 | :alt: VOLTHA Component Diagram |
| 30 | :width: 70% |
| Andrea Campanella | 71221c8 | 2021-02-01 14:40:48 +0100 | [diff] [blame] | 31 | :align: center |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 32 | |
| 33 | VOLTHA Component Diagram |
| 34 | |
| Matteo Scandolo | ef5d6f4 | 2020-07-27 16:46:38 -0700 | [diff] [blame] | 35 | Here some quick links to get you started: |
| 36 | |
| Andrea Campanella | 71221c8 | 2021-02-01 14:40:48 +0100 | [diff] [blame] | 37 | - :doc:`./overview/architecture_overview` |
| Matteo Scandolo | ef5d6f4 | 2020-07-27 16:46:38 -0700 | [diff] [blame] | 38 | - :doc:`./overview/deployment_environment` |
| Matteo Scandolo | ef5d6f4 | 2020-07-27 16:46:38 -0700 | [diff] [blame] | 39 | - :doc:`./overview/troubleshooting` |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 40 | |
| Andrea Campanella | e83f624 | 2021-11-04 11:08:37 +0100 | [diff] [blame] | 41 | Repositories |
| 42 | ------------ |
| 43 | |
| 44 | Following is a list of all the repositories related to the VOLTHA project. |
| 45 | |
| 46 | Services: |
| 47 | |
| 48 | - `VOLTHA Core <https://github.com/opencord/voltha-go>`_ |
| 49 | - `OpenFlow Agent <https://github.com/opencord/ofagent-go>`_ |
| 50 | - `Openonu Adapter <https://github.com/opencord/voltha-openonu-adapter-go>`_ |
| 51 | - `Openolt Adapter <https://github.com/opencord/voltha-openolt-adapter>`_ |
| 52 | - `Openolt Agent <https://github.com/opencord/openolt>`_ |
| 53 | - `ONOS controller <https://github.com/opencord/voltha-onos>`_ |
| 54 | - `BBSIM <https://github.com/opencord/bbsim>`_ |
| 55 | - `BBSIM Sadis Server <https://github.com/opencord/bbsim-sadis-server>`_ |
| 56 | |
| 57 | ONOS APPs: |
| 58 | |
| 59 | - `AAA <https://github.com/opencord/aaa>`_ |
| 60 | - `BNG <https://github.com/opencord/bng>`_ |
| 61 | - `DHCP L2 Relay <https://github.com/opencord/dhcpl2relay>`_ |
| 62 | - `IGMPProxy <https://github.com/opencord/igmpproxy>`_ |
| 63 | - `Kafka <https://github.com/opencord/kafka-onos>`_ |
| 64 | - `Mac Learning <https://github.com/opencord/mac-learning>`_ |
| 65 | - `Multicast <https://github.com/opencord/mcast>`_ |
| 66 | - `OLT <https://github.com/opencord/olt>`_ |
| 67 | - `OLT Topology <https://github.com/opencord/olttopology>`_ |
| 68 | - `PPPoE Agent <https://github.com/opencord/pppoeagent>`_ |
| 69 | - `Sadis <https://github.com/opencord/sadis>`_ |
| 70 | |
| 71 | Libraries and APIs: |
| 72 | |
| 73 | - `VOLTHA protos <https://github.com/opencord/voltha-protos>`_ |
| 74 | - `VOLTHA Library in Go <https://github.com/opencord/voltha-lib-go>`_ |
| 75 | - `OMCI Library in GO <https://github.com/opencord/omci-lib-go>`_ |
| 76 | |
| 77 | Device Management: |
| 78 | |
| 79 | - `Device Management Interface <https://github.com/opencord/device-management-interface>`_ |
| 80 | - `Device Manager <https://github.com/opencord/opendevice-manager>`_ |
| 81 | - `Device Manager Agent <https://github.com/opencord/opendm-agent>`_ |
| 82 | |
| 83 | Tools: |
| 84 | |
| 85 | - `voltctl <https://github.com/opencord/voltctl>`_ |
| 86 | |
| 87 | Deployment and Testing: |
| 88 | |
| 89 | - `VOLTHA Helm Charts <https://github.com/opencord/voltha-helm-charts>`_ |
| 90 | - `VOLTHA System Tests <https://github.com/opencord/voltha-system-tests>`_ |
| 91 | - `CORD Tester <https://github.com/opencord/cord-tester>`_ |
| 92 | - `Grpc robot library <https://github.com/opencord/grpc-robot>`_ |
| 93 | - `Kafka robot library <https://github.com/opencord/kafka-robot>`_ |
| 94 | - `Docker Tools <https://github.com/opencord/voltha-docker-tools>`_ |
| 95 | - `Openolt scale tester <https://github.com/opencord/openolt-scale-tester>`_ |
| 96 | - `Ci management <https://github.com/opencord/ci-management>`_ |
| 97 | - `Pod Configs <https://github.com/opencord/pod-configs>`_ |
| 98 | - `Openolt agent scale tester <https://github.com/opencord/openolt-scale-tester>`_ |
| 99 | - `Openolt functional tester <https://github.com/opencord/openolt-test>`_ |
| 100 | |
| 101 | |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 102 | Community |
| 103 | --------- |
| 104 | |
| Andrea Campanella | af7db9c | 2021-07-21 10:04:25 +0200 | [diff] [blame] | 105 | VOLTHA is an open source project led by a technical steering team that holds weekly meetings. |
| 106 | You can find more information about the TST, community, meetings, mailing lists and slack channels |
| Eric Ball | 74a2e76 | 2025-08-27 12:34:53 -0700 | [diff] [blame] | 107 | in the `VOLTHA wiki page <https://lf-broadband.atlassian.net/wiki>`_ |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 108 | |
| Zack Williams | 071eda2 | 2019-05-15 18:19:51 -0700 | [diff] [blame] | 109 | |
| 110 | .. toctree:: |
| 111 | :maxdepth: 1 |
| Matteo Scandolo | 1f5530b | 2019-12-17 10:12:31 -0800 | [diff] [blame] | 112 | :caption: Overview |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 113 | :hidden: |
| Zack Williams | e377eae | 2019-12-20 16:40:38 -0700 | [diff] [blame] | 114 | :glob: |
| Matteo Scandolo | 1f5530b | 2019-12-17 10:12:31 -0800 | [diff] [blame] | 115 | |
| Andrea Campanella | 71221c8 | 2021-02-01 14:40:48 +0100 | [diff] [blame] | 116 | overview/architecture_overview.rst |
| Matteo Scandolo | ef5d6f4 | 2020-07-27 16:46:38 -0700 | [diff] [blame] | 117 | overview/deployment_environment.rst |
| Andrea Campanella | 882cfcc | 2021-02-04 10:53:57 +0100 | [diff] [blame] | 118 | Deploy VOLTHA <voltha-helm-charts/README.md> |
| Matteo Scandolo | ef5d6f4 | 2020-07-27 16:46:38 -0700 | [diff] [blame] | 119 | overview/workflows.rst |
| Matteo Scandolo | ef5d6f4 | 2020-07-27 16:46:38 -0700 | [diff] [blame] | 120 | overview/operate.rst |
| Andrea Campanella | 3c4e526 | 2021-05-18 11:47:57 +0200 | [diff] [blame] | 121 | overview/lab_setup.rst |
| Matteo Scandolo | 30fcab4 | 2022-03-31 15:51:24 -0700 | [diff] [blame] | 122 | overview/jenkins_node.rst |
| Matteo Scandolo | ef5d6f4 | 2020-07-27 16:46:38 -0700 | [diff] [blame] | 123 | overview/troubleshooting.rst |
| Andrea Campanella | af7db9c | 2021-07-21 10:04:25 +0200 | [diff] [blame] | 124 | overview/releases.rst |
| Andrea Campanella | 4dfe932 | 2022-05-10 12:40:10 +0200 | [diff] [blame] | 125 | overview/release_process.rst |
| Andrea Campanella | 4dd0422 | 2022-03-18 15:52:28 +0100 | [diff] [blame] | 126 | overview/contributing.rst |
| Zack Williams | e377eae | 2019-12-20 16:40:38 -0700 | [diff] [blame] | 127 | |
| 128 | .. toctree:: |
| Andrea Campanella | 4cf8ba0 | 2020-01-21 18:01:59 +0100 | [diff] [blame] | 129 | :maxdepth: 1 |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 130 | :hidden: |
| 131 | :caption: Components |
| Zack Williams | e377eae | 2019-12-20 16:40:38 -0700 | [diff] [blame] | 132 | |
| Andrea Campanella | 61fd666 | 2020-07-27 16:56:55 +0200 | [diff] [blame] | 133 | BBSIM <bbsim/docs/source/index.rst> |
| 134 | OpenFlow Agent <ofagent-go/README.md> |
| 135 | OpenOlt Adapter <voltha-openolt-adapter/README.md> |
| Matteo Scandolo | ef5d6f4 | 2020-07-27 16:46:38 -0700 | [diff] [blame] | 136 | OpenOnu Adapter Go <voltha-openonu-adapter-go/README.md> |
| Andrea Campanella | 61fd666 | 2020-07-27 16:56:55 +0200 | [diff] [blame] | 137 | Openolt Agent <openolt/README.md> |
| 138 | VOLTHA CLI <voltctl/README.md> |
| 139 | VOLTHA Protos <voltha-protos/README.md> |
| Zack Williams | 071eda2 | 2019-05-15 18:19:51 -0700 | [diff] [blame] | 140 | |
| 141 | .. toctree:: |
| Zack Williams | 071eda2 | 2019-05-15 18:19:51 -0700 | [diff] [blame] | 142 | :maxdepth: 1 |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 143 | :hidden: |
| Andrea Campanella | e0a7e52 | 2021-03-26 15:45:48 +0100 | [diff] [blame] | 144 | :caption: Operations |
| 145 | |
| Andrea Campanella | 448fbc2 | 2021-05-13 15:39:00 +0200 | [diff] [blame] | 146 | operations/software-upgrade.rst |
| Andrea Campanella | ce1e079 | 2021-10-15 13:59:10 +0200 | [diff] [blame] | 147 | ONU software update <voltha-openonu-adapter-go/docs/ONU_Upgrade_Notes.md> |
| Andrea Campanella | 38a06f9 | 2021-12-01 15:49:28 -0800 | [diff] [blame] | 148 | |
| 149 | .. toctree:: |
| 150 | :maxdepth: 1 |
| 151 | :hidden: |
| 152 | :caption: Performance Metrics, Alarms |
| 153 | |
| Andrea Campanella | ce1e079 | 2021-10-15 13:59:10 +0200 | [diff] [blame] | 154 | ONU Performance Metrics <voltha-openonu-adapter-go/docs/PM_Notes.md> |
| Andrea Campanella | 38a06f9 | 2021-12-01 15:49:28 -0800 | [diff] [blame] | 155 | ONU Alarms <voltha-openonu-adapter-go/docs/ONU_Alarms.md> |
| 156 | |
| 157 | .. toctree:: |
| 158 | :maxdepth: 1 |
| 159 | :hidden: |
| 160 | :caption: Bandwidth Profiles |
| 161 | |
| 162 | bandwidth-profiles/bandwidth-profiles.rst |
| Andrea Campanella | e0a7e52 | 2021-03-26 15:45:48 +0100 | [diff] [blame] | 163 | |
| 164 | .. toctree:: |
| 165 | :maxdepth: 1 |
| 166 | :hidden: |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 167 | :caption: Testing |
| Zack Williams | 071eda2 | 2019-05-15 18:19:51 -0700 | [diff] [blame] | 168 | |
| Andrea Campanella | 61fd666 | 2020-07-27 16:56:55 +0200 | [diff] [blame] | 169 | VOLTHA system tests <voltha-system-tests/README.md> |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 170 | testing/index.rst |
| Andrea Campanella | 096fa59 | 2022-02-03 12:07:35 +0100 | [diff] [blame] | 171 | testing/memory_usage_pprof.rst |
| Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 172 | testing/voltha_test_automation.rst |
| Andrea Campanella | afc4653 | 2022-05-05 23:14:36 +0200 | [diff] [blame] | 173 | testing/certification.rst |
| Zack Williams | 071eda2 | 2019-05-15 18:19:51 -0700 | [diff] [blame] | 174 | |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 175 | .. toctree:: |
| 176 | :maxdepth: 1 |
| 177 | :hidden: |
| divyadesai | a702ba9 | 2020-08-31 11:27:46 +0000 | [diff] [blame] | 178 | :caption: Logging |
| 179 | |
| 180 | logging/centralised_log_analysis.rst |
| Andrea Campanella | ce1e079 | 2021-10-15 13:59:10 +0200 | [diff] [blame] | 181 | ONU adapter per package logging <voltha-openonu-adapter-go/docs/Specific_Logging_Notes.md> |
| divyadesai | a702ba9 | 2020-08-31 11:27:46 +0000 | [diff] [blame] | 182 | |
| 183 | .. toctree:: |
| 184 | :maxdepth: 1 |
| 185 | :hidden: |
| Andrea Campanella | 13f26f5 | 2021-01-28 13:47:40 +0100 | [diff] [blame] | 186 | :caption: Device Management Interface |
| 187 | |
| 188 | Overview <device-management-interface/README.md> |
| 189 | Image management <device-management-interface/docs/DeviceImageManagement.md> |
| 190 | Events and Metrics <device-management-interface/docs/EventsMetrics.md> |
| 191 | Managing a device <device-management-interface/docs/ManagingDevice.md> |
| 192 | Examples <device-management-interface/docs/Examples.md> |
| 193 | Guidelines <device-management-interface/docs/RpcGuidelines.md> |
| 194 | Implementation on BBSIM <bbsim/docs/source/DMI_Server_README.md> |
| 195 | |
| 196 | .. toctree:: |
| 197 | :maxdepth: 1 |
| 198 | :hidden: |
| Zack Williams | 16042b6 | 2020-03-29 22:03:16 -0700 | [diff] [blame] | 199 | :caption: Releases |
| 200 | :glob: |
| Zack Williams | 071eda2 | 2019-05-15 18:19:51 -0700 | [diff] [blame] | 201 | |
| Joey Armstrong | a4d2723 | 2022-12-29 08:50:02 -0500 | [diff] [blame] | 202 | release_notes/release_process.rst |
| 203 | release_notes/index.rst |
| Joey Armstrong | 2cab6b4 | 2022-09-08 12:59:42 -0400 | [diff] [blame] | 204 | |
| 205 | .. toctree:: |
| Joey Armstrong | a3d896a | 2023-02-17 08:33:46 -0500 | [diff] [blame] | 206 | :maxdepth: 1 |
| 207 | :hidden: |
| 208 | :caption: Resources |
| 209 | :glob: |
| 210 | |
| 211 | resources/index |
| 212 | |
| 213 | .. toctree:: |
| Joey Armstrong | 2cab6b4 | 2022-09-08 12:59:42 -0400 | [diff] [blame] | 214 | :maxdepth: 2 |
| 215 | :caption: HOWTO Topics |
| 216 | |
| Joey Armstrong | a62c74a | 2022-11-23 13:16:34 -0500 | [diff] [blame] | 217 | howto/index |