aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/tunnel/tunnel_types.api
diff options
context:
space:
mode:
authorNeale Ranns <neale@graphiant.com>2021-02-04 11:02:52 +0000
committerOle Tr�an <otroan@employees.org>2021-02-08 11:44:00 +0000
commita91cb45909642978592c7e21a8f6d2da2e44e506 (patch)
treeeab3c645e03cba2707555647cb61e83ffedef42f /src/vnet/tunnel/tunnel_types.api
parent7d527a2292bdabc84ff070f5b27f35c0e858cddd (diff)
tunnel: support copying TTL and flow label from inner to outer
Type: feature The added functionality is to support copying TTL and flow label from inner to outer. The .api was extened to support expressing this and also adding a common tunnel endpoint type. i find it best to make API changes in one patch so there are less versions of the API. Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: I755c1e3f4c475058792af39c1abeda92129efb76
Diffstat (limited to 'src/vnet/tunnel/tunnel_types.api')
-rw-r--r--src/vnet/tunnel/tunnel_types.api44
1 files changed, 43 insertions, 1 deletions
diff --git a/src/vnet/tunnel/tunnel_types.api b/src/vnet/tunnel/tunnel_types.api
index 7ce70997f36..14267173721 100644
--- a/src/vnet/tunnel/tunnel_types.api
+++ b/src/vnet/tunnel/tunnel_types.api
@@ -13,7 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-option version = "1.0.0";
+option version = "1.0.1";
+
+import "vnet/interface_types.api";
+import "vnet/ip/ip_types.api";
/**
* Flags controlling tunnel behaviour
@@ -33,6 +36,10 @@ enum tunnel_encap_decap_flags : u8
TUNNEL_API_ENCAP_DECAP_FLAG_DECAP_COPY_ECN = 0x10,
/** at encap, compute flow hash on the inner packet for more entropy */
TUNNEL_API_ENCAP_DECAP_FLAG_ENCAP_INNER_HASH = 0x20 [backwards_compatible],
+ /** at encap, copy the hop-limit/TTL of the payload into the tunnel header */
+ TUNNEL_API_ENCAP_DECAP_FLAG_ENCAP_COPY_HOP_LIMIT = 0x40 [backwards_compatible],
+ /** at encap, copy the Flow Label of the payload into the tunnel header */
+ TUNNEL_API_ENCAP_DECAP_FLAG_ENCAP_COPY_FLOW_LABEL = 0x80 [backwards_compatible],
};
/**
@@ -46,6 +53,41 @@ enum tunnel_mode : u8
TUNNEL_API_MODE_MP,
};
+/**
+ * tunnel mode
+ */
+enumflag tunnel_flags : u8
+{
+ /**
+ * the tunnel's MTU tracks the MTU of its destination
+ * Currently NOT IMPLEMENTATION (this is a API place-holder)
+ */
+ TUNNEL_API_FLAG_TRACK_MTU = 0x1,
+};
+
+/**
+ * An IP{v4,v6} tunnel.
+ */
+typedef tunnel
+{
+ /** If non-~0, specifies a custom dev instance */
+ u32 instance;
+ /** Tunnel source and destination address */
+ vl_api_address_t src;
+ vl_api_address_t dst;
+ /** ignored on create, set in details/dump */
+ vl_api_interface_index_t sw_if_index;
+ /** The table ID in which the source and destination addresses are valid */
+ u32 table_id;
+ vl_api_tunnel_encap_decap_flags_t encap_decap_flags;
+ vl_api_tunnel_mode_t mode;
+ vl_api_tunnel_flags_t flags;
+ /* DSCP value for the tunnel encap, ignored if ECNAP_COPY_DSCP flag is set */
+ vl_api_ip_dscp_t dscp;
+ /* TTL=0 is considered 255 */
+ u8 hop_limit;
+};
+
/*
* Local Variables:
* eval: (c-set-style "gnu")