diff --git a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java
index 47b5905b11573d5219b0129a081194f37b0e144d..282d44ef13d7321610a7d3abd80d74198d0e6bc0 100644
--- a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java
+++ b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyClusterResource.java
@@ -1,7 +1,7 @@
 package net.floodlightcontroller.core.web;
 
-import net.floodlightcontroller.topology.internal.EventHistoryTopologyCluster;
-import net.floodlightcontroller.topology.internal.TopologyImpl;
+import net.floodlightcontroller.linkdiscovery.internal.EventHistoryTopologyCluster;
+import net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager;
 import net.floodlightcontroller.util.EventHistory;
 
 import org.restlet.resource.Get;
@@ -26,8 +26,8 @@ public class EventHistoryTopologyClusterResource extends ServerResource {
             // Invalid input for event count - use default value
         }
 
-        TopologyImpl topoManager =
-           (TopologyImpl)getContext().getAttributes().get("topology");
+        LinkDiscoveryManager topoManager =
+           (LinkDiscoveryManager)getContext().getAttributes().get("topology");
 
         return new EventHistory<EventHistoryTopologyCluster>(
                                 topoManager.evHistTopologyCluster, count);
diff --git a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java
index 9d92d0a87c188358b581072b397299f2eeabdf15..5e8949277de8bf031244410fb06f7fddb7c59f6f 100644
--- a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java
+++ b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologyLinkResource.java
@@ -1,7 +1,7 @@
 package net.floodlightcontroller.core.web;
 
-import net.floodlightcontroller.topology.internal.EventHistoryTopologyLink;
-import net.floodlightcontroller.topology.internal.TopologyImpl;
+import net.floodlightcontroller.linkdiscovery.internal.EventHistoryTopologyLink;
+import net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager;
 import net.floodlightcontroller.util.EventHistory;
 
 import org.restlet.resource.Get;
@@ -26,8 +26,8 @@ public class EventHistoryTopologyLinkResource extends ServerResource {
             // Invalid input for event count - use default value
         }
 
-        TopologyImpl topoManager =
-           (TopologyImpl)getContext().getAttributes().get("topology");
+        LinkDiscoveryManager topoManager =
+           (LinkDiscoveryManager)getContext().getAttributes().get("topology");
 
         return new EventHistory<EventHistoryTopologyLink>(
                                     topoManager.evHistTopologyLink, count);
diff --git a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java
index 645b37772bf71c44c09dd54ddeaacb93fbe0b69a..683b63fff05332d6a938bb1652596a72b76e10eb 100644
--- a/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java
+++ b/src/main/java/net/floodlightcontroller/core/web/EventHistoryTopologySwitchResource.java
@@ -1,7 +1,7 @@
 package net.floodlightcontroller.core.web;
 
-import net.floodlightcontroller.topology.internal.EventHistoryTopologySwitch;
-import net.floodlightcontroller.topology.internal.TopologyImpl;
+import net.floodlightcontroller.linkdiscovery.internal.EventHistoryTopologySwitch;
+import net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager;
 import net.floodlightcontroller.util.EventHistory;
 
 import org.restlet.resource.Get;
@@ -26,8 +26,8 @@ public class EventHistoryTopologySwitchResource extends ServerResource {
             // Invalid input for event count - use default value
         }
 
-        TopologyImpl topoManager =
-           (TopologyImpl)getContext().getAttributes().get("topology");
+        LinkDiscoveryManager topoManager =
+           (LinkDiscoveryManager)getContext().getAttributes().get("topology");
 
         return new EventHistory<EventHistoryTopologySwitch>(
                                 topoManager.evHistTopologySwitch, count);
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologyClusterJSONSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologyClusterJSONSerializer.java
index 2e6f9fa69f6c17f21e5f1fcd2b92f89c9464e2ee..c571bef59f80001597be3cc11dc6e10b3ba9352d 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologyClusterJSONSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologyClusterJSONSerializer.java
@@ -2,7 +2,7 @@ package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
 
-import net.floodlightcontroller.topology.internal.EventHistoryTopologyCluster;
+import net.floodlightcontroller.linkdiscovery.internal.EventHistoryTopologyCluster;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologyLinkJSONSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologyLinkJSONSerializer.java
index 1621cc48b77bed77232398d972c92b749cb71d5b..1117db9333f1ab341fd6ed5208cda32ce9ab77c3 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologyLinkJSONSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologyLinkJSONSerializer.java
@@ -2,7 +2,7 @@ package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
 
-import net.floodlightcontroller.topology.internal.EventHistoryTopologyLink;
+import net.floodlightcontroller.linkdiscovery.internal.EventHistoryTopologyLink;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologySwitchJSONSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologySwitchJSONSerializer.java
index b4f5e1c5e14bc4ce937cc152fe17a89db2651ec8..fd076bbe9977bf2fa08d346f755bf841f213017b 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologySwitchJSONSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/EventHistoryTopologySwitchJSONSerializer.java
@@ -2,8 +2,8 @@ package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
 
