nat: fix error counters
[vpp.git] / src / plugins / nat / nat.c
index 4803eeb..1f63237 100755 (executable)
@@ -490,7 +490,11 @@ nat_user_get_or_create (snat_main_t * sm, ip4_address_t * addr, u32 fib_index,
 
       /* add user */
       if (clib_bihash_add_del_8_8 (&tsm->user_hash, &kv, 1))
-       nat_elog_warn ("user_hash keay add failed");
+       {
+         nat_elog_warn ("user_hash key add failed");
+         nat44_delete_user_with_no_session (sm, u, thread_index);
+         return NULL;
+       }
 
       vlib_set_simple_counter (&sm->total_users, thread_index, 0,
                               pool_elts (tsm->users));
@@ -4027,8 +4031,8 @@ snat_config (vlib_main_t * vm, unformat_input_t * input)
          sm->worker_in2out_cb = snat_get_worker_in2out_cb;
          sm->worker_out2in_cb = snat_get_worker_out2in_cb;
 
-         sm->handoff_out2in_index = snat_in2out_node.index;
-         sm->handoff_in2out_index = snat_out2in_node.index;
+         sm->handoff_out2in_index = snat_out2in_node.index;
+         sm->handoff_in2out_index = snat_in2out_node.index;
          sm->handoff_in2out_output_index = snat_in2out_output_node.index;
 
          sm->in2out_node_index = snat_in2out_node.index;