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