+import net.floodlightcontroller.linkdiscovery.internal.EventHistoryTopologySwitch;
 import net.floodlightcontroller.packet.IPv4;
-import net.floodlightcontroller.topology.internal.EventHistoryTopologySwitch;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/LinkTupleSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/LinkTupleSerializer.java
index 6d4d7e373027e6a89e92aba6296d8b324bec87d5..7392913db89299d5176481e835fe76cfe65f1a0c 100644
--- a/src/main/java/net/floodlightcontroller/core/web/serializers/LinkTupleSerializer.java
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/LinkTupleSerializer.java
@@ -2,7 +2,7 @@ package net.floodlightcontroller.core.web.serializers;
 
 import java.io.IOException;
 
-import net.floodlightcontroller.topology.LinkTuple;
+import net.floodlightcontroller.linkdiscovery.LinkTuple;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/Device.java
index 9d761f92a282dc7e7ff1f10fdb3af602c9cf5e2b..b3d8ade58f6002ecdd421184fd56aef8232374ce 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/Device.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/Device.java
@@ -31,9 +31,9 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import net.floodlightcontroller.core.IOFSwitch;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
 import net.floodlightcontroller.packet.Ethernet;
 import net.floodlightcontroller.packet.IPv4;
-import net.floodlightcontroller.topology.SwitchPortTuple;
 
 import org.openflow.util.HexString;
 
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/DeviceAttachmentPoint.java b/src/main/java/net/floodlightcontroller/devicemanager/DeviceAttachmentPoint.java
index b43812194650f30f008eee45a5b7459dcf7728de..9571c8f3b4f0b3d13a254eb7113b423cfcdb7915 100644
--- a/src/main/java/net/floodlightcontroller/devicemanager/DeviceAttachmentPoint.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/DeviceAttachmentPoint.java
@@ -18,7 +18,7 @@
 package net.floodlightcontroller.devicemanager;
 import java.util.Date;
 
