diff options
author | 2021-02-04 11:02:52 +0000 | |
---|---|---|
committer | 2021-02-08 11:44:00 +0000 | |
commit | a91cb45909642978592c7e21a8f6d2da2e44e506 (patch) | |
tree | eab3c645e03cba2707555647cb61e83ffedef42f /src/vnet/tunnel/tunnel_types.api | |
parent | 7d527a2292bdabc84ff070f5b27f35c0e858cddd (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.api | 44 |
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") |