Merge "Fixing and updating offline installation docs"
diff --git a/Makefile b/Makefile
index 5b2c180..e8a972f 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@
 
 # Other repos with documentation that's included in the gitbook
 # edit the `git_refs` file with the commit/tag/branch that you want to use
-OTHER_REPO_DOCS ?= att-workflow-driver cord-tester fabric fabric-crossconnect hippie-oss kubernetes-service olt-service onos-service openolt openstack rcord simpleexampleservice exampleservice vrouter xos xos-gui xos-tosca
+OTHER_REPO_DOCS ?= att-workflow-driver cord-tester fabric fabric-crossconnect hippie-oss kubernetes-service olt-service onos-service openolt openstack rcord simpleexampleservice exampleservice vrouter xos xos-gui xos-tosca vtn-service
 GENERATED_DOCS  ?= # should be 'swagger', but currently broken
 ALL_DOCS        ?= $(OTHER_REPO_DOCS) $(GENERATED_DOCS)
 
diff --git a/SUMMARY.md b/SUMMARY.md
index 0a270ce..0d895d6 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -80,7 +80,7 @@
         * Operate
             * [Disable/Enable an ONU](profiles/seba/operate/onu-ops.md)
             * [Edit a Whitelist entry](profiles/seba/operate/whitelist-ops.md)
-            * [Disable/Delete an OLT](profiles/seba/operate/olt-ops.md)
+            * [Delete an OLT](profiles/seba/operate/olt-ops.md)
             * [Fix configuration errors](profiles/seba/operate/config-ops.md)
             * [Add a cross-connect in the AGG switch](profiles/seba/operate/agg-ops.md)
             * [Try a new version of *](profiles/seba/operate/k8s-helm-ops.md)
@@ -106,7 +106,7 @@
     * [AT&T Workflow Driver](att-workflow-driver/README.md)
     * [Kubernetes](kubernetes-service/kubernetes-service.md)
     * [OpenStack](openstack/openstack-service.md)
-    * [VTN](xos/xos_vtn.md)
+    * [VTN](vtn-service/README.md)
 * [Helm Reference](charts/helm.md)
     * [XOS-CORE](charts/xos-core.md)
     * [ONOS](charts/onos.md)
@@ -121,3 +121,6 @@
     * [Logging and Monitoring](charts/logging-monitoring.md)
     * [Persistent Storage](charts/storage.md)
     * [BBSim](charts/bbsim.md)
+    * [PONNET](charts/ponnet.md)
+    * [PONSIM v2](charts/ponsimv2.md)
+    * [PONSIM Pod](charts/ponsim-pod.md)
diff --git a/charts/onos.md b/charts/onos.md
index 7e713fb..a398039 100644
--- a/charts/onos.md
+++ b/charts/onos.md
@@ -13,6 +13,17 @@
 * REST/UI: 30120
 * Karaf debugger: 30555
 
+## Accessing the ONOS CLI
+
+Assuming you have not changed the default ports in the chart,
+you can use this command to access the ONOS CLI:
+
+```shell
+ssh karaf@<pod-ip> -p 30115
+```
+
+The default ONOS password is `karaf`.
+
 ## ONOS logging
 
 ### `onos-log-agent` Sidecar container
