Added new Action classes and Match classes to use MatchAction Framework to set up the routing rules for Segment Routing
Change-Id: I214691cd8ea38c991a14f93af3bed0238a8c8f4b
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/CopyTtlOutAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/CopyTtlOutAction.java
new file mode 100644
index 0000000..d0d1e3d
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/CopyTtlOutAction.java
@@ -0,0 +1,9 @@
+package net.onrc.onos.core.matchaction.action;
+
+public class CopyTtlOutAction implements Action {
+
+ public CopyTtlOutAction() {
+
+ }
+
+}
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/DecMplsTtlAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/DecMplsTtlAction.java
new file mode 100644
index 0000000..02cfeec
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/DecMplsTtlAction.java
@@ -0,0 +1,14 @@
+package net.onrc.onos.core.matchaction.action;
+
+public class DecMplsTtlAction implements Action {
+ private final int dec;
+
+ public DecMplsTtlAction(int d) {
+ this.dec = d;
+ }
+
+ public int getDec() {
+ return dec;
+ }
+
+}
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/DecNwTtlAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/DecNwTtlAction.java
new file mode 100644
index 0000000..5770ea2
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/DecNwTtlAction.java
@@ -0,0 +1,13 @@
+package net.onrc.onos.core.matchaction.action;
+
+public class DecNwTtlAction implements Action {
+ private final int dec;
+
+ public DecNwTtlAction(int d) {
+ this.dec = d;
+ }
+
+ public int getDec() {
+ return this.dec;
+ }
+}
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/GroupAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/GroupAction.java
new file mode 100644
index 0000000..ba0c866
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/GroupAction.java
@@ -0,0 +1,22 @@
+package net.onrc.onos.core.matchaction.action;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import net.onrc.onos.core.util.Dpid;
+
+public class GroupAction implements Action {
+ List<Dpid> fwdSws;
+
+ public GroupAction() {
+ fwdSws = new ArrayList<Dpid>();
+ }
+
+ public void AddSwitch(Dpid d) {
+ fwdSws.add(d);
+ }
+
+ public List<Dpid> getDpids() {
+ return fwdSws;
+ }
+}
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/PopMplsAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/PopMplsAction.java
new file mode 100644
index 0000000..8e59988
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/PopMplsAction.java
@@ -0,0 +1,8 @@
+package net.onrc.onos.core.matchaction.action;
+
+public class PopMplsAction implements Action {
+
+ public PopMplsAction() {
+
+ }
+}
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/PushMplsAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/PushMplsAction.java
new file mode 100644
index 0000000..6157a18
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/PushMplsAction.java
@@ -0,0 +1,9 @@
+package net.onrc.onos.core.matchaction.action;
+
+public class PushMplsAction implements Action {
+
+ public PushMplsAction() {
+
+ }
+
+}
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/SetMplsIdAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/SetMplsIdAction.java
new file mode 100644
index 0000000..14a39c8
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/SetMplsIdAction.java
@@ -0,0 +1,13 @@
+package net.onrc.onos.core.matchaction.action;
+
+public class SetMplsIdAction implements Action {
+ private final int mplsId;
+
+ public SetMplsIdAction(int id) {
+ this.mplsId = id;
+ }
+
+ public int getMplsId() {
+ return this.mplsId;
+ }
+}
diff --git a/src/main/java/net/onrc/onos/core/matchaction/match/IpPacketMatch.java b/src/main/java/net/onrc/onos/core/matchaction/match/IpPacketMatch.java
new file mode 100644
index 0000000..58d7546
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/match/IpPacketMatch.java
@@ -0,0 +1,17 @@
+package net.onrc.onos.core.matchaction.match;
+
+import net.onrc.onos.core.util.IPv4Net;
+
+public class IpPacketMatch implements Match {
+
+ IPv4Net dstIp;
+
+ public IpPacketMatch(String ipAddressSlash) {
+ this.dstIp = new IPv4Net(ipAddressSlash);
+ }
+
+ public IPv4Net getDestination() {
+ return dstIp;
+ }
+
+}
diff --git a/src/main/java/net/onrc/onos/core/matchaction/match/MplsPacketMatch.java b/src/main/java/net/onrc/onos/core/matchaction/match/MplsPacketMatch.java
new file mode 100644
index 0000000..cf4e8d4
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/match/MplsPacketMatch.java
@@ -0,0 +1,15 @@
+package net.onrc.onos.core.matchaction.match;
+
+public class MplsPacketMatch implements Match {
+
+ private final int mplsLabel;
+
+ public MplsPacketMatch(int label) {
+ this.mplsLabel = label;
+ }
+
+ public int getMplsLabel() {
+ return mplsLabel;
+ }
+
+}