nat: static mappings in flow hash
[vpp.git] / src / plugins / nat / nat44-ei / nat44_ei.c
index 77c224d..3691af3 100644 (file)
@@ -428,6 +428,9 @@ nat44_ei_plugin_enable (nat44_ei_config_t c)
   if (!c.sessions)
     c.sessions = 10 * 1024;
 
+  if (!c.user_sessions)
+    c.user_sessions = c.sessions;
+
   nm->rconfig = c;
 
   if (!nm->frame_queue_nelts)
@@ -448,8 +451,7 @@ nat44_ei_plugin_enable (nat44_ei_config_t c)
 
   nm->max_users_per_thread = c.users;
   nm->max_translations_per_thread = c.sessions;
-  nm->max_translations_per_user =
-    c.user_sessions ? c.user_sessions : nm->max_translations_per_thread;
+  nm->max_translations_per_user = c.user_sessions;
 
   nm->inside_vrf_id = c.inside_vrf;
   nm->inside_fib_index = fib_table_find_or_create_and_lock (
@@ -918,12 +920,12 @@ int
 nat44_ei_plugin_disable ()
 {
   nat44_ei_main_t *nm = &nat44_ei_main;
-  nat44_ei_interface_t *i, *vec;
+  nat44_ei_interface_t *i, *pool;
   int error = 0;
 
   // first unregister all nodes from interfaces
-  vec = vec_dup (nm->interfaces);
-  vec_foreach (i, vec)
+  pool = pool_dup (nm->interfaces);
+  pool_foreach (i, pool)
     {
       if (nat44_ei_interface_is_inside (i))
        error = nat44_ei_interface_add_del (i->sw_if_index, 1, 1);
@@ -936,11 +938,11 @@ nat44_ei_plugin_disable ()
                            i->sw_if_index);
        }
     }
-  vec_free (vec);
-  nm->interfaces = 0;
+  pool_free (pool);
+  pool_free (nm->interfaces);
 
-  vec = vec_dup (nm->output_feature_interfaces);
-  vec_foreach (i, vec)
+  pool = pool_dup (nm->output_feature_interfaces);
+  pool_foreach (i, pool)
     {
       if (nat44_ei_interface_is_inside (i))
        error =
@@ -955,8 +957,8 @@ nat44_ei_plugin_disable ()
                            i->sw_if_index);
        }
     }
-  vec_free (vec);
-  nm->output_feature_interfaces = 0;
+  pool_free (pool);
+  pool_free (nm->output_feature_interfaces);
 
   nat_ha_disable ();
   nat44_ei_db_free ();
@@ -974,7 +976,7 @@ nat44_ei_plugin_disable ()
   nm->enabled = 0;
   clib_memset (&nm->rconfig, 0, sizeof (nm->rconfig));
 
-  return error;
+  return 0;
 }
 
 int
@@ -1100,7 +1102,8 @@ nat44_ei_free_session_data_v2 (nat44_ei_main_t *nm, nat44_ei_session_t *s,
       /* log NAT event */
       nat_ipfix_logging_nat44_ses_delete (
        thread_index, s->in2out.addr.as_u32, s->out2in.addr.as_u32,
-       s->nat_proto, s->in2out.port, s->out2in.port, s->in2out.fib_index);
+       nat_proto_to_ip_proto (s->nat_proto), s->in2out.port, s->out2in.port,
+       s->in2out.fib_index);
 
       nat_ha_sdel (&s->out2in.addr, s->out2in.port, &s->ext_host_addr,
                   s->ext_host_port, s->nat_proto, s->out2in.fib_index,
@@ -1268,7 +1271,8 @@ nat44_ei_free_session_data (nat44_ei_main_t *nm, nat44_ei_session_t *s,
 
       nat_ipfix_logging_nat44_ses_delete (
        thread_index, s->in2out.addr.as_u32, s->out2in.addr.as_u32,
-       s->nat_proto, s->in2out.port, s->out2in.port, s->in2out.fib_index);
+       nat_proto_to_ip_proto (s->nat_proto), s->in2out.port, s->out2in.port,
+       s->in2out.fib_index);
 
       nat_ha_sdel (&s->out2in.addr, s->out2in.port, &s->ext_host_addr,
                   s->ext_host_port, s->nat_proto, s->out2in.fib_index,