Define a Criterion for OchSignal
Resolve ONOS-1844
Change-Id: I775a64ad6d6d3f1a046a6f7895a412c71c17ff16
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
index 58d6c16..7ee17fd 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
@@ -15,6 +15,8 @@
*/
package org.onosproject.net.flow.criteria;
+import org.onosproject.net.Lambda;
+import org.onosproject.net.OchSignal;
import org.onosproject.net.PortNumber;
import org.onosproject.net.flow.criteria.Criterion.Type;
import org.onlab.packet.IpPrefix;
@@ -362,6 +364,20 @@
}
/**
+ * Creates a match on lambda using the specified value.
+ *
+ * @param lambda lambda
+ * @return match criterion
+ */
+ public static Criterion matchLambda(Lambda lambda) {
+ if (lambda instanceof OchSignal) {
+ return new OchSignalCriterion((OchSignal) lambda);
+ } else {
+ throw new UnsupportedOperationException(String.format("Unsupported type of Lambda: %s", lambda));
+ }
+ }
+
+ /**
* Creates a match on optical signal type using the specified value.
*
* @param sigType optical signal type (8 bits unsigned integer)