diff --git a/SUMMARY.md b/SUMMARY.md
index 4d52cf7..bd74a0e 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -84,7 +84,11 @@
             * [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)
+            * AT&T Workflow
+                * [AttWorkflowDriver service instances](profiles/seba/operate/att-si.md)
+                * [Workflow description](profiles/seba/operate/att-workflow-description.md)
+            * [Working with Tech Profiles](profiles/seba/operate/tp-ops.md)
+            * [Working with Bandwidth Profiles](profiles/seba/operate/bp-ops.md)
             * [Disable/Enable an ONU](profiles/seba/operate/onu-ops.md)
             * [Edit a Whitelist entry](profiles/seba/operate/whitelist-ops.md)
             * [Delete an OLT](profiles/seba/operate/olt-ops.md)
diff --git a/profiles/seba/configure/olt.md b/profiles/seba/configure/olt.md
index b166fbb..96ed40c 100644
--- a/profiles/seba/configure/olt.md
+++ b/profiles/seba/configure/olt.md
@@ -3,9 +3,19 @@
 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.
 
+## Provision the OLT
+
 OLT provisioning can use the same yaml file where the Technology profile is configured.
 For clarity it is shown separately below.
 
+Note the following when provisioning an OLT:
+
+* It is really important to get the serial number of the OLT correct
+* You need to specify the IP address and TCP port where the OLT can be reached by VOLTHA on the management network (out-of-band)
+* In a SEBA pod, the OLT connects upstream to an AGG switch that is SDN controlled just like the OLT. We need to specify the NNI port on the OLT, the AGG switch port to which the NNI port is connected, and the OF switch datapath id (dpid) for the AGG switch as seen by ONOS.
+* OLTs can typically use tag-protocol ids 0x88a8 or 0x8100 for the outer vlan tag in a QinQ packet. We use 0x8100.
+
+
 Learn more about the OLT service [here](../../../olt-service/README.md)
 
 
@@ -32,11 +42,11 @@
         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
+        port: 9191 # the TCP port on which the OLT is listening for VOLTHA to connect to it
+        switch_datapath_id: of:0000000000000001 # the openflow id of the AGG switch to which the OLT is connected
+        switch_port: "1" # the port on the AGG switch to which the OLT is connected
         outer_tpid: "0x8100"
-        uplink: "65536" # the NNI port on the OLT
+        uplink: "65536" # the NNI port on the OLT, used to connect to the AGG switch
         nas_id: "NAS_ID"
         serial_number: EC1721000208 # the serial number of the OLT device
       requirements:
@@ -44,3 +54,30 @@
             node: service#volt
             relationship: tosca.relationships.BelongsToOne
 ```
+
+## Verify OLT
+
+On the NEM GUI, confirm that the OLT has been added to the XOS database.
+
+![OLT view](./screenshots/olt-0.png)
+
+## Verify ONUs
+
+VOLTHA should have reached out to the OLT and discovered ONUs and started OMCI messaging on the PON. If all is well, you should see the information shown below in the ONU tab.
+
+Note the following expected states:
+
+* Admin state: ENABLED (if this is disabled, it is possible that the ONU serial number and location configured on the whitelist is incorrect or missing)
+* Connect state: REACHABLE
+* Operational state: ACTIVE
+* OMCI state (titled `Reason`): tech_profile_config_download_success
+
+ This is the same information displayed by the `devices` command on the VOLTHA CLI.
+
+![ONU view](./screenshots/onu-0.png)
+
+## Next Steps
+
+OLT provisioning is typically the last step of provisioning, although you can continue to add ONUs to the whitelist and/or add new subscriber information.
+
+You are now ready to [operate the POD](../operate/att-si.md).
diff --git a/profiles/seba/configure/onu-whitelist.md b/profiles/seba/configure/onu-whitelist.md
index d3431ed..ae86c7e 100644
--- a/profiles/seba/configure/onu-whitelist.md
+++ b/profiles/seba/configure/onu-whitelist.md
@@ -44,9 +44,18 @@
 For instructions on how to push TOSCA into a CORD POD, please
 refer to this [guide](../../../xos-tosca/README.md).
 
-### Where to find the required information
+## Confirm whitelist
 
-#### Serial Number
+On the NEM GUI, confirm that the ONU has been added to the whitelist.
+
+![Whitelist view](./screenshots/whitelist-0.png)
+
+## Where to find the required information
+
+In production, an operator should already know all the information regarding the ONU - ie the ONU's serial number and location.
+In a lab setting you may need to bring up the system once to note down the serial number, pon port number and device id.
+
+### Serial Number
 
 To locate the ONU serial number you can open the ONU detail view (`vOLT -> ONU Devices`).
 
@@ -54,14 +63,14 @@
 
 > NOTE: most of the time the serial number is also printed on the physical device.
 
-#### Pon Port ID
+### Pon Port ID
 
 The `pon_port_id` can be found from the ONU detail view, by selecting the `PON Port`
 tab:
 
 ![ONU Detail view](./screenshots/pon_port.png)
 
-#### Device ID
+### Device ID
 
 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
diff --git a/profiles/seba/configure/screenshots/bp-0.png b/profiles/seba/configure/screenshots/bp-0.png
new file mode 100644
index 0000000..0b90d45
--- /dev/null
+++ b/profiles/seba/configure/screenshots/bp-0.png
Binary files differ
diff --git a/profiles/seba/configure/screenshots/olt-0.png b/profiles/seba/configure/screenshots/olt-0.png
new file mode 100644
index 0000000..8e4d5d9
--- /dev/null
+++ b/profiles/seba/configure/screenshots/olt-0.png
Binary files differ
diff --git a/profiles/seba/configure/screenshots/onu-0.png b/profiles/seba/configure/screenshots/onu-0.png
new file mode 100644
index 0000000..832c980
--- /dev/null
+++ b/profiles/seba/configure/screenshots/onu-0.png
Binary files differ
diff --git a/profiles/seba/configure/screenshots/sub-model.png b/profiles/seba/configure/screenshots/sub-model.png
new file mode 100644
index 0000000..31e9e77
--- /dev/null
+++ b/profiles/seba/configure/screenshots/sub-model.png
Binary files differ
diff --git a/profiles/seba/configure/screenshots/subs-0.png b/profiles/seba/configure/screenshots/subs-0.png
new file mode 100644
index 0000000..ae57e8b
--- /dev/null
+++ b/profiles/seba/configure/screenshots/subs-0.png
Binary files differ
diff --git a/profiles/seba/configure/screenshots/tp-0.png b/profiles/seba/configure/screenshots/tp-0.png
new file mode 100644
index 0000000..9e49dc7
--- /dev/null
+++ b/profiles/seba/configure/screenshots/tp-0.png
Binary files differ
diff --git a/profiles/seba/configure/screenshots/whitelist-0.png b/profiles/seba/configure/screenshots/whitelist-0.png
new file mode 100644
index 0000000..03cce1a
--- /dev/null
+++ b/profiles/seba/configure/screenshots/whitelist-0.png
Binary files differ
diff --git a/profiles/seba/configure/subscriber.md b/profiles/seba/configure/subscriber.md
index 6f4a110..5ae00ab 100644
--- a/profiles/seba/configure/subscriber.md
+++ b/profiles/seba/configure/subscriber.md
@@ -5,14 +5,22 @@
 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)
 
+![Subscriber Model](./screenshots/sub-model.png)
+
 This section will guide you through the configuration of `Subscriber` and associated `BandwidthProfile`s.
 
-### Provision a Subscriber
+## 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
+A few things to note:
+
+* It is important to configure a Default bandwidthprofile, along with the subscriber's own bandwidthprofile
+* As before the C and S tags together should uniquely identify the subscribers
+* The ONU serial number to which the subscriber's equipment (Remote Gateway) connects must be specified
+* The tech_profile_id (representing the type of service) for the subscriber should also be specified. It is not necessary to have the tech profile already configured at the time of subscriber provisioning; i.e. the tech profile can come later but should have the same id. Also please note that in this release, it is not possible to change the tech profile id for a subscriber, as this functionality has not been implemented in VOLTHA.
+* The subscriber should be provisioned in 'pre-provisioned' state to allow the workflow to determine when to program subscriber flows in the hardware (for example, after successful RG authentication)
 
 
 ```yaml
