Updating Intent Manager to deal with failures.
Added ids to Flow batch futures.
Adding some basic unit tests for IntentManger
Adding failedIds to the completedOperation in FlowRuleManager
Change-Id: I7645cead193299f70d319d254cd1e82d96909e7b
diff --git a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowModBuilder.java b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowModBuilder.java
index cc33f20..793c9f3 100644
--- a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowModBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowModBuilder.java
@@ -53,6 +53,8 @@
import org.projectfloodlight.openflow.types.VlanVid;
import org.slf4j.Logger;
+import java.util.Optional;
+
/**
* Builder for OpenFlow flow mods based on FlowRules.
*/
@@ -63,6 +65,7 @@
private final OFFactory factory;
private final FlowRule flowRule;
private final TrafficSelector selector;
+ protected final Long xid;
/**
* Creates a new flow mod builder.
@@ -71,12 +74,13 @@
* @param factory the OpenFlow factory to use to build the flow mod
* @return the new flow mod builder
*/
- public static FlowModBuilder builder(FlowRule flowRule, OFFactory factory) {
+ public static FlowModBuilder builder(FlowRule flowRule,
+ OFFactory factory, Optional<Long> xid) {
switch (factory.getVersion()) {
case OF_10:
- return new FlowModBuilderVer10(flowRule, factory);
+ return new FlowModBuilderVer10(flowRule, factory, xid);
case OF_13:
- return new FlowModBuilderVer13(flowRule, factory);
+ return new FlowModBuilderVer13(flowRule, factory, xid);
default:
throw new UnsupportedOperationException(
"No flow mod builder for protocol version " + factory.getVersion());
@@ -89,10 +93,12 @@
* @param flowRule the flow rule to transform into a flow mod
* @param factory the OpenFlow factory to use to build the flow mod
*/
- protected FlowModBuilder(FlowRule flowRule, OFFactory factory) {
+ protected FlowModBuilder(FlowRule flowRule, OFFactory factory, Optional<Long> xid) {
this.factory = factory;
this.flowRule = flowRule;
this.selector = flowRule.selector();
+ this.xid = xid.orElse((long) 0);
+
}
/**