From 774cd0b23e9257189a75adecc3226483f3d9128e Mon Sep 17 00:00:00 2001 From: Vishnu Emmadi <vishnu.emmadi@bigswitch.com> Date: Mon, 27 May 2013 14:14:44 -0700 Subject: [PATCH] BVS-447 Flow Path Visualization Implemented backend for the REST API to retrieve the flow path between a pair of hosts --- .../linkdiscovery/ILinkDiscoveryService.java | 7 +++++++ .../linkdiscovery/LinkInfo.java | 6 ++++++ .../internal/LinkDiscoveryManager.java | 14 +++++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java b/src/main/java/net/floodlightcontroller/linkdiscovery/ILinkDiscoveryService.java index 1ad6f4320..3773efd71 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 a816d47ab..0230b3bbd 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 78bec78e8..6ddce3885 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; -- GitLab