[SDFAB-1100] In-order flowrule processing

Extends the FlowRuleService and its api by adding in-order processing
capabilities. This is achieved by introducing stripe key as way to
indicate how to process the flowrules. Key is an object which is used
to select a specific executor. Operations having the same key is guaranteed
that will be processed by the same executor.

Change-Id: I5ab4d42e8a2b8cb869f3dc2305dbc5084d31f08b
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleService.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleService.java
index 9cada03..807d09e 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleService.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleService.java
@@ -196,4 +196,33 @@
     default long getActiveFlowRuleCount(DeviceId deviceId) {
         return 0;
     }
+
+    /**
+     * Applies the specified flow rules onto their respective devices. Similar
+     * to {@link FlowRuleService#applyFlowRules(FlowRule...)} but expectation is
+     * that flow rules applied by subsequent calls using the same key will be
+     * executed sequentially. Flow rules applied through {@link FlowRuleService#applyFlowRules(FlowRule...)}
+     * might be executed in parallel.
+     *
+     * @param stripeKey an integer key
+     * @param flowRules one or more flow rules
+     */
+    default void applyFlowRules(int stripeKey, FlowRule... flowRules) {
+
+    }
+
+    /**
+     * Removes the specified flow rules from their respective devices. Similar
+     * to {@link FlowRuleService#removeFlowRules(FlowRule...)} but expectation is
+     * that flow rules removed by subsequent calls using the same key will be
+     * executed sequentially. Flow rules applied through {@link FlowRuleService#removeFlowRules(FlowRule...)}
+     * might be executed in parallel.
+     *
+     * @param stripeKey an integer key
+     * @param flowRules one or more flow rules
+     */
+    default void removeFlowRules(int stripeKey, FlowRule... flowRules) {
+
+    }
+
 }