@@ -51,7 +59,7 @@
       type: tosca.nodes.RCORDSubscriber
       properties:
         name: Sub_ISKT71e801a0
-        status: pre-provisioned
+        status: pre-provisioned # Add the subscriber in pre-provisioned state
         c_tag: 12
         s_tag: 111
         onu_device: ISKT71e801a0 # Serial Number of the ONU Device to which this subscriber is connected
@@ -92,6 +100,16 @@
 For instructions on how to push TOSCA into a CORD POD, please
 refer to this [guide](../../../xos-tosca/README.md).
 
+## Confirm Subscriber
+
+On the NEM GUI, confirm that the subscriber has been added.
+
+![Subscriber view](./screenshots/subs-0.png)
+
+Also confirm that bandwidth profiles have been added
+
+![Bandwidth profile view](./screenshots/bp-0.png)
+
 ## 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.
@@ -102,9 +120,9 @@
 
 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)
+* 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:
@@ -112,47 +130,47 @@
 ```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 |
-+------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
++------------------+-------------------+------+------------------+---------------+-------------+-------------+----------------+----------------+----------------------+--------------------------------------+-------------------------+----------------------+------------------------------+
+|               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.onu_id | proxy_address.onu_session_id |
++------------------+-------------------+------+------------------+---------------+-------------+-------------+----------------+----------------+----------------------+--------------------------------------+-------------------------+----------------------+------------------------------+
+| 00010c6fb4ae4011 |           openolt | True | 00010000c0a8646f |  EC1904000654 |     ENABLED |      ACTIVE |      REACHABLE |                | 192.168.100.111:9191 |                                      |                         |                      |                              |
+| 00019af6aa8c68c9 | brcm_openomci_onu |      | 00010c6fb4ae4011 |  BRCM22222222 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                      | tech-profile-config-download-success |        00010c6fb4ae4011 |                    1 |                            1 |
+| 0001beddb8196807 | brcm_openomci_onu |      | 00010c6fb4ae4011 |  ISKT71e801a0 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                      | tech-profile-config-download-success |        00010c6fb4ae4011 |                    2 |                            2 |
++------------------+-------------------+------+------------------+---------------+-------------+-------------+----------------+----------------+----------------------+--------------------------------------+-------------------------+----------------------+------------------------------+
+
 ```
 
-Locate the correct ONU, then:
+Locate the correct ONU and note that the display above readily shows the serial number of the ONU as well as the PON port number on the OLT to which it connects (`parent_port_no`). You can also enter the particular device cli to display more information as shown below.
 
 ```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) |
-+------------------------------+------------------+
+(voltha) device 00019af6aa8c68c9
+(device 00019af6aa8c68c9) show
+Device 00019af6aa8c68c9
++------------------------------+--------------------------------------+
+|                        field |                                value |
++------------------------------+--------------------------------------+
+|                           id |                     00019af6aa8c68c9 |
+|                         type |                    brcm_openomci_onu |
+|                    parent_id |                     00010c6fb4ae4011 |
+|                       vendor |                             Broadcom |
+|                serial_number |                         BRCM22222222 |
+|                      adapter |                    brcm_openomci_onu |
+|                  admin_state |                                    3 |
+|                  oper_status |                                    4 |
+|               connect_status |                                    2 |
+|      proxy_address.device_id |                     00010c6fb4ae4011 |
++------------------------------+--------------------------------------+
+|         proxy_address.onu_id |                                    1 |
+| proxy_address.onu_session_id |                                    1 |
+|               parent_port_no |                            536870912 |
+|                       reason | tech-profile-config-download-success |
+|                    vendor_id |                                 BRCM |
+|                        ports |                            2 item(s) |
+|                  flows.items |                            3 item(s) |
+|                pm_configs.id |                     00019af6aa8c68c9 |
+|      pm_configs.default_freq |                                  600 |
+|           pm_configs.grouped |                                 True |
++------------------------------+--------------------------------------+
+|            pm_configs.groups |                           11 item(s) |
++------------------------------+--------------------------------------+
 ```
