Add OCh signal type to optical path intent.
Revert changes to LINC-OE specialized flowmod handling.

Change-Id: Ic4f333a44b7cd8a3111bfcba87ea909943eec56d
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilder.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilder.java
index 9d949c6..ddccd2a 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilder.java
@@ -40,7 +40,7 @@
 import org.onosproject.net.flow.criteria.MetadataCriterion;
 import org.onosproject.net.flow.criteria.MplsCriterion;
 import org.onosproject.net.flow.criteria.OchSignalCriterion;
-import org.onosproject.net.flow.criteria.OpticalSignalTypeCriterion;
+import org.onosproject.net.flow.criteria.OchSignalTypeCriterion;
 import org.onosproject.net.flow.criteria.PortCriterion;
 import org.onosproject.net.flow.criteria.SctpPortCriterion;
 import org.onosproject.net.flow.criteria.TcpPortCriterion;
@@ -388,10 +388,9 @@
                 }
                 break;
             case OCH_SIGTYPE:
-                OpticalSignalTypeCriterion sc =
-                        (OpticalSignalTypeCriterion) c;
-                mBuilder.setExact(MatchField.OCH_SIGTYPE,
-                                  U8.of(sc.signalType()));
+                OchSignalTypeCriterion sc = (OchSignalTypeCriterion) c;
+                byte signalType = FlowModBuilderHelper.convertOchSignalType(sc.signalType());
+                mBuilder.setExact(MatchField.OCH_SIGTYPE, U8.of(signalType));
                 break;
             case ARP_OP:
             case ARP_SHA:
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderHelper.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderHelper.java
index fd9cac4..5baba8f 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderHelper.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderHelper.java
@@ -17,6 +17,7 @@
 
 import org.onosproject.net.ChannelSpacing;
 import org.onosproject.net.GridType;
+import org.onosproject.net.OchSignalType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -87,4 +88,22 @@
                 throw new UnsupportedChannelSpacingException(spacing);
         }
     }
+
+    /**
+     * Converts a {@link OchSignalType} to the corresponding byte value.
+     *
+     * @param signalType optical signal type
+     * @return byte value corresponding to the specified OCh signal type
+     */
+    static byte convertOchSignalType(OchSignalType signalType) {
+        switch (signalType) {
+            case FIXED_GRID:
+                return (byte) 1;
+            case FLEX_GRID:
+                return (byte) 2;
+            default:
+                log.info("OchSignalType {} is not supported", signalType);
+                return (byte) 0;
+        }
+    }
 }