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.