Define an Instruction for OchSignal and its static factory method

Resolve ONOS-1873

Change-Id: Ia1d0a97fd820ce7a9b7e2b48ce8d07174bcc1af9
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
index 03588b8..f9894da 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
@@ -21,6 +21,7 @@
 import org.onlab.packet.MplsLabel;
 import org.onlab.packet.VlanId;
 import org.onosproject.core.GroupId;
+import org.onosproject.net.OchSignal;
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.flow.instructions.L0ModificationInstruction.L0SubType;
 import org.onosproject.net.flow.instructions.L0ModificationInstruction.ModLambdaInstruction;
@@ -87,6 +88,17 @@
     }
 
     /**
+     * Creates an L0 modification with the specified OCh signal.
+     *
+     * @param lambda OCh signal
+     * @return an L0 modification
+     */
+    public static L0ModificationInstruction modL0OchSignal(OchSignal lambda) {
+        checkNotNull(lambda, "L0 OCh signal cannot be null");
+        return new L0ModificationInstruction.ModOchSignalInstruction(lambda);
+    }
+
+    /**
      * Creates a l2 src modification.
      *
      * @param addr the mac address to modify to