ONOS-7077 Openflow 1.5 OXS and stat trigger support

Change-Id: I006bcd3d8eac451a780c7e5c69a12298ead14281
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 9ddabe1..057f0f8 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
@@ -16,6 +16,7 @@
 package org.onosproject.net.flow;
 
 import java.util.List;
+import java.util.Map;
 
 import com.google.common.annotations.Beta;
 import org.onlab.packet.EthType;
@@ -81,6 +82,12 @@
     Instructions.MetadataInstruction writeMetadata();
 
     /**
+     * Returns the stat trigger instruction if there is one.
+     * @return a stat trigger instruction; may be null.
+     */
+    Instructions.StatTriggerInstruction statTrigger();
+
+    /**
      * Returns the meter instruction if there is one.
      *
      * @return a meter instruction that may be null
@@ -422,6 +429,16 @@
         Builder extension(ExtensionTreatment extension, DeviceId deviceId);
 
         /**
+         * Add stat trigger instruction.
+         *
+         * @param statTriggerFieldMap defines stat trigger constraints
+         * @param statTriggerFlag describes which circumstances that start will be triggered
+         * @return a treatment builder
+         */
+        Builder statTrigger(Map<StatTriggerField, Long> statTriggerFieldMap,
+                            StatTriggerFlag statTriggerFlag);
+
+        /**
          * Add all instructions from another treatment.
          *
          * @param treatment another treatment