Add OCh signal type to optical path intent.
Revert changes to LINC-OE specialized flowmod handling.
Change-Id: Ic4f333a44b7cd8a3111bfcba87ea909943eec56d
diff --git a/core/api/src/main/java/org/onosproject/net/OchSignalType.java b/core/api/src/main/java/org/onosproject/net/OchSignalType.java
index d9dd786..9caf3f3 100644
--- a/core/api/src/main/java/org/onosproject/net/OchSignalType.java
+++ b/core/api/src/main/java/org/onosproject/net/OchSignalType.java
@@ -21,9 +21,9 @@
*/
public enum OchSignalType {
/**
- * Represents fix grid.
+ * Represents fixed grid.
*/
- FIX_GRID,
+ FIXED_GRID,
/**
* Represents flex grid.
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 33f30ef..a163cea 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
@@ -389,6 +389,7 @@
* @param sigType optical signal type (8 bits unsigned integer)
* @return match criterion
*/
+ @Deprecated
public static Criterion matchOpticalSignalType(short sigType) {
return new OpticalSignalTypeCriterion(sigType, Type.OCH_SIGTYPE);
}
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/OpticalSignalTypeCriterion.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/OpticalSignalTypeCriterion.java
index d6e8ebf..ecf605f 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/OpticalSignalTypeCriterion.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/OpticalSignalTypeCriterion.java
@@ -23,6 +23,7 @@
* Implementation of optical signal type criterion (8 bits unsigned
* integer).
*/
+@Deprecated
public final class OpticalSignalTypeCriterion implements Criterion {
private static final short MASK = 0xff;
private final short signalType; // Signal type value: 8 bits
diff --git a/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java b/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
index 5e1eacc..1290a34 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
@@ -18,6 +18,7 @@
import org.onosproject.core.ApplicationId;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.OchSignal;
+import org.onosproject.net.OchSignalType;
import org.onosproject.net.Path;
import com.google.common.base.MoreObjects;
@@ -31,6 +32,7 @@
private final ConnectPoint dst;
private final Path path;
private final OchSignal lambda;
+ private final OchSignalType signalType;
private OpticalPathIntent(ApplicationId appId,
Key key,
@@ -38,12 +40,14 @@
ConnectPoint dst,
Path path,
OchSignal lambda,
+ OchSignalType signalType,
int priority) {
super(appId, key, ImmutableSet.copyOf(path.links()), priority);
this.src = checkNotNull(src);
this.dst = checkNotNull(dst);
this.path = checkNotNull(path);
this.lambda = checkNotNull(lambda);
+ this.signalType = checkNotNull(signalType);
}
protected OpticalPathIntent() {
@@ -51,6 +55,7 @@
this.dst = null;
this.path = null;
this.lambda = null;
+ this.signalType = null;
}
/**
@@ -71,6 +76,7 @@
private ConnectPoint dst;
private Path path;
private OchSignal lambda;
+ private OchSignalType signalType;
Key key;
@Override
@@ -133,6 +139,17 @@
}
/**
+ * Sets the optical signal type for the intent that will be built.
+ *
+ * @param signalType the optical signal type
+ * @return this builder
+ */
+ public Builder signalType(OchSignalType signalType) {
+ this.signalType = signalType;
+ return this;
+ }
+
+ /**
* Builds an optical path intent from the accumulated parameters.
*
* @return optical path intent
@@ -146,6 +163,7 @@
dst,
path,
lambda,
+ signalType,
priority
);
}
@@ -168,6 +186,10 @@
return lambda;
}
+ public OchSignalType signalType() {
+ return signalType;
+ }
+
@Override
public String toString() {
return MoreObjects.toStringHelper(getClass())
@@ -179,6 +201,7 @@
.add("egressPort", dst)
.add("path", path)
.add("lambda", lambda)
+ .add("signalType", signalType)
.toString();
}
}
diff --git a/core/api/src/test/java/org/onosproject/net/flow/criteria/CriteriaTest.java b/core/api/src/test/java/org/onosproject/net/flow/criteria/CriteriaTest.java
index a705e12..bad60a0 100644
--- a/core/api/src/test/java/org/onosproject/net/flow/criteria/CriteriaTest.java
+++ b/core/api/src/test/java/org/onosproject/net/flow/criteria/CriteriaTest.java
@@ -221,8 +221,8 @@
Criterion sameAsMatchLambda1 = Criteria.matchLambda(lambda1);
Criterion matchLambda2 = Criteria.matchLambda(lambda2);
- Criterion matchOchSignalType1 = Criteria.matchOchSignalType(OchSignalType.FIX_GRID);
- Criterion sameAsMatchOchSignalType1 = Criteria.matchOchSignalType(OchSignalType.FIX_GRID);
+ Criterion matchOchSignalType1 = Criteria.matchOchSignalType(OchSignalType.FIXED_GRID);
+ Criterion sameAsMatchOchSignalType1 = Criteria.matchOchSignalType(OchSignalType.FIXED_GRID);
Criterion matchOchSignalType2 = Criteria.matchOchSignalType(OchSignalType.FLEX_GRID);
Criterion matchIndexedLambda1 = Criteria.matchLambda(Lambda.indexedLambda(1));
diff --git a/core/api/src/test/java/org/onosproject/net/intent/OpticalPathIntentTest.java b/core/api/src/test/java/org/onosproject/net/intent/OpticalPathIntentTest.java
index 3296336..36e018a 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/OpticalPathIntentTest.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/OpticalPathIntentTest.java
@@ -18,7 +18,7 @@
import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Test;
-import org.onosproject.net.OchSignal;
+import org.onosproject.net.OchSignalType;
import org.onosproject.net.Path;
import com.google.common.testing.EqualsTester;
@@ -39,7 +39,6 @@
OpticalPathIntent intent1;
OpticalPathIntent intent2;
Path defaultPath;
- OchSignal lambda;
@Before
public void opticalPathIntentTestSetUp() {
@@ -50,6 +49,7 @@
.dst(connectPoint("two", 2))
.path(defaultPath)
.lambda(createLambda())
+ .signalType(OchSignalType.FIXED_GRID)
.priority(PRIORITY)
.build();
@@ -59,6 +59,7 @@
.dst(connectPoint("one", 2))
.path(defaultPath)
.lambda(createLambda())
+ .signalType(OchSignalType.FIXED_GRID)
.priority(PRIORITY)
.build();
}
@@ -83,7 +84,7 @@
}
/**
- * Checks that the optical path ntent objects are created correctly.
+ * Checks that the optical path intent objects are created correctly.
*/
@Test
public void testContents() {
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
index 4f8527e..e99b56b 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
@@ -31,6 +31,7 @@
import org.onosproject.net.Link;
import org.onosproject.net.OchPort;
import org.onosproject.net.OchSignal;
+import org.onosproject.net.OchSignalType;
import org.onosproject.net.OmsPort;
import org.onosproject.net.Path;
import org.onosproject.net.Port;
@@ -127,6 +128,8 @@
// Create installable optical path intent
LambdaResourceAllocation lambdaAlloc = getWavelength(path, linkAllocs);
OchSignal ochSignal = getOchSignal(lambdaAlloc, omsPort.minFrequency(), omsPort.grid());
+ // Only support fixed grid for now
+ OchSignalType signalType = OchSignalType.FIXED_GRID;
Intent newIntent = OpticalPathIntent.builder()
.appId(intent.appId())
@@ -134,6 +137,7 @@
.dst(intent.getDst())
.path(path)
.lambda(ochSignal)
+ .signalType(signalType)
.build();
return ImmutableList.of(newIntent);
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalPathIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalPathIntentCompiler.java
index f4b11db..274b98d 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalPathIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalPathIntentCompiler.java
@@ -103,6 +103,7 @@
current = link.dst();
selectorBuilder.matchInPort(link.dst().port());
selectorBuilder.add(Criteria.matchLambda(intent.lambda()));
+ selectorBuilder.add(Criteria.matchOchSignalType(intent.signalType()));
}
// Build the egress ROADM rule
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/OpticalPathIntentCompilerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/OpticalPathIntentCompilerTest.java
index a18f2c5..b773f0f 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/OpticalPathIntentCompilerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/OpticalPathIntentCompilerTest.java
@@ -26,6 +26,7 @@
import org.onosproject.net.DefaultLink;
import org.onosproject.net.DefaultPath;
import org.onosproject.net.Link;
+import org.onosproject.net.OchSignalType;
import org.onosproject.net.flow.DefaultTrafficSelector;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.FlowRule;
@@ -95,6 +96,7 @@
.dst(d3p1)
.path(new DefaultPath(PID, links, hops))
.lambda(createLambda())
+ .signalType(OchSignalType.FIXED_GRID)
.build();
intentExtensionService = createMock(IntentExtensionService.class);
intentExtensionService.registerCompiler(OpticalPathIntent.class, sut);
diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/OFOpticalSwitchImplLINC13.java b/drivers/src/main/java/org/onosproject/driver/handshaker/OFOpticalSwitchImplLINC13.java
index 8b27e8c..ec449b7 100644
--- a/drivers/src/main/java/org/onosproject/driver/handshaker/OFOpticalSwitchImplLINC13.java
+++ b/drivers/src/main/java/org/onosproject/driver/handshaker/OFOpticalSwitchImplLINC13.java
@@ -24,62 +24,30 @@
import org.projectfloodlight.openflow.protocol.OFCircuitPortStatus;
import org.projectfloodlight.openflow.protocol.OFCircuitPortsReply;
import org.projectfloodlight.openflow.protocol.OFCircuitPortsRequest;
-import org.projectfloodlight.openflow.protocol.OFFactories;
-import org.projectfloodlight.openflow.protocol.OFFactory;
-import org.projectfloodlight.openflow.protocol.OFFlowMod;
-import org.projectfloodlight.openflow.protocol.OFFlowModCommand;
-import org.projectfloodlight.openflow.protocol.OFInstructionType;
import org.projectfloodlight.openflow.protocol.OFMessage;
import org.projectfloodlight.openflow.protocol.OFObject;
import org.projectfloodlight.openflow.protocol.OFPortDesc;
import org.projectfloodlight.openflow.protocol.OFStatsReply;
import org.projectfloodlight.openflow.protocol.OFStatsType;
-import org.projectfloodlight.openflow.protocol.OFType;
-import org.projectfloodlight.openflow.protocol.OFVersion;
-import org.projectfloodlight.openflow.protocol.action.OFAction;
-import org.projectfloodlight.openflow.protocol.action.OFActionCircuit;
-import org.projectfloodlight.openflow.protocol.instruction.OFInstruction;
-import org.projectfloodlight.openflow.protocol.instruction.OFInstructionApplyActions;
-import org.projectfloodlight.openflow.protocol.match.Match;
-import org.projectfloodlight.openflow.protocol.match.MatchField;
-import org.projectfloodlight.openflow.protocol.OFActionType;
-import org.projectfloodlight.openflow.types.CircuitSignalID;
-import org.projectfloodlight.openflow.types.OFPort;
-import org.projectfloodlight.openflow.types.U8;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
-import java.util.Collections;
import java.util.List;
-import java.util.Map;
-import java.util.ArrayList;
import java.util.Set;
-import java.util.BitSet;
-import java.util.stream.Collectors;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ConcurrentHashMap;
-
-import static org.projectfloodlight.openflow.protocol.OFFlowMod.Builder;
/**
* LINC-OE Optical Emulator switch class.
*/
public class OFOpticalSwitchImplLINC13
extends AbstractOpenFlowSwitch implements OpenFlowOpticalSwitch {
- // default number of lambdas, assuming 50GHz channels.
- private static final int NUM_CHLS = 80;
- private final OFFactory factory = OFFactories.getFactory(OFVersion.OF_13);
private final AtomicBoolean driverHandshakeComplete = new AtomicBoolean(false);
private long barrierXidToWaitFor = -1;
private OFCircuitPortsReply wPorts;
- // book-keeping maps for allocated Linc-OE lambdas
- protected final ConcurrentMap<OFPort, BitSet> portChannelMap = new ConcurrentHashMap<>();
- protected final ConcurrentMap<Match, Integer> matchMap = new ConcurrentHashMap<>();
@Override
public void startDriverHandshake() {
@@ -201,139 +169,4 @@
public Set<PortDescPropertyType> getPortTypes() {
return ImmutableSet.of(PortDescPropertyType.OPTICAL_TRANSPORT);
}
-
- @Override
- public OFMessage prepareMessage(OFMessage msg) {
- if (OFVersion.OF_13 != msg.getVersion() || msg.getType() != OFType.FLOW_MOD) {
- return msg;
- }
- OFFlowMod fm = (OFFlowMod) msg;
- Match match = fm.getMatch();
- // Don't touch FlowMods that aren't Optical-related.
- if (match.get(MatchField.OCH_SIGTYPE) == null) {
- return msg;
- }
-
- OFMessage newFM;
- Builder builder = null;
- List<OFAction> actions = new ArrayList<>();
- if (fm.getCommand() == OFFlowModCommand.ADD) {
- builder = factory.buildFlowAdd();
- int lambda = allocateLambda(match.get(MatchField.IN_PORT), match);
- CircuitSignalID sigid = new CircuitSignalID((byte) 1, (byte) 2, (short) lambda, (short) 1);
- List<OFInstruction> instructions = fm.getInstructions();
-
- newFM = buildFlowMod(builder, fm, buildMatch(match, sigid), buildActions(instructions, sigid));
- } else if (fm.getCommand() == OFFlowModCommand.DELETE) {
- builder = factory.buildFlowDelete();
- int lambda = freeLambda(match.get(MatchField.IN_PORT), match);
- CircuitSignalID sigid = new CircuitSignalID((byte) 1, (byte) 2, (short) lambda, (short) 1);
-
- newFM = buildFlowMod(builder, fm, buildMatch(match, sigid), actions);
- } else {
- newFM = msg;
- }
- log.debug("new FM = {}", newFM);
- return newFM;
- }
-
- // fetch the next available channel as the flat lambda value, or the lambda
- // associated with a port/match combination
- private int allocateLambda(OFPort port, Match match) {
- Integer lambda = null;
- synchronized (this) {
- BitSet channels = portChannelMap.getOrDefault(port, new BitSet(NUM_CHLS + 1));
- lambda = matchMap.get(match);
- if (lambda == null) {
- // TODO : double check behavior when bitset is full
- // Linc lambdas start at 1.
- lambda = channels.nextClearBit(1);
- channels.set(lambda);
- portChannelMap.put(port, channels);
- matchMap.put(match, lambda);
- }
- }
- return lambda;
- }
-
- // free lambda that was mapped to Port/Match combination and return its
- // value to caller.
- private int freeLambda(OFPort port, Match match) {
- synchronized (this) {
- Integer lambda = matchMap.get(match);
- if (lambda != null) {
- portChannelMap.get(port).clear(lambda);
- return lambda;
- }
- // 1 is a sane-ish default for Linc.
- return 1;
- }
- }
-
- // build matches - *tons of assumptions are made here based on Linc-OE's behavior.*
- // gridType = 1 (DWDM)
- // channelSpacing = 2 (50GHz)
- // spectralWidth = 1 (fixed grid default value)
- private Match buildMatch(Match original, CircuitSignalID sigid) {
- Match.Builder mBuilder = factory.buildMatch();
-
- original.getMatchFields().forEach(mf -> {
- String name = mf.getName();
- if (MatchField.OCH_SIGID.getName().equals(name)) {
- mBuilder.setExact(MatchField.OCH_SIGID, sigid);
- } else if (MatchField.OCH_SIGTYPE.getName().equals(name)) {
- mBuilder.setExact(MatchField.OCH_SIGTYPE, U8.of((short) 1));
- } else if (MatchField.IN_PORT.getName().equals(name)) {
- mBuilder.setExact(MatchField.IN_PORT, original.get(MatchField.IN_PORT));
- }
- });
-
- return mBuilder.build();
- }
-
- private List<OFAction> buildActions(List<OFInstruction> iList, CircuitSignalID sigid) {
- Map<OFInstructionType, OFInstruction> instructions = iList.stream()
- .collect(Collectors.toMap(OFInstruction::getType, inst -> inst));
-
- OFInstruction inst = instructions.get(OFInstructionType.APPLY_ACTIONS);
- if (inst == null) {
- return Collections.emptyList();
- }
-
- List<OFAction> actions = new ArrayList<>();
- OFInstructionApplyActions iaa = (OFInstructionApplyActions) inst;
- if (iaa.getActions() == null) {
- return actions;
- }
- iaa.getActions().forEach(action -> {
- if (OFActionType.EXPERIMENTER == action.getType()) {
- OFActionCircuit.Builder cBuilder = factory.actions().buildCircuit()
- .setField(factory.oxms()
- .buildOchSigid()
- .setValue(sigid)
- .build());
- actions.add(cBuilder.build());
- } else {
- actions.add(action);
- }
- });
- return actions;
- }
-
- private OFMessage buildFlowMod(Builder builder, OFFlowMod fm, Match m, List<OFAction> act) {
- return builder
- .setXid(fm.getXid())
- .setCookie(fm.getCookie())
- .setCookieMask(fm.getCookieMask())
- .setTableId(fm.getTableId())
- .setIdleTimeout(fm.getIdleTimeout())
- .setHardTimeout(fm.getHardTimeout())
- .setBufferId(fm.getBufferId())
- .setOutPort(fm.getOutPort())
- .setOutGroup(fm.getOutGroup())
- .setFlags(fm.getFlags())
- .setMatch(m)
- .setActions(act)
- .build();
- }
}
diff --git a/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitch.java b/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitch.java
index 0d2dc3a..49ca5a8 100644
--- a/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitch.java
+++ b/openflow/api/src/main/java/org/onosproject/openflow/controller/OpenFlowSwitch.java
@@ -148,16 +148,4 @@
* @return string representation of the connection to the device
*/
String channelId();
-
- /**
- * Prepares a message to be sent, if necessary. Default is to do nothing,
- * since most Devices do not need to pre-process a message that's about to
- * be sent.
- *
- * @param msg The message to prepare for sending
- * @return the prepared OFMessage
- */
- default OFMessage prepareMessage(OFMessage msg) {
- return msg;
- }
}
diff --git a/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java b/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
index 94e82a2..43f3d68 100644
--- a/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
+++ b/openflow/api/src/main/java/org/onosproject/openflow/controller/driver/AbstractOpenFlowSwitch.java
@@ -97,7 +97,7 @@
@Override
public final void sendMsg(OFMessage m) {
if (role == RoleState.MASTER && channel.isWritable()) {
- channel.write(Collections.singletonList(prepareMessage(m)));
+ channel.write(Collections.singletonList(m));
}
}
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;
+ }
+ }
}
diff --git a/tools/test/topos/opticalUtils.py b/tools/test/topos/opticalUtils.py
index f1559b4..52a54b2 100644
--- a/tools/test/topos/opticalUtils.py
+++ b/tools/test/topos/opticalUtils.py
@@ -67,7 +67,7 @@
from mininet.cli import CLI
# Sleep time and timeout values in seconds
-SLEEP_TIME = .5
+SLEEP_TIME = 2
TIMEOUT = 60
class OpticalSwitch(Switch):