@@ -52,4 +63,4 @@
 
 ```shell
 helm install -n onos -f configs/onos-debug.yaml onos
-```
+```
\ No newline at end of file
diff --git a/charts/ponnet.md b/charts/ponnet.md
new file mode 100644
index 0000000..1c2831e
--- /dev/null
+++ b/charts/ponnet.md
@@ -0,0 +1,18 @@
+# PONNET Helm Chart
+
+The `ponnet` Helm chart installs and configures Kubernetes CNI plugins
+for [PONSIM](ponsimv2.md).  Currently it creates two Linux bridges, `pon0`
+and `pon1`, that allow a L2 dataplane to be created between the PONSIM
+RG and components upstream of the PONSIM OLT.  Note that the bridges
+are not actually created until [PONSIM](ponsimv2.md) is installed.
+
+You can install the chart using:
+
+```bash
+helm install -n ponnet ponnet
+```
+
+The chart modifies the underlying Kubernetes setup by installing the `bridge`
+CNI and adding configuration files to create the two bridges.  Kubernetes must
+be configured with CNI enabled.  Note that this chart does not seem to work
+on `minikube`.
diff --git a/charts/ponsim-pod.md b/charts/ponsim-pod.md
new file mode 100644
index 0000000..b84fea3
--- /dev/null
+++ b/charts/ponsim-pod.md
@@ -0,0 +1,10 @@
+# PONSIM Pod
+
+This chart just loads TOSCA for adding a PONSIM OLT and Mininet
+AGG Switch to XOS.  It is used by [SiaB](../profiles/seba/siab.md).
+
+You can install it using:
+
+```bash
+helm install -n ponsim-pod xos-profiles/ponsim-pod/
+```
diff --git a/charts/ponsimv2.md b/charts/ponsimv2.md
new file mode 100644
index 0000000..a50c74d
--- /dev/null
+++ b/charts/ponsimv2.md
@@ -0,0 +1,31 @@
+# PONSIM v2 Helm Chart
+
+The `ponsimv2` chart deploys the PON Simulator (PONSIM) containers
+(a virtual OLT, ONU, and RG) in the context of VOLTHA.
+This chart is used by [SiaB](../profiles/seba/siab.md).
+More details about PONSIM can be found in
+[its README](https://github.com/opencord/voltha/blob/master/ponsim/v2/README.md).
+
+You must install the [PONNET](ponnet.md) chart before installing this one.
+At that point you can install PONSIM using:
+
+```bash
+helm install -n ponsimv2 ponsimv2
+```
+
+After a successful install you will see containers like these running in the
+VOLTHA namespace:
+
+```bash
+$ kubectl -n voltha get pod
+NAME                                        READY     STATUS    RESTARTS   AGE
+...
+olt-77468cfccd-7ltzr                        1/1       Running   0          10m
+onu-6d7d5db8f-pk59s                         1/1       Running   0          10m
+rg-5fbddf9bdf-b292r                         1/1       Running   0          10m
+...
+```
+
+If any of the containers do not come up successfully, the issue is likely
+that the [PONNET](ponnet.md) chart is not loaded or was not able to create
+the two Linux bridges.
diff --git a/git_refs b/git_refs
index 8659fbc..9e9dd1a 100644
--- a/git_refs
+++ b/git_refs
@@ -28,4 +28,4 @@
 xos-gui               /docs    master
 xos-tosca             /docs    master
 xos                   /docs    master
-
+vtn-service           /docs    master
diff --git a/images/gui.png b/images/gui.png
new file mode 100644
index 0000000..4057a1c
--- /dev/null
+++ b/images/gui.png
Binary files differ
diff --git a/navigate.md b/navigate.md
index 7e3479e..f307986 100644
--- a/navigate.md
+++ b/navigate.md
@@ -1,10 +1,10 @@
 # Navigating CORD
 
-## Assembled in Layers
+## Assembled from Components
 
-A given instance of CORD is constructed from a set of disaggregated
+A given instance of CORD is assembled from a set of disaggregated
 components. This assembly is done according to the general pattern
-shown in the following conceptual diagram.
+shown in the following diagram.
 
 ![Layers](images/layers.png)
 
@@ -12,11 +12,13 @@
 
 * **Kubernetes:** All elements of the CORD control plane run in
   Kubernetes containers. CORD assumes a Kubernetes foundation,
-  but does not prescribe how the hardware or Kubernetes are installed.
+  but does not prescribe how Kubernetes (or the underlying hardware)
+  are installed.
 
 * **Platform:** The Platform layer consists of ONOS, XOS,
   Kafka, and collection of Logging and Monitoring micro-services,
-  all running on a Kubernetes foundation.
+  all running on a Kubernetes foundation. The platform is common
+  to all Profiles.
 
 * **Profile:** Each unique CORD configuration corresponds to a
   Profile. It consists of a set of services (e.g., access services,
@@ -27,8 +29,8 @@
   
 * **Workflow:** A Profile includes one or more workflows, each of
   which defines the business logic and state machine for one of the
-  access technologies. A workflow augments/parameterizes a Profile for
-  the target deployment environment; it is not a layer, per se.  SEBA's
+  access technologies. A workflow customizes a Profile for the target
+  deployment environment; it is not a layer, per se.  SEBA's
   [AT&T Workflow](profiles/seba/workflows/att-install.md) is an example.
 
 The diagram also shows a hardware bill-of-materials, which must be
diff --git a/operating_cord/gui.md b/operating_cord/gui.md
index 6a5db25..cf46522 100644
--- a/operating_cord/gui.md
+++ b/operating_cord/gui.md
@@ -35,3 +35,16 @@
 ```
 
 This command opens the GUI in your default browser.
