ONOS-2513 Fix entire MP2SP intent failing on partial connectivity loss
* Added PartialFailureContraint to MP2SP intent to allow partial connectivity.
This means the intent remains installed as long as at least one ingress point
can reach the egress point.
* Intents with this constraint are recompiled on ObjectiveTracker triggers
even if not in FAILED state
* MP2SP intent compiler can compute a partial tree if constraint is set
* ObjectiveTracker recompiles intents on any link event
* SDN-IP MP2SP intents now use PartialFailureConstraint
Ported from onos-1.2 branch.
Change-Id: I32eaa198fae1dfba021d9251c8f855573f0e1d7d
diff --git a/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java b/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
index d22f147..42c2662 100644
--- a/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
@@ -40,6 +40,7 @@
import org.onosproject.net.intent.constraint.BandwidthConstraint;
import org.onosproject.net.intent.constraint.LambdaConstraint;
import org.onosproject.net.intent.constraint.LinkTypeConstraint;
+import org.onosproject.net.intent.constraint.PartialFailureConstraint;
import org.onosproject.net.resource.link.BandwidthResource;
import org.onlab.packet.IpPrefix;
import org.onlab.packet.MacAddress;
@@ -130,6 +131,10 @@
required = false, multiValued = false)
private String intentKey = null;
+ @Option(name = "--partial", description = "Allow partial installation",
+ required = false, multiValued = false)
+ private boolean partial = false;
+
// Treatments
@Option(name = "--setEthSrc", description = "Rewrite Source MAC Address",
@@ -350,6 +355,10 @@
}
constraints.add(new LinkTypeConstraint(lambda, Link.Type.OPTICAL));
+ if (partial) {
+ constraints.add(new PartialFailureConstraint());
+ }
+
return constraints;
}