diff --git a/src/main/java/net/onrc/onos/core/topology/AdminStatus.java b/src/main/java/net/onrc/onos/core/topology/AdminStatus.java
new file mode 100644
index 0000000..be4eb0d
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/AdminStatus.java
@@ -0,0 +1,19 @@
+package net.onrc.onos.core.topology;
+
+/**
+ * Management status of this element.
+ * <p/>
+ * Note: This status only resembles ONOS's recognition of the element.
+ * This status is orthogonal to the operational state of the D-plane.
+ */
+public enum AdminStatus {
+    /**
+     * ONOS has discovered the element.
+     */
+    ACTIVE,
+    /**
+     * ONOS has not yet discovered the element
+     * or has observed that the element has disappeared.
+     */
+    INACTIVE
+}
diff --git a/src/main/java/net/onrc/onos/core/topology/ConfigState.java b/src/main/java/net/onrc/onos/core/topology/ConfigState.java
new file mode 100644
index 0000000..9d98f1a
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/ConfigState.java
@@ -0,0 +1,15 @@
+package net.onrc.onos.core.topology;
+
+/**
+ * State to show configuration state of this element.
+ */
+public enum ConfigState {
+    /**
+     * Existence of the element was not configured, but discovered.
+     */
+    NOT_CONFIGURED,
+    /**
+     * Existence of the element was configured by operator.
+     */
+    CONFIGURED
+}
diff --git a/src/main/java/net/onrc/onos/core/topology/HostImpl.java b/src/main/java/net/onrc/onos/core/topology/HostImpl.java
index d0964a1..3120015 100644
--- a/src/main/java/net/onrc/onos/core/topology/HostImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/HostImpl.java
@@ -80,4 +80,24 @@
         // FIXME assuming device is always in packet layer for now.
         return TopologyElement.TYPE_PACKET_LAYER;
     }
+
+    /**
+     * Returns the config state of topology element.
+     *
+     * @return ConfigState
+     */
+    @Override
+    public ConfigState getConfigState() {
+        return ConfigState.NOT_CONFIGURED;
+    }
+
+    /**
+     * Returns the status of topology element.
+     *
+     * @return AdminStatus
+     */
+    @Override
+    public AdminStatus getStatus() {
+        return AdminStatus.ACTIVE;
+    }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/ITopologyElement.java b/src/main/java/net/onrc/onos/core/topology/ITopologyElement.java
index b9ce0d3..277c957 100644
--- a/src/main/java/net/onrc/onos/core/topology/ITopologyElement.java
+++ b/src/main/java/net/onrc/onos/core/topology/ITopologyElement.java
@@ -13,4 +13,20 @@
      * @return the type of the topology element
      */
     public String getType();
+
+    /**
+     * Returns the config state of topology element.
+     *
+     * @return ConfigState
+     */
+    public ConfigState getConfigState();
+
+    /**
+     * Returns the status of topology element.
+     *
+     * @return  AdminStatus
+     */
+    public AdminStatus getStatus();
+
+
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/LinkImpl.java b/src/main/java/net/onrc/onos/core/topology/LinkImpl.java
index 8379279..dea629e 100644
--- a/src/main/java/net/onrc/onos/core/topology/LinkImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/LinkImpl.java
@@ -121,4 +121,24 @@
     public String getType() {
         return getStringAttribute(TopologyElement.TYPE, TopologyElement.TYPE_PACKET_LAYER);
     }
+
+    /**
+     * Returns the config state of topology element.
+     *
+     * @return ConfigState
+     */
+    @Override
+    public ConfigState getConfigState() {
+        return ConfigState.valueOf(getStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE));
+    }
+
+    /**
+     * Returns the status of topology element.
+     *
+     * @return AdminStatus
+     */
+    @Override
+    public AdminStatus getStatus() {
+        return AdminStatus.valueOf(getStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS));
+    }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/PortImpl.java b/src/main/java/net/onrc/onos/core/topology/PortImpl.java
index ec779e5..2521a9a 100644
--- a/src/main/java/net/onrc/onos/core/topology/PortImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/PortImpl.java
@@ -189,4 +189,25 @@
     public String getType() {
         return getStringAttribute(TopologyElement.TYPE, TopologyElement.TYPE_PACKET_LAYER);
     }
+
+    /**
+     * Returns the config state of topology element.
+     *
+     * @return ConfigState
+     */
+    @Override
+    public ConfigState getConfigState() {
+        return ConfigState.valueOf(getStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE));
+
+    }
+
+    /**
+     * Returns the status of topology element.
+     *
+     * @return AdminStatus
+     */
+    @Override
+    public AdminStatus getStatus() {
+        return AdminStatus.valueOf(getStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS));
+    }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java b/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
index 6be8b13..de4194e 100644
--- a/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
@@ -156,4 +156,24 @@
     public String getType() {
         return getStringAttribute(TopologyElement.TYPE, TopologyElement.TYPE_PACKET_LAYER);
     }
