functional stats service
Change-Id: I90de3aa5d7721db8ef6a154e122af8b446243f60
diff --git a/providers/lldp/src/main/java/org/onlab/onos/provider/lldp/impl/LinkDiscovery.java b/providers/lldp/src/main/java/org/onlab/onos/provider/lldp/impl/LinkDiscovery.java
index 95cd619..bf4fee0 100644
--- a/providers/lldp/src/main/java/org/onlab/onos/provider/lldp/impl/LinkDiscovery.java
+++ b/providers/lldp/src/main/java/org/onlab/onos/provider/lldp/impl/LinkDiscovery.java
@@ -16,6 +16,7 @@
package org.onlab.onos.provider.lldp.impl;
+import static com.google.common.base.Preconditions.checkNotNull;
import static org.slf4j.LoggerFactory.getLogger;
import java.nio.ByteBuffer;
@@ -95,11 +96,13 @@
*/
public LinkDiscovery(Device device, PacketService pktService,
MastershipService masterService, LinkProviderService providerService, Boolean... useBDDP) {
+
this.device = device;
this.probeRate = 3000;
this.linkProvider = providerService;
this.pktService = pktService;
- this.mastershipService = masterService;
+
+ this.mastershipService = checkNotNull(masterService, "WTF!");
this.slowPorts = Collections.synchronizedSet(new HashSet<Long>());
this.fastPorts = Collections.synchronizedSet(new HashSet<Long>());
this.portProbeCount = new HashMap<>();
@@ -344,6 +347,12 @@
}
private void sendProbes(Long portNumber) {
+ if (device == null) {
+ log.warn("CRAZY SHIT");
+ }
+ if (mastershipService == null) {
+ log.warn("INSANE");
+ }
if (device.type() != Device.Type.ROADM &&
mastershipService.getLocalRole(this.device.id()) ==
MastershipRole.MASTER) {
diff --git a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
index 54265ba..4a21add 100644
--- a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
+++ b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
@@ -103,6 +103,8 @@
private final Map<Long, InstallationFuture> pendingFMs =
new ConcurrentHashMap<Long, InstallationFuture>();
+ private final Map<Dpid, FlowStatsCollector> collectors = Maps.newHashMap();
+
/**
* Creates an OpenFlow host provider.
*/
@@ -115,6 +117,14 @@
providerService = providerRegistry.register(this);
controller.addListener(listener);
controller.addEventListener(listener);
+
+ for (OpenFlowSwitch sw : controller.getSwitches()) {
+ FlowStatsCollector fsc = new FlowStatsCollector(sw, POLL_INTERVAL);
+ fsc.start();
+ collectors.put(new Dpid(sw.getId()), fsc);
+ }
+
+
log.info("Started");
}
@@ -213,7 +223,7 @@
private class InternalFlowProvider
implements OpenFlowSwitchListener, OpenFlowEventListener {
- private final Map<Dpid, FlowStatsCollector> collectors = Maps.newHashMap();
+
private final Multimap<DeviceId, FlowEntry> completeEntries =
ArrayListMultimap.create();