+
+## Using the GUI
+
+The GUI lets you explore the data model and gives immediate feedback on the state
+of the system through real time notifications.
+
+Some basic features:
+
+1. **Navigation**: Each item represent a service, click on it to see a list of models in that service
+2. **Search Box**: Full text search in the data model. Can't find something? Here's a good place to start from
+3. **Service Status**: Reports the status of each service and it's current version.
+
+![XOS GUI](../images/gui.png)
diff --git a/overview.md b/overview.md
index a67e6db..1a16dfb 100644
--- a/overview.md
+++ b/overview.md
@@ -29,11 +29,11 @@
  included in CORD.
 
 These are all fairly obvious. What's less obvious is the relationship among
-these stages, which is helpful in [Navigating CORD](navigate.md).
+these stages, which is explained in [Navigating CORD](navigate.md).
 
 ## Navigating the References
 
-CORD is built from components and the aggregation of components into a
+CORD is built from disaggregated components that are assembled into a
 composite solution. The References are organized accordingly:
 
 * [Profile Reference](profiles/intro.md): Installation and
diff --git a/profiles/seba/operate/agg-ops.md b/profiles/seba/operate/agg-ops.md
index c0b324d..015a2e3 100644
--- a/profiles/seba/operate/agg-ops.md
+++ b/profiles/seba/operate/agg-ops.md
@@ -1 +1,29 @@
 # AGG Switch Operations
+
+The aggregation switch is managed by the [Fabric Crossconnect](/fabric-crossconnect/README.md) Service.
+
+## Creating special-purpose VLAN crossconnects
+
+Sometimes it is necessary to create a special purpose VLAN crossconnect, such as to connect a specific VM to a BNG. To do this, it is necessary to manually create a `FabricCrossconnectServiceInstance`. First, assure that you have the necessary information:
+
+- `s_tag`. The VLAN tag that you wish to crossconnect.

+- `source_port`. Port number on the switch for one end of the crossconnect (typically where your VM is attached).

+- `destination_port`. Port number on the switch for the other end of the crossconnect (typically where your BNG is attached).

+- `switch_datapath_id`. Openflow ID of the switch where the crossconnect should be created.

+

+Next, navigate using the GUI to `Fabric crossconnect -> Fabric Crossconnect Service Instances`. There may or may not be existing service instances in the table at this time. Regardless, press the `Add` button to add a new service instance for your crossconnect:

+

+![Fabric Crossconect Service Instance Table View](./screenshots/fabric_crossconnect_service_instance_table_view.png "Fabric Crossconect Service Instance Table view in XOS")

+

+You will be presented with an empty detail screen for a new `Fabric Crossconnect Service Instance`. Enter the `s_tag`, `source_port`, and `switch_datapath_id`, then press the `SAVE` button.

+

+![Fabric Crossconect Service Instance Detail View](./screenshots/fabric_crossconnect_service_instance_detail_view.png "Fabric Crossconect Service Instance Detail view in XOS")

+

+If you already have a BNGPortMapping that matches the s-tag, then you do not need to proceed any further. If not, then it will be necessary to create a new BNGPortMapping for your s-tag. Start by going to `Fabric crossconnect -> BNGPortMappings`. There may or may not be any existing port mappings in the table. Press the `Add` button to create a new BNGPortMapping.

+

+![BNG Port Mapping Table View](./screenshots/bngportmapping_table_view.png "BNG Port Mapping Table view in XOS")

+

+You will be presented with an empty detail screen for a new `BNG Port Mapping`. Enter the `s_tag` and `switch port` (destination port), and then press the `SAVE` button.

+

+![BNG Port Mapping Detail View](./screenshots/bngportmapping_detail_view.png "BNG Port Mapping Detail view in XOS")

+

diff --git a/profiles/seba/operate/k8s-helm-ops.md b/profiles/seba/operate/k8s-helm-ops.md
index ce35330..c86aaf6 100644
--- a/profiles/seba/operate/k8s-helm-ops.md
+++ b/profiles/seba/operate/k8s-helm-ops.md
@@ -65,7 +65,7 @@
 
 ```bash
 helm upgrade --version=1.0.0 --reuse-values \
-    --set att-workflow-driver.image.repository=myrepo/att-workflow-driver
+    --set att-workflow-driver.image.repository=myrepo/att-workflow-driver \
     --set att-workflow-driver.image.tag=test-image \
     att-workflow cord/att-workflow
 ```
@@ -74,3 +74,90 @@
 replace `helm upgrade` with `helm template` in the above commands.  This will
 print out all the Kubernetes resources that Helm generates, and you can
 check that the image has actually been updated in the resources.
