Initial commit of a simple OpenOLT simulator

make openoltsim
./build/openoltsim

Openoltsim is meant to simulate an OLT running the OpenOLT driver.
Currently, it only sends the the "olt up" indication allowing
voltha pre-provision/enable commands to connect to openoltsim.

Change-Id: I95910657d269e37f4e4943d2b91f2780ecd8fd08
diff --git a/openoltsim/state.cc b/openoltsim/state.cc
new file mode 100644
index 0000000..c3b2966
--- /dev/null
+++ b/openoltsim/state.cc
@@ -0,0 +1,41 @@
+#include <mutex>
+
+namespace state {
+
+    bool connected_to_voltha = false;
+    bool activated = false;
+    std::mutex state_lock;
+
+    bool is_connected() {
+        return connected_to_voltha;
+    }
+
+    bool is_activated() {
+        return activated;
+    }
+
+    void connect() {
+        state_lock.lock();
+        connected_to_voltha = true;
+        state_lock.unlock();
+    }
+
+    void disconnect() {
+        state_lock.lock();
+        connected_to_voltha = false;
+        state_lock.unlock();
+    }
+
+    void activate() {
+        state_lock.lock();
+        activated = true;
+        state_lock.unlock();
+    }
+
+    void deactivate() {
+        state_lock.lock();
+        activated = false;
+        state_lock.unlock();
+    }
+
+}