Register flow-manager and match-action related classes to KryoFactory.
- The following classes are now registered and available on KryoFactory:
-- FlowId
-- Path
-- Tree
-- FlowLink
-- OpticalPathFlow
-- PacketPathFlow
-- SingleDstTreeFlow
-- PacketMatch
-- OutputAction
-- ModifyDstMacAction
-- ModifyDstMacAction
- This task is a preperation for ONOS-1736 and ONOS-1842.
Change-Id: If438f5175e68672e0ce02f56681c35c3be87f0bc
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/ModifyDstMacAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/ModifyDstMacAction.java
index 491d986..c39cebe 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/action/ModifyDstMacAction.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/ModifyDstMacAction.java
@@ -15,6 +15,14 @@
private final MACAddress dstMac;
/**
+ * Default constructor for Kryo deserialization.
+ */
+ @Deprecated
+ protected ModifyDstMacAction() {
+ dstMac = null;
+ }
+
+ /**
* Constructor.
*
* @param dstMac destination MAC address after the modification
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/ModifySrcMacAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/ModifySrcMacAction.java
index 21ecf32..e679e29 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/action/ModifySrcMacAction.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/ModifySrcMacAction.java
@@ -15,6 +15,14 @@
private final MACAddress srcMac;
/**
+ * Default constructor for Kryo deserialization.
+ */
+ @Deprecated
+ protected ModifySrcMacAction() {
+ srcMac = null;
+ }
+
+ /**
* Constructor.
*
* @param srcMac source MAC address after the modification
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/OutputAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/OutputAction.java
index 2453640..10b5aaf 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/action/OutputAction.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/OutputAction.java
@@ -15,6 +15,14 @@
private final PortNumber portNumber;
/**
+ * Default constructor for Kryo deserialization.
+ */
+ @Deprecated
+ protected OutputAction() {
+ portNumber = null;
+ }
+
+ /**
* Constructor.
*
* @param dstPort The port number of the target output port.
diff --git a/src/main/java/net/onrc/onos/core/matchaction/match/PacketMatch.java b/src/main/java/net/onrc/onos/core/matchaction/match/PacketMatch.java
index c9b1f9d..c49c3d8 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/match/PacketMatch.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/match/PacketMatch.java
@@ -26,6 +26,21 @@
private final Short dstTcpPort;
/**
+ * Default constructor for Kryo deserialization.
+ */
+ @Deprecated
+ protected PacketMatch() {
+ srcMac = null;
+ dstMac = null;
+ etherType = null;
+ srcIp = null;
+ dstIp = null;
+ ipProto = null;
+ srcTcpPort = null;
+ dstTcpPort = null;
+ }
+
+ /**
* Package private constructor.
* <p>
* This class should be instantiated by the builder.
diff --git a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
index 4341e4a..5fec5b2 100644
--- a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
@@ -16,6 +16,12 @@
import net.floodlightcontroller.core.IFloodlightProviderService.Role;
import net.floodlightcontroller.util.MACAddress;
import net.onrc.onos.api.batchoperation.BatchOperationEntry;
+import net.onrc.onos.api.flowmanager.FlowId;
+import net.onrc.onos.api.flowmanager.FlowLink;
+import net.onrc.onos.api.flowmanager.OpticalPathFlow;
+import net.onrc.onos.api.flowmanager.PacketPathFlow;
+import net.onrc.onos.api.flowmanager.SingleDstTreeFlow;
+import net.onrc.onos.api.flowmanager.Tree;
import net.onrc.onos.api.newintent.AbstractIntent;
import net.onrc.onos.api.newintent.ConnectivityIntent;
import net.onrc.onos.api.newintent.IntentEvent;
@@ -38,6 +44,10 @@
import net.onrc.onos.core.intent.PathIntent;
import net.onrc.onos.core.intent.ShortestPathIntent;
import net.onrc.onos.core.intent.runtime.IntentStateList;
+import net.onrc.onos.core.matchaction.action.ModifyDstMacAction;
+import net.onrc.onos.core.matchaction.action.ModifySrcMacAction;
+import net.onrc.onos.core.matchaction.action.OutputAction;
+import net.onrc.onos.core.matchaction.match.PacketMatch;
import net.onrc.onos.core.newintent.IntentCompilationResult;
import net.onrc.onos.core.newintent.PathFlowIntent;
import net.onrc.onos.core.newintent.SingleDstTreeFlowIntent;
@@ -240,6 +250,21 @@
kryo.register(TestIntent.class);
kryo.register(TestSubclassIntent.class);
+ // New flow manager related classes
+ kryo.register(FlowId.class);
+ kryo.register(net.onrc.onos.api.flowmanager.Path.class);
+ kryo.register(Tree.class);
+ kryo.register(FlowLink.class);
+ kryo.register(OpticalPathFlow.class);
+ kryo.register(PacketPathFlow.class);
+ kryo.register(SingleDstTreeFlow.class);
+
+ // New match action related classes
+ kryo.register(PacketMatch.class);
+ kryo.register(OutputAction.class);
+ kryo.register(ModifyDstMacAction.class);
+ kryo.register(ModifySrcMacAction.class);
+
// Host-related classes
kryo.register(HashSet.class);
kryo.register(Host.class);