+
+## Deploying ONOS Apps
+
+If your applications are available on a webserver you can configure
+the `seba` chart to use those applications or change them at runtime via TOSCA/GUI.
+
+#### Configure ONOS apps at installation time
+
+If you are going to install a POD with custom ONOS applications you can create a
+custom values file as the following:
+
+```yaml
+# myvalues.yaml
+seba-services:
+  aaaAppUrl: "https://<my-webserver>/aaa/1.8.0/aaa-1.8.0.oar"
+  sadisAppUrl: "https://<my-webserver>/sadis-app/2.2.0/sadis-app-2.2.0.oar"
+  dhcpl2relayAppUrl: "https://<my-webserver>/dhcpl2relay/1.5.0/dhcpl2relay-1.5.0.oar"
+  oltAppUrl: "https://<my-webserver>/olt-app/2.1.0/olt-app-2.1.0.oar"
+  kafkaAppUrl: "https://<my-webserver>/kafka/1.0.0/kafka-1.0.0.oar"
+```
+
+and then install the `seba` chart using:
+
+```bash
+helm install -n seba cord/seba -f myvalues.yaml
+```
+
+For more informations on how to create a webserver containing the ONOS Apps
+and deploy it on the POD you can look at the [Offline Install](../../../offline-install.md#install-a-local-web-server-using-helm-optional)
+
+#### Change ONOS apps at runtime
+
+If you already have a POD installed but you want to replace an application,
+you have two options:
+
+**Update ONOS apps using TOSCA**
+
+To update an ONOS app on a running system you can use a TOSCA similar to
+the following one:
+
+```yaml
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+   - custom_types/onosapp.yaml
+   - custom_types/onosservice.yaml
+
+description: Replace an ONOS applications
+
+topology_template:
+  node_templates:
+
+    service#onos:
+      type: tosca.nodes.ONOSService
+      properties:
+          name: onos
+          must-exist: true
+
+    onos_app#olt:
+      type: tosca.nodes.ONOSApp
+      properties:
+        name: olt
+        app_id: org.opencord.olt
+        url: https://<my-webserver>/olt-app/2.1.0/olt-app-2.1.0.oar
+        version: 2.1.0
+        dependencies: org.opencord.sadis
+      requirements:
+        - owner:
+            node: service#onos
+            relationship: tosca.relationships.BelongsToOne
+```
+
+For instructions on how to push TOSCA into a CORD POD, please
+refer to this [guide](../../../xos-tosca/README.md).
+
+**Update ONOS apps via the GUI**
+
+If you want to update the version of an ONOS application via the GUI,
+you can simply navigate to `ONOS -> ONOS Applications` then select the application
+you want to update by clicking on the magnifier icon.
+
+Once you are in the detailed view of that application, you can just change the
+`url` field and save it. Note that if the `version` has changed you'll need to
+update that to.
+
+![ONOS Application detailed view in XOS](./screenshots/onos_apps_detail_view.png "ONOS Application detailed view in XOS")
+
diff --git a/profiles/seba/operate/olt-ops.md b/profiles/seba/operate/olt-ops.md
index a4317c1..e54fd95 100644
--- a/profiles/seba/operate/olt-ops.md
+++ b/profiles/seba/operate/olt-ops.md
@@ -1 +1,32 @@
 # OLT Operations
+
+For information on how to add an OLT, please refere to the
+[POD specific configuration](../configuration.md#olt-provisioning) page.
+
+## Remove on OLT
+
+In order to remove the OLT it is mandatory that no active subscribers are using it.
+
+You have two options:
+
+- [removing the subscribers](./olt-ops.md#remove-subscriber)
+- [changing their state to pre-provisioned](./olt-ops.md#change-subscriber-status)
+
+once the subscribers are gone you can navigate to `vOLT -> OLT Devices` and remove
+the device by clicking on the red `X` icon on the left side of the table.
+
+![OLT Table view in XOS](./screenshots/olt_table_view.png "OLT Table view in XOS")
+
+### Remove subscriber
+
+To remove a subscriber just visit `RCORD -> RCORD Subscribers` and click on the
+red `X` icon on the left side of the table.
+
+![Subscribers Table view in XOS](./screenshots/subscribers_table_view.png "Subscribers Table view in XOS")
+
+### Change subscriber status
+
+To change the Subscriber status, go to `RCORD -> RCORD Subscribers` and enter the
+detail view by clicking on the magnifier icon. Then change its state to `Pre Provisioned`
+
+![Subscribers Detail view in XOS](./screenshots/subscribers_detail_view.png "Subscribers Detail view in XOS")
\ No newline at end of file
diff --git a/profiles/seba/operate/onu-ops.md b/profiles/seba/operate/onu-ops.md
index 6186438..a54b73e 100644
--- a/profiles/seba/operate/onu-ops.md
+++ b/profiles/seba/operate/onu-ops.md
@@ -1 +1,17 @@
 # ONU Operations
+
+ONUs can be managed from the corresponding view in XOS,
+it is located under `vOLT -> ONU Devices`
+
+![ONU Table view in XOS](./screenshots/onu_table_view.png "ONU Table view in XOS")
+
+From this view you can view all the ONUs known to the system, remove them or go
+to the details page (clicking on the magnifier icon)
+
+## Enable/Disable an ONU
+
+Once you are in the ONU details view, you can just change it's `Admin State`
+to enable or disable the device.
+
+![ONU Detail view in XOS](./screenshots/onu_detail_view.png "ONU Detail view in XOS")
+
diff --git a/profiles/seba/operate/screenshots/bngportmapping_detail_view.png b/profiles/seba/operate/screenshots/bngportmapping_detail_view.png
new file mode 100644
index 0000000..101cfe7
--- /dev/null
+++ b/profiles/seba/operate/screenshots/bngportmapping_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/bngportmapping_table_view.png b/profiles/seba/operate/screenshots/bngportmapping_table_view.png
new file mode 100644
index 0000000..223e165
--- /dev/null
+++ b/profiles/seba/operate/screenshots/bngportmapping_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_detail_view.png b/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_detail_view.png
new file mode 100644
index 0000000..5b6e367
--- /dev/null
+++ b/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_table_view.png b/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_table_view.png
new file mode 100644
index 0000000..fbda193
--- /dev/null
+++ b/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/olt_table_view.png b/profiles/seba/operate/screenshots/olt_table_view.png
new file mode 100644
index 0000000..0d32958
--- /dev/null
+++ b/profiles/seba/operate/screenshots/olt_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/onos_apps_detail_view.png b/profiles/seba/operate/screenshots/onos_apps_detail_view.png
new file mode 100644
index 0000000..a54793f
--- /dev/null
+++ b/profiles/seba/operate/screenshots/onos_apps_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/onu_detail_view.png b/profiles/seba/operate/screenshots/onu_detail_view.png
new file mode 100644
index 0000000..de205fb
--- /dev/null
+++ b/profiles/seba/operate/screenshots/onu_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/onu_table_view.png b/profiles/seba/operate/screenshots/onu_table_view.png
new file mode 100644
index 0000000..40744db
--- /dev/null
+++ b/profiles/seba/operate/screenshots/onu_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/subscribers_detail_view.png b/profiles/seba/operate/screenshots/subscribers_detail_view.png
new file mode 100644
index 0000000..a5ac219
--- /dev/null
+++ b/profiles/seba/operate/screenshots/subscribers_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/subscribers_table_view.png b/profiles/seba/operate/screenshots/subscribers_table_view.png
new file mode 100644
index 0000000..95e0073
--- /dev/null
+++ b/profiles/seba/operate/screenshots/subscribers_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/whitelist_table_view.png b/profiles/seba/operate/screenshots/whitelist_table_view.png
new file mode 100644
index 0000000..a55f6d7
--- /dev/null
+++ b/profiles/seba/operate/screenshots/whitelist_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/whitelist-ops.md b/profiles/seba/operate/whitelist-ops.md
index c1335fe..54ffbc4 100644
--- a/profiles/seba/operate/whitelist-ops.md
+++ b/profiles/seba/operate/whitelist-ops.md
@@ -1 +1,11 @@
 # Whitelist Operations
+
+The whitelist entries can be removed and modified from this page.
+
+`Att Workflow Driver -> ONU Whitelist`
+
+![Whitelist Table view in XOS](./screenshots/whitelist_table_view.png "Whitelist Table view in XOS")
+
+For more information about the whitelist, please refer to the
+[Configure AT&T workflow](../workflows/att-configure.md#whitelist-population) page.
+
diff --git a/profiles/seba/troubleshoot/no-att-si.md b/profiles/seba/troubleshoot/no-att-si.md
index 7a73d5b..82d170f 100644
--- a/profiles/seba/troubleshoot/no-att-si.md
+++ b/profiles/seba/troubleshoot/no-att-si.md
@@ -1 +1,125 @@
-# I don't see any AttWorkflowInstances
+# I don't see any AttWorkflowServiceInstances
+
+If you have added an OLT in the system but you see no AttWorkflowServiceInstances
+you can debug it following these steps.
+
+## Check the status in VOLTHA
+
+Connect to the [VOLTHA CLI](../../../charts/voltha.md#accessing-the-voltha-cli)
+and check the devices:
+
+```shell
+(voltha) devices
+Devices:
++------------------+-------------------+------+------------------+------------------+-------------+-------------+----------------+----------------+------------------+------------------------+-------------------------+--------------------------+----------------------+------------------------------+
+|               id |              type | root |        parent_id |    serial_number | admin_state | oper_status | connect_status | parent_port_no |    host_and_port |                 reason | proxy_address.device_id | proxy_address.channel_id | proxy_address.onu_id | proxy_address.onu_session_id |
++------------------+-------------------+------+------------------+------------------+-------------+-------------+----------------+----------------+------------------+------------------------+-------------------------+--------------------------+----------------------+------------------------------+
+| 00012d28315ddb79 |           openolt | True | 000100000a5a007a | 10.90.0.122:9191 |     ENABLED |      ACTIVE |      REACHABLE |                | 10.90.0.122:9191 |                        |                         |                          |                      |                              |
+| 0001d18bedd13517 | brcm_openomci_onu | True | 00012d28315ddb79 |     ALPHe3d1cfe3 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                  | initial-mib-downloaded |        00012d28315ddb79 |                          |                    1 |                            1 |
+| 00011c399faa957d | brcm_openomci_onu | True | 00012d28315ddb79 |     ALPHe3d1cf9d |     ENABLED |  DISCOVERED |      REACHABLE |      536870912 |                  |          starting-omci |        00012d28315ddb79 |                          |                    2 |                            2 |
++------------------+-------------------+------+------------------+------------------+-------------+-------------+----------------+----------------+------------------+------------------------+-------------------------+--------------------------+----------------------+------------------------------+
+```
+
+AttWorkflowServiceInstances are created once the ONUs reach are in `oper_status=ACTIVE`,
+so at this given time we should expect to see only one AttWorkflowServiceInstances.
+
+Now check the logical device representing that OLT and verify that it shows active
+UNI ports:
+
+```shell
+(voltha) logical_devices
+Logical devices:
++------------------+------------------+------------------+------------------+---------------------------+--------------------------+
+|               id |      datapath_id |   root_device_id |  desc.serial_num | switch_features.n_buffers | switch_features.n_tables |
++------------------+------------------+------------------+------------------+---------------------------+--------------------------+
+| 000100000a5a007a | 000000000a5a007a | 00012d28315ddb79 | 10.90.0.122:9191 |                       256 |                        2 |
++------------------+------------------+------------------+------------------+---------------------------+--------------------------+
+(voltha) logical_device 000100000a5a007a
+(logical device 000100000a5a007a) 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 | ofp_port_stats.port_no |
++-----------+------------------+----------------+-----------+------------------+------------------------------+---------------+----------------+---------------+---------------------+------------------------+
+| nni-65536 | 00012d28315ddb79 |          65536 |      True |            65536 |     [0L, 0L, 0L, 1L, 0L, 0L] |     nni-65536 |              4 |          4128 |                  32 |                  65536 |
+|    uni-32 | 00011c399faa957d |             32 |           |               32 |    [8L, 0L, 0L, 0L, 0L, 32L] |  ALPHe3d1cf9d |              4 |          4160 |                  64 |                        |
+|    uni-16 | 0001d18bedd13517 |             16 |           |               16 |    [8L, 0L, 0L, 0L, 0L, 16L] |  ALPHe3d1cfe3 |              4 |          4160 |                  64 |                        |
++-----------+------------------+----------------+-----------+------------------+------------------------------+---------------+----------------+---------------+---------------------+------------------------+
+```
+
+If no ports are shown an error has occurred in VOLTHA, if everything
+looks correct you can proceed to the next step.
+
+## Check the status in ONOS
+
+Connect to the [ONOS CLI](../../../charts/onos.md#accessing-the-onos-cli)
+and check devices:
+
+```shell
+
+onos> devices
+id=of:0000000000000002, available=true, local-status=connected 5h33m ago, role=MASTER, type=SWITCH, mfr=Accton Corp., hw=x86-64-accton-as6712-32x-r0, sw=ofdpa 3.0.5.5+accton1.7-1, serial=671232X1538038, chassis=2, driver=ofdpa3, channelId=10.90.0.120:46211, locType=none, managementAddress=10.90.0.120, name=AGG_SWITCH, protocol=OF_13
+id=of:000000000a5a007a, available=true, local-status=connected 4h19m ago, role=MASTER, type=SWITCH, mfr=VOLTHA Project, hw=, sw=, serial=10.90.0.122:9191, chassis=a5a007a, driver=voltha, channelId=10.233.102.179:59154, locType=none, managementAddress=10.233.102.179, name=SHAD OLT, protocol=OF_13
+```
+
+You should see the aggregation switch and the logical device representing the PON.
+If you can't see the logical device (`mfr=VOLTHA Project`) then an error occurred
+in the communication between the VOLTHA ofagent component and ONOS.
+
+Check if ONOS can see the active ports on the logical device:
+```shell
+onos> ports -e of:000000000a5a007a
+id=of:000000000a5a007a, available=true, local-status=connected 4h21m ago, role=MASTER, type=SWITCH, mfr=VOLTHA Project, hw=, sw=, serial=10.90.0.122:9191, chassis=a5a007a, driver=voltha, channelId=10.233.102.179:59154, locType=none, managementAddress=10.233.102.179, name=SHAD OLT, protocol=OF_13
+  port=16, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=08:00:00:00:00:10, portName=ALPHe3d1cfe3
+  port=32, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=08:00:00:00:00:20, portName=ALPHe3d1cf9d
+  port=65536, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=00:00:00:01:00:00, portName=nni-65536
+```
+
+If you don't see the ports there's again some issue in the communication between
+the VOLTHA ofagent component and ONOS.
+
+If everything looks correct you can move to the next step.
+
+## Check events in Kafka
+
+### Use Kibana
+
+If you have installed the [Logging component](../../../charts/logging-monitoring.md#logging-dashboard) of the platform you can then look in
+Kibana for these events.
+
+Connect to the dashboard an search for events in the `onu.events` topic:
+
+![Kibana ONU events](./screenshots/kibana_onu_events.png "Kibana ONU events")
+
+### Check in Kafka
+
+You can install kafkacat on the POD using this command:
+
+```shell
+helm install -n kfc cord/kafkacat
+```
+
+Then you'll need to access the container and list the messages on the `onu.events`
+topic:
+
+```shell
+kubectl exec -it kafkacat-7f45f65485-2lgp8 bash
+root@kafkacat-7f45f65485-2lgp8:/# kafkacat -b cord-platform-kafka -t onu.events
+```
+
+If evetyhing is correct you should see:
+
+```shell
+{"timestamp":"2018-12-19T22:34:00.755Z","status":"activated","serial_number":"ALPHe3d1cfe3","uni_port_id":16,"of_dpid":"of:000000000a5a007a"}
+```
+
+If you can see events in Kafka you can proceed with the next step.
+
+## Check the AttWorkflowDriver container
+
+This is the last step of the process, if you have events in kafka, you should
+check the logs of the `att-workflow-driver` container.
+
+You can do that using this command:
+```
+kubectl logs -f att-workflow-att-workflow-driver-7c8bc95894-xgxts
+```
diff --git a/profiles/seba/troubleshoot/screenshots/kibana_onu_events.png b/profiles/seba/troubleshoot/screenshots/kibana_onu_events.png
new file mode 100644
index 0000000..f1b7818
--- /dev/null
+++ b/profiles/seba/troubleshoot/screenshots/kibana_onu_events.png
Binary files differ
diff --git a/profiles/seba/workflows/att-configure.md b/profiles/seba/workflows/att-configure.md
index 056c2c9..4426858 100644
--- a/profiles/seba/workflows/att-configure.md
+++ b/profiles/seba/workflows/att-configure.md
@@ -1,10 +1,13 @@
 # Configure AT&T Workflow
 
-We assume your POD is already configured as per[this instructions](../configuration.md)
+We assume your POD is already configured as per [this instructions](../configuration.md)
 (you need to complete only the first section)
 
 ## Whitelist population
 
+> NOTE: the whitelist can be populated at any time. 
+> It doesn't need to be done upfront.
+
 To configure the ONU whitelist, you can use this TOSCA:
 
 ```yaml
@@ -37,74 +40,30 @@
 For instructions on how to push TOSCA into a CORD POD, please
 refer to this [guide](../../../xos-tosca/README.md).
 
-## Pre-provision subscribers
+### Where to find the required informations
 
-You can `pre-provision` subscribers using this TOSCA:
+#### Serial Number
 
-```yaml
-tosca_definitions_version: tosca_simple_yaml_1_0
-imports:
-  - custom_types/rcordsubscriber.yaml
+To locate the ONU serial number you can open the ONU detail view (`vOLT -> ONU Devices`).
 
-description: Pre-provsion a subscriber
+![ONU Detail view](./screenshots/onu_sn.png)
 
-topology_template:
-  node_templates:
+> NOTE: most of the time the serial number is also printed on the physical device.
 
-    # Pre-provision the subscriber the subscriber
-    my_house:
-      type: tosca.nodes.RCORDSubscriber
-      properties:
-        name: My House
-        status: pre-provisioned
-        c_tag: 111
-        onu_device: BRCM22222222
-        nas_port_id : "PON 1/1/03/1:1.1.1"
-        circuit_id: foo
-```
+#### Pon Port ID
 
-For instructions on how to push TOSCA into a CORD POD, please
-refer to this [guide](../../../xos-tosca/README.md).
+The `pon_port_id` can be found from the ONU detail view, by selecting the `PON Port`
+tab:
 
-## OLT Activation
+![ONU Detail view](./screenshots/pon_port.png)
 
-Once the system knows about whitelisted ONUs and subscribers,
-you can activate the OLT:
+#### Device ID
 
-```yaml
-tosca_definitions_version: tosca_simple_yaml_1_0
-imports:
-  - custom_types/oltdevice.yaml
-  - custom_types/voltservice.yaml
-description: Create a simulated OLT Device in VOLTHA
-topology_template:
-  node_templates:
+The `device_id` can easily be found in the OLT list view. Note the `device_id` is
+the openflow ID of the logical device exposed to ONOS, and not the serial number
+of the device.
 
-    service#volt:
-      type: tosca.nodes.VOLTService
-      properties:
-        name: volt
-        must-exist: true
-
-    olt_device:
-      type: tosca.nodes.OLTDevice
-      properties:
-        name: ONF OLT
-        device_type: openolt
-        host: 10.90.0.114
-        port: 9191
-        switch_datapath_id: of:0000000000000001
-        switch_port: "1"
-        outer_tpid: "0x8100"
-        uplink: "128"
-      requirements:
-        - volt_service:
-            node: service#volt
-            relationship: tosca.relationships.BelongsToOne
-```
-
-For instructions on how to push TOSCA into a CORD POD, please
-refer to this [guide](../../../xos-tosca/README.md).
+![OLT List view](./screenshots/olt_device_id.png)
 
 ## Device monitoring
 
diff --git a/profiles/seba/workflows/screenshots/olt_device_id.png b/profiles/seba/workflows/screenshots/olt_device_id.png
new file mode 100644
index 0000000..3e004ec
--- /dev/null
+++ b/profiles/seba/workflows/screenshots/olt_device_id.png
Binary files differ
diff --git a/profiles/seba/workflows/screenshots/onu_sn.png b/profiles/seba/workflows/screenshots/onu_sn.png
new file mode 100644
index 0000000..878e180
--- /dev/null
+++ b/profiles/seba/workflows/screenshots/onu_sn.png
Binary files differ
diff --git a/profiles/seba/workflows/screenshots/pon_port.png b/profiles/seba/workflows/screenshots/pon_port.png
new file mode 100644
index 0000000..4263d59
--- /dev/null
+++ b/profiles/seba/workflows/screenshots/pon_port.png
Binary files differ
diff --git a/quickstart.md b/quickstart.md
index 3dfab6b..382d310 100644
--- a/quickstart.md
+++ b/quickstart.md
@@ -2,7 +2,7 @@
 
 This section walks you through an example installation sequence on two
 different Unix-based platforms. This is just a surface introduction to
-CORD. If you'd prefer to understand the installation process in more
+CORD. If you prefer to understand the installation process in more
 depth, including the full range of deployment options, you should
 start with the [Installation Guide](README.md) instead.
 
@@ -16,6 +16,7 @@
 * [MacOS](macos.md)
 * [Linux](linux.md)
 
-Instead if you want to quickly get started with a complete CORD system together
-with the CORD platform, a profile such as SEBA, an exemplar operator workflow and
-an emulated data-plane, consider [SEBA-in-a-Box](./profiles/seba/siab-overview.md).
+If you want to quickly get started with a complete CORD system
+running on your laptop—including the CORD platform, the SEBA profile,
+an exemplar operator workflow, and an emulated data-plane—you could
+give [SEBA-in-a-Box](./profiles/seba/siab-overview.md) a try.