flow: support generic flow and RSS action in vapi

Add generic flow type and rss action type to vapi. It is to support
creating generic flow rule via vapi.

Type: feature

Signed-off-by: Ting Xu <ting.xu@intel.com>
Change-Id: Ifeaa007679487e02bd2903dc591d80a1caba33bc
diff --git a/src/vnet/flow/flow.api b/src/vnet/flow/flow.api
index 7bb21cd..dff3eec 100644
--- a/src/vnet/flow/flow.api
+++ b/src/vnet/flow/flow.api
@@ -13,7 +13,7 @@
  * limitations under the License.
  */
 
-option version = "0.0.2";
+option version = "0.0.3";
 
 import "vnet/interface_types.api";
 import "vnet/ip/ip_types.api";
@@ -32,6 +32,19 @@
   option vat_help = "test flow add [src-ip <ip-addr/mask>] [dst-ip <ip-addr/mask>] [src-port <port/mask>] [dst-port <port/mask>] [proto <ip-proto>]";
 };
 
+/** \brief flow add request v2
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param flow - flow rule v2
+*/
+define flow_add_v2
+{
+  u32 client_index;
+  u32 context;
+  vl_api_flow_rule_v2_t flow;
+  option vat_help = "test flow add [src-ip <ip-addr/mask>] [dst-ip <ip-addr/mask>] [src-port <port/mask>] [dst-port <port/mask>] [proto <ip-proto>] [spec <spec-string>] [mask <mask-string>]";
+};
+
 /** \brief reply for adding flow
     @param context - sender context, to match reply w/ request
     @param retval - return code
@@ -44,6 +57,18 @@
   u32 flow_index;
 };
 
+/** \brief reply for adding flow v2
+    @param context - sender context, to match reply w/ request
+    @param retval - return code
+    @param flow_index - flow index, can be used for flow del/enable/disable
+*/
+define flow_add_v2_reply
+{
+  u32 context;
+  i32 retval;
+  u32 flow_index;
+};
+
 /** \brief flow del request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request