X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fcnat%2Fcnat.api;h=e6ad37dd6eb0db4749139fad79e5ed7cff369b92;hb=589fe7ca6;hp=2b79e0d1b8b8e8fe2b4585882e0f87ed53381974;hpb=4d237874e5c9922330c62ac1b003a9a171c1bc3b;p=vpp.git diff --git a/src/plugins/cnat/cnat.api b/src/plugins/cnat/cnat.api index 2b79e0d1b8b..e6ad37dd6eb 100644 --- a/src/plugins/cnat/cnat.api +++ b/src/plugins/cnat/cnat.api @@ -1,6 +1,6 @@ /* Hey Emacs use -*- mode: C -*- */ /* - * Copyright (c) 2016 Cisco and/or its affiliates. + * Copyright (c) 2023 Cisco 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: @@ -19,14 +19,16 @@ used to control the ABF plugin */ -option version = "0.2.0"; +option version = "0.3.0"; import "vnet/ip/ip_types.api"; import "vnet/fib/fib_types.api"; import "vnet/interface_types.api"; +import "vnet/ip/ip.api"; enum cnat_translation_flags:u8 { CNAT_TRANSLATION_ALLOC_PORT = 1, + CNAT_TRANSLATION_NO_RETURN_SESSION = 4, }; enum cnat_endpoint_tuple_flags:u8 @@ -70,6 +72,7 @@ typedef cnat_translation u8 flags; vl_api_cnat_lb_type_t lb_type; u32 n_paths; + vl_api_ip_flow_hash_config_v2_t flow_hash_config; vl_api_cnat_endpoint_tuple_t paths[n_paths]; }; @@ -159,7 +162,7 @@ define cnat_get_snat_addresses_reply vl_api_interface_index_t sw_if_index; }; -autoreply define cnat_add_del_snat_prefix +autoreply define cnat_snat_policy_add_del_exclude_pfx { u32 client_index; u32 context; @@ -167,6 +170,42 @@ autoreply define cnat_add_del_snat_prefix vl_api_prefix_t prefix; }; +enum cnat_snat_policy_table:u8 +{ + CNAT_POLICY_INCLUDE_V4 = 0, + CNAT_POLICY_INCLUDE_V6 = 1, + CNAT_POLICY_POD = 2, + CNAT_POLICY_HOST = 3, +}; + +autoreply define cnat_snat_policy_add_del_if +{ + u32 client_index; + u32 context; + vl_api_interface_index_t sw_if_index; + u8 is_add; + vl_api_cnat_snat_policy_table_t table; +}; + +/* A snat policy controls what traffic is srcNATed */ +enum cnat_snat_policies:u8 +{ + /* No filter applied, srcNAT everything */ + CNAT_POLICY_NONE = 0, + /* Filter by interface list : snat_policy_add_del_if + * and prefix list : snat_policy_add_del_if */ + CNAT_POLICY_IF_PFX = 1, + /* Kubernetes specific policy */ + CNAT_POLICY_K8S = 2, +}; + +autoreply define cnat_set_snat_policy +{ + u32 client_index; + u32 context; + vl_api_cnat_snat_policies_t policy; +}; + /* * fd.io coding-style-patch-verification: ON *