MPLS label selector and treatment

Change-Id: Id1fba1e04155e6d97de4c8fd95573641537f1b7a
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/TrafficTreatment.java b/core/api/src/main/java/org/onlab/onos/net/flow/TrafficTreatment.java
index bbecae0..3ac2c44 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/TrafficTreatment.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/TrafficTreatment.java
@@ -110,6 +110,25 @@
         public Builder setIpDst(IpAddress addr);
 
         /**
+         * Push MPLS ether type.
+         * @return a treatment builder.
+         */
+        public Builder pushMpls();
+
+        /**
+         * Pops MPLS ether type.
+         * @return a treatment builder.
+         */
+        public Builder popMpls();
+
+        /**
+         * Sets the mpls label.
+         * @param mplsLabel MPLS label.
+         * @return a treatment builder.
+         */
+        public Builder setMpls(Integer mplsLabel);
+
+        /**
          * Sets the optical channel ID or lambda.
          *
          * @param lambda optical channel ID