(ONOS-684) Added a few new OF actions, which are required for Segment Routing Application
 - MPLS POP (Ethernet type)
 - Dec MPLS TTL
 - Dec NW TTL
 - Copy TTL In
 - Copy TTL Out

Change-Id: I639a1bfff9ba3ae8c372c0a4b36f132cb2610b7b
diff --git a/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java b/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
index e7eb85d..da682ee 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
@@ -119,6 +119,27 @@
         public Builder setIpDst(IpAddress addr);
 
         /**
+         * Decrease the TTL in IP header by one.
+         *
+         * @return a treatment builder
+         */
+        public Builder decNwTtl();
+
+        /**
+         * Copy the TTL to outer protocol layer.
+         *
+         * @return a treatment builder
+         */
+        public Builder copyTtlOut();
+
+        /**
+         * Copy the TTL to inner protocol layer.
+         *
+         * @return a treatment builder
+         */
+        public Builder copyTtlIn();
+
+        /**
          * Push MPLS ether type.
          *
          * @return a treatment builder.
@@ -133,6 +154,14 @@
         public Builder popMpls();
 
         /**
+         * Pops MPLS ether type.
+         *
+         * @param ethType Ethernet type to set
+         * @return a treatment builder.
+         */
+        public Builder popMpls(short ethType);
+
+        /**
          * Sets the mpls label.
          *
          * @param mplsLabel MPLS label.
@@ -141,6 +170,13 @@
         public Builder setMpls(Integer mplsLabel);
 
         /**
+         * Decrement MPLS TTL.
+         *
+         * @return a treatment builder
+         */
+        public Builder decMplsTtl();
+
+        /**
          * Sets the optical channel ID or lambda.
          *
          * @param lambda optical channel ID