basic instructions implemented
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L2ModificationInstruction.java b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L2ModificationInstruction.java
index f71ad2e..348c30f 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L2ModificationInstruction.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L2ModificationInstruction.java
@@ -11,7 +11,7 @@
/**
* Represents the type of traffic treatment.
*/
- public enum SubType {
+ public enum L2SubType implements SubType {
/**
* Ether src modification.
*/
@@ -41,10 +41,7 @@
// TODO: Create factory class 'Instructions' that will have various factory
// to create specific instructions.
- /**
- * Returns the subtype of the modification instruction.
- * @return type of instruction
- */
+ @Override
public abstract SubType subtype();
@Override
@@ -89,7 +86,7 @@
@Override
public SubType subtype() {
- return SubType.L2_TYPE;
+ return L2SubType.L2_TYPE;
}
public short l2Type() {
@@ -111,7 +108,7 @@
@Override
public SubType subtype() {
- return SubType.VLAN_ID;
+ return L2SubType.VLAN_ID;
}
public Short vlanId() {
@@ -120,5 +117,27 @@
}
+ /**
+ * Represents a VLAN PCP modification instruction.
+ */
+ public static final class ModVlanPcpInstruction extends L2ModificationInstruction {
+
+ public final Byte vlanPcp;
+
+ public ModVlanPcpInstruction(Byte vlanPcp) {
+ this.vlanPcp = vlanPcp;
+ }
+
+ @Override
+ public SubType subtype() {
+ return L2SubType.VLAN_PCP;
+ }
+
+ public Byte vlanPcp() {
+ return this.vlanPcp;
+ }
+
+ }
+
}