diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java index 1ad6f4320866479f5f0ef3dcfb1001d3ef9e3c86..3773efd713b992755e093bd50dfdaf85317114a0 100644 --- a/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java +++ b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java @@ -40,6 +40,13 @@ public interface ILinkDiscoveryService extends IFloodlightService { */ public Map<Link, LinkInfo> getLinks(); + /** + * Retrieves the link info for a given link + * @param link link for which the link info should be returned + * @return the link info for the given link + */ + public LinkInfo getLinkInfo(Link link); + /** * Returns link type of a given link * @param info diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java b/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java index a816d47ab11d9095d8356b48f79ae481e80f4684..0230b3bbd31f8cb47581ff83f6b79f4632386560 100644 --- a/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java +++ b/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java @@ -40,6 +40,12 @@ public class LinkInfo { this.lastBddpReceivedTime = null; } + public LinkInfo(LinkInfo fromLinkInfo) { + this.firstSeenTime = fromLinkInfo.getFirstSeenTime(); + this.lastLldpReceivedTime = fromLinkInfo.getUnicastValidTime(); + this.lastBddpReceivedTime = fromLinkInfo.getMulticastValidTime(); + } + protected Long firstSeenTime; protected Long lastLldpReceivedTime; /* Standard LLLDP received time */ protected Long lastBddpReceivedTime; /* Modified LLDP received time */ diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java index 78bec78e8409864c0ac2317ec41b4ce118f985a2..6ddce3885ff7566f78b628aab02b84154603ca46 100644 --- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java +++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java @@ -1,4 +1,4 @@ -/** +floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/LinkInfo.java/** * Copyright 2011, Big Switch Networks, Inc. * Originally created by David Erickson, Stanford University * @@ -508,6 +508,18 @@ public class LinkDiscoveryManager implements IOFMessageListener, return result; } + @Override + public LinkInfo getLinkInfo(Link link) { + lock.readLock().lock(); + LinkInfo linkInfo = links.get(link); + LinkInfo retLinkInfo = null; + if (linkInfo != null) { + retLinkInfo = new LinkInfo(linkInfo); + } + lock.readLock().unlock(); + return retLinkInfo; + } + @Override public String getName() { return MODULE_NAME;