cnat: add flow hash config to cnat translation
[vpp.git] / src / plugins / cnat / cnat.api
index a5df8b1..e6ad37d 100644 (file)
@@ -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:
     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,9 +170,33 @@ autoreply define cnat_add_del_snat_prefix
   vl_api_prefix_t prefix;
 };
 
-enum cnat_snat_policies:u32
+enum cnat_snat_policy_table:u8
 {
-  CNAT_SNAT_POLICY_NONE = 1,
+  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
@@ -178,6 +205,7 @@ autoreply define cnat_set_snat_policy
   u32 context;
   vl_api_cnat_snat_policies_t policy;
 };
+
 /*
  * fd.io coding-style-patch-verification: ON
  *