Creating one channel per ONU
Using state machine for OperState in OLT, NNI, PON
Using state machien ONU OperState and added gRPC API to list ONUs with
statuses

Change-Id: I663133510ef4a672e3807cd7e0db9eca8b7ab0d2
diff --git a/internal/bbsim/devices/helpers.go b/internal/bbsim/devices/helpers.go
new file mode 100644
index 0000000..d764943
--- /dev/null
+++ b/internal/bbsim/devices/helpers.go
@@ -0,0 +1,18 @@
+package devices
+
+import "github.com/looplab/fsm"
+
+func getOperStateFSM(cb fsm.Callback) *fsm.FSM {
+	return fsm.NewFSM(
+		"down",
+		fsm.Events{
+			{Name: "enable", Src: []string{"down"}, Dst: "up"},
+			{Name: "disable", Src: []string{"up"}, Dst: "down"},
+		},
+		fsm.Callbacks{
+			"enter_state": func(e *fsm.Event) {
+				cb(e)
+			},
+		},
+	)
+}