X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnat%2Fnat.h;h=be82ced43182b5a794f2e589bed98180433f1d25;hb=b86437b79b82493c2e9728929df417f55b153824;hp=46dc040c574766e9d8b5ce1f7a6bff018f6ef885;hpb=85bee7548bc5a360851d92807dae6d4159b68314;p=vpp.git diff --git a/src/plugins/nat/nat.h b/src/plugins/nat/nat.h index 46dc040c574..be82ced4318 100644 --- a/src/plugins/nat/nat.h +++ b/src/plugins/nat/nat.h @@ -142,13 +142,6 @@ typedef struct }; } snat_user_key_t; -typedef struct -{ - u32 sw_if_index; - u32 next_index; - u8 cached; -} nat44_reass_trace_t; - /* NAT API Configuration flags */ #define foreach_nat_config_flag \ _(0x01, IS_TWICE_NAT) \ @@ -223,8 +216,6 @@ _(BAD_ICMP_TYPE, "unsupported ICMP type") \ _(MAX_SESSIONS_EXCEEDED, "maximum sessions exceeded") \ _(MAX_USER_SESS_EXCEEDED, "max user sessions exceeded") \ _(DROP_FRAGMENT, "drop fragment") \ -_(MAX_REASS, "maximum reassemblies exceeded") \ -_(MAX_FRAG, "maximum fragments per reassembly exceeded")\ _(CANNOT_CREATE_USER, "cannot create NAT user") \ _(NON_SYN, "non-SYN packet try to create session") \ _(TCP_PACKETS, "TCP packets") \ @@ -253,8 +244,6 @@ _(NO_TRANSLATION, "no translation") \ _(MAX_SESSIONS_EXCEEDED, "maximum sessions exceeded") \ _(MAX_USER_SESS_EXCEEDED, "max user sessions exceeded") \ _(DROP_FRAGMENT, "drop fragment") \ -_(MAX_REASS, "maximum reassemblies exceeded") \ -_(MAX_FRAG, "maximum fragments per reassembly exceeded")\ _(CANNOT_CREATE_USER, "cannot create NAT user") \ _(NON_SYN, "non-SYN packet try to create session") \ _(TCP_PACKETS, "TCP packets") \ @@ -320,6 +309,10 @@ typedef CLIB_PACKED(struct u32 per_user_index; u32 per_user_list_head_index; + /* index in global LRU list */ + u32 global_lru_index; + f64 last_lru_update; + /* Last heard timer */ f64 last_heard; @@ -357,8 +350,6 @@ typedef struct u32 sessions_per_user_list_head_index; u32 nsessions; u32 nstaticsessions; - /* discovered minimum session timeout time */ - u64 min_session_timeout; } snat_user_t; typedef struct @@ -521,20 +512,16 @@ typedef struct /* Pool of doubly-linked list elements */ dlist_elt_t *list_pool; + /* LRU session list - head is stale, tail is fresh */ + dlist_elt_t *global_lru_pool; + u32 global_lru_head_index; + /* NAT thread index */ u32 snat_thread_index; /* real thread index */ u32 thread_index; - /* discovered minimum session timeout time */ - u64 min_session_timeout; - - /* session scavenging */ - u32 cleared; - u32 cleanup_runs; - f64 cleanup_timeout; - } snat_main_per_thread_data_t; struct snat_main_s; @@ -703,10 +690,10 @@ typedef struct snat_main_s u8 out2in_dpo; u8 endpoint_dependent; u32 translation_buckets; - u32 translation_memory_size; + uword translation_memory_size; u32 max_translations; u32 user_buckets; - u32 user_memory_size; + uword user_memory_size; u32 max_translations_per_user; u32 outside_vrf_id; u32 outside_fib_index; @@ -714,9 +701,6 @@ typedef struct snat_main_s u32 inside_fib_index; /* values of various timeouts */ - - // min timeout of all proto timeouts - u32 min_timeout; // proto timeouts u32 udp_timeout; u32 tcp_transitory_timeout; @@ -1148,9 +1132,6 @@ void nat44_ed_hairpinning_unknown_proto (snat_main_t * sm, vlib_buffer_t * b, int snat_hairpinning (snat_main_t * sm, vlib_buffer_t * b0, ip4_header_t * ip0, udp_header_t * udp0, tcp_header_t * tcp0, u32 proto0, int is_ed); -void nat44_reass_hairpinning (snat_main_t * sm, vlib_buffer_t * b0, - ip4_header_t * ip0, u16 sport, u16 dport, - u32 proto0, int is_ed); /* Call back functions for clib_bihash_add_or_overwrite_stale */ int nat44_i2o_ed_is_idle_session_cb (clib_bihash_kv_16_8_t * kv, void *arg);