ipip: Tunnel flags controlling copying data to/from payload/encap
[vpp.git] / src / vnet / ipip / ipip.api
index 95fc48a..baf0e50 100644 (file)
@@ -1,3 +1,4 @@
+/* Hey Emacs use -*- mode: C -*- */
 /*
  * Copyright (c) 2018 Cisco and/or its affiliates.
  * Licensed under the Apache License, Version 2.0 (the "License");
  *
  */
 
-option version = "1.1.0";
+option version = "2.0.0";
+
+import "vnet/interface_types.api";
+import "vnet/ip/ip_types.api";
+import "vnet/ipip/ipip_types.api";
+
+/**
+ * An IP{v4,v6} over IP{v4,v6} tunnel.
+ */
+typedef ipip_tunnel
+{
+  u32 instance; /* If non-~0, specifies a custom dev instance */
+  vl_api_address_t src;
+  vl_api_address_t dst;
+  vl_api_interface_index_t sw_if_index; /* ignored on create, set in
+                                          details/dump */
+  u32 table_id;
+  vl_api_ipip_tunnel_flags_t flags;
+  vl_api_ip_dscp_t dscp; /* DSCP value for the tunnel encap,
+                            ignored if ECNAP_COPY_DSCP flag is set */
+};
 
 /**
  * Create an IP{v4,v6} over IP{v4,v6} tunnel.
@@ -57,20 +78,14 @@ define ipip_add_tunnel
 {
   u32 client_index;
   u32 context;
-  u8 is_ipv6;
-  u32 instance;                /* If non-~0, specifies a custom dev instance */
-  u8 src_address[16];
-  u8 dst_address[16];
-  u32 fib_index;
-  u8 tc_tos;           /* If ~0, the TOS/TC value is copied from
-                          inner packet, otherwise set to value */
+  vl_api_ipip_tunnel_t tunnel;
 };
 
 define ipip_add_tunnel_reply
 {
   u32 context;
   i32 retval;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
 };
 
 /**
@@ -80,7 +95,7 @@ autoreply define ipip_del_tunnel
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
 };
 
 /**
@@ -90,22 +105,21 @@ define ipip_6rd_add_tunnel
 {
   u32 client_index;
   u32 context;
-  u32 fib_index;
-  u8 ip6_prefix[16];
-  u8 ip4_prefix[4];
-  u8 ip4_src[4];
-  u8 ip6_prefix_len;
-  u8 ip4_prefix_len;
-  u8 security_check;
-  u8 tc_tos;           /* If ~0, the TOS/TC value is copied from
-                          inner packet, otherwise set to value */
+  u32 ip6_table_id;
+  u32 ip4_table_id;
+  vl_api_ip6_prefix_t ip6_prefix;
+  vl_api_ip4_prefix_t ip4_prefix;
+  vl_api_ip4_address_t ip4_src;
+  bool security_check;
+  u8 tc_tos; /* If ~0, the TOS/TC value is copied from
+                inner packet, otherwise set to value */
 };
 
 define ipip_6rd_add_tunnel_reply
 {
   u32 context;
   i32 retval;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
 };
 
 /**
@@ -115,7 +129,7 @@ autoreply define ipip_6rd_del_tunnel
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
 };
 
 /**
@@ -125,23 +139,11 @@ define ipip_tunnel_dump
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
 };
 
 define ipip_tunnel_details
 {
   u32 context;
-  u32 sw_if_index;
-  u32 instance;
-  u8 is_ipv6;
-  u8 src_address[16];
-  u8 dst_address[16];
-  u32 fib_index;
-  u8 tc_tos;
+  vl_api_ipip_tunnel_t tunnel;
 };
-
-/*
- * Local Variables:
- * eval: (c-set-style "gnu")
- * End:
- */