-import net.floodlightcontroller.topology.SwitchPortTuple;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
 
 public class DeviceAttachmentPoint {
     private SwitchPortTuple switchPort;
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
index 71c419627f51f82376bb89741518556275c753fd..f333d5913731acaa0dc556232a444d865288fd4f 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
@@ -55,6 +55,10 @@ import net.floodlightcontroller.devicemanager.DeviceAttachmentPoint;
 import net.floodlightcontroller.devicemanager.DeviceNetworkAddress;
 import net.floodlightcontroller.devicemanager.IDeviceManagerService;
 import net.floodlightcontroller.devicemanager.IDeviceManagerAware;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscovery;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryListener;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryService;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
 import net.floodlightcontroller.packet.ARP;
 import net.floodlightcontroller.packet.DHCP;
 import net.floodlightcontroller.packet.Ethernet;
@@ -66,11 +70,7 @@ import net.floodlightcontroller.storage.IStorageSourceListener;
 import net.floodlightcontroller.storage.IStorageSourceService;
 import net.floodlightcontroller.storage.OperatorPredicate;
 import net.floodlightcontroller.storage.StorageException;
-import net.floodlightcontroller.topology.ILinkDiscovery;
-import net.floodlightcontroller.topology.ILinkDiscoveryService;
-import net.floodlightcontroller.topology.ILinkDiscoveryListener;
 import net.floodlightcontroller.topology.ITopologyService;
-import net.floodlightcontroller.topology.SwitchPortTuple;
 import net.floodlightcontroller.util.EventHistory;
 import net.floodlightcontroller.util.EventHistory.EvAction;
 
diff --git a/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java b/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java
index 5dfc9e5ff0b063c9d73e9d03dfa9e1d53158c915..098b62cc1efe41e3eeac6f076527c1e97c6c6782 100644
--- a/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java
+++ b/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java
@@ -36,13 +36,13 @@ import net.floodlightcontroller.counter.ICounterStoreService;
 import net.floodlightcontroller.devicemanager.Device;
 import net.floodlightcontroller.devicemanager.DeviceAttachmentPoint;
 import net.floodlightcontroller.devicemanager.IDeviceManagerService;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
 import net.floodlightcontroller.packet.Ethernet;
 import net.floodlightcontroller.routing.ForwardingBase;
 import net.floodlightcontroller.routing.IRoutingDecision;
 import net.floodlightcontroller.routing.IRoutingService;
 import net.floodlightcontroller.routing.Route;
 import net.floodlightcontroller.topology.ITopologyService;
-import net.floodlightcontroller.topology.SwitchPortTuple;
 
 import org.openflow.protocol.OFFlowMod;
 import org.openflow.protocol.OFMatch;
diff --git a/src/main/java/net/floodlightcontroller/topology/ILinkDiscovery.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
similarity index 72%
rename from src/main/java/net/floodlightcontroller/topology/ILinkDiscovery.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
index 49220d903926ad6bc8368db6168b3b4f21947afe..c112cce8a4b525b12f6214b1c01b8c068e6e5223 100644
--- a/src/main/java/net/floodlightcontroller/topology/ILinkDiscovery.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscovery.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topology;
+package net.floodlightcontroller.linkdiscovery;
 
 public interface ILinkDiscovery {
     public enum LinkType {
diff --git a/src/main/java/net/floodlightcontroller/topology/ILinkDiscoveryListener.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryListener.java
similarity index 97%
rename from src/main/java/net/floodlightcontroller/topology/ILinkDiscoveryListener.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryListener.java
index bc3bb3664fbc5a1e5f0a39769dd8e2299c1a06e3..ad9ea71498ce8de7ce7907c09259dfbffeeb8ecd 100644
--- a/src/main/java/net/floodlightcontroller/topology/ILinkDiscoveryListener.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryListener.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.floodlightcontroller.topology;
+package net.floodlightcontroller.linkdiscovery;
 
 public interface ILinkDiscoveryListener {
     /**
diff --git a/src/main/java/net/floodlightcontroller/topology/ILinkDiscoveryService.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java
similarity index 97%
rename from src/main/java/net/floodlightcontroller/topology/ILinkDiscoveryService.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java
index f8e93ca6bf8b3b905a8acfeff4dbc216168398d4..cbd440edc24613c29986305c2183f833e499b861 100644
--- a/src/main/java/net/floodlightcontroller/topology/ILinkDiscoveryService.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.floodlightcontroller.topology;
+package net.floodlightcontroller.linkdiscovery;
 
 /**
  *
diff --git a/src/main/java/net/floodlightcontroller/topology/LinkInfo.java b/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java
similarity index 99%
rename from src/main/java/net/floodlightcontroller/topology/LinkInfo.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java
index bae8e670ada8e71c02f25fe06124ff6137c8d216..6421328f45355927bcc4606856b1d2d7e5608370 100644
--- a/src/main/java/net/floodlightcontroller/topology/LinkInfo.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java
@@ -13,7 +13,7 @@
 *    under the License.
 **/
 
-package net.floodlightcontroller.topology;
+package net.floodlightcontroller.linkdiscovery;
 
 import org.openflow.protocol.OFPhysicalPort.OFPortState;
 
diff --git a/src/main/java/net/floodlightcontroller/topology/LinkTuple.java b/src/main/java/net/floodlightcontroller/linkdiscovery/LinkTuple.java
similarity index 98%
rename from src/main/java/net/floodlightcontroller/topology/LinkTuple.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/LinkTuple.java
index 682787feb9f4e6fdbf416a4447911ca2df636789..66c348fd77b9807fb4592199256be0c35e44b57f 100755
--- a/src/main/java/net/floodlightcontroller/topology/LinkTuple.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/LinkTuple.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.floodlightcontroller.topology;
+package net.floodlightcontroller.linkdiscovery;
 
 import net.floodlightcontroller.core.IOFSwitch;
 
diff --git a/src/main/java/net/floodlightcontroller/topology/SwitchPortTuple.java b/src/main/java/net/floodlightcontroller/linkdiscovery/SwitchPortTuple.java
similarity index 98%
rename from src/main/java/net/floodlightcontroller/topology/SwitchPortTuple.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/SwitchPortTuple.java
index 4b3775674c8209fc4b11d7718b58d39ef86cb672..91c374bfe3765c5ccc62227adbdd10f4a261acbc 100755
--- a/src/main/java/net/floodlightcontroller/topology/SwitchPortTuple.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/SwitchPortTuple.java
@@ -18,7 +18,7 @@
 /**
  *
  */
-package net.floodlightcontroller.topology;
+package net.floodlightcontroller.linkdiscovery;
 
 import net.floodlightcontroller.core.IOFSwitch;
 
diff --git a/src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologyCluster.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
similarity index 89%
rename from src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologyCluster.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
index 137af975c373549df281a9c4ad783e687516fe1c..befe82945ce1b8376185927471c7ccacf1fb3eba 100644
--- a/src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologyCluster.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topology.internal;
+package net.floodlightcontroller.linkdiscovery.internal;
 
 /***
  * Topology Cluster merge/split event history related classes and members
diff --git a/src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologyLink.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
similarity index 90%
rename from src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologyLink.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
index ca82247da945ce85caa179d7214408094f7bdb73..8e43b7a52eb390ab049671a14af3a1ff8dfc8b1a 100644
--- a/src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologyLink.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topology.internal;
+package net.floodlightcontroller.linkdiscovery.internal;
 
 /***
  * Topology link up/down event history related classes and members
diff --git a/src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologySwitch.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
similarity index 88%
rename from src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologySwitch.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
index b220cc6f348da560666061e492ebefe7a38e26b7..17668778570920afdbc061ae55c5e5364a50e24c 100644
--- a/src/main/java/net/floodlightcontroller/topology/internal/EventHistoryTopologySwitch.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topology.internal;
+package net.floodlightcontroller.linkdiscovery.internal;
 
 /***
  * Topology Switch event history related classes and members
diff --git a/src/main/java/net/floodlightcontroller/topology/internal/TopologyImpl.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
similarity index 99%
rename from src/main/java/net/floodlightcontroller/topology/internal/TopologyImpl.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
index b3147612fcae76e7083d8e50548896daacfd1feb..d337a4e68b34a5d9a99caff95ab2d79e4741a717 100644
--- a/src/main/java/net/floodlightcontroller/topology/internal/TopologyImpl.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.floodlightcontroller.topology.internal;
+package net.floodlightcontroller.linkdiscovery.internal;
 
 import java.io.IOException;
 import java.net.InetAddress;
@@ -49,6 +49,13 @@ import net.floodlightcontroller.core.module.FloodlightModuleException;
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.core.util.SingletonTask;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscovery;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryListener;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryService;
+import net.floodlightcontroller.linkdiscovery.LinkInfo;
+import net.floodlightcontroller.linkdiscovery.LinkTuple;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
+import net.floodlightcontroller.linkdiscovery.web.TopologyWebRoutable;
 import net.floodlightcontroller.packet.BPDU;
 import net.floodlightcontroller.packet.Ethernet;
 import net.floodlightcontroller.packet.IPv4;
@@ -61,14 +68,7 @@ import net.floodlightcontroller.storage.IStorageSourceService;
 import net.floodlightcontroller.storage.IStorageSourceListener;
 import net.floodlightcontroller.storage.OperatorPredicate;
 import net.floodlightcontroller.storage.StorageException;
-import net.floodlightcontroller.topology.ILinkDiscovery;
-import net.floodlightcontroller.topology.ILinkDiscoveryService;
-import net.floodlightcontroller.topology.ILinkDiscoveryListener;
 import net.floodlightcontroller.topology.ITopologyListener;
-import net.floodlightcontroller.topology.LinkInfo;
-import net.floodlightcontroller.topology.LinkTuple;
-import net.floodlightcontroller.topology.SwitchPortTuple;
-import net.floodlightcontroller.topology.web.TopologyWebRoutable;
 import net.floodlightcontroller.util.EventHistory;
 import net.floodlightcontroller.util.EventHistory.EvAction;
 
@@ -111,11 +111,11 @@ import org.slf4j.LoggerFactory;
  *
  * @author David Erickson (daviderickson@cs.stanford.edu)
  */
-public class TopologyImpl
+public class LinkDiscoveryManager
         implements IOFMessageListener, IOFSwitchListener, 
                    IStorageSourceListener, ILinkDiscoveryService,
                    IFloodlightModule, IInfoProvider {
-    protected static Logger log = LoggerFactory.getLogger(TopologyImpl.class);
+    protected static Logger log = LoggerFactory.getLogger(LinkDiscoveryManager.class);
 
     // Names of table/fields for links in the storage API
     private static final String LINK_TABLE_NAME = "controller_link";
diff --git a/src/main/java/net/floodlightcontroller/topology/web/LinksResource.java b/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinksResource.java
similarity index 78%
rename from src/main/java/net/floodlightcontroller/topology/web/LinksResource.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/web/LinksResource.java
index 1d7c16663f549d4f3e29cb3d73b56ca8170f162a..a843db59dc8336e4650e5ec8fc7279407b1171f4 100644
--- a/src/main/java/net/floodlightcontroller/topology/web/LinksResource.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/web/LinksResource.java
@@ -1,10 +1,10 @@
-package net.floodlightcontroller.topology.web;
+package net.floodlightcontroller.linkdiscovery.web;
 
 import java.util.HashSet;
 import java.util.Set;
 
-import net.floodlightcontroller.topology.ILinkDiscoveryService;
-import net.floodlightcontroller.topology.LinkTuple;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryService;
+import net.floodlightcontroller.linkdiscovery.LinkTuple;
 
 import org.restlet.resource.Get;
 import org.restlet.resource.ServerResource;
diff --git a/src/main/java/net/floodlightcontroller/topology/web/TopologyWebRoutable.java b/src/main/java/net/floodlightcontroller/linkdiscovery/web/TopologyWebRoutable.java
similarity index 93%
rename from src/main/java/net/floodlightcontroller/topology/web/TopologyWebRoutable.java
rename to src/main/java/net/floodlightcontroller/linkdiscovery/web/TopologyWebRoutable.java
index fa918c450dbe250d973861db226afa8f26f5ac06..56adc3c64a54eef5c1a822f23341330185a3969e 100644
--- a/src/main/java/net/floodlightcontroller/topology/web/TopologyWebRoutable.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/web/TopologyWebRoutable.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topology.web;
+package net.floodlightcontroller.linkdiscovery.web;
 
 import org.restlet.Context;
 import org.restlet.Restlet;
diff --git a/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java b/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java
index bbb2e40a6bb0d36d194c7038eddf844a2b0e6025..707dcbbd2ba6d255944b9c4bd02bf1647b43096c 100644
--- a/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java
+++ b/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java
@@ -33,13 +33,13 @@ import net.floodlightcontroller.devicemanager.DeviceAttachmentPoint;
 import net.floodlightcontroller.devicemanager.DeviceNetworkAddress;
 import net.floodlightcontroller.devicemanager.IDeviceManagerService;
 import net.floodlightcontroller.devicemanager.IDeviceManagerAware;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
 import net.floodlightcontroller.packet.Ethernet;
 import net.floodlightcontroller.routing.IRoutingService;
 import net.floodlightcontroller.routing.IRoutingDecision;
 import net.floodlightcontroller.routing.Link;
 import net.floodlightcontroller.routing.Route;
 import net.floodlightcontroller.topology.ITopologyService;
-import net.floodlightcontroller.topology.SwitchPortTuple;
 
 import org.openflow.protocol.OFFlowMod;
 import org.openflow.protocol.OFMatch;
diff --git a/src/main/java/net/floodlightcontroller/routing/IRoutingDecision.java b/src/main/java/net/floodlightcontroller/routing/IRoutingDecision.java
index 47c723f396142f5606c9d7ca959b8357520e284a..0fbe2ae3453255b019b9d1ccd3ec777e4f4798a5 100644
--- a/src/main/java/net/floodlightcontroller/routing/IRoutingDecision.java
+++ b/src/main/java/net/floodlightcontroller/routing/IRoutingDecision.java
@@ -22,7 +22,7 @@ import java.util.List;
 import net.floodlightcontroller.core.FloodlightContext;
 import net.floodlightcontroller.core.FloodlightContextStore;
 import net.floodlightcontroller.devicemanager.Device;
-import net.floodlightcontroller.topology.SwitchPortTuple;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
 
 public interface IRoutingDecision {
     public enum RoutingAction {
diff --git a/src/main/java/net/floodlightcontroller/topologymanager/BroadcastDomain.java b/src/main/java/net/floodlightcontroller/topology/BroadcastDomain.java
similarity index 98%
rename from src/main/java/net/floodlightcontroller/topologymanager/BroadcastDomain.java
rename to src/main/java/net/floodlightcontroller/topology/BroadcastDomain.java
index 6e3e879b3e7a5972beced449549ff7351b6ebc49..f592b50468c89b6ae3b25125c599cae5d86cb41b 100644
--- a/src/main/java/net/floodlightcontroller/topologymanager/BroadcastDomain.java
+++ b/src/main/java/net/floodlightcontroller/topology/BroadcastDomain.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 import java.util.HashMap;
 import java.util.HashSet;
diff --git a/src/main/java/net/floodlightcontroller/topologymanager/Cluster.java b/src/main/java/net/floodlightcontroller/topology/Cluster.java
similarity index 97%
rename from src/main/java/net/floodlightcontroller/topologymanager/Cluster.java
rename to src/main/java/net/floodlightcontroller/topology/Cluster.java
index 3bc5e6c7c5e34ee8f000d34d68468cfc6fcf8fca..606b07914743a1d3cfddf1ab5e9c89f6f32367a0 100644
--- a/src/main/java/net/floodlightcontroller/topologymanager/Cluster.java
+++ b/src/main/java/net/floodlightcontroller/topology/Cluster.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 import java.util.HashMap;
 import java.util.HashSet;
diff --git a/src/main/java/net/floodlightcontroller/topologymanager/NodePair.java b/src/main/java/net/floodlightcontroller/topology/NodePair.java
similarity index 95%
rename from src/main/java/net/floodlightcontroller/topologymanager/NodePair.java
rename to src/main/java/net/floodlightcontroller/topology/NodePair.java
index a93622dbcc12083d35785c98d27945145f28baf1..ff954a01aafe99975ece85a38ef0c690864c9a53 100644
--- a/src/main/java/net/floodlightcontroller/topologymanager/NodePair.java
+++ b/src/main/java/net/floodlightcontroller/topology/NodePair.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 public class NodePair {
     private long min;
diff --git a/src/main/java/net/floodlightcontroller/topologymanager/NodePortTuple.java b/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
similarity index 96%
rename from src/main/java/net/floodlightcontroller/topologymanager/NodePortTuple.java
rename to src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
index e55d90a09cdb2cb9dddc09cfc0358f427e6d76c6..67cebeaaf1f04ac8d5b67d9b4e4cec6c63777648 100644
--- a/src/main/java/net/floodlightcontroller/topologymanager/NodePortTuple.java
+++ b/src/main/java/net/floodlightcontroller/topology/NodePortTuple.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 public class NodePortTuple {
     protected long nodeId;
diff --git a/src/main/java/net/floodlightcontroller/topologymanager/OrderedNodePair.java b/src/main/java/net/floodlightcontroller/topology/OrderedNodePair.java
similarity index 95%
rename from src/main/java/net/floodlightcontroller/topologymanager/OrderedNodePair.java
rename to src/main/java/net/floodlightcontroller/topology/OrderedNodePair.java
index 6fdb9ffd81dd47092b9cc94ce805a4487d2d5d58..af9e677c45d59222c351e7d1533be7ddda19b002 100644
--- a/src/main/java/net/floodlightcontroller/topologymanager/OrderedNodePair.java
+++ b/src/main/java/net/floodlightcontroller/topology/OrderedNodePair.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 public class OrderedNodePair {
     private long src;
diff --git a/src/main/java/net/floodlightcontroller/topologymanager/TopologyInstance.java b/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java
similarity index 99%
rename from src/main/java/net/floodlightcontroller/topologymanager/TopologyInstance.java
rename to src/main/java/net/floodlightcontroller/topology/TopologyInstance.java
index cc6edd53c4777e13ad1a1891b3f4873c481f87b9..4b56bc38d8705577136d2aeb6856fbc4d05a69c6 100644
--- a/src/main/java/net/floodlightcontroller/topologymanager/TopologyInstance.java
+++ b/src/main/java/net/floodlightcontroller/topology/TopologyInstance.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 import java.util.HashMap;
 import java.util.HashSet;
diff --git a/src/main/java/net/floodlightcontroller/topologymanager/TopologyManager.java b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
similarity index 96%
rename from src/main/java/net/floodlightcontroller/topologymanager/TopologyManager.java
rename to src/main/java/net/floodlightcontroller/topology/TopologyManager.java
index 7a13f32e66c30482976830ad4e759e0c46894498..0fdd8b937b45956aa83f057c3534a37ae8b875c2 100644
--- a/src/main/java/net/floodlightcontroller/topologymanager/TopologyManager.java
+++ b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -11,15 +11,13 @@ import net.floodlightcontroller.core.module.FloodlightModuleContext;
 import net.floodlightcontroller.core.module.FloodlightModuleException;
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryListener;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryService;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscovery.LinkType;
 import net.floodlightcontroller.routing.BroadcastTree;
 import net.floodlightcontroller.routing.IRoutingService;
 import net.floodlightcontroller.routing.Link;
 import net.floodlightcontroller.routing.Route;
-import net.floodlightcontroller.topology.ILinkDiscovery.LinkType;
-import net.floodlightcontroller.topology.ILinkDiscoveryListener;
-import net.floodlightcontroller.topology.ILinkDiscoveryService;
-import net.floodlightcontroller.topology.ITopologyListener;
-import net.floodlightcontroller.topology.ITopologyService;
 
 
 import org.openflow.protocol.OFPhysicalPort.OFPortState;
diff --git a/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
index 044aeafc440d7783596c7e16188e9221817ff978..b28500aa118ad8efae001c3444f0d8454c5df428 100644
--- a/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
+++ b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
@@ -1,8 +1,8 @@
 net.floodlightcontroller.core.CoreModule
 net.floodlightcontroller.storage.memory.MemoryStorageSource
 net.floodlightcontroller.devicemanager.internal.DeviceManagerImpl
-net.floodlightcontroller.topology.internal.TopologyImpl
-net.floodlightcontroller.topologymanager.TopologyManager
+net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager
+net.floodlightcontroller.topology.TopologyManager
 net.floodlightcontroller.forwarding.Forwarding
 net.floodlightcontroller.core.OFMessageFilterManager
 net.floodlightcontroller.staticflowentry.StaticFlowEntryPusher
diff --git a/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java b/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
index f64faaf7484b765ec6a9e3fec8b7819d202ee024..229e77dc5dadedd7ff0384f6739a75b2cd48469d 100644
--- a/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
+++ b/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
@@ -35,6 +35,7 @@ import net.floodlightcontroller.core.test.MockFloodlightProvider;
 import net.floodlightcontroller.devicemanager.Device;
 import net.floodlightcontroller.devicemanager.DeviceAttachmentPoint;
 import net.floodlightcontroller.devicemanager.IDeviceManagerService;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
 import net.floodlightcontroller.packet.ARP;
 import net.floodlightcontroller.packet.Ethernet;
 import net.floodlightcontroller.packet.IPacket;
@@ -45,7 +46,6 @@ import net.floodlightcontroller.storage.IStorageSourceService;
 import net.floodlightcontroller.storage.memory.MemoryStorageSource;
 import net.floodlightcontroller.test.FloodlightTestCase;
 import net.floodlightcontroller.topology.ITopologyService;
-import net.floodlightcontroller.topology.SwitchPortTuple;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java b/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
index b2199fc92d72500c1c86193795668263f3ed3d57..3b7e2f8301f0727da9327cd8f4ab26ec8b50b08a 100644
--- a/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
+++ b/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
@@ -38,6 +38,7 @@ import net.floodlightcontroller.core.test.MockFloodlightProvider;
 import net.floodlightcontroller.counter.CounterStore;
 import net.floodlightcontroller.devicemanager.Device;
 import net.floodlightcontroller.devicemanager.IDeviceManagerService;
+import net.floodlightcontroller.linkdiscovery.SwitchPortTuple;
 import net.floodlightcontroller.packet.Data;
 import net.floodlightcontroller.packet.Ethernet;
 import net.floodlightcontroller.packet.IPacket;
@@ -48,7 +49,6 @@ import net.floodlightcontroller.routing.Link;
 import net.floodlightcontroller.routing.Route;
 import net.floodlightcontroller.test.FloodlightTestCase;
 import net.floodlightcontroller.topology.ITopologyService;
-import net.floodlightcontroller.topology.SwitchPortTuple;
 import net.floodlightcontroller.forwarding.Forwarding;
 
 import org.easymock.Capture;
diff --git a/src/test/java/net/floodlightcontroller/topology/internal/TopologyImplTest.java b/src/test/java/net/floodlightcontroller/linkdiscovery/internal/TopologyImplTest.java
similarity index 93%
rename from src/test/java/net/floodlightcontroller/topology/internal/TopologyImplTest.java
rename to src/test/java/net/floodlightcontroller/linkdiscovery/internal/TopologyImplTest.java
index a31efae89696ab2eb629e6e1d170ab949e36b31e..02e342add375f188ccf39210275f7bc126565ed2 100644
--- a/src/test/java/net/floodlightcontroller/topology/internal/TopologyImplTest.java
+++ b/src/test/java/net/floodlightcontroller/linkdiscovery/internal/TopologyImplTest.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.floodlightcontroller.topology.internal;
+package net.floodlightcontroller.linkdiscovery.internal;
 
 import static org.easymock.EasyMock.*;
 
@@ -31,17 +31,18 @@ import org.slf4j.LoggerFactory;
 import net.floodlightcontroller.core.IFloodlightProviderService;
 import net.floodlightcontroller.core.IOFSwitch;
 import net.floodlightcontroller.core.module.FloodlightModuleContext;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryListener;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscoveryService;
+import net.floodlightcontroller.linkdiscovery.LinkInfo;
+import net.floodlightcontroller.linkdiscovery.LinkTuple;
+import net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager;
 import net.floodlightcontroller.routing.IRoutingService;
 import net.floodlightcontroller.storage.IStorageSourceService;
 import net.floodlightcontroller.storage.memory.MemoryStorageSource;
 import net.floodlightcontroller.test.FloodlightTestCase;
-import net.floodlightcontroller.topology.ILinkDiscoveryListener;
-import net.floodlightcontroller.topology.ILinkDiscoveryService;
 import net.floodlightcontroller.topology.ITopologyListener;
 import net.floodlightcontroller.topology.ITopologyService;
-import net.floodlightcontroller.topology.LinkInfo;
-import net.floodlightcontroller.topology.LinkTuple;
-import net.floodlightcontroller.topologymanager.TopologyManager;
+import net.floodlightcontroller.topology.TopologyManager;
 
 /**
  *
@@ -49,10 +50,10 @@ import net.floodlightcontroller.topologymanager.TopologyManager;
  */
 public class TopologyImplTest extends FloodlightTestCase {
 
-    private TopologyImpl topology;
+    private LinkDiscoveryManager topology;
     protected static Logger log = LoggerFactory.getLogger(TopologyImplTest.class);
     
-    public TopologyImpl getTopology() {
+    public LinkDiscoveryManager getTopology() {
         return topology;
     }
 
@@ -66,7 +67,7 @@ public class TopologyImplTest extends FloodlightTestCase {
     public void setUp() throws Exception {
         super.setUp();
         FloodlightModuleContext cntx = new FloodlightModuleContext();
-        topology = new TopologyImpl();
+        topology = new LinkDiscoveryManager();
         TopologyManager routingEngine = new TopologyManager();
         topology.topologyAware = new ArrayList<ITopologyListener>();
         topology.linkDiscoveryAware = new ArrayList<ILinkDiscoveryListener>();
@@ -83,7 +84,7 @@ public class TopologyImplTest extends FloodlightTestCase {
 
     @Test
     public void testAddOrUpdateLink() throws Exception {
-        TopologyImpl topology = getTopology();
+        LinkDiscoveryManager topology = getTopology();
         IOFSwitch sw1 = createMockSwitch(1L);
         IOFSwitch sw2 = createMockSwitch(2L);
         replay(sw1, sw2);
@@ -104,7 +105,7 @@ public class TopologyImplTest extends FloodlightTestCase {
 
     @Test
     public void testDeleteLink() throws Exception {
-        TopologyImpl topology = getTopology();
+        LinkDiscoveryManager topology = getTopology();
         IOFSwitch sw1 = createMockSwitch(1L);
         IOFSwitch sw2 = createMockSwitch(2L);
         replay(sw1, sw2);
@@ -124,7 +125,7 @@ public class TopologyImplTest extends FloodlightTestCase {
 
     @Test
     public void testAddOrUpdateLinkToSelf() throws Exception {
-        TopologyImpl topology = getTopology();
+        LinkDiscoveryManager topology = getTopology();
         IOFSwitch sw1 = createMockSwitch(1L);
         IOFSwitch sw2 = createMockSwitch(2L);
         replay(sw1, sw2);
@@ -145,7 +146,7 @@ public class TopologyImplTest extends FloodlightTestCase {
 
     @Test
     public void testDeleteLinkToSelf() throws Exception {
-        TopologyImpl topology = getTopology();
+        LinkDiscoveryManager topology = getTopology();
         IOFSwitch sw1 = createMockSwitch(1L);
         replay(sw1);
         LinkTuple lt = new LinkTuple(sw1, 2, sw1, 3);
@@ -164,7 +165,7 @@ public class TopologyImplTest extends FloodlightTestCase {
 
     @Test
     public void testRemovedSwitch() {
-        TopologyImpl topology = getTopology();
+        LinkDiscoveryManager topology = getTopology();
         IOFSwitch sw1 = createMockSwitch(1L);
         IOFSwitch sw2 = createMockSwitch(2L);
         replay(sw1, sw2);
@@ -187,7 +188,7 @@ public class TopologyImplTest extends FloodlightTestCase {
 
     @Test
     public void testRemovedSwitchSelf() {
-        TopologyImpl topology = getTopology();
+        LinkDiscoveryManager topology = getTopology();
         IOFSwitch sw1 = createMockSwitch(1L);
         replay(sw1);
         LinkTuple lt = new LinkTuple(sw1, 2, sw1, 3);
@@ -208,7 +209,7 @@ public class TopologyImplTest extends FloodlightTestCase {
 
     @Test
     public void testAddUpdateLinks() throws Exception {
-        TopologyImpl topology = getTopology();
+        LinkDiscoveryManager topology = getTopology();
         IOFSwitch sw1 = createMockSwitch(1L);
         IOFSwitch sw2 = createMockSwitch(2L);
         //expect(topology.getSwitchClusterId(1L)).andReturn(1L).anyTimes();
diff --git a/src/test/java/net/floodlightcontroller/topologymanager/TopologyInstanceTest.java b/src/test/java/net/floodlightcontroller/topology/TopologyInstanceTest.java
similarity index 97%
rename from src/test/java/net/floodlightcontroller/topologymanager/TopologyInstanceTest.java
rename to src/test/java/net/floodlightcontroller/topology/TopologyInstanceTest.java
index 4b20e33b601640e01cbd2170cc6511a35b348aff..36dfb2ec15b3053eddb3c9a07387f44a7761fbcf 100644
--- a/src/test/java/net/floodlightcontroller/topologymanager/TopologyInstanceTest.java
+++ b/src/test/java/net/floodlightcontroller/topology/TopologyInstanceTest.java
@@ -1,4 +1,4 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 import static org.junit.Assert.*;
 
@@ -9,7 +9,10 @@ import java.util.List;
 import java.util.Set;
 
 import net.floodlightcontroller.core.module.FloodlightModuleContext;
-import net.floodlightcontroller.topology.ILinkDiscovery;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscovery;
+import net.floodlightcontroller.topology.NodePortTuple;
+import net.floodlightcontroller.topology.TopologyInstance;
+import net.floodlightcontroller.topology.TopologyManager;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/src/test/java/net/floodlightcontroller/topologymanager/TopologyManagerTest.java b/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
similarity index 97%
rename from src/test/java/net/floodlightcontroller/topologymanager/TopologyManagerTest.java
rename to src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
index 40d053296b7e773cef84147ec709c3d368df0341..d354a6d3962b0a6dff38ba486bdeecbcc04c1968 100644
--- a/src/test/java/net/floodlightcontroller/topologymanager/TopologyManagerTest.java
+++ b/src/test/java/net/floodlightcontroller/topology/TopologyManagerTest.java
@@ -1,9 +1,10 @@
-package net.floodlightcontroller.topologymanager;
+package net.floodlightcontroller.topology;
 
 import static org.junit.Assert.*;
 
 import net.floodlightcontroller.core.module.FloodlightModuleContext;
-import net.floodlightcontroller.topology.ILinkDiscovery;
+import net.floodlightcontroller.linkdiscovery.ILinkDiscovery;
+import net.floodlightcontroller.topology.TopologyManager;
 
 import org.junit.Before;
 import org.junit.Test;