From 7db90b541184b41873e10beaaa457d8812e8631e Mon Sep 17 00:00:00 2001 From: Vishnu Emmadi <vishnu.emmadi@bigswitch.com> Date: Wed, 12 Jun 2013 18:37:20 -0700 Subject: [PATCH] Updated show controller-node <> summary to include switches, hosts, tenants & virtual routers --- .../core/internal/Controller.java | 14 +++++++++++++- .../devicemanager/internal/DeviceManagerImpl.java | 1 + .../internal/LinkDiscoveryManager.java | 14 ++++++++++---- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java index 9f2d5ded1..6bfd413d3 100644 --- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java +++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java @@ -126,7 +126,7 @@ import com.bigswitch.floodlight.vendor.OFVendorActions; * The main controller class. Handles all setup and network listeners */ public class Controller implements IFloodlightProviderService, - IStorageSourceListener { + IStorageSourceListener, IInfoProvider { protected static final Logger log = LoggerFactory.getLogger(Controller.class); protected static final INotificationManager notifier = @@ -2361,6 +2361,8 @@ public class Controller implements IFloodlightProviderService, throw new FloodlightModuleException(e.getMessage()); } + addInfoProvider("summary", this); + registerControllerDebugEvents(); } @@ -2703,4 +2705,14 @@ public class Controller implements IFloodlightProviderService, IStoreListener<Long> getStoreListener() { return this.switchManager; } + + @Override + public Map<String, Object> getInfo(String type) { + if (!"summary".equals(type)) return null; + + Map<String, Object> info = new HashMap<String, Object>(); + + info.put("# Switches", this.getAllSwitchDpids().size()); + return info; + } } diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java index ddc4e77fd..5223fb6ed 100755 --- a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java +++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java @@ -899,6 +899,7 @@ IFlowReconcileListener, IInfoProvider { } catch (SyncException e) { throw new FloodlightModuleException("Error while setting up sync service", e); } + floodlightProvider.addInfoProvider("summary", this); } private void registerDeviceManagerDebugCounters() throws FloodlightModuleException { diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java index 6bf90514d..fe9be26b1 100644 --- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java +++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java @@ -2261,10 +2261,16 @@ public class LinkDiscoveryManager implements IOFMessageListener, Map<String, Object> info = new HashMap<String, Object>(); - int num_links = 0; - for (Set<Link> links : switchLinks.values()) - num_links += links.size(); - info.put("# inter-switch links", num_links / 2); + int numDirectLinks = 0; + for (Set<Link> links : switchLinks.values()) { + for (Link link : links) { + LinkInfo linkInfo = this.getLinkInfo(link); + if (linkInfo.getLinkType() == LinkType.DIRECT_LINK) { + numDirectLinks++; + } + } + } + info.put("# inter-switch links", numDirectLinks / 2); info.put("# quarantine ports", quarantineQueue.size()); return info; } -- GitLab