Adding the Voltha missing manual

Change-Id: Ic6cc2e5ed80e04fb009809c9a2fca393e5dcabfd
diff --git a/docs/manuals/user/Makefile b/docs/manuals/user/Makefile
new file mode 100644
index 0000000..62d3f3b
--- /dev/null
+++ b/docs/manuals/user/Makefile
@@ -0,0 +1,56 @@
+# Makefile to make it obvious what operations exist for this repo
+
+GITBOOK := node_modules/.bin/gitbook
+
+default: html
+
+help:
+	@echo "Available make targets:"
+	@echo "  help             - Print this help"
+	@echo "  serve            - Build gitbook static web pages and serve them locally"
+	@echo "  html             - Build gitbook static pages under _book dir"
+	@echo "  pdf              - Build gitbook pdf as book.pdf"
+	@echo
+	@echo "The following additional commands are used internally:"
+	@echo "  check-gitbook    - Check gitbook if gitbook is installed"
+	@echo "  install-gitbook  - Install the gitbook toolchain and plugins needed to build books"
+	@echo "  prepare-gitbook  - Make sure gitbook plugins are installed"
+
+check-gitbook:
+	@echo "Checking 'gitbook' installation..."
+	@if test -x $(GITBOOK) && $(GITBOOK) --version;\
+	 then \
+		echo "Good. You have gitbook installed.";\
+	else \
+		echo "No gitbook execuatble found. Please run:";\
+		echo "";\
+		echo "    make install-gitbook";\
+		echo "";\
+		echo "(You may be prompted for your password.)";\
+	       	echo "";\
+	fi
+
+install-gitbook:
+	@echo "Installing gitbook (may prompt for your password)..."
+	npm install
+	$(GITBOOK) install
+
+prepare-gitbook: check-gitbook
+	@echo "Checking 'gitbook' installation and do what's needed"
+	$(GITBOOK) init
+
+serve: prepare-gitbook
+	@echo "Continuous building and serving static web pages..."
+	$(GITBOOK) serve
+
+html: prepare-gitbook
+	@echo "Building static web pages..."
+	$(GITBOOK) build
+
+pdf: prepare-gitbook
+	@echo "Building PDF book..."
+	$(GITBOOK) pdf . VolthaMissingManual.pdf
+
+clean:
+	rm -rf _book
+	rm -rf VolthaMissingManual.pdf
diff --git a/docs/manuals/user/README.md b/docs/manuals/user/README.md
new file mode 100644
index 0000000..0fa2e19
--- /dev/null
+++ b/docs/manuals/user/README.md
@@ -0,0 +1,31 @@
+# Voltha
+
+## What is Voltha?
+
+Voltha aims to provide a layer of abstraction on top of legacy and next generation access network equipment for the purpose of control and management. Its initial focus is on PON (GPON, EPON, NG PON 2), but it aims to go beyond to eventually cover other access technologies (xDSL, DOCSIS, G.FAST, dedicated Ethernet, fixed wireless).
+
+Key concepts of Voltha:
+
+* **Network as a Switch**: It makes a set of connected access network devices to look like a(n abstract) programmable flow device, a L2/L3/L4 switch. Examples:
+    * PON as a Switch
+    * PON + access backhaul as a Switch
+    * xDSL service as a Switch
+* **Evolution to virtualization**: It can work with a variety of (access) network technologies and devices, including legacy, fully virtualized (in the sense of separation of hardware and software), and in between. Voltha can run on a decice, on general purpose servers in the central office, or in data centers.
+* **Unified OAM abstraction**: It provides unified, vendor- and technology agnostic handling of device management tasks, such as service lifecycle, device lifecycle (including discovery, upgrade), system monitoring, alarms, troubleshooting, security, etc.
+* **Cloud/DevOps bridge to modernization**: It does all above while also treating the abstracted network functions as software services manageable much like other software components in the cloud, i.e., containers.
+
+## Why Voltha?
+
+Control and management in the access network space is a mess. Each access technology brings its own bag of protocols, and on top of that vendors have their own interpretation/extension of the same standards. Compounding the problem is that these vendor- and technology specific differences ooze way up into the centralized OSS systems of the service provider, creating a lot of inefficiencies.
+
+Ideally, all vendor equipment for the same access technology should provide an identical interface for control and management. Moreover, there shall be much higher synergies across technologies. While we wait for vendors to unite, Voltha provides an increment to that direction, by confining the differences to the locality of access and hiding them from the upper layers of the OSS stack.
+
+
+## How can you work with Voltha?
+
+While we are still at the early phase of development, you can check out the BUILD.md file in the project's root directory to see how you can build it, run it, test it, etc.
+
+## How can you help?
+
+Contributions, small and large, are welcome. Minor contributions and bug fixes are always welcome in form of pull requests. For larger work, the best is to check in with the existing developers to see where help is most needed and to make sure your solution is compatible with the general philosophy of Voltha.
+
diff --git a/docs/manuals/user/SUMMARY.md b/docs/manuals/user/SUMMARY.md
new file mode 100644
index 0000000..383d771
--- /dev/null
+++ b/docs/manuals/user/SUMMARY.md
@@ -0,0 +1,47 @@
+# Summary
+
+This is the TOC file used by the gitbook generator.
+To generate and serve static content, run:
+
+  ```
+  gitbook serve
+  ```
+
+* [Introduction](README.md)
+* [Overview of Voltha](labtests/README.md)
+* [Recommended Lab Test Scenarios](labtests/README.md)
+  * [Requirements](labtests/requirements.md)
+  * [Preparation](labtests/preparations.md)
+  * [Voltha Bringup Tests](labtests/V00_voltha.md)
+    * [V1 - Deploy Voltha and Verify its Vital Signs](labtests/V01_voltha_bringup_deploy.md)
+    * [V2 - Connect to Voltha with REST and Web Browser](labtests/V02_voltha_bringup_rest.md)
+    * [V3 - Connect to Voltha via its CLI](labtests/V03_voltha_bringup_cli.md)
+    * [V4 - View Voltha Async Events with Kafkacat](labtests/V04_voltha_bringup_async.md)
+  * [PONSIM OLT Tests](labtests/S00_ponsim_tests.md)
+    * [S1 - Preprovision and Activate OLT](labtests/S01_ponsim_tests_launch_and_activate.md)
+	* [S2 - Launch ONOS](labtests/S02_ponsim_tests_onos.md)
+	* [S3 - Verify RG Authentication Scenario (EAPOL)](labtests/S03_ponsim_eapol_auth.md)
+	* [S4 - Verify DHCP Lookup](labtests/S04_ponsim_verify_dhcp.md)
+	* [S5 - Verify Unicast Access](labtests/S05_ponsim_tests_unicast.md)
+	* [S6 - Verify IGMP Handling](labtests/S06_ponsim_tests_multicast.md)	
+  * [Tibit OLT Tests](labtests/T00_tibit_olt_tests.md)
+    * [T1 - Preprovision and Activate OLT](labtests/T01_tibit_olt_tests_activate_olt.md)
+	* [T2 - Launch ONOS](labtests/T02_tibit_olt_tests_onos.md)
+	* [T3 - Verify EAPOL RG Authentication Scenario](labtests/T03_tibit_olt_eapol_auth.md)
+	* [T4 - Verify DHCP Lookup](labtests/T04_tibit_verify_dhcp.md)
+    * [T5 - Verify Unicast Access](labtests/T05_tibit_tests_unicast.md)
+    * [T6 - Verify IGMP Handling](labtests/T06_tibit_tests_multicast.md)
+  * [Maple OLT Tests](labtests/M00_maple_olt_tests.md)
+    * [M1 - Preprovision and Activate OLT](labtests/M01_maple_olt_tests_activate_olt.md)
+	* [M2 - Launch ONOS](labtests/M02_maple_olt_tests_onos.md)
+	* [M3 - Verify EAPOL RG Authentication Scenario](labtests/M03_maple_olt_tests_eapol_auth.md)
+	* [M4 - Verify DHCP Lookup](labtests/M04_maple_olt_tests_verify_dhcp.md)
+    * [M5 - Verify Unicast Access](labtests/M05_maple_olt_tests_unicast.md)
+    * [M6 - Verify IGMP Handling](labtests/M06_maple_olt_tests_multicast.md)
+  * [Netconf Tests](labtests/N00_netconf.md)
+    * [N1 - Deploy Netconf and Verify its Vital Signs](labtests/N01_netconf_bringup_deploy.md)
+    * [N2 - Connect to Netconf with a Netconf Browser](labtests/N02_netconf_client_connect.md)
+    * [N3 - Retrieve YANG Modules](labtests/N03_netconf_client_retrieve_YANG_modules.md)
+    * [N4 - Get VolthaInstance info](labtests/N04_netconf_client_get_volthainstance.md)
+    * [N5 - Get List of Adapters](labtests/N05_netconf_client_get_adapters.md)
+
diff --git a/docs/manuals/user/book.json b/docs/manuals/user/book.json
new file mode 100644
index 0000000..c3cf0ed
--- /dev/null
+++ b/docs/manuals/user/book.json
@@ -0,0 +1,21 @@
+{
+    "gitbook": "2.0.2",
+    "title": "Voltha Documentation",
+    "plugins": [
+        "google_code_prettify",
+        "collapsible-menu",
+        "image-captions"
+    ],
+    "links": {
+        "sidebar": {
+            "Contact us": "http://opencord.org"
+        }
+    },
+    "pluginsConfig": {},
+    "pdf": {
+        "fontSize": 8
+    },
+    "styles": {
+        "website": "gitbook/styles/printable.css"
+    }
+}
diff --git a/docs/manuals/user/gitbook/styles/printable.css b/docs/manuals/user/gitbook/styles/printable.css
new file mode 100644
index 0000000..bb100ca
--- /dev/null
+++ b/docs/manuals/user/gitbook/styles/printable.css
@@ -0,0 +1,15 @@
+@media print {
+  .book-body {
+    left: 0px !important;
+  }
+  .book .book-body {
+    left: 0px !important;
+    overflow: visible !important;
+  }
+  div.book-summary {
+    display: none !important;
+  }
+  a.navigation-prev { display: none !important; }
+  a.navigation-next { display: none !important; }
+  div { page-break-inside: avoid; }
+}
diff --git a/docs/manuals/user/labtests/M00_maple_olt_tests.md b/docs/manuals/user/labtests/M00_maple_olt_tests.md
new file mode 100644
index 0000000..aac09c9
--- /dev/null
+++ b/docs/manuals/user/labtests/M00_maple_olt_tests.md
@@ -0,0 +1,11 @@
+# Maple OLT Tests
+
+These tests assume access to a Maple-based OLT PON system in the test
+POD.
+
+* [M1 - Preprovision and Activate OLT and ONU](M01_maple_olt_tests_activate_olt.md)
+* [M2 - Launch ONOS](M02_maple_olt_tests_onos.md)
+* [M3 - Verify EAPOL RG Authentication](M03_maple_olt_tests_eapol_auth.md)
+* [M4 - Verify DHCP Lookup](M04_maple_olt_tests_verify_dhcp.md)
+* [M5 - Verify Unicast Access](M05_maple_olt_tests_unicast.md)
+* [M6 - Verify IGMP Handling](M06_maple_olt_tests_multicast.md)	
diff --git a/docs/manuals/user/labtests/M01_maple_olt_tests_activate_olt.md b/docs/manuals/user/labtests/M01_maple_olt_tests_activate_olt.md
new file mode 100644
index 0000000..9dffc62
--- /dev/null
+++ b/docs/manuals/user/labtests/M01_maple_olt_tests_activate_olt.md
@@ -0,0 +1,155 @@
+## M1 - Preprovision and Activate OLT
+
+### Test Objective
+
+* Purpose of this test is to verify a new OLT can be added and activated from VOLTHA
+* VOLTHA will connect with the OLT physical device and create a
+  logical device with initial ports in its data store
+* VOLTHA will send Event notifications to ONOS and PON Manager for the newly added OLT
+
+### Test Configuration
+
+* The test setup is as shown in earlier sections
+* Maple OLT should be reachable from VOLTHA on VLAN 4092
+
+#### Temporary Configuration
+
+* The following commands are temporary and will be removed when full 
+  support in added to VOLTHA. The following commands add and verify
+  the VLAN 4092 interface to VOLTHA along with an IP address in the 
+  subnet used to communicate with the Maple OLT.
+
+```
+docker exec -ti compose_voltha_1 bash
+ip link add link eth1 name eth1.4092 type vlan id 4092
+ip addr add 192.168.24.20/24 brd + dev eth1.4092
+ip link set eth1.4092 up
+apt install -y iputils-ping
+ping 192.168.24.10
+exit
+
+```
+  
+
+* Start the VOLTHA CLI
+
+**Step 1: If not yet running, launch the Voltha CLI:**
+
+```
+cd $VOLTHA_BASE
+./cli/main.py -L
+```
+
+```
+         _ _   _            ___ _    ___
+__ _____| | |_| |_  __ _   / __| |  |_ _|
+\ V / _ \ |  _| ' \/ _` | | (__| |__ | |
+ \_/\___/_|\__|_||_\__,_|  \___|____|___|
+(to exit type quit or hit Ctrl-D)
+(voltha)
+```
+
+### Test Procedure
+
+* Issue CLI commands in the VOLTHA CLI to simulate an “Add-OLT device”
+  message coming from the PON Manager to VOLTHA
+* Note: for the purposes of this document the OLT IP address is assumed
+  to be 192.168.24.10
+
+```
+preprovision_olt --device-type=maple_olt --ip-address=192.168.24.10
+```
+
+* If the adapter for the device is found, VOLTHA will create the
+  device in the device table. Executing the following command will
+  display known devices
+
+```
+devices
+```
+
+* The output should appear as follows
+
+```
+Devices:
++--------------+-----------+---------------+----------------+
+|           id |      type |  ipv4_address |    admin_state |
++--------------+-----------+---------------+----------------+
+| 32dd2fa5827d | maple_olt | 192.168.24.10 | PREPROVISIONED |
++--------------+-----------+---------------+----------------+
+```
+
+* To activate the OLT, execute the following command
+
+```
+activate_olt
+```
+* VOLTHA should initiate a connection and activation request to the Maple OLT
+* VOLHA will create the logical OpenFlow device and ports and notify ONOS
+* VOLTHA will send an OLT-Activated event notification to the PON Manager
+* VOLTHA will automatically provision and activate a single ONU
+* Note: the automatic provisioning and activation of the single ONU is only
+  temporary and will be replaced by ONU discovery and activation in a future
+  release.
+
+* Verify the OLT and ONU status on device console with the following command
+
+```
+devices
+```
+* The output should appear similar to the following
+
+```
+Devices:
++--------------+--------------+------+--------------+------+---------------+-------------+-------------+----------------+----------------+-------------------------+--------------------------+
+|           id |         type | root |    parent_id | vlan |  ipv4_address | admin_state | oper_status | connect_status | parent_port_no | proxy_address.device_id | proxy_address.channel_id |
++--------------+--------------+------+--------------+------+---------------+-------------+-------------+----------------+----------------+-------------------------+--------------------------+
+| 32dd2fa5827d |    maple_olt | True |            1 |      | 192.168.24.10 |     ENABLED |      ACTIVE |      REACHABLE |                |                         |                          |
+| a957b19f955c | broadcom_onu | True | 32dd2fa5827d | 1025 |               |     ENABLED |      ACTIVE |      REACHABLE |              1 |            32dd2fa5827d |                     1025 |
++--------------+--------------+------+--------------+------+---------------+-------------+-------------+----------------+----------------+-------------------------+--------------------------+
+```
+
+* Activating the ONU currently initiates an OMCI exchange between
+  the OLT and ONU. In addition, EAPOL, IGMP and DHCP forwarding rules 
+  are installed.
+* Note: the automatic initiation of OMCI messaging and installation of
+  forwarding rules is temporary and will be driven by flow rules in
+  a future release.
+
+Now that this OLT has provisioned all forwarding rules, it should continue
+to drop all traffic since ONOS is not running. We can verify this by starting
+the RG emulator and observing that EAPOL authentication does not succeed.
+To do this start our RG docker container.
+
+```
+docker run --net=host --privileged --name RG -it cord/tester bash
+```
+
+this should land you in a command prompt that looks like
+
+```
+root@8358ef5cad0e:/#
+```
+
+and at this prompt issue the following command
+
+```
+/sbin/wpa_supplicant -Dwired -ieno1 -c /etc/wpa_supplicant/wpa_supplicant.conf
+```
+
+this should hang with the following output. You will need to interrupt it with Ctrl-C.
+
+```
+Successfully initialized wpa_supplicant
+eno1: Associated with 01:80:c2:00:00:03
+WMM AC: Missing IEs
+```
+
+### Pass/Fail Criteria
+
+* OLT / ONUs status can be seen from Device Console
+* Confirm OLT and ONUs have "oper_status" of ACTIVE
+* ONUs should not authenticate
+
+
+
diff --git a/docs/manuals/user/labtests/M02_maple_olt_tests_onos.md b/docs/manuals/user/labtests/M02_maple_olt_tests_onos.md
new file mode 100644
index 0000000..55e7b2a
--- /dev/null
+++ b/docs/manuals/user/labtests/M02_maple_olt_tests_onos.md
@@ -0,0 +1,100 @@
+## M2 - Attach the Maple OLT to ONOS
+
+### Test Objective
+
+Observe that ONOS has identified the OLT device and displays the correct number of ONU ports
+
+### Test Configuration
+
+* VOLTHA ensemble up and running.
+* Maple configured with an OLT and one or more ONUs
+
+### Test Procedure
+
+First, start the onos container.
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml up -d onos
+```
+
+this should output
+
+```
+Creating compose_onos_1
+```
+
+Make sure that ONOS is running
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml ps
+```
+
+which shows
+
+```
+Name             Command         State                                        Ports
+------------------------------------------------------------------------------------------------------------------------------
+compose_onos_1   ./bin/onos-service   Up      0.0.0.0:6653->6653/tcp, 0.0.0.0:8101->8101/tcp, 0.0.0.0:8181->8181/tcp, 9876/tcp
+```
+
+Now, let's login to ONOS.
+
+```
+sudo apt install sshpass # may not be necessary
+sshpass -p karaf ssh -o StrictHostKeyChecking=no -p 8101 karaf@localhost
+```
+
+this should land you at the ONOS prompt
+
+```
+Welcome to Open Network Operating System (ONOS)!
+     ____  _  ______  ____
+    / __ \/ |/ / __ \/ __/
+   / /_/ /    / /_/ /\ \
+   \____/_/|_/\____/___/
+
+Documentation: wiki.onosproject.org
+Tutorials:     tutorials.onosproject.org
+Mailing lists: lists.onosproject.org
+
+Come help out! Find out how at: contribute.onosproject.org
+
+Hit '<tab>' for a list of available commands
+and '[cmd] --help' for help on a specific command.
+Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown ONOS.
+
+onos>
+```
+
+Let's have a look at the devices that ONOS sees, to do this enter the following at the ONOS prompt.
+
+```
+devices
+```
+
+this will output the following
+
+```
+id=of:0000000000000001, available=true, role=MASTER, type=SWITCH, mfr=cord porject, hw=n/a, sw=logical device for Maple-based PON, serial=82126dceaa0b47f9ace655efcf7e97b4, driver=pmc-olt, channelId=172.25.0.1:57746, managementAddress=172.25.0.1, name=of:0000000000000001, protocol=OF_13
+```
+
+next let's have a look at the ports that onos sees. Remember that ONOS sees the PON system as a logical device so ONU are represented as ports to ONOS. So let's see the ports in ONOS.
+
+```
+ports
+```
+
+which returns the following
+
+```
+id=of:0000000000000001, available=true, role=MASTER, type=SWITCH, mfr=cord porject, hw=n/a, sw=logical device for Maple-based PON, serial=82126dceaa0b47f9ace655efcf7e97b4, driver=pmc-olt, channelId=172.25.0.1:57746, managementAddress=172.25.0.1, name=of:0000000000000001, protocol=OF_13
+  port=0, state=enabled, type=fiber, speed=0 , portName=nni, portMac=00:00:00:00:00:81
+  port=1025, state=enabled, type=fiber, speed=0 , portName=uni-1025, portMac=00:00:00:00:04:01
+```
+
+This correctly shows three ports. Yay!
+
+### Pass/Fail Criteria
+
+* OLT observed in ONOS
+* ONUs observed in ONOS as ports
diff --git a/docs/manuals/user/labtests/M03_maple_olt_eapol_auth.md b/docs/manuals/user/labtests/M03_maple_olt_eapol_auth.md
new file mode 100644
index 0000000..73bdb8d
--- /dev/null
+++ b/docs/manuals/user/labtests/M03_maple_olt_eapol_auth.md
@@ -0,0 +1 @@
+# M3 - Verify EAPOL RG Authentication Scenario
diff --git a/docs/manuals/user/labtests/M03_maple_olt_tests_eapol_auth.md b/docs/manuals/user/labtests/M03_maple_olt_tests_eapol_auth.md
new file mode 100644
index 0000000..bf96149
--- /dev/null
+++ b/docs/manuals/user/labtests/M03_maple_olt_tests_eapol_auth.md
@@ -0,0 +1,58 @@
+## M3 - Verify EAPOL Remote Gateway Authentication
+
+### Test Objective
+
+* Purpose of this test is to verify that 802.1X EAPOL messages are forwarded to the ONOS from VOLTHA
+  * Correct Maple OLT and ONU PON environment
+  * Logical device visible in VOLTHA CLI
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* Start the freeradius container
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml up -d freeradius
+```
+
+* Maple OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+Now that this OLT is ACTIVE in VOLTHA, it should forward EAPOL
+traffic. We can verify this by starting the RG emulator and observing
+that EAPOL authentication does not succeed. To do this start our RG
+docker container.
+
+```
+docker run --net=host --privileged --name RG -it cord/tester bash
+```
+
+this should land you in a command prompt that looks like
+
+```
+root@8358ef5cad0e:/#
+```
+
+and at this prompt issue the following command
+
+```
+/sbin/wpa_supplicant -Dwired -ien01 -c /etc/wpa_supplicant/wpa_supplicant.conf
+```
+
+This should pass with the following output
+
+```
+Successfully initialized wpa_supplicant
+ens9f1: Associated with 01:80:c2:00:00:03
+WMM AC: Missing IEs
+ens9f1: CTRL-EVENT-EAP-STARTED EAP authentication started
+ens9f1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=4
+ens9f1: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 4 (MD5) selected
+ens9f1: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
+```
+
+
+### Pass/Fail Criteria
+
+* EAPOL Authentication should pass
diff --git a/docs/manuals/user/labtests/M04_maple_olt_tests_verify_dhcp.md b/docs/manuals/user/labtests/M04_maple_olt_tests_verify_dhcp.md
new file mode 100644
index 0000000..28bcee1
--- /dev/null
+++ b/docs/manuals/user/labtests/M04_maple_olt_tests_verify_dhcp.md
@@ -0,0 +1,42 @@
+## M4 - Verify DHCP successfully obtains an IP address
+
+### Test Objective
+
+* Purpose of this test is to verify that the Dynamic Host Configuration Protocol (DHCP)
+  * Correct Maple OLT and ONU PON environment
+  * Logical device visible in VOLTHA CLI
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* Note: The DHCP server is contained within ONOS.
+* Maple OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+To start this procedure, execute the "ifconfig" command on the interface that will be getting assigned an IP address over DHCP and verify that IP address has not been assigned. 
+
+```
+ifconfig eno1
+```
+
+Next, execute the following command to obtain an IP address from ONOS.
+
+```
+dhclient eno1
+```
+Note: When the dhclient command completes a common error message is displayed as follows.  This mesage can safely be ignored. 
+
+```
+dhclient: cannot move '/etc/*.conf' to '/etc/resolve.conf'
+```
+
+Then verify that an IP address was dynamically assigned to your interface
+
+```
+ifconfig eno1
+```
+
+### Pass/Fail Criteria
+
+* IP address assigned to interface
diff --git a/docs/manuals/user/labtests/M04_maple_verify_dhcp.md b/docs/manuals/user/labtests/M04_maple_verify_dhcp.md
new file mode 100644
index 0000000..61ae0fc
--- /dev/null
+++ b/docs/manuals/user/labtests/M04_maple_verify_dhcp.md
@@ -0,0 +1 @@
+# M4 - Verify DHCP Lookup
diff --git a/docs/manuals/user/labtests/M05_maple_olt_tests_unicast.md b/docs/manuals/user/labtests/M05_maple_olt_tests_unicast.md
new file mode 100644
index 0000000..8e214fa
--- /dev/null
+++ b/docs/manuals/user/labtests/M05_maple_olt_tests_unicast.md
@@ -0,0 +1,43 @@
+## M5 - Verify unicast traffic flow
+
+### Test Objective
+
+* Purpose of this test is to verify that unicast traffic flows through the system
+  * Correct Maple PON environment
+  * Logical device visible in VOLTHA cli
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* Maple OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+Execute the following command from the RG side
+
+```
+ping -I eno1 1.2.3.4
+```
+
+Meanwhile tcpdump on the VOLTHA server.
+
+```
+sudo tcpdump -nei eno2
+```
+
+which will output
+
+```
+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+listening on pon1_0, link-type EN10MB (Ethernet), capture size 262144 bytes
+13:53:44.328260 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1025, p 0, ethertype 802.1Q, vlan 1025, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:45.322475 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1025, p 0, ethertype 802.1Q, vlan 1025, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:46.322725 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1025, p 0, ethertype 802.1Q, vlan 1025, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:47.325610 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1025, p 0, ethertype 802.1Q, vlan 1025, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:48.322729 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1025, p 0, ethertype 802.1Q, vlan 1025, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:49.322517 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1025, p 0, ethertype 802.1Q, vlan 1025, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+```
+
+### Pass/Fail Criteria
+
+Ping completes successfully
diff --git a/docs/manuals/user/labtests/M05_maple_tests_unicast.md b/docs/manuals/user/labtests/M05_maple_tests_unicast.md
new file mode 100644
index 0000000..e25e3de
--- /dev/null
+++ b/docs/manuals/user/labtests/M05_maple_tests_unicast.md
@@ -0,0 +1 @@
+# M5 - Verify Unicast Access
diff --git a/docs/manuals/user/labtests/M06_maple_olt_tests_multicast.md b/docs/manuals/user/labtests/M06_maple_olt_tests_multicast.md
new file mode 100644
index 0000000..335ac5c
--- /dev/null
+++ b/docs/manuals/user/labtests/M06_maple_olt_tests_multicast.md
@@ -0,0 +1,179 @@
+## M6 - Test IGMP and multicast (Video) streams
+
+### Test Objective
+
+Verify that VOLTHA punts IGMP packets to ONOS and that ONOS provisions the right multicast rules
+
+### Test Configuration
+
+* VOLTHA ensemble up and running.
+* Maple configured with an OLT with one or more ONUs
+* An authenticated RG
+
+### Test Procedure
+
+At this point ONOS should show the following rules:
+
+```
+deviceId=of:0000000000000001, flowRuleCount=7
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:128, ETH_TYPE:ipv4, IP_PROTO:2], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, ETH_TYPE:eapol], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:0, METADATA:80, VLAN_VID:1000], treatment=[immediate=[VLAN_POP:unknown], transition=TABLE:1]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:129, ETH_TYPE:eapol], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, VLAN_VID:0], treatment=[immediate=[VLAN_ID:128], transition=TABLE:1]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:130, ETH_TYPE:eapol], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, ETH_TYPE:ipv4, IP_PROTO:17, UDP_SRC:68, UDP_DST:67], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=1, priority=1000, selector=[IN_PORT:0, VLAN_VID:128], treatment=[immediate=[VLAN_POP:unknown, OUTPUT:128]]
+    ADDED, bytes=0, packets=0, table=1, priority=1000, selector=[IN_PORT:128, VLAN_VID:128], treatment=[immediate=[VLAN_PUSH:vlan, VLAN_ID:1000, OUTPUT:0]]
+```
+
+So now let's send an IGMP packet from the RG up the ONU. To do this run the following in the RG container.
+
+```
+igmp.py -j -i eno1 -m 229.0.0.1
+```
+
+this will return
+
+```
+.
+Sent 1 packets.
+```
+
+which indicates that one igmp packet has been sent.
+
+Let us now check the state in ONOS, starting with the group information. Run the following in the ONOS prompt.
+
+```
+groups
+```
+
+which returns
+
+```
+deviceId=of:0000000000000001, groupCount=1
+   id=0x1, state=ADDED, type=ALL, bytes=0, packets=0, appId=org.onosproject.cordmcast
+   id=0x1, bucket=1, bytes=0, packets=0, actions=[VLAN_POP:unknown, OUTPUT:128]
+```
+
+This shows that the a group was installed that forward packets to the ONU which sent the igmp.
+
+For a group to be useful a flow must point to this group. So let's check in ONOS whether a flow exists.
+
+```
+flows -s
+```
+
+and find a flow which looks like
+
+```
+ADDED, bytes=0, packets=0, table=0, priority=500, selector=[IN_PORT:0, ETH_TYPE:ipv4, VLAN_VID:140, IPV4_DST:229.0.0.1/32], treatment=[immediate=[GROUP:0x1]]
+```
+
+This indicates that a multicast traffic with destination ip 229.0.0.1 should be handled by group 1.
+
+Now let's check whether we find this state in the logical device in VOLTHA. Let's run the following in the VOLTHA CLI.
+
+```
+logical_device
+flows
+```
+
+which will return
+
+```
+Logical Device 1 (type: n/a)
+Flows (10):
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+| table_id | priority |    cookie | in_port | vlan_vid | eth_type | ip_proto |  ipv4_dst | udp_src | udp_dst | metadata | set_vlan_vid | pop_vlan | push_vlan | group |     output | goto-table |
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+|        0 |     1000 | 242068... |     128 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |     1000 | 242068... |     129 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |     1000 | 242068... |     130 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |    10000 | 242068... |     128 |          |      800 |        2 |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        1 |     1000 | 242068... |       0 |      128 |          |          |           |         |         |          |              |      Yes |           |       |        128 |            |
+|        0 |     1000 | 242068... |       0 |     1000 |          |          |           |         |         |      128 |              |      Yes |           |       |            |          1 |
+|        1 |     1000 | 242068... |     128 |      128 |          |          |           |         |         |          |         1000 |          |      8100 |       |          0 |            |
+|        0 |     1000 | 242068... |     128 |        0 |          |          |           |         |         |          |          128 |          |           |       |            |          1 |
+|        0 |     1000 | 242068... |     128 |          |      800 |       17 |           |      68 |      67 |          |              |          |           |       | CONTROLLER |            |
+|        0 |      500 | 267401... |       0 |      140 |      800 |          | 229.0.0.1 |         |         |          |              |          |           |     1 |            |            |
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+```
+
+and we can see a rule with 229.0.0.1 which point to group 1.
+
+Let's now look at the physical device level. Still in the Voltha CLI run the following.
+
+```
+devices
+```
+
+this returns
+
+```
+Devices:
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+|           id |       type | root |    parent_id | vlan | admin_state | oper_status | connect_status | parent_port_no |    host_and_port | proxy_address.device_id | proxy_address.channel_id |
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+| dece8e843be5 | ponsim_olt | True |            1 |      |     ENABLED |      ACTIVE |      REACHABLE |                | 172.17.0.1:50060 |                         |                          |
+| 56a6fc8b859f | ponsim_onu | True | dece8e843be5 |  128 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      128 |
+| b40cae50dcf7 | ponsim_onu | True | dece8e843be5 |  129 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      129 |
+| d47b951c3fd2 | ponsim_onu | True | dece8e843be5 |  130 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      130 |
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+```
+
+Identify the ONU which sent the IGMP packet (128) and copy its device id (56a6fc8b859f in this case). Next run the following in the Voltha CLI.
+
+```
+device 56a6fc8b859f
+flows
+```
+
+which returns
+
+```
+Device 56a6fc8b859f (type: ponsim_onu)
+Flows (6):
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+| table_id | priority |    cookie | in_port | vlan_vid | eth_type |  ipv4_dst | set_vlan_vid | pop_vlan | push_vlan | output |
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+|        0 |      500 |         0 |       2 |        0 |          |           |          128 |          |           |      1 |
+|        0 |      500 |         0 |       2 | untagged |          |           |          128 |          |      8100 |      1 |
+|        0 |      500 |         0 |       1 |      128 |          |           |            0 |          |           |      2 |
+|        0 |     1000 | 242068... |       1 |      128 |          |           |              |      Yes |           |      2 |
+|        0 |     1000 | 242068... |       2 |        0 |          |           |          128 |          |           |      1 |
+|        0 |      500 | 267401... |       1 |          |      800 | 229.0.0.1 |              |          |           |      2 |
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+```
+
+And we can see that 229.0.0.1 outputs the packet to the right port.
+
+Let us now try this out for real with a real packet. Let's first build a multicast frame and send it down the nni port, we can do this with scapy.
+
+```
+sudo scapy
+mc = Ether(src="00:00:00:00:00:01")/Dot1Q(vlan=4000)/IP(dst="229.0.0.1", proto=17)
+sendp(mc, iface="eno2")
+```
+
+Meanwhile run tcpdump in the RG container:
+
+```
+tcpdump -nei eno1
+```
+
+in he RG container while tcpdump'ing we should see the following output.
+
+```
+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
+08:09:43.004776 00:00:00:00:00:01 > 01:00:5e:00:00:01, ethertype IPv4 (0x0800), length 34: 10.0.2.15 > 229.0.0.1: [|udp]
+```
+
+Woohoo!
+
+### Pass/Fail Criteria
+
+* Flows and groups installed in ONOS
+* Flows and groups installed in Voltha
+* Multicast packet forwarded down to the correct ONU port.
diff --git a/docs/manuals/user/labtests/M06_maple_tests_multicast.md b/docs/manuals/user/labtests/M06_maple_tests_multicast.md
new file mode 100644
index 0000000..00c3c64
--- /dev/null
+++ b/docs/manuals/user/labtests/M06_maple_tests_multicast.md
@@ -0,0 +1 @@
+# M6 - Verify IGMP Handling
diff --git a/docs/manuals/user/labtests/M09_maple_olt_tests_verify_authentication.md b/docs/manuals/user/labtests/M09_maple_olt_tests_verify_authentication.md
new file mode 100644
index 0000000..8cf0beb
--- /dev/null
+++ b/docs/manuals/user/labtests/M09_maple_olt_tests_verify_authentication.md
@@ -0,0 +1,32 @@
+## M9 - Verify RG Authentication Scenario
+
+### Test Objective
+
+* Purpose of this test is to verify RG authentication is successful with Radius / EAP method
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT should be reachable to VOLTHA over IP interface over VLAN 4092
+* Maple OLT should be in active state on VOLTHA
+* Broadcom ONU should be in active state on VOLTHA
+* EAPOL forwarding rule should be setup on OLT and ONU
+* Radius Server is in service and configured to authenticate RG
+* DHCP Server should be down
+
+### Test Procedure
+* Start EAP authentication process from RG by resetting RG.
+* RG should send EAP-Start message and verify it reaches VOLTHA/ONOS
+* EAP message exchange should happen between RG and VOLTHA/ONOS on Management VLAN 4091.
+* VOLTHA/ONOS will use 802.1x method to authenticate RG EAP Identity with Radius Server
+* Verify RG authentication is successful with EAP and 802.1x Radius methods
+* After successful RG authentication,
+* OLT/ONU should drop DHCP packets from RG
+* VOLTHA/ ONOS should send DHCP Forwarding Flow to OLT and ONU
+* VOLTHA/ ONOS should send Unicast Forwarding Flow to OLT and ONU
+* VOLTHA/ ONOS should send IGMP Forwarding Flow to OLT and ONU
+* OLT/ONU will be able to forward DHCP, Unicast and IGMP packets from RG 
+
+### Pass/Fail Criteria
+
+* RG is successfully authenticated based on its credentials in Radius Server
+* DHCP, Unicast and IGMP forwarding flows are setup on OLT/ONU
diff --git a/docs/manuals/user/labtests/M10_maple_olt_tests_verify_dhcp.md b/docs/manuals/user/labtests/M10_maple_olt_tests_verify_dhcp.md
new file mode 100644
index 0000000..9ff81a2
--- /dev/null
+++ b/docs/manuals/user/labtests/M10_maple_olt_tests_verify_dhcp.md
@@ -0,0 +1,26 @@
+## M10 - Verify DHCP Lookup
+
+### Test Objective
+
+* Purpose of this test is to verify RG can successfully setup DHCP session
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT should be reachable to VOLTHA over IP interface over VLAN 4092
+* Maple OLT should be in active state on VOLTHA
+* Broadcom ONU should be in active state on VOLTHA
+* RG is authenticated with Radius
+* DHCP, Unicast and IGMP forwarding flows are setup on OLT and ONU
+* DHCP Server is running
+
+### Test Procedure
+* Enable DHCP on RG by either resetting or enable/disable port
+* DHCP Request from should be forwarded by VOLTHA/ONOS to DHCP Server
+* OLT will send and receive DHCP Messages with SVID 4091 towards VOLTHA/ONOS
+* DHCP should succeed and RG should have IP address
+* Verify ARP, PING and Traceroute succeeds from RG to DHCP server (Not planned on it will be additional step)
+
+### Pass/Fail Criteria
+* RG can receive IP address from DHCP server
+* ARP, Ping and Traceroute is successful between RG and DHCP server
+
diff --git a/docs/manuals/user/labtests/M11_maple_olt_tests_verify_unicast.md b/docs/manuals/user/labtests/M11_maple_olt_tests_verify_unicast.md
new file mode 100644
index 0000000..0a0f789
--- /dev/null
+++ b/docs/manuals/user/labtests/M11_maple_olt_tests_verify_unicast.md
@@ -0,0 +1,21 @@
+## M11 - Verify Unicast Access
+
+### Test Objective
+
+* Purpose of this test is to verify OLT and ONU can pass double tagged traffic 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, configure double tagged traffic in downstream direction (1025,1025)
+* On Spirent, send untagged traffic in upstream direction 
+* On the both ports capture traffic and verify the stream 
+
+### Pass/Fail Criteria
+* Upstream: 
+    * Traffic coming out of OLT is double tagged 1025 ,1025
+* Downstream:
+    * OLT will strip outer tag 1025 and send single CVID traffic to ONT
diff --git a/docs/manuals/user/labtests/M12_maple_olt_tests_verify_multicast.md b/docs/manuals/user/labtests/M12_maple_olt_tests_verify_multicast.md
new file mode 100644
index 0000000..84b7c54
--- /dev/null
+++ b/docs/manuals/user/labtests/M12_maple_olt_tests_verify_multicast.md
@@ -0,0 +1,23 @@
+## M12 - Verify Multicast Access
+
+### Test Objective
+
+* To verify video service on RG
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT should be reachable to VOLTHA over IP interface on VLAN 4092
+* Maple OLT should be in active state on VOLTHA
+* Broadcom ONU should be in active state on VOLTHA
+* RG is authenticated with Radius and RG has IP address from DHCP
+* VLC streaming server is active, VLC Video Client is connected to RG
+
+### Test Procedure
+* Enable Multicast Video Stream from VLC server
+* Multicast Video stream should be tagged with VLAN ID 140
+* From VLC client initiate connection to streaming Multicast channel
+* Packet Capture at OLT port should show IGMP join message
+* Observe Video quality on TV 
+
+### Pass/Fail Criteria
+* Video is displayed on TV
diff --git a/docs/manuals/user/labtests/M13_maple_olt_tests_verify_cvid_upstream.md b/docs/manuals/user/labtests/M13_maple_olt_tests_verify_cvid_upstream.md
new file mode 100644
index 0000000..9fbfaca
--- /dev/null
+++ b/docs/manuals/user/labtests/M13_maple_olt_tests_verify_cvid_upstream.md
@@ -0,0 +1,14 @@
+## M13 - Spirent - Verify Re-Write C-VID Upstream
+
+### Test Objective
+
+* The purpose of this test is to verify ONU can re-write Priority tagged frames (VLAN ID 0) with single c-VID in upstream to wards OLT
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+
+### Pass/Fail Criteria
diff --git a/docs/manuals/user/labtests/M14_maple_olt_tests_verify_cvid_downstream.md b/docs/manuals/user/labtests/M14_maple_olt_tests_verify_cvid_downstream.md
new file mode 100644
index 0000000..f4fd4af
--- /dev/null
+++ b/docs/manuals/user/labtests/M14_maple_olt_tests_verify_cvid_downstream.md
@@ -0,0 +1,13 @@
+## M14 - Spirent - Verify Re-Write C-VID Downstream
+
+### Test Objective
+* The Purpose of this test is to verify ONU can re-write single C-VID frames as priority tagges frames in downstream towards RG
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+
+### Pass/Fail Criteria
diff --git a/docs/manuals/user/labtests/M15_maple_olt_tests_verify_qinq_upstream.md b/docs/manuals/user/labtests/M15_maple_olt_tests_verify_qinq_upstream.md
new file mode 100644
index 0000000..bec0b50
--- /dev/null
+++ b/docs/manuals/user/labtests/M15_maple_olt_tests_verify_qinq_upstream.md
@@ -0,0 +1,21 @@
+## M15 - Spirent - Verify 802.1ad (QinQ) Upstream
+
+### Test Objective
+
+* Purpose of this test is to verify OLT can insert second VLAN tag (SVID) in upstream direction
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, send untagged traffic in upstream direction 
+* On the receiving port end, capture traffic and verify the VLAN parameters 
+
+### Pass/Fail Criteria:
+* Upstream: 
+o   configure on the Spirent side to send untagged traffic (NO vlan  configure)
+o    OLT and ONT will add 1025 ,1025 respectively (i.e. 1025,1025)
+o   Captured frame should contain 1025, 1025 vlan 
+
diff --git a/docs/manuals/user/labtests/M16_maple_olt_tests_verify_qinq_downstream.md b/docs/manuals/user/labtests/M16_maple_olt_tests_verify_qinq_downstream.md
new file mode 100644
index 0000000..c3007ae
--- /dev/null
+++ b/docs/manuals/user/labtests/M16_maple_olt_tests_verify_qinq_downstream.md
@@ -0,0 +1,20 @@
+## M16 - Spirent - Verify 802.1ad (QinQ) Downstream
+
+### Test Objective
+
+* Purpose of this test is to verify OLT (DNX) can strip SVID from the incoming packets and forward only with CVID to ONU 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, configure double tagged traffic in downstream direction (1025,1025)
+* On the receiving port, capture traffic and verify the VLAN parameters 
+
+### Pass/Fail Criteria
+* Downstream:
+  *   configure on the Spirent side to send traffic with 1025,1025
+  *   OLT will strip the 1025 and send traffic to corresponding ONT ( i.e. 1025 to ONT)
+  *   Captured frame should contain only one VLAN tag (1025 VLAN)
diff --git a/docs/manuals/user/labtests/M17_maple_olt_tests_verify_ipv4_downstream.md b/docs/manuals/user/labtests/M17_maple_olt_tests_verify_ipv4_downstream.md
new file mode 100644
index 0000000..5935365
--- /dev/null
+++ b/docs/manuals/user/labtests/M17_maple_olt_tests_verify_ipv4_downstream.md
@@ -0,0 +1,24 @@
+## M17 - Spirent - Verify IPv4 Unicast Streams Downstream
+
+### Test Objective
+
+* Purpose of this test is to verify OLT and ONU can handle double tagged traffic 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, configure double tagged traffic in downstream direction (1025,1025)
+* On Spirent, send untagged traffic in upstream direction 
+* On the both ports capture traffic and verify the stream 
+
+### Pass / Fail Criteria
+* Upstream: 
+   * configure on the Spirent side to send traffic with NO vlan 
+   *  OLT and ONT will add 1025 ,1025 respectively (i.e. 1025,1025)
+* Downstream:
+   * configure on the Spirent side to send traffic with 1025,1025
+   * OLT will strip the 1025 and send traffic to corresponding ONT ( i.e. 1025 to ONT)
+
diff --git a/docs/manuals/user/labtests/M18_maple_olt_tests_verify_ipv4_downstream_case2.md b/docs/manuals/user/labtests/M18_maple_olt_tests_verify_ipv4_downstream_case2.md
new file mode 100644
index 0000000..a58e3d6
--- /dev/null
+++ b/docs/manuals/user/labtests/M18_maple_olt_tests_verify_ipv4_downstream_case2.md
@@ -0,0 +1,17 @@
+## M18 - Spirent - Verify IPv4 Unicast Streams Downstream Case2
+
+### Test Objective
+
+* Purpose of this test is to verify P-BIT parameter is propagated to C-VID when sending downstream traffic to ONU
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, configure P-BIT for CVID. ex: set P-BIT value to 3 
+* On the Receive port end, capture traffic and verify the P-BIT parameter on SVID  in Up stream direction 
+
+### Pass / Fail Criteria
+* P-BIT value s-VID is copied to C-VID in downstream direction 
diff --git a/docs/manuals/user/labtests/M19_maple_olt_tests_ranging.md b/docs/manuals/user/labtests/M19_maple_olt_tests_ranging.md
new file mode 100644
index 0000000..9c5d42c
--- /dev/null
+++ b/docs/manuals/user/labtests/M19_maple_olt_tests_ranging.md
@@ -0,0 +1,19 @@
+## M19 - 10k and 20k ONU Ranging
+
+### Test Objective
+
+* Purpose of this test is to verify ONU can range with 10km and 20 KM distance
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+
+### Test Procedure
+* Place the ONU Using 10KM fiber pool, Activate the OLT and ONU using VOLTHA
+* Place the ONU Using 20KM fiber pool, Activate the OLT and ONU using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA and send traffic 
+
+### Pass / Fail Criteria
+* OLT can range the ONU successfully with 10 KM distance 
+* OLT can range the ONU successfully with 20 KM distance 
+* Traffic flows successfully with 20 KM distance without any drops 
+
diff --git a/docs/manuals/user/labtests/M20_maple_olt_tests_mib.md b/docs/manuals/user/labtests/M20_maple_olt_tests_mib.md
new file mode 100644
index 0000000..0f1fad9
--- /dev/null
+++ b/docs/manuals/user/labtests/M20_maple_olt_tests_mib.md
@@ -0,0 +1,15 @@
+## M20 - MIB Download and Upload
+
+### Test Objective
+
+* Purpose of this test is to verify OMCI MIB is downloaded from OLT to ONU and vice versa as part of ONU ranging process
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+
+### Test Procedure
+* Activate the Maple OLT and ONU using VOLTHA
+
+### Pass / Fail Criteria
+* Once the ONU ranges, OMCI MIB is downloaded from OLT to ONU and vice versa 
+
diff --git a/docs/manuals/user/labtests/M21_maple_olt_tests_2000_byte_frames.md b/docs/manuals/user/labtests/M21_maple_olt_tests_2000_byte_frames.md
new file mode 100644
index 0000000..df44060
--- /dev/null
+++ b/docs/manuals/user/labtests/M21_maple_olt_tests_2000_byte_frames.md
@@ -0,0 +1,17 @@
+## M21 - 2000 byte Frames
+
+### Test Objective
+
+* Purpose of this test is to verify OLT and ONU can accept and forward traffic when frame size of 2000 bytes
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* Send data/unicast traffic with frame size of 2000 Bytes in upstream and downstream direction
+
+### Pass / Fail Criteria
+* OLT & ONU can accept and forward frames of size 2000 Bytes successfully 
+
diff --git a/docs/manuals/user/labtests/M22_maple_olt_tests_data_and_video.md b/docs/manuals/user/labtests/M22_maple_olt_tests_data_and_video.md
new file mode 100644
index 0000000..c551928
--- /dev/null
+++ b/docs/manuals/user/labtests/M22_maple_olt_tests_data_and_video.md
@@ -0,0 +1,17 @@
+## M22 - Simultaneous Data and Video Streams
+
+### Test Objective
+
+* Purpose of this test is to verify OLT and ONU can handle data and multicast traffic 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+* Provision Multicast/IGMP service on the ONU from VOLTHA
+
+### Test Procedure
+* Send bi-directional data traffic and multicast traffic on the ONU
+
+### Expected Result
+* Bi-directional data Traffic and Multicast traffic on the ONU went through successfully 
diff --git a/docs/manuals/user/labtests/M23_maple_olt_tests_overnight.md b/docs/manuals/user/labtests/M23_maple_olt_tests_overnight.md
new file mode 100644
index 0000000..e076e73
--- /dev/null
+++ b/docs/manuals/user/labtests/M23_maple_olt_tests_overnight.md
@@ -0,0 +1,17 @@
+## M23 - Overnight Traffic Test
+
+### Test Objective
+
+* Purpose of this test is to verify overnight traffic test went through successfully with zero drops
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+* Provision Multicast/IGMP service on the ONU from VOLTHA
+
+### Test Procedure
+* Send bi-directional data and multicast traffic over night and monitor for traffic drops
+
+### Pass / Fail Criteria:
+* Bi-directional traffic went through overnight and no traffic drops 
diff --git a/docs/manuals/user/labtests/M24_maple_olt_tests_ha_fiber_disconnect.md b/docs/manuals/user/labtests/M24_maple_olt_tests_ha_fiber_disconnect.md
new file mode 100644
index 0000000..6ac6a93
--- /dev/null
+++ b/docs/manuals/user/labtests/M24_maple_olt_tests_ha_fiber_disconnect.md
@@ -0,0 +1,18 @@
+## M24 - Traffic Recovers After Fiber Disconnect (Best Effort)
+
+### Test Objective
+
+* Purpose of this test is to verify pull & re-insert of PON cable can resume the traffic on the ONU
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* Now manually pull the fiber cable the from ONU
+* Re-insert the fiber cable to the ONU and verify ONU is ranges and traffic restores
+
+### Pass / Fail Criteria
+* Traffic stopped when cable is pulled from ONU
+* After cable insert, ONU is ranged back and traffic starts flowing automatically on the ONU
diff --git a/docs/manuals/user/labtests/M25_maple_olt_tests_ha_onu_reset.md b/docs/manuals/user/labtests/M25_maple_olt_tests_ha_onu_reset.md
new file mode 100644
index 0000000..585139f
--- /dev/null
+++ b/docs/manuals/user/labtests/M25_maple_olt_tests_ha_onu_reset.md
@@ -0,0 +1,19 @@
+## M25 - Traffic Recovers After ONU Reset (Best Effort)
+
+### Test Objective
+
+* Purpose of this test is to verify reset/reboot of ONU is able to recover the traffic on the ONU
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* Now manually reset /reboot the ONU
+* Verify whether ONU ranges and traffic is restored successfully 
+
+### Pass / Fail Criteria
+* Traffic should stop flowing when ONU is restarted
+* After ONU is up, traffic restores automatically on the ONU
+
diff --git a/docs/manuals/user/labtests/M26_maple_olt_tests_ha_olt_reset.md b/docs/manuals/user/labtests/M26_maple_olt_tests_ha_olt_reset.md
new file mode 100644
index 0000000..69ec6e6
--- /dev/null
+++ b/docs/manuals/user/labtests/M26_maple_olt_tests_ha_olt_reset.md
@@ -0,0 +1,21 @@
+## M26 - Traffic Recovers After OLT Reset (Best Effort)
+
+### Test Objective
+
+* Purpose of this test is to verify reset/reboot of ONU is able to recover the traffic on the ONU
+
+### Test Configuration
+
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+
+* Now reset /reboot the OLT
+* Verify OLT is up, ONU ranges and traffic is restored successfully 
+
+### Pass / Fail Criteria
+
+* When OLT is up, ONU ranges back and traffic restores automatically on the ONU
+
diff --git a/docs/manuals/user/labtests/M27_maple_olt_tests_ha_tor_switch_reset.md b/docs/manuals/user/labtests/M27_maple_olt_tests_ha_tor_switch_reset.md
new file mode 100644
index 0000000..2d6c247
--- /dev/null
+++ b/docs/manuals/user/labtests/M27_maple_olt_tests_ha_tor_switch_reset.md
@@ -0,0 +1,18 @@
+## M27 - Traffic Recovers After ToR Switch Reset (Best Effort)
+
+### Test Objective
+
+* Purpose of this test is to verify reset/reboot of TOR switch is able to recover the traffic 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Maple OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* Now reset /reboot the TOR switch
+* Verify TOR is up, Traffic is restored successfully 
+
+### Pass / Fail Criteria
+* Traffic should stop flowing when TOR switch is restarted. Once the TOR switch is up, Traffic restored successfully on the ONU
+
diff --git a/docs/manuals/user/labtests/N00_netconf.md b/docs/manuals/user/labtests/N00_netconf.md
new file mode 100644
index 0000000..61c6dad
--- /dev/null
+++ b/docs/manuals/user/labtests/N00_netconf.md
@@ -0,0 +1,17 @@
+# Netconf Tests
+
+Test steps in this section serve the following purpose:
+
+1. Deploys Netconf and its companion containers
+2. Verifies base-line operation of Netconf Server
+3. Introduces the tester to a subset of Netconf operations, which are
+   * SSH connection 
+   * Retrieve Voltha YANG modules
+   * Initiate a GET command on a Voltha Instance
+   * Retrieve the list of adapters
+   
+   
+   Running these test cases will require a Netconf Browser.  The MG Soft 
+   Netconf Browser will be used.  A free 30-day trial of that browser can be
+    obtained from ```http://www.mg-soft.com/download
+    .html?product=netconfbrowser```.  
diff --git a/docs/manuals/user/labtests/N01_netconf_bringup_deploy.md b/docs/manuals/user/labtests/N01_netconf_bringup_deploy.md
new file mode 100644
index 0000000..c79a8a3
--- /dev/null
+++ b/docs/manuals/user/labtests/N01_netconf_bringup_deploy.md
@@ -0,0 +1,32 @@
+## N1 - Deploy Netconf and Verify its Vital Signs
+
+### Test Objective
+
+* Purpose of this test is to launch Netconf together with all of its 
+dependencies and verify that all are in working condition.  
+
+### Test Configuration and Procedure
+
+* Since Netconf is deployed as part of Voltha ensemble, follow the 
+instructions from [Voltha](V01_voltha_bringup_deploy.md)
+
+
+### Pass/Fail Criteria (Installation Checkpoint)
+
+* The Pass/Fail criteria in [Voltha](V01_voltha_bringup_deploy.md) 
+applies here as well.
+ 
+* Verify Netconf server is up and listening on port 1830.  Issue the 
+following commands in the same Linux terminal:
+
+  ```
+  docker-compose -f compose/docker-compose-system-test.yml logs netconf | grep 1830
+  ```
+
+  Expected output are:
+  
+  ```
+  netconf_1 | <time> DEBUG    nc_server.start_ssh_server {port: 1830, event: starting, instance_id: compose_netconf_1}
+  netconf_1 | <time DEBUG    nc_server.start_ssh_server {port: 1830, event: started, instance_id: compose_netconf_1}
+
+  ```        
\ No newline at end of file
diff --git a/docs/manuals/user/labtests/N02_netconf_client_connect.md b/docs/manuals/user/labtests/N02_netconf_client_connect.md
new file mode 100644
index 0000000..fcc35c1
--- /dev/null
+++ b/docs/manuals/user/labtests/N02_netconf_client_connect.md
@@ -0,0 +1,74 @@
+## N2 - Connect to Netconf Server using a Netconf Browser
+
+### Test Objective
+
+* The purpose of this test is to verify the SSH connectivity between the 
+Netconf Browser and the Netconf Server
+
+### Test Configuration
+
+* Preparatory steps completed
+* Test-case N01 completed successfully
+* A netconf browser is available.  MG Soft Netconf Browser will be used in 
+the subsequent test procedures 
+
+### Test Procedure
+
+* Connect to the Netconf Server
+ 
+    * Open a Netconf Browser (MG Soft in our case).  
+    * From the ```File``` menu select ```connect``` option. 
+    * Use the following values when prompted:
+         ``` 
+            Host :  <server-ip-or-hostname> 
+            Port : 830
+            Username : voltha 
+         ```
+            
+         Do not select ```Public Key Authentication ```. While the server 
+         supports this authentication method the client key will need to be 
+         added to the Netconf server first.   For ease of the test procedure
+         we will only use username/password.  The picture below shows the 
+         connect window.
+         
+         ![Connect prompt](./netconf_login_prompt.png "Connect prompt")
+         
+    * Select ```connect``` from the pop-up window
+    * When prompted for the password, enter ```voltha```
+
+
+### Pass/Fail Criteria
+
+After successfully authenticating the user, the NETCONF session
+handshake occurs where the server and client exchange the Hello messages with
+the NETCONF capabilities they support. When the capabilities are successfully
+exchanged, the NETCONF session is established.
+
+* The status bar on the Netconf Browser should display :
+
+    ```
+    Connected To [SSH]voltha@<server-ip>:830 using NETCONF version 1.1
+    ```
+
+* Select the ```capabilities``` widget in the output window.  The following 
+server capabilities should be displayed:
+
+    ```
+    urn:ietf:params:netconf:base:1.0
+    urn:ietf:params:netconf:base:1.1
+    urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring
+    urn:opencord:params:xml:ns:voltha:ietf-adapter
+    urn:opencord:params:xml:ns:voltha:ietf-annotations
+    urn:opencord:params:xml:ns:voltha:ietf-any
+    urn:opencord:params:xml:ns:voltha:ietf-common
+    urn:opencord:params:xml:ns:voltha:ietf-device
+    urn:opencord:params:xml:ns:voltha:ietf-empty
+    urn:opencord:params:xml:ns:voltha:ietf-health
+    urn:opencord:params:xml:ns:voltha:ietf-logical_device
+    urn:opencord:params:xml:ns:voltha:ietf-meta
+    urn:opencord:params:xml:ns:voltha:ietf-openflow_13
+    urn:opencord:params:xml:ns:voltha:ietf-voltha
+    ```
+* Below is a picture of a connected Netconf Browser.
+
+    ![Connected](./netconf_connected.png "Connected")
diff --git a/docs/manuals/user/labtests/N03_netconf_client_retrieve_YANG_modules.md b/docs/manuals/user/labtests/N03_netconf_client_retrieve_YANG_modules.md
new file mode 100644
index 0000000..4535c2d
--- /dev/null
+++ b/docs/manuals/user/labtests/N03_netconf_client_retrieve_YANG_modules.md
@@ -0,0 +1,84 @@
+## N3 - Retrieve and Load the Voltha YANG Modules
+
+### Test Objective
+
+* The purpose of this test is to retrieve and load the voltha YANG modules 
+from the Netconf Server
+
+### Test Configuration
+
+* Preparatory steps completed
+* Test-cases N01 and N02 completed successfully
+* The Netconf client/server connection is up
+* No Voltha YANG modules has been loaded into MG Soft.  If the modules were 
+loaded from a prior test, then select ```Unload All Modules``` from the 
+```Module``` menu to clear them.
+
+### Test Procedure
+
+* Retrieve voltha schemas
+ 
+    * From the ```Tools``` menu select ```Get Schema...``` option. 
+    
+    A window will be displayed with a list of schemas.
+        
+     ![Schema List](./netconf_download_schema.png "Schema List")
+    
+    * On the displayed window:
+        * check the ```Download all``` box
+        * under ```options``` enter the location where the YANG modules 
+        will be download to (```Download To```)
+        * select the ```Download``` button
+        
+        
+   The YANG modules will be downloaded to the specified location.  If the 
+    modules were downloaded before then the user will be prompted to allow 
+    for overwrite.
+    
+   * After the download is complete, select the ```close``` button from 
+    the displayed window.
+    
+   The Netconf Browser will show the following screens.
+    
+   ![Downloaded modules](./netconf_modules_downloaded.png "Downloaded Modules")
+    
+    
+* Load the YANG Modules
+
+    * From the ```Module``` menu select ```Load Module...``` option. 
+    * On the displayed window:
+        * browse to the location where the YANG modules were downloaded
+        * select all the following files:
+        
+            ```
+                ietf-adapter@2016-11-15
+                ietf-annotations@2016-11-15
+                ietf-any@2016-11-15
+                ietf-common@2016-11-15
+                ietf-device@2016-11-15
+                ietf-empty@2016-11-15
+                ietf-health@2016-11-15
+                ietf-logical_device@2016-11-15
+                ietf-meta@2016-11-15
+                ietf-openflow_13@2016-11-15
+                ietf-voltha@2016-11-15
+            ```
+        * select the ```open button```
+        
+            ![Modules to load](./netconf_load_module.png "Modules to load")
+
+    The Netconf Browser will scan, validate and load the modules.  On 
+    successful loading, the modules will be displayed on the left 
+    window pane of the Browser:
+    
+    ![Loaded Modules](./netconf_modules_loaded.png "Loaded Modules")
+    
+   At this point you can view the content of the Voltha YANG Modules by 
+    browsing through them.
+
+
+
+### Pass/Fail Criteria
+
+This test case should be considered passing if all the demonstrated behavior
+works with similar (but not necessarily identical) output.
\ No newline at end of file
diff --git a/docs/manuals/user/labtests/N04_netconf_client_get_volthainstance.md b/docs/manuals/user/labtests/N04_netconf_client_get_volthainstance.md
new file mode 100644
index 0000000..7b1ffe6
--- /dev/null
+++ b/docs/manuals/user/labtests/N04_netconf_client_get_volthainstance.md
@@ -0,0 +1,182 @@
+## N4 - Get VolthaInstance info
+
+### Test Objective
+
+* The purpose of this test is to run a simple GET command that would 
+retrieve the ```VolthaInstance``` info
+
+### Test Configuration
+
+* Preparatory steps completed
+* Test-cases N01, N02 and N03 completed successfully
+* The Netconf client/server connection is up
+
+
+### Test Procedure
+
+* Execute the GET command on the VolthaInstance
+ 
+    * Expand the ```ietf-voltha@2016-11-15``` module on the left pane of 
+    the Netconf Browser 
+    * Select the ```VolthaInstance``` container
+    * Right click and select ```get(execute)``` command
+    
+
+### Pass/Fail Criteria
+
+Upon successful execution of the command, the similar output as below will be 
+displayed:
+
+* In the logs windows:
+
+    ```
+    Command 404d0eb7-4008-48b1-a0e5-10596a3a421f:15; get was successful (took 75 ms).
+   
+    ```
+* In the output pane, the ```Output XML``` would be similar to:
+
+    ```
+    <?xml version="1.0" encoding="utf-8"?>
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+          <VolthaInstance xmlns="urn:opencord:params:xml:ns:voltha:ietf-voltha">
+            <log_level>INFO</log_level>
+            <device_types>
+              <adapter>broadcom_onu</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>broadcom_onu</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <device_types>
+              <adapter>maple_olt</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>maple_olt</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <device_types>
+              <adapter>microsemi</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>microsemi</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <device_types>
+              <adapter>ponsim_olt</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>ponsim_olt</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <device_types>
+              <adapter>ponsim_onu</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>ponsim_onu</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <device_types>
+              <adapter>simulated_olt</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>simulated_olt</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <device_types>
+              <adapter>simulated_onu</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>simulated_onu</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <device_types>
+              <adapter>tibit_olt</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>tibit_olt</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <device_types>
+              <adapter>tibit_onu</adapter>
+              <accepts_bulk_flow_update>True</accepts_bulk_flow_update>
+              <id>tibit_onu</id>
+              <accepts_add_remove_flow_updates>False</accepts_add_remove_flow_updates>
+            </device_types>
+            <instance_id>compose_voltha_1</instance_id>
+            <version>0.9.0</version>
+            <health>
+              <state>HEALTHY</state>
+            </health>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.4</version>
+              <vendor>Voltha project</vendor>
+              <id>broadcom_onu</id>
+            </adapters>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.4</version>
+              <vendor>Voltha project</vendor>
+              <id>maple_olt</id>
+            </adapters>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.1</version>
+              <vendor>Microsemi / Celestica</vendor>
+              <id>microsemi</id>
+            </adapters>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.4</version>
+              <vendor>Voltha project</vendor>
+              <id>ponsim_olt</id>
+            </adapters>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.4</version>
+              <vendor>Voltha project</vendor>
+              <id>ponsim_onu</id>
+            </adapters>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.1</version>
+              <vendor>Voltha project</vendor>
+              <id>simulated_olt</id>
+            </adapters>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.1</version>
+              <vendor>Voltha project</vendor>
+              <id>simulated_onu</id>
+            </adapters>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.1</version>
+              <vendor>Tibit Communications Inc.</vendor>
+              <id>tibit_olt</id>
+            </adapters>
+            <adapters>
+              <config>
+                <log_level>INFO</log_level>
+              </config>
+              <version>0.1</version>
+              <vendor>Tibit Communications Inc.</vendor>
+              <id>tibit_onu</id>
+            </adapters>
+          </VolthaInstance>
+        </data>
+    ```
+    
+* In the output pane, the ```Output Tree``` would display a well formed tree
+ as per the YANG module definition.  
+ 
+    ![Get Voltha Instance](./netconf_get_volthainstance.png "Get VolthaInstance")
+
diff --git a/docs/manuals/user/labtests/N05_netconf_client_get_adapters.md b/docs/manuals/user/labtests/N05_netconf_client_get_adapters.md
new file mode 100644
index 0000000..ab99dbb
--- /dev/null
+++ b/docs/manuals/user/labtests/N05_netconf_client_get_adapters.md
@@ -0,0 +1,121 @@
+## N5 - Get List of Adapters
+
+### Test Objective
+
+* The purpose of this test is to retrieve the list of adapters
+
+### Test Configuration
+
+* Preparatory steps completed
+* Test-cases N01, N02 and N03 completed successfully
+* The Netconf client/server connection is up
+
+
+### Test Procedure
+
+* Execute the GET command on the VolthaInstance/adapters
+ 
+    * Expand the ```ietf-voltha@2016-11-15``` module on the left pane of 
+    the Netconf Browser 
+    * Expand the ```VolthaInstance``` container
+    * Select the ```adapters``` grouping
+    * Right click and select ```get(execute)``` command
+    
+
+### Pass/Fail Criteria
+
+Upon successful execution of the command, the similar output as below will be 
+displayed:
+
+* In the logs windows:
+
+    ```
+    Command 404d0eb7-4008-48b1-a0e5-10596a3a421f:17; get was successful (took 76 ms).
+   
+    ```
+* In the output pane, the ```Output XML``` would be similar to:
+
+    ```
+    <?xml version="1.0" encoding="utf-8"?>
+    <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+      <VolthaInstance xmlns="urn:opencord:params:xml:ns:voltha:ietf-voltha">
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.4</version>
+          <vendor>Voltha project</vendor>
+          <id>broadcom_onu</id>
+        </adapters>
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.4</version>
+          <vendor>Voltha project</vendor>
+          <id>maple_olt</id>
+        </adapters>
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.1</version>
+          <vendor>Microsemi / Celestica</vendor>
+          <id>microsemi</id>
+        </adapters>
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.4</version>
+          <vendor>Voltha project</vendor>
+          <id>ponsim_olt</id>
+        </adapters>
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.4</version>
+          <vendor>Voltha project</vendor>
+          <id>ponsim_onu</id>
+        </adapters>
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.1</version>
+          <vendor>Voltha project</vendor>
+          <id>simulated_olt</id>
+        </adapters>
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.1</version>
+          <vendor>Voltha project</vendor>
+          <id>simulated_onu</id>
+        </adapters>
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.1</version>
+          <vendor>Tibit Communications Inc.</vendor>
+          <id>tibit_olt</id>
+        </adapters>
+        <adapters>
+          <config>
+            <log_level>INFO</log_level>
+          </config>
+          <version>0.1</version>
+          <vendor>Tibit Communications Inc.</vendor>
+          <id>tibit_onu</id>
+        </adapters>
+      </VolthaInstance>
+    </data>      
+    ```
+    
+* In the output pane, the ```Output Tree``` would display a well formed tree
+ as per the YANG module definition
+
+    ![Get Adapters](./netconf_get_adapters.png "Get Adapters")
diff --git a/docs/manuals/user/labtests/P00_previews.md b/docs/manuals/user/labtests/P00_previews.md
new file mode 100644
index 0000000..2d3efcf
--- /dev/null
+++ b/docs/manuals/user/labtests/P00_previews.md
@@ -0,0 +1 @@
+# Previews of Upcoming Features
diff --git a/docs/manuals/user/labtests/P01_previews_kpi_collection.md b/docs/manuals/user/labtests/P01_previews_kpi_collection.md
new file mode 100644
index 0000000..22c5b62
--- /dev/null
+++ b/docs/manuals/user/labtests/P01_previews_kpi_collection.md
@@ -0,0 +1,3 @@
+## P1 - KPI Collection Through Voltha
+
+[Nathan to help when Tibit is submitting KPI metrics]
diff --git a/docs/manuals/user/labtests/P02_previews_yang_and_netconf.md b/docs/manuals/user/labtests/P02_previews_yang_and_netconf.md
new file mode 100644
index 0000000..da356e5
--- /dev/null
+++ b/docs/manuals/user/labtests/P02_previews_yang_and_netconf.md
@@ -0,0 +1,3 @@
+## P2 - Voltha's Netconf API and Yang Definitions
+
+[Khen to fill with content]
diff --git a/docs/manuals/user/labtests/P03_previews_scale_out.md b/docs/manuals/user/labtests/P03_previews_scale_out.md
new file mode 100644
index 0000000..eedfe2f
--- /dev/null
+++ b/docs/manuals/user/labtests/P03_previews_scale_out.md
@@ -0,0 +1 @@
+## P3 - Voltha's Partial Readiness for Scale-out
diff --git a/docs/manuals/user/labtests/README.md b/docs/manuals/user/labtests/README.md
new file mode 100644
index 0000000..d4e34d6
--- /dev/null
+++ b/docs/manuals/user/labtests/README.md
@@ -0,0 +1,57 @@
+# Overview
+
+## Purpose
+
+The purpose of this section is to assist in potential lab testing of Voltha
+and Voltha-certified PON hardware solutions.
+
+## Approach and Outline
+
+Test exercises are currently grouped based on scope. Although a few tests require nothing more
+that a single Linux server, most tests require a hardware installation, a
+"test POD," available.
+
+Specifically, we structure the test process as follows:
+
+* [Test POD and requirements](requirements.md)
+* [Preparations](preparations.md)
+* [Voltha deployment and related readiness tests](V00_voltha.md)
+* [Voltha operating on a software simulated PON network ("ponsim")](S00_ponsim_tests.md)
+  -- (optional) this is useful if no real PON hardware is available and it provides
+  a dataplane capable PON network which is simulated in software
+* [Voltha working with Broadcom Maple based OLT and Broadcom ONU(s)](M00_maple_olt_tests.md)
+* [Voltha working with Tibit MicroOLT and certified ONUs](T00_tibit_olt_tests.md)
+* [Additional tests show-casing upcoming features of Voltha based PON solutions](P00_previews.md)
+
+
+## Recommended Test Method
+
+Most of the activation steps desribed in the test procedure can be directly
+copy-pasted from the test document to the respecive test terminal window.
+
+For best outcome, we recommend bringing up this test documentation on-line.
+There are two ways of doing that:
+
+1. In a PDF document viewer
+1. (Recommended) In a Web browser in gitbook reading mode. To do this, you
+need access to the HTML-compiled version of this gitbook document. You can
+easily do it on a Voltha development host, following these steps:
+
+   ```
+   cd $VOLTHA_BASE
+   cd docs
+   make serve
+   ```
+
+   This will build the documentation into an HTML dir structure and will start
+   serving it up on the [http://localhost:4000](http://localhost:4000) URL.
+
+   If you need remote access from the browser to the server where the doc is
+   generated, Ctrl-C the ```make serve``` line, and instead do as follows:
+
+   ```
+   cd _book
+   python -m SimpleHTTPServer.py 4000
+   ```
+   You shall now be able to reach the docs using the http://localhost:4000
+   URL.
diff --git a/docs/manuals/user/labtests/S00_ponsim_tests.md b/docs/manuals/user/labtests/S00_ponsim_tests.md
new file mode 100644
index 0000000..545db80
--- /dev/null
+++ b/docs/manuals/user/labtests/S00_ponsim_tests.md
@@ -0,0 +1,8 @@
+# PONSIM Tests
+
+* [S1 - Preprovision and Activate OLT](S01_ponsim_tests_launch_and_activate.md)
+* [S2 - Launch ONOS](S02_ponsim_tests_onos.md)
+* [S3 - Verify EAPOL RG Authentication](S03_ponsim_eapol_auth.md)
+* [S4 - Verify DHCP Lookup](S04_ponsim_verify_dhcp.md)
+* [S5 - Verify Unicast Access](S05_ponsim_tests_unicast.md)
+* [S6 - Verify IGMP Handling](S06_ponsim_tests_multicast.md)	
diff --git a/docs/manuals/user/labtests/S00_ponsim_tests_original.md b/docs/manuals/user/labtests/S00_ponsim_tests_original.md
new file mode 100644
index 0000000..2fc79cf
--- /dev/null
+++ b/docs/manuals/user/labtests/S00_ponsim_tests_original.md
@@ -0,0 +1,19 @@
+# PONSIM Tests
+
+
+The tests are grouped into the following categories:
+
+Manual step-by-step provisioning:
+* [S1 - Preprovision and Activate OLT](S01_ponsim_tests_launch_and_activate.md)
+* [M3 - Manually Install EAPOL Forwarding Flows](S02_ponsim_tests_eapol_install.md)
+* [M4 - Test EAPOL In/Out Forwarding with OLT-OFTEST](S03_ponsim_tests_eapol_in_out.md)
+* [M5 - Manually Install All Forwarding Flows](S04_ponsim_tests_install_all_flows.md)
+* [M6 - Test unicast (Internet) access](S05_ponsim_tests_unicast.md)
+* [M7 - Test IGMP and multicast (Video) streams](S06_ponsim_tests_multicast.md)
+
+ONOS-base System Test
+* [M8 - Reset Manually Added Flows and Launch ONOS](M08_maple_olt_tests_start_onos.md)
+* [M9 - Verify RG Authentication Scenario](M09_maple_olt_tests_verify_authentication.md)
+* [M10 - Verify DHCP Lookup](M10_maple_olt_tests_verify_dhcp.md)
+* [M11 - Verify Unicast Access](M11_maple_olt_tests_verify_unicast.md)
+* [M12 - Verify Multicast Access](M12_maple_olt_tests_verify_multicast.md)
diff --git a/docs/manuals/user/labtests/S01_ponsim_tests_launch_and_activate.md b/docs/manuals/user/labtests/S01_ponsim_tests_launch_and_activate.md
new file mode 100644
index 0000000..20dd2b7
--- /dev/null
+++ b/docs/manuals/user/labtests/S01_ponsim_tests_launch_and_activate.md
@@ -0,0 +1,201 @@
+## S1 - Preprovision and Activate PONSIM Voltha
+
+### Test Objective
+
+* Purpose of this test is to verify new PONSIM OLT can be added and activated from VOLTHA, including;
+  * Correct simulated PON environment
+  * Logical device visible in VOLTHA CLI
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+
+### Test Procedure
+
+Start off by starting ponsim, make sure you do this as root as ponsim creates virtual interfaces and adds some of them into the _ponmgmt_ bridge on the system.
+
+```
+ sudo -s
+ . ./env.sh
+ ./ponsim/main.py -v
+```
+
+PONSIM should now be running; check this by doing the following.
+
+```
+ sudo netstat -uteap | grep python
+```
+
+and you should see;
+
+```
+tcp6       0      0 [::]:50060              [::]:*                  LISTEN      root       256217      19162/python
+```
+
+The above output also shows that PONSIM is waiting for gRPC connections which is what VOLTHA uses to talk to the simulated environment.
+
+Next, let's check that PONSIM initialized correctly and added the correct interfaces to the _ponmgmt_ bridge.
+
+```
+ brctl show ponmgmt
+```
+
+This should return the following output:
+
+```
+bridge name	bridge id		STP enabled	interfaces
+ponmgmt		8000.02429b8631d5	no		pon1_0
+							                  veth24f4706 (<- name may vary)
+```
+
+At this point we are ready to launch the voltha CLI and add the simulated OLT and ONU.
+
+```
+ ./cli/main.py -L
+         _ _   _            ___ _    ___
+__ _____| | |_| |_  __ _   / __| |  |_ _|
+\ V / _ \ |  _| ' \/ _` | | (__| |__ | |
+ \_/\___/_|\__|_||_\__,_|  \___|____|___|
+(to exit type quit or hit Ctrl-D)
+(voltha)
+```
+
+We have now a CLI to voltha, let's check if voltha is healthy. Enter the following at the CLI prompt.
+
+```
+  health
+```
+
+which should return;
+
+```
+{
+    "state": "HEALTHY"
+}
+```
+
+Now we can provision the PONSIM OLT and ONU in voltha. This is done in the voltha CLI.
+
+```
+preprovision_olt -t ponsim_olt -H 172.17.0.1:50060
+```
+
+This tells voltha to provision an olt of type ponsim_olt. You should see the following output.
+
+```
+success (device id = dece8e843be5)
+```
+
+The value of the device id may vary from run to run.
+
+Next, we need to activate the OLT in voltha.
+
+```
+activate_olt
+```
+
+which returns
+
+```
+activating dece8e843be5
+success (logical device id = 1)
+```
+
+This has now activated both a ponsim olt and onu as can be seem by running the following command at the CLI.
+
+```
+devices
+```
+
+and the output should be
+
+```
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+|           id |       type | root |    parent_id | vlan | admin_state | oper_status | connect_status | parent_port_no |    host_and_port | proxy_address.device_id | proxy_address.channel_id |
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+| dece8e843be5 | ponsim_olt | True |            1 |      |     ENABLED |      ACTIVE |      REACHABLE |                | 172.17.0.1:50060 |                         |                          |
+| 56a6fc8b859f | ponsim_onu | True | dece8e843be5 |  128 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      128 |
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+```
+
+Also we can observe similar output at the REST API. To use the REST, open a new shell to the server and run the following command.  Note: The port number needs to be the recorded port number from the VOLTHA installation. 
+
+```
+curl -s http://localhost:32863/api/v1/logical_devices  | jq .
+```
+
+and the output should be
+
+```
+{
+  "items": [
+    {
+      "datapath_id": "1",
+      "root_device_id": "dece8e843be5",
+      "switch_features": {
+        "auxiliary_id": 0,
+        "n_tables": 2,
+        "datapath_id": "0",
+        "capabilities": 15,
+        "n_buffers": 256
+      },
+      "id": "1",
+      "ports": [],
+      "desc": {
+        "dp_desc": "n/a",
+        "sw_desc": "simualted pon",
+        "hw_desc": "simualted pon",
+        "serial_num": "46da01fd646d4bb08140fc09b1bc4926",
+        "mfr_desc": "cord project"
+      }
+    }
+  ]
+}
+```
+
+Now that this OLT has not received any forwarding rules, it should drop all traffic. We can verify this by starting the RG emulator and observing that EAPOL authentication does not succeed. To do this start our RG docker container.
+
+
+```
+docker run --net=host --privileged --name RG -it cord/tester bash
+```
+
+this should land you in a command prompt that looks like
+
+```
+root@8358ef5cad0e:/#
+```
+
+and at this prompt issue the following command
+
+```
+/sbin/wpa_supplicant -Dwired -ipon1_128 -c /etc/wpa_supplicant/wpa_supplicant.conf
+```
+
+this should hang with the following output. You will need to interrupt it with Ctrl-C.
+
+```
+Successfully initialized wpa_supplicant
+eth1: Associated with 01:80:c2:00:00:03
+WMM AC: Missing IEs
+```
+
+and in the ponsim console you should see
+
+```
+20170113T053529.328 DEBUG    frameio.recv {iface: pon1_128sim, hex: 0180c20000037a61e2a73004888e01010000, len: 18, event: frame-received, instance_id: pon1}
+20170113T053529.329 DEBUG    frameio.recv {event: frame-dispatched, instance_id: pon1}
+20170113T053529.329 DEBUG    frameio._dispatch {frame: 0180c20000037a61e2a73004888e01010000, event: calling-publisher, instance_id: pon1}
+20170113T053529.330 DEBUG    realio.ingress {frame: 0180c20000037a61e2a73004888e01010000, port: 128, iface_name: pon1_128sim, event: ingress, instance_id: pon1}
+20170113T053529.330 DEBUG    ponsim.ingress {logical_port_no: 128, name: onu0, ingress_port: 2, event: ingress, instance_id: pon1}
+20170113T053529.330 DEBUG    ponsim.ingress {logical_port_no: 128, name: onu0, event: dropped, instance_id: pon1}
+```
+
+
+### Pass/Fail Criteria
+
+* OLT is successfully detected and activated on VOLTHA
+* Logical device and port list is created on VOLTHA
+* OLT and ONU should be visible in VOLTHA CLI
+* OLT and ONU should be visible in VOLTHA REST API
+* EAPOL Authentication should hang
diff --git a/docs/manuals/user/labtests/S02_ponsim_tests_eapol_install.md b/docs/manuals/user/labtests/S02_ponsim_tests_eapol_install.md
new file mode 100644
index 0000000..cc33ebc
--- /dev/null
+++ b/docs/manuals/user/labtests/S02_ponsim_tests_eapol_install.md
@@ -0,0 +1,9 @@
+## S2 - Manually Install EAPOL Forwarding Flows
+
+### Test Objective
+
+### Test Configuration
+
+### Test Procedure
+
+### Pass/Fail Criteria
diff --git a/docs/manuals/user/labtests/S02_ponsim_tests_onos.md b/docs/manuals/user/labtests/S02_ponsim_tests_onos.md
new file mode 100644
index 0000000..cf336f7
--- /dev/null
+++ b/docs/manuals/user/labtests/S02_ponsim_tests_onos.md
@@ -0,0 +1,102 @@
+## S2 - Attach the PONSIM OLT to ONOS
+
+### Test Objective
+
+Observe that ONOS has identified the OLT device and displays the correct number of ONU ports
+
+### Test Configuration
+
+* VOLTHA ensemble up and running.
+* PONSIM configured with an OLT with multiple ONUs
+
+### Test Procedure
+
+First, start the onos container.
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml up -d onos
+```
+
+this should output
+
+```
+Creating compose_onos_1
+```
+
+Make sure that ONOS is running
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml ps
+```
+
+which shows
+
+```
+Name             Command         State                                        Ports
+------------------------------------------------------------------------------------------------------------------------------
+compose_onos_1   ./bin/onos-service   Up      0.0.0.0:6653->6653/tcp, 0.0.0.0:8101->8101/tcp, 0.0.0.0:8181->8181/tcp, 9876/tcp
+```
+
+Now, let's login to ONOS.
+
+```
+sudo apt install sshpass # may not be necessary
+sshpass -p karaf ssh -o StrictHostKeyChecking=no -p 8101 karaf@localhost
+```
+
+this should land you at the ONOS prompt
+
+```
+Welcome to Open Network Operating System (ONOS)!
+     ____  _  ______  ____
+    / __ \/ |/ / __ \/ __/
+   / /_/ /    / /_/ /\ \
+   \____/_/|_/\____/___/
+
+Documentation: wiki.onosproject.org
+Tutorials:     tutorials.onosproject.org
+Mailing lists: lists.onosproject.org
+
+Come help out! Find out how at: contribute.onosproject.org
+
+Hit '<tab>' for a list of available commands
+and '[cmd] --help' for help on a specific command.
+Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown ONOS.
+
+onos>
+```
+
+Let's have a look at the devices that ONOS sees, to do this enter the following at the ONOS prompt.
+
+```
+devices
+```
+
+this will output the following
+
+```
+id=of:0000000000000001, available=true, role=MASTER, type=SWITCH, mfr=cord porject, hw=simualted pon, sw=simualted pon, serial=46da01fd646d4bb08140fc09b1bc4926, driver=pmc-olt, channelId=172.25.0.1:35866, managementAddress=172.25.0.1, name=of:0000000000000001, protocol=OF_13
+```
+
+next let's have a look at the ports that onos sees. Remember that ONOS sees the PON system as a logical device so ONU are represented as ports to ONOS. So let's see the ports in ONOS.
+
+```
+ports
+```
+
+which returns the following
+
+```
+id=of:0000000000000001, available=true, role=MASTER, type=SWITCH, mfr=cord porject, hw=simualted pon, sw=simualted pon, serial=46da01fd646d4bb08140fc09b1bc4926, driver=pmc-olt, channelId=172.25.0.1:35866, managementAddress=172.25.0.1, name=of:0000000000000001, protocol=OF_13
+  port=0, state=enabled, type=fiber, speed=0 , portName=nni, portMac=00:00:00:00:00:00
+  port=128, state=enabled, type=fiber, speed=0 , portName=uni-128, portMac=00:00:00:00:00:80
+  port=129, state=enabled, type=fiber, speed=0 , portName=uni-129, portMac=00:00:00:00:00:81
+  port=130, state=enabled, type=fiber, speed=0 , portName=uni-130, portMac=00:00:00:00:00:82
+```
+
+This correctly shows three ports. Yay!
+
+### Pass/Fail Criteria
+
+* OLT observed in ONOS
+* ONUs observed in ONOS as ports
diff --git a/docs/manuals/user/labtests/S03_ponsim_eapol_auth.md b/docs/manuals/user/labtests/S03_ponsim_eapol_auth.md
new file mode 100644
index 0000000..de685f7
--- /dev/null
+++ b/docs/manuals/user/labtests/S03_ponsim_eapol_auth.md
@@ -0,0 +1,43 @@
+## S3 - Verify EAPOL Remote Gateway Authentication
+
+### Test Objective
+
+* Purpose of this test is to verify that 802.1X EAPOL messages are forwarded to the ONOS from VOLTHA
+  * Correct simulated PON environment
+  * Logical device visible in VOLTHA CLI
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* Start the freeradius container
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml up -d freeradius
+```
+
+* PONSIM OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+Execute the following command 
+
+```
+/sbin/wpa_supplicant -Dwired -ipon1_128 -c /etc/wpa_supplicant/wpa_supplicant.conf
+```
+
+This should pass with the following output
+
+```
+Successfully initialized wpa_supplicant
+pon1_128: Associated with 01:80:c2:00:00:03
+WMM AC: Missing IEs
+pon1_128: CTRL-EVENT-EAP-STARTED EAP authentication started
+pon1_128: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=4
+pon1_128: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 4 (MD5) selected
+pon1_128: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
+```
+
+
+### Pass/Fail Criteria
+
+* EAPOL Authentication should pass
diff --git a/docs/manuals/user/labtests/S03_ponsim_tests_eapol_in_out.md b/docs/manuals/user/labtests/S03_ponsim_tests_eapol_in_out.md
new file mode 100644
index 0000000..dba961e
--- /dev/null
+++ b/docs/manuals/user/labtests/S03_ponsim_tests_eapol_in_out.md
@@ -0,0 +1,9 @@
+## S3 - Test EAPOL In/Out Forwarding with OLT-OFTEST
+
+### Test Objective
+
+### Test Configuration
+
+### Test Procedure
+
+### Pass/Fail Criteria
diff --git a/docs/manuals/user/labtests/S04_ponsim_tests_install_all_flows.md b/docs/manuals/user/labtests/S04_ponsim_tests_install_all_flows.md
new file mode 100644
index 0000000..c6edee9
--- /dev/null
+++ b/docs/manuals/user/labtests/S04_ponsim_tests_install_all_flows.md
@@ -0,0 +1,9 @@
+## S4 - Manually Install All Forwarding Flows
+
+### Test Objective
+
+### Test Configuration
+
+### Test Procedure
+
+### Pass/Fail Criteria
diff --git a/docs/manuals/user/labtests/S04_ponsim_verify_dhcp.md b/docs/manuals/user/labtests/S04_ponsim_verify_dhcp.md
new file mode 100644
index 0000000..6b4c282
--- /dev/null
+++ b/docs/manuals/user/labtests/S04_ponsim_verify_dhcp.md
@@ -0,0 +1,46 @@
+## S4 - Verify DHCP successfully obtains an IP address
+
+### Test Objective
+
+* Purpose of this test is to verify that the Dynamic Host Configuration Protocol (DHCP)
+  * Correct simulated PON environment
+  * Logical device visible in VOLTHA cli
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* Note: The DHCP server is contained within ONOS.
+* PONSIM OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+To start this procedure, execute the "ifconfig" command on the
+interface that will be getting assigned an IP address over DHCP and
+verify that IP address has not been assigned.
+
+```
+ifconfig pon1_128
+```
+
+Execute the following command 
+
+```
+dhclient pon1_128
+```
+
+Note: When the dhclient command completes a common error message is displayed as follows.  This mesage can safely be ignored. 
+
+```
+dhclient: cannot move '/etc/*.conf' to '/etc/resolve.conf'
+```
+
+Then verify that an IP address was dynamically assigned to your interface
+
+```
+ifconfig pon1_128
+```
+
+
+### Pass/Fail Criteria
+
+* IP address assigned to interface
diff --git a/docs/manuals/user/labtests/S05_ponsim_tests_unicast.md b/docs/manuals/user/labtests/S05_ponsim_tests_unicast.md
new file mode 100644
index 0000000..951d008
--- /dev/null
+++ b/docs/manuals/user/labtests/S05_ponsim_tests_unicast.md
@@ -0,0 +1,43 @@
+## S5 - Verify unicast traffic flow
+
+### Test Objective
+
+* Purpose of this test is to verify that unicast traffic flows through the system
+  * Correct simulated PON environment
+  * Logical device visible in VOLTHA cli
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* PONSIM OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+Execute the following command
+
+```
+ping -I pon1_128 1.2.3.4
+```
+
+Meanwhile tcpdump on the host machine on pon1_0.
+
+```
+sudo tcpdump -nei pon1_0
+```
+
+which will output
+
+```
+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+listening on pon1_0, link-type EN10MB (Ethernet), capture size 262144 bytes
+13:53:44.328260 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:45.322475 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:46.322725 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:47.325610 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:48.322729 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:49.322517 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+```
+
+### Pass/Fail Criteria
+
+Ping completes successfully
diff --git a/docs/manuals/user/labtests/S06_ponsim_tests_multicast.md b/docs/manuals/user/labtests/S06_ponsim_tests_multicast.md
new file mode 100644
index 0000000..d1f6fb6
--- /dev/null
+++ b/docs/manuals/user/labtests/S06_ponsim_tests_multicast.md
@@ -0,0 +1,177 @@
+## S6 - Test IGMP and multicast (Video) streams
+
+### Test Objective
+
+Verify that VOLTHA punts IGMP packets to ONOS and that ONOS provisions the right multicast rules
+
+### Test Configuration
+
+* VOLTHA ensemble up and running.
+* PONSIM configured with an OLT with multiple ONUs
+* An authenticated RG
+
+### Test Procedure
+
+At this point ONOS should show the following rules:
+
+```
+deviceId=of:0000000000000001, flowRuleCount=7
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:128, ETH_TYPE:ipv4, IP_PROTO:2], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, ETH_TYPE:eapol], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:0, METADATA:80, VLAN_VID:1000], treatment=[immediate=[VLAN_POP:unknown], transition=TABLE:1]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, VLAN_VID:0], treatment=[immediate=[VLAN_ID:128], transition=TABLE:1]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, ETH_TYPE:ipv4, IP_PROTO:17, UDP_SRC:68, UDP_DST:67], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=1, priority=1000, selector=[IN_PORT:0, VLAN_VID:128], treatment=[immediate=[VLAN_POP:unknown, OUTPUT:128]]
+    ADDED, bytes=0, packets=0, table=1, priority=1000, selector=[IN_PORT:128, VLAN_VID:128], treatment=[immediate=[VLAN_PUSH:vlan, VLAN_ID:1000, OUTPUT:0]]
+```
+
+So now let's send an IGMP packet from the RG up the ONU. To do this run the following in the RG container.
+
+```
+igmp.py -j -i pon1_128 -m 229.0.0.1
+```
+
+this will return
+
+```
+.
+Sent 1 packets.
+```
+
+which indicates that one igmp packet has been sent.
+
+Let us now check the state in ONOS, starting with the group information. Run the following in the ONOS prompt.
+
+```
+groups
+```
+
+which returns
+
+```
+deviceId=of:0000000000000001, groupCount=1
+   id=0x1, state=ADDED, type=ALL, bytes=0, packets=0, appId=org.onosproject.cordmcast
+   id=0x1, bucket=1, bytes=0, packets=0, actions=[VLAN_POP:unknown, OUTPUT:128]
+```
+
+This shows that the a group was installed that forward packets to the ONU which sent the igmp.
+
+For a group to be useful a flow must point to this group. So let's check in ONOS whether a flow exists.
+
+```
+flows -s
+```
+
+and find a flow which looks like
+
+```
+ADDED, bytes=0, packets=0, table=0, priority=500, selector=[IN_PORT:0, ETH_TYPE:ipv4, VLAN_VID:140, IPV4_DST:229.0.0.1/32], treatment=[immediate=[GROUP:0x1]]
+```
+
+This indicates that a multicast traffic with destination ip 229.0.0.1 should be handled by group 1.
+
+Now let's check whether we find this state in the logical device in VOLTHA. Let's run the following in the VOLTHA CLI.
+
+```
+logical_device
+flows
+```
+
+which will return
+
+```
+Logical Device 1 (type: n/a)
+Flows (10):
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+| table_id | priority |    cookie | in_port | vlan_vid | eth_type | ip_proto |  ipv4_dst | udp_src | udp_dst | metadata | set_vlan_vid | pop_vlan | push_vlan | group |     output | goto-table |
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+|        0 |     1000 | 242068... |     128 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |     1000 | 242068... |     129 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |     1000 | 242068... |     130 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |    10000 | 242068... |     128 |          |      800 |        2 |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        1 |     1000 | 242068... |       0 |      128 |          |          |           |         |         |          |              |      Yes |           |       |        128 |            |
+|        0 |     1000 | 242068... |       0 |     1000 |          |          |           |         |         |      128 |              |      Yes |           |       |            |          1 |
+|        1 |     1000 | 242068... |     128 |      128 |          |          |           |         |         |          |         1000 |          |      8100 |       |          0 |            |
+|        0 |     1000 | 242068... |     128 |        0 |          |          |           |         |         |          |          128 |          |           |       |            |          1 |
+|        0 |     1000 | 242068... |     128 |          |      800 |       17 |           |      68 |      67 |          |              |          |           |       | CONTROLLER |            |
+|        0 |      500 | 267401... |       0 |      140 |      800 |          | 229.0.0.1 |         |         |          |              |          |           |     1 |            |            |
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+```
+
+and we can see a rule with 229.0.0.1 which point to group 1.
+
+Let's now look at the physical device level. Still in the Voltha CLI run the following.
+
+```
+devices
+```
+
+this returns
+
+```
+Devices:
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+|           id |       type | root |    parent_id | vlan | admin_state | oper_status | connect_status | parent_port_no |    host_and_port | proxy_address.device_id | proxy_address.channel_id |
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+| dece8e843be5 | ponsim_olt | True |            1 |      |     ENABLED |      ACTIVE |      REACHABLE |                | 172.17.0.1:50060 |                         |                          |
+| 56a6fc8b859f | ponsim_onu | True | dece8e843be5 |  128 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      128 |
+| b40cae50dcf7 | ponsim_onu | True | dece8e843be5 |  129 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      129 |
+| d47b951c3fd2 | ponsim_onu | True | dece8e843be5 |  130 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      130 |
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+```
+
+Identify the ONU which sent the IGMP packet (128) and copy its device id (56a6fc8b859f in this case). Next run the following in the Voltha CLI.
+
+```
+device 56a6fc8b859f
+flows
+```
+
+which returns
+
+```
+Device 56a6fc8b859f (type: ponsim_onu)
+Flows (6):
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+| table_id | priority |    cookie | in_port | vlan_vid | eth_type |  ipv4_dst | set_vlan_vid | pop_vlan | push_vlan | output |
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+|        0 |      500 |         0 |       2 |        0 |          |           |          128 |          |           |      1 |
+|        0 |      500 |         0 |       2 | untagged |          |           |          128 |          |      8100 |      1 |
+|        0 |      500 |         0 |       1 |      128 |          |           |            0 |          |           |      2 |
+|        0 |     1000 | 242068... |       1 |      128 |          |           |              |      Yes |           |      2 |
+|        0 |     1000 | 242068... |       2 |        0 |          |           |          128 |          |           |      1 |
+|        0 |      500 | 267401... |       1 |          |      800 | 229.0.0.1 |              |          |           |      2 |
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+```
+
+And we can see that 229.0.0.1 outputs the packet to the right port.
+
+Let us now try this out for real with a real packet. Let's first build a multicast frame and send it down the nni port, we can do this with scapy.
+
+```
+sudo scapy
+mc = Ether(src="00:00:00:00:00:01")/Dot1Q(vlan=140)/IP(dst="229.0.0.1", proto=17)
+sendp(mc, iface="pon1_0")
+```
+
+Meanwhile run tcpdump in the RG container:
+
+```
+tcpdump -nei pon1_128
+```
+
+in he RG container while tcpdump'ing we should see the following output.
+
+```
+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+listening on pon1_128, link-type EN10MB (Ethernet), capture size 262144 bytes
+08:09:43.004776 00:00:00:00:00:01 > 01:00:5e:00:00:01, ethertype IPv4 (0x0800), length 34: 10.0.2.15 > 229.0.0.1: [|udp]
+```
+
+Woohoo!
+
+### Pass/Fail Criteria
+
+* Flows and groups installed in ONOS
+* Flows and groups installed in Voltha
+* Multicast packet forwarded down to the correct ONU port.
diff --git a/docs/manuals/user/labtests/S07_ponsim_tests_verify_multicast.md b/docs/manuals/user/labtests/S07_ponsim_tests_verify_multicast.md
new file mode 100644
index 0000000..7edc551
--- /dev/null
+++ b/docs/manuals/user/labtests/S07_ponsim_tests_verify_multicast.md
@@ -0,0 +1 @@
+# S7 - Verify Multicast Access
diff --git a/docs/manuals/user/labtests/T00_tibit_olt_tests.md b/docs/manuals/user/labtests/T00_tibit_olt_tests.md
new file mode 100644
index 0000000..23de6ca
--- /dev/null
+++ b/docs/manuals/user/labtests/T00_tibit_olt_tests.md
@@ -0,0 +1,11 @@
+# Tibit OLT Tests
+
+These tests assume access to a Tibit-based OLT PON system in the test
+POD.
+
+* [T1 - Preprovision and Activate OLT and ONU](T01_tibit_olt_tests_activate_olt.md)
+* [T2 - Launch ONOS](T02_tibit_olt_tests_onos.md)
+* [T3 - Verify EAPOL RG Authentication](T03_tibit_olt_eapol_auth.md)
+* [T4 - Verify DHCP Lookup](T04_tibit_verify_dhcp.md)
+* [T5 - Verify Unicast Access](T05_tibit_tests_unicast.md)
+* [T6 - Verify IGMP Handling](T06_tibit_tests_multicast.md)	
diff --git a/docs/manuals/user/labtests/T01_tibit_olt_tests_activate_olt.md b/docs/manuals/user/labtests/T01_tibit_olt_tests_activate_olt.md
new file mode 100644
index 0000000..f72809e
--- /dev/null
+++ b/docs/manuals/user/labtests/T01_tibit_olt_tests_activate_olt.md
@@ -0,0 +1,125 @@
+## T1 - Preprovision and Activate OLT
+
+### Test Objective
+
+* Purpose of this test is to verify new OLT can be added and activated from VOLTHA
+* VOLTHA will connect with the OLT physical device and create a
+  logical device with initial ports in its data store
+* VOLTHA will send Event notifications to ONOS and PON Manager for the newly added OLT
+
+### Test Configuration
+
+* The test setup is as shown in earlier sections
+* Tibit OLT should be reachable from VOLTHA on VLAN 4090
+* Start the VOLTHA CLI
+
+**Step 1: If not yet running, launch the Voltha CLI:**
+
+```
+cd $VOLTHA_BASE
+./cli/main.py -L
+```
+
+```
+         _ _   _            ___ _    ___
+__ _____| | |_| |_  __ _   / __| |  |_ _|
+\ V / _ \ |  _| ' \/ _` | | (__| |__ | |
+ \_/\___/_|\__|_||_\__,_|  \___|____|___|
+(to exit type quit or hit Ctrl-D)
+(voltha)
+```
+
+### Test Procedure
+
+* Issue CLI commands in the VOLTHA CLI to simulate an “Add-OLT device”
+  message coming from the PON Manager to VOLTHA
+* Note: Please refer to the label for "MAC 0" printed on the side of
+  the Tibit evaluation device to record the MAC address of the OLT
+
+```
+preprovision_olt --device-type tibit_olt --mac-address 00:0c:e2:31:40:00
+```
+
+* If the adapter for the device is found, VOLTHA will create the
+  device in the device table. Executing the following command will
+  display known devices
+
+```
+devices
+```
+
+* The output should appear as follows
+
+```
+Devices:
++--------------+-----------+-------------------+----------------+
+|           id |      type |       mac_address |    admin_state |
++--------------+-----------+-------------------+----------------+
+| 4dfe7799ae21 | tibit_olt | 00:0c:e2:31:40:00 | PREPROVISIONED |
++--------------+-----------+-------------------+----------------+
+```
+
+* To activate the OLT, execute the following command
+
+```
+activate_olt
+```
+* VOLTHA should initiate a connection and activation request to the Tibit OLT
+* VOLHA will create the logical OpenFlow device and ports and notify ONOS
+* VOLTHA will send an OLT-Activated event notification to the PON Manager 
+* VOLTHA will also query the OLT for the number of ONUs connected and attempt
+to activate all ONUs
+* Verify the OLT and ONU status on device console with the following command
+
+```
+devices
+```
+* The output should appear similar to the following
+
+```
+Devices:
++--------------+-----------+------+------+-------------------+-------------+-------------+...
+|           id |      type | root | vlan |       mac_address | admin_state | oper_status |...
++--------------+-----------+------+------+-------------------+-------------+-------------+...
+| ad2360e71312 | tibit_olt | True |      | 00:0c:e2:31:40:00 |     ENABLED |      ACTIVE |...
+| 252bceddc720 | tibit_onu |      |  208 | 00:0c:e2:22:08:00 |     ENABLED |      ACTIVE |...
++--------------+-----------+------+------+-------------------+-------------+-------------+...
+```
+
+Now that this OLT has not received any forwarding rules, it should
+drop all traffic. We can verify this by starting the RG emulator and
+observing that EAPOL authentication does not succeed. To do this start
+our RG docker container.
+
+```
+docker run --net=host --privileged --name RG -it cord/tester bash
+```
+
+this should land you in a command prompt that looks like
+
+```
+root@8358ef5cad0e:/#
+```
+
+and at this prompt issue the following command
+
+```
+/sbin/wpa_supplicant -Dwired -ieno4.2023 -c /etc/wpa_supplicant/wpa_supplicant.conf
+```
+
+this should hang with the following output. You will need to interrupt it with Ctrl-C.
+
+```
+Successfully initialized wpa_supplicant
+eth1: Associated with 01:80:c2:00:00:03
+WMM AC: Missing IEs
+```
+
+### Pass/Fail Criteria
+
+* OLT / ONUs status can be seen from Device Console
+* Confirm OLT and ONUs have "oper_status" of ACTIVE
+* ONUs should continue to drop all the traffic coming from RG 
+
+
+
diff --git a/docs/manuals/user/labtests/T02_tibit_olt_tests_onos.md b/docs/manuals/user/labtests/T02_tibit_olt_tests_onos.md
new file mode 100644
index 0000000..a362ad8
--- /dev/null
+++ b/docs/manuals/user/labtests/T02_tibit_olt_tests_onos.md
@@ -0,0 +1,108 @@
+## T2 - Attach the Tibit OLT to ONOS
+
+### Test Objective
+
+Observe that ONOS has identified the OLT device and displays the correct number of ONU ports
+
+### Test Configuration
+
+* VOLTHA ensemble up and running.
+* Tibit configured with an OLT and one or more ONUs
+
+### Test Procedure
+
+First, start the onos container.
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml up -d onos
+```
+
+this should output
+
+```
+Creating compose_onos_1
+```
+
+Note: You may see a docker compose warning that states the following.  This warning can be ignored.
+
+```
+WARNING: Found orphan containers (compose_shovel_1, compose_registrator_1, compose_kafka_1, ...)
+```
+
+Make sure that ONOS is running
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml ps
+```
+
+which shows
+
+```
+Name             Command         State                                        Ports
+------------------------------------------------------------------------------------------------------------------------------
+compose_onos_1   ./bin/onos-service   Up      0.0.0.0:6653->6653/tcp, 0.0.0.0:8101->8101/tcp, 0.0.0.0:8181->8181/tcp, 9876/tcp
+```
+
+Now, let's login to ONOS.
+
+```
+sudo apt install sshpass # may not be necessary
+sshpass -p karaf ssh -o StrictHostKeyChecking=no -p 8101 karaf@localhost
+```
+
+this should land you at the ONOS prompt
+
+```
+Welcome to Open Network Operating System (ONOS)!
+     ____  _  ______  ____
+    / __ \/ |/ / __ \/ __/
+   / /_/ /    / /_/ /\ \
+   \____/_/|_/\____/___/
+
+Documentation: wiki.onosproject.org
+Tutorials:     tutorials.onosproject.org
+Mailing lists: lists.onosproject.org
+
+Come help out! Find out how at: contribute.onosproject.org
+
+Hit '<tab>' for a list of available commands
+and '[cmd] --help' for help on a specific command.
+Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown ONOS.
+
+onos>
+```
+
+Let's have a look at the devices that ONOS sees, to do this enter the following at the ONOS prompt.
+
+```
+devices
+```
+
+this will output the following
+
+```
+id=of:0000000000000001, available=true, role=MASTER, type=SWITCH, mfr=cord porject, hw=simualted pon, sw=simualted pon, serial=46da01fd646d4bb08140fc09b1bc4926, driver=pmc-olt, channelId=172.25.0.1:35866, managementAddress=172.25.0.1, name=of:0000000000000001, protocol=OF_13
+```
+
+next let's have a look at the ports that onos sees. Remember that ONOS sees the PON system as a logical device so ONU are represented as ports to ONOS. So let's see the ports in ONOS.
+
+```
+ports
+```
+
+which returns the following
+
+```
+id=of:0000000000000001, available=true, role=MASTER, type=SWITCH, mfr=cord porject, hw=simualted pon, sw=simualted pon, serial=46da01fd646d4bb08140fc09b1bc4926, driver=pmc-olt, channelId=172.25.0.1:35866, managementAddress=172.25.0.1, name=of:0000000000000001, protocol=OF_13
+  port=0, state=enabled, type=fiber, speed=0 , portName=nni, portMac=00:00:00:00:00:00
+  port=128, state=enabled, type=fiber, speed=0 , portName=uni-128, portMac=00:00:00:00:00:80
+  port=129, state=enabled, type=fiber, speed=0 , portName=uni-129, portMac=00:00:00:00:00:81
+  port=130, state=enabled, type=fiber, speed=0 , portName=uni-130, portMac=00:00:00:00:00:82
+```
+
+This correctly shows three ports. Yay!
+
+### Pass/Fail Criteria
+
+* OLT observed in ONOS
+* ONUs observed in ONOS as ports
diff --git a/docs/manuals/user/labtests/T03_tibit_olt_eapol_auth.md b/docs/manuals/user/labtests/T03_tibit_olt_eapol_auth.md
new file mode 100644
index 0000000..64da5b9
--- /dev/null
+++ b/docs/manuals/user/labtests/T03_tibit_olt_eapol_auth.md
@@ -0,0 +1,64 @@
+## T3 - Verify EAPOL Remote Gateway Authentication
+
+### Test Objective
+
+* Purpose of this test is to verify that 802.1X EAPOL messages are forwarded to the ONOS from VOLTHA
+  * Correct Tibit OLT and ONU PON environment
+  * Logical device visible in VOLTHA CLI
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* Start the freeradius container
+
+```
+docker-compose -f compose/docker-compose-auth-test.yml up -d freeradius
+```
+
+* Tibit OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+Now that this OLT is ACTIVE in VOLTHA, it should forward EAPOL
+traffic. We can verify this by starting the RG emulator and observing
+that EAPOL authentication does not succeed. To do this start our RG
+docker container.
+
+```
+docker run --net=host --privileged --name RG -it cord/tester bash
+```
+
+this should land you in a command prompt that looks like
+
+```
+root@8358ef5cad0e:/#
+```
+
+and at this prompt issue the following command
+
+```
+/sbin/wpa_supplicant -Dwired -iens9f1 -c /etc/wpa_supplicant/wpa_supplicant.conf
+```
+
+This should pass with the following output
+
+```
+Successfully initialized wpa_supplicant
+ens9f1: Associated with 01:80:c2:00:00:03
+WMM AC: Missing IEs
+ens9f1: CTRL-EVENT-EAP-STARTED EAP authentication started
+ens9f1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=4
+ens9f1: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 4 (MD5) selected
+ens9f1: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
+```
+
+Note: The wpa_supplicant application will not terminate on its own.  After the EAP authentication has completed, it is appropriate to terminate the wpa_supplicant application.
+
+```
+Ctrl-C
+```
+
+
+### Pass/Fail Criteria
+
+* EAPOL Authentication should pass
diff --git a/docs/manuals/user/labtests/T04_tibit_verify_dhcp.md b/docs/manuals/user/labtests/T04_tibit_verify_dhcp.md
new file mode 100644
index 0000000..7cd3a9d
--- /dev/null
+++ b/docs/manuals/user/labtests/T04_tibit_verify_dhcp.md
@@ -0,0 +1,42 @@
+## T4 - Verify DHCP successfully obtains an IP address
+
+### Test Objective
+
+* Purpose of this test is to verify that the Dynamic Host Configuration Protocol (DHCP)
+  * Correct Tibit OLT and ONU PON environment
+  * Logical device visible in VOLTHA CLI
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* Note: The DHCP server is contained within ONOS.
+* Tibit OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+To start this procedure, execute the "ifconfig" command on the interface that will be getting assigned an IP address over DHCP and verify that IP address has not been assigned. 
+
+```
+ifconfig ens9f1
+```
+
+Next, execute the following command to obtain an IP address from ONOS.
+
+```
+dhclient ens9f1
+```
+Note: When the dhclient command completes a common error message is displayed as follows.  This mesage can safely be ignored. 
+
+```
+mv: cannot move '/etc/resolv.conf.dhclient-new*' to '/etc/resolve.conf'
+```
+
+Then verify that an IP address was dynamically assigned to your interface
+
+```
+ifconfig ens9f1
+```
+
+### Pass/Fail Criteria
+
+* IP address assigned to interface
diff --git a/docs/manuals/user/labtests/T05_tibit_tests_unicast.md b/docs/manuals/user/labtests/T05_tibit_tests_unicast.md
new file mode 100644
index 0000000..e95b4f5
--- /dev/null
+++ b/docs/manuals/user/labtests/T05_tibit_tests_unicast.md
@@ -0,0 +1,43 @@
+## T5 - Verify unicast traffic flow
+
+### Test Objective
+
+* Purpose of this test is to verify that unicast traffic flows through the system
+  * Correct Tibit PON environment
+  * Logical device visible in VOLTHA cli
+
+### Test Configuration
+
+* VOLTHA ensemble running as per [deployment instructions](V01_voltha_bringup_deploy.md).
+* Tibit OLT and ONUs registered as ACTIVE in VOLTHA
+
+### Test Procedure
+
+Execute the following command from the RG side
+
+```
+ping -I ens9f1 1.2.3.4
+```
+
+Meanwhile tcpdump on the VOLTHA server.
+
+```
+sudo tcpdump -nei ens9f0
+```
+
+which will output
+
+```
+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+listening on pon1_0, link-type EN10MB (Ethernet), capture size 262144 bytes
+13:53:44.328260 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:45.322475 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:46.322725 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:47.325610 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:48.322729 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+13:53:49.322517 06:0c:49:94:35:7e > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 50: vlan 1000, p 0, ethertype 802.1Q, vlan 128, p 0, ethertype ARP, Request who-has 1.2.3.4 tell 10.1.11.63, length 28
+```
+
+### Pass/Fail Criteria
+
+Ping completes successfully
diff --git a/docs/manuals/user/labtests/T06_tibit_tests_multicast.md b/docs/manuals/user/labtests/T06_tibit_tests_multicast.md
new file mode 100644
index 0000000..8593a4d
--- /dev/null
+++ b/docs/manuals/user/labtests/T06_tibit_tests_multicast.md
@@ -0,0 +1,189 @@
+## T6 - Test IGMP and multicast (Video) streams
+
+### Test Objective
+
+Verify that VOLTHA punts IGMP packets to ONOS and that ONOS provisions the right multicast rules
+
+### Test Configuration
+
+* VOLTHA ensemble up and running.
+* Tibit configured with an OLT with one or more ONUs
+* An authenticated RG
+
+### Test Procedure
+
+At this point ONOS should show the following rules.  Type flows at the 'onos>' prompt comfirm.
+
+```
+flows
+```
+
+```
+deviceId=of:0000000000000001, flowRuleCount=7
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:128, ETH_TYPE:ipv4, IP_PROTO:2], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, ETH_TYPE:eapol], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:0, METADATA:80, VLAN_VID:1000], treatment=[immediate=[VLAN_POP:unknown], transition=TABLE:1]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:129, ETH_TYPE:eapol], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, VLAN_VID:0], treatment=[immediate=[VLAN_ID:128], transition=TABLE:1]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:130, ETH_TYPE:eapol], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:128, ETH_TYPE:ipv4, IP_PROTO:17, UDP_SRC:68, UDP_DST:67], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=1, priority=1000, selector=[IN_PORT:0, VLAN_VID:128], treatment=[immediate=[VLAN_POP:unknown, OUTPUT:128]]
+    ADDED, bytes=0, packets=0, table=1, priority=1000, selector=[IN_PORT:128, VLAN_VID:128], treatment=[immediate=[VLAN_PUSH:vlan, VLAN_ID:1000, OUTPUT:0]]
+```
+
+Before starting the IGMP test, execute the 'groups' command within ONOS to verify that no groups have been created.
+
+```
+groups
+```
+
+Now let's send an IGMP packet from the RG up the ONU. To do this run the following in the RG container.
+
+```
+igmp.py -j -i ens9f1 -m 229.0.0.1
+```
+
+this will return
+
+```
+.
+Sent 1 packets.
+```
+
+which indicates that one igmp packet has been sent.
+
+Let us now check the state in ONOS, starting with the group information. Run the following in the ONOS prompt.
+
+```
+groups
+```
+
+which returns
+
+```
+deviceId=of:0000000000000001, groupCount=1
+   id=0x1, state=ADDED, type=ALL, bytes=0, packets=0, appId=org.onosproject.cordmcast
+   id=0x1, bucket=1, bytes=0, packets=0, actions=[VLAN_POP:unknown, OUTPUT:128]
+```
+
+This shows that the a group was installed that forward packets to the ONU which sent the igmp.
+
+For a group to be useful a flow must point to this group. So let's check in ONOS whether a flow exists.
+
+```
+flows -s
+```
+
+and find a flow which looks like
+
+```
+ADDED, bytes=0, packets=0, table=0, priority=500, selector=[IN_PORT:0, ETH_TYPE:ipv4, VLAN_VID:140, IPV4_DST:229.0.0.1/32], treatment=[immediate=[GROUP:0x1]]
+```
+
+This indicates that a multicast traffic with destination ip 229.0.0.1 should be handled by group 1.
+
+Now let's check whether we find this state in the logical device in VOLTHA. Let's run the following in the VOLTHA CLI.
+
+```
+logical_device
+flows
+```
+
+which will return
+
+```
+Logical Device 1 (type: n/a)
+Flows (10):
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+| table_id | priority |    cookie | in_port | vlan_vid | eth_type | ip_proto |  ipv4_dst | udp_src | udp_dst | metadata | set_vlan_vid | pop_vlan | push_vlan | group |     output | goto-table |
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+|        0 |     1000 | 242068... |     128 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |     1000 | 242068... |     129 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |     1000 | 242068... |     130 |          |     888E |          |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |    10000 | 242068... |     128 |          |      800 |        2 |           |         |         |          |              |          |           |       | CONTROLLER |            |
+|        1 |     1000 | 242068... |       0 |      128 |          |          |           |         |         |          |              |      Yes |           |       |        128 |            |
+|        0 |     1000 | 242068... |       0 |     1000 |          |          |           |         |         |      128 |              |      Yes |           |       |            |          1 |
+|        1 |     1000 | 242068... |     128 |      128 |          |          |           |         |         |          |         1000 |          |      8100 |       |          0 |            |
+|        0 |     1000 | 242068... |     128 |        0 |          |          |           |         |         |          |          128 |          |           |       |            |          1 |
+|        0 |     1000 | 242068... |     128 |          |      800 |       17 |           |      68 |      67 |          |              |          |           |       | CONTROLLER |            |
+|        0 |      500 | 267401... |       0 |      140 |      800 |          | 229.0.0.1 |         |         |          |              |          |           |     1 |            |            |
++----------+----------+-----------+---------+----------+----------+----------+-----------+---------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+```
+
+and we can see a rule with 229.0.0.1 which point to group 1.
+
+Let's now look at the physical device level. Still in the Voltha CLI run the following.
+
+```
+devices
+```
+
+this returns
+
+```
+Devices:
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+|           id |       type | root |    parent_id | vlan | admin_state | oper_status | connect_status | parent_port_no |    host_and_port | proxy_address.device_id | proxy_address.channel_id |
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+| dece8e843be5 | ponsim_olt | True |            1 |      |     ENABLED |      ACTIVE |      REACHABLE |                | 172.17.0.1:50060 |                         |                          |
+| 56a6fc8b859f | ponsim_onu | True | dece8e843be5 |  128 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      128 |
+| b40cae50dcf7 | ponsim_onu | True | dece8e843be5 |  129 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      129 |
+| d47b951c3fd2 | ponsim_onu | True | dece8e843be5 |  130 |     ENABLED |      ACTIVE |      REACHABLE |              1 |                  |            dece8e843be5 |                      130 |
++--------------+------------+------+--------------+------+-------------+-------------+----------------+----------------+------------------+-------------------------+--------------------------+
+```
+
+Identify the ONU which sent the IGMP packet (128) and copy its device id (56a6fc8b859f in this case). Next run the following in the Voltha CLI.
+
+```
+device 56a6fc8b859f
+flows
+```
+
+which returns
+
+```
+Device 56a6fc8b859f (type: ponsim_onu)
+Flows (6):
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+| table_id | priority |    cookie | in_port | vlan_vid | eth_type |  ipv4_dst | set_vlan_vid | pop_vlan | push_vlan | output |
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+|        0 |      500 |         0 |       2 |        0 |          |           |          128 |          |           |      1 |
+|        0 |      500 |         0 |       2 | untagged |          |           |          128 |          |      8100 |      1 |
+|        0 |      500 |         0 |       1 |      128 |          |           |            0 |          |           |      2 |
+|        0 |     1000 | 242068... |       1 |      128 |          |           |              |      Yes |           |      2 |
+|        0 |     1000 | 242068... |       2 |        0 |          |           |          128 |          |           |      1 |
+|        0 |      500 | 267401... |       1 |          |      800 | 229.0.0.1 |              |          |           |      2 |
++----------+----------+-----------+---------+----------+----------+-----------+--------------+----------+-----------+--------+
+```
+
+And we can see that 229.0.0.1 outputs the packet to the right port.
+
+Let us now try this out for real with a real packet. Let's first build a multicast frame on the server and send it down the nni port to the OLT, we can do this with scapy.
+
+```
+sudo scapy
+mc = Ether(src="00:00:00:00:00:01")/Dot1Q(vlan=140)/IP(dst="229.0.0.1", proto=17)
+sendp(mc, iface="ens9f0")
+```
+
+Meanwhile run tcpdump in the RG container:
+
+```
+tcpdump -nei ens9f1
+```
+
+in he RG container while tcpdump'ing we should see the following output.
+
+```
+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
+listening on eno2.2021, link-type EN10MB (Ethernet), capture size 262144 bytes
+08:09:43.004776 00:00:00:00:00:01 > 01:00:5e:00:00:01, ethertype IPv4 (0x0800), length 34: 10.0.2.15 > 229.0.0.1: [|udp]
+```
+
+Woohoo!
+
+### Pass/Fail Criteria
+
+* Flows and groups installed in ONOS
+* Flows and groups installed in Voltha
+* Multicast packet forwarded down to the correct ONU port.
diff --git a/docs/manuals/user/labtests/T09_tibit_olt_tests_verify_authentication.md b/docs/manuals/user/labtests/T09_tibit_olt_tests_verify_authentication.md
new file mode 100644
index 0000000..e0733e0
--- /dev/null
+++ b/docs/manuals/user/labtests/T09_tibit_olt_tests_verify_authentication.md
@@ -0,0 +1,32 @@
+## T9 - Verify RG Authentication Scenario
+
+### Test Objective
+
+* Purpose of this test is to verify RG authentication is successful with Radius / EAP method
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT should be reachable to VOLTHA over IP interface over VLAN 4090
+* Tibit OLT should be in active state on VOLTHA
+* Tibit ONU should be in active state on VOLTHA
+* EAPOL forwarding rule should be setup on OLT and ONU
+* Radius Server is in service and configured to authenticate RG
+* DHCP Server should be down
+
+### Test Procedure
+* Start EAP authentication process from RG by resetting RG.
+* RG should send EAP-Start message and verify it reaches VOLTHA/ONOS
+* EAP message exchange should happen between RG and VOLTHA/ONOS on Management VLAN 4091.
+* VOLTHA/ONOS will use 802.1x method to authenticate RG EAP Identity with Radius Server
+* Verify RG authentication is successful with EAP and 802.1x Radius methods
+* After successful RG authentication,
+* OLT/ONU should drop DHCP packets from RG
+* VOLTHA/ ONOS should send DHCP Forwarding Flow to OLT and ONU
+* VOLTHA/ ONOS should send Unicast Forwarding Flow to OLT and ONU
+* VOLTHA/ ONOS should send IGMP Forwarding Flow to OLT and ONU
+* OLT/ONU will be able to forward DHCP, Unicast and IGMP packets from RG 
+
+### Pass/Fail Criteria
+
+* RG is successfully authenticated based on its credentials in Radius Server
+* DHCP, Unicast and IGMP forwarding flows are setup on OLT/ONU
diff --git a/docs/manuals/user/labtests/T10_tibit_olt_tests_verify_dhcp.md b/docs/manuals/user/labtests/T10_tibit_olt_tests_verify_dhcp.md
new file mode 100644
index 0000000..b438191
--- /dev/null
+++ b/docs/manuals/user/labtests/T10_tibit_olt_tests_verify_dhcp.md
@@ -0,0 +1,26 @@
+## T10 - Verify DHCP Lookup
+
+### Test Objective
+
+* Purpose of this test is to verify RG can successfully setup DHCP session
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT should be reachable to VOLTHA over IP interface over VLAN 4090
+* Tibit OLT should be in active state on VOLTHA
+* Tibit ONU should be in active state on VOLTHA
+* RG is authenticated with Radius
+* DHCP, Unicast and IGMP forwarding flows are setup on OLT and ONU
+* DHCP Server is running
+
+### Test Procedure
+* Enable DHCP on RG by either resetting or enable/disable port
+* DHCP Request from should be forwarded by VOLTHA/ONOS to DHCP Server
+* OLT will send and receive DHCP Messages with SVID 4091 towards VOLTHA/ONOS
+* DHCP should succeed and RG should have IP address
+* Verify ARP, PING and Traceroute succeeds from RG to DHCP server (Not planned on it will be additional step)
+
+### Pass/Fail Criteria
+* RG can receive IP address from DHCP server
+* ARP, Ping and Traceroute is successful between RG and DHCP server
+
diff --git a/docs/manuals/user/labtests/T11_tibit_olt_tests_verify_unicast.md b/docs/manuals/user/labtests/T11_tibit_olt_tests_verify_unicast.md
new file mode 100644
index 0000000..172b63c
--- /dev/null
+++ b/docs/manuals/user/labtests/T11_tibit_olt_tests_verify_unicast.md
@@ -0,0 +1,21 @@
+## T11 - Verify Unicast Access
+
+### Test Objective
+
+* Purpose of this test is to verify OLT and ONU can pass double tagged traffic 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, configure double tagged traffic in downstream direction (1025,1025)
+* On Spirent, send untagged traffic in upstream direction 
+* On the both ports capture traffic and verify the stream 
+
+### Pass/Fail Criteria
+* Upstream: 
+    * Traffic coming out of OLT is double tagged 1025 ,1025
+* Downstream:
+    * OLT will strip outer tag 1025 and send single CVID traffic to ONT
diff --git a/docs/manuals/user/labtests/T12_tibit_olt_tests_verify_multicast.md b/docs/manuals/user/labtests/T12_tibit_olt_tests_verify_multicast.md
new file mode 100644
index 0000000..177901d
--- /dev/null
+++ b/docs/manuals/user/labtests/T12_tibit_olt_tests_verify_multicast.md
@@ -0,0 +1,23 @@
+## T12 - Verify Multicast Access
+
+### Test Objective
+
+* To verify video service on RG
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT should be reachable to VOLTHA over IP interface on VLAN 4090
+* Tibit OLT should be in active state on VOLTHA
+* Tibit ONU should be in active state on VOLTHA
+* RG is authenticated with Radius and RG has IP address from DHCP
+* VLC streaming server is active, VLC Video Client is connected to RG
+
+### Test Procedure
+* Enable Multicast Video Stream from VLC server
+* Multicast Video stream should be tagged with VLAN ID 140
+* From VLC client initiate connection to streaming Multicast channel
+* Packet Capture at OLT port should show IGMP join message
+* Observe Video quality on TV 
+
+### Pass/Fail Criteria
+* Video is displayed on TV
diff --git a/docs/manuals/user/labtests/T13_tibit_olt_tests_verify_cvid_upstream.md b/docs/manuals/user/labtests/T13_tibit_olt_tests_verify_cvid_upstream.md
new file mode 100644
index 0000000..5a39613
--- /dev/null
+++ b/docs/manuals/user/labtests/T13_tibit_olt_tests_verify_cvid_upstream.md
@@ -0,0 +1,14 @@
+## T13 - Spirent - Verify Re-Write C-VID Upstream
+
+### Test Objective
+
+* The purpose of this test is to verify ONU can re-write Priority tagged frames (VLAN ID 0) with single c-VID in upstream to wards OLT
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+
+### Pass/Fail Criteria
diff --git a/docs/manuals/user/labtests/T14_tibit_olt_tests_verify_cvid_downstream.md b/docs/manuals/user/labtests/T14_tibit_olt_tests_verify_cvid_downstream.md
new file mode 100644
index 0000000..f480568
--- /dev/null
+++ b/docs/manuals/user/labtests/T14_tibit_olt_tests_verify_cvid_downstream.md
@@ -0,0 +1,13 @@
+## T14 - Spirent - Verify Re-Write C-VID Downstream
+
+### Test Objective
+* The Purpose of this test is to verify ONU can re-write single C-VID frames as priority tagges frames in downstream towards RG
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+
+### Pass/Fail Criteria
diff --git a/docs/manuals/user/labtests/T15_tibit_olt_tests_verify_qinq_upstream.md b/docs/manuals/user/labtests/T15_tibit_olt_tests_verify_qinq_upstream.md
new file mode 100644
index 0000000..32728a2
--- /dev/null
+++ b/docs/manuals/user/labtests/T15_tibit_olt_tests_verify_qinq_upstream.md
@@ -0,0 +1,21 @@
+## T15 - Spirent - Verify 802.1ad (QinQ) Upstream
+
+### Test Objective
+
+* Purpose of this test is to verify OLT can insert second VLAN tag (SVID) in upstream direction
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, send untagged traffic in upstream direction 
+* On the receiving port end, capture traffic and verify the VLAN parameters 
+
+### Pass/Fail Criteria:
+* Upstream: 
+o   configure on the Spirent side to send untagged traffic (NO vlan  configure)
+o    OLT and ONT will add 1025 ,1025 respectively (i.e. 1025,1025)
+o   Captured frame should contain 1025, 1025 vlan 
+
diff --git a/docs/manuals/user/labtests/T16_tibit_olt_tests_verify_qinq_downstream.md b/docs/manuals/user/labtests/T16_tibit_olt_tests_verify_qinq_downstream.md
new file mode 100644
index 0000000..3724dc3
--- /dev/null
+++ b/docs/manuals/user/labtests/T16_tibit_olt_tests_verify_qinq_downstream.md
@@ -0,0 +1,20 @@
+## T16 - Spirent - Verify 802.1ad (QinQ) Downstream
+
+### Test Objective
+
+* Purpose of this test is to verify OLT (DNX) can strip SVID from the incoming packets and forward only with CVID to ONU 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, configure double tagged traffic in downstream direction (1025,1025)
+* On the receiving port, capture traffic and verify the VLAN parameters 
+
+### Pass/Fail Criteria
+* Downstream:
+  *   configure on the Spirent side to send traffic with 1025,1025
+  *   OLT will strip the 1025 and send traffic to corresponding ONT ( i.e. 1025 to ONT)
+  *   Captured frame should contain only one VLAN tag (1025 VLAN)
diff --git a/docs/manuals/user/labtests/T17_tibit_olt_tests_verify_ipv4_downstream.md b/docs/manuals/user/labtests/T17_tibit_olt_tests_verify_ipv4_downstream.md
new file mode 100644
index 0000000..226a9ea
--- /dev/null
+++ b/docs/manuals/user/labtests/T17_tibit_olt_tests_verify_ipv4_downstream.md
@@ -0,0 +1,24 @@
+## T17 - Spirent - Verify IPv4 Unicast Streams Downstream
+
+### Test Objective
+
+* Purpose of this test is to verify OLT and ONU can handle double tagged traffic 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, configure double tagged traffic in downstream direction (1025,1025)
+* On Spirent, send untagged traffic in upstream direction 
+* On the both ports capture traffic and verify the stream 
+
+### Pass / Fail Criteria
+* Upstream: 
+   * configure on the Spirent side to send traffic with NO vlan 
+   *  OLT and ONT will add 1025 ,1025 respectively (i.e. 1025,1025)
+* Downstream:
+   * configure on the Spirent side to send traffic with 1025,1025
+   * OLT will strip the 1025 and send traffic to corresponding ONT ( i.e. 1025 to ONT)
+
diff --git a/docs/manuals/user/labtests/T18_tibit_olt_tests_verify_ipv4_downstream_case2.md b/docs/manuals/user/labtests/T18_tibit_olt_tests_verify_ipv4_downstream_case2.md
new file mode 100644
index 0000000..c176c99
--- /dev/null
+++ b/docs/manuals/user/labtests/T18_tibit_olt_tests_verify_ipv4_downstream_case2.md
@@ -0,0 +1,17 @@
+## T18 - Spirent - Verify IPv4 Unicast Streams Downstream Case2
+
+### Test Objective
+
+* Purpose of this test is to verify P-BIT parameter is propagated to C-VID when sending downstream traffic to ONU
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* On Spirent, configure P-BIT for CVID. ex: set P-BIT value to 3 
+* On the Receive port end, capture traffic and verify the P-BIT parameter on SVID  in Up stream direction 
+
+### Pass / Fail Criteria
+* P-BIT value s-VID is copied to C-VID in downstream direction 
diff --git a/docs/manuals/user/labtests/T19_tibit_olt_tests_ranging.md b/docs/manuals/user/labtests/T19_tibit_olt_tests_ranging.md
new file mode 100644
index 0000000..57a4c6c
--- /dev/null
+++ b/docs/manuals/user/labtests/T19_tibit_olt_tests_ranging.md
@@ -0,0 +1,23 @@
+## T19 - 10k and 20k ONU Ranging
+
+### Test Objective
+
+* Purpose of this test is to verify ONU can range with 10km and 20 KM distance
+
+### Test Configuration
+* Test Setup is as shown in earlier sections
+
+### Test Procedure
+* Register the ONU with the OLT across a 10KM fiber spool
+* Activate the OLT and ONU using VOLTHA 
+* Confirm OLT and ONU have the oper_status of ```ACTIVE``` in VOLTHA
+* Register the ONU with the OLT across a 20KM fiber spool
+* Activate the OLT and ONU using VOLTHA 
+* Confirm OLT and ONU have the oper_status of ```ACTIVE``` in VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA and send traffic 
+
+### Pass / Fail Criteria
+* OLT can range the ONU successfully with 10 KM distance 
+* OLT can range the ONU successfully with 20 KM distance 
+* Traffic flows successfully with 20 KM distance without any drops 
+
diff --git a/docs/manuals/user/labtests/T20_tibit_olt_tests_mib.md b/docs/manuals/user/labtests/T20_tibit_olt_tests_mib.md
new file mode 100644
index 0000000..0055aeb
--- /dev/null
+++ b/docs/manuals/user/labtests/T20_tibit_olt_tests_mib.md
@@ -0,0 +1,15 @@
+## T20 - MIB Download and Upload
+
+### Test Objective
+
+* Purpose of this test is to verify OMCI MIB is downloaded from OLT to ONU and vice versa as part of ONU ranging process
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+
+### Test Procedure
+* Activate the Tibit OLT and ONU using VOLTHA
+
+### Pass / Fail Criteria
+* Once the ONU ranges, OMCI MIB is downloaded from OLT to ONU and vice versa 
+
diff --git a/docs/manuals/user/labtests/T21_tibit_olt_tests_2000_byte_frames.md b/docs/manuals/user/labtests/T21_tibit_olt_tests_2000_byte_frames.md
new file mode 100644
index 0000000..a319aa4
--- /dev/null
+++ b/docs/manuals/user/labtests/T21_tibit_olt_tests_2000_byte_frames.md
@@ -0,0 +1,19 @@
+## T21 - 9200 byte Frames
+
+### Test Objective
+
+* Purpose of this test is to verify OLT and ONU can accept and forward
+  traffic when the frame size of equals 9200 bytes
+
+### Test Configuration
+
+* Test Setup is as shown in earlier sections
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* Send data/unicast traffic with frame size of 9200 Bytes in upstream and downstream direction
+
+### Pass / Fail Criteria
+* OLT & ONU can accept and forward frames of size 9200 Bytes successfully 
+
diff --git a/docs/manuals/user/labtests/T22_tibit_olt_tests_data_and_video.md b/docs/manuals/user/labtests/T22_tibit_olt_tests_data_and_video.md
new file mode 100644
index 0000000..0a15749
--- /dev/null
+++ b/docs/manuals/user/labtests/T22_tibit_olt_tests_data_and_video.md
@@ -0,0 +1,17 @@
+## T22 - Simultaneous Data and Video Streams
+
+### Test Objective
+
+* Purpose of this test is to verify OLT and ONU can handle data and multicast traffic 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+* Provision Multicast/IGMP service on the ONU from VOLTHA
+
+### Test Procedure
+* Send bi-directional data traffic and multicast traffic on the ONU
+
+### Expected Result
+* Bi-directional data Traffic and Multicast traffic on the ONU went through successfully 
diff --git a/docs/manuals/user/labtests/T23_tibit_olt_tests_overnight.md b/docs/manuals/user/labtests/T23_tibit_olt_tests_overnight.md
new file mode 100644
index 0000000..5c07be6
--- /dev/null
+++ b/docs/manuals/user/labtests/T23_tibit_olt_tests_overnight.md
@@ -0,0 +1,17 @@
+## T23 - Overnight Traffic Test
+
+### Test Objective
+
+* Purpose of this test is to verify overnight traffic test went through successfully with zero drops
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+* Provision Multicast/IGMP service on the ONU from VOLTHA
+
+### Test Procedure
+* Send bi-directional data and multicast traffic over night and monitor for traffic drops
+
+### Pass / Fail Criteria:
+* Bi-directional traffic went through overnight and no traffic drops 
diff --git a/docs/manuals/user/labtests/T24_tibit_olt_tests_ha_fiber_disconnect.md b/docs/manuals/user/labtests/T24_tibit_olt_tests_ha_fiber_disconnect.md
new file mode 100644
index 0000000..1042f54
--- /dev/null
+++ b/docs/manuals/user/labtests/T24_tibit_olt_tests_ha_fiber_disconnect.md
@@ -0,0 +1,18 @@
+## T24 - Traffic Recovers After Fiber Disconnect (Best Effort)
+
+### Test Objective
+
+* Purpose of this test is to verify pull & re-insert of PON cable can resume the traffic on the ONU
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* Now manually pull the fiber cable the from ONU
+* Re-insert the fiber cable to the ONU and verify ONU is ranges and traffic restores
+
+### Pass / Fail Criteria
+* Traffic stopped when cable is pulled from ONU
+* After cable insert, ONU is ranged back and traffic starts flowing automatically on the ONU
diff --git a/docs/manuals/user/labtests/T25_tibit_olt_tests_ha_onu_reset.md b/docs/manuals/user/labtests/T25_tibit_olt_tests_ha_onu_reset.md
new file mode 100644
index 0000000..fcc8bb4
--- /dev/null
+++ b/docs/manuals/user/labtests/T25_tibit_olt_tests_ha_onu_reset.md
@@ -0,0 +1,19 @@
+## T25 - Traffic Recovers After ONU Reset (Best Effort)
+
+### Test Objective
+
+* Purpose of this test is to verify reset/reboot of ONU is able to recover the traffic on the ONU
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* Now manually reset /reboot the ONU
+* Verify whether ONU ranges and traffic is restored successfully 
+
+### Pass / Fail Criteria
+* Traffic should stop flowing when ONU is restarted
+* After ONU is up, traffic restores automatically on the ONU
+
diff --git a/docs/manuals/user/labtests/T26_tibit_olt_tests_ha_olt_reset.md b/docs/manuals/user/labtests/T26_tibit_olt_tests_ha_olt_reset.md
new file mode 100644
index 0000000..eed3f98
--- /dev/null
+++ b/docs/manuals/user/labtests/T26_tibit_olt_tests_ha_olt_reset.md
@@ -0,0 +1,21 @@
+## T26 - Traffic Recovers After OLT Reset (Best Effort)
+
+### Test Objective
+
+* Purpose of this test is to verify reset/reboot of ONU is able to recover the traffic on the ONU
+
+### Test Configuration
+
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+
+* Now reset /reboot the OLT
+* Verify OLT is up, ONU ranges and traffic is restored successfully 
+
+### Pass / Fail Criteria
+
+* When OLT is up, ONU ranges back and traffic restores automatically on the ONU
+
diff --git a/docs/manuals/user/labtests/T27_tibit_olt_tests_ha_tor_switch_reset.md b/docs/manuals/user/labtests/T27_tibit_olt_tests_ha_tor_switch_reset.md
new file mode 100644
index 0000000..87cd8d2
--- /dev/null
+++ b/docs/manuals/user/labtests/T27_tibit_olt_tests_ha_tor_switch_reset.md
@@ -0,0 +1,18 @@
+## T27 - Traffic Recovers After ToR Switch Reset (Best Effort)
+
+### Test Objective
+
+* Purpose of this test is to verify reset/reboot of TOR switch is able to recover the traffic 
+
+### Test Configuration
+* Test Setup as shown in Section – 7
+* Tibit OLT and ONU is activated using VOLTHA
+* Provision HSIA/unicast service on the OLT and connected ONU from VOLTHA
+
+### Test Procedure
+* Now reset /reboot the TOR switch
+* Verify TOR is up, Traffic is restored successfully 
+
+### Pass / Fail Criteria
+* Traffic should stop flowing when TOR switch is restarted. Once the TOR switch is up, Traffic restored successfully on the ONU
+
diff --git a/docs/manuals/user/labtests/V00_voltha.md b/docs/manuals/user/labtests/V00_voltha.md
new file mode 100644
index 0000000..17956c4
--- /dev/null
+++ b/docs/manuals/user/labtests/V00_voltha.md
@@ -0,0 +1,12 @@
+# Voltha Bringup Tests
+
+Test steps in this section serve the following purpose:
+
+1. Deploys Voltha and its companion containers
+1. Verifies base-line operation of Voltha
+1. Introduces the tester to basic Voltha operations, such as
+   * curl/web browser based REST APIs
+   * Swagger UI
+   * Craft CLI
+   * Log streams and log collection 
+   * Asynchronous events published by Voltha
diff --git a/docs/manuals/user/labtests/V00_voltha_bringup.md b/docs/manuals/user/labtests/V00_voltha_bringup.md
new file mode 100644
index 0000000..4495021
--- /dev/null
+++ b/docs/manuals/user/labtests/V00_voltha_bringup.md
@@ -0,0 +1,2 @@
+# Voltha Bringup
+
diff --git a/docs/manuals/user/labtests/V01_voltha_bringup_deploy.md b/docs/manuals/user/labtests/V01_voltha_bringup_deploy.md
new file mode 100644
index 0000000..f198ba0
--- /dev/null
+++ b/docs/manuals/user/labtests/V01_voltha_bringup_deploy.md
@@ -0,0 +1,132 @@
+## V1 - Deploy Voltha and Verify its Vital Signs
+
+### Test Objective
+
+* Purpose of this test is to launch Voltha together with all of its dependencies
+ and verify that all are in working condition,
+
+### Test Configuration
+
+* This test setup requires only the test server and it should have been prepared
+ as described in the [preparation](preparations.md) section.
+* Voltha has not been running yet (will verify it in the process)
+* Test server has been prepared as above
+
+### Test Procedure
+
+* Login to the test server with standard user credentials
+* Navigate to the Voltha installation directory. For example:
+    
+  ```
+  cd cord/incubator/voltha
+  ```
+
+* Source the environment:
+  
+  ```
+  source env.sh
+  ```
+  
+* Verify that no docker containers are running on the server:
+  
+  ```
+  docker ps -a
+  ```
+  
+  This shall show only a title line, but no containers. If any containers
+  are running, you can terminate them as follows:
+  
+  ```
+  docker ps -a | grep -v CONT | awk '{print $1}' | xargs docker rm -f
+  ```
+ 
+* Launch Voltha and it companion containers (the "test deployment ensemble")
+ using docker-compose in the background:
+  
+  ```
+  docker-compose -f compose/docker-compose-system-test.yml up -d
+  ```
+  
+  Note: The expected outcome is show below. Order is not important.
+  
+  ```
+  Creating compose_fluentd_1
+  Creating compose_consul_1
+  Creating compose_registrator_1
+  Creating compose_voltha_1
+  Creating compose_ofagent_1
+  Creating compose_chameleon_1
+  Creating compose_netconf_1
+  Creating compose_zookeeper_1
+  Creating compose_podder_1
+  Creating compose_kafka_1
+  Creating compose_grafana_1
+  Creating compose_shovel_1
+  ```
+
+  Note: We need to make sure the ponmgmt bridge can forward multicast mac addresses
+
+  ```
+  echo 8 > /sys/class/net/ponmgmt/bridge/group_fwd_mask
+  ```
+
+### Pass/Fail Criteria (Installation Checkpoint)
+
+* The installation steps to this point should complete without errors.
+* Please check that docker-compose shows all containers as running.  In the same
+Linux terminal, please issue the following command: 
+    
+  ```
+  docker-compose -f compose/docker-compose-system-test.yml ps
+  ```
+  
+  This shall list all containers being in the "Up" state. Expected output (lines are
+  truncated omitting the long port mapping information):
+  
+  ```
+            Name                       Command               State         ...
+  -------------------------------------------------------------------------...
+  compose_chameleon_1     /chameleon/chameleon/main. ...   Up      0.0.0.0:...
+  compose_consul_1        docker-entrypoint.sh agent ...   Up      0.0.0.0:...
+  compose_fluentd_1       /bin/sh -c exec fluentd -c ...   Up      0.0.0.0:...
+  compose_grafana_1       /usr/bin/supervisord             Up      0.0.0.0:...
+  compose_kafka_1         start-kafka.sh                   Up      0.0.0.0:...
+  compose_netconf_1       /netconf/netconf/main.py - ...   Up      0.0.0.0:...
+  compose_ofagent_1       /ofagent/ofagent/main.py - ...   Up
+  compose_podder_1        python podder/podder/main.py     Up
+  compose_registrator_1   /bin/registrator -ip=10.0. ...   Up
+  compose_shovel_1        /shovel/shovel/main.py --k ...   Up
+  compose_voltha_1        /voltha/voltha/main.py -v  ...   Up      0.0.0.0:...
+  compose_zookeeper_1     /bin/sh -c /usr/sbin/sshd  ...   Up      0.0.0.0:...
+  ```
+  
+  Shovel is known to have some startup race condition issues. If it is shown
+  in the "Exited" state, a single attempt can be made to restart it, after which
+  it should be healthy. To restart it, execute:
+  
+  ```
+  docker-compose -f compose/docker-compose-system-test.yml scale shovel=1
+  ```
+  
+  and repeat the above "ps" command to view the ensemble state:
+  
+  ```
+  docker-compose -f compose/docker-compose-system-test.yml ps
+  ```
+  
+* Point a Web Browser to the Consul UI to verify that all components are properly
+registered. 
+
+  Point your browser to ```http://<server-ip-or-hostname>:8500/ui```
+using the actual IP address or valid DNS name of your Voltha
+server. The expected view is similar to the following:
+
+  ![Consul services view](./consul_sample_service_list.png "Consul screen displaying all service endpoints and
+their health")
+
+  Here every single exposed service end-point is shown (some components expose
+  multiple end-points, while others expose no public endpoints).
+    
+  Clicking on any of the items reveal further information like the specific IP
+  address(es) and port number(s) for the service.
+
diff --git a/docs/manuals/user/labtests/V02_voltha_bringup_rest.md b/docs/manuals/user/labtests/V02_voltha_bringup_rest.md
new file mode 100644
index 0000000..8fb25eb
--- /dev/null
+++ b/docs/manuals/user/labtests/V02_voltha_bringup_rest.md
@@ -0,0 +1,153 @@
+## V2 - Connect to Voltha with REST and Web Browser or Curl
+
+### Test Objective
+
+* The purpose of this test is to verify REST-based HTTP connectivity to Voltha, including
+  * Swagger UI access for exploring APIs
+  * Command-line REST requests using curl
+
+### Test Configuration
+
+* Preparatory steps completed
+* Test-case V1 completed successfully
+
+### Test Procedure
+
+To conveniently explore the REST APIs exposed by Voltha, point your browser to the default REST port on the
+Voltha integrartion server's Swagger end-point using the URL
+```http://<server>:<chameleon-port>/#/VolthaLocalService```, where
+
+* ```<server>``` is the IP address or hostname of your Voltha integration server,
+* ```<chameleon-port``` is the TCP port assigned to the Chameleon REST front-end.
+In a real depoyment this port will be served by a load balancer using a fixed port
+number, but in the integration setup this port number is a port assigned by Docker.
+To find out what the port is, do either of the following:
+
+  You can look up the port number using docker. On the integration server, run:
+  
+  ```
+  docker inspect compose_chameleon_1 | \
+      jq -r '.[0].NetworkSettings.Ports["8881/tcp"][0].HostPort'
+  ```
+  
+  This should print the port number that is mapped to the Chameleon internal
+  REST port. In our case it printed the following:
+  
+  ```
+  32794
+  ```
+  
+  Alternatively, you can use a DNS lookup. The Consul process in the Voltha
+  ensamble also works as a DNS server and supports service record lookup. So
+  you can use ```dig``` to lookup the port number. One way to do this is to issue
+  the following command on *the integration server*:
+  
+  ```
+  dig @localhost -p 8600 +short chameleon-rest.service.consul SRV
+  ```
+  
+  This basically requests for the service record (SRV) for the service
+  registered with Consul as ```chameleon-rest``` end-point. Example output:
+  
+  ```
+  1 1 32794 0a00020f.addr.dc1.consul.
+  ```
+  
+  The 3rd field is the port number.
+  
+  Either way, make note of the port-number and use this to talk to the REST APIs.
+  
+  Using the proper URL, which in our case was
+ ```http://10.100.198.220:32794/#/VolthaLocalService``` shall lead you to the
+ following view in your browser:
+
+  ![Initial swagger view](./swagger_1.png "Initial swagger screen")
+
+  Swagger allows the user to browse in the APIs and try any of the APIs with
+  relative ease. For instance, to list all adapters registered with Voltha, open
+  up the ```/api/v1/local/adapters``` entry:
+  
+  ![Adapters opened](./swagger_2.png "Swagger entry for adapters opened")
+
+  To try this API, click on the *Try it out!* button. The response will show
+  up below it:
+  
+  ![Adapters shown](./swagger_3.png "Swagger showing adapters response")
+
+* The REST API can be consumed via any REST client. Here we verify that the Unix
+ tool ```curl``` can be used. Here are a couple of examples:
+ 
+  For convenience, setup an env var for the b ase URL:
+ 
+  ```
+  export VOLTHAURL='http://10.100.198.220:32794/api/v1/local'
+  ```
+ 
+  To show the health status of Voltha:
+ 
+  ```
+  curl -s $VOLTHAURL/health | jq '.'
+  ```
+  Expect to see:
+  
+  ```
+  {
+    "state": "HEALTHY"
+  }
+  ```
+ 
+  To show the list of loaded adapters in Voltha 
+  
+  ```
+  curl -s $VOLTHAURL/adapters | jq '.'
+  ```
+  Expect to see a list similar to this snippet (we show here only the beginning):
+  
+  ```
+  {
+    "items": [
+      {
+        "config": {
+          "log_level": "INFO"
+        },
+        "version": "0.1",
+        "vendor": "Voltha project",
+        "id": "broadcom_onu",
+        "logical_device_ids": []
+      },
+      {
+        "config": {
+          "log_level": "INFO"
+        },
+        "version": "0.1",
+        "vendor": "Voltha project",
+        "id": "maple_olt",
+        "logical_device_ids": []
+      },
+     ...
+     ...
+  ```
+  
+  You can list only the names of the adapters:
+  
+  ```
+  curl -s $VOLTHAURL/adapters | jq '.items[].id'
+  ```
+  
+  This will show something like:
+  
+  ```
+  "broadcom_onu"
+  "maple_olt"
+  "ponsim_olt"
+  "ponsim_onu"
+  "simulated_olt"
+  "simulated_onu"
+  "tibit_olt"
+  "tibit_onu"
+  ```
+
+### Pass/Fail Criteria
+
+This test case should be considered passing if all the demonstrated behavior
+works with similar (but not necessarily identical) output.
diff --git a/docs/manuals/user/labtests/V03_voltha_bringup_cli.md b/docs/manuals/user/labtests/V03_voltha_bringup_cli.md
new file mode 100644
index 0000000..ccc294a
--- /dev/null
+++ b/docs/manuals/user/labtests/V03_voltha_bringup_cli.md
@@ -0,0 +1,448 @@
+## V3 - Connect to Voltha via its CLI
+
+### Test Objective
+
+* Verify Voltha CLI is available
+* Provide an introduction to the CLI, since it is used in many of the other
+  testcases
+
+### Test Configuration
+
+* Voltha ensemble is instantiated (V1)
+
+### Test Procedure
+
+Start the Voltha CLI:
+
+```
+cd $VOLTHA_BASE
+./cli/main.py -L
+```
+
+You should see it launched:
+```
+         _ _   _            ___ _    ___
+__ _____| | |_| |_  __ _   / __| |  |_ _|
+\ V / _ \ |  _| ' \/ _` | | (__| |__ | |
+ \_/\___/_|\__|_||_\__,_|  \___|____|___|
+(to exit type quit or hit Ctrl-D)
+(voltha)
+```
+
+This places the user into normal mode, signified by the ```(voltha)``` prompt.
+
+To check connectivity to Voltha and to check if Voltha is "healthy", run:
+
+```
+health
+```
+
+The expected output is:
+
+```
+(voltha) health
+{
+    "state": "HEALTHY"
+}
+```
+
+To list all Voltha adapters, type:
+
+```
+adapters
+```
+
+This should show the loaded adapters:
+
+```
+(voltha) adapters
+Adapters:
++---------------+---------------------------+---------+------------------+
+|            id |                    vendor | version | config.log_level |
++---------------+---------------------------+---------+------------------+
+|  broadcom_onu |            Voltha project |     0.1 |             INFO |
+|     maple_olt |            Voltha project |     0.1 |             INFO |
+|    ponsim_olt |            Voltha project |     0.4 |             INFO |
+|    ponsim_onu |            Voltha project |     0.4 |             INFO |
+| simulated_olt |            Voltha project |     0.1 |             INFO |
+| simulated_onu |            Voltha project |     0.1 |             INFO |
+|     tibit_olt | Tibit Communications Inc. |     0.1 |             INFO |
+|     tibit_onu | Tibit Communications Inc. |     0.1 |             INFO |
++---------------+---------------------------+---------+------------------+
+```
+
+There are many more commands available in the CLI. To list all commands
+in ```voltha``` mode, type:
+
+```
+help
+```
+
+This will show the available commands:
+
+```
+(voltha) help
+
+Documented commands (type help <topic>):
+========================================
+activate_olt  edit     load             preprovision_olt  save       test
+adapters      health   logical_device   py                set
+device        history  logical_devices  reset_history     shell
+devices       launch   pause            restart           shortcuts
+ed            list     pdb              run               show
+
+Undocumented commands:
+======================
+EOF  eof  exit  help  quit
+```
+
+### Brief Reference of Frequently Used CLI Commands
+
+*Please note at this point in the test sequence there are no OLTs/ONUs,
+hence the output of these commands will in fact show empty tables; some commands
+are not even available.*
+
+To list all logical devices:
+
+```
+logical_devices
+```
+
+*Example* output:
+
+```
+(voltha) logical_devices
+Logical devices:
++----+-------------+----------------+----------------------------------+---------------------------+--------------------------+
+| id | datapath_id | root_device_id |                  desc.serial_num | switch_features.n_buffers | switch_features.n_tables |
++----+-------------+----------------+----------------------------------+---------------------------+--------------------------+
+|  1 |           1 |   5a324e1c3996 | cc293bbceb974ce0a9314a7bd6f17ac0 |                       256 |                        2 |
++----+-------------+----------------+----------------------------------+---------------------------+--------------------------+
+```
+
+To list all physical devices:
+
+```
+devices
+```
+
+*Example* output:
+
+```
+(voltha) devices
+Devices:
++--------------+---------------+------+--------------+------+-------------------+-------------+-------------+----------------+----------------+-------------------------+--------------------------+
+|           id |          type | root |    parent_id | vlan |       mac_address | admin_state | oper_status | connect_status | parent_port_no | proxy_address.device_id | proxy_address.channel_id |
++--------------+---------------+------+--------------+------+-------------------+-------------+-------------+----------------+----------------+-------------------------+--------------------------+
+| 5a324e1c3996 | simulated_olt | True |            1 |      | 00:0c:e2:31:40:00 |     ENABLED |      ACTIVE |      REACHABLE |                |                         |                          |
+| 6e898ddc5e99 | simulated_onu |      | 5a324e1c3996 |  101 |                   |     ENABLED |      ACTIVE |      REACHABLE |              1 |            5a324e1c3996 |                      101 |
+| 58089597a87b | simulated_onu |      | 5a324e1c3996 |  102 |                   |     ENABLED |      ACTIVE |      REACHABLE |              1 |            5a324e1c3996 |                      102 |
+| 45de16e1c63b | simulated_onu |      | 5a324e1c3996 |  103 |                   |     ENABLED |      ACTIVE |      REACHABLE |              1 |            5a324e1c3996 |                      103 |
+| fe80c1ca2c1b | simulated_onu |      | 5a324e1c3996 |  104 |                   |     ENABLED |      ACTIVE |      REACHABLE |              1 |            5a324e1c3996 |                      104 |
++--------------+---------------+------+--------------+------+-------------------+-------------+-------------+----------------+----------------+-------------------------+--------------------------+
+```
+
+To pre-provision an OLT of a certain type (e.g., maple with given IP address):
+
+```
+preprovision_olt -t maple_olt -i 10.11.12.13
+```
+
+*Example* output:
+
+```
+(voltha) preprovision_olt -t maple_olt -i 10.11.12.13
+success (device id = 5a324e1c3996)
+```
+
+To activate the last pre-provisioned OLT:
+
+```
+activate_olt
+```
+
+*Example* output:
+
+```
+(voltha) activate_olt
+activating 5a324e1c3996
+waiting for device to be activated...
+success (logical device id = 1)
+```
+
+To activate an OLT given by its ID:
+
+```
+activate_olt <ID>
+```
+
+*Example* output:
+
+```
+(voltha) activate_olt
+activating 5a324e1c3996
+waiting for device to be activated...
+success (logical device id = 1)
+```
+
+To enter into a logical device context/mode:
+
+```
+logical_device <logical-device-ID>
+```
+
+*Example* output:
+
+```
+(voltha) logical_device 1
+(logical device 1)
+```
+
+This will change the prompt to ```(logical device <ID>)```.
+
+Subcommands of logical device mode:
+
+To show more info:
+
+```
+show
+```
+
+*Example* output:
+
+```
+(logical device 1) show
+Logical device 1
++------------------------------+----------------------------------+
+|                        field |                            value |
++------------------------------+----------------------------------+
+|                           id |                                1 |
+|                  datapath_id |                                1 |
+|                desc.mfr_desc |                     cord porject |
+|                 desc.hw_desc |                    simualted pon |
+|                 desc.sw_desc |                    simualted pon |
+|              desc.serial_num | cc293bbceb974ce0a9314a7bd6f17ac0 |
+|                 desc.dp_desc |                              n/a |
+|    switch_features.n_buffers |                              256 |
+|     switch_features.n_tables |                                2 |
+| switch_features.capabilities |                               15 |
++------------------------------+----------------------------------+
+|               root_device_id |                     5a324e1c3996 |
+|                        ports |                        5 item(s) |
++------------------------------+----------------------------------+
+```
+
+To list all ports of the logical device:
+
+```
+ports
+```
+
+*Example* output:
+
+```
+(logical device 1) ports
+Logical device ports:
++-----+--------------+----------------+-----------+------------------+----------------------+---------------+----------------+---------------+---------------------+
+|  id |    device_id | device_port_no | root_port | ofp_port.port_no |     ofp_port.hw_addr | ofp_port.name | ofp_port.state | ofp_port.curr | ofp_port.curr_speed |
++-----+--------------+----------------+-----------+------------------+----------------------+---------------+----------------+---------------+---------------------+
+| nni | 5a324e1c3996 |              2 |      True |              129 | [0, 0, 0, 0, 0, 129] |           nni |              4 |          4128 |                  32 |
+| 101 | 6e898ddc5e99 |              2 |           |              101 | [0, 0, 0, 0, 0, 101] |       uni-101 |              4 |          4128 |                  32 |
+| 102 | 58089597a87b |              2 |           |              102 | [0, 0, 0, 0, 0, 102] |       uni-102 |              4 |          4128 |                  32 |
+| 103 | 45de16e1c63b |              2 |           |              103 | [0, 0, 0, 0, 0, 103] |       uni-103 |              4 |          4128 |                  32 |
+| 104 | fe80c1ca2c1b |              2 |           |              104 | [0, 0, 0, 0, 0, 104] |       uni-104 |              4 |          4128 |                  32 |
++-----+--------------+----------------+-----------+------------------+----------------------+---------------+----------------+---------------+---------------------+
+```
+
+To list all flows defined:
+
+```
+flows
+```
+
+*Example* output:
+
+```
+(logical device 1) flows
+Logical Device 1 (type: n/a)
+Flows (11):
++----------+----------+--------+---------+----------+----------+----------+-----------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+| table_id | priority | cookie | in_port | vlan_vid | eth_type | ip_proto |  ipv4_dst | udp_dst | metadata | set_vlan_vid | pop_vlan | push_vlan | group |     output | goto-table |
++----------+----------+--------+---------+----------+----------+----------+-----------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+|        0 |     2000 |      0 |     101 |          |     888E |          |           |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |     1000 |      0 |         |          |      800 |        2 |           |         |          |              |          |           |       | CONTROLLER |            |
+|        0 |     1000 |      0 |         |          |      800 |       17 |           |      67 |          |              |          |           |       | CONTROLLER |            |
+|        0 |      500 |      0 |     129 |     1000 |          |          |           |         |       40 |              |      Yes |           |       |            |          1 |
+|        0 |      500 |      0 |     129 |      101 |          |          |           |         |          |            0 |          |           |       |        101 |            |
+|        0 |      500 |      0 |     101 |        0 |          |          |           |         |          |          101 |          |           |       |            |          1 |
+|        0 |      500 |      0 |     101 | untagged |          |          |           |         |          |          101 |          |      8100 |       |            |          1 |
+|        0 |      500 |      0 |     101 |      101 |          |          |           |         |          |         1000 |          |      8100 |       |        129 |            |
+|        0 |     1000 |      0 |     129 |      140 |      800 |          | 228.1.1.1 |         |          |              |          |           |     1 |            |            |
+|        0 |     1000 |      0 |     129 |      140 |      800 |          | 228.2.2.2 |         |          |              |          |           |     2 |            |            |
++----------+----------+--------+---------+----------+----------+----------+-----------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+|        0 |     1000 |      0 |     129 |      140 |      800 |          | 228.3.3.3 |         |          |              |          |           |     3 |            |            |
++----------+----------+--------+---------+----------+----------+----------+-----------+---------+----------+--------------+----------+-----------+-------+------------+------------+
+```
+
+To exit logical device mode:
+
+```
+exit
+```
+
+*Example* output:
+
+```
+(logical device 1) exit
+(voltha)
+```
+
+To enter into a device context/mode:
+
+```
+device <device-ID>
+```
+
+*Example* output:
+
+```
+(voltha) device 5a324e1c3996
+(device 5a324e1c3996)
+```
+
+Subcommands of device mode:
+
+To show device info:
+
+```
+show
+```
+
+*Example* output:
+
+```
+(device 5a324e1c3996) show
+Device 5a324e1c3996
++------------------+----------------------------------+
+|            field |                            value |
++------------------+----------------------------------+
+|               id |                     5a324e1c3996 |
+|             type |                    simulated_olt |
+|             root |                             True |
+|        parent_id |                                1 |
+|           vendor |                        simulated |
+|            model |                              n/a |
+| hardware_version |                              n/a |
+| firmware_version |                              n/a |
+| software_version |                              1.0 |
+|    serial_number | a90723b46a474a128369694c644101d3 |
++------------------+----------------------------------+
+|          adapter |                    simulated_olt |
+|      mac_address |                00:0c:e2:31:40:00 |
+|      admin_state |                          ENABLED |
+|      oper_status |                           ACTIVE |
+|   connect_status |                        REACHABLE |
+|            ports |                        2 item(s) |
+|      flows.items |                        7 item(s) |
++------------------+----------------------------------+
+```
+
+To show all ports of device:
+ports
+
+*Example* output:
+
+```
+(device 45de16e1c63b) ports
+Device ports:
++---------+--------------------------+--------------+-------------+-------------+--------------+------------------------------------------------+
+| port_no |                    label |         type | admin_state | oper_status |    device_id |                                          peers |
++---------+--------------------------+--------------+-------------+-------------+--------------+------------------------------------------------+
+|       2 | UNI facing Ethernet port | ETHERNET_UNI |     ENABLED |      ACTIVE | 45de16e1c63b |                                                |
+|       1 |                 PON port |      PON_ONU |     ENABLED |      ACTIVE | 45de16e1c63b | [{'port_no': 1, 'device_id': u'5a324e1c3996'}] |
++---------+--------------------------+--------------+-------------+-------------+--------------+------------------------------------------------+
+```
+
+To show all flows defined on device:
+
+```
+flows
+```
+
+*Example* output:
+
+```
+(device 5a324e1c3996) flows
+Device 5a324e1c3996 (type: simulated_olt)
+Flows (7):
++----------+----------+--------+---------+----------+----------+----------+----------+---------+----------+--------------+----------+-----------+--------+
+| table_id | priority | cookie | in_port | vlan_vid | vlan_pcp | eth_type | ip_proto | udp_dst | metadata | set_vlan_vid | pop_vlan | push_vlan | output |
++----------+----------+--------+---------+----------+----------+----------+----------+---------+----------+--------------+----------+-----------+--------+
+|        0 |     2000 |      0 |       2 |     4000 |        0 |          |          |         |          |              |      Yes |           |      1 |
+|        0 |     2000 |      0 |       1 |          |          |     888E |          |         |          |         4000 |          |      8100 |      2 |
+|        0 |     1000 |      0 |       1 |          |          |      800 |        2 |         |          |         4000 |          |      8100 |      2 |
+|        0 |     1000 |      0 |       1 |          |          |      800 |       17 |      67 |          |         4000 |          |      8100 |      2 |
+|        0 |      500 |      0 |       2 |     1000 |          |          |          |         |       40 |              |      Yes |           |      1 |
+|        0 |      500 |      0 |       1 |      101 |          |          |          |         |          |         1000 |          |      8100 |      2 |
+|        0 |     1000 |      0 |       2 |      140 |          |          |          |         |          |              |      Yes |           |      1 |
++----------+----------+--------+---------+----------+----------+----------+----------+---------+----------+--------------+----------+-----------+--------+
+```
+
+To exit device mode:
+
+```
+exit
+```
+
+There is a "test" mode that allows installing various pre-manufactured flows, and removing all flows. This is strictly for integration testing:
+
+To enter "test" mode from normal CLI mode:
+
+```
+test
+```
+
+In test mode all commands that are available in normal mode are still available, but in addition, there are some extra commands, such as:
+
+To install just the EAPOL upstream forwarding flow:
+
+```
+install_eapol_flow [<logical-device-ID>]
+```
+
+To install all controller bound forwarding flows:
+
+```
+install_all_controller_bound_flows  [<logical-device-ID>]
+```
+
+To install all flows relevant in our use-case (upstream forwarding rules, unicast data flows, and a few multicast flows):
+
+```
+install_all_sample_flows  [<logical-device-ID>]
+```
+
+To remove all flows from a logical device:
+
+```
+delete_all_flows  [<logical-device-ID>]
+```
+
+Here is a sample CLI command sequence that preprovisions and activates an OLT, then downloads all sample flows and check the flows installed on the OLT device:
+
+```
+test
+preprovision_olt -t maple_olt -i 10.11.12.13
+activate_olt
+install_all_sample_flows
+devices # to see the device IDs
+device 123456789ab
+flows
+exit
+```
+
+### Pass/Fail Criteria
+
+* CLI should start
+* Health should show "HEALTHY"
+* The adapters listed above are availble
diff --git a/docs/manuals/user/labtests/V04_voltha_bringup_async.md b/docs/manuals/user/labtests/V04_voltha_bringup_async.md
new file mode 100644
index 0000000..bd613ad
--- /dev/null
+++ b/docs/manuals/user/labtests/V04_voltha_bringup_async.md
@@ -0,0 +1,141 @@
+## V4 - View Voltha Async Events with Kafkacat
+
+### Test Objective
+
+* Demonstrate and verify the async event stream (output) from Voltha
+
+Voltha is sending asynchronous events to a Kafka "bus" system.
+There are four types of events emitted by Kafka, using four separate Kafka
+"topics":
+
+* *heartbeat*: Voltha emits a periodic heart-beat through this channel. By default
+the Kafka topic name for this channel is ```voltha.heartbeat```
+* *kpi/performance metrics*: Voltha uses this channel to send out consolidated
+ performance metric data about its internal components as well as about the
+ devices managed by Voltha. While the channel is live, the metrics are limited
+ to a few sample metrics at the moment (work in progress).  By default the
+ Kafka topic name for this channel is ```voltha.kpis```.
+* *alarms*: Voltha uses this channel to send out consolidated alarm signals,
+covering the devices it manages as well as alarms about its internal operation.
+ This is not used yet, albeit the internal plumbing in Voltha exists. By default
+ the Kafka topic name for this channel is ```voltha/alarms```.
+* *events*: Voltha uses this channel to send out consolidated async events 
+ (other than alarms), covering the devices it manages as well as events about
+  its internal operation. This is not used yet, albeit the internal plumbing 
+  in Voltha exists. 
+  By default the Kafka topic name for this channel is ```voltha/events```.
+
+In a production deployment it is expected that other subsystems will consume
+these Kafka topics. 
+Our goal here is to demonstrate and verify that Voltha is working as expected.
+
+
+### Test Configuration
+
+* Voltha ensemble is launched (V1)
+
+### Test Procedure
+
+In order to show the Kafka channels, we use a command line tool ```kafkacat```
+to "tune into" the channels.
+To run kafkacat we need to know the port number of the kafka broker. Use the
+ following command to retrieve the assigned port to Kafka:
+
+```
+docker inspect compose_kafka_1 | \
+    jq -r '.[0].NetworkSettings.Ports["9092/tcp"][0]["HostPort"]'
+```
+
+For example, it may say:
+
+```
+32769
+```
+
+This is the port number Kafka is reacheable at the integration server.
+
+To show the topics that have data, run the command (make sure you use the
+port number that you retreived in the above step):
+
+```
+kafkacat -b localhost:32769 -L
+```
+
+Here is what you should see:
+
+```
+(venv-linux) ubuntu@voltha:/voltha$ kafkacat -b localhost:32769 -L
+Metadata for all topics (from broker -1: localhost:32769/bootstrap):
+ 1 brokers:
+  broker 1001 at 10.0.2.15:32769
+ 2 topics:
+  topic "voltha.kpis" with 1 partitions:
+    partition 0, leader 1001, replicas: 1001, isrs: 1001
+  topic "voltha.heartbeat" with 1 partitions:
+    partition 0, leader 1001, replicas: 1001, isrs: 1001
+```
+
+There are only two topics shown from the four we described above. The reason
+is that the other topics have no published data yet.
+
+In order to show data published to the heartbeat channel, use the following
+command (*Make sure you use the correct port number!*):
+
+```
+kafkacat -b localhost:32769 -C -t voltha.heartbeat \
+    -f 'Topic %t [%p] at offset %o: key %k: %s\n'
+```
+
+The above will show all existing data in the queue and will stay connected
+and print messages as they arrive ("tail" the channel). You can use Ctrl-C
+to interrupt the tailing and return to the Linux prompt.
+
+Example output, showing only the first few lines:
+
+```
+(venv-linux) ubuntu@voltha:/voltha$ kafkacat -b localhost:32769 -C -t voltha.heartbeat -f 'Topic %t [%p] at offset %o: key %k: %s\n'
+Topic voltha.heartbeat [0] at offset 0: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291374}
+Topic voltha.heartbeat [0] at offset 1: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291384}
+Topic voltha.heartbeat [0] at offset 2: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291394}
+Topic voltha.heartbeat [0] at offset 3: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291404}
+Topic voltha.heartbeat [0] at offset 4: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291414}
+Topic voltha.heartbeat [0] at offset 5: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291424}
+Topic voltha.heartbeat [0] at offset 6: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291434}
+Topic voltha.heartbeat [0] at offset 7: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291444}
+Topic voltha.heartbeat [0] at offset 8: key : {"ip": "172.18.0.9", "type": "heartbeat", "voltha_instance": "compose_voltha_1", "ts": 1484291454}
+```
+
+Similarly, you can watch KPI metrics as follows:
+
+```
+kafkacat -b localhost:32769 -C -t voltha.kpis \
+    -f 'Topic %t [%p] at offset %o: key %k: %s\n'
+```
+
+This may show only two Voltha metrics, yet it still verifies the proper operation
+ of the KPI metric collection mechanism. A sample output is as follows, truncated
+ to only the first 15 lines:
+ 
+```
+(venv-linux) ubuntu@voltha:/voltha$ kafkacat -b localhost:32769 -C -t voltha.kpis -f 'Topic %t [%p] at offset %o: key %k: %s\n'
+Topic voltha.kpis [0] at offset 0: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 20, "rss-mb": 79}}, "type": "slice", "ts": 1484291374}
+Topic voltha.kpis [0] at offset 1: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291389}
+Topic voltha.kpis [0] at offset 2: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291404}
+Topic voltha.kpis [0] at offset 3: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291419}
+Topic voltha.kpis [0] at offset 4: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291434}
+Topic voltha.kpis [0] at offset 5: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291449}
+Topic voltha.kpis [0] at offset 6: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291464}
+Topic voltha.kpis [0] at offset 7: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291479}
+Topic voltha.kpis [0] at offset 8: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291494}
+Topic voltha.kpis [0] at offset 9: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291509}
+Topic voltha.kpis [0] at offset 10: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291524}
+Topic voltha.kpis [0] at offset 11: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291539}
+Topic voltha.kpis [0] at offset 12: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291554}
+Topic voltha.kpis [0] at offset 13: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291569}
+Topic voltha.kpis [0] at offset 14: key : {"data": {"voltha.internal.compose_voltha_1": {"deferreds": 173, "rss-mb": 79}}, "type": "slice", "ts": 1484291584}
+```
+
+### Pass/Fail Criteria
+
+* The above feeds (topics) should exist in Kafka and have data in both
+topics.
diff --git a/docs/manuals/user/labtests/consul_sample_service_list.png b/docs/manuals/user/labtests/consul_sample_service_list.png
new file mode 100644
index 0000000..7fe7ee8
--- /dev/null
+++ b/docs/manuals/user/labtests/consul_sample_service_list.png
Binary files differ
diff --git a/docs/manuals/user/labtests/netconf_connected.png b/docs/manuals/user/labtests/netconf_connected.png
new file mode 100644
index 0000000..6412b34
--- /dev/null
+++ b/docs/manuals/user/labtests/netconf_connected.png
Binary files differ
diff --git a/docs/manuals/user/labtests/netconf_download_schema.png b/docs/manuals/user/labtests/netconf_download_schema.png
new file mode 100644
index 0000000..83a1f6e
--- /dev/null
+++ b/docs/manuals/user/labtests/netconf_download_schema.png
Binary files differ
diff --git a/docs/manuals/user/labtests/netconf_get_adapters.png b/docs/manuals/user/labtests/netconf_get_adapters.png
new file mode 100644
index 0000000..d68d6bf
--- /dev/null
+++ b/docs/manuals/user/labtests/netconf_get_adapters.png
Binary files differ
diff --git a/docs/manuals/user/labtests/netconf_get_volthainstance.png b/docs/manuals/user/labtests/netconf_get_volthainstance.png
new file mode 100644
index 0000000..4dc81db
--- /dev/null
+++ b/docs/manuals/user/labtests/netconf_get_volthainstance.png
Binary files differ
diff --git a/docs/manuals/user/labtests/netconf_load_module.png b/docs/manuals/user/labtests/netconf_load_module.png
new file mode 100644
index 0000000..cc264bd
--- /dev/null
+++ b/docs/manuals/user/labtests/netconf_load_module.png
Binary files differ
diff --git a/docs/manuals/user/labtests/netconf_login_prompt.png b/docs/manuals/user/labtests/netconf_login_prompt.png
new file mode 100644
index 0000000..1842a63
--- /dev/null
+++ b/docs/manuals/user/labtests/netconf_login_prompt.png
Binary files differ
diff --git a/docs/manuals/user/labtests/netconf_modules_downloaded.png b/docs/manuals/user/labtests/netconf_modules_downloaded.png
new file mode 100644
index 0000000..5ff0c7a
--- /dev/null
+++ b/docs/manuals/user/labtests/netconf_modules_downloaded.png
Binary files differ
diff --git a/docs/manuals/user/labtests/netconf_modules_loaded.png b/docs/manuals/user/labtests/netconf_modules_loaded.png
new file mode 100644
index 0000000..ca7bb2b
--- /dev/null
+++ b/docs/manuals/user/labtests/netconf_modules_loaded.png
Binary files differ
diff --git a/docs/manuals/user/labtests/old/M00_maple_olt_tests_original.md b/docs/manuals/user/labtests/old/M00_maple_olt_tests_original.md
new file mode 100644
index 0000000..4efb93c
--- /dev/null
+++ b/docs/manuals/user/labtests/old/M00_maple_olt_tests_original.md
@@ -0,0 +1,43 @@
+# Maple OLT Tests
+
+These tests (obviously) assume access to a Maple-based OLT PON system in the test
+POD.
+
+The tests are grouped into the following categories:
+
+Manual step-by-step provisioning:
+* [M1 - Preprovision and Activate OLT](M01_maple_olt_tests_activate_olt.md)
+* [M2 - Activate ONU](M02_maple_olt_tests_activate_onu.md)
+* [M3 - Manually Install EAPOL Forwarding Flows](M03_maple_olt_tests_eapol_install.md)
+* [M4 - Test EAPOL In/Out Forwarding with OLT-OFTEST](M04_maple_olt_tests_eapol_in_out.md)
+* [M5 - Manually Install All Forwarding Flows](M05_maple_olt_tests_install_all_flows.md)
+* [M6 - Test unicast (Internet) access](M06_maple_olt_tests_unicast.md)
+* [M7 - Test IGMP and multicast (Video) streams](M07_maple_olt_tests_multicast.md)
+
+ONOS-base System Test
+* [M8 - Reset Manually Added Flows and Launch ONOS](M08_maple_olt_tests_start_onos.md)
+* [M9 - Verify RG Authentication Scenario](M09_maple_olt_tests_verify_authentication.md)
+* [M10 - Verify DHCP Lookup](M10_maple_olt_tests_verify_dhcp.md)
+* [M11 - Verify Unicast Access](M11_maple_olt_tests_verify_unicast.md)
+* [M12 - Verify Multicast Access](M12_maple_olt_tests_verify_multicast.md)
+
+Spirent-base Functional Traffic Tests
+* [M13 - Spirent - Verify Re-Write C-VID Upstream](M13_maple_olt_tests_verify_cvid_upstream.md)
+* [M14 - Spirent - Verify Re-Write C-VID Downstream](M14_maple_olt_tests_verify_cvid_downstream.md)
+* [M15 - Spirent - Verify 802.1ad (QinQ) Upstream](M15_maple_olt_tests_verify_qinq_upstream.md)
+* [M16 - Spirent - Verify 802.1ad (QinQ) Downstream](M16_maple_olt_tests_verify_qinq_downstream.md)
+* [M17 - Spirent - Verify IPv4 Unicast Streams Downstream](M17_maple_olt_tests_verify_ipv4_downstream.md)
+* [M18 - Spirent - Verify IPv4 Unicast Streams Downstream Case2](M18_maple_olt_tests_verify_ipv4_downstream_case2.md)
+
+Miscellaneous Randing Tests
+* [M19 - 10k and 20k ONU Ranging](M19_maple_olt_tests_ranging.md)
+* [M20 - MIB Download and Upload](M20_maple_olt_tests_mib.md)
+* [M21 - 2000 byte Frames](M21_maple_olt_tests_2000_byte_frames.md)
+* [M22 - Simultaneous Data and Video Streams](M22_maple_olt_tests_data_and_video.md)
+* [M23 - Overnight Traffic Test](M23_maple_olt_tests_overnight.md)
+
+Robustness Testing
+* [M24 - Traffic Recovers After Fiber Disconnect (Best Effort)](M24_maple_olt_tests_ha_fiber_disconnect.md)
+* [M25 - Traffic Recovers After ONU Reset (Best Effort)](M25_maple_olt_tests_ha_onu_reset.md)
+* [M26 - Traffic Recovers After OLT Reset (Best Effort)](M26_maple_olt_tests_ha_olt_reset.md)
+* [M27 - Traffic Recovers After ToR Switch Reset (Best Effort)](M27_maple_olt_tests_ha_tor_switch_reset.md)    
diff --git a/docs/manuals/user/labtests/old/M01_maple_olt_tests_activate_olt.md b/docs/manuals/user/labtests/old/M01_maple_olt_tests_activate_olt.md
new file mode 100644
index 0000000..8bccb8f
--- /dev/null
+++ b/docs/manuals/user/labtests/old/M01_maple_olt_tests_activate_olt.md
@@ -0,0 +1,29 @@
+## M1 - Preprovision and Activate OLT
+
+### Test Objective
+
+* Purpose of this test is to verify new OLT can be added and activated from VOLTHA
+* VOLTHA will connect with OLT physical device and create a logical device with initial ports in its data store.
+* VOLTHA will send Event notifications to ONOS and PON Manager for the newly added OLT
+
+### Test Configuration
+
+* Test Setup is as shown in Section – 7
+* Maple OLT should be reachable to VOLTHA over IP interface on VLAN 4092
+
+### Test Procedure
+
+* Issue commands to VOLTHA to simulate “Add-OLT device” message coming from PON Manager on VOLTHA
+* VOLTHA should initiate connect / activate request to Maple OLT
+* VOLHA will create Logical Device and Ports, and notify ONOS
+* Verify the PON Management traffic between VOLTHA and OLT is tagged with Management VLAN 4092
+* VOLTHA will send OLT-Activated event notification to PON Manager 
+* Verify OLT/ONU Status on Device Console
+* ONU should drop all the traffic coming from RG 
+
+### Pass/Fail Criteria
+
+* OLT is successfully detected and activated on VOLTHA
+* Logical device and port list is created on VOLTHA and ONOS
+* OLT / ONU status can be seen from Device Console
+
diff --git a/docs/manuals/user/labtests/old/M03_maple_olt_tests_eapol_install.md b/docs/manuals/user/labtests/old/M03_maple_olt_tests_eapol_install.md
new file mode 100644
index 0000000..e547263
--- /dev/null
+++ b/docs/manuals/user/labtests/old/M03_maple_olt_tests_eapol_install.md
@@ -0,0 +1,56 @@
+## M3 - Manually Install EAPOL Forwarding Flows
+
+### Test Objective
+* Use Voltha CLI to manually download EAPOL forwarding rule to PON network
+
+### Test Configuration
+* TBF
+
+### Test Procedure
+
+**Step 1: If not yet running, launch Voltha CLI:**
+```
+cd $VOLTHA_BASE
+./cli/main.py -L
+```
+(Note, the ```-L``` option is needed if Voltha was launched as
+a container using docker-compose.)
+
+**Step 2: Note the device ID**
+ 
+Note the Voltha logical device ID of the PON network being tested.
+If in doubt, use the following Voltha CLI command to list all devices:
+```
+devices
+```
+
+The output may be something like this (lines are truncated):
+
+```
+(voltha) devices
+Devices:
++--------------+---------------+------+--------------+------+--------------...
+|           id |          type | root |    parent_id | vlan |       mac_add...
++--------------+---------------+------+--------------+------+--------------...
+| 25dadc44a847 |     maple_olt | True |            1 |      | 00:0c:e2:31:4...
+| d178c7a3b07b |  broadcom_onu |      | 25dadc44a847 |  101 |              ...
++--------------+---------------+------+--------------+------+--------------...
+```
+
+In this case the OLT's device id was ```25dadc44a847```
+and the logical device id shown as the parent_id for the OLT.
+In this case the logical device id is ```1```.
+
+**Step 3: Download EAPOL forwarding rules to the PON**
+
+Using the test mode of the CLI, download the rules:
+```
+test
+install_eapol_flow 1
+```
+where you must use the logical device ID. The CLI provides
+TAB completion that can help too.
+
+### Pass/Fail Criteria
+
+[Zsolt to finish]
diff --git a/docs/manuals/user/labtests/preparations.md b/docs/manuals/user/labtests/preparations.md
new file mode 100644
index 0000000..1826524
--- /dev/null
+++ b/docs/manuals/user/labtests/preparations.md
@@ -0,0 +1,97 @@
+# Preparation
+
+## Upgrade the Test Server with Latest Voltha
+
+### Prerequisites
+
+Before you start, please ensure the following requirements have been met.
+
+* You have access to a server that was already set up for Voltha development
+ and test deployments. We will call this the "Voltha server."
+* The Voltha server has access to the Internet. This is needed to download the
+latest dependencies and the latest Voltha code base.
+* You have local or remote access to the server. 
+* In case of remote access, you know the IP address or qualified DNS name of 
+ the server, and can reach it.
+* You can login using non-root account.
+* Your account is sudo-ready.
+
+### Upgrade Steps
+
+**Step 1: Login to server and navigate to Voltha base directory**
+
+Assuming remote access, ssh into the server and then execute the following commands.
+
+```
+ssh <username>@<server-address>  # and use your credentials
+```
+
+Navigate to the Voltha base dir and source the environment. For example:
+
+```
+cd cord/incubator/voltha
+source env.sh
+```
+
+Your exact path may differ. After the above step, the prompt should include
+ the term ```venv-linux``` now.
+ 
+**Step 2: Upgrade to latest Python dependencies**
+
+Execute:
+
+```
+pip install -r requirements.txt
+```
+
+**Step 3: Install some additional system packages needed for testing**
+
+Execute:
+
+```
+sudo apt install -y wireshark tshark npm nodejs-legacy bridge-utils
+```
+
+**Step 4: Install oftest and olt-oftest, needed for PON-level system tests**
+
+This step is needed only if you intend to run the automated PON-level
+tests. Execute:
+
+```
+cd $VOLTHA_BASE  # if you don't have this, go back to Step 1
+# Now, go up a directory so that we don't install in the voltha repo
+cd .. 
+git clone git@bitbucket.org:corddesign/olt-oftest.git
+git clone git://github.com/mininet/mininet
+./mininet/util/install.sh  # this may ask for your password
+```
+
+**Step 5: Fetch latest Docker image preprequisites**
+
+```
+cd $VOLTHA_BASE
+make fetch
+```
+
+**Step 6: Rebuild the Voltha Docker Image Combo**
+ 
+```
+cd $VOLTHA_BASE
+make
+```
+
+At this point your Voltha components shall be ready for local Docker
+deployment.
+
+
+## Verify Network Access From Server to OLTs
+
+Confirm that you have connectivity from the VOLTHA server to the OLT chassis or device.
+
+### VLAN forwarding
+
+Any L2 switches participating in connecting the Voltha test server to the PON
+components need to be configured to pass specific VLAN-tagged traffic. The 
+details are POD and device specific. Please consult with your vendor.
+
+Please continue with next section of the document.
diff --git a/docs/manuals/user/labtests/requirements.md b/docs/manuals/user/labtests/requirements.md
new file mode 100644
index 0000000..d986b26
--- /dev/null
+++ b/docs/manuals/user/labtests/requirements.md
@@ -0,0 +1,25 @@
+# Requirements
+
+## Test PODs
+
+A Test POD suitable for testing Voltha and Voltha-assisted PON networks usually
+contain at least the following hardware components:
+
+* One or more disaggregated OLT devices
+* One or more ONU/ONT devices per OLT
+* Fiber splitters and PON fiber cabling
+* For virtualized deployments, a Linux server hosting Voltha and other control
+  and management plane components, as well as hosting test suites. We will refer to 
+  this server as the "*Voltha integration server*"
+* Optional RG and STB devices
+* Optionally additional server(s) hosting simulated RG functionality
+* Optionally additional dataplane switches
+* Optional media converters
+* Optional test instruments (Spirent, etc.) for traffic testing and certification
+
+## Supported Specific Test PODs
+
+At this early phase, test PODs are being defined and developed by a select set
+of commercial vendors who are members of the Voltha project. Once the PODs are stable
+enough, their details will be described here.  Until then, please contact your
+(preferred) vendor for test POD specifications, BOMs, and other details.
diff --git a/docs/manuals/user/labtests/swagger_1.png b/docs/manuals/user/labtests/swagger_1.png
new file mode 100644
index 0000000..da86623
--- /dev/null
+++ b/docs/manuals/user/labtests/swagger_1.png
Binary files differ
diff --git a/docs/manuals/user/labtests/swagger_2.png b/docs/manuals/user/labtests/swagger_2.png
new file mode 100644
index 0000000..fcdd7ef
--- /dev/null
+++ b/docs/manuals/user/labtests/swagger_2.png
Binary files differ
diff --git a/docs/manuals/user/labtests/swagger_3.png b/docs/manuals/user/labtests/swagger_3.png
new file mode 100644
index 0000000..03a974d
--- /dev/null
+++ b/docs/manuals/user/labtests/swagger_3.png
Binary files differ
diff --git a/docs/manuals/user/old/Makefile b/docs/manuals/user/old/Makefile
new file mode 100644
index 0000000..8d9e615
--- /dev/null
+++ b/docs/manuals/user/old/Makefile
@@ -0,0 +1,50 @@
+#
+# Copyright 2016 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+ifeq ($(VOLTHA_BASE)_set,_set)
+$(error To get started, please source the env.sh file)
+endif
+
+default: build
+
+GENERATED_SVG_FILES := \
+	pon-requirements/reference-inband.svg \
+	pon-requirements/reference-internal.svg \
+	pon-requirements/olt-states.svg
+
+build: checkdiag $(GENERATED_SVG_FILES)
+	@echo "Building drawings"
+
+%.svg: %.block
+	blockdiag -T svg -o $@ $<
+
+%.svg: %.seq
+	seqdiag -T svg -o $@ $<
+
+clean:
+	rm -f $(GENERATED_SVG_FILES)
+
+checkdiag:
+	@if ! blockdiag --version > /dev/null; then \
+	  echo "Installing blockdiag..."; \
+	  pip install blockdiag; \
+	fi
+	@if ! seqdiag --version > /dev/null; then \
+	  echo "Installing seqdiag..."; \
+	  pip install seqdiag; \
+	fi
+	@echo "Tools ready"
+
diff --git a/docs/manuals/user/old/SUMMARY_ORIG.md b/docs/manuals/user/old/SUMMARY_ORIG.md
new file mode 100644
index 0000000..0c47be7
--- /dev/null
+++ b/docs/manuals/user/old/SUMMARY_ORIG.md
@@ -0,0 +1,86 @@
+# Summary
+
+This is the TOC file used by the gitbook generator.
+To generate and serve static content, run:
+
+  ```
+  gitbook serve
+  ```
+
+* [Introduction](README.md)
+* [Overview of Voltha]()
+* [Recommended Lab Test Scenarios](labtests/README.md)
+  * [Requirements](labtests/requirements.md)
+  * [Preparation](labtests/preparations.md)
+  * [Voltha Bringup Tests](labtests/V00_voltha.md)
+    * [V1 - Deploy Voltha and Verify its Vital Signs](labtests/V01_voltha_bringup_deploy.md)
+    * [V2 - Connect to Voltha with REST and Web Browser](labtests/V02_voltha_bringup_rest.md)
+    * [V3 - Connect to Voltha via its CLI](labtests/V03_voltha_bringup_cli.md)
+    * [V4 - View Voltha Async Events with Kafkacat](labtests/V04_voltha_bringup_async.md)
+  * [PONSIM Tests](labtests/S00_ponsim_tests.md)
+    * [S1 - Launch PONSIM and Activate it From Voltha](labtests/S01_ponsim_tests_launch_and_activate.md)
+    * [S2 - Manually Install EAPOL Forwarding Flows](labtests/S02_ponsim_tests_eapol_install.md)
+    * [S3 - Test EAPOL In/Out Forwarding with OLT-OFTEST](labtests/S03_ponsim_tests_eapol_in_out.md)
+    * [S4 - Manually Install All Forwarding Flows](labtests/S04_ponsim_tests_install_all_flows.md)
+    * [S5 - Test unicast (Internet) access](labtests/S05_ponsim_tests_unicast.md)
+    * [S6 - Test IGMP and multicast (Video) streams](labtests/S06_ponsim_tests_multicast.md)
+  * [Maple OLT Tests](labtests/M00_maple_olt_tests.md)
+    * [M1 - Preprovision and Activate OLT](labtests/M01_maple_olt_tests_activate_olt.md)
+    * [M2 - Activate ONU](labtests/M02_maple_olt_tests_activate_onu.md)
+    * [M3 - Manually Install EAPOL Forwarding Flows](labtests/M03_maple_olt_tests_eapol_install.md)
+    * [M4 - Test EAPOL In/Out Forwarding with OLT-OFTEST](labtests/M04_maple_olt_tests_eapol_in_out.md)
+    * [M5 - Manually Install All Forwarding Flows](labtests/M05_maple_olt_tests_install_all_flows.md)
+    * [M6 - Test unicast (Internet) access](labtests/M06_maple_olt_tests_unicast.md)
+    * [M7 - Test IGMP and multicast (Video) streams](labtests/M07_maple_olt_tests_multicast.md)
+    * [M8 - Reset Manually Added Flows and Launch ONOS](labtests/M08_maple_olt_tests_start_onos.md)
+    * [M9 - Verify RG Authentication Scenario](labtests/M09_maple_olt_tests_verify_authentication.md)
+    * [M10 - Verify DHCP Lookup](labtests/M10_maple_olt_tests_verify_dhcp.md)
+    * [M11 - Verify Unicast Access](labtests/M11_maple_olt_tests_verify_unicast.md)
+    * [M12 - Verify Multicast Access](labtests/M12_maple_olt_tests_verify_multicast.md)
+    * [M13 - Spirent - Verify Re-Write C-VID Upstream](labtests/M13_maple_olt_tests_verify_cvid_upstream.md)
+    * [M14 - Spirent - Verify Re-Write C-VID Downstream](labtests/M14_maple_olt_tests_verify_cvid_downstream.md)
+    * [M15 - Spirent - Verify 802.1ad (QinQ) Upstream](labtests/M15_maple_olt_tests_verify_qinq_upstream.md)
+    * [M16 - Spirent - Verify 802.1ad (QinQ) Downstream](labtests/M16_maple_olt_tests_verify_qinq_downstream.md)
+    * [M17 - Spirent - Verify IPv4 Unicast Streams Downstream](labtests/M17_maple_olt_tests_verify_ipv4_downstream.md)
+    * [M18 - Spirent - Verify IPv4 Unicast Streams Downstream Case2](labtests/M18_maple_olt_tests_verify_ipv4_downstream_case2.md)
+    * [M19 - 10k and 20k ONU Ranging](labtests/M19_maple_olt_tests_ranging.md)
+    * [M20 - MIB Download and Upload](labtests/M20_maple_olt_tests_mib.md)
+    * [M21 - 2000 byte Frames](labtests/M21_maple_olt_tests_2000_byte_frames.md)
+    * [M22 - Simultaneous Data and Video Streams](labtests/M22_maple_olt_tests_data_and_video.md)
+    * [M23 - Overnight Traffic Test](labtests/M23_maple_olt_tests_overnight.md)
+    * [M24 - Traffic Recovers After Fiber Disconnect (Best Effort)](labtests/M24_maple_olt_tests_ha_fiber_disconnect.md)
+    * [M25 - Traffic Recovers After ONU Reset (Best Effort)](labtests/M25_maple_olt_tests_ha_onu_reset.md)
+    * [M26 - Traffic Recovers After OLT Reset (Best Effort)](labtests/M26_maple_olt_tests_ha_olt_reset.md)
+    * [M27 - Traffic Recovers After ToR Switch Reset (Best Effort)](labtests/M27_maple_olt_tests_ha_tor_switch_reset.md)    
+  * [Tibit OLT Tests](labtests/T00_tibit_olt_tests.md)
+    * [T1 - Preprovision and Activate OLT](labtests/T01_tibit_olt_tests_activate_olt.md)
+    * [T2 - Activate ONU](labtests/T02_tibit_olt_tests_activate_onu.md)
+    * [T3 - Manually Install EAPOL Forwarding Flows](labtests/T03_tibit_olt_tests_eapol_install.md)
+    * [T4 - Test EAPOL In/Out Forwarding with OLT-OFTEST](labtests/T04_tibit_olt_tests_eapol_in_out.md)
+    * [T5 - Manually Install All Forwarding Flows](labtests/T05_tibit_olt_tests_install_all_flows.md)
+    * [T6 - Test unicast (Internet) access](labtests/T06_tibit_olt_tests_unicast.md)
+    * [T7 - Test IGMP and multicast (Video) streams](labtests/T07_tibit_olt_tests_multicast.md)
+    * [T8 - Reset Manually Added Flows and Launch ONOS](labtests/T08_tibit_olt_tests_start_onos.md)
+    * [T9 - Verify RG Authentication Scenario](labtests/T09_tibit_olt_tests_verify_authentication.md)
+    * [T10 - Verify DHCP Lookup](labtests/T10_tibit_olt_tests_verify_dhcp.md)
+    * [T11 - Verify Unicast Access](labtests/T11_tibit_olt_tests_verify_unicast.md)
+    * [T12 - Verify Multicast Access](labtests/T12_tibit_olt_tests_verify_multicast.md)
+    * [T13 - Spirent - Verify Re-Write C-VID Upstream](labtests/T13_tibit_olt_tests_verify_cvid_upstream.md)
+    * [T14 - Spirent - Verify Re-Write C-VID Downstream](labtests/T14_tibit_olt_tests_verify_cvid_downstream.md)
+    * [T15 - Spirent - Verify 802.1ad (QinQ) Upstream](labtests/T15_tibit_olt_tests_verify_qinq_upstream.md)
+    * [T16 - Spirent - Verify 802.1ad (QinQ) Downstream](labtests/T16_tibit_olt_tests_verify_qinq_downstream.md)
+    * [T17 - Spirent - Verify IPv4 Unicast Streams Downstream](labtests/T17_tibit_olt_tests_verify_ipv4_downstream.md)
+    * [T18 - Spirent - Verify IPv4 Unicast Streams Downstream Case2](labtests/T18_tibit_olt_tests_verify_ipv4_downstream_case2.md)
+    * [T19 - 10k and 20k ONU Ranging](labtests/T19_tibit_olt_tests_ranging.md)
+    * [T20 - MIB Download and Upload](labtests/T20_tibit_olt_tests_mib.md)
+    * [T21 - 2000 byte Frames](labtests/T21_tibit_olt_tests_2000_byte_frames.md)
+    * [T22 - Simultaneous Data and Video Streams](labtests/T22_tibit_olt_tests_data_and_video.md)
+    * [T23 - Overnight Traffic Test](labtests/T23_tibit_olt_tests_overnight.md)
+    * [T24 - Traffic Recovers After Fiber Disconnect (Best Effort)](labtests/T24_tibit_olt_tests_ha_fiber_disconnect.md)
+    * [T25 - Traffic Recovers After ONU Reset (Best Effort)](labtests/T25_tibit_olt_tests_ha_onu_reset.md)
+    * [T26 - Traffic Recovers After OLT Reset (Best Effort)](labtests/T26_tibit_olt_tests_ha_olt_reset.md)
+    * [T27 - Traffic Recovers After ToR Switch Reset (Best Effort)](labtests/T27_tibit_olt_tests_ha_tor_switch_reset.md)    
+  * [Previews of Upcoming Features](labtests/P00_previews.md)
+    * [P1 - KPI Collection Through Voltha](labtests/P01_previews_kpi_collection.md)
+    * [P2 - Voltha's Netconf API and Yang Definitions](labtests/P02_previews_yang_and_netconf.md)
+    * [P3 - Voltha's Partial Readiness for Scale-out](labtests/P03_previews_scale_out.md)
diff --git a/docs/manuals/user/old/architecture.svg b/docs/manuals/user/old/architecture.svg
new file mode 100644
index 0000000..a02ce2f
--- /dev/null
+++ b/docs/manuals/user/old/architecture.svg
@@ -0,0 +1,1940 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="11in"
+   height="8.5in"
+   viewBox="0 0 990 765"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="architecture.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7299"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7301"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker6998"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send"
+       inkscape:collect="always">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path7000" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker6878"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path6880"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker6626"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path6628"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker6524"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send"
+       inkscape:collect="always">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path6526" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker6428"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path6430"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker6338"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send"
+       inkscape:collect="always">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path6340" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker6254"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path6256"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker6186"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send"
+       inkscape:collect="always">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path6188" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutM"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker6092"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6094"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutM"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleOutM"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5225"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="EmptyTriangleOutM"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="EmptyTriangleOutM"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5243"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;fill:#ffffff;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+         transform="scale(0.4) translate(-4.5,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker5910"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         transform="scale(0.6) rotate(180) translate(0,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ff0000;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         id="path5912" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker5642"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5644"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path5095"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path5107"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ff0000;stroke-opacity:1;fill:#ff0000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path5083"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.2470588"
+     inkscape:cx="495"
+     inkscape:cy="382.5"
+     inkscape:document-units="cm"
+     inkscape:current-layer="layer2"
+     showgrid="true"
+     units="in"
+     objecttolerance="10000"
+     inkscape:snap-perpendicular="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1156"
+     inkscape:window-x="0"
+     inkscape:window-y="1"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       units="mm"
+       spacingx="3.5433071"
+       spacingy="3.5433071"
+       color="#b6b6ff"
+       opacity="0.1254902"
+       empcolor="#8a8aff"
+       empopacity="0.25098039" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-287.3622)"
+     style="display:inline"
+     sodipodi:insensitive="true">
+    <g
+       id="g4649"
+       transform="translate(-56.481132,-416.75472)">
+      <rect
+         style="fill:#c0e8ff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3.00000001, 1.00000002;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4651"
+         width="854.10309"
+         height="468.18985"
+         x="120.30643"
+         y="966.91339" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="965.6394"
+         y="984.86884"
+         id="text4653"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4655"
+           x="965.6394"
+           y="984.86884">voltha</tspan></text>
+    </g>
+    <g
+       id="g4595"
+       transform="matrix(1,0,0,1.0784076,-66.509434,-356.41783)">
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.96296072;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:2.88888196, 0.96296066;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4597"
+         width="679.03876"
+         height="206.22931"
+         x="295.3707"
+         y="935.82001" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.03700829px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="965.6394"
+         y="953.52435"
+         id="text4599"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4601"
+           x="965.6394"
+           y="953.52435">core</tspan></text>
+    </g>
+    <g
+       id="g4398"
+       transform="translate(-65.707547,-6.8490566)">
+      <rect
+         y="892.91339"
+         x="194.8819"
+         height="124.01569"
+         width="779.52759"
+         id="rect4374"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4314-7"
+         y="910.86884"
+         x="965.6394"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="910.86884"
+           x="965.6394"
+           id="tspan4316-0"
+           sodipodi:role="line">adapters</tspan></text>
+    </g>
+    <g
+       transform="translate(-223.31132,440.99057)"
+       id="g4276">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4278"
+         width="128.02519"
+         height="34.597065"
+         x="449.25955"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="540.95288"
+         id="text4280"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4282"
+           x="512.97003"
+           y="540.95288">simulated_onu</tspan></text>
+    </g>
+    <g
+       id="g4284"
+       transform="translate(-223.31132,397.69811)">
+      <rect
+         y="521.06683"
+         x="449.25955"
+         height="34.597065"
+         width="128.02519"
+         id="rect4286"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4288"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4290"
+           sodipodi:role="line">simulated_olt</tspan></text>
+    </g>
+    <g
+       transform="translate(48.528303,397.69811)"
+       id="g4310">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4312"
+         width="128.02519"
+         height="34.597065"
+         x="449.25955"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4314"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4316"
+           x="512.97003"
+           y="542.95288">maple</tspan></text>
+    </g>
+    <g
+       id="g4318"
+       transform="translate(-86.990568,397.69811)">
+      <rect
+         y="521.06683"
+         x="449.25955"
+         height="34.597065"
+         width="128.02519"
+         id="rect4320"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4322"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4324"
+           sodipodi:role="line">microsemi</tspan></text>
+    </g>
+    <g
+       transform="translate(183.24528,397.69811)"
+       id="g4326">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4328"
+         width="128.02519"
+         height="34.597065"
+         x="449.25955"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4330"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4332"
+           x="512.97003"
+           y="542.95288">tibit_olt</tspan></text>
+    </g>
+    <g
+       id="g4334"
+       transform="translate(183.21079,440.99057)">
+      <rect
+         y="521.06683"
+         x="449.25955"
+         height="34.597065"
+         width="128.02519"
+         id="rect4336"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4338"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4340"
+           sodipodi:role="line">tibit_onu</tspan></text>
+    </g>
+    <g
+       transform="translate(317.96226,397.69811)"
+       id="g4342">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4344"
+         width="128.02519"
+         height="34.597065"
+         x="449.25955"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4346"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4348"
+           x="512.97003"
+           y="542.95288">emulator</tspan></text>
+    </g>
+    <g
+       id="g4350"
+       transform="translate(318.76415,440.99057)">
+      <rect
+         y="521.06683"
+         x="449.25955"
+         height="34.597065"
+         width="128.02519"
+         id="rect4352"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4354"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4356"
+           sodipodi:role="line">grpc_shim</tspan></text>
+    </g>
+    <g
+       transform="translate(-343.74454,404.32945)"
+       id="g4358">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4360"
+         width="79.911987"
+         height="34.597065"
+         x="473.31616"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4362"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4364"
+           x="512.97003"
+           y="542.95288">interface</tspan></text>
+    </g>
+    <g
+       id="g4366"
+       transform="translate(-343.59434,365.68868)">
+      <rect
+         y="521.06683"
+         x="473.30771"
+         height="34.597065"
+         width="79.92894"
+         id="rect4368"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4370"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4372"
+           sodipodi:role="line">loader</tspan></text>
+    </g>
+    <g
+       transform="translate(-91.660377,308.12798)"
+       id="g4403">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4405"
+         width="128.02519"
+         height="34.597065"
+         x="449.25955"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4407"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4409"
+           x="512.97003"
+           y="542.95288">adapter_agent</tspan></text>
+    </g>
+    <g
+       id="g4411"
+       transform="translate(60.297163,308.12798)">
+      <rect
+         y="521.06683"
+         x="449.25955"
+         height="34.597065"
+         width="128.02519"
+         id="rect4413"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4415"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4417"
+           sodipodi:role="line">device_agent</tspan></text>
+    </g>
+    <g
+       transform="translate(-244.76416,131.40566)"
+       id="g4443">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4445"
+         width="79.92894"
+         height="34.597065"
+         x="473.30771"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4447"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4449"
+           x="512.97003"
+           y="542.95288">core</tspan></text>
+    </g>
+    <g
+       id="g4505"
+       transform="translate(-204.95283,50.396223)">
+      <g
+         transform="translate(119.48114,-226.13207)"
+         id="g4497">
+        <rect
+           y="892.91333"
+           x="334.41019"
+           height="95.147758"
+           width="639.99927"
+           id="rect4499"
+           style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:2.99999992, 0.99999997;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text4501"
+           y="910.86884"
+           x="965.6394"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="910.86884"
+             x="965.6394"
+             id="tspan4503"
+             sodipodi:role="line">config</tspan></text>
+      </g>
+      <g
+         id="g4419"
+         transform="translate(173.20755,155.29878)">
+        <rect
+           y="521.06683"
+           x="449.25955"
+           height="34.597065"
+           width="128.02519"
+           id="rect4421"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text4423"
+           y="542.95288"
+           x="512.97003"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="542.95288"
+             x="512.97003"
+             id="tspan4425"
+             sodipodi:role="line">config_root</tspan></text>
+      </g>
+      <g
+         transform="translate(309.79557,155.29878)"
+         id="g4427">
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4429"
+           width="128.02519"
+           height="34.597065"
+           x="449.25955"
+           y="521.06683" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="512.97003"
+           y="542.95288"
+           id="text4431"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4433"
+             x="512.97003"
+             y="542.95288">config_node</tspan></text>
+      </g>
+      <g
+         id="g4435"
+         transform="translate(445.849,155.29878)">
+        <rect
+           y="521.06683"
+           x="449.25955"
+           height="34.597065"
+           width="128.02519"
+           id="rect4437"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text4439"
+           y="542.95288"
+           x="512.97003"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="542.95288"
+             x="512.97003"
+             id="tspan4441"
+             sodipodi:role="line">config_rev</tspan></text>
+      </g>
+      <g
+         id="g4451"
+         transform="translate(445.849,198.06608)">
+        <rect
+           y="521.06683"
+           x="449.25955"
+           height="34.597065"
+           width="128.02519"
+           id="rect4453"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="100%"
+           id="text4455"
+           y="534.95288"
+           x="512.97003"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:100%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             id="tspan4459"
+             y="534.95288"
+             x="512.97003"
+             sodipodi:role="line">config_rev</tspan><tspan
+             id="tspan4487"
+             y="547.45288"
+             x="512.97003"
+             sodipodi:role="line">_persisted</tspan></text>
+      </g>
+      <g
+         transform="translate(37.421385,197.79878)"
+         id="g4461">
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4463"
+           width="128.02519"
+           height="34.597065"
+           x="449.25955"
+           y="521.06683" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="512.97003"
+           y="542.95288"
+           id="text4465"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4467"
+             x="512.97003"
+             y="542.95288">config_branch</tspan></text>
+      </g>
+      <g
+         id="g4469"
+         transform="translate(37.421385,155.56608)">
+        <rect
+           y="521.06683"
+           x="449.25955"
+           height="34.597065"
+           width="128.02519"
+           id="rect4471"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text4473"
+           y="542.95288"
+           x="512.97003"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="542.95288"
+             x="512.97003"
+             id="tspan4475"
+             sodipodi:role="line">config_txn</tspan></text>
+      </g>
+      <g
+         transform="translate(173.47474,198.06608)"
+         id="g4477">
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4479"
+           width="128.02519"
+           height="34.597065"
+           x="449.25955"
+           y="521.06683" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="512.97003"
+           y="542.95288"
+           id="text4481"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4483"
+             x="512.97003"
+             y="542.95288">merge_3way</tspan></text>
+      </g>
+      <g
+         id="g4489"
+         transform="translate(578.74279,158.90724)">
+        <rect
+           y="560.35931"
+           x="179.77777"
+           height="34.597065"
+           width="128.02519"
+           id="rect4491"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text4493"
+           y="582.24536"
+           x="243.53607"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="582.24536"
+             x="243.53607"
+             id="tspan4495"
+             sodipodi:role="line">config_proxy</tspan></text>
+      </g>
+    </g>
+    <g
+       id="g4451-4"
+       transform="translate(212.25471,308.12798)">
+      <rect
+         y="521.06683"
+         x="449.25955"
+         height="34.597065"
+         width="128.02519"
+         id="rect4453-3"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text4455-3"
+         y="534.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:100%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           id="tspan4459-3"
+           y="534.95288"
+           x="512.97003"
+           sodipodi:role="line">logical_device</tspan><tspan
+           id="tspan4487-1"
+           y="547.45288"
+           x="512.97003"
+           sodipodi:role="line">_agent</tspan></text>
+    </g>
+    <g
+       transform="translate(60.297163,147.30189)"
+       id="g4571">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4573"
+         width="128.02519"
+         height="34.597065"
+         x="449.25955"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4575"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4577"
+           x="512.97003"
+           y="542.95288">dispatcher</tspan></text>
+    </g>
+    <g
+       id="g4579"
+       transform="translate(212.25471,147.30189)">
+      <rect
+         y="521.06683"
+         x="449.25955"
+         height="34.597065"
+         width="128.02519"
+         id="rect4581"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4583"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4585"
+           sodipodi:role="line">local_handler</tspan></text>
+    </g>
+    <g
+       transform="translate(-91.660377,147.30189)"
+       id="g4587">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4589"
+         width="128.02519"
+         height="34.597065"
+         x="449.25955"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4591"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4593"
+           x="512.97003"
+           y="542.95288">global_handler</tspan></text>
+    </g>
+    <g
+       id="g4603"
+       transform="translate(-409.12264,28.905663)">
+      <rect
+         y="521.06683"
+         x="473.30771"
+         height="34.597065"
+         width="79.92894"
+         id="rect4605"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4607"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4609"
+           sodipodi:role="line">main</tspan></text>
+    </g>
+    <g
+       transform="translate(-372.50318,77.758583)"
+       id="g4611">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4613"
+         width="129.64592"
+         height="34.597065"
+         x="448.44922"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4615"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4617"
+           x="512.97003"
+           y="542.95288">coordinator</tspan></text>
+    </g>
+    <g
+       id="g4619"
+       transform="translate(-409.02831,121.36791)">
+      <rect
+         y="521.06683"
+         x="486.13791"
+         height="34.597065"
+         width="54.268562"
+         id="rect4621"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4623"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4625"
+           sodipodi:role="line">leader</tspan></text>
+    </g>
+    <g
+       id="g4627"
+       transform="translate(-336.88679,121.36791)">
+      <rect
+         y="521.06683"
+         x="485.336"
+         height="34.597065"
+         width="55.872337"
+         id="rect4629"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4631"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4633"
+           sodipodi:role="line">worker</tspan></text>
+    </g>
+    <g
+       id="g4691"
+       transform="translate(-44.90566,114.09434)">
+      <g
+         id="g4657"
+         transform="translate(-21.603774,-426.21699)">
+        <rect
+           style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3.00000004, 1.00000001;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4659"
+           width="678.23688"
+           height="60.413372"
+           x="296.17258"
+           y="893.16669" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="965.6394"
+           y="910.86884"
+           id="text4661"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4663"
+             x="965.6394"
+             y="910.86884">northbound</tspan></text>
+      </g>
+      <g
+         id="g4665"
+         transform="translate(47.783015,-41.660364)">
+        <rect
+           y="521.06683"
+           x="449.25955"
+           height="34.597065"
+           width="128.02519"
+           id="rect4667"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text4669"
+           y="542.95288"
+           x="512.97003"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="542.95288"
+             x="512.97003"
+             id="tspan4671"
+             sodipodi:role="line">grpc_server</tspan></text>
+      </g>
+      <g
+         transform="translate(243.34906,-41.660364)"
+         id="g4673">
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4675"
+           width="128.02519"
+           height="34.597065"
+           x="449.25955"
+           y="521.06683" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="512.97003"
+           y="542.95288"
+           id="text4677"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4679"
+             x="512.97003"
+             y="542.95288">kafka_client</tspan></text>
+      </g>
+      <g
+         id="g4681"
+         transform="translate(-147.78302,-41.660364)">
+        <rect
+           y="521.06683"
+           x="449.25955"
+           height="34.597065"
+           width="128.02519"
+           id="rect4683"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="100%"
+           id="text4685"
+           y="536.95288"
+           x="512.97003"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:100%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="536.95288"
+             x="512.97003"
+             id="tspan4687"
+             sodipodi:role="line">rest_server/</tspan><tspan
+             id="tspan4689"
+             y="549.45288"
+             x="512.97003"
+             sodipodi:role="line">health_check</tspan></text>
+      </g>
+    </g>
+    <g
+       id="g4781"
+       transform="translate(-225.72642,331.36792)">
+      <g
+         transform="translate(-543.63208,-537.67925)"
+         id="g4730">
+        <rect
+           y="893.16675"
+           x="844.66315"
+           height="78.856773"
+           width="129.74631"
+           id="rect4732"
+           style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3.00000013, 1.00000004;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text4734"
+           y="910.86884"
+           x="965.6394"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="910.86884"
+             x="965.6394"
+             id="tspan4736"
+             sodipodi:role="line">protos</tspan></text>
+      </g>
+      <g
+         transform="translate(-165.37736,-142.69811)"
+         id="g4710">
+        <rect
+           y="545.87817"
+           x="493.30771"
+           height="24.974424"
+           width="79.92894"
+           id="rect4726"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4724"
+           width="79.92894"
+           height="24.974424"
+           x="489.30771"
+           y="541.87817" />
+        <rect
+           y="537.87817"
+           x="485.30771"
+           height="24.974424"
+           width="79.92894"
+           id="rect4722"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4720"
+           width="79.92894"
+           height="24.974424"
+           x="481.30771"
+           y="533.87817" />
+        <rect
+           y="529.87817"
+           x="477.30771"
+           height="24.974424"
+           width="79.92894"
+           id="rect4718"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4712"
+           width="79.92894"
+           height="24.974424"
+           x="473.30771"
+           y="525.87817" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="512.97003"
+           y="542.95288"
+           id="text4714"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4716"
+             x="512.97003"
+             y="542.95288">voltha</tspan></text>
+      </g>
+    </g>
+    <g
+       id="g4796"
+       transform="translate(-372.50318,257.75858)">
+      <rect
+         y="521.06683"
+         x="448.44922"
+         height="34.597065"
+         width="129.64592"
+         id="rect4798"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4800"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4802"
+           sodipodi:role="line">event_bus</tspan></text>
+    </g>
+    <g
+       transform="translate(-372.50318,303.75858)"
+       id="g4804">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4806"
+         width="129.64592"
+         height="34.597065"
+         x="448.44922"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4808"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4810"
+           x="512.97003"
+           y="542.95288">frameio</tspan></text>
+    </g>
+    <g
+       transform="translate(-616.85849,-529.61321)"
+       id="g4812">
+      <rect
+         y="892.91339"
+         x="680.82526"
+         height="177.90683"
+         width="293.58423"
+         id="rect4814"
+         style="fill:#a9e1b9;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3.00000001, 1.00000002;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4816"
+         y="910.86884"
+         x="965.6394"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="910.86884"
+           x="965.6394"
+           id="tspan4818"
+           sodipodi:role="line">chameleon</tspan></text>
+    </g>
+    <g
+       transform="translate(-409.12264,-157.09434)"
+       id="g4820">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4822"
+         width="79.92894"
+         height="34.597065"
+         x="473.30771"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4824"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4826"
+           x="512.97003"
+           y="542.95288">main</tspan></text>
+    </g>
+    <g
+       id="g4828"
+       transform="translate(-256.85849,-529.61321)">
+      <rect
+         style="fill:#cbcff7;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3, 1.00000001;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4830"
+         width="353.72574"
+         height="177.90683"
+         x="620.68378"
+         y="892.91339" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="965.6394"
+         y="910.86884"
+         id="text4832"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4834"
+           x="965.6394"
+           y="910.86884">ofagent</tspan></text>
+    </g>
+    <g
+       id="g4836"
+       transform="translate(-109.12264,-157.09434)">
+      <rect
+         y="521.06683"
+         x="473.30771"
+         height="34.597065"
+         width="79.92894"
+         id="rect4838"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4840"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4842"
+           sodipodi:role="line">main</tspan></text>
+    </g>
+    <g
+       transform="translate(-56.858487,-529.61321)"
+       id="g4844">
+      <rect
+         y="892.91339"
+         x="781.0611"
+         height="177.90683"
+         width="193.34837"
+         id="rect4846"
+         style="fill:#f5d5bf;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3, 1.00000001;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4848"
+         y="910.86884"
+         x="965.6394"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="910.86884"
+           x="965.6394"
+           id="tspan4850"
+           sodipodi:role="line">netconf</tspan><tspan
+           y="926.49384"
+           x="965.6394"
+           sodipodi:role="line"
+           id="tspan5026">_server</tspan></text>
+    </g>
+    <g
+       transform="translate(250.87736,-157.09434)"
+       id="g4852">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4854"
+         width="79.92894"
+         height="34.597065"
+         x="473.30771"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4856"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4858"
+           x="512.97003"
+           y="542.95288">main</tspan></text>
+    </g>
+    <g
+       id="g4860"
+       transform="translate(-305.28301,-148.24527)">
+      <rect
+         y="521.06683"
+         x="462.89163"
+         height="34.597065"
+         width="100.76104"
+         id="rect4862"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4864"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4866"
+           sodipodi:role="line">web_server</tspan></text>
+    </g>
+    <g
+       transform="translate(-215.11321,-96.509427)"
+       id="g4868">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4870"
+         width="94.345947"
+         height="34.597065"
+         x="466.09918"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4872"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4874"
+           x="512.97003"
+           y="542.95288">swagger_ui</tspan></text>
+    </g>
+    <g
+       id="g4876"
+       transform="translate(-215.91509,-23.943403)">
+      <rect
+         y="521.06683"
+         x="466.09918"
+         height="34.597065"
+         width="94.345947"
+         id="rect4878"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4880"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4882"
+           sodipodi:role="line">grpc_client</tspan></text>
+    </g>
+    <g
+       id="g4884"
+       transform="translate(-317.72641,-96.113187)">
+      <rect
+         y="521.06683"
+         x="471.7124"
+         height="34.597065"
+         width="83.11953"
+         id="rect4886"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text4888"
+         y="534.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:100%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="534.95288"
+           x="512.97003"
+           id="tspan4890"
+           sodipodi:role="line">swagger</tspan><tspan
+           y="547.45288"
+           x="512.97003"
+           sodipodi:role="line"
+           id="tspan5024">_gen</tspan></text>
+    </g>
+    <g
+       transform="translate(-407.16981,-96.113207)"
+       id="g4892">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999982;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4894"
+         width="65.47802"
+         height="34.597065"
+         x="480.53314"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4896"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4898"
+           x="512.97003"
+           y="542.95288">gw_gen</tspan></text>
+    </g>
+    <g
+       transform="translate(-191.25472,113.67925)"
+       id="g4900">
+      <g
+         id="g4902"
+         transform="translate(-543.63208,-537.67925)">
+        <rect
+           style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3.00000013, 1.00000005;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4904"
+           width="164.22743"
+           height="67.630356"
+           x="808.18207"
+           y="889.16675" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="963.6394"
+           y="906.86884"
+           id="text4906"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan4908"
+             x="963.6394"
+             y="906.86884">compiled gw modules</tspan></text>
+      </g>
+      <g
+         id="g4910"
+         transform="translate(-167.37736,-148.69811)">
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4916"
+           width="79.92894"
+           height="24.974424"
+           x="485.30771"
+           y="537.87817" />
+        <rect
+           y="533.87817"
+           x="481.30771"
+           height="24.974424"
+           width="79.92894"
+           id="rect4918"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect4920"
+           width="79.92894"
+           height="24.974424"
+           x="477.30771"
+           y="529.87817" />
+        <rect
+           y="525.87817"
+           x="473.30771"
+           height="24.974424"
+           width="79.92894"
+           id="rect4922"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text4924"
+           y="542.95288"
+           x="512.97003"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="542.95288"
+             x="512.97003"
+             id="tspan4926"
+             sodipodi:role="line">voltha</tspan></text>
+      </g>
+    </g>
+    <g
+       transform="translate(45.506023,-67.354407)"
+       id="g4928">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4930"
+         width="94.345947"
+         height="34.597065"
+         x="466.09918"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4932"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4934"
+           x="512.97003"
+           y="542.95288">agent</tspan></text>
+    </g>
+    <g
+       transform="translate(45.843903,-111.44857)"
+       id="g4944">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4946"
+         width="94.345947"
+         height="34.597065"
+         x="466.09918"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:100%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="534.95288"
+         id="text4948"
+         sodipodi:linespacing="100%"><tspan
+           sodipodi:role="line"
+           id="tspan4950"
+           x="512.97003"
+           y="534.95288">connection</tspan><tspan
+           sodipodi:role="line"
+           x="512.97003"
+           y="547.45288"
+           id="tspan4968">_mgr</tspan></text>
+    </g>
+    <g
+       id="g4952"
+       transform="translate(44.857223,-23.551916)">
+      <rect
+         y="521.06683"
+         x="466.09918"
+         height="34.597065"
+         width="94.345947"
+         id="rect4954"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4956"
+         y="542.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="542.95288"
+           x="512.97003"
+           id="tspan4958"
+           sodipodi:role="line">grpc_client</tspan></text>
+    </g>
+    <g
+       transform="translate(146.06018,-67.264017)"
+       id="g4960">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4962"
+         width="94.345947"
+         height="34.597065"
+         x="466.09918"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4964"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4966"
+           x="512.97003"
+           y="542.95288">loxi</tspan></text>
+    </g>
+    <g
+       transform="translate(146.10908,-23.551916)"
+       id="g4970">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect4972"
+         width="94.345947"
+         height="34.597065"
+         x="466.09918"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text4974"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan4976"
+           x="512.97003"
+           y="542.95288">converter</tspan></text>
+    </g>
+    <g
+       id="g4986"
+       transform="translate(146.07974,-110.94562)">
+      <rect
+         y="521.06683"
+         x="466.09918"
+         height="34.597065"
+         width="94.345947"
+         id="rect4988"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text4990"
+         y="534.95288"
+         x="512.97003"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:100%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="534.95288"
+           x="512.97003"
+           id="tspan4992"
+           sodipodi:role="line">of</tspan><tspan
+           id="tspan4994"
+           y="547.45288"
+           x="512.97003"
+           sodipodi:role="line">_connection</tspan></text>
+    </g>
+    <g
+       transform="translate(71.103773,97.641513)"
+       id="g4996">
+      <g
+         id="g4998"
+         transform="translate(-543.63208,-537.67925)">
+        <rect
+           style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:3.00000013, 1.00000004;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect5000"
+           width="129.74631"
+           height="78.856773"
+           x="844.66315"
+           y="893.16675" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           x="965.6394"
+           y="910.86884"
+           id="text5002"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan5004"
+             x="965.6394"
+             y="910.86884">protos</tspan></text>
+      </g>
+      <g
+         id="g5006"
+         transform="translate(-165.37736,-142.69811)">
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect5008"
+           width="79.92894"
+           height="24.974424"
+           x="493.30771"
+           y="545.87817" />
+        <rect
+           y="541.87817"
+           x="489.30771"
+           height="24.974424"
+           width="79.92894"
+           id="rect5010"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect5012"
+           width="79.92894"
+           height="24.974424"
+           x="485.30771"
+           y="537.87817" />
+        <rect
+           y="533.87817"
+           x="481.30771"
+           height="24.974424"
+           width="79.92894"
+           id="rect5014"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <rect
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="rect5016"
+           width="79.92894"
+           height="24.974424"
+           x="477.30771"
+           y="529.87817" />
+        <rect
+           y="525.87817"
+           x="473.30771"
+           height="24.974424"
+           width="79.92894"
+           id="rect5018"
+           style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text5020"
+           y="542.95288"
+           x="512.97003"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="542.95288"
+             x="512.97003"
+             id="tspan5022"
+             sodipodi:role="line">voltha</tspan></text>
+      </g>
+    </g>
+    <g
+       transform="translate(304.85722,-23.551916)"
+       id="g5028">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect5030"
+         width="94.345947"
+         height="34.597065"
+         x="466.09918"
+         y="521.06683" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.5px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         x="512.97003"
+         y="542.95288"
+         id="text5032"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           id="tspan5034"
+           x="512.97003"
+           y="542.95288">grpc_client</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="311.14832"
+       y="1042.5872"
+       id="text4832-0"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4834-9"
+         x="311.14832"
+         y="1042.5872">Voltha Component Snapshot 11/30/2016</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="REST Device Operation"
+     style="display:inline">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)"
+       d="m 210.19277,38.622045 0,45.130738"
+       id="path5074"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5642);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 177.16535,120.11811 0,7.08661 -31.88976,0 -0.28351,75.827"
+       id="path5890"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6186);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 194.88189,222.87401 53.14961,0"
+       id="path6232"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6254);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 294.09449,244.13386 0,28.34645 219.68504,0 0,35.43307"
+       id="path6246"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6338);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 513.77953,339.80315 0,21.25984 -92.12599,0 0,21.25984"
+       id="path6330"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6428);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 485.43307,400.03937 24.80315,0"
+       id="path6420"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6524);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 637.79528,400.03937 24.80315,0"
+       id="path6516"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6626);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 726.41128,415.45663 -0.0333,12.9292"
+       id="path6618"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker7299);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 574.01575,524.05512 0,17.71653"
+       id="path6756"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6878);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 510.23622,559.48819 -24.80315,0"
+       id="path6870"
+       inkscape:connector-curvature="0" />
+    <path
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6998);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 421.65354,577.20472 0,53.14961"
+       id="path6990"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       id="rect7417"
+       width="639.93085"
+       height="96.591026"
+       x="248.03148"
+       y="428.38583"
+       ry="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="495.24677"
+       y="45.700596"
+       id="text4832-0-1"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4834-9-4"
+         x="495.24677"
+         y="45.700596">Propagation of REST Operation on a Device</tspan></text>
+  </g>
+</svg>
diff --git a/docs/manuals/user/old/olt-oftest-notes.md b/docs/manuals/user/old/olt-oftest-notes.md
new file mode 100644
index 0000000..d76c398
--- /dev/null
+++ b/docs/manuals/user/old/olt-oftest-notes.md
@@ -0,0 +1,165 @@
+# Notes on How to Run olt-oftest on with Voltha
+
+[Still raw notes.]
+
+Steps:
+
+### Bring up dev host and install prerequisites
+
+Assuming a fresh Vagrant machine:
+
+```
+cd ~/voltha  # whatever location your Voltha repo dir is
+rm -fr venv-linux  # to make sure we don't have residues
+vagrant destroy -f  # ditto
+vagrant up
+vagrant ssh
+cd /voltha
+git clone git@bitbucket.org:corddesign/olt-oftest.git
+git clone https://github.com/floodlight/oftest.git
+git clone git://github.com/mininet/mininet
+./mininet/utils/install.sh
+pip install pypcap
+```
+
+### Build Voltha proto derivatives and start Voltha
+
+On the above Vagrant box:
+
+```
+cd /voltha
+. env.sh
+make protos
+docker-compose -f compose/docker-compose-system-test.yml up -d consul zookeeper kafka registrator fluentd
+docker-compose -f compose/docker-compose-system-test.yml ps  # to see if all are up and happy
+```
+
+For development purposes, it is better to run voltha, chameleon and ofagent in the terminal, so we do that.
+
+Open three terminals on the Vagrant host. In terminal one, start voltha:
+
+```
+cd /voltha
+. env.sh
+./voltha/main.py --kafka=@kafka
+```
+
+In the second terminal, start chameleon:
+
+```
+cd /voltha
+. env.sh
+./chameleon/main.py
+```
+
+In the third terminal, start ofagent:
+
+```
+cd /voltha
+. env.sh
+./ofagent/main.py
+```
+
+Open a fourth terminal and run some sanity checks:
+
+To see we can reach Voltha via REST:
+
+```
+curl -s http://localhost:8881/health | jq '.'
+```
+
+and
+
+```
+curl -s -H 'Get-Depth: 2' http://localhost:8881/api/v1/local | jq '.'
+```
+
+To verify we have exactly one logical device (this is important for olt-oftest, which assumes this):
+
+```
+curl -s http://localhost:8881/api/v1/local/logical_devices | jq '.items'
+```
+
+Check in the output that there is one entry in the logical device list, along these lines:
+
+```
+[
+  {
+    "datapath_id": "1",
+    "root_device_id": "simulated_olt_1",
+    "switch_features": {
+      "auxiliary_id": 0,
+      "n_tables": 2,
+      "datapath_id": "0",
+      "capabilities": 15,
+      "n_buffers": 256
+    },
+    "id": "simulated1",
+    "ports": [],
+    "desc": {
+      "dp_desc": "n/a",
+      "sw_desc": "simualted pon",
+      "hw_desc": "simualted pon",
+      "serial_num": "1cca4175aa8d4163b8b4aed9bc65c380",
+      "mfr_desc": "cord porject"
+    }
+  }
+]
+```
+
+
+To verify that the above logical device has all three logical ports, run this:
+
+```
+curl -s http://localhost:8881/api/v1/local/logical_devices/simulated1/ports | jq '.items'
+```
+
+This shall have three entries, one OLT NNI port and two ONU (UNI) ports. Make note of the corresponding
+```of_port.port_no``` numbers. They shall be as follows:
+
+* For OLT port (```id=olt1```): ```ofp_port.port_no=129```
+* For ONU1 port (```id=onu1```): ```ofp_port.port_no=1```
+* For ONU2 port (```id=onu2```): ```ofp_port.port_no=2```
+
+If they are different, you will need to adjust olt-oftest input arguments accordingly.
+
+Finally, check the flow and flow_group tables of the logical device; they should both be empty at this point:
+
+
+```
+curl -s http://localhost:8881/api/v1/local/logical_devices/simulated1/flows | jq '.items'
+curl -s http://localhost:8881/api/v1/local/logical_devices/simulated1/flow_groups | jq '.items'
+```
+
+### Create fake interfaces needed by olt-oftest
+
+Despite that we will run olt-oftest with "fake_dataplane" mode, meaning that it will not attempt to send/receive dataplane traffic, it still wants to be able to open its usual dataplane interfaces. We will make it happy by creating a few veth interfaces:
+
+```
+sudo ip link add type veth
+sudo ip link add type veth
+sudo ip link add type veth
+sudo ip link add type veth
+sudo ifconfig veth0 up
+sudo ifconfig veth2 up
+sudo ifconfig veth4 up
+sudo ifconfig veth6 up
+```
+
+### Start olt-oftest in fake_dataplane mode
+
+```
+cd /voltha
+sudo -s
+export PYTHONPATH=/voltha/voltha/adapters/tibit_olt:/voltha/mininet
+./oftest/oft --test-dir=olt-oftest/ \
+    -t "fake_dataplane=True;olt_port=129;onu_port=1;onu_port2=2" \
+    -i 1@veth0 \
+    -i 2@veth2 \
+    -i 129@veth4 \
+    -p 6633 -V 1.3 -vv -T olt-complex
+```
+
+The above shall finish with OK (showing seven (7) or more tests completed).
+
+
diff --git a/docs/manuals/user/old/pon-requirements.md b/docs/manuals/user/old/pon-requirements.md
new file mode 100644
index 0000000..b6c78f7
--- /dev/null
+++ b/docs/manuals/user/old/pon-requirements.md
@@ -0,0 +1,120 @@
+# PON Capability Requirements
+
+v0.3
+
+This document summarizes high level functional requirements of a PON system to make it compatible with Voltha and the CORD-based disaggregated access design.
+
+Voltha aims to support PON systems that adhere to the separation of control plane from hardware. That means that many protocols that used to be implemented on the OLT in legacy system are now implemented in an SDN controller, sitting "above" Voltha, thus separated from the hardware. Examples of such protocols are:
+
+* 802.1x (EAPOL) authentication
+* DHCP
+* IGMP
+
+Note: In what follows we use the term ONU as a generic term to refer to the device that terminates the subscriber end of the PON fiber, even in cases where the more accurate term would be ONT.
+
+## Reference Diagram
+
+Voltha may be deployed on a compute environment (e.g., in the CO), in which case it communicates with the OLTs via an aggregation network. The following reference diagram illustrates this deployment model:
+
+![image](pon-requirements/reference-inband.svg)
+
+Alternatively, Voltha may be depolyed onto the OLT device itself. The reference points remain the same, except that the Voltha no longer uses a L2 aggregation network to communicate with the OLT device complex, as show in the diagram below:
+
+![image](pon-requirements/reference-internal.svg)
+
+Despite the horizontal layout, we use the following terms in their conventional meaning in PONs:
+
+* **Downstream** refers to data flowing _from_ the upstream network or Voltha Core _toward_ the subscriber's residential gateway (RG). In the diagram this corresponds to the left to right direction.
+* **Upstream** refers to data flowing _from_ the direction of the RG _toward_ the direction of Voltha Core or the upstream network. In the diagram this corresponds to the right to left direction.
+
+We define the following reference points:
+
+**(Pa) Voltha Adapter Interface**
+
+Uniform, abstract, vendor agnostic programmatic (Python) interface between Voltha's Core and a vendor's OLT Adapter for Voltha.
+
+Purpose:
+
+* Downstream:
+  * Invoking management- and control-plane operations _on_ the OLT.
+  * Passing management operation protocol frames on behalf of an ONU Adapter to the ONU _via_ the OLT
+  * Forwarding control protocol frames to be injected by the OLT toward the RG (e.g., 802.1x, IGMP)  
+* Upstream:
+  * Signaling asynchronous events to Voltha Core (e.g., OLT discovered, ONU activated, alarms, and performance metric data)
+  * Forwarding control-plane messages diverted from the PON network toward the SDN controller (e.g., 802.1x, IGMP)
+  
+**(Pc) Control and Management channels**
+
+This interface carries management and control protocol communication between Voltha and the PON complex. This can include protocols terminated by the OLT, by the ONU, or by the RG. Encapsulation of these protocols at Pc can be OLT vendor specific, but their payload may be specific to the vendor of the respective device. The management protocols targeting the OLT can be completely specific to the OLT vendor.
+
+If Voltha is connected to the OLT device via an aggregation network, Pc messages need to be isolated from other data plane traffic using an isolation mechanism applicable to the aggregation network, such as using one or more dedicated VLANs.
+
+Purpose:
+
+* Downstream:
+  * Invoke OLT management operations using possibly proprietary protocols, specific to the OLT vendor. Examples: configure OLT device attributes; disable an ONU port.
+  * Invoke ONU management operations using protocols specific to the ONU (OMCI, EOAM, etc.), and tunneled by the OLT Adapter and OLT so that it may be encapsulated at Pc in ways specific to the OLT vendor.
+  * Carry control plane messages to be forwarded toward the RG. If the injection of such frames into the PON is done by the OLT, the encapsulation method of these frames at Pc can be OLT vendor specific. Thus, the OLT Adapter and the OLT play a tunneling/forwarding role.
+* Upstream:
+  * Respond to OLT management operations
+  * Carry ONU management protocol responses from the ONU to the ONU Adapter via the OLT Adapter
+  * Carry control plane protocol messages isolated by the OLT and to be destined to the SDN controller. The encapsulation of such messages can be OLT vendor specific at Pc, but must encode/preseve the source (e.g., ONU port number) so that the source of the message can be identified.
+  
+**(Pd) Data plane channels**
+
+This reference point carries all unicast and multicast "payload" data flows of the subscriber, flows with which Voltha is not be concerned, including the subscriber's Internet, VoIP and multicast-based video (TV) traffic. Thus, it can include both unicast and multicast flows. It can also include control and management plane flows for protocols not involving Voltha and the SDN controller.
+
+**(Po) OLT upstream-facing interface**
+
+This is the interface with which an OLT device is connected to the access aggregation network, i.e., to an upstream data network and to its control- and management systems. This interface thus carries the payload of both Pd and Pc. Pc and Pd flows may be carried via the same OLT physical port (in-band management and control). In the in-band case, flows of Pd vs Pc are typically isolated by VLANs. In the case of out-of band management and control Pc and Pd may be isolated via dedicated physical ports (e.g., when Pc as a whole or portions of Pc protocols access the OLT via its management port).
+
+**(Pr) ONU residential-facing interface**
+
+This is typically a L2 (Ethernet) interface carrying control plane and data plane flows to and from the RG. This includes all subscriber "payload" flows, such as Internet, VoIP and video service traffic, but it also includes control protocol flows terminated by Voltha or the SDN controller. However this distinction is invisible at this reference point, as the RG must be able to behave in the same way irregardless of being used in a disaggregated (Voltha-based) PON network or in a conventional legacy PON network.
+
+## Minimal Phase 1 Requirements
+While Voltha is designed to cater for a growing set of requirements and tries to approach the access devices with certain degree of genericness, in the first phase of the implementation it focuses on a specific feature set and behavior. For an OLT/ONT combo to operate with Voltha, the following is expected. Note that VOLTHA does not prescribe the functional breakdown of these requirements between the OLT Adapter and the OLT device, only that the two jointly must yield the desired functionality.
+
+### OLT and OLT Adapter Requirements
+* [R-1] OLT Adapter SHOULD be able to auto-discover new OLT devices and notify Voltha CORE about these. In the integrated case (Voltha runs on the OLT device), this is a trivial task. In the compute based implementation this requires the OLTs to regularly transmit a "beacon" signal (e.g., on a specific VLAN) and the adapter to "listen" on the given VLAN and look for OLTs not yet registered with Voltha.
+* [R-2] OLT Adapter MUST be able to establish a control communication channel with the OLT. This may or may not be done in a connection oriented fashion, however, the Adapter must be able to use a heart-beat mechanism to monitor the availability of the channel and detect if communication is lost to the device. Any change in status must be signaled to Voltha core via the appropriate API.
+* [R-3] Upon request from Voltha Core, the Adapter MUST be able to perform the initial activation of an OLT device. This may involve any or all of the following and must result in a state where all remaining requirements listed below (R-4, R-5, ...) are satisfiable:
+	* Upgrade device to desired software level
+	* Reset device to a known initial configuration
+	* Download and activate "golden" device configuration
+	* Gather all inventory information from device
+	* Start monitoring device health and setup alarm forwarding to Adapter and Voltha Core
+	* Start monitoring control communication to device and signal state changes to Voltha Core
+	* Start detection of connected ONUs and notify Voltha Core on arrival/departure events
+* [R-4] The OLT MUST be able to "range" ONUs and detection of a new ONU MUST be signaled to Voltha Core via the appropriate API. This API call SHALL provide a minimalistic type information on the ONU, enough to allow Voltha to associate the appropriate ONU Adapter for the ONU.
+* [R-5] The OLT MUST be able to detect loss of communication with an ONU and signal the loss as well as recovery events to Voltha Core via the Adapter.
+* [R-6] Upon API request, the OLT Adapter must be able to perform OLT-side activation procedures associated to a given ONU. This includes establishing a default PON channel dedicated to the ONU, as well as the installation of a small set of forwarding rules which allows any and all 802.1x (EA-POL) upstream messages to be redirected toward Voltha via the help of the OLT Adapter. It is important that the Adapter can reconstruct the source ONU port before the message is passed to Voltha Core. The mode and encapsulation of such forwarded messages from the OLT to the Adapter is up to the Adapter and the OLT. Nevertheless, here are two examples how this can be accomplished:
+	* The redirected frame is handled by the control and management proxy residing on the OLT and passed up as a custom message to the Adapter. The encapsulation methods may contain any and all metadata such as source port ID.
+	* A dedicated VLAN is used for all redirected packets and an additional (inner) VLAN tag is used to identify the source port. The former can be used allow the adapter to receive such frames, while the latter can be used by the adapter to reconstruct the port ID before the frame is passed up to Voltha Core.
+* [R-7] The Adapter and OLT MUST allow Voltha to send and receive OMCI management frames to and from an ONU. This allows Voltha to complete the ONU-side part of the ONU activation.
+* [R-8] The Adapter MUST allow Voltha to send 802.1x frames back toward the ONU via the Adapter and OLT. Voltha will use logical port numbers to address the ONU/RG, and the Adapter and OLT MUST be able to map this information to whatever is needed on the Adapter to OLT link. The injection of the EA-POL frames MUST be done such that the RG receives the frame without knowing that the 802.1x authentication happened outside of the OLT device (transparent operation).
+* [R-9] The Adapter and OLT MUST allow Voltha to establish unicast forwarding of subscriber traffic upstream (toward the aggregation network) and downstream (from the aggregation network toward the subscriber). In Phase 1 at least one such channel must be supported. Frames on the uplink side may be untagged, tagged with an OLT-specific pre-configured VLAN, or dual tagged with an OLT-specific VLAN and a subscriber specific VLAN ID. In the uplink direction, selection of a static CoS bit SHALL be possible.
+* [R-10] The Adapter and OLT MUST support the activation of additional control plane packet redirection, including at least for the following frame types (note that in the same way as for 802.1x, the source port MUST be conveyed such that the Adapter can identify it before the frame is passed into Voltha Core) :
+	* IGMP v3 messages
+	* DHCP IPv4 and IPv6 messages
+* [R-11] The Adapter and OLT MUST be able support the injection of arbitrary packets by Voltha into the PON network in the downstream direction toward any of the active ONUs.
+* [R-12] The Adapter and OLT SHALL allow Voltha to activate additional unicast flows associated with subscriber, with unique CoS mapping and vlan tagging options.
+* [R-13] The Adapter and OLT MUST allow Voltha to add/remove ONUs to specific multicast flows (video channels). Multicast is data flows are downstream only and may arrive to the OLT at specific VLAN tags. The OLT may be asked to pop such VLAN headers before forwarding them to the PON. If the OLT maps all multicast  flows to the broadcast channel of the PON, than once the generic flow is established, not further actions many be triggered by the changes to multicast flows. However, it is likely that Voltha will need to communicate to the ONUs upon these events and the OLT MUST assist in the tunneling of the needed protocol messages (e.g., OMCI) between Voltha and the ONU (see R-7).
+* [R-14] The Adapter and OLT MUST support request-based isolation of given ONU (when requested by Voltha). The isolation MUST result in a state where no frames (neither data plane nor control plane) are forwarded upstream.
+* [R-15] The Adapter and OLT MUST forward relevant async events (such as OLT alarms) to Voltha Core.
+* [R-16] The Adapter and OLT MUST be able to propagate async OMCI messages from the ONU to Voltha Core.
+* [R-17] The Adapter and OLT MUST support the removal of any multicast forwarding flow rules.
+* [R-18] The Adapter and OLT MUST support the removal of any unicast flow rules.
+
+### ONU and ONU Adapter Requirements
+[TBD]
+
+
+## Sequence Diagrams
+
+
+### Cold Start Activation Sequence
+
+The following diagram captures the sequence of steps following a cold start of all sub-systems. This is the first sequence subject of lab testing.
+
+![image](sequences/cold-start-high-level.svg =900x)
diff --git a/docs/manuals/user/old/pon-requirements/olt-states.block b/docs/manuals/user/old/pon-requirements/olt-states.block
new file mode 100644
index 0000000..8e2c71d
--- /dev/null
+++ b/docs/manuals/user/old/pon-requirements/olt-states.block
@@ -0,0 +1,22 @@
+blockdiag {
+
+  // States
+  N1 [label = Not-exist, shape = beginpoint];
+  N2 [label = Not-exist, shape = beginpoint];
+  Discovered [shape = ellipse];
+  Pre-provisioned [shape = ellipse];
+  Activating [shape = ellipse];
+  Active [shape = ellipse, color = "#80ff80"];
+  Failed [shape = ellipse, color = "#ff8080"];
+  TBD [shape = ellipse, stacked];
+
+  // Transients
+  N1 -> Pre-provisioned;
+  N2 -> Discovered;
+  Pre-provisioned -> Activating;
+  Discovered -> Activating;
+  Activating -> Active;
+  Activating -> Failed [folded];
+  Active -> Failed [folded];
+
+}
diff --git a/docs/manuals/user/old/pon-requirements/olt-states.svg b/docs/manuals/user/old/pon-requirements/olt-states.svg
new file mode 100644
index 0000000..f265f68
--- /dev/null
+++ b/docs/manuals/user/old/pon-requirements/olt-states.svg
@@ -0,0 +1,81 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg viewBox="0 0 832 360" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs id="defs_block">
+    <filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
+      <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
+    </filter>
+  </defs>
+  <title>blockdiag</title>
+  <desc>blockdiag {
+
+  // States
+  N1 [label = Not-exist, shape = beginpoint];
+  N2 [label = Not-exist, shape = beginpoint];
+  Discovered [shape = ellipse];
+  Pre-provisioned [shape = ellipse];
+  Activating [shape = ellipse];
+  Active [shape = ellipse, color = "#80ff80"];
+  Failed [shape = ellipse, color = "#ff8080"];
+  TBD [shape = ellipse, stacked];
+
+  // Transients
+  N1 -&gt; Pre-provisioned;
+  N2 -&gt; Discovered;
+  Pre-provisioned -&gt; Activating;
+  Discovered -&gt; Activating;
+  Activating -&gt; Active;
+  Activating -&gt; Failed [folded];
+  Active -&gt; Failed [folded];
+
+}
+</desc>
+  <ellipse cx="131" cy="66" fill="rgb(0,0,0)" rx="8" ry="8" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="131" cy="146" fill="rgb(0,0,0)" rx="8" ry="8" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="323" cy="146" fill="rgb(0,0,0)" rx="64" ry="20" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="323" cy="66" fill="rgb(0,0,0)" rx="64" ry="20" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="515" cy="66" fill="rgb(0,0,0)" rx="64" ry="20" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="707" cy="66" fill="rgb(0,0,0)" rx="64" ry="20" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="131" cy="226" fill="rgb(0,0,0)" rx="64" ry="20" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="139" cy="314" fill="rgb(0,0,0)" rx="64" ry="20" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="135" cy="310" fill="rgb(0,0,0)" rx="64" ry="20" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="131" cy="306" fill="rgb(0,0,0)" rx="64" ry="20" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <ellipse cx="128" cy="60" fill="rgb(0,0,0)" rx="8" ry="8" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="47" x="159" y="55">Not-exist</text>
+  <ellipse cx="128" cy="140" fill="rgb(0,0,0)" rx="8" ry="8" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="47" x="159" y="135">Not-exist</text>
+  <ellipse cx="320" cy="140" fill="rgb(255,255,255)" rx="64" ry="20" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="55" x="320" y="145">Discovered</text>
+  <ellipse cx="320" cy="60" fill="rgb(255,255,255)" rx="64" ry="20" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="78" x="320" y="66">Pre-provisioned</text>
+  <ellipse cx="512" cy="60" fill="rgb(255,255,255)" rx="64" ry="20" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="50" x="512" y="66">Activating</text>
+  <ellipse cx="704" cy="60" fill="rgb(128,255,128)" rx="64" ry="20" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="32" x="704" y="65">Active</text>
+  <ellipse cx="128" cy="220" fill="rgb(255,128,128)" rx="64" ry="20" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="28" x="128" y="225">Failed</text>
+  <ellipse cx="136" cy="308" fill="rgb(255,255,255)" rx="64" ry="20" stroke="rgb(0,0,0)" />
+  <ellipse cx="132" cy="304" fill="rgb(255,255,255)" rx="64" ry="20" stroke="rgb(0,0,0)" />
+  <ellipse cx="128" cy="300" fill="rgb(255,255,255)" rx="64" ry="20" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="22" x="128" y="305">TBD</text>
+  <path d="M 136 60 L 248 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="255,60 248,56 248,64 255,60" stroke="rgb(0,0,0)" />
+  <path d="M 136 140 L 248 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="255,140 248,136 248,144 255,140" stroke="rgb(0,0,0)" />
+  <path d="M 384 140 L 432 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 432 140 L 432 60" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 432 60 L 440 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="447,60 440,56 440,64 447,60" stroke="rgb(0,0,0)" />
+  <path d="M 384 60 L 440 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="447,60 440,56 440,64 447,60" stroke="rgb(0,0,0)" />
+  <path d="M 576 60 L 632 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="639,60 632,56 632,64 639,60" stroke="rgb(0,0,0)" />
+  <path d="M 512 80 L 512 180" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 128 180 L 512 180" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 128 180 L 128 192" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="128,199 124,192 132,192 128,199" stroke="rgb(0,0,0)" />
+  <path d="M 704 80 L 704 180" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 128 180 L 704 180" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 128 180 L 128 192" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="128,199 124,192 132,192 128,199" stroke="rgb(0,0,0)" />
+</svg>
diff --git a/docs/manuals/user/old/pon-requirements/reference-inband.block b/docs/manuals/user/old/pon-requirements/reference-inband.block
new file mode 100644
index 0000000..95195e9
--- /dev/null
+++ b/docs/manuals/user/old/pon-requirements/reference-inband.block
@@ -0,0 +1,46 @@
+blockdiag {
+
+    //orientation = portrait;
+
+    // Blocks used
+    SDN [label = "SDN\nController", width = 64];
+    M [label = "PON\nManager", width = 64];
+    V [label = "Voltha\nCore & NBI", width = 74];
+    A [label = "OLT\nAdapter", width = 64];
+    A2 [label = "ONU\nAdapter", width = 64];
+    U [label = "Upstream\nNetwork", width = 64];
+    L2 [label = "L2 Aggr.", width = 64, shape = cloud];
+    OL [label = OLT, width = 64];
+    ON [label = ONU, width = 64];
+    R [label = RG, width = 64];
+
+    U <-> L2 [label = Pd];
+    L2 <-> OL [label = Pu];
+    OL <-> ON;
+    ON <-> R [label = Pr];
+    M <-> V [label = Pv, folded];
+    M <-> SDN;
+    SDN <-> V [label = Pv, folded];
+    V <-> A [label = Pa];
+    V <-> A2;
+    A <-> L2 [label = Pc];
+
+    group {
+        label = "Voltha Deployed on Compute Cluster with Inband Access to OLTs"
+        SDN; M; V; A; A2; U; L2; OL; ON; R;
+        color = "#FFFFFF";
+        fontsize = 24;
+
+        group {
+            label = "Voltha";
+            color = "#AAAAFF"
+            V; A; A2;
+        }
+
+        group {
+            label = "PON Network";
+            OL; ON;
+        }
+    }
+}
+
diff --git a/docs/manuals/user/old/pon-requirements/reference-inband.svg b/docs/manuals/user/old/pon-requirements/reference-inband.svg
new file mode 100644
index 0000000..af91109
--- /dev/null
+++ b/docs/manuals/user/old/pon-requirements/reference-inband.svg
@@ -0,0 +1,172 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg viewBox="0 0 842 360" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs id="defs_block">
+    <filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
+      <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
+    </filter>
+  </defs>
+  <title>blockdiag</title>
+  <desc>blockdiag {
+
+    //orientation = portrait;
+
+    // Blocks used
+    SDN [label = "SDN\nController", width = 64];
+    M [label = "PON\nManager", width = 64];
+    V [label = "Voltha\nCore &amp; NBI", width = 74];
+    A [label = "OLT\nAdapter", width = 64];
+    A2 [label = "ONU\nAdapter", width = 64];
+    U [label = "Upstream\nNetwork", width = 64];
+    L2 [label = "L2 Aggr.", width = 64, shape = cloud];
+    OL [label = OLT, width = 64];
+    ON [label = ONU, width = 64];
+    R [label = RG, width = 64];
+
+    U &lt;-&gt; L2 [label = Pd];
+    L2 &lt;-&gt; OL [label = Pu];
+    OL &lt;-&gt; ON;
+    ON &lt;-&gt; R [label = Pr];
+    M &lt;-&gt; V [label = Pv, folded];
+    M &lt;-&gt; SDN;
+    SDN &lt;-&gt; V [label = Pv, folded];
+    V &lt;-&gt; A [label = Pa];
+    V &lt;-&gt; A2;
+    A &lt;-&gt; L2 [label = Pc];
+
+    group {
+        label = "Voltha Deployed on Compute Cluster with Inband Access to OLTs"
+        SDN; M; V; A; A2; U; L2; OL; ON; R;
+        color = "#FFFFFF";
+        fontsize = 24;
+
+        group {
+            label = "Voltha";
+            color = "#AAAAFF"
+            V; A; A2;
+        }
+
+        group {
+            label = "PON Network";
+            OL; ON;
+        }
+    }
+}
+
+</desc>
+  <rect fill="rgb(255,255,255)" height="300" style="filter:url(#filter_blur)" width="730" x="56" y="30" />
+  <rect fill="rgb(170,170,255)" height="140" style="filter:url(#filter_blur)" width="218" x="56" y="110" />
+  <rect fill="rgb(243,152,0)" height="60" style="filter:url(#filter_blur)" width="208" x="450" y="110" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="205" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="72" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="74" x="67" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="205" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="205" y="206" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="72" y="286" />
+  <path d="M 343 142 A10,8 0 0 1 353 134 A10,6 0 0 1 378 134 A10,8 0 0 1 388 142 A10,8 0 0 1 388 158 A10,20 0 0 1 373 158 A10,20 0 0 1 358 158 A10,20 0 0 1 343 158 A10,8 0 0 1 343 142" fill="rgb(0,0,0)" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="461" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="589" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="717" y="126" />
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="202" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="23" x="234" y="59">SDN</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="234" y="71">Controller</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="69" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="101" y="58">PON</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="44" x="101" y="72">Manager</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="74" x="64" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="32" x="101" y="139">Voltha</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="58" x="101" y="151">Core &amp; NBI</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="202" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="22" x="234" y="138">OLT</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="40" x="234" y="152">Adapter</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="202" y="200" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="25" x="234" y="218">ONU</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="40" x="234" y="232">Adapter</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="69" y="280" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="49" x="101" y="300">Upstream</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="43" x="101" y="312">Network</text>
+  <path d="M 340 136 A10,8 0 0 1 350 128 A10,6 0 0 1 375 128 A10,8 0 0 1 385 136 A10,8 0 0 1 385 152 A10,20 0 0 1 370 152 A10,20 0 0 1 355 152 A10,20 0 0 1 340 152 A10,8 0 0 1 340 136" fill="rgb(255,255,255)" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="45" x="362" y="146">L2 Aggr.</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="458" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="22" x="490" y="145">OLT</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="586" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="25" x="618" y="145">ONU</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="714" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="15" x="746" y="145">RG</text>
+  <path d="M 234 88 L 234 100" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 101 100 L 234 100" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 101 100 L 101 112" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="234,81 230,88 238,88 234,81" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="101,119 97,112 105,112 101,119" stroke="rgb(0,0,0)" />
+  <path d="M 101 88 L 101 112" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="101,81 97,88 105,88 101,81" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="101,119 97,112 105,112 101,119" stroke="rgb(0,0,0)" />
+  <path d="M 141 60 L 194 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="134,60 141,56 141,64 134,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="201,60 194,56 194,64 201,60" stroke="rgb(0,0,0)" />
+  <path d="M 141 300 L 314 300" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 314 300 L 314 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 314 140 L 322 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="134,300 141,296 141,304 134,300" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="329,140 322,136 322,144 329,140" stroke="rgb(0,0,0)" />
+  <path d="M 402 140 L 450 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,140 402,136 402,144 395,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,140 450,136 450,144 457,140" stroke="rgb(0,0,0)" />
+  <path d="M 146 140 L 194 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="139,140 146,136 146,144 139,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="201,140 194,136 194,144 201,140" stroke="rgb(0,0,0)" />
+  <path d="M 146 140 L 170 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 170 140 L 170 220" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 170 220 L 194 220" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="139,140 146,136 146,144 139,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="201,220 194,216 194,224 201,220" stroke="rgb(0,0,0)" />
+  <path d="M 274 140 L 322 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="267,140 274,136 274,144 267,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="329,140 322,136 322,144 329,140" stroke="rgb(0,0,0)" />
+  <path d="M 530 140 L 578 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="523,140 530,136 530,144 523,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="585,140 578,136 578,144 585,140" stroke="rgb(0,0,0)" />
+  <path d="M 658 140 L 706 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="651,140 658,136 658,144 651,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="713,140 706,136 706,144 713,140" stroke="rgb(0,0,0)" />
+  <path d="M 146 140 L 194 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="139,140 146,136 146,144 139,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="201,140 194,136 194,144 201,140" stroke="rgb(0,0,0)" />
+  <path d="M 146 140 L 170 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 170 140 L 170 220" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 170 220 L 194 220" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="139,140 146,136 146,144 139,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="201,220 194,216 194,224 201,220" stroke="rgb(0,0,0)" />
+  <path d="M 274 140 L 322 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="267,140 274,136 274,144 267,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="329,140 322,136 322,144 329,140" stroke="rgb(0,0,0)" />
+  <path d="M 530 140 L 578 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="523,140 530,136 530,144 523,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="585,140 578,136 578,144 585,140" stroke="rgb(0,0,0)" />
+  <path d="M 658 140 L 706 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="651,140 658,136 658,144 651,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="713,140 706,136 706,144 713,140" stroke="rgb(0,0,0)" />
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="121" y="83" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="135" y="95">Pv</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="121" y="83" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="135" y="95">Pv</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="284" y="263" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="298" y="275">Pd</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="412" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="426" y="130">Pu</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="156" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="170" y="130">Pa</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="284" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="298" y="130">Pc</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="27" x="669" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="11" x="682" y="130">Pr</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="156" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="170" y="130">Pa</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="284" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="298" y="130">Pc</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="27" x="669" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="11" x="682" y="130">Pr</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="15" font-style="normal" font-weight="normal" text-anchor="middle" textLength="446" x="421" y="38">Voltha Deployed on Compute Cluster with Inband Access to OLTs</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="32" x="165" y="115">Voltha</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="71" x="554" y="115">PON Network</text>
+</svg>
diff --git a/docs/manuals/user/old/pon-requirements/reference-internal.block b/docs/manuals/user/old/pon-requirements/reference-internal.block
new file mode 100644
index 0000000..4b33854
--- /dev/null
+++ b/docs/manuals/user/old/pon-requirements/reference-internal.block
@@ -0,0 +1,48 @@
+blockdiag {
+
+    //orientation = portrait;
+
+    // Blocks used
+    SDN [label = "SDN\nController", width = 64];
+    M [label = "PON\nManager", width = 64];
+    V [label = "Voltha\nCore & NBI", width = 74];
+    A [label = "OLT\nAdapter", width = 64];
+    A2 [label = "ONU\nAdapter", width = 64];
+    U [label = "Upstream\nNetwork", width = 64];
+    L2 [label = "L2 Aggr.", width = 64, shape = cloud];
+    OL [label = "OLT chip\n& firmware", width = 64];
+    ON [label = ONU, width = 64];
+    R [label = RG, width = 64];
+
+    U <-> L2 [label = Pd];
+    L2 <-> OL [label = Pu];
+    OL <-> ON;
+    ON <-> R [label = Pr];
+    M <-> V;
+    M <-> SDN;
+    SDN <-> V [label = Pv];
+    V <-> A [label = Pa];
+    V <-> A2;
+    A <-> OL [label = Pc];
+
+    group {
+        SDN; M; V; A; A2; U; L2; OL; ON; R;
+        shape = line;
+        color = "#FFFFFF";
+        fontsize = 24;
+
+        group {
+            label = "PON Network";
+            V; A; A2; OL; ON;
+
+            group {
+                label = "Voltha";
+                color = "#AAAAFF"
+                V; A; A2;
+            }
+
+
+        }
+    }
+}
+
diff --git a/docs/manuals/user/old/pon-requirements/reference-internal.svg b/docs/manuals/user/old/pon-requirements/reference-internal.svg
new file mode 100644
index 0000000..297e893
--- /dev/null
+++ b/docs/manuals/user/old/pon-requirements/reference-internal.svg
@@ -0,0 +1,204 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg viewBox="0 0 970 280" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs id="defs_block">
+    <filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
+      <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
+    </filter>
+  </defs>
+  <title>blockdiag</title>
+  <desc>blockdiag {
+
+    //orientation = portrait;
+
+    // Blocks used
+    SDN [label = "SDN\nController", width = 64];
+    M [label = "PON\nManager", width = 64];
+    V [label = "Voltha\nCore &amp; NBI", width = 74];
+    A [label = "OLT\nAdapter", width = 64];
+    A2 [label = "ONU\nAdapter", width = 64];
+    U [label = "Upstream\nNetwork", width = 64];
+    L2 [label = "L2 Aggr.", width = 64, shape = cloud];
+    OL [label = "OLT chip\n&amp; firmware", width = 64];
+    ON [label = ONU, width = 64];
+    R [label = RG, width = 64];
+
+    U &lt;-&gt; L2 [label = Pd];
+    L2 &lt;-&gt; OL [label = Pu];
+    OL &lt;-&gt; ON;
+    ON &lt;-&gt; R [label = Pr];
+    M &lt;-&gt; V;
+    M &lt;-&gt; SDN;
+    SDN &lt;-&gt; V [label = Pv];
+    V &lt;-&gt; A [label = Pa];
+    V &lt;-&gt; A2;
+    A &lt;-&gt; OL [label = Pc];
+
+    group {
+        SDN; M; V; A; A2; U; L2; OL; ON; R;
+        shape = line;
+        color = "#FFFFFF";
+        fontsize = 24;
+
+        group {
+            label = "PON Network";
+            V; A; A2; OL; ON;
+
+            group {
+                label = "Voltha";
+                color = "#AAAAFF"
+                V; A; A2;
+            }
+
+
+        }
+    }
+}
+
+</desc>
+  <rect fill="rgb(243,152,0)" height="140" style="filter:url(#filter_blur)" width="474" x="312" y="30" />
+  <rect fill="rgb(170,170,255)" height="140" style="filter:url(#filter_blur)" width="218" x="312" y="30" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="195" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="74" x="323" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="461" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="461" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="589" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="717" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="67" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="67" y="206" />
+  <path d="M 205 222 A10,8 0 0 1 215 214 A10,6 0 0 1 240 214 A10,8 0 0 1 250 222 A10,8 0 0 1 250 238 A10,20 0 0 1 235 238 A10,20 0 0 1 220 238 A10,20 0 0 1 205 238 A10,8 0 0 1 205 222" fill="rgb(0,0,0)" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="845" y="46" />
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="192" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="23" x="224" y="59">SDN</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="224" y="71">Controller</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="74" x="320" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="32" x="357" y="59">Voltha</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="58" x="357" y="71">Core &amp; NBI</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="458" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="22" x="490" y="58">OLT</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="40" x="490" y="72">Adapter</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="458" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="25" x="490" y="138">ONU</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="40" x="490" y="152">Adapter</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="586" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="46" x="618" y="60">OLT chip</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="58" x="618" y="72">&amp; firmware</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="714" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="25" x="746" y="65">ONU</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="64" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="96" y="58">PON</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="44" x="96" y="72">Manager</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="64" y="200" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="49" x="96" y="220">Upstream</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="43" x="96" y="232">Network</text>
+  <path d="M 202 216 A10,8 0 0 1 212 208 A10,6 0 0 1 237 208 A10,8 0 0 1 247 216 A10,8 0 0 1 247 232 A10,20 0 0 1 232 232 A10,20 0 0 1 217 232 A10,20 0 0 1 202 232 A10,8 0 0 1 202 216" fill="rgb(255,255,255)" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="45" x="224" y="226">L2 Aggr.</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="842" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="15" x="874" y="65">RG</text>
+  <path d="M 264 60 L 312 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="257,60 264,56 264,64 257,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="319,60 312,56 312,64 319,60" stroke="rgb(0,0,0)" />
+  <path d="M 136 60 L 160 60" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 160 60 L 160 100" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 160 100 L 304 100" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 304 100 L 304 60" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 304 60 L 312 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="129,60 136,56 136,64 129,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="319,60 312,56 312,64 319,60" stroke="rgb(0,0,0)" />
+  <path d="M 136 60 L 184 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="129,60 136,56 136,64 129,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="191,60 184,56 184,64 191,60" stroke="rgb(0,0,0)" />
+  <path d="M 136 220 L 184 220" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="129,220 136,216 136,224 129,220" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="191,220 184,216 184,224 191,220" stroke="rgb(0,0,0)" />
+  <path d="M 264 220 L 570 220" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 570 220 L 570 60" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 570 60 L 578 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="257,220 264,216 264,224 257,220" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="585,60 578,56 578,64 585,60" stroke="rgb(0,0,0)" />
+  <path d="M 658 60 L 706 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="651,60 658,56 658,64 651,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="713,60 706,56 706,64 713,60" stroke="rgb(0,0,0)" />
+  <path d="M 786 60 L 834 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="779,60 786,56 786,64 779,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="841,60 834,56 834,64 841,60" stroke="rgb(0,0,0)" />
+  <path d="M 402 60 L 450 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,60 402,56 402,64 395,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,60 450,56 450,64 457,60" stroke="rgb(0,0,0)" />
+  <path d="M 402 60 L 426 60" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 426 60 L 426 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 426 140 L 450 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,60 402,56 402,64 395,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,140 450,136 450,144 457,140" stroke="rgb(0,0,0)" />
+  <path d="M 530 60 L 578 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="523,60 530,56 530,64 523,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="585,60 578,56 578,64 585,60" stroke="rgb(0,0,0)" />
+  <path d="M 402 60 L 450 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,60 402,56 402,64 395,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,60 450,56 450,64 457,60" stroke="rgb(0,0,0)" />
+  <path d="M 402 60 L 426 60" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 426 60 L 426 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 426 140 L 450 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,60 402,56 402,64 395,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,140 450,136 450,144 457,140" stroke="rgb(0,0,0)" />
+  <path d="M 530 60 L 578 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="523,60 530,56 530,64 523,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="585,60 578,56 578,64 585,60" stroke="rgb(0,0,0)" />
+  <path d="M 658 60 L 706 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="651,60 658,56 658,64 651,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="713,60 706,56 706,64 713,60" stroke="rgb(0,0,0)" />
+  <path d="M 786 60 L 834 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="779,60 786,56 786,64 779,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="841,60 834,56 834,64 841,60" stroke="rgb(0,0,0)" />
+  <path d="M 402 60 L 450 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,60 402,56 402,64 395,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,60 450,56 450,64 457,60" stroke="rgb(0,0,0)" />
+  <path d="M 402 60 L 426 60" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 426 60 L 426 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 426 140 L 450 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,60 402,56 402,64 395,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,140 450,136 450,144 457,140" stroke="rgb(0,0,0)" />
+  <path d="M 530 60 L 578 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="523,60 530,56 530,64 523,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="585,60 578,56 578,64 585,60" stroke="rgb(0,0,0)" />
+  <path d="M 402 60 L 450 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,60 402,56 402,64 395,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,60 450,56 450,64 457,60" stroke="rgb(0,0,0)" />
+  <path d="M 402 60 L 426 60" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 426 60 L 426 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 426 140 L 450 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,60 402,56 402,64 395,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,140 450,136 450,144 457,140" stroke="rgb(0,0,0)" />
+  <path d="M 530 60 L 578 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="523,60 530,56 530,64 523,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="585,60 578,56 578,64 585,60" stroke="rgb(0,0,0)" />
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="274" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="288" y="50">Pv</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="146" y="198" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="160" y="210">Pd</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="540" y="183" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="554" y="195">Pu</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="27" x="797" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="11" x="810" y="50">Pr</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="412" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="426" y="50">Pa</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="540" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="554" y="50">Pc</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="412" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="426" y="50">Pa</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="540" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="554" y="50">Pc</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="27" x="797" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="11" x="810" y="50">Pr</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="412" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="426" y="50">Pa</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="540" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="554" y="50">Pc</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="412" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="426" y="50">Pa</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="540" y="38" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="554" y="50">Pc</text>
+  <rect fill="none" height="220" stroke="rgb(255,255,255)" stroke-width="3" width="858" x="56" y="30" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="71" x="549" y="35">PON Network</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="32" x="421" y="35">Voltha</text>
+</svg>
diff --git a/docs/manuals/user/old/pon-requirements/reference.svg b/docs/manuals/user/old/pon-requirements/reference.svg
new file mode 100644
index 0000000..e4f8323
--- /dev/null
+++ b/docs/manuals/user/old/pon-requirements/reference.svg
@@ -0,0 +1,136 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg viewBox="0 0 842 360" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <defs id="defs_block">
+    <filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252">
+      <feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" />
+    </filter>
+  </defs>
+  <title>blockdiag</title>
+  <desc>blockdiag {
+
+  //orientation = portrait;
+
+  // Blocks used
+  SDN [label = "SDN\nController", width = 64];
+  M [label = "PON\nManager", width = 64];
+  V [label = "Voltha\nCore &amp; NBI", width = 74];
+  A [label = "OLT\nAdapter", width = 64];
+  A2 [label = "ONU\nAdapter", width = 64];
+  U [label = "Upstream\nNetwork", width = 64];
+  L2 [label = "L2 Aggr.", width = 64, shape = cloud];
+  OL [label = OLT, width = 64];
+  ON [label = ONU, width = 64];
+  R [label = RG, width = 64];
+
+  U &lt;-&gt; L2 [label = Pd];
+  L2 &lt;-&gt; OL [label = Pu];
+  OL &lt;-&gt; ON;
+  ON &lt;-&gt; R [label = Pr];
+  M &lt;-&gt; V [folded];
+  M &lt;-&gt; SDN;
+  SDN &lt;-&gt; V [folded];
+  V &lt;-&gt; A [label = Pa];
+  V &lt;-&gt; A2;
+  A &lt;-&gt; L2 [label = Pc];
+
+  group {
+    label = "Voltha Process";
+    V; A; A2;
+  }
+
+  group {
+    label = "PON Network";
+    OL; ON;
+  }
+
+}
+
+</desc>
+  <rect fill="rgb(243,152,0)" height="140" style="filter:url(#filter_blur)" width="218" x="56" y="110" />
+  <rect fill="rgb(243,152,0)" height="60" style="filter:url(#filter_blur)" width="208" x="450" y="110" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="205" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="72" y="46" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="74" x="67" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="205" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="205" y="206" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="72" y="286" />
+  <path d="M 343 142 A10,8 0 0 1 353 134 A10,6 0 0 1 378 134 A10,8 0 0 1 388 142 A10,8 0 0 1 388 158 A10,20 0 0 1 373 158 A10,20 0 0 1 358 158 A10,20 0 0 1 343 158 A10,8 0 0 1 343 142" fill="rgb(0,0,0)" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="461" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="589" y="126" />
+  <rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="64" x="717" y="126" />
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="202" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="23" x="234" y="59">SDN</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="234" y="71">Controller</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="69" y="40" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="24" x="101" y="58">PON</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="44" x="101" y="72">Manager</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="74" x="64" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="32" x="101" y="139">Voltha</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="58" x="101" y="151">Core &amp; NBI</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="202" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="22" x="234" y="138">OLT</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="40" x="234" y="152">Adapter</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="202" y="200" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="25" x="234" y="218">ONU</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="40" x="234" y="232">Adapter</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="69" y="280" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="49" x="101" y="300">Upstream</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="43" x="101" y="312">Network</text>
+  <path d="M 340 136 A10,8 0 0 1 350 128 A10,6 0 0 1 375 128 A10,8 0 0 1 385 136 A10,8 0 0 1 385 152 A10,20 0 0 1 370 152 A10,20 0 0 1 355 152 A10,20 0 0 1 340 152 A10,8 0 0 1 340 136" fill="rgb(255,255,255)" stroke="rgb(0,0,0)" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="45" x="362" y="146">L2 Aggr.</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="458" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="22" x="490" y="145">OLT</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="586" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="25" x="618" y="145">ONU</text>
+  <rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="64" x="714" y="120" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="15" x="746" y="145">RG</text>
+  <path d="M 234 88 L 234 100" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 101 100 L 234 100" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 101 100 L 101 112" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="234,81 230,88 238,88 234,81" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="101,119 97,112 105,112 101,119" stroke="rgb(0,0,0)" />
+  <path d="M 101 88 L 101 112" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="101,81 97,88 105,88 101,81" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="101,119 97,112 105,112 101,119" stroke="rgb(0,0,0)" />
+  <path d="M 141 60 L 194 60" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="134,60 141,56 141,64 134,60" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="201,60 194,56 194,64 201,60" stroke="rgb(0,0,0)" />
+  <path d="M 141 300 L 314 300" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 314 300 L 314 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 314 140 L 322 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="134,300 141,296 141,304 134,300" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="329,140 322,136 322,144 329,140" stroke="rgb(0,0,0)" />
+  <path d="M 402 140 L 450 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="395,140 402,136 402,144 395,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="457,140 450,136 450,144 457,140" stroke="rgb(0,0,0)" />
+  <path d="M 146 140 L 194 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="139,140 146,136 146,144 139,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="201,140 194,136 194,144 201,140" stroke="rgb(0,0,0)" />
+  <path d="M 146 140 L 170 140" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 170 140 L 170 220" fill="none" stroke="rgb(0,0,0)" />
+  <path d="M 170 220 L 194 220" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="139,140 146,136 146,144 139,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="201,220 194,216 194,224 201,220" stroke="rgb(0,0,0)" />
+  <path d="M 274 140 L 322 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="267,140 274,136 274,144 267,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="329,140 322,136 322,144 329,140" stroke="rgb(0,0,0)" />
+  <path d="M 530 140 L 578 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="523,140 530,136 530,144 523,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="585,140 578,136 578,144 585,140" stroke="rgb(0,0,0)" />
+  <path d="M 658 140 L 706 140" fill="none" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="651,140 658,136 658,144 651,140" stroke="rgb(0,0,0)" />
+  <polygon fill="rgb(0,0,0)" points="713,140 706,136 706,144 713,140" stroke="rgb(0,0,0)" />
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="284" y="263" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="298" y="275">Pd</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="412" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="426" y="130">Pu</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="156" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="170" y="130">Pa</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="29" x="284" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="13" x="298" y="130">Pc</text>
+  <rect fill="white" height="14" stroke="rgb(0,0,0)" width="27" x="669" y="118" />
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="11" x="682" y="130">Pr</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="76" x="165" y="115">Voltha Process</text>
+  <text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="71" x="554" y="115">PON Network</text>
+</svg>
diff --git a/docs/manuals/user/old/sequences/cold-start-high-level.svg b/docs/manuals/user/old/sequences/cold-start-high-level.svg
new file mode 100644
index 0000000..cec5d68
--- /dev/null
+++ b/docs/manuals/user/old/sequences/cold-start-high-level.svg
@@ -0,0 +1,3906 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   viewBox="0 0 1535.4121 1139.2326"
+   id="svg3559"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="cold-start-high-level.svg"
+   width="1535.4121"
+   height="1139.2327">
+  <metadata
+     id="metadata3742">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>blockdiag</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="2563"
+     inkscape:window-height="1400"
+     id="namedview3740"
+     showgrid="false"
+     inkscape:zoom="1.0630152"
+     inkscape:cx="509.98996"
+     inkscape:cy="312.33953"
+     inkscape:window-x="0"
+     inkscape:window-y="1"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg3559"
+     fit-margin-top="10"
+     fit-margin-left="10"
+     fit-margin-right="10"
+     fit-margin-bottom="10" />
+  <defs
+     id="defs_block">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker12105"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path12107" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker11747"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path11749"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker11551"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path11553"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker11247"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lstart"
+       inkscape:collect="always">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path11249" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker10770"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path10772"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker10426"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path10428"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker10239"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path10241"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker10045"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path10047"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker9841"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lstart"
+       inkscape:collect="always">
+      <path
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path9843"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker9495"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path9497"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker9272"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path9274"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker9115"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lstart"
+       inkscape:collect="always">
+      <path
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path9117"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker8499"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path8501"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker8187"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path8189"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker8037"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path8039"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker7587"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path7589"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker7417"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path7419"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker7275"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path7277"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6545"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6547"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker6323"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lstart"
+       inkscape:collect="always">
+      <path
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path6325"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5971"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lstart"
+       inkscape:collect="always">
+      <path
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5973"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5667"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5669"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5486"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5488"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4575"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5068"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lstart"
+       inkscape:collect="always">
+      <path
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5070"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4890"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4892"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker4856"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4858"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4572"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4554"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(0.8,0,0,0.8,10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <filter
+       height="1.5039999"
+       id="filter_blur"
+       inkscape:collect="always"
+       width="1.1575"
+       x="-0.078749999"
+       y="-0.252">
+      <feGaussianBlur
+         id="feGaussianBlur3780"
+         inkscape:collect="always"
+         stdDeviation="4.2" />
+    </filter>
+  </defs>
+  <title
+     id="title3564">blockdiag</title>
+  <desc
+     id="desc3566">seqdiag {
+
+    net [label = 'Upstream Network'];
+    pon-mgr [label = 'PON-Mgr\n(placeholder)'];
+    raidus [label = 'RADIUS server'];
+    onos [label = 'ONOS'];
+    voltha [label = 'Voltha'];
+    olt [label = 'OLT\n(and adapter)'];
+    onu [label = 'ONU'];
+    rg [label = 'RG'];
+
+    autonumber = True;
+
+    === Initial state ===
+
+    //rg -&gt; olt [label = 'EA-POL-REQ', failed];
+
+    pon-mgr =&gt; voltha [label = 'Add_Olt_Device()', return = 'return'] {
+        voltha --&gt; pon-mgr [label = 'return for Add_Olt_Device()'];
+        voltha =&gt; olt      [label = 'Connect()'];
+        voltha =&gt; olt      [label = 'Activate()', note = 'foo'];
+        voltha -&gt; onos     [label = 'Connect'];
+        voltha -&gt; onos     [label = 'New port(s)', folded = true];
+
+    };
+
+}
+</desc>
+  <g
+     id="g5524"
+     transform="matrix(1,0,0,0.95845327,1.0231571,2.2469265)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.02144396;stroke-dasharray:8.17155134, 4.08577568"
+       inkscape:connector-curvature="0"
+       id="path3600"
+       d="m 98.000002,54.08 0,1106.3247" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.02144396;stroke-dasharray:8.17155134, 4.08577568"
+       inkscape:connector-curvature="0"
+       id="path3602"
+       d="m 290,54.08 0,1106.3247" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.02144396;stroke-dasharray:8.17155134, 4.08577568"
+       inkscape:connector-curvature="0"
+       id="path3608"
+       d="m 482,54.08 0,1106.3247" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.02144396;stroke-dasharray:8.17155134, 4.08577568"
+       inkscape:connector-curvature="0"
+       id="path3610"
+       d="m 674,54.08 0,1106.3247" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.02144396;stroke-dasharray:8.17155134, 4.08577568"
+       inkscape:connector-curvature="0"
+       id="path3616"
+       d="m 866,54.08 0,1106.3247" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.02144396;stroke-dasharray:8.17155134, 4.08577568"
+       inkscape:connector-curvature="0"
+       id="path3620"
+       d="m 1058,54.08 0,1106.3247" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.02144396;stroke-dasharray:8.17155134, 4.08577568"
+       inkscape:connector-curvature="0"
+       id="path3626"
+       d="m 1250,54.08 0,1106.3247" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.02144396;stroke-dasharray:8.17155134, 4.08577568"
+       inkscape:connector-curvature="0"
+       id="path3628"
+       d="m 1442,54.08 0,1106.3247" />
+  </g>
+  <g
+     id="g8003"
+     transform="translate(-28.976841,-59.919973)">
+    <g
+       transform="matrix(2.0945906,0,0,1,-43.783626,0)"
+       id="g7995">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.69095606"
+         inkscape:connector-curvature="0"
+         d="m 40,138 723,0"
+         id="path3728" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.69095606"
+         inkscape:connector-curvature="0"
+         d="m 40,142 723,0"
+         id="path3730" />
+    </g>
+    <g
+       transform="translate(0,-34)"
+       id="g7999">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect7993"
+         width="131.21477"
+         height="18.042028"
+         x="735.62274"
+         y="164.36084" />
+      <text
+         font-size="11"
+         font-style="normal"
+         font-weight="normal"
+         textLength="53"
+         x="799"
+         y="177"
+         id="text3738"
+         style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">Initial state</text>
+    </g>
+  </g>
+  <g
+     id="g8011"
+     transform="translate(-28.976841,124.08005)">
+    <g
+       id="g8013"
+       transform="matrix(2.0945906,0,0,1,-43.783626,0)">
+      <path
+         id="path8015"
+         d="m 40,138 723,0"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:0.69095606" />
+      <path
+         id="path8017"
+         d="m 40,142 723,0"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:0.69095606" />
+    </g>
+    <g
+       id="g8019"
+       transform="translate(0,-34)">
+      <rect
+         y="164.36084"
+         x="735.62274"
+         height="18.042028"
+         width="131.21477"
+         id="rect8021"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000"
+         id="text8023"
+         y="177"
+         x="799"
+         textLength="53"
+         font-weight="normal"
+         font-style="normal"
+         font-size="11"
+         sodipodi:linespacing="125%">
+        <tspan
+           sodipodi:role="line"
+           id="tspan8025"
+           x="799"
+           y="177">OLT Active</tspan>
+      </text>
+    </g>
+  </g>
+  <g
+     transform="translate(-28.976841,394.08005)"
+     id="g10882">
+    <g
+       transform="matrix(2.0945906,0,0,1,-43.783626,0)"
+       id="g10884">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.69095606"
+         inkscape:connector-curvature="0"
+         d="m 40,138 723,0"
+         id="path10886" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.69095606"
+         inkscape:connector-curvature="0"
+         d="m 40,142 723,0"
+         id="path10888" />
+    </g>
+    <g
+       transform="translate(0,-34)"
+       id="g10890">
+      <rect
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect10892"
+         width="131.21477"
+         height="18.042028"
+         x="735.62274"
+         y="164.36084" />
+      <text
+         sodipodi:linespacing="125%"
+         font-size="11"
+         font-style="normal"
+         font-weight="normal"
+         textLength="53"
+         x="799"
+         y="177"
+         id="text10894"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000">
+        <tspan
+           sodipodi:role="line"
+           id="tspan10898"
+           x="799"
+           y="177">Ready for Auth</tspan>
+      </text>
+    </g>
+  </g>
+  <rect
+     height="40"
+     style="opacity:0.7;fill:#000000;fill-opacity:1;stroke:#000000;filter:url(#filter_blur)"
+     width="128"
+     x="38.023155"
+     y="20.08"
+     id="rect3584" />
+  <rect
+     height="40"
+     style="opacity:0.7;fill:#000000;fill-opacity:1;stroke:#000000;filter:url(#filter_blur)"
+     width="128"
+     x="230.02316"
+     y="20.08"
+     id="rect3586" />
+  <rect
+     height="40"
+     style="opacity:0.7;fill:#000000;fill-opacity:1;stroke:#000000;filter:url(#filter_blur)"
+     width="128"
+     x="422.02316"
+     y="20.08"
+     id="rect3588" />
+  <rect
+     height="40"
+     style="opacity:0.7;fill:#000000;fill-opacity:1;stroke:#000000;filter:url(#filter_blur)"
+     width="128"
+     x="614.02313"
+     y="20.08"
+     id="rect3590" />
+  <rect
+     height="40"
+     style="opacity:0.7;fill:#000000;fill-opacity:1;stroke:#000000;filter:url(#filter_blur)"
+     width="128"
+     x="806.02313"
+     y="20.08"
+     id="rect3592" />
+  <rect
+     height="40"
+     style="opacity:0.7;fill:#000000;fill-opacity:1;stroke:#000000;filter:url(#filter_blur)"
+     width="128"
+     x="998.02313"
+     y="20.08"
+     id="rect3594" />
+  <rect
+     height="40"
+     style="opacity:0.7;fill:#000000;fill-opacity:1;stroke:#000000;filter:url(#filter_blur)"
+     width="128"
+     x="1190.0232"
+     y="20.08"
+     id="rect3596" />
+  <rect
+     height="40"
+     style="opacity:0.7;fill:#000000;fill-opacity:1;stroke:#000000;filter:url(#filter_blur)"
+     width="128"
+     x="1382.0232"
+     y="20.08"
+     id="rect3598" />
+  <rect
+     height="401.94257"
+     width="8"
+     x="287.02316"
+     y="109.11021"
+     id="rect3604"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <rect
+     height="130.01321"
+     width="8"
+     x="863.02313"
+     y="113.08006"
+     id="rect3618"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     height="40"
+     width="128"
+     x="35.023155"
+     y="14.08"
+     id="rect3630"
+     style="fill:#ffffff;stroke:#000000" />
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="96"
+     x="99.023155"
+     y="40.080002"
+     id="text3632"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">Upstream Network</text>
+  <rect
+     height="40"
+     width="128"
+     x="227.02316"
+     y="14.08"
+     id="rect3634"
+     style="fill:#ffffff;stroke:#000000" />
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="50"
+     x="291.02316"
+     y="34.080002"
+     id="text3636"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">PON-Mgr</text>
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="68"
+     x="291.02316"
+     y="47.080002"
+     id="text3638"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">(placeholder)</text>
+  <rect
+     height="40"
+     width="128"
+     x="419.02316"
+     y="14.08"
+     id="rect3640"
+     style="fill:#ffffff;stroke:#000000" />
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="75"
+     x="483.02316"
+     y="39.080002"
+     id="text3642"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">RADIUS server</text>
+  <rect
+     height="40"
+     width="128"
+     x="611.02313"
+     y="14.08"
+     id="rect3644"
+     style="fill:#ffffff;stroke:#000000" />
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="33"
+     x="675.02313"
+     y="39.080002"
+     id="text3646"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">ONOS</text>
+  <rect
+     height="40"
+     width="128"
+     x="803.02313"
+     y="14.08"
+     id="rect3648"
+     style="fill:#ffffff;stroke:#000000" />
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="32"
+     x="867.02313"
+     y="39.080002"
+     id="text3650"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">Voltha</text>
+  <rect
+     height="40"
+     width="128"
+     x="995.02313"
+     y="14.08"
+     id="rect3652"
+     style="fill:#ffffff;stroke:#000000" />
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="22"
+     x="1059.0232"
+     y="33.080002"
+     id="text3654"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">OLT</text>
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="72"
+     x="1059.0232"
+     y="46.080002"
+     id="text3656"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">(and adapter)</text>
+  <rect
+     height="40"
+     width="128"
+     x="1187.0232"
+     y="14.08"
+     id="rect3658"
+     style="fill:#ffffff;stroke:#000000" />
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="25"
+     x="1251.0232"
+     y="39.080002"
+     id="text3660"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">ONU</text>
+  <rect
+     height="40"
+     width="128"
+     x="1379.0232"
+     y="14.08"
+     id="rect3662"
+     style="fill:#ffffff;stroke:#000000" />
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="15"
+     x="1443.0232"
+     y="39.080002"
+     id="text3664"
+     style="font-style:normal;font-weight:normal;font-size:11px;font-family:sans-serif;text-anchor:middle;fill:#000000">RG</text>
+  <g
+     id="g5572"
+     transform="translate(-28.976841,-101.91997)">
+    <path
+       style="fill:none;stroke:#000000;marker-end:url(#Arrow2Lend)"
+       id="path3666"
+       d="m 328,215 560,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text3710"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5490"
+         x="332"
+         y="213">Add-Olt-Device()</tspan>
+    </text>
+  </g>
+  <g
+     id="g5550"
+     transform="translate(-28.976841,-151.91997)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5486)"
+       id="path3670"
+       d="m 332,280 556,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text3712"
+       y="278"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5534"
+         x="886"
+         y="278">Return for Add-Olt-Device()</tspan>
+    </text>
+  </g>
+  <g
+     id="g5579"
+     transform="translate(-28.976841,-71.919973)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker4890)"
+       inkscape:connector-curvature="0"
+       d="m 1283.9717,173.44911 186.0902,0"
+       id="path3744" />
+    <text
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="57"
+       x="1463.062"
+       y="171.45012"
+       id="text3746"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5536"
+         x="1463.062"
+         y="171.45012">EAP Start</tspan>
+    </text>
+    <path
+       id="path5066"
+       d="m 1251.2543,174.19177 26.7271,0"
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker5068)" />
+    <text
+       sodipodi:linespacing="125%"
+       id="text5426"
+       y="181.89438"
+       x="1234.6991"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         y="181.89438"
+         x="1234.6991"
+         id="tspan5428"
+         sodipodi:role="line"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">X</tspan></text>
+  </g>
+  <g
+     id="g5598"
+     transform="translate(-28.976841,-49.919973)">
+    <g
+       transform="translate(0,124)"
+       id="g5586">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker4890)"
+         inkscape:connector-curvature="0"
+         d="m 1283.9717,173.44911 186.0902,0"
+         id="path5588" />
+      <text
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+         font-size="11"
+         font-style="normal"
+         font-weight="normal"
+         textLength="57"
+         x="1463.062"
+         y="171.45012"
+         id="text5590"
+         sodipodi:linespacing="125%">
+        <tspan
+           sodipodi:role="line"
+           id="tspan5538"
+           x="1463.062"
+           y="171.45012">EAP Start</tspan>
+      </text>
+      <path
+         id="path5592"
+         d="m 1251.2543,174.19177 26.7271,0"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker5068)" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text5594"
+         y="181.89438"
+         x="1234.6991"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="181.89438"
+           x="1234.6991"
+           id="tspan5596"
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">X</tspan></text>
+    </g>
+  </g>
+  <g
+     id="g5629"
+     transform="translate(-28.976841,-11.919973)">
+    <g
+       id="g5631"
+       transform="translate(0,116)">
+      <g
+         id="g5633"
+         transform="translate(0,124)">
+        <path
+           id="path5635"
+           d="m 1283.9717,173.44911 186.0902,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker4890)" />
+        <text
+           id="text5637"
+           y="171.45012"
+           x="1463.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5542"
+             x="1463.062"
+             y="171.45012">EAP Start</tspan>
+        </text>
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker5068)"
+           inkscape:connector-curvature="0"
+           d="m 1251.2543,174.19177 26.7271,0"
+           id="path5639" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           x="1234.6991"
+           y="181.89438"
+           id="text5641"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan5643"
+             x="1234.6991"
+             y="181.89438"
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">X</tspan></text>
+      </g>
+    </g>
+  </g>
+  <g
+     transform="translate(-28.976841,154.08005)"
+     id="g5645">
+    <g
+       transform="translate(0,116)"
+       id="g5647">
+      <g
+         transform="translate(0,124)"
+         id="g5649">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path5651" />
+        <text
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1465.062"
+           y="171.45012"
+           id="text5653"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5544"
+             x="1465.062"
+             y="171.45012">EAP Start</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     transform="translate(-28.976841,-133.91997)"
+     id="g6317">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 332,280 556,0"
+       id="path6319"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:6, 2;stroke-dashoffset:0;marker-start:url(#marker7417)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="278"
+       id="text6321"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5202"
+         x="886"
+         y="278">Event(OLT-Connected)</tspan>
+    </text>
+  </g>
+  <g
+     id="g5500"
+     transform="translate(1.0231571,-49.999973)">
+    <path
+       d="m 871.24448,241.00915 47.60226,0 0,23.78268 -44.0858,0"
+       id="path6543"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker6545)"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="921.44128"
+       y="250.02156"
+       id="text7245"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         y="250.02156"
+         x="921.44128"
+         id="tspan7989"
+         sodipodi:role="line">Create LogicalDevice</tspan>
+      <tspan
+         y="263.77155"
+         x="921.44128"
+         id="tspan7991"
+         sodipodi:role="line">w/ initial port(s)</tspan>
+    </text>
+  </g>
+  <g
+     id="g6443"
+     transform="translate(-28.976841,-93.919973)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:6, 2;stroke-dashoffset:0;marker-start:url(#marker6323)"
+       id="path6445"
+       d="m 332,280 556,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text6447"
+       y="274"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5210"
+         x="886"
+         y="274">Event(OLT-Activated)</tspan>
+    </text>
+  </g>
+  <g
+     transform="translate(-29.435071,-75.978373)"
+     id="g6449">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,292.01189 180.70604,0"
+       id="path6451"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker7275)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="276"
+       id="text6453"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan7271"
+         x="886"
+         y="276">Connect for device()</tspan>
+      <tspan
+         sodipodi:role="line"
+         id="tspan7273"
+         x="886"
+         y="289.75">and device discovery</tspan>
+    </text>
+  </g>
+  <g
+     transform="translate(352.36607,25.537727)"
+     id="g7553">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       id="path7555"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text7557"
+       y="209"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5212"
+         x="332"
+         y="209">...</tspan>
+    </text>
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="209"
+       id="text5214"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5220"
+         x="332"
+         y="209">...</tspan>
+    </text>
+  </g>
+  <rect
+     id="rect7559"
+     y="214.08"
+     x="671.02313"
+     width="8"
+     height="29.278318"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     id="g8027"
+     transform="translate(164.56493,8.0216265)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:6, 2;stroke-dashoffset:0;marker-start:url(#marker8037)"
+       id="path8029"
+       d="m 709.29396,280.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text8031"
+       y="278"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan8035"
+         x="886"
+         y="278">ONU Detected()</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect8033"
+     y="285.07999"
+     x="863.02313"
+     width="8"
+     height="135.30811" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect8155"
+     y="303.07999"
+     x="1055.0232"
+     width="8"
+     height="25.455664" />
+  <g
+     transform="translate(544.26765,90.021627)"
+     id="g8157">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       id="path8159"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text8161"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan8169"
+         x="332"
+         y="213">Activate_ONU()</tspan>
+    </text>
+  </g>
+  <g
+     id="g8163"
+     transform="translate(164.56493,48.021627)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)"
+       id="path8165"
+       d="m 709.29396,280.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text8167"
+       y="274"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11" />
+  </g>
+  <rect
+     height="25.455664"
+     width="8"
+     x="1247.0232"
+     y="345.07999"
+     id="rect8171"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     id="g8173"
+     transform="translate(544.26765,132.02162)">
+    <path
+       d="m 328,215.00647 369.12663,0"
+       id="path8175"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker8187)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text8177"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         id="tspan8179"
+         sodipodi:role="line"
+         x="332"
+         y="213">Activate_ONU()</tspan>
+    </text>
+  </g>
+  <g
+     transform="matrix(2.0432271,0,0,2.0432271,-573.64579,-202.11277)"
+     id="g8181">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,280.01189 180.70604,0"
+       id="path8183"
+       style="fill:none;stroke:#000000;stroke-width:0.48942184;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="274"
+       id="text8185"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%" />
+  </g>
+  <g
+     id="g5512"
+     transform="translate(1.0231571,-89.999973)">
+    <path
+       sodipodi:nodetypes="cccc"
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker8499)"
+       id="path8491"
+       d="m 871.24448,467.00915 47.60226,0 0,23.78268 -44.0858,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text8493"
+       y="476.02155"
+       x="921.44128"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         y="476.02155"
+         x="921.44128"
+         id="tspan9085"
+         sodipodi:role="line">Add port to</tspan>
+      <tspan
+         y="489.77155"
+         x="921.44128"
+         id="tspan9087"
+         sodipodi:role="line">LogicalDevice</tspan>
+    </text>
+  </g>
+  <g
+     id="g9089"
+     transform="translate(-29.435071,110.02163)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker7275)"
+       id="path9091"
+       d="m 709.29396,292.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text9093"
+       y="276"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan9429"
+         x="886"
+         y="276">Port list change</tspan>
+      <tspan
+         sodipodi:role="line"
+         id="tspan9431"
+         x="886"
+         y="289.75">and Rediscovery</tspan>
+    </text>
+  </g>
+  <g
+     id="g9099"
+     transform="translate(352.36607,203.53776)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path9101"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="209"
+       id="text9103"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5222"
+         x="332"
+         y="209">...</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     height="81.764221"
+     width="8"
+     x="671.02313"
+     y="400.07999"
+     id="rect9105" />
+  <g
+     id="g9257"
+     transform="translate(-28.976841,228.08005)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:6, 2;stroke-dashoffset:0;marker-start:url(#marker9115)"
+       id="path9109"
+       d="m 332,280 556,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text9111"
+       y="278"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         y="278"
+         x="886"
+         sodipodi:role="line"
+         id="tspan9113">Event(ONU-Activated)</tspan>
+    </text>
+  </g>
+  <g
+     transform="translate(-28.976841,10.080027)"
+     id="g9262">
+    <g
+       id="g9420">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:6, 2;stroke-dashoffset:0;marker-start:url(#marker9272)"
+         id="path9264"
+         d="m 332,280 556,0"
+         inkscape:connector-curvature="0" />
+      <text
+         sodipodi:linespacing="125%"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+         id="text9266"
+         y="278"
+         x="886"
+         textLength="160"
+         font-weight="normal"
+         font-style="normal"
+         font-size="11">
+        <tspan
+           y="278"
+           x="886"
+           sodipodi:role="line"
+           id="tspan9270">Event(ONU-Detected)</tspan>
+      </text>
+    </g>
+  </g>
+  <g
+     transform="translate(352.26765,220.02162)"
+     id="g9433">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       id="path9435"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text9437"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5599"
+         x="332"
+         y="213">Install EAPOL forwarding flow</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect9441"
+     y="433.08005"
+     x="863.02313"
+     width="8"
+     height="75.232697" />
+  <rect
+     height="25.455664"
+     width="8"
+     x="1055.0232"
+     y="441.08005"
+     id="rect9443"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     id="g9445"
+     transform="translate(544.26765,228.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path9447"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text9449"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5594"
+         x="332"
+         y="213">Setup EAPOL forwarding</tspan>
+    </text>
+  </g>
+  <g
+     transform="translate(164.56493,186.02162)"
+     id="g9453">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,280.01189 180.70604,0"
+       id="path9455"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="274"
+       id="text9457"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%" />
+  </g>
+  <g
+     id="g9461"
+     transform="translate(-29.435071,160.02162)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker7275)"
+       id="path9463"
+       d="m 709.29396,292.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text9465"
+       y="288"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan9471"
+         x="886"
+         y="288">...</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect9475"
+     y="477.08005"
+     x="1247.0232"
+     width="8"
+     height="25.455664" />
+  <g
+     transform="translate(544.26765,264.02162)"
+     id="g9477">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker8187)"
+       id="path9479"
+       d="m 328,215.00647 369.12663,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text9481"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5597"
+         x="332"
+         y="213">Setup EAPOL forwarding</tspan>
+    </text>
+  </g>
+  <g
+     id="g9485"
+     transform="matrix(2.0432271,0,0,2.0432271,-573.64579,-70.112773)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.48942184;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)"
+       id="path9487"
+       d="m 709.29396,280.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text9489"
+       y="274"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11" />
+  </g>
+  <rect
+     height="12.334188"
+     width="8"
+     x="1247.0232"
+     y="561.08008"
+     id="rect9493"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <rect
+     height="84.502304"
+     width="8"
+     x="1438.9248"
+     y="99.66954"
+     id="rect10001"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect10003"
+     y="245.66948"
+     x="1438.9248"
+     width="8"
+     height="83.682213" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect10007"
+     y="399.66953"
+     x="1438.9248"
+     width="8"
+     height="88.602768" />
+  <g
+     id="g10011"
+     transform="translate(-222.97684,154.08005)">
+    <g
+       id="g10013"
+       transform="translate(0,116)">
+      <g
+         id="g10015"
+         transform="translate(0,124)">
+        <path
+           id="path10017"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)" />
+        <text
+           id="text10019"
+           y="171.45012"
+           x="1465.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5546"
+             x="1465.062"
+             y="171.45012">EAP Start</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="342.00052"
+     id="rect10023"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect10025"
+     y="364.00052"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="474.00058"
+     id="rect10027"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect10029"
+     y="496.00058"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="496.00058"
+     id="rect10031"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     transform="translate(-412.97684,156.08005)"
+     id="g10033">
+    <g
+       transform="translate(0,116)"
+       id="g10035">
+      <g
+         transform="translate(0,124)"
+         id="g10037">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker10045)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path10039" />
+        <text
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1463.062"
+           y="171.45012"
+           id="text10041"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5548"
+             x="1463.062"
+             y="171.45012">EAP Start</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect10021"
+     y="564.00061"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <rect
+     height="10.694003"
+     width="8"
+     x="863.02313"
+     y="568.00061"
+     id="rect10043"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     id="g10199"
+     transform="translate(-606.97684,158.08005)">
+    <g
+       id="g10201"
+       transform="translate(0,116)">
+      <g
+         id="g10203"
+         transform="translate(0,124)">
+        <path
+           id="path10205"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker10045)" />
+        <text
+           id="text10207"
+           y="171.45012"
+           x="1467.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5550"
+             x="1467.062"
+             y="171.45012">PKT-IN(EAP Start)</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     id="rect10211"
+     y="570.08002"
+     x="671.02313"
+     width="8"
+     height="352.9765"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999988" />
+  <g
+     transform="translate(-798.97684,206.08005)"
+     id="g10213">
+    <g
+       transform="translate(0,116)"
+       id="g10215">
+      <g
+         transform="translate(0,124)"
+         id="g10217">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker10045)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path10219" />
+        <text
+           sodipodi:linespacing="125%"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1467.062"
+           y="171.45012"
+           id="text10221">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5306"
+             x="1467.062"
+             y="171.45012">RADIUS Access-Request</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     height="25.455664"
+     width="8"
+     x="477.67822"
+     y="619.95349"
+     id="rect10225"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     transform="translate(160.26765,428.02162)"
+     id="g10399">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path10231"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10239)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="211"
+       id="text10233"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5568"
+         x="332"
+         y="211">RADIUS Access-Challenge</tspan>
+    </text>
+  </g>
+  <g
+     id="g10404"
+     transform="translate(352.26765,380.02162)">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10239)"
+       id="path10406"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text10408"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5552"
+         x="332"
+         y="213">PKT-OUT(EAP Request-Identity)</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect10414"
+     y="590.00061"
+     x="863.02313"
+     width="8"
+     height="10.694003" />
+  <g
+     transform="translate(544.26765,380.02162)"
+     id="g10416">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       id="path10418"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text10420"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5554"
+         x="332"
+         y="213">EAP Request-Identity</tspan>
+    </text>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="590.00061"
+     id="rect10844"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     id="g10846"
+     transform="translate(736.26765,380.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path10848"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text10850"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5556"
+         x="332"
+         y="213">EAP Request-Identity</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect10854"
+     y="590.00061"
+     x="1247.0232"
+     width="8"
+     height="10.694003" />
+  <g
+     transform="translate(928.26765,380.02162)"
+     id="g10856">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       id="path10858"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text10860"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5558"
+         x="332"
+         y="213">EAP Request-Identity</tspan>
+    </text>
+  </g>
+  <g
+     id="g10864"
+     transform="translate(352.26765,500.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path10866"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text10868"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan10880"
+         x="332"
+         y="213">Install DHCP forwarding flow</tspan>
+    </text>
+  </g>
+  <g
+     transform="translate(-29.435071,440.02162)"
+     id="g10872">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,292.01189 180.70604,0"
+       id="path10874"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker7275)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="288"
+       id="text10876"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         y="288"
+         x="886"
+         id="tspan10878"
+         sodipodi:role="line">...</tspan>
+    </text>
+  </g>
+  <rect
+     height="85.322395"
+     width="8"
+     x="863.02313"
+     y="713.08008"
+     id="rect10900"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect10902"
+     y="721.08008"
+     x="1055.0232"
+     width="8"
+     height="25.455664" />
+  <g
+     transform="translate(544.26765,508.02162)"
+     id="g10904">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       id="path10906"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text10908"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan10940"
+         x="332"
+         y="213">Setup DHCP forwarding</tspan>
+    </text>
+  </g>
+  <g
+     id="g10912"
+     transform="translate(164.56493,466.02162)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)"
+       id="path10914"
+       d="m 709.29396,280.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text10916"
+       y="274"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11" />
+  </g>
+  <rect
+     height="25.455664"
+     width="8"
+     x="1247.0232"
+     y="769.08008"
+     id="rect10918"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     id="g10920"
+     transform="translate(544.26765,556.02162)">
+    <path
+       d="m 328,215.00647 369.12663,0"
+       id="path10922"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker8187)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text10924"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan10942"
+         x="332"
+         y="213">Setup DHCP forwarding</tspan>
+    </text>
+  </g>
+  <g
+     transform="matrix(2.0432271,0,0,2.0432271,-573.64579,221.88725)"
+     id="g10928">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,280.01189 180.70604,0"
+       id="path10930"
+       style="fill:none;stroke:#000000;stroke-width:0.48942184;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="274"
+       id="text10932"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%" />
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect10934"
+     y="766.00061"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="788.00061"
+     id="rect10936"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect10938"
+     y="788.00061"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <g
+     id="g10969"
+     transform="translate(-28.976841,584.08005)">
+    <g
+       id="g10971"
+       transform="translate(0,116)">
+      <g
+         id="g10973"
+         transform="translate(0,124)">
+        <path
+           id="path10975"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)" />
+        <text
+           id="text10977"
+           y="169.45012"
+           x="1435.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan11055"
+             x="1435.062"
+             y="169.45012">DHCP-REQ</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect10979"
+     y="991.08014"
+     x="1247.0232"
+     width="8"
+     height="12.334188" />
+  <g
+     transform="translate(-222.97684,584.08005)"
+     id="g10981">
+    <g
+       transform="translate(0,116)"
+       id="g10983">
+      <g
+         transform="translate(0,124)"
+         id="g10985">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path10987" />
+        <text
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1459.062"
+           y="169.45012"
+           id="text10989"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan11057"
+             x="1459.062"
+             y="169.45012">DHCP-REQ</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     id="g10991"
+     transform="translate(-412.97684,586.08005)">
+    <g
+       id="g10993"
+       transform="translate(0,116)">
+      <g
+         id="g10995"
+         transform="translate(0,124)">
+        <path
+           id="path10997"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker10045)" />
+        <text
+           id="text10999"
+           y="169.45012"
+           x="1459.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan11059"
+             x="1459.062"
+             y="169.45012">DHCP-REQ</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="994.00055"
+     id="rect11001"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect11003"
+     y="998.00055"
+     x="863.02313"
+     width="8"
+     height="10.694003" />
+  <g
+     transform="translate(-606.97684,588.08005)"
+     id="g11005">
+    <g
+       transform="translate(0,116)"
+       id="g11007">
+      <g
+         transform="translate(0,124)"
+         id="g11009">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker10045)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path11011" />
+        <text
+           sodipodi:linespacing="125%"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1467.062"
+           y="169.45012"
+           id="text11013">
+          <tspan
+             sodipodi:role="line"
+             id="tspan11061"
+             x="1467.062"
+             y="169.45012">PKT_IN(DHCP-REQ)</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     transform="translate(352.26765,816.02162)"
+     id="g11017">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path11019"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10239)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="209"
+       id="text11021"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11063"
+         x="332"
+         y="209">PKT_OUT(DHCP-REP)</tspan>
+    </text>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="863.02313"
+     y="1026.0005"
+     id="rect11025"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     id="g11027"
+     transform="translate(544.26765,816.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path11029"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="209"
+       id="text11031"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11065"
+         x="332"
+         y="209">DHCP-REP</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect11035"
+     y="1026.0005"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <g
+     transform="translate(736.26765,816.02162)"
+     id="g11037">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       id="path11039"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text11041"
+       y="209"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11067"
+         x="332"
+         y="209">DHCP-REP</tspan>
+    </text>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="1247.0232"
+     y="1026.0005"
+     id="rect11045"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     id="g11047"
+     transform="translate(928.26765,816.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path11049"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="209"
+       id="text11051"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11069"
+         x="332"
+         y="209">DHCP-REP</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     height="33.637833"
+     width="8"
+     x="671.02313"
+     y="1000.7682"
+     id="rect11071" />
+  <g
+     transform="translate(352.26765,598.02162)"
+     id="g11073">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       id="path11075"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text11077"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11129"
+         x="332"
+         y="213">Install unicast forwarding flow</tspan>
+    </text>
+  </g>
+  <g
+     id="g11081"
+     transform="translate(-29.435071,538.02162)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker7275)"
+       id="path11083"
+       d="m 709.29396,292.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text11085"
+       y="288"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11087"
+         x="886"
+         y="288">...</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect11089"
+     y="811.08014"
+     x="863.02313"
+     width="8"
+     height="75.232697" />
+  <rect
+     height="25.455664"
+     width="8"
+     x="1055.0232"
+     y="813.08014"
+     id="rect11091"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     id="g11093"
+     transform="translate(544.26765,600.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path11095"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="211"
+       id="text11097"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11131"
+         x="332"
+         y="211">Setup unicast forwarding</tspan>
+    </text>
+  </g>
+  <g
+     transform="translate(164.56493,558.02162)"
+     id="g11101">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,280.01189 180.70604,0"
+       id="path11103"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="274"
+       id="text11105"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%" />
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect11107"
+     y="861.08014"
+     x="1247.0232"
+     width="8"
+     height="25.455664" />
+  <g
+     transform="translate(544.26765,648.02162)"
+     id="g11109">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker8187)"
+       id="path11111"
+       d="m 328,215.00647 369.12663,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text11113"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11133"
+         x="332"
+         y="213">Setup unicast forwarding</tspan>
+    </text>
+  </g>
+  <g
+     id="g11117"
+     transform="matrix(2.0432271,0,0,2.0432271,-573.64579,313.88725)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.48942184;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)"
+       id="path11119"
+       d="m 709.29396,280.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text11121"
+       y="274"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11" />
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="858.00055"
+     id="rect11123"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect11125"
+     y="880.00055"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="880.00055"
+     id="rect11127"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     id="g11135"
+     transform="translate(352.26765,688.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path11137"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text11139"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11191"
+         x="332"
+         y="213">Install IGMP forwarding flow</tspan>
+    </text>
+  </g>
+  <g
+     transform="translate(-29.435071,628.02162)"
+     id="g11143">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,292.01189 180.70604,0"
+       id="path11145"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker7275)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="288"
+       id="text11147"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         y="288"
+         x="886"
+         id="tspan11149"
+         sodipodi:role="line">...</tspan>
+    </text>
+  </g>
+  <rect
+     height="78.595932"
+     width="8"
+     x="863.02313"
+     y="901.08014"
+     id="rect11151"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect11153"
+     y="903.08014"
+     x="1055.0232"
+     width="8"
+     height="25.455664" />
+  <g
+     transform="translate(544.26765,690.02162)"
+     id="g11155">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       id="path11157"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text11159"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11193"
+         x="332"
+         y="213">Setup IGMP forwarding</tspan>
+    </text>
+  </g>
+  <g
+     id="g11163"
+     transform="translate(164.56493,648.02162)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)"
+       id="path11165"
+       d="m 709.29396,280.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text11167"
+       y="274"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11" />
+  </g>
+  <rect
+     height="25.455664"
+     width="8"
+     x="1247.0232"
+     y="951.08014"
+     id="rect11169"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     id="g11171"
+     transform="translate(544.26765,738.02162)">
+    <path
+       d="m 328,215.00647 369.12663,0"
+       id="path11173"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker8187)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="211"
+       id="text11175"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan11195"
+         x="332"
+         y="211">Setup IGMP forwarding</tspan>
+    </text>
+  </g>
+  <g
+     transform="matrix(2.0432271,0,0,2.0432271,-573.64579,403.88725)"
+     id="g11179">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,280.01189 180.70604,0"
+       id="path11181"
+       style="fill:none;stroke:#000000;stroke-width:0.48942184;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="274"
+       id="text11183"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%" />
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect11185"
+     y="948.00055"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="970.00055"
+     id="rect11187"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect11189"
+     y="970.00055"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <g
+     transform="translate(-28.976841,338.08005)"
+     id="g11209">
+    <g
+       id="g11211"
+       transform="translate(0,116)">
+      <g
+         id="g11213"
+         transform="translate(0,124)">
+        <path
+           id="path11215"
+           d="m 1283.9717,173.44911 186.0902,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker4890)" />
+        <text
+           id="text11217"
+           y="169.45012"
+           x="1435.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan11225"
+             x="1435.062"
+             y="169.45012">DHCP-REQ</tspan>
+        </text>
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker5068)"
+           inkscape:connector-curvature="0"
+           d="m 1251.2543,174.19177 26.7271,0"
+           id="path11219" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           x="1234.6991"
+           y="181.89438"
+           id="text11221"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan11223"
+             x="1234.6991"
+             y="181.89438"
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">X</tspan></text>
+      </g>
+    </g>
+  </g>
+  <rect
+     height="515.31049"
+     width="8"
+     x="1438.9248"
+     y="565.66943"
+     id="rect10009"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999982" />
+  <g
+     id="g11227"
+     transform="translate(-28.976841,498.08005)">
+    <g
+       transform="translate(0,116)"
+       id="g11229">
+      <g
+         transform="translate(0,124)"
+         id="g11231">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1;marker-start:url(#marker11247)"
+           inkscape:connector-curvature="0"
+           d="m 1283.9541,173.4493 184.1308,0"
+           id="path11233" />
+        <text
+           sodipodi:linespacing="125%"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1429.062"
+           y="169.45012"
+           id="text11235">
+          <tspan
+             sodipodi:role="line"
+             id="tspan11245"
+             x="1429.062"
+             y="169.45012">Contact CMS</tspan>
+        </text>
+        <path
+           id="path11239"
+           d="m 1251.2543,174.19177 26.7271,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker5068)" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text11241"
+           y="181.89438"
+           x="1234.6991"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           xml:space="preserve"><tspan
+             y="181.89438"
+             x="1234.6991"
+             id="tspan11243"
+             sodipodi:role="line"
+             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">X</tspan></text>
+      </g>
+    </g>
+  </g>
+  <g
+     transform="translate(-28.976841,644.08005)"
+     id="g11533">
+    <g
+       id="g11535"
+       transform="translate(0,116)">
+      <g
+         id="g11537"
+         transform="translate(0,124)">
+        <path
+           id="path11539"
+           d="m 134.7996,173.34016 1333.2853,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker11747)" />
+        <text
+           id="text11541"
+           y="169.45012"
+           x="1429.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000"
+           sodipodi:linespacing="125%">
+          <tspan
+             y="169.45012"
+             x="1429.062"
+             id="tspan11543"
+             sodipodi:role="line">Contact CMS</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     height="25.455664"
+     width="8"
+     x="95.023155"
+     y="1057.0801"
+     id="rect12093"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     transform="translate(-223.73235,866.02165)"
+     id="g12095">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999988;marker-end:url(#marker12105)"
+       id="path12097"
+       d="m 327.99997,215.1007 1332.90093,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text12099"
+       y="209"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan12103"
+         x="332"
+         y="209">RG config/policy</tspan>
+    </text>
+  </g>
+  <g
+     id="g12589"
+     transform="translate(-28.976841,968.08005)">
+    <g
+       id="g12591"
+       transform="matrix(2.0945906,0,0,1,-43.783626,0)">
+      <path
+         id="path12593"
+         d="m 40,138 723,0"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:0.69095606" />
+      <path
+         id="path12595"
+         d="m 40,142 723,0"
+         inkscape:connector-curvature="0"
+         style="fill:none;stroke:#000000;stroke-width:0.69095606" />
+    </g>
+    <g
+       id="g12597"
+       transform="translate(0,-34)">
+      <rect
+         y="164.36084"
+         x="735.62274"
+         height="18.042028"
+         width="131.21477"
+         id="rect12599"
+         style="fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000"
+         id="text12601"
+         y="177"
+         x="799"
+         textLength="53"
+         font-weight="normal"
+         font-style="normal"
+         font-size="11"
+         sodipodi:linespacing="125%">
+        <tspan
+           sodipodi:role="line"
+           id="tspan12605"
+           x="799"
+           y="177">RG Activated</tspan>
+      </text>
+    </g>
+  </g>
+  <rect
+     height="25.455664"
+     width="8"
+     x="1055.0232"
+     y="119.08"
+     id="rect4804"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     id="g4806"
+     transform="translate(544.26765,-93.978373)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path4808"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text4810"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5000"
+         x="332"
+         y="213">Connect()</tspan>
+    </text>
+  </g>
+  <g
+     transform="translate(164.56493,-135.97837)"
+     id="g4814">
+    <path
+       inkscape:connector-curvature="0"
+       d="m 709.29396,280.01189 180.70604,0"
+       id="path4816"
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="160"
+       x="886"
+       y="274"
+       id="text4818"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       sodipodi:linespacing="125%" />
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect5176"
+     y="159.08"
+     x="1055.0232"
+     width="8"
+     height="25.455664" />
+  <g
+     transform="translate(544.26765,-53.978373)"
+     id="g5178">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker5667)"
+       id="path5180"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text5182"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5192"
+         x="332"
+         y="213">Activate()</tspan>
+    </text>
+  </g>
+  <g
+     id="g5186"
+     transform="translate(164.56493,-95.978373)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker5971)"
+       id="path5188"
+       d="m 709.29396,280.01189 180.70604,0"
+       inkscape:connector-curvature="0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+       id="text5190"
+       y="274"
+       x="886"
+       textLength="160"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11" />
+  </g>
+  <rect
+     height="25.455664"
+     width="8"
+     x="1435.0232"
+     y="593.08008"
+     id="rect5248"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1" />
+  <g
+     id="g5250"
+     transform="translate(-28.976841,204.08005)">
+    <g
+       id="g5252"
+       transform="translate(0,116)">
+      <g
+         id="g5254"
+         transform="translate(0,124)">
+        <path
+           id="path5256"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text5258"
+           y="171.45012"
+           x="1461.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5560"
+             x="1461.062"
+             y="171.45012">EAP Response-Identity</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     transform="translate(-222.97684,204.08005)"
+     id="g5264">
+    <g
+       transform="translate(0,116)"
+       id="g5266">
+      <g
+         transform="translate(0,124)"
+         id="g5268">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path5270" />
+        <text
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1461.062"
+           y="171.45012"
+           id="text5272"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5562"
+             x="1461.062"
+             y="171.45012">EAP Response-Identity</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     id="g5276"
+     transform="translate(-414.97684,204.08005)">
+    <g
+       id="g5278"
+       transform="translate(0,116)">
+      <g
+         id="g5280"
+         transform="translate(0,124)">
+        <path
+           id="path5282"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text5284"
+           y="171.45012"
+           x="1461.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5564"
+             x="1461.062"
+             y="171.45012">EAP Response-Identity</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     transform="translate(-606.97684,204.08005)"
+     id="g5288">
+    <g
+       transform="translate(0,116)"
+       id="g5290">
+      <g
+         transform="translate(0,124)"
+         id="g5292">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path5294" />
+        <text
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1461.062"
+           y="171.45012"
+           id="text5296"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5566"
+             x="1461.062"
+             y="171.45012">EAP Response-Identity</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="863.02313"
+     y="612.00061"
+     id="rect5300"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect5302"
+     y="612.00061"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <rect
+     height="10.694003"
+     width="8"
+     x="1247.0232"
+     y="612.00061"
+     id="rect5304"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     transform="translate(352.26765,430.02162)"
+     id="g5310">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path5312"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10239)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text5314"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5572"
+         x="332"
+         y="213">PKT-OUT(EAP Request)</tspan>
+    </text>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="863.02313"
+     y="640.00061"
+     id="rect5318"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     id="g5320"
+     transform="translate(544.26765,430.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path5322"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text5324"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5574"
+         x="332"
+         y="213">EAP Request</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect5328"
+     y="640.00061"
+     x="1055.0232"
+     width="8"
+     height="10.694003" />
+  <g
+     transform="translate(736.26765,430.02162)"
+     id="g5330">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       id="path5332"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text5334"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5408"
+         x="332"
+         y="213">EAP-Request</tspan>
+    </text>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="1247.0232"
+     y="640.00061"
+     id="rect5338"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     id="g5340"
+     transform="translate(928.26765,430.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path5342"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text5344"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5576"
+         x="332"
+         y="213">EAP Request</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect5348"
+     y="643.08008"
+     x="1435.0232"
+     width="8"
+     height="25.455664" />
+  <g
+     transform="translate(-28.976841,254.08005)"
+     id="g5350">
+    <g
+       transform="translate(0,116)"
+       id="g5352">
+      <g
+         transform="translate(0,124)"
+         id="g5354">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path5356" />
+        <text
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1461.062"
+           y="169.45012"
+           id="text5358"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5578"
+             x="1461.062"
+             y="169.45012">EAP Response</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     id="g5362"
+     transform="translate(-222.97684,254.08005)">
+    <g
+       id="g5364"
+       transform="translate(0,116)">
+      <g
+         id="g5366"
+         transform="translate(0,124)">
+        <path
+           id="path5368"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text5370"
+           y="169.45012"
+           x="1461.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5580"
+             x="1461.062"
+             y="169.45012">EAP Response</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     transform="translate(-414.97684,254.08005)"
+     id="g5374">
+    <g
+       transform="translate(0,116)"
+       id="g5376">
+      <g
+         transform="translate(0,124)"
+         id="g5378">
+        <path
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)"
+           inkscape:connector-curvature="0"
+           d="m 1287.2229,173.44942 182.839,0"
+           id="path5380" />
+        <text
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           font-size="11"
+           font-style="normal"
+           font-weight="normal"
+           textLength="57"
+           x="1461.062"
+           y="169.45012"
+           id="text5382"
+           sodipodi:linespacing="125%">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5582"
+             x="1461.062"
+             y="169.45012">EAP Response</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <g
+     id="g5386"
+     transform="translate(-606.97684,254.08005)">
+    <g
+       id="g5388"
+       transform="translate(0,116)">
+      <g
+         id="g5390"
+         transform="translate(0,124)">
+        <path
+           id="path5392"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker9841)" />
+        <text
+           sodipodi:linespacing="125%"
+           id="text5394"
+           y="169.45012"
+           x="1461.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000">
+          <tspan
+             sodipodi:role="line"
+             id="tspan5584"
+             x="1461.062"
+             y="169.45012">EAP Response</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect5398"
+     y="662.00061"
+     x="863.02313"
+     width="8"
+     height="10.694003" />
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="662.00061"
+     id="rect5400"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect5402"
+     y="662.00061"
+     x="1247.0232"
+     width="8"
+     height="10.694003" />
+  <g
+     id="g5420"
+     transform="translate(-798.97684,254.08005)">
+    <g
+       id="g5422"
+       transform="translate(0,116)">
+      <g
+         id="g5424"
+         transform="translate(0,124)">
+        <path
+           id="path5426"
+           d="m 1287.2229,173.44942 182.839,0"
+           inkscape:connector-curvature="0"
+           style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-start:url(#marker10045)" />
+        <text
+           id="text5428"
+           y="171.45012"
+           x="1467.062"
+           textLength="57"
+           font-weight="normal"
+           font-style="normal"
+           font-size="11"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:end;writing-mode:lr-tb;text-anchor:end;fill:#000000"
+           sodipodi:linespacing="125%">
+          <tspan
+             y="171.45012"
+             x="1467.062"
+             id="tspan5430"
+             sodipodi:role="line">RADIUS Access-Request</tspan>
+        </text>
+      </g>
+    </g>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:1"
+     id="rect5432"
+     y="667.95349"
+     x="477.67822"
+     width="8"
+     height="25.455664" />
+  <g
+     id="g5434"
+     transform="translate(160.26765,476.02162)">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10239)"
+       id="path5436"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text5438"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5570"
+         x="332"
+         y="213">RADIUS Access-Accept</tspan>
+    </text>
+  </g>
+  <g
+     id="g5444"
+     transform="translate(352.26765,480.02162)">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10239)"
+       id="path5446"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text5448"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5586"
+         x="332"
+         y="213">PKT-OUT(EAP Success)</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect5452"
+     y="690.00061"
+     x="863.02313"
+     width="8"
+     height="10.694003" />
+  <g
+     transform="translate(544.26765,480.02162)"
+     id="g5454">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       id="path5456"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text5458"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5588"
+         x="332"
+         y="213">EAP Success</tspan>
+    </text>
+  </g>
+  <rect
+     height="10.694003"
+     width="8"
+     x="1055.0232"
+     y="690.00061"
+     id="rect5462"
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994" />
+  <g
+     id="g5464"
+     transform="translate(736.26765,480.02162)">
+    <path
+       d="m 327.99999,214.98758 178.19611,0"
+       id="path5466"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       inkscape:connector-curvature="0" />
+    <text
+       font-size="11"
+       font-style="normal"
+       font-weight="normal"
+       textLength="108"
+       x="332"
+       y="213"
+       id="text5468"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       sodipodi:linespacing="125%">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5590"
+         x="332"
+         y="213">EAP Success</tspan>
+    </text>
+  </g>
+  <rect
+     style="fill:#ffe4b5;stroke:#000000;stroke-width:0.99999994"
+     id="rect5472"
+     y="690.00061"
+     x="1247.0232"
+     width="8"
+     height="10.694003" />
+  <g
+     transform="translate(928.26765,480.02162)"
+     id="g5474">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:none;stroke:#000000;stroke-width:0.99999994;marker-end:url(#marker10426)"
+       id="path5476"
+       d="m 327.99999,214.98758 178.19611,0" />
+    <text
+       sodipodi:linespacing="125%"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+       id="text5478"
+       y="213"
+       x="332"
+       textLength="108"
+       font-weight="normal"
+       font-style="normal"
+       font-size="11">
+      <tspan
+         sodipodi:role="line"
+         id="tspan5592"
+         x="332"
+         y="213">EAP Success</tspan>
+    </text>
+  </g>
+  <text
+     font-size="11"
+     font-style="normal"
+     font-weight="normal"
+     textLength="108"
+     x="9.9140625"
+     y="1129.0769"
+     id="text10233-0"
+     style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+     sodipodi:linespacing="125%">
+    <tspan
+       sodipodi:role="line"
+       id="tspan5103"
+       x="9.9140625"
+       y="1129.0769">Version 2</tspan>
+  </text>
+</svg>
diff --git a/docs/manuals/user/package.json b/docs/manuals/user/package.json
new file mode 100644
index 0000000..93faf76
--- /dev/null
+++ b/docs/manuals/user/package.json
@@ -0,0 +1,19 @@
+{
+  "name": "voltha-docs",
+  "version": "1.0.0",
+  "description": "Documentation for Voltha",
+  "main": "README.md",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://gerrit.opencord.org/voltha"
+  },
+  "author": "Voltha Team",
+  "license": "Apache 2.0",
+  "dependencies": {
+    "doctoc": "^0.14.1",
+    "gitbook-cli": "^0.3.6"
+  }
+}