Support for setting the MPLS BOS indicator bit.
Change-Id: Ib42747445113aadb62fd161a1c79ca59783884af
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
index bfb6300..cf6a1a2 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
@@ -84,9 +84,14 @@
VLAN_PUSH,
/**
- * Tunnle id modification.
+ * Tunnel id modification.
*/
- TUNNEL_ID
+ TUNNEL_ID,
+
+ /**
+ * MPLS BOS instruction.
+ */
+ MPLS_BOS
}
// TODO: Create factory class 'Instructions' that will have various factory
@@ -371,6 +376,51 @@
}
/**
+ * Represents a MPLS BOS modification.
+ */
+ public static final class ModMplsBosInstruction
+ extends L2ModificationInstruction {
+
+ private final boolean mplsBos;
+
+ ModMplsBosInstruction(boolean mplsBos) {
+ this.mplsBos = mplsBos;
+ }
+
+ public boolean mplsBos() {
+ return mplsBos;
+ }
+
+ @Override
+ public L2SubType subtype() {
+ return L2SubType.MPLS_BOS;
+ }
+
+ @Override
+ public String toString() {
+ return toStringHelper(subtype().toString()).add("bos", mplsBos)
+ .toString();
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type(), subtype(), mplsBos);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj instanceof ModMplsBosInstruction) {
+ ModMplsBosInstruction that = (ModMplsBosInstruction) obj;
+ return Objects.equals(mplsBos, that.mplsBos());
+ }
+ return false;
+ }
+ }
+
+ /**
* Represents a MPLS TTL modification.
*/
public static final class ModMplsTtlInstruction