gtpu: offload RX flow
[vpp.git] / src / plugins / gtpu / gtpu.api
index b11670b..f084cc8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 Cisco and/or its affiliates.
+ * Copyright (c) 2017 Intel and/or its affiliates.
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
  * limitations under the License.
  */
 
-/** \brief /** \brief Set or delete an GTPU tunnel
+option version = "2.0.0";
+import "vnet/interface_types.api";
+import "vnet/ip/ip_types.api";
+
+/** \brief Set or delete an GTPU tunnel
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_add - add address if non-zero, else delete
-    @param is_ipv6 - src_address and dst_address is ipv6 or not
     @param src_address - GTPU tunnel's source address.
     @param dst_address - GTPU tunnel's destination address.
     @param mcast_sw_if_index - version, O-bit and C-bit (see nsh_packet.h)
@@ -29,14 +32,14 @@ define gtpu_add_del_tunnel
 {
   u32 client_index;
   u32 context;
-  u8 is_add;
-  u8 is_ipv6;
-  u8 src_address[16];
-  u8 dst_address[16];
-  u32 mcast_sw_if_index;
+  bool is_add;
+  vl_api_address_t src_address;
+  vl_api_address_t dst_address;
+  vl_api_interface_index_t mcast_sw_if_index;
   u32 encap_vrf_id;
   u32 decap_next_index;
   u32 teid;
+  option vat_help = "src <ip-addr> { dst <ip-addr> | group <mcast-ip-addr> { <intfc> | mcast_sw_if_index <nn> } } teid <teid> [encap-vrf-id <nn>] [decap-next <l2|nn>] [del]";
 };
 
 /** \brief reply for set or delete an GTPU tunnel
@@ -48,7 +51,7 @@ define gtpu_add_del_tunnel_reply
 {
   u32 context;
   i32 retval;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
 };
 
 /** \brief Dump GTPU tunnel
@@ -60,13 +63,13 @@ define gtpu_tunnel_dump
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
+  option vat_help = "[<intfc> | sw_if_index <nn>]";
 };
 
-/** \brief /** \brief dump details of an GTPU tunnel
+/** \brief dump details of an GTPU tunnel
     @param context - sender context, to match reply w/ request
     @param sw_if_index - software index of the interface
-    @param is_ipv6 - src_address and dst_address is ipv6 or not
     @param src_address - GTPU tunnel's source address.
     @param dst_address - GTPU tunnel's destination address.
     @param mcast_sw_if_index - version, O-bit and C-bit (see nsh_packet.h)
@@ -77,11 +80,10 @@ define gtpu_tunnel_dump
 define gtpu_tunnel_details
 {
   u32 context;
-  u32 sw_if_index;
-  u8 is_ipv6;
-  u8 src_address[16];
-  u8 dst_address[16];
-  u32 mcast_sw_if_index;
+  vl_api_interface_index_t sw_if_index;
+  vl_api_address_t src_address;
+  vl_api_address_t dst_address;
+  vl_api_interface_index_t mcast_sw_if_index;
   u32 encap_vrf_id;
   u32 decap_next_index;
   u32 teid;
@@ -94,23 +96,31 @@ define gtpu_tunnel_details
     @param is_ipv6 - if non-zero, enable ipv6-gtpu-bypass, else ipv4-gtpu-bypass
     @param enable - if non-zero enable, else disable
 */
-define sw_interface_set_gtpu_bypass
+autoreply define sw_interface_set_gtpu_bypass
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
-  u8 is_ipv6;
-  u8 enable;
+  vl_api_interface_index_t sw_if_index;
+  bool is_ipv6;
+  bool enable;
+  option vat_help = "<intfc> | sw_if_index <id> [ip4 | ip6] [enable | disable]";
 };
 
-/** \brief Interface set gtpu-bypass response
+/** \brief Offload gtpu rx request
+    @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
+    @param hw_if_index - rx hw interface
+    @param sw_if_index - gtpu interface to offload
+    @param enable - if non-zero enable, else disable
 */
-define sw_interface_set_gtpu_bypass_reply
+autoreply define gtpu_offload_rx
 {
+  u32 client_index;
   u32 context;
-  i32 retval;
+  u32 hw_if_index;
+  u32 sw_if_index;
+  u8 enable;
+  option vat_help = "hw <intfc> rx <tunnel-name> [del]";
 };
 
 /*