PON requirement docs and seq diagrams

Please review and comment.

Change-Id: Iccec623e25bd723816c235cd4dd1a3b6d54e7d85
diff --git a/docs/pon-requirements/olt-states.block b/docs/pon-requirements/olt-states.block
new file mode 100644
index 0000000..8e2c71d
--- /dev/null
+++ b/docs/pon-requirements/olt-states.block
@@ -0,0 +1,22 @@
+blockdiag {
+
+  // States
+  N1 [label = Not-exist, shape = beginpoint];
+  N2 [label = Not-exist, shape = beginpoint];
+  Discovered [shape = ellipse];
+  Pre-provisioned [shape = ellipse];
+  Activating [shape = ellipse];
+  Active [shape = ellipse, color = "#80ff80"];
+  Failed [shape = ellipse, color = "#ff8080"];
+  TBD [shape = ellipse, stacked];
+
+  // Transients
+  N1 -> Pre-provisioned;
+  N2 -> Discovered;
+  Pre-provisioned -> Activating;
+  Discovered -> Activating;
+  Activating -> Active;
+  Activating -> Failed [folded];
+  Active -> Failed [folded];
+
+}
diff --git a/docs/pon-requirements/reference-inband.block b/docs/pon-requirements/reference-inband.block
new file mode 100644
index 0000000..95195e9
--- /dev/null
+++ b/docs/pon-requirements/reference-inband.block
@@ -0,0 +1,46 @@
+blockdiag {
+
+    //orientation = portrait;
+
+    // Blocks used
+    SDN [label = "SDN\nController", width = 64];
+    M [label = "PON\nManager", width = 64];
+    V [label = "Voltha\nCore & NBI", width = 74];
+    A [label = "OLT\nAdapter", width = 64];
+    A2 [label = "ONU\nAdapter", width = 64];
+    U [label = "Upstream\nNetwork", width = 64];
+    L2 [label = "L2 Aggr.", width = 64, shape = cloud];
+    OL [label = OLT, width = 64];
+    ON [label = ONU, width = 64];
+    R [label = RG, width = 64];
+
+    U <-> L2 [label = Pd];
+    L2 <-> OL [label = Pu];
+    OL <-> ON;
+    ON <-> R [label = Pr];
+    M <-> V [label = Pv, folded];
+    M <-> SDN;
+    SDN <-> V [label = Pv, folded];
+    V <-> A [label = Pa];
+    V <-> A2;
+    A <-> L2 [label = Pc];
+
+    group {
+        label = "Voltha Deployed on Compute Cluster with Inband Access to OLTs"
+        SDN; M; V; A; A2; U; L2; OL; ON; R;
+        color = "#FFFFFF";
+        fontsize = 24;
+
+        group {
+            label = "Voltha";
+            color = "#AAAAFF"
+            V; A; A2;
+        }
+
+        group {
+            label = "PON Network";
+            OL; ON;
+        }
+    }
+}
+
diff --git a/docs/pon-requirements/reference-internal.block b/docs/pon-requirements/reference-internal.block
new file mode 100644
index 0000000..4b33854
--- /dev/null
+++ b/docs/pon-requirements/reference-internal.block
@@ -0,0 +1,48 @@
+blockdiag {
+
+    //orientation = portrait;
+
+    // Blocks used
+    SDN [label = "SDN\nController", width = 64];
+    M [label = "PON\nManager", width = 64];
+    V [label = "Voltha\nCore & NBI", width = 74];
+    A [label = "OLT\nAdapter", width = 64];
+    A2 [label = "ONU\nAdapter", width = 64];
+    U [label = "Upstream\nNetwork", width = 64];
+    L2 [label = "L2 Aggr.", width = 64, shape = cloud];
+    OL [label = "OLT chip\n& firmware", width = 64];
+    ON [label = ONU, width = 64];
+    R [label = RG, width = 64];
+
+    U <-> L2 [label = Pd];
+    L2 <-> OL [label = Pu];
+    OL <-> ON;
+    ON <-> R [label = Pr];
+    M <-> V;
+    M <-> SDN;
+    SDN <-> V [label = Pv];
+    V <-> A [label = Pa];
+    V <-> A2;
+    A <-> OL [label = Pc];
+
+    group {
+        SDN; M; V; A; A2; U; L2; OL; ON; R;
+        shape = line;
+        color = "#FFFFFF";
+        fontsize = 24;
+
+        group {
+            label = "PON Network";
+            V; A; A2; OL; ON;
+
+            group {
+                label = "Voltha";
+                color = "#AAAAFF"
+                V; A; A2;
+            }
+
+
+        }
+    }
+}
+