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;
+ }
+ }
}