-
-to find the correct serial number.
diff --git a/profiles/seba/configure/tech-profile.md b/profiles/seba/configure/tech-profile.md
index 9c93b8a..6fb285c 100644
--- a/profiles/seba/configure/tech-profile.md
+++ b/profiles/seba/configure/tech-profile.md
@@ -258,6 +258,28 @@
           }
 ```
 
-
 For instructions on how to push TOSCA into a CORD POD, please
 refer to this [guide](../../../xos-tosca/README.md).
+
+## Verify Tech Profile in NEM database
+
+On the NEM GUI, confirm that the tech profile is added. Note that this view does not currently pretty-print the json.
+
+![Tech Profile view](./screenshots/tp-0.png)
+
+
+## Verify Tech Profile in Etcd
+
+We can verify that the tech profile has been downloaded by NEM into the Etcd cluster. For that we first need to enter the etcd container using kubectl.
+
+```shell
+~$ kubectl exec -it $(kubectl get pods | grep etcd-cluster | awk 'NR==1{print $1}') /bin/sh
+```
+
+Once inside, we can use the etcdctl tool to fetch the stored information for the profile using the profile type and id.
+
+```shell
+/ # ETCDCTL_API=3 etcdctl get --prefix  service/voltha/technology_profiles/xgspon/64
+```
+If all is well, the above command should display the same tech profile information you configured.
+In a running system where the OLT has also been configured, and ONUs have been discovered and ranged, you should also see *instances* of the tech-profile in the display above for each ONU. These instances specify the particular GEM port ids and related Alloc ids used for the ONU.
diff --git a/profiles/seba/operate/att-si.md b/profiles/seba/operate/att-si.md
new file mode 100644
index 0000000..e1fa4cf
--- /dev/null
+++ b/profiles/seba/operate/att-si.md
@@ -0,0 +1,19 @@
+# AT&T Workflow Driver Service Instances
+
+In a running system, once OLTs have been configured and ONUs are in active/enabled/reachable state in VOLTHA, you should see instances of the AT&T Workflow Driver in the NEM GUI, as shown below.
+
+[ATT Workflow Instances](./screenshots/att-si-0.png)
+
+The graphic above shows two such workflow instances, one for each ONU. If you do not see any workflow instances, refresh your GUI. If you still don't see anything, consider the [troubleshooting guide](../troubleshoot/no-att-si.md).
+
+The instance for the Broadcom ONU `BRCM22222222` shows that the ONU has been validated against the whitelist. If the ONU's serial number or location (OLT device/PON port) does not match the configured information in the whitelist, then the workflow would display the `Admin onu state` as disabled with the appropriate `Status message` (for why it was disabled). The screenshot also shows that the workflow is awaiting the authentication of the RG connected to the UNI port on this ONU. Finally it also shows that the `DHCP state` is AWAITING - note that the DHCP process will not succeed without the RG first authenticating, according to the AT&T workflow. In production, RG's should automatically start the authentication process by sending EAPOL_START messages. In a lab setting, if you are using a linux host as an emulated RG, you will have to manually start the `wpa_supplicant` process as described [here](../lab-setup.md).
+
+For the Iskratel ONU `ISKT71e801a0`, it shows that the ONU has been validated against the whitelist, and the RG behind the ONU has authenticated successfully (`Authentication state` is APPROVED). In production, RG's should automatically start the DHCP process to get a valid IP address from the upstream BNG. In a lab setting, if you are using a linux host as an emulated RG, you will have to manually start the `dhclient` process as described [here](../lab-setup.md).
+
+Once both authentication and dhcp processes have succeeded, the workflow instances should display the following information.
+
+[ATT Workflow Instances](./screenshots/att-si-1.png)
+
+Note that the DHCP state displays `DHCPACK` and the IP addresses assigned by the external BNG are also displayed, together with the RG's MAC addresses discovered by the system. At this point the subscriber should be able to reach the Internet with the configured bandwidthprofile for the subscriber, and the traffic priorities determined by the configured tech profile.
+
+If authentication or dhcp does not succeed, or your pings are not getting through, consider their respective troubleshooting guides.
diff --git a/profiles/seba/operate/bp-ops.md b/profiles/seba/operate/bp-ops.md
new file mode 100644
index 0000000..62ca900
--- /dev/null
+++ b/profiles/seba/operate/bp-ops.md
@@ -0,0 +1,278 @@
+# Bandwidth Profile Operations
+
+As mentioned in the configuration guide, from SEBA 2.0 release onwards it is necessary to configure upstream and downstream bandwidth profiles for subscribers. Unlike Tech profiles, bandwidth profiles do change over time in operation, due to subscribers upgrading or downgrading their service.
+
+In this release, runtime changes to the bandwidth profile for a subscriber are supported by the following set of operations
+
+- first delete the subscriber - this will cause the removal of subscriber flows in the PON
+- (optional) you can choose to remove the bandwidth profile the subscriber was currently using, if no other subscriber is using that profile. Or you can simply leave it configured for future use.
+- next, configure the new bandwidth profile
+- finally, configure the subscriber again, but this time using the new bandwidth profile.
+
+A couple of things to note:
+
+- Admittedly the procedure outlined above is cumbersome. It should simply be possible to configure a new bandwidth profile, and *change* the subscriber configuration to use the new bandwidth profile, without requiring a removal and reprogramming of the subscribers flows. Under the hood, bandwidth profiles are implemented using meters, and so it should be possible to point the subscribers flows to different meters reflecting the new bandwidth profile without deleting the flows. However, this capability is not supported in the underlying OLT software (BAL) currently.
+- Due to the current limitations specified in the Known Issues, changing a bandwidth profile at runtime may not be successful.
+
+## Under the hood
+
+The information in this section is not strictly necessary to use bandwidth profiles.
+It is only provided to help understand the underlying implementation and commands that help debugging.
+
+### Initial State
+
+When ONU's are discovered and ranged by the OLT, VOLTHA creates a port (representing the UNI on the ONU) on the logical device that is reported to ONOS.
+
+Consider the following from the ONOS cli
+
+```shell
+onos> devices
+id=of:0000000000000001, available=true, local-status=connected 2d6h 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=671232X1538033, chassis=1, driver=ofdpa3, channelId=192.168.100.1:48820, locType=none, managementAddress=192.168.100.1, name=AGG SWITCH, protocol=OF_13
+id=of:00000000c0a8646f, available=true, local-status=connected 51s ago, role=MASTER, type=SWITCH, mfr=VOLTHA Project, hw=, sw=, serial=EC1904000654, chassis=c0a8646f, driver=voltha, channelId=10.233.90.246:56694, locType=none, managementAddress=10.233.90.246, name=EdgeCore OLT, protocol=OF_13
+```
+
+It shows two devices, one that represents the AGG switch (dpid: of:0000000000000001) and another that represents the PON (dpid of:00000000c0a8646f)
+We can check the enabled ports on each device
+
+```shell
+onos> ports -e
+id=of:0000000000000001, available=true, local-status=connected 2d6h 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=671232X1538033, chassis=1, driver=ofdpa3, channelId=192.168.100.1:48820, locType=none, managementAddress=192.168.100.1, name=AGG SWITCH, protocol=OF_13
+  port=1, state=enabled, type=fiber, speed=40000 , adminState=enabled, portMac=cc:37:ab:61:80:49, portName=port1
+  port=153, state=enabled, type=fiber, speed=10000 , adminState=enabled, portMac=cc:37:ab:61:80:49, portName=port153
+id=of:00000000c0a8646f, available=true, local-status=connected 29s ago, role=MASTER, type=SWITCH, mfr=VOLTHA Project, hw=, sw=, serial=EC1904000654, chassis=c0a8646f, driver=voltha, channelId=10.233.90.246:56694, locType=none, managementAddress=10.233.90.246, name=EdgeCore OLT, protocol=OF_13
+  port=16, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=08:00:00:00:00:10, portName=BRCM22222222
+  port=32, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=08:00:00:00:00:20, portName=ISKT71e801a0
+  port=65536, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=00:00:00:01:00:00, portName=nni-65536
+```
+
+The device representing the PON shows 1 NNI port (portnumber 65536) and 2 UNI ports (portnumbers 16 and 32).
+We can also check the flows that have been programmed on each device. For clarity, we only show the flows sent to VOLTHA.
+
+```shell
+onos> flows -s
+deviceId=of:0000000000000001, flowRuleCount=29
+    -snip-
+deviceId=of:00000000c0a8646f, flowRuleCount=5
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:32, ETH_TYPE:eapol, VLAN_VID:4091], treatment=[immediate=[OUTPUT:CONTROLLER], meter=METER:1, metadata=METADATA:ffb004000000000/0]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:65536, ETH_TYPE:lldp], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:65536, ETH_TYPE:ipv6, IP_PROTO:17, UDP_SRC:546, UDP_DST:547], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:65536, ETH_TYPE:ipv4, IP_PROTO:17, UDP_SRC:67, UDP_DST:68], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:16, ETH_TYPE:eapol, VLAN_VID:4091], treatment=[immediate=[OUTPUT:CONTROLLER], meter=METER:1, metadata=METADATA:ffb004000000000/0]
+```
+
+Note that there are 3 flows that are meant for packets entering from the NNI port (IN_PORT:65536). One is for LLDP packets and the other two are for DHCP v4 and DHCP v6. The latter is ignored by VOLTHA currently.
+More importantly, we can see that there are two other flows meant for the packets from the UNI ports 32 and 16. Both are EAPOL matching flows (ETH_TYPE:eapol) that trap eapol packets to the controller. Also note that they use a default VLAN (4091) and point to a meter (METER:1).
+We can check the meter using the following command.
+
+```shell
+onos> meters
+ DefaultMeter{device=of:00000000c0a8646f, cellId=1, appId=org.opencord.olt, unit=KB_PER_SEC, isBurst=true, state=ADDED, bands=[DefaultBand{rate=600, burst-size=30, type=DROP, drop-precedence=null}, DefaultBand{rate=400, burst-size=30, type=DROP, drop-precedence=null}, DefaultBand{rate=100000, burst-size=0, type=DROP, drop-precedence=null}]}
+```
+
+Note that the `cellId=1` is the same as the meter id. We can also check the bandwidthProfile associated with this meter.
+
+```shell
+onos> volt-bpmeter-mappings
+bpInfo=Default deviceId=of:00000000c0a8646f meterId=1
+```
+
+From the above, we see that `meterId=1` corresponds to bandwidthProfile `Default`, configured in SADIS. We can check the parameters of the configured bandwidthProfile with the following command.
+
+```shell
+onos> bandwidthprofile Default
+BandwidthProfileInformation{id=Default, committedInformationRate=600, committedBurstSize=30, exceededInformationRate=400, exceededBurstSize=30, assuredInformationRate=100000}
+```
+Note how the configured bandwidth profile is mapped to a meter and its meter-bands.
+
+In VOLTHA we can see the same flows in the logical device with the same meterId.
+
+```shell
+(voltha) logical_devices
+Logical devices:
++------------------+------------------+------------------+-----------------+---------------------------+--------------------------+
+|               id |      datapath_id |   root_device_id | desc.serial_num | switch_features.n_buffers | switch_features.n_tables |
++------------------+------------------+------------------+-----------------+---------------------------+--------------------------+
+| 00010000c0a8646f | 00000000c0a8646f | 00010c6fb4ae4011 |    EC1904000654 |                       256 |                        2 |
++------------------+------------------+------------------+-----------------+---------------------------+--------------------------+
+(voltha) logical_device 00010000c0a8646f
+(logical device 00010000c0a8646f) flows
+Logical Device 00010000c0a8646f (type: n/a)
+Flows (5):
++----------+----------+-----------+---------+----------+----------+----------+---------+---------+------------+---------------------+-------+
+| table_id | priority |    cookie | in_port | vlan_vid | eth_type | ip_proto | udp_src | udp_dst |     output |      write-metadata | meter |
++----------+----------+-----------+---------+----------+----------+----------+---------+---------+------------+---------------------+-------+
+|        0 |    10000 | ~568a5a6b |   65536 |          |     88CC |          |         |         | CONTROLLER |                     |       |
+|        0 |    10000 | ~b1626297 |   65536 |          |      800 |       17 |      67 |      68 | CONTROLLER |                     |       |
+|        0 |    10000 | ~8564f89b |   65536 |          |     86DD |       17 |     546 |     547 | CONTROLLER |                     |       |
+|        0 |    10000 | ~bccf83c4 |      16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~16403fee |      32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
++----------+----------+-----------+---------+----------+----------+----------+---------+---------+------------+---------------------+-------+
+(logical device 00010000c0a8646f) 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 | 00010c6fb4ae4011 |          65536 |      True |            65536 |  [0L, 0L, 0L, 1L, 0L, 0L] |     nni-65536 |              4 |          4128 |                  32 |                  65536 |
+|    uni-32 | 0001beddb8196807 |             32 |           |               32 | [8L, 0L, 0L, 0L, 0L, 32L] |  ISKT71e801a0 |              4 |          4160 |                  64 |                        |
+|    uni-16 | 00019af6aa8c68c9 |             16 |           |               16 | [8L, 0L, 0L, 0L, 0L, 16L] |  BRCM22222222 |              4 |          4160 |                  64 |                        |
++-----------+------------------+----------------+-----------+------------------+---------------------------+---------------+----------------+---------------+---------------------+------------------------+
+```
+
+We can also check the physical device representing the OLT.
+
+```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.onu_id | proxy_address.onu_session_id |
++------------------+-------------------+------+------------------+---------------+-------------+-------------+----------------+----------------+----------------------+--------------------------------------+-------------------------+----------------------+------------------------------+
+| 00010c6fb4ae4011 |           openolt | True | 00010000c0a8646f |  EC1904000654 |     ENABLED |      ACTIVE |      REACHABLE |                | 192.168.100.111:9191 |                                      |                         |                      |                              |
+| 00019af6aa8c68c9 | brcm_openomci_onu |      | 00010c6fb4ae4011 |  BRCM22222222 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                      | tech-profile-config-download-success |        00010c6fb4ae4011 |                    1 |                            1 |
+| 0001beddb8196807 | brcm_openomci_onu |      | 00010c6fb4ae4011 |  ISKT71e801a0 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                      | tech-profile-config-download-success |        00010c6fb4ae4011 |                    2 |                            2 |
++------------------+-------------------+------+------------------+---------------+-------------+-------------+----------------+----------------+----------------------+--------------------------------------+-------------------------+----------------------+------------------------------+
+(voltha) device 00010c6fb4ae4011
+(device 00010c6fb4ae4011) flows
+Device 00010c6fb4ae4011 (type: openolt)
+Flows (26):
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+------------+---------------------+-------+
+| table_id | priority |    cookie |    in_port | vlan_vid | eth_type | ip_proto | udp_src | udp_dst |     output |      write-metadata | meter |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+------------+---------------------+-------+
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 | CONTROLLER |     4090 |          |          |         |         |         16 |                     |       |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 | CONTROLLER |     4090 |          |          |         |         |         16 |                     |       |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 | CONTROLLER |     4090 |          |          |         |         |         16 |                     |       |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+------------+---------------------+-------+
+|        0 |    10000 | ~c3fcfed2 | CONTROLLER |     4090 |          |          |         |         |         16 |                     |       |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~3dd97249 |      65536 |          |     88CC |          |         |         | CONTROLLER |                     |       |
+|        0 |    10000 | ~74cd6437 |      65536 |          |      800 |       17 |      67 |      68 | CONTROLLER |                     |       |
+|        0 |    10000 | ~47a868a3 |         32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~47a868a3 | CONTROLLER |     4090 |          |          |         |         |         32 |                     |       |
+|        0 |    10000 | ~47a868a3 |         32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~47a868a3 |         32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~47a868a3 | CONTROLLER |     4090 |          |          |         |         |         32 |                     |       |
+|        0 |    10000 | ~47a868a3 |         32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+------------+---------------------+-------+
+|        0 |    10000 | ~47a868a3 |         32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~47a868a3 |         32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~47a868a3 | CONTROLLER |     4090 |          |          |         |         |         32 |                     |       |
+|        0 |    10000 | ~47a868a3 |         32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
+|        0 |    10000 | ~47a868a3 | CONTROLLER |     4090 |          |          |         |         |         32 |                     |       |
+|        0 |    10000 | ~47a868a3 |         32 |     4091 |     888E |          |         |         | CONTROLLER | 1151514404601200640 |     1 |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+------------+---------------------+-------+
+```
+
+Note that the each flow for the UNI ports 16 and 32 become 8 flows in the physical device.
+
+
+### After Successful Authentication
+
+When the RG behind one ONU (port 32) successfully authenticates, ONOS programs the subscriber's configured bandwidth profile (`BRONZE`), replacing the default bandwidth profile.
+In this case, we can check the flows and meters again
+
+```shell
+onos> flows -s
+deviceId=of:0000000000000001, flowRuleCount=33
+    -snip-
+deviceId=of:00000000c0a8646f, flowRuleCount=11
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:32, ETH_TYPE:eapol, VLAN_VID:12], treatment=[immediate=[OUTPUT:CONTROLLER], meter=METER:2, metadata=METADATA:c004000000000/0]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:65536, ETH_TYPE:lldp], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:65536, ETH_TYPE:ipv6, IP_PROTO:17, UDP_SRC:546, UDP_DST:547], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:65536, ETH_TYPE:ipv4, IP_PROTO:17, UDP_SRC:67, UDP_DST:68], treatment=[immediate=[OUTPUT:CONTROLLER]]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:16, ETH_TYPE:eapol, VLAN_VID:4091], treatment=[immediate=[OUTPUT:CONTROLLER], meter=METER:1, metadata=METADATA:ffb004000000000/0]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:32, ETH_TYPE:ipv4, IP_PROTO:17, UDP_SRC:68, UDP_DST:67], treatment=[immediate=[OUTPUT:CONTROLLER], meter=METER:2, metadata=METADATA:4000000000/0]
+    ADDED, bytes=0, packets=0, table=0, priority=10000, selector=[IN_PORT:32, ETH_TYPE:ipv6, IP_PROTO:17, UDP_SRC:547, UDP_DST:546], treatment=[immediate=[OUTPUT:CONTROLLER], meter=METER:2, metadata=METADATA:4000000000/0]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:32, VLAN_VID:0], treatment=[immediate=[VLAN_ID:12], transition=TABLE:1, meter=METER:2, metadata=METADATA:6f004000010000/0]
+    ADDED, bytes=0, packets=0, table=0, priority=1000, selector=[IN_PORT:65536, METADATA:c, VLAN_VID:111], treatment=[immediate=[VLAN_POP], transition=TABLE:1, meter=METER:2, metadata=METADATA:c004000000020/0]
+    ADDED, bytes=0, packets=0, table=1, priority=1000, selector=[IN_PORT:32, VLAN_VID:12], treatment=[immediate=[VLAN_PUSH:vlan, VLAN_ID:111, OUTPUT:65536], meter=METER:2, metadata=METADATA:4000000000/0]
+    ADDED, bytes=0, packets=0, table=1, priority=1000, selector=[IN_PORT:65536, VLAN_VID:12], treatment=[immediate=[VLAN_POP, VLAN_ID:0, OUTPUT:32], meter=METER:2, metadata=METADATA:4000000000/0]
+
+onos> meters
+ DefaultMeter{device=of:00000000c0a8646f, cellId=1, appId=org.opencord.olt, unit=KB_PER_SEC, isBurst=true, state=ADDED, bands=[DefaultBand{rate=600, burst-size=30, type=DROP, drop-precedence=null}, DefaultBand{rate=400, burst-size=30, type=DROP, drop-precedence=null}, DefaultBand{rate=100000, burst-size=0, type=DROP, drop-precedence=null}]}
+ DefaultMeter{device=of:00000000c0a8646f, cellId=2, appId=org.opencord.olt, unit=KB_PER_SEC, isBurst=true, state=ADDED, bands=[DefaultBand{rate=5000, burst-size=2000, type=DROP, drop-precedence=null}, DefaultBand{rate=3000, burst-size=2000, type=DROP, drop-precedence=null}, DefaultBand{rate=100000, burst-size=0, type=DROP, drop-precedence=null}]}
+```
+
+Note that we now have UNI port 32 with a lot more flows which use the subscriber's VLANs (C-Vlan=12 and S-VLAN=111). We also have these flows pointing to a different meter (METER:2), which maps to the subscriber's configured bandwidth profile `BRONZE`.
+
+```shell
+onos> volt-bpmeter-mappings
+bpInfo=Bronze deviceId=of:00000000c0a8646f meterId=2
+bpInfo=Default deviceId=of:00000000c0a8646f meterId=1
+
+onos> bandwidthprofile Bronze
+BandwidthProfileInformation{id=Bronze, committedInformationRate=5000, committedBurstSize=2000, exceededInformationRate=3000, exceededBurstSize=2000, assuredInformationRate=100000}
+```
+
+The UNI port 16 based flow is still the initial eapol flow mapped to METER:1 as the RG behind the ONU has not authenticated yet.
+
+The flows in VOLTHA for the OLT show similar information.
+
+```shell
+(device 00010c6fb4ae4011) flows
+Device 00010c6fb4ae4011 (type: openolt)
+Flows (50):
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+----------+--------------+----------+-----------+------------+------------+---------------------+-------+
+| table_id | priority |    cookie |    in_port | vlan_vid | eth_type | ip_proto | udp_src | udp_dst | metadata | set_vlan_vid | pop_vlan | push_vlan |     output | goto-table |      write-metadata | meter |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+----------+--------------+----------+-----------+------------+------------+---------------------+-------+
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         |          |              |          |           | CONTROLLER |            | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 | CONTROLLER |     4090 |          |          |         |         |          |              |          |           |         16 |            |                     |       |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         |          |              |          |           | CONTROLLER |            | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         |          |              |          |           | CONTROLLER |            | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 | CONTROLLER |     4090 |          |          |         |         |          |              |          |           |         16 |            |                     |       |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         |          |              |          |           | CONTROLLER |            | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         |          |              |          |           | CONTROLLER |            | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         |          |              |          |           | CONTROLLER |            | 1151514404601200640 |     1 |
+|        0 |    10000 | ~c3fcfed2 | CONTROLLER |     4090 |          |          |         |         |          |              |          |           |         16 |            |                     |       |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         |          |              |          |           | CONTROLLER |            | 1151514404601200640 |     1 |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+----------+--------------+----------+-----------+------------+------------+---------------------+-------+
+|        0 |    10000 | ~c3fcfed2 | CONTROLLER |     4090 |          |          |         |         |          |              |          |           |         16 |            |                     |       |
+|        0 |    10000 | ~c3fcfed2 |         16 |     4091 |     888E |          |         |         |          |              |          |           | CONTROLLER |            | 1151514404601200640 |     1 |
+|        0 |    10000 | ~3dd97249 |      65536 |          |     88CC |          |         |         |          |              |          |           | CONTROLLER |            |                     |       |
+|        0 |    10000 | ~74cd6437 |      65536 |          |      800 |       17 |      67 |      68 |          |              |          |           | CONTROLLER |            |                     |       |
+|        0 |     1000 | ~cfd16aad |      65536 |      111 |          |          |         |         |       12 |              |      Yes |           |            |          1 |    3377974598434848 |     2 |
+|        0 |     1000 | ~cfd16aad |      65536 |      111 |          |          |         |         |       12 |              |      Yes |           |            |          1 |    3377974598434848 |     2 |
+|        0 |     1000 | ~cfd16aad |      65536 |      111 |          |          |         |         |       12 |              |      Yes |           |            |          1 |    3377974598434848 |     2 |
+|        0 |     1000 | ~cfd16aad |      65536 |      111 |          |          |         |         |       12 |              |      Yes |           |            |          1 |    3377974598434848 |     2 |
+|        0 |     1000 | ~cfd16aad |      65536 |      111 |          |          |         |         |       12 |              |      Yes |           |            |          1 |    3377974598434848 |     2 |
+|        0 |     1000 | ~cfd16aad |      65536 |      111 |          |          |         |         |       12 |              |      Yes |           |            |          1 |    3377974598434848 |     2 |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+----------+--------------+----------+-----------+------------+------------+---------------------+-------+
+|        0 |     1000 | ~cfd16aad |      65536 |      111 |          |          |         |         |       12 |              |      Yes |           |            |          1 |    3377974598434848 |     2 |
+|        0 |     1000 | ~cfd16aad |      65536 |      111 |          |          |         |         |       12 |              |      Yes |           |            |          1 |    3377974598434848 |     2 |
+|        1 |     1000 | ~0048130f |         32 |       12 |          |          |         |         |          |          111 |          |      8100 |      65536 |            |        274877906944 |     2 |
+|        1 |     1000 | ~0048130f |         32 |       12 |          |          |         |         |          |          111 |          |      8100 |      65536 |            |        274877906944 |     2 |
+|        1 |     1000 | ~0048130f |         32 |       12 |          |          |         |         |          |          111 |          |      8100 |      65536 |            |        274877906944 |     2 |
+|        1 |     1000 | ~0048130f |         32 |       12 |          |          |         |         |          |          111 |          |      8100 |      65536 |            |        274877906944 |     2 |
+|        1 |     1000 | ~0048130f |         32 |       12 |          |          |         |         |          |          111 |          |      8100 |      65536 |            |        274877906944 |     2 |
+|        1 |     1000 | ~0048130f |         32 |       12 |          |          |         |         |          |          111 |          |      8100 |      65536 |            |        274877906944 |     2 |
+|        1 |     1000 | ~0048130f |         32 |       12 |          |          |         |         |          |          111 |          |      8100 |      65536 |            |        274877906944 |     2 |
+|        1 |     1000 | ~0048130f |         32 |       12 |          |          |         |         |          |          111 |          |      8100 |      65536 |            |        274877906944 |     2 |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+----------+--------------+----------+-----------+------------+------------+---------------------+-------+
+|        0 |    10000 | ~0019466f |         32 |          |      800 |       17 |      68 |      67 |          |              |          |           | CONTROLLER |            |        274877906944 |     2 |
+|        0 |    10000 | ~0019466f |         32 |          |      800 |       17 |      68 |      67 |          |              |          |           | CONTROLLER |            |        274877906944 |     2 |
+|        0 |    10000 | ~0019466f |         32 |          |      800 |       17 |      68 |      67 |          |              |          |           | CONTROLLER |            |        274877906944 |     2 |
+|        0 |    10000 | ~0019466f |         32 |          |      800 |       17 |      68 |      67 |          |              |          |           | CONTROLLER |            |        274877906944 |     2 |
+|        0 |    10000 | ~0019466f |         32 |          |      800 |       17 |      68 |      67 |          |              |          |           | CONTROLLER |            |        274877906944 |     2 |
+|        0 |    10000 | ~0019466f |         32 |          |      800 |       17 |      68 |      67 |          |              |          |           | CONTROLLER |            |        274877906944 |     2 |
+|        0 |    10000 | ~0019466f |         32 |          |      800 |       17 |      68 |      67 |          |              |          |           | CONTROLLER |            |        274877906944 |     2 |
+|        0 |    10000 | ~0019466f |         32 |          |      800 |       17 |      68 |      67 |          |              |          |           | CONTROLLER |            |        274877906944 |     2 |
+|        0 |    10000 | ~e5f8ecc9 |         32 |       12 |     888E |          |         |         |          |              |          |           | CONTROLLER |            |    3377974598434816 |     2 |
+|        0 |    10000 | ~e5f8ecc9 | CONTROLLER |     4090 |          |          |         |         |          |              |          |           |         32 |            |                     |       |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+----------+--------------+----------+-----------+------------+------------+---------------------+-------+
+|        0 |    10000 | ~e5f8ecc9 |         32 |       12 |     888E |          |         |         |          |              |          |           | CONTROLLER |            |    3377974598434816 |     2 |
+|        0 |    10000 | ~e5f8ecc9 |         32 |       12 |     888E |          |         |         |          |              |          |           | CONTROLLER |            |    3377974598434816 |     2 |
+|        0 |    10000 | ~e5f8ecc9 | CONTROLLER |     4090 |          |          |         |         |          |              |          |           |         32 |            |                     |       |
+|        0 |    10000 | ~e5f8ecc9 |         32 |       12 |     888E |          |         |         |          |              |          |           | CONTROLLER |            |    3377974598434816 |     2 |
+|        0 |    10000 | ~e5f8ecc9 |         32 |       12 |     888E |          |         |         |          |              |          |           | CONTROLLER |            |    3377974598434816 |     2 |
+|        0 |    10000 | ~e5f8ecc9 |         32 |       12 |     888E |          |         |         |          |              |          |           | CONTROLLER |            |    3377974598434816 |     2 |
+|        0 |    10000 | ~e5f8ecc9 | CONTROLLER |     4090 |          |          |         |         |          |              |          |           |         32 |            |                     |       |
+|        0 |    10000 | ~e5f8ecc9 |         32 |       12 |     888E |          |         |         |          |              |          |           | CONTROLLER |            |    3377974598434816 |     2 |
+|        0 |    10000 | ~e5f8ecc9 | CONTROLLER |     4090 |          |          |         |         |          |              |          |           |         32 |            |                     |       |
+|        0 |    10000 | ~e5f8ecc9 |         32 |       12 |     888E |          |         |         |          |              |          |           | CONTROLLER |            |    3377974598434816 |     2 |
++----------+----------+-----------+------------+----------+----------+----------+---------+---------+----------+--------------+----------+-----------+------------+------------+---------------------+-------+
+```
diff --git a/profiles/seba/operate/screenshots/att-si-0.png b/profiles/seba/operate/screenshots/att-si-0.png
new file mode 100644
index 0000000..9bde86c
--- /dev/null
+++ b/profiles/seba/operate/screenshots/att-si-0.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/att-si-1.png b/profiles/seba/operate/screenshots/att-si-1.png
new file mode 100644
index 0000000..10e7e3a
--- /dev/null
+++ b/profiles/seba/operate/screenshots/att-si-1.png
Binary files differ
diff --git a/profiles/seba/operate/tp-ops.md b/profiles/seba/operate/tp-ops.md
new file mode 100644
index 0000000..2f56680
--- /dev/null
+++ b/profiles/seba/operate/tp-ops.md
@@ -0,0 +1,322 @@
+# Technology Profile Operations
+
+As explained in the configuration guide, from SEBA 2.0 onwards, it is necessary to configure a Technology Profile before an OLT can be provisioned.
+However, in the SEBA 2.0-alpha release, changes to the tech-profile at runtime are not supported. We will look to add this support in future releases of VOLTHA and SEBA. It should be noted though that operators rarely have a need to change Tech profile parameters in operation, ie. QoS parameters (queues, gems, pbit mapping) are relatively static and predetermined for different service types (residential, business etc).
+
+Nevertheless in this release, you may wish to find out more information about the assigned gem-port and tcont ids for a particular subscriber/ONU.
+The following example shows a way to retrieve this information from VOLTHA's etcd database.
+
+## Viewing Tech Profile Instances
+
+A Tech profile when assigned to a subscriber/ONU is called an `instance` of the Tech profile.
+First we need to enter the etcd container using kubectl.
+
+```shell
+~$ kubectl exec -it $(kubectl get pods | grep etcd-cluster | awk 'NR==1{print $1}') /bin/sh
+```
+
+Once inside, we can use the etcdctl tool to fetch the stored information for the profile using the technology-type (eg. xgspon) and id (eg. 64).
+
+```shell
+/ # ETCDCTL_API=3 etcdctl get --prefix  service/voltha/technology_profiles/xgspon/64
+```
+
+The first part of the output will show the original downloaded tech-profile. For example, the following output shows a single-TCONT/4-gems tech profile with id 64 for XGS-PON technology.
+
+```shell
+service/voltha/technology_profiles/xgspon/64
+{
+  "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
+      }
+    }
+  ]
+}
+```
+
+The next part of the output shows the tech-profile instance for the `BRCM22222222` ONU in our setup.
+Notice that gem-port ids 1024 - 1027 have been assigned to the 4 gem-ports, and an Alloc id of 1024 has been assigned to the TCONT.
+
+```shell
+service/voltha/technology_profiles/xgspon/64/BRCM22222222
+{
+    "downstream_gem_port_attribute_list": [
+        {
+            "weight": 10,
+            "aes_encryption": "True",
+            "pbit_map": "0b00000101",
+            "discard_config": {
+                "min_threshold": 0,
+                "max_probability": 0,
+                "max_threshold": 0
+            },
+            "gemport_id": 1024,
+            "max_q_size": "auto",
+            "scheduling_policy": "WRR",
+            "priority_q": 4,
+            "discard_policy": "TailDrop"
+        },
+        {
+            "weight": 90,
+            "aes_encryption": "True",
+            "pbit_map": "0b00011010",
+            "discard_config": {
+                "min_threshold": 0,
+                "max_probability": 0,
+                "max_threshold": 0
+            },
+            "gemport_id": 1025,
+            "max_q_size": "auto",
+            "scheduling_policy": "WRR",
+            "priority_q": 3,
+            "discard_policy": "TailDrop"
+        },
+        {
+            "weight": 0,
+            "aes_encryption": "True",
+            "pbit_map": "0b00100000",
+            "discard_config": {
+                "min_threshold": 0,
+                "max_probability": 0,
+                "max_threshold": 0
+            },
+            "gemport_id": 1026,
+            "max_q_size": "auto",
+            "scheduling_policy": "StrictPriority",
+            "priority_q": 2,
+            "discard_policy": "TailDrop"
+        },
+        {
+            "weight": 25,
+            "aes_encryption": "True",
+            "pbit_map": "0b11000000",
+            "discard_config": {
+                "min_threshold": 0,
+                "max_probability": 0,
+                "max_threshold": 0
+            },
+            "gemport_id": 1027,
+            "max_q_size": "auto",
+            "scheduling_policy": "StrictPriority",
+            "priority_q": 1,
+            "discard_policy": "TailDrop"
+        }
+    ],
+    "upstream_gem_port_attribute_list": [
+        {
+            "weight": 25,
+            "aes_encryption": "True",
+            "pbit_map": "0b00000101",
+            "discard_config": {
+                "min_threshold": 0,
+                "max_probability": 0,
+                "max_threshold": 0
+            },
+            "gemport_id": 1024,
+            "max_q_size": "auto",
+            "scheduling_policy": "WRR",
+            "priority_q": 4,
+            "discard_policy": "TailDrop"
+        },
+        {
+            "weight": 75,
+            "aes_encryption": "True",
+            "pbit_map": "0b00011010",
+            "discard_config": {
+                "min_threshold": 0,
+                "max_probability": 0,
+                "max_threshold": 0
+            },
+            "gemport_id": 1025,
+            "max_q_size": "auto",
+            "scheduling_policy": "WRR",
+            "priority_q": 3,
+            "discard_policy": "TailDrop"
+        },
+        {
+            "weight": 0,
+            "aes_encryption": "True",
+            "pbit_map": "0b00100000",
+            "discard_config": {
+                "min_threshold": 0,
+                "max_probability": 0,
+                "max_threshold": 0
+            },
+            "gemport_id": 1026,
+            "max_q_size": "auto",
+            "scheduling_policy": "StrictPriority",
+            "priority_q": 2,
+            "discard_policy": "TailDrop"
+        },
+        {
+            "weight": 25,
+            "aes_encryption": "True",
+            "pbit_map": "0b11000000",
+            "discard_config": {
+                "min_threshold": 0,
+                "max_probability": 0,
+                "max_threshold": 0
+            },
+            "gemport_id": 1027,
+            "max_q_size": "auto",
+            "scheduling_policy": "StrictPriority",
+            "priority_q": 1,
+            "discard_policy": "TailDrop"
+        }
+    ],
+    "subscriber_identifier": "BRCM22222222",
+    "us_scheduler": {
+        "q_sched_policy": "hybrid",
+        "direction": "UPSTREAM",
+        "additional_bw": "auto",
+        "weight": 0,
+        "alloc_id": 1024,
+        "priority": 0
+    },
+    "ds_scheduler": {
+        "q_sched_policy": "hybrid",
+        "direction": "DOWNSTREAM",
+        "additional_bw": "auto",
+        "weight": 0,
+        "alloc_id": 1024,
+        "priority": 0
+    }
+}
+
+```
+
+If there are more ONUs and subscribers in your setup, their tech-profile instances would also show up with different tcont and gem-port ids.
