Support metadata in forwarding objective

Change-Id: Iaa916a8b2749bec6b9db42fe3f3765b922bd921b
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java
index bf1bd39..4e998ed 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java
@@ -87,6 +87,16 @@
     Flag flag();
 
     /**
+     * Auxiliary optional information provided to the device driver. Typically
+     * conveys information about selectors (matches) that are intended to
+     * use this Forwarding Objective.
+     *
+     * @return a selector intended to pass meta information to the device driver.
+     *         Value may be null if no meta information is provided.
+     */
+    TrafficSelector meta();
+
+    /**
      * A forwarding objective builder.
      */
     interface Builder extends Objective.Builder {
@@ -124,6 +134,14 @@
         Builder withFlag(Flag flag);
 
         /**
+         * Set meta information related to this forwarding objective.
+         *
+         * @param selector match conditions
+         * @return an objective builder
+         */
+        Builder withMeta(TrafficSelector selector);
+
+        /**
          * Builds the forwarding objective that will be added.
          *
          * @return a forwarding objective