nat: use correct data types for memory sizes
[vpp.git] / src / plugins / nat / nat.api
index 8cf26d4..10e7036 100644 (file)
@@ -110,14 +110,14 @@ define nat_show_config_reply
   u32 translation_buckets;
   u32 translation_memory_size;
   u32 user_buckets;
-  u32 user_memory_size;
+  u64 user_memory_size;
   u32 max_translations_per_user;
   u32 outside_vrf_id;
   u32 inside_vrf_id;
   u32 nat64_bib_buckets;
-  u32 nat64_bib_memory_size;
+  u64 nat64_bib_memory_size;
   u32 nat64_st_buckets;
-  u32 nat64_st_memory_size;
+  u64 nat64_st_memory_size;
 };
 
 enum nat_log_level : u8
@@ -130,6 +130,15 @@ enum nat_log_level : u8
   NAT_LOG_DEBUG = 0x05,
 };
 
+/** \brief Run nat44 garbage collection
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+autoreply define nat44_session_cleanup {
+  u32 client_index;
+  u32 context;
+};
+
 /** \brief Set NAT logging level
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -189,85 +198,6 @@ autoreply define nat_ipfix_enable_disable {
   bool enable;
 };
 
-/** \brief Set NAT virtual fragmentation reassembly
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param timeout - reassembly timeout
-    @param max_reass - maximum number of concurrent reassemblies
-    @param max_frag - maximum number of fragmets per reassembly
-    @param drop_frag - if 0 translate fragments, otherwise drop fragments
-    @param is_ip6 - true if IPv6, false if IPv4
-*/
-autoreply define nat_set_reass {
-  u32 client_index;
-  u32 context;
-  u32 timeout;
-  u16 max_reass;
-  u8  max_frag;
-  u8  drop_frag;
-  bool  is_ip6;
-};
-
-/** \brief Get NAT virtual fragmentation reassembly configuration
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-*/
-define nat_get_reass {
-  u32 client_index;
-  u32 context;
-};
-
-/** \brief Get NAT virtual fragmentation reassembly configuration reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-    @param ip4_timeout - reassembly timeout
-    @param ip4_max_reass - maximum number of concurrent reassemblies
-    @param ip4_max_frag - maximum number of fragmets per reassembly
-    @param ip4_drop_frag - if 0 translate fragments, otherwise drop fragments
-    @param ip6_timeout - reassembly timeout
-    @param ip6_max_reass - maximum number of concurrent reassemblies
-    @param ip6_max_frag - maximum number of fragmets per reassembly
-    @param ip6_drop_frag - if 0 translate fragments, otherwise drop fragments
-*/
-define nat_get_reass_reply {
-  u32 context;
-  i32 retval;
-  u32 ip4_timeout;
-  u16 ip4_max_reass;
-  u8  ip4_max_frag;
-  u8  ip4_drop_frag;
-  u32 ip6_timeout;
-  u16 ip6_max_reass;
-  u8  ip6_max_frag;
-  u8  ip6_drop_frag;
-};
-
-/** \brief Dump NAT virtual fragmentation reassemblies
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-*/
-define nat_reass_dump {
-  u32 client_index;
-  u32 context;
-};
-
-/** \brief NAT virtual fragmentation reassemblies response
-    @param context - sender context, to match reply w/ request
-    @param src_addr - source IPv4 address
-    @param dst_addr - destination IPv4 address
-    @param frag_id - fragment ID
-    @param proto - protocol
-    @param frag_n - number of cached fragments
-*/
-define nat_reass_details {
-  u32 context;
-  vl_api_address_t src_addr;
-  vl_api_address_t dst_addr;
-  u32 frag_id;
-  u8 proto;
-  u8 frag_n;
-};
-
 /** \brief Set values of timeouts for NAT sessions (seconds)
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -526,6 +456,19 @@ service {
  * NAT44 APIs
  */
 
+/** \brief Del NAT44 user
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param ip_address - IPv4 address
+    @param fib_index - FIB index
+*/
+autoreply define nat44_del_user {
+  u32 client_index;
+  u32 context;
+  vl_api_ip4_address_t ip_address;
+  u32 fib_index;
+};
+
 /** \brief Add/del NAT44 address range
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -1443,113 +1386,6 @@ autoreply define nat64_add_del_interface_addr {
   vl_api_interface_index_t sw_if_index;
 };
 
-/*
- * DS-Lite APIs
- */
-
-/** \brief Add/delete address range to DS-Lite pool
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param start_addr - start IPv4 address of the range
-    @param end_addr - end IPv4 address of the range
-    @param is_add - true if add, false if delete
-*/
-autoreply define dslite_add_del_pool_addr_range {
-  u32 client_index;
-  u32 context;
-  vl_api_ip4_address_t start_addr;
-  vl_api_ip4_address_t end_addr;
-  bool is_add;
-};
-
-/** \brief Dump DS-Lite addresses
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-*/
-define dslite_address_dump {
-  u32 client_index;
-  u32 context;
-};
-
-/** \brief DS-Lite address details response
-    @param context - sender context, to match reply w/ request
-    @param ip_address - IPv4 address
-*/
-define dslite_address_details {
-  u32 context;
-  vl_api_ip4_address_t ip_address;
-};
-
-/** \brief Set AFTR IPv6 and IPv4 addresses
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param ip4_addr - IPv4 address
-    @param ip6_addr - IPv6 address
-*/
-autoreply define dslite_set_aftr_addr {
-  u32 client_index;
-  u32 context;
-  vl_api_ip4_address_t ip4_addr;
-  vl_api_ip6_address_t ip6_addr;
-};
-
-/** \brief Get AFTR IPv6 and IPv4 addresses
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-*/
-define dslite_get_aftr_addr {
-  u32 client_index;
-  u32 context;
-};
-
-/** \brief Response to get AFTR IPv6 and IPv4 addresses
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-    @param ip4_addr - IPv4 address
-    @param ip6_addr - IPv6 address
-*/
-define dslite_get_aftr_addr_reply {
-  u32 context;
-  i32 retval;
-  vl_api_ip4_address_t ip4_addr;
-  vl_api_ip6_address_t ip6_addr;
-};
-
-/** \brief Set B4 IPv6 and IPv4 addresses
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param ip4_addr - IPv4 address
-    @param ip6_addr - IPv6 address
-*/
-autoreply define dslite_set_b4_addr {
-  u32 client_index;
-  u32 context;
-  vl_api_ip4_address_t ip4_addr;
-  vl_api_ip6_address_t ip6_addr;
-};
-
-/** \brief Get B4 IPv6 and IPv4 addresses
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-*/
-define dslite_get_b4_addr {
-  u32 client_index;
-  u32 context;
-};
-
-/** \brief Response to get B4 IPv6 and IPv4 addresses
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-    @param ip4_addr - IPv4 address
-    @param ip6_addr - IPv6 address
-*/
-define dslite_get_b4_addr_reply {
-  u32 context;
-  i32 retval;
-  vl_api_ip4_address_t ip4_addr;
-  vl_api_ip6_address_t ip6_addr;
-};
-
 /*
  * NAT66 APIs
  */