From 68d7c546fa7e6c801031f2922c9be067d64e0f59 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Mon, 21 Dec 2020 18:20:00 +0100 Subject: nat: refactor and split fo EI/ED features p.2 Patch n. 2 aimed at moving EI features out of NAT44 plugin & split of EI/ED functions. Type: refactor Change-Id: Ida20c1c084449b146344b6c3d8442f49efb6f3fa Signed-off-by: Filip Varga --- src/plugins/nat/nat.h | 44 +++++++++++++++----------------------------- 1 file changed, 15 insertions(+), 29 deletions(-) (limited to 'src/plugins/nat/nat.h') diff --git a/src/plugins/nat/nat.h b/src/plugins/nat/nat.h index af40409d267..58883d491aa 100644 --- a/src/plugins/nat/nat.h +++ b/src/plugins/nat/nat.h @@ -427,7 +427,6 @@ typedef struct u32 flags; int addr_only; int twice_nat; - int is_add; int out2in_only; int identity_nat; int exact; @@ -729,6 +728,9 @@ typedef struct snat_main_s fib_source_t fib_src_hi; fib_source_t fib_src_low; + /* pat - dynamic mapping enabled or conneciton tracking */ + u8 pat; + /* nat44 plugin enabled */ u8 enabled; @@ -1297,20 +1299,6 @@ int snat_interface_add_del_output_feature (u32 sw_if_index, u8 is_inside, int snat_add_interface_address (snat_main_t * sm, u32 sw_if_index, int is_del, u8 twice_nat); -/** - * @brief Delete NAT44 session - * - * @param addr IPv4 address - * @param port L4 port number - * @param proto L4 protocol - * @param vrf_id VRF ID - * @param is_in 1 = inside network address and port pair, 0 = outside - * - * @return 0 on success, non-zero value otherwise - */ -int nat44_del_session (snat_main_t * sm, ip4_address_t * addr, u16 port, - nat_protocol_t proto, u32 vrf_id, int is_in); - /** * @brief Delete NAT44 endpoint-dependent session * @@ -1356,20 +1344,6 @@ int nat44_set_session_limit (u32 session_limit, u32 vrf_id); */ int nat44_update_session_limit (u32 session_limit, u32 vrf_id); -/** - * @brief Initialize NAT44 data - * - * @param tsm per thread data - */ -void nat44_db_init (snat_main_per_thread_data_t * tsm); - -/** - * @brief Free NAT44 data - * - * @param tsm per thread data - */ -void nat44_db_free (snat_main_per_thread_data_t * tsm); - /** * @brief Free all NAT44 sessions */ @@ -1510,6 +1484,18 @@ typedef struct u8 *format_user_kvp (u8 * s, va_list * args); +u32 get_thread_idx_by_port (u16 e_port); + +u8 *format_static_mapping_kvp (u8 *s, va_list *args); + +u8 *format_session_kvp (u8 *s, va_list *args); + +u8 *format_user_kvp (u8 *s, va_list *args); + +u32 nat_calc_bihash_buckets (u32 n_elts); + +void nat44_addresses_free (snat_address_t **addresses); + #endif /* __included_nat_h__ */ /* * fd.io coding-style-patch-verification: ON -- cgit 1.2.3-korg