+
+    /**
+     * Returns the config state of topology element.
+     *
+     * @return ConfigState
+     */
+    @Override
+    public ConfigState getConfigState() {
+        return ConfigState.valueOf(getStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE));
+    }
+
+    /**
+     * Returns the status of topology element.
+     *
+     * @return AdminStatus
+     */
+    @Override
+    public AdminStatus getStatus() {
+        return AdminStatus.valueOf(getStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS));
+    }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyElement.java b/src/main/java/net/onrc/onos/core/topology/TopologyElement.java
index 685bc98..a9cfbf8 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyElement.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyElement.java
@@ -34,6 +34,9 @@
      */
     public static final String TYPE_OPTICAL_LAYER = "optical";
 
+    public static final String ELEMENT_CONFIG_STATE = "ConfigState";
+
+    public static final String ELEMENT_ADMIN_STATUS = "AdminStatus";
 
     private boolean isFrozen = false;
 
@@ -59,6 +62,7 @@
     public TopologyElement(TopologyElement<T> original) {
         this.isFrozen = false;
         this.stringAttributes = new ConcurrentHashMap<>(original.stringAttributes);
+
     }
 
 
@@ -171,4 +175,25 @@
     public String getType() {
         return getStringAttribute(TYPE, TYPE_PACKET_LAYER);
     }
+
+    /**
+     * Returns the config state of topology element.
+     *
+     * @return ConfigState
+     */
+    @Override
+    public ConfigState getConfigState() {
+        return ConfigState.valueOf(getStringAttribute(ELEMENT_CONFIG_STATE));
+    }
+
+    /**
+     * Returns the status of topology element.
+     *
+     * @return AdminStatus
+     */
+    @Override
+    public AdminStatus getStatus() {
+        return AdminStatus.valueOf(getStringAttribute(ELEMENT_ADMIN_STATUS));
+    }
+
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java b/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java
index 186aafb..f11c06d 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java
@@ -143,7 +143,10 @@
         // TODO populate appropriate attributes.
         linkEvent.createStringAttribute(TopologyElement.TYPE,
                                         TopologyElement.TYPE_PACKET_LAYER);
-
+        linkEvent.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
+                ConfigState.NOT_CONFIGURED.toString());
+        linkEvent.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
+                AdminStatus.ACTIVE.toString());
         linkEvent.freeze();
 
         if (!registryService.hasControl(link.getDst())) {
@@ -234,7 +237,10 @@
                                           TopologyElement.TYPE_PACKET_LAYER);
         switchEvent.createStringAttribute("ConnectedSince",
                 sw.getConnectedSince().toString());
-
+        switchEvent.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
+                ConfigState.NOT_CONFIGURED.toString());
+        switchEvent.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
+                AdminStatus.ACTIVE.toString());
         switchEvent.freeze();
 
         // TODO Not very robust
@@ -253,6 +259,10 @@
             portEvent.createStringAttribute("name", port.getName());
             portEvent.createStringAttribute(TopologyElement.TYPE,
                                             TopologyElement.TYPE_PACKET_LAYER);
+            portEvent.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
+                    ConfigState.NOT_CONFIGURED.toString());
+            portEvent.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
+                    AdminStatus.ACTIVE.toString());
 
             portEvent.freeze();
             portEvents.add(portEvent);
diff --git a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
index 18de585..d5482ec 100644
--- a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
@@ -25,12 +25,14 @@
 import net.onrc.onos.core.packetservice.BroadcastPacketOutNotification;
 import net.onrc.onos.core.packetservice.PacketOutNotification;
 import net.onrc.onos.core.packetservice.SinglePacketOutNotification;
+import net.onrc.onos.core.topology.AdminStatus;
+import net.onrc.onos.core.topology.ConfigState;
 import net.onrc.onos.core.topology.HostEvent;
 import net.onrc.onos.core.topology.LinkEvent;
 import net.onrc.onos.core.topology.PortEvent;
 import net.onrc.onos.core.topology.SwitchEvent;
-import net.onrc.onos.core.topology.TopologyEvent;
 import net.onrc.onos.core.topology.TopologyElement;
+import net.onrc.onos.core.topology.TopologyEvent;
 import net.onrc.onos.core.util.CallerId;
 import net.onrc.onos.core.util.DataPath;
 import net.onrc.onos.core.util.Dpid;
@@ -205,6 +207,8 @@
         kryo.register(TopologyEvent.class);
         kryo.register(TopologyElement.class);
         kryo.register(ConcurrentHashMap.class);
+        kryo.register(ConfigState.class);
+        kryo.register(AdminStatus.class);
 
         // Intent-related classes
         kryo.register(Path.class);
