Adding ATT worklfow
Change-Id: I661b3dfae0b0a4340bd881c01c5750b99969eda4
diff --git a/SUMMARY.md b/SUMMARY.md
index ba8f447..8a1c666 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -46,6 +46,8 @@
* [XOS Configuration](xos/modules/xosconfig.md)
* [Configuring Profiles](operating_cord/profiles.md)
* [R-CORD](profiles/rcord/configuration.md)
+ * Workflows
+ * [AT&T](profiles/rcord/workflows/att.md)
* [M-CORD](profiles/mcord/configuration.md)
* [Configuring Services](operating_cord/services.md)
* [Fabric](fabric/README.md)
diff --git a/book.json b/book.json
index 1317bf7..0bf2058 100644
--- a/book.json
+++ b/book.json
@@ -4,6 +4,9 @@
"structure": {
"summary": "SUMMARY.md"
},
+ "styles": {
+ "website": "styles/website.css"
+ },
"variables": {
"branch": "master"
},
diff --git a/images/att_workflow.png b/images/att_workflow.png
new file mode 100644
index 0000000..66c89ec
--- /dev/null
+++ b/images/att_workflow.png
Binary files differ
diff --git a/profiles/rcord/workflows/att.md b/profiles/rcord/workflows/att.md
new file mode 100644
index 0000000..79545ea
--- /dev/null
+++ b/profiles/rcord/workflows/att.md
@@ -0,0 +1,30 @@
+# AT&T Workflow
+
+You can find a complete description of the SEBA workflow for At&t in [this document](https://docs.google.com/document/d/1nou2c8AsRzhaDJmA_eYvFgd0Y33KiCsioveU77AOVCI/edit#heading=h.x73smxj2xaib). This pages focus exclusively on the internals details of the workflow such as actions triggered by the environment and decisions taken by NEM.
+
+## Workflow description
+
+1. ONT discovered bottom-up
+2. If ONT serial number is not allowed or unknown (i.e it has NOT been provisioned by OSS), disable the ONT; generate an event to external OSS that an ONU has been discovered but not yet provisioned.
+3. When OSS provisions the ONT, re-enable it & program 802.1x flow - UNI port(s) will be UP
+4. Ensure that DHCP fails here (because subscriber/service-binding has not been provisioned by OSS yet)
+5. 802.1x EAPOL message happens from RG, and ONOS AAA app adds options and sends to radius server. Options are pulled from Sadis/NEM - no subscriber information is required here
+6. If RG authentication fails, allow it to keep trying (in the future consider redirection to captive / self-help portal). DHCP should not succeed since RG authentication has failed
+7. If RG authentication succeeds, ONOS AAA app notifies via an event on the kafka bus that authentication has succeeded
+8. NEM can listen for the event, and then check to see if subscriber/service-binding has happened on that port from OSS - if not, then nothing to be done
+9. Must ensure that DHCP fails here even though RG has been authenticated (because subscriber/service-binding has not been provisioned by OSS yet)
+10. When OSS provisions the subscriber/service-binding on the UNI port and gives the C and S vlan info, then DHCP trap will be programmed on the port, and DHCP process can start
+11. If RG is disconnected from UNI port, force authentication again (even if subscriber/service-binding has been provisioned by OSS). Upon reconnection to UNI port, RG must re-authenticate before DHCP/other-traffic can flow on the provisioned VLANs.
+12. DHCP L2 relay -> add option 82, learn public IP address, forward via dataplane to external DHCP server
+
+
+This schema summarizes the workflow, please note:
+
+- in `light blue` are environment events (wether they are triggered from hardware or from an operator)
+- in `yellow` are NEM configuration calls to ONOS or VOLTHA
+- in `green` are decisions
+- in `orange` event published on the kafka bus
+
+![att-workflow](../../../images/att_workflow.png)
+
+> NOTE: when we refer to `service chain` we are talking about the set of subscriber specific service instances that will trigger the `add_subscriber` call in ONOS-VOLTHA and provision the crossconnect in ONOS-FABRIC
\ No newline at end of file
diff --git a/styles/website.css b/styles/website.css
new file mode 100644
index 0000000..62fe48f
--- /dev/null
+++ b/styles/website.css
@@ -0,0 +1,14 @@
+.page-inner {
+ max-width: 95% !important;
+}
+
+.page-toc {
+ max-width: 400px;
+ margin-left: 10px;
+}
+
+.page-toc li {
+ list-style: disc;
+ text-indent: -1.5em;
+ padding-left: 1.5em;
+}
\ No newline at end of file