nat64_compose_ip6 (&ip6_saddr, &ip4->src_address, bibe->fib_index);
ste =
- nat64_db_st_entry_create (db, bibe, &ip6_saddr, &saddr.ip4, sport);
+ nat64_db_st_entry_create (ctx->thread_index, db, bibe, &ip6_saddr,
+ &saddr.ip4, sport);
+
+ if (!ste)
+ return -1;
+
+ vlib_set_simple_counter (&nm->total_sessions, ctx->thread_index, 0,
+ db->st.st_entries_num);
}
ip6->src_address.as_u64[0] = ste->in_r_addr.as_u64[0];
nat64_compose_ip6 (&ip6_saddr, &ip4->src_address, bibe->fib_index);
ste =
- nat64_db_st_entry_create (db, bibe, &ip6_saddr, &saddr.ip4, 0);
+ nat64_db_st_entry_create (ctx->thread_index, db,
+ bibe, &ip6_saddr, &saddr.ip4, 0);
+
+ if (!ste)
+ return -1;
+
+ vlib_set_simple_counter (&nm->total_sessions, ctx->thread_index, 0,
+ db->st.st_entries_num);
}
nat64_session_reset_timeout (ste, ctx->vm);
return -1;
nat64_compose_ip6 (&ip6_saddr, &ip4->src_address, bibe->fib_index);
- ste = nat64_db_st_entry_create (db, bibe, &ip6_saddr, &saddr.ip4, 0);
+ ste = nat64_db_st_entry_create (ctx->thread_index, db,
+ bibe, &ip6_saddr, &saddr.ip4, 0);
+
+ if (!ste)
+ return -1;
+
+ vlib_set_simple_counter (&nm->total_sessions, ctx->thread_index, 0,
+ db->st.st_entries_num);
}
nat64_session_reset_timeout (ste, ctx->vm);
nat64_compose_ip6 (&ip6_saddr0, &ip40->src_address,
bibe0->fib_index);
ste0 =
- nat64_db_st_entry_create (db, bibe0, &ip6_saddr0,
+ nat64_db_st_entry_create (thread_index,
+ db, bibe0, &ip6_saddr0,
&saddr0.ip4, udp0->src_port);
if (!ste0)
node->errors[NAT64_OUT2IN_ERROR_NO_TRANSLATION];
goto trace0;
}
+
+ vlib_set_simple_counter (&nm->total_sessions, thread_index,
+ 0, db->st.st_entries_num);
}
reass0->sess_index = nat64_db_st_entry_get_index (db, ste0);
reass0->thread_index = thread_index;
if (PREDICT_FALSE (reass0->sess_index == (u32) ~ 0))
{
if (nat_ip4_reass_add_fragment
- (reass0, bi0, &fragments_to_drop))
+ (thread_index, reass0, bi0, &fragments_to_drop))
{
b0->error = node->errors[NAT64_OUT2IN_ERROR_MAX_FRAG];
next0 = NAT64_OUT2IN_NEXT_DROP;