Config changes for SEBA 2.0-alpha release

Change-Id: I4ec1163e2f2cdb034a3342950a0c8ec8af0d28e3
diff --git a/SUMMARY.md b/SUMMARY.md
index eb576b6..4d52cf7 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -70,17 +70,19 @@
             * Workflows
                 * [Install AT&T workflow](profiles/seba/workflows/att-install.md)
             * [EdgeCore OLT Setup (OpenOLT driver)](openolt/README.md)
-            * [BETA: Celestica / Microsemi Setup](profiles/seba/celestica-olt-setup.md)
-                * [Attach Container to a NIC](profiles/seba/veth_intf.md)
             * [SEBA-in-a-Box Overview](profiles/seba/siab-overview.md)
                 * [SEBA-in-a-Box](profiles/seba/siab.md)
                 * [SEBA-in-a-Box with Fabric Switch](profiles/seba/siab-with-fabric-switch.md)
             * [Scale testing with BBSim](profiles/seba/bbsim.md)
-            * [Configuring a lab setup](profiles/seba/lab-setup.md)
+            * Other Setups
+                * [Configuring a lab setup](profiles/seba/lab-setup.md)
+                * [Attach Container to a NIC](profiles/seba/veth_intf.md)
         * Configure
-            * [POD configuration](profiles/seba/configuration.md)
-            * Workflow specific configuration
-                * [Configure AT&T workflow](profiles/seba/workflows/att-configure.md)
+            * [Configure the Pod](profiles/seba/configuration.md)
+            * [Configure ONU Whitelist](profiles/seba/configure/onu-whitelist.md)
+            * [Configure Tech Profiles](profiles/seba/configure/tech-profile.md)
+            * [Provision Subscribers](profiles/seba/configure/subscriber.md)
+            * [Provision OLTs](profiles/seba/configure/olt.md)
         * Operate
             * [AT&T workflow description](profiles/seba/operate/att-workflow-description.md)
             * [Disable/Enable an ONU](profiles/seba/operate/onu-ops.md)
diff --git a/profiles/seba/configuration.md b/profiles/seba/configuration.md
index 0df79b0..b6ccd52 100644
--- a/profiles/seba/configuration.md
+++ b/profiles/seba/configuration.md
@@ -4,24 +4,20 @@
 running on your POD, you will need to configure it. This is typically
 done using TOSCA.
 
-In this page we are describing the process as a three steps process:
+In this page we describe the process of configuring parts of the SEBA Pod which do not relate to the Access configuration.
+This configuration should happen before the Access configuration and provisioning that involves the ONUs, OLTs, TechProfiles and Subscribers.
 
