Do not collect flow and port stats if unsupported
Change-Id: I8dd175803c64e2cafa57b7cbf8b9c268a6391739
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
index ef013b59..8ee8cb0 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
@@ -243,16 +243,18 @@
if (sw == null) {
return;
}
- if (adaptiveFlowSampling) {
- // NewAdaptiveFlowStatsCollector Constructor
- NewAdaptiveFlowStatsCollector fsc =
- new NewAdaptiveFlowStatsCollector(driverService, sw, flowPollFrequency);
- stopCollectorIfNeeded(afsCollectors.put(new Dpid(sw.getId()), fsc));
- fsc.start();
- } else {
- FlowStatsCollector fsc = new FlowStatsCollector(timer, sw, flowPollFrequency);
- stopCollectorIfNeeded(simpleCollectors.put(new Dpid(sw.getId()), fsc));
- fsc.start();
+ if (sw.features().getCapabilities().contains(OFCapabilities.FLOW_STATS)) {
+ if (adaptiveFlowSampling) {
+ // NewAdaptiveFlowStatsCollector Constructor
+ NewAdaptiveFlowStatsCollector fsc =
+ new NewAdaptiveFlowStatsCollector(driverService, sw, flowPollFrequency);
+ stopCollectorIfNeeded(afsCollectors.put(new Dpid(sw.getId()), fsc));
+ fsc.start();
+ } else {
+ FlowStatsCollector fsc = new FlowStatsCollector(timer, sw, flowPollFrequency);
+ stopCollectorIfNeeded(simpleCollectors.put(new Dpid(sw.getId()), fsc));
+ fsc.start();
+ }
}
if (sw.features().getCapabilities().contains(OFCapabilities.TABLE_STATS)) {
TableStatisticsCollector tsc = new TableStatisticsCollector(timer, sw, flowPollFrequency);