Avoid interacting with SB if nothing to do
- Workaround for Fujitsu driver not being able to handle
empty operation.
Change-Id: I6c68b893360e30beef707e40d2b619912bb9b257
diff --git a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleDriverProvider.java b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleDriverProvider.java
index 6cf2cf3..1ff649d 100644
--- a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleDriverProvider.java
+++ b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleDriverProvider.java
@@ -134,8 +134,14 @@
ImmutableList<FlowRule> rulesToAdd = toAdd.build();
ImmutableList<FlowRule> rulesToRemove = toRemove.build();
- Collection<FlowRule> added = applyFlowRules(batch.deviceId(), rulesToAdd);
- Collection<FlowRule> removed = removeFlowRules(batch.deviceId(), rulesToRemove);
+ Collection<FlowRule> added = ImmutableList.of();
+ if (!rulesToAdd.isEmpty()) {
+ added = applyFlowRules(batch.deviceId(), rulesToAdd);
+ }
+ Collection<FlowRule> removed = ImmutableList.of();
+ if (!rulesToRemove.isEmpty()) {
+ removed = removeFlowRules(batch.deviceId(), rulesToRemove);
+ }
Set<FlowRule> failedRules = Sets.union(Sets.difference(copyOf(rulesToAdd), copyOf(added)),
Sets.difference(copyOf(rulesToRemove), copyOf(removed)));