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;
+        }
+
+    }
+
 
 }