-- [POD Setup](./configuration.md#pod-setup)
-- [PON Provisioning](./configuration.md#pon-provisioning)
-- [Subscriber Provisioning](./configuration.md#subscriber-provisioning)
+Note that we are showing this configuration as appearing in multiple files as that is what logically makes sense, but be aware that all the configuration can be unified in a single TOSCA file.
 
-as that is what logically makes sense, but be aware that all the configurations
-can be unified in a single TOSCA file.
-
-This configuration is environment specific, so
-you will need to create your own, but the following can serve as a
-reference:
+This configuration is environment specific, so you will need to create your own, but the following can serve as a reference:
 
 ## POD Setup
 
+The basic idea is to configure the Aggregation Switch, and provide information regarding the ports on which it connects to the OLTs and the external BNG.
+We also need to tell the dhcpl2relay app (in ONOS) about the dhcp server.
 The POD Setup consists of
 
-- Fabric configuration (In this case a single aggregation switch, see [Fabric](../../fabric/README.md) for more information)
+- AGG switch configuration (In this case a single aggregation switch, see [Fabric](../../fabric/README.md) for more information)
 - `BNGPortMapping` configuration (see [Fabric-crossconnet](../../fabric-crossconnect/README.md) for more information)
 - DHCP L2 Relay configuration (see [ONOS DHCP L2 RELAY Application](https://github.com/opencord/dhcpl2relay/#configuration) for more information)
 
@@ -43,23 +39,23 @@
 
 topology_template:
   node_templates:
-    # Fabric configuration
+    # AGG switch configuration (configuration for the segmentrouting app in ONOS that controls the AGG switch)
     switch#leaf_1:
       type: tosca.nodes.Switch
       properties:
-        driver: ofdpa3
-        ipv4Loopback: 192.168.0.201
-        ipv4NodeSid: 17
-        isEdgeRouter: True
+        driver: ofdpa3 # the ONOS driver used to talk to the switch
+        ipv4Loopback: 192.168.0.201 # use any private IP address - this functionality is not used in SEBA
+        ipv4NodeSid: 17 # use any number greater than 15 - this functionality is not used in SEBA
+        isEdgeRouter: True # used to identify a leaf, which is always the case in SEBA
         name: AGG_SWITCH
-        ofId: of:0000000000000001
-        routerMac: 00:00:02:01:06:01
+        ofId: of:0000000000000001 # the openflow switch id representing the AGG switch
+        routerMac: 00:00:02:01:06:01 # use any MAC address - this functionality is not used in SEBA
 
-    # Setup the OLT switch port
+    # Setup the AGG switch port that connects to the OLT (or multiple such OLTs each on a different port)
     port#olt_port:
       type: tosca.nodes.SwitchPort
       properties:
-        portId: 1
+        portId: 1 # the port on the AGG switch that connects to the OLT's NNI port
         host_learning: false
       requirements:
         - switch:
@@ -70,21 +66,23 @@
     port#bng_port:
       type: tosca.nodes.SwitchPort
       properties:
-        portId: 31
+        portId: 31 # the port on the AGG switch that connects to the BNG
       requirements:
         - switch:
             node: switch#leaf_1
             relationship: tosca.relationships.BelongsToOne
 
-    # Setup the fabric switch port where the external
-    # router is connected to
+    # Configure BNGPortMapping
     bngmapping:
       type: tosca.nodes.BNGPortMapping
       properties:
-        s_tag: any
-        switch_port: 31
+        s_tag: any # allow this mapping to apply to any vlan tag
+        switch_port: 31 # the port on the AGG switch that connects to the BNG
 
-    # DHCP L2 Relay config
+    # DHCP L2 Relay config configures the onos dhcpl2relay app to use the AGG switch's
+    # uplink port (that connects to the BNG) to reach the DHCP server. It uses the
+    # ONOS ConnectPoint structure that represents an <ofId>/<portId>, both of which
+    # are configured above
     onos_app#dhcpl2relay:
       type: tosca.nodes.ONOSApp
       properties:
@@ -110,232 +108,3 @@
 
 For instructions on how to push TOSCA into a CORD POD, please
 refer to this [guide](../../xos-tosca/README.md).
-
-## PON Provisioning
-
-The PON Provisioning consists of preparing all the configurations needed by ONOS and VOLTHA to manage the PON network,
-su as:
-
-- [OLT](../../olt-service/README.md#create-an-OLT)
-- [Technology Profile](https://github.com/opencord/voltha/tree/master/common/tech_profile)
-
-```yaml
-tosca_definitions_version: tosca_simple_yaml_1_0
-imports:
-  - custom_types/oltdevice.yaml
-  - custom_types/onudevice.yaml
-  - custom_types/voltservice.yaml
-  - custom_types/technologyprofile.yaml
-description: Create an OLT Device in VOLTHA
-topology_template:
-  node_templates:
-
-    service#volt:
-      type: tosca.nodes.VOLTService
-      properties:
-        name: volt
-        must-exist: true
-
-    olt_device:
-      type: tosca.nodes.OLTDevice
-      properties:
-        name: My OLT
-        device_type: openolt
-        host: 10.90.0.122
-        port: 9191
-        switch_datapath_id: of:0000000000000002 # the openflow id of the switch to which the OLT is connected
-        switch_port: "1" # the port on the switch on which the OLT is connected
-        outer_tpid: "0x8100"
-        uplink: "65536"
-        nas_id: "NAS_ID"
-        serial_number: EC1721000208 # the serial number of the OLT device
-      requirements:
-        - volt_service:
-            node: service#volt
-            relationship: tosca.relationships.BelongsToOne
-            
-    technologyProfile:
-      type: tosca.nodes.TechnologyProfile
-      properties:
-        profile_id: 64
-        technology: xgspon
-        profile_value: >
-          {
-            "name": "4QueueHybridProfileMap1",
-            "profile_type": "XPON",
-            "version": 1.0,
-            "num_gem_ports": 1,
-            "instance_control": {
-              "onu": "multi-instance",
-              "uni": "single-instance",
-              "max_gem_payload_size": "auto"
-            },
-            "us_scheduler": {
-              "additional_bw": "auto",
-              "direction": "UPSTREAM",
-              "priority": 0,
-              "weight": 0,
-              "q_sched_policy": "hybrid"
-            },
-            "ds_scheduler": {
-              "additional_bw": "auto",
-              "direction": "DOWNSTREAM",
-              "priority": 0,
-              "weight": 0,
-              "q_sched_policy": "hybrid"
-            },
-            "upstream_gem_port_attribute_list": [{
-                "pbit_map": "0b11000000",
-                "aes_encryption": "True",
-                "scheduling_policy": "StrictPriority",
-                "priority_q": 1,
-                "weight": 0,
-                "discard_policy": "TailDrop",
-                "max_q_size": "auto",
-                "discard_config": {
-                  "min_threshold": 0,
-                  "max_threshold": 0,
-                  "max_probability": 0
-                }
-              }
-            ],
-            "downstream_gem_port_attribute_list": [{
-                "pbit_map": "0b11000000",
-                "aes_encryption": "True",
-                "scheduling_policy": "StrictPriority",
-                "priority_q": 1,
-                "weight": 0,
-                "discard_policy": "TailDrop",
-                "max_q_size": "auto",
-                "discard_config": {
-                  "min_threshold": 0,
-                  "max_threshold": 0,
-                  "max_probability": 0
-                }
-              }
-            ]
-          }
-```
-
-For instructions on how to push TOSCA into a CORD POD, please
-refer to this [guide](../../xos-tosca/README.md).
-
-## Subscriber Provisioning
-
-Once the POD has been configured, you can create a subscriber.
-
-This section will guide you through the configuration of `Subscriber` and associated `BandwidthProfile`s.
-
-To create a subscriber, you'll need to know the serial number of the ONU it is
-attached to.
-
-### Find ONU Serial Number
-
-Once your POD is set up and the OLT has been pushed and activated in VOLTHA,
-XOS will discover the ONUs available in the system.
-
-You can find them through:
-
-- XOS GUI: on the left side click on `vOLT > ONUDevices`
-- XOS Rest API: `http://<pod-id>:<chameleon-port|30006>/xosapi/v1/volt/onudevices`
-- VOLTHA CLI: [Command Line Interface](../../charts/voltha.md#how-to-access-the-voltha-cli)
-
-If you are connected to the VOLTHA CLI you can use the following
-command to list all the existing devices:
-
-```shell
-(voltha) devices
-Devices:
-+------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
-|               id |         type | root |        parent_id | admin_state | oper_status | connect_status | parent_port_no |    host_and_port | vendor_id| proxy_address.device_id | proxy_address.onu_id | proxy_address.onu_session_id |
-+------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
-| 0001941bd45e71d8 |      openolt | True | 000100000a5a0072 |     ENABLED |      ACTIVE |      REACHABLE |                | 10.90.0.114:9191 |          |                         |                      |                              |
-| 00015698e67dc060 | broadcom_onu | True | 0001941bd45e71d8 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                  |      BRCM|        0001941bd45e71d8 |                    1 |                            1 |
-+------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
-```
-
-Locate the correct ONU, then:
-
-```shell
-(voltha) device 00015698e67dc060
-(device 00015698e67dc060) show
-Device 00015698e67dc060
-+------------------------------+------------------+
-|                        field |            value |
-+------------------------------+------------------+
-|                           id | 00015698e67dc060 |
-|                         type |     broadcom_onu |
-|                         root |             True |
-|                    parent_id | 0001941bd45e71d8 |
-|                       vendor |         Broadcom |
-|                        model |              n/a |
-|             hardware_version |     to be filled |
-|             firmware_version |     to be filled |
-|                 images.image |        1 item(s) |
-|                serial_number |     BRCM22222222 |
-+------------------------------+------------------+
-|                      adapter |     broadcom_onu |
-|                  admin_state |                3 |
-|                  oper_status |                4 |
-|               connect_status |                2 |
-|      proxy_address.device_id | 0001941bd45e71d8 |
-|         proxy_address.onu_id |                1 |
-| proxy_address.onu_session_id |                1 |
-|               parent_port_no |        536870912 |
-|                    vendor_id |             BRCM |
-|                        ports |        2 item(s) |
-+------------------------------+------------------+
-|                  flows.items |        5 item(s) |
-+------------------------------+------------------+
-```
-
-to find the correct serial number.
-
-### Push a Subscriber into CORD
-
-Once you have this information, you can create the subscriber by
-customizing the following TOSCA and passing it into the POD:
-
-```yaml
-tosca_definitions_version: tosca_simple_yaml_1_0
-imports:
-  - custom_types/rcordsubscriber.yaml
-  - custom_types/bandwidthprofile.yaml
-description: Create a test subscriber
-topology_template:
-  node_templates:
-  
-    high_speed_bp:
-      type: tosca.nodes.BandwidthProfile
-      properties:
-         air: 2000
-         cbs: 2000
-         cir: 2000
-         ebs: 2000
-         eir: 2000
-         name: High Speed Internet
-
-    # A subscriber
-    my_house:
-      type: tosca.nodes.RCORDSubscriber
-      properties:
-        name: My House
-        status: pre-provisioned # the status we want to create the subscriber in
-        c_tag: 111
-        s_tag: 222
-        onu_device: BRCM22222222 # Serial Number of the ONU Device to which this subscriber is connected
-        tech_profile_id: 64 # The ID of the technology profile that needs to be applied to this subscriber
-        nas_port_id : some-value # radius specific attributes
-        circuit_id: some-value # radius specific attributes
-        remote_id: some-value # radius specific attributes
-      requirements:
-        - upstream_bps:
-            node: high_speed_bp
-            relationship: tosca.relationships.BelongsToOne
-        - downstream_bps:
-            node: high_speed_bp
-            relationship: tosca.relationships.BelongsToOne
-```
-
-For instructions on how to push TOSCA into a CORD POD, please
-refer to this [guide](../../xos-tosca/README.md).
diff --git a/profiles/seba/configure/olt.md b/profiles/seba/configure/olt.md
new file mode 100644
index 0000000..b166fbb
--- /dev/null
+++ b/profiles/seba/configure/olt.md
@@ -0,0 +1,46 @@
+# OLT Provisioning
+
+OLT Provisioning consists of specifying the fields shown below to instruct NEM about the serial number of the OLT, and where it can be reached in the management network.
+As soon as this config is pushed, NEM will load VOLTHA's etcd with the technology profile, and make the 'preprovision' and 'enable' calls to VOLTHA with the OLT information.
+
+OLT provisioning can use the same yaml file where the Technology profile is configured.
+For clarity it is shown separately below.
+
+Learn more about the OLT service [here](../../../olt-service/README.md)
+
+
+```yaml
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/oltdevice.yaml
+  - custom_types/onudevice.yaml
+  - custom_types/voltservice.yaml
+  - custom_types/technologyprofile.yaml
+description: Create an OLT Device in VOLTHA
+topology_template:
+  node_templates:
+
+    service#volt:
+      type: tosca.nodes.VOLTService
+      properties:
+        name: volt
+        must-exist: true
+
+    olt_device:
+      type: tosca.nodes.OLTDevice
+      properties:
+        name: My OLT
+        device_type: openolt
+        host: 10.90.0.122 # the IP address where the OLT can be reached on the management network
+        port: 9191
+        switch_datapath_id: of:0000000000000001 # the openflow id of the switch to which the OLT is connected
+        switch_port: "1" # the port on the switch on which the OLT is connected
+        outer_tpid: "0x8100"
+        uplink: "65536" # the NNI port on the OLT
+        nas_id: "NAS_ID"
+        serial_number: EC1721000208 # the serial number of the OLT device
+      requirements:
+        - volt_service:
+            node: service#volt
+            relationship: tosca.relationships.BelongsToOne
+```
diff --git a/profiles/seba/workflows/att-configure.md b/profiles/seba/configure/onu-whitelist.md
similarity index 63%
rename from profiles/seba/workflows/att-configure.md
rename to profiles/seba/configure/onu-whitelist.md
index df04375..d3431ed 100644
--- a/profiles/seba/workflows/att-configure.md
+++ b/profiles/seba/configure/onu-whitelist.md
@@ -1,13 +1,17 @@
-# Configure AT&T Workflow
+# Configure ONU Whitelist
 
-We assume your POD is already configured as per [this instructions](../configuration.md)
-(you need to complete only the first section)
+We assume your POD is already configured as per [these instructions](../configuration.md)
+Assuming you are using the AT&T Workflow (which is the only workflow supported in this release) you will need to configure ONUs in the whitelist, otherwise any ONU discovered in the PON that is not in the whitelist will get disabled administratively.
 
 ## Whitelist population
 
 > NOTE: the whitelist can be populated at any time.
 > It doesn't need to be done upfront.
 
+To configure the whitelist, you need to provide the ONU's serial number and location.
+The location is identified by the OLT device, and the PON port on the OLT device on which the ONU can be found.
+If either of these are configured incorrectly, the ONU will get disabled administratively.
+
 To configure the ONU whitelist, you can use this TOSCA:
 
 ```yaml
@@ -28,9 +32,9 @@
     whitelist:
       type: tosca.nodes.AttWorkflowDriverWhiteListEntry
       properties:
-        serial_number: BRCM22222222
-        pon_port_id: 536870912
-        device_id: of:000000000a5a0072
+        serial_number: BRCM22222222 # the serial number of the ONU device
+        pon_port_id: 536870912 # information in VOLTHA regarding the PON port of the OLT
+        device_id: of:000000000a5a0072 # the device id representing the OLT
       requirements:
         - owner:
             node: service#att
@@ -64,7 +68,3 @@
 of the device.
 
 ![OLT List view](./screenshots/olt_device_id.png)
-
-## Device monitoring
-
-Please refer to the [monitoring](../../../charts/logging-monitoring.md) chart.
diff --git a/profiles/seba/workflows/screenshots/olt_device_id.png b/profiles/seba/configure/screenshots/olt_device_id.png
similarity index 100%
rename from profiles/seba/workflows/screenshots/olt_device_id.png
rename to profiles/seba/configure/screenshots/olt_device_id.png
Binary files differ
diff --git a/profiles/seba/workflows/screenshots/onu_sn.png b/profiles/seba/configure/screenshots/onu_sn.png
similarity index 100%
rename from profiles/seba/workflows/screenshots/onu_sn.png
rename to profiles/seba/configure/screenshots/onu_sn.png
Binary files differ
diff --git a/profiles/seba/workflows/screenshots/pon_port.png b/profiles/seba/configure/screenshots/pon_port.png
similarity index 100%
rename from profiles/seba/workflows/screenshots/pon_port.png
rename to profiles/seba/configure/screenshots/pon_port.png
Binary files differ
diff --git a/profiles/seba/configure/subscriber.md b/profiles/seba/configure/subscriber.md
new file mode 100644
index 0000000..6f4a110
--- /dev/null
+++ b/profiles/seba/configure/subscriber.md
@@ -0,0 +1,158 @@
+# Subscriber Provisioning
+
+Once the POD has been configured, you can create a subscriber. As before, a subscriber must be configured by location (ONU) and identification (VLAN tagging) information.
+From SEBA 2.0 onwards, it is necessary to provide a BandwidthProfile for the subscriber in both upstream and downstream directions.
+It is also necessary to provide a Technology Profile id for the subscriber.
+Learn more about Subscriber provisioning [in this video](https://www.youtube.com/watch?v=RXjH9zdjqvA&t=420s)
+
+This section will guide you through the configuration of `Subscriber` and associated `BandwidthProfile`s.
+
+### Provision a Subscriber
+
+Once you have the required information, you can create the subscriber by
+customizing the following TOSCA and passing it into the POD.
+
+NOTE: It is important to configure a Default bandwidthprofile
+
+
+```yaml
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/rcordsubscriber.yaml
+  - custom_types/bandwidthprofile.yaml
+
+description: Pre-provsion subscribers
+
+topology_template:
+  node_templates:
+
+    default:
+      type: tosca.nodes.BandwidthProfile
+      properties:
+        name: Default # used before subscriber's equipment has been authenticated
+        air: 100000
+        cbs: 30
+        cir: 600
+        ebs: 30
+        eir: 400
+
+    high_speed_bp:
+      type: tosca.nodes.BandwidthProfile
+      properties:
+         name: Bronze
+         air: 100000
+         cbs: 2000
+         cir: 5000
+         ebs: 2000
+         eir: 3000
+
+    # A subscriber
+    h1_subscriber:
+      type: tosca.nodes.RCORDSubscriber
+      properties:
+        name: Sub_ISKT71e801a0
+        status: pre-provisioned
+        c_tag: 12
+        s_tag: 111
+        onu_device: ISKT71e801a0 # Serial Number of the ONU Device to which this subscriber is connected
+        nas_port_id : "PON 1/1/04/1:1.1.1" # radius specific attributes
+        circuit_id: edgecore_iskratel_circuit # radius specific attributes
+        remote_id: edgecore_iskratel_remote # radius specific attributes
+        tech_profile_id: 64 # The ID of the technology profile that needs to be applied to this subscriber
+      requirements:
+       - upstream_bps:
+           node: high_speed_bp
+           relationship: tosca.relationships.BelongsToOne
+       - downstream_bps:
+           node: high_speed_bp
+           relationship: tosca.relationships.BelongsToOne
+
+    # Another subscriber
+    h2_subscriber:
+      type: tosca.nodes.RCORDSubscriber
+      properties:
+        name: Sub_BRCM22222222 # give a different name
+        status: pre-provisioned
+        c_tag: 11  # the combination of stag and ctag must
+        s_tag: 111 # uniquely identify a subscriber
+        onu_device: BRCM22222222 # different ONU serial number (location)
+        nas_port_id : "PON 1/1/04/1:1.1.2"
+        circuit_id: edgecore_brcm_circuit
+        remote_id: edgecore_brcm_remote
+        tech_profile_id: 64
+      requirements:
+       - upstream_bps:
+           node: high_speed_bp # could have same or different bandwidth profile
+           relationship: tosca.relationships.BelongsToOne
+       - downstream_bps:
+           node: high_speed_bp
+           relationship: tosca.relationships.BelongsToOne
+```
+
+For instructions on how to push TOSCA into a CORD POD, please
+refer to this [guide](../../../xos-tosca/README.md).
+
+## Find ONU Serial Number
+
+In production, an operator should already know all the information regarding the subscriber's location - ie the ONU to which the subscriber connects and the serial number of the ONU.
+In a lab setting you may need to bring up the system once to note down the serial numbers.
+
+Once your POD is set up and the OLT has been pushed and activated in VOLTHA,
+NEM will discover the ONUs available in the system.
+
+You can find the ONUs and their serial numbers through:
+
+- XOS GUI: on the left side click on `vOLT > ONUDevices`
+- XOS Rest API: `http://<pod-id>:<chameleon-port|30006>/xosapi/v1/volt/onudevices`
+- VOLTHA CLI: [Command Line Interface](../../../charts/voltha.md#how-to-access-the-voltha-cli)
+
+If you are connected to the VOLTHA CLI you can use the following
+command to list all the existing devices:
+
+```shell
+(voltha) devices
+Devices:
++------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
+|               id |         type | root |        parent_id | admin_state | oper_status | connect_status | parent_port_no |    host_and_port | vendor_id| proxy_address.device_id | proxy_address.onu_id | proxy_address.onu_session_id |
++------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
+| 0001941bd45e71d8 |      openolt | True | 000100000a5a0072 |     ENABLED |      ACTIVE |      REACHABLE |                | 10.90.0.114:9191 |          |                         |                      |                              |
+| 00015698e67dc060 | broadcom_onu | True | 0001941bd45e71d8 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                  |      BRCM|        0001941bd45e71d8 |                    1 |                            1 |
++------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
+```
+
+Locate the correct ONU, then:
+
+```shell
+(voltha) device 00015698e67dc060
+(device 00015698e67dc060) show
+Device 00015698e67dc060
++------------------------------+------------------+
+|                        field |            value |
++------------------------------+------------------+
+|                           id | 00015698e67dc060 |
+|                         type |     broadcom_onu |
+|                         root |             True |
+|                    parent_id | 0001941bd45e71d8 |
+|                       vendor |         Broadcom |
+|                        model |              n/a |
+|             hardware_version |     to be filled |
+|             firmware_version |     to be filled |
+|                 images.image |        1 item(s) |
+|                serial_number |     BRCM22222222 |
++------------------------------+------------------+
+|                      adapter |     broadcom_onu |
+|                  admin_state |                3 |
+|                  oper_status |                4 |
+|               connect_status |                2 |
+|      proxy_address.device_id | 0001941bd45e71d8 |
+|         proxy_address.onu_id |                1 |
+| proxy_address.onu_session_id |                1 |
+|               parent_port_no |        536870912 |
+|                    vendor_id |             BRCM |
+|                        ports |        2 item(s) |
++------------------------------+------------------+
+|                  flows.items |        5 item(s) |
++------------------------------+------------------+
+```
+
+to find the correct serial number.
diff --git a/profiles/seba/configure/tech-profile.md b/profiles/seba/configure/tech-profile.md
new file mode 100644
index 0000000..9c93b8a
--- /dev/null
+++ b/profiles/seba/configure/tech-profile.md
@@ -0,0 +1,263 @@
+# Configuring a Technology Profile
+
+SEBA 2.0 release onwards, configuring a Tech Profile is a necessary step before an OLT can be provisioned.
+
+Tech profiles are loaded into VOLTHA's etcd cluster as simple json objects.
+In a SEBA POD, like all other config, this **must** be done by configuring NEM as shown below in the 'profile_value'.
+
+More information on Tech Profiles can be found [on the wiki](https://wiki.opencord.org/display/CORD/Technology+Profiles) or the [github readme](https://github.com/opencord/voltha/tree/master/common/tech_profile)
+
+
+## Example 1 TCONT / 1 GEM port configuration
+
+```yaml
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/oltdevice.yaml
+  - custom_types/onudevice.yaml
+  - custom_types/voltservice.yaml
+  - custom_types/technologyprofile.yaml
+description: Create a single TCONT single GEM tech profile for xgspon
+topology_template:
+  node_templates:
+
+    service#volt:
+      type: tosca.nodes.VOLTService
+      properties:
+        name: volt
+        must-exist: true
+
+    technologyProfile:
+      type: tosca.nodes.TechnologyProfile
+      properties:
+        profile_id: 64
+        technology: xgspon
+        profile_value: >
+          {
+            "name": "4QueueHybridProfileMap1",
+            "profile_type": "XPON",
+            "version": 1.0,
+            "num_gem_ports": 1,
+            "instance_control": {
+              "onu": "multi-instance",
+              "uni": "single-instance",
+              "max_gem_payload_size": "auto"
+            },
+            "us_scheduler": {
+              "additional_bw": "auto",
+              "direction": "UPSTREAM",
+              "priority": 0,
+              "weight": 0,
+              "q_sched_policy": "hybrid"
+            },
+            "ds_scheduler": {
+              "additional_bw": "auto",
+              "direction": "DOWNSTREAM",
+              "priority": 0,
+              "weight": 0,
+              "q_sched_policy": "hybrid"
+            },
+            "upstream_gem_port_attribute_list": [{
+                "pbit_map": "0b11111111",
+                "aes_encryption": "True",
+                "scheduling_policy": "StrictPriority",
+                "priority_q": 1,
+                "weight": 0,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              }
+            ],
+            "downstream_gem_port_attribute_list": [{
+                "pbit_map": "0b11111111",
+                "aes_encryption": "True",
+                "scheduling_policy": "StrictPriority",
+                "priority_q": 1,
+                "weight": 0,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              }
+            ]
+          }
+```
+
+## Example 1 TCONT / 4 GEM port configuration
+
+```yaml
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/oltdevice.yaml
+  - custom_types/onudevice.yaml
+  - custom_types/voltservice.yaml
+  - custom_types/technologyprofile.yaml
+description: Creates a single TCONT four GEM tech profile
+topology_template:
+  node_templates:
+
+    service#volt:
+      type: tosca.nodes.VOLTService
+      properties:
+        name: volt
+        must-exist: true
+
+    technologyProfile:
+      type: tosca.nodes.TechnologyProfile
+      properties:
+        profile_id: 64
+        technology: xgspon
+        profile_value: >
+          {
+            "name": "4QueueHybridProfileMap1",
+            "profile_type": "XPON",
+            "version": 1,
+            "num_gem_ports": 4,
+            "instance_control": {
+              "onu": "multi-instance",
+              "uni": "single-instance",
+              "max_gem_payload_size": "auto"
+            },
+            "us_scheduler": {
+              "additional_bw": "auto",
+              "direction": "UPSTREAM",
+              "priority": 0,
+              "weight": 0,
+              "q_sched_policy": "hybrid"
+            },
+            "ds_scheduler": {
+              "additional_bw": "auto",
+              "direction": "DOWNSTREAM",
+              "priority": 0,
+              "weight": 0,
+              "q_sched_policy": "hybrid"
+            },
+            "upstream_gem_port_attribute_list": [
+              {
+                "pbit_map": "0b00000101",
+                "aes_encryption": "True",
+                "scheduling_policy": "WRR",
+                "priority_q": 4,
+                "weight": 25,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "max_threshold": 0,
+                  "min_threshold": 0,
+                  "max_probability": 0
+                }
+              },
+              {
+                "pbit_map": "0b00011010",
+                "aes_encryption": "True",
+                "scheduling_policy": "WRR",
+                "priority_q": 3,
+                "weight": 75,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              },
+              {
+                "pbit_map": "0b00100000",
+                "aes_encryption": "True",
+                "scheduling_policy": "StrictPriority",
+                "priority_q": 2,
+                "weight": 0,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              },
+              {
+                "pbit_map": "0b11000000",
+                "aes_encryption": "True",
+                "scheduling_policy": "StrictPriority",
+                "priority_q": 1,
+                "weight": 25,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              }
+            ],
+            "downstream_gem_port_attribute_list": [
+              {
+                "pbit_map": "0b00000101",
+                "aes_encryption": "True",
+                "scheduling_policy": "WRR",
+                "priority_q": 4,
+                "weight": 10,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              },
+              {
+                "pbit_map": "0b00011010",
+                "aes_encryption": "True",
+                "scheduling_policy": "WRR",
+                "priority_q": 3,
+                "weight": 90,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              },
+              {
+                "pbit_map": "0b00100000",
+                "aes_encryption": "True",
+                "scheduling_policy": "StrictPriority",
+                "priority_q": 2,
+                "weight": 0,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              },
+              {
+                "pbit_map": "0b11000000",
+                "aes_encryption": "True",
+                "scheduling_policy": "StrictPriority",
+                "priority_q": 1,
+                "weight": 25,
+                "discard_policy": "TailDrop",
+                "max_q_size": "auto",
+                "discard_config": {
+                  "min_threshold": 0,
+                  "max_threshold": 0,
+                  "max_probability": 0
+                }
+              }
+            ]
+          }
+```
+
+
+For instructions on how to push TOSCA into a CORD POD, please
+refer to this [guide](../../../xos-tosca/README.md).
diff --git a/profiles/seba/operate/olt-ops.md b/profiles/seba/operate/olt-ops.md
index e54fd95..58e7d98 100644
--- a/profiles/seba/operate/olt-ops.md
+++ b/profiles/seba/operate/olt-ops.md
@@ -1,9 +1,9 @@
 # OLT Operations
 
-For information on how to add an OLT, please refere to the
-[POD specific configuration](../configuration.md#olt-provisioning) page.
+For information on how to add an OLT, please refer to the
+[OLT configuration](../configure/olt.md) page.
 
-## Remove on OLT
+## Remove an OLT
 
 In order to remove the OLT it is mandatory that no active subscribers are using it.
 
@@ -12,7 +12,7 @@
 - [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
+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")
@@ -23,10 +23,3 @@
 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/whitelist-ops.md b/profiles/seba/operate/whitelist-ops.md
index 54ffbc4..a5733a3 100644
--- a/profiles/seba/operate/whitelist-ops.md
+++ b/profiles/seba/operate/whitelist-ops.md
@@ -6,6 +6,9 @@
 
 ![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.
+To remove an entry, simply click the X next to an entry.
+To edit an entry, click on the magnifying-glass symbol next to an entry, enter the fields, and save.
+To add an entry, click on the `Add` button on the upper right corner.
 
+For more information about the whitelist, please refer to the
+[ONU Whitelist page](../configure/onu-whitelist.md#whitelist-population) page.