diff --git a/src/main/java/net/floodlightcontroller/core/INetMapStorage.java b/src/main/java/net/floodlightcontroller/core/INetMapStorage.java
new file mode 100644
index 0000000..8de368d
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/core/INetMapStorage.java
@@ -0,0 +1,18 @@
+/**
+ * 
+ */
+package net.floodlightcontroller.core;
+
+/**
+ * @author pankaj
+ *
+ */
+public interface INetMapStorage {
+	enum DM_OPERATION {
+		CREATE, // Create the object type if does not exist and insert the object
+		INSERT, // Insert the object if it does not exist
+		DELETE, // Delete the object
+		UPDATE  // Update the object if exists or CREATE/INSERT if does not exist
+	}
+
+}
diff --git a/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java b/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java
new file mode 100644
index 0000000..920d29e
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java
@@ -0,0 +1,41 @@
+package net.floodlightcontroller.core;
+
+import java.util.Collection;
+
+import org.openflow.protocol.OFPhysicalPort;
+
+public interface ISwitchStorage extends INetMapStorage {
+	
+	/*
+	 * Update the switch details
+	 */
+	public void update(long dpid,DM_OPERATION op);
+	/*
+	 * Associate a port on switch
+	 */
+	public void addPort(long dpid, OFPhysicalPort port);
+	/*
+	 * Get all ports associated on a switch
+	 */
+	public Collection<OFPhysicalPort> getPorts(long dpid);
+	/*
+	 * Get Port by Number
+	 */
+	public OFPhysicalPort getPort(long dpid, short portnum);
+	/*
+	 * Get port by name
+	 */
+	public OFPhysicalPort getPort(long dpid, String portName);
+	/*
+	 * Delete switch and associated ports
+	 */
+	public void deleteSwitch(long dpid);
+	/*
+	 * Delete a port on a switch by num
+	 */
+	public void deletePort(long dpid, short port);
+	/*
+	 * Delete port on a switch by name
+	 */
+	public void deletePort(long dpid, String portName);
+}
diff --git a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImplStubs.java b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImplStubs.java
new file mode 100644
index 0000000..688abd1
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImplStubs.java
@@ -0,0 +1,108 @@
+/**
+ * 
+ */
+package net.floodlightcontroller.core.internal;
+
+import java.util.Collection;
+
+import org.openflow.protocol.OFPhysicalPort;
+
+import net.floodlightcontroller.core.ISwitchStorage;
+
+/**
+ * @author pankaj
+ *
+ */
+public class SwitchStorageImplStubs implements ISwitchStorage {
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#update(long, net.floodlightcontroller.core.INetMapStorage.DM_OPERATION)
+	 */
+	@Override
+	public void update(long dpid, DM_OPERATION op) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#addPort(long, org.openflow.protocol.OFPhysicalPort)
+	 */
+	@Override
+	public void addPort(long dpid, OFPhysicalPort port) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#getPorts(long)
+	 */
+	@Override
+	public Collection<OFPhysicalPort> getPorts(long dpid) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#getPort(long, short)
+	 */
+	@Override
+	public OFPhysicalPort getPort(long dpid, short portnum) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#getPort(long, java.lang.String)
+	 */
+	@Override
+	public OFPhysicalPort getPort(long dpid, String portName) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#addSwitch(long)
+	 */
+	@Override
+	public void addSwitch(long dpid) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#deleteSwitch(long)
+	 */
+	@Override
+	public void deleteSwitch(long dpid) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#deletePort(long, short)
+	 */
+	@Override
+	public void deletePort(long dpid, short port) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#deletePort(long, java.lang.String)
+	 */
+	@Override
+	public void deletePort(long dpid, String portName) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.core.ISwitchStorage#init(java.lang.String)
+	 */
+	@Override
+	public void init(String conf) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkStorage.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkStorage.java
new file mode 100644
index 0000000..6d66a49
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkStorage.java
@@ -0,0 +1,39 @@
+package net.floodlightcontroller.linkdiscovery;
+
+import java.util.List;
+
+import net.floodlightcontroller.core.INetMapStorage;
+import net.floodlightcontroller.routing.Link;
+
+public interface ILinkStorage extends INetMapStorage {
+	
+    /*
+     * Link creation
+     */
+	public void update(Link link, DM_OPERATION op);
+	public void update(List<Link> List, DM_OPERATION op);
+	
+	/*
+	 *  Add Linkinfo
+	 */
+	public void update(Link link, LinkInfo linkinfo, DM_OPERATION op);
+	
+	/*
+	 * Get Links from Storage
+	 *  If dpid and port both are specified specific link is retrieved
+	 *  If only dpid is set all links associated with Switch are retrieved
+	 */
+	public List<Link> getLinks(Long dpid, int port);
+
+	/*
+	 * Delete links associated with dpid and port 
+	 * If only dpid is used, All links associated for switch are removed
+	 * Useful for port up/down and also switch join/remove events
+	 */ 
+	public void deleteLinks(Long dpid, int port);
+	
+	/*
+	 * Init with Storage conf
+	 */
+	public void init(String conf);
+}
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImplStubs.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImplStubs.java
new file mode 100644
index 0000000..9d61981
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImplStubs.java
@@ -0,0 +1,72 @@
+/**
+ * 
+ */
+package net.floodlightcontroller.linkdiscovery.internal;
+
+import java.util.List;
+
+import net.floodlightcontroller.linkdiscovery.ILinkStorage;
+import net.floodlightcontroller.linkdiscovery.LinkInfo;
+import net.floodlightcontroller.routing.Link;
+
+/**
+ * @author pankaj
+ *
+ */
+public class LinkStorageImplStubs implements ILinkStorage {
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.linkdiscovery.ILinkStorage#update(net.floodlightcontroller.routing.Link, net.floodlightcontroller.core.INetMapStorage.DM_OPERATION)
+	 */
+	@Override
+	public void update(Link link, DM_OPERATION op) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.linkdiscovery.ILinkStorage#update(java.util.List, net.floodlightcontroller.core.INetMapStorage.DM_OPERATION)
+	 */
+	@Override
+	public void update(List<Link> List, DM_OPERATION op) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.linkdiscovery.ILinkStorage#update(net.floodlightcontroller.routing.Link, net.floodlightcontroller.linkdiscovery.LinkInfo, net.floodlightcontroller.core.INetMapStorage.DM_OPERATION)
+	 */
+	@Override
+	public void update(Link link, LinkInfo linkinfo, DM_OPERATION op) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.linkdiscovery.ILinkStorage#getLinks(java.lang.Long, int)
+	 */
+	@Override
+	public List<Link> getLinks(Long dpid, int port) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.linkdiscovery.ILinkStorage#deleteLinks(java.lang.Long, int)
+	 */
+	@Override
+	public void deleteLinks(Long dpid, int port) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see net.floodlightcontroller.linkdiscovery.ILinkStorage#init(java.lang.String)
+	 */
+	@Override
+	public void init(String conf) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
