Enhance the behaviour of ProtectionConfigBehaviour
Change-Id: I5e2505cc1db3b97c78703a6c138d04abc232d65b
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/protection/ProtectionConfigBehaviour.java b/core/api/src/main/java/org/onosproject/net/behaviour/protection/ProtectionConfigBehaviour.java
index d56a969..5464201 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/protection/ProtectionConfigBehaviour.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/protection/ProtectionConfigBehaviour.java
@@ -161,7 +161,48 @@
* @return Completes if request was accepted, fails exceptionally on error.
* Note: completion does not always assure working path has switched.
*/
+ @Deprecated
CompletableFuture<Void> switchWorkingPath(ConnectPoint identifier, int index);
+ /**
+ * Attempts to forcibly switch to the one specified path by {@code index}.
+ *
+ * @param identifier {@link ConnectPoint} for the virtual Port representing
+ * protected path endpoint
+ * @param index path index to switch to
+ * @return Completes if request was accepted, fails exceptionally on error.
+ * Note: completion does not always assure working path has switched.
+ */
+ default CompletableFuture<Void> switchToForce(ConnectPoint identifier, int index) {
+ return CompletableFuture.completedFuture(null);
+ }
+
+ /**
+ * Attempts to manually switch to the one specified path by {@code index}.
+ * This operation would be rejected if the specified path is a fault path.
+ *
+ * @param identifier {@link ConnectPoint} for the virtual Port representing
+ * protected path endpoint
+ * @param index path index to switch to
+ * @return Completes if request was accepted, fails exceptionally on error.
+ * Note: completion does not always assure working path has switched.
+ */
+ default CompletableFuture<Void> switchToManual(ConnectPoint identifier, int index) {
+ return switchWorkingPath(identifier, index);
+ }
+
+ /**
+ * Attempts to set the device to automatic protection mode.
+ *
+ * @param identifier {@link ConnectPoint} for the virtual Port representing
+ * protected path endpoint
+ * @return Completes if request was accepted, fails exceptionally on error.
+ */
+ default CompletableFuture<Void> switchToAutomatic(ConnectPoint identifier) {
+ CompletableFuture<Void> future = new CompletableFuture<>();
+ future.completeExceptionally(new UnsupportedOperationException());
+ return future;
+ }
+
// TODO How to let one listen to async events? e.g